INGENIERIA DE SOFTWARE - UABCfcqi.tij.uabc.mx/usuarios/luisgmo/data/2 Modelos 2007.pdf · Modelo...
Transcript of INGENIERIA DE SOFTWARE - UABCfcqi.tij.uabc.mx/usuarios/luisgmo/data/2 Modelos 2007.pdf · Modelo...
INGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE
Es el estudio de los principios y metodologías para desarrollo Es el estudio de los principios y metodologías para desarrollo y mantenimiento de sistemas de software ... y mantenimiento de sistemas de software ... ZelkovitzZelkovitz
Es la aplicaciEs la aplicacióón prn prááctica el conocimiento cientctica el conocimiento cientíífico en fico en el diseel diseñño y construccio y construccióón de programas de n de programas de computadora y la documentacicomputadora y la documentacióón asociada requerida n asociada requerida para desarrollar , operar y mantenerlos ... para desarrollar , operar y mantenerlos ... BohemBohem
INGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE
Trata del establecimiento de los principios y métodos de la Trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable que sea ingeniería a fin de obtener software de modo rentable que sea
fiable y trabaje en máquinas reales ... fiable y trabaje en máquinas reales ... BauerBauer
Es la aplicación de un enfoque sistemático, Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación disciplinado y cuantificable al desarrollo, operación (funcionamiento) y mantenimiento del software (funcionamiento) y mantenimiento del software ------IEEEIEEE
PRINCIPIOS DE LAPRINCIPIOS DE LAINGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE
1. HAZ DE LA CALIDAD LA RAZON DE TRABAJAR1. HAZ DE LA CALIDAD LA RAZON DE TRABAJAR2. ES POSIBLE SOFTWARE DE ALTA CALIDAD2. ES POSIBLE SOFTWARE DE ALTA CALIDAD
3. UNA BUENA GESTION ES MAS IMPORTANTE QUE UNA 3. UNA BUENA GESTION ES MAS IMPORTANTE QUE UNA BUENA TECNOLOGIABUENA TECNOLOGIA
4. LAS PERSONAS Y TIEMPO NO SON INTERCAMBIABLES4. LAS PERSONAS Y TIEMPO NO SON INTERCAMBIABLES5. IMPORTANTE SELECCIONAR EL MODELO ADECUADO5. IMPORTANTE SELECCIONAR EL MODELO ADECUADO
6. ENTREGAR PRODUCTOS AL USUARIO LO MAS PRONTO 6. ENTREGAR PRODUCTOS AL USUARIO LO MAS PRONTO POSIBLEPOSIBLE
7. DETERMINAR EL PROBLEMA ANTES DE ESCRIBIR LOS 7. DETERMINAR EL PROBLEMA ANTES DE ESCRIBIR LOS REQUISITOSREQUISITOS
8. EVALUAR LAS ALTERNATIVAS DEL DISEÑO8. EVALUAR LAS ALTERNATIVAS DEL DISEÑO9. DISEÑAR SIN DOCUMENTACION ES NO DISEÑAR 9. DISEÑAR SIN DOCUMENTACION ES NO DISEÑAR
PRINCIPIOS DE LAPRINCIPIOS DE LAINGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE
10. MINIMIZAR LA DISTANCIA INTELECTUAL10. MINIMIZAR LA DISTANCIA INTELECTUAL11. USAR FORMALISMOS DISTINTOS PARA LAS DISTINTAS 11. USAR FORMALISMOS DISTINTOS PARA LAS DISTINTAS
FASESFASES12. LAS TECNICAS SON ANTERIORES A LAS 12. LAS TECNICAS SON ANTERIORES A LAS
HERRAMIENTASHERRAMIENTAS13. INSPECCIONAR EL CODIGO13. INSPECCIONAR EL CODIGO
14. PRIMERO HAZLO CORRECTO, DESPUES HAZLO RAPIDO14. PRIMERO HAZLO CORRECTO, DESPUES HAZLO RAPIDO15. LA GENTE ES LA CLAVE DEL ÉXITO15. LA GENTE ES LA CLAVE DEL ÉXITO
16. INTRODUCE LAS MEJORAS CON CUIDADO16. INTRODUCE LAS MEJORAS CON CUIDADO17. ASUMIR CADA QUIEN SU RESPONSABILIDAD17. ASUMIR CADA QUIEN SU RESPONSABILIDAD18. LA ENTROPIA DEL SOFTWARE ES CRECIENTE18. LA ENTROPIA DEL SOFTWARE ES CRECIENTE
CAPAS DE LACAPAS DE LAINGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE
HERRAMIENTAS: HERRAMIENTAS: proporciona un enfoque para el proceso y proporciona un enfoque para el proceso y métodos, es soporte, se llama CASEmétodos, es soporte, se llama CASE
METODOS: METODOS: indican cómo construir técnicamente el softwareindican cómo construir técnicamente el software
PROCESO: PROCESO: la ingeniería de software se fundamente en el la ingeniería de software se fundamente en el proceso, es la unión que mantiene juntas las capas de proceso, es la unión que mantiene juntas las capas de
tecnologíatecnología
UN ENFOQUE DE CALIDAD: UN ENFOQUE DE CALIDAD: cualquier enfoque debe apoyarse cualquier enfoque debe apoyarse sobre un compromiso de organización de calidadsobre un compromiso de organización de calidad
CALIDAD
PROCESO
METODOS
HERRAMIENTAS
CAPAS DE LACAPAS DE LAINGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE
La estrategia para el desarrollo de La estrategia para el desarrollo de software se le llama software se le llama MODELO DE MODELO DE
PROCESOPROCESO o o PARADIGMA DE PARADIGMA DE INGENIERIA DE SOFTWAREINGENIERIA DE SOFTWARE
PARADIGMAS DEL SOFTWARE
Cada paradigma es un intento de ordenar las actividades de ayudar al contro y coordinación de
los proyectos de software
PARADIGMA 1: CICLO DE VIDA CLASICO
ó MODELO LINEAL SECUENCIAL
Demanda un acercamiento secuencial y sistemático que coordine las siguientes
actividades
Ing. de Sistemas
o de Información
ANALISIS DISEÑO CODIGO PRUEBA
INGENIERIA DE SISTEMAS: es el establecimiento de requisitos y de las partes que se necesitan para el desarrollo del sistema
ANALISIS: conocimiento de la información, funciones, relaciones, comportamiento, rendimiento e interconexión
DISEÑO: Se centra en la estructura de datos, arquitectura del software, representaciones de interfaz y detalle procedural
GENERACION DE CODIGO: realización en un lenguaje de programación
PRUEBAS: internas de lógica y externas de funcionalidad
MANTENIMIENTO: correctivo, adaptativo y perfectivo
POR QUE FALLA?
Causa confusión al inicio ( requerimientos )
Es difícil el cliente exponga todos los requisitos
El cliente debe tener paciencia hasta que el proyecto termine o este avanzado
PARADIGMA 2: CONSTRUCCION DE PROTOTIPOS
Consiste en crear modelos del software que se va a construir
ESCUCHAR AL CLIENTE
CONSTRUIR
MAQUETA
CLIENTE PRUEBA MAQUETA
Diseño Rápido
Recolección de Requisitos
Evaluación por el cliente
POR QUE FALLA?
No se ha tenido en cuenta la calidad del software
Querra hacer del prototipo un producto final
EFECTIVO SI:
Se definen las reglas al comienzo
Cliente y desarrollador se ponen de acuerdo que el prototipo es un mecanismo para definir los requerimientos
PARADIGMA 3: EL MODELO DRA (RAD)
Desarrollo Rápido de Aplicaciones
Modelo lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto
Es una adaptación del lineal utilizando una contrucción basada en componentes
Comprende las siguientes fases:
1 Modelado de Gestión ( que información )
2 Modelado de Datos (características obj )
3 Modelado del Proceso ( flujo de información)
4 Generación de aplicaciones ( lenguajes, técnicas)
5 Pruebas y entrega ( pruebas )
POR QUE FALLA?
Para proyectos grandes requiere mucho recurso humano
Requiere clientes y desarrolladores comprometidos
No todas las aplicaciones son apropiadas para DRA
No es adecuado cuando los riesgos son altos
PARADIGMA 4: MODELO INCREMENTAL
Combina el lineal con el de prototipos
Se centra en la entrega de un producto operacional con cada incremento
Es util cuando no hay suficiente personal y no alcanza la fecha límite
ANALISIS DISEÑO CODIGO PRUEBA
ANALISIS DISEÑO CODIGO PRUEBA
ANALISIS DISEÑO CODIGO PRUEBA
Entrega primer incremento
Entrega segundo
incremento
TIEMPO /
CALENDARIZACION
PARADIGMA 5: MODELO ESPIRAL
Combina prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial
Utiliza la construcción de prototipos como mecanismo de reducción de riesgos por lo tanto demanda una consideración directa de los riesgos
Planificación
Construcción y AdaptaciónEvaluación del cliente
Comunicación con el cliente
Ingeniería
Análisis de riesgos
12
34
MODELO ESPIRAL
ACTIVIDADES PRINCIPALES:
Comunicación con el cliente
Planificación ( determinar objetivos, recursos, tiempo, alternativas, restricciones )
Analisis de riesgos
Ingeniería ( construir la aplicación )
Construcción y acción ( adaptación, probar, instalar, dar soporte )
Evaluación del cliente ( valoración de resultados )
OBTIENE EN LAS ETAPAS:
1 proyecto de desarrollo de conceptos
2 proyecto de desarrollo de nuevos productos
3 proyecto de mejora de productos
4 proyecto de mantenimiento de productos
POR QUE FALLA?
Puede resultar difícil convencere a grandes clientes de que el proceso es controlable
Requiere una habilidad para la evaluación del riesgo ( sino se reconocen riesgos surgirán problemas )
PARADIGMA 6: DESARROLLO BASADO EN COMPONENTES
Es un modelo de la tecnología de objetos
Las clases son reutilizables por las diferentes aplicaciones y arquitecturas del sistema
Conduce a la reutilización del software
Se basa en el UML
PARADIGMA 7: TECNICAS DE 4TA GENERACION
Es software preestablecido para ingeniereos programadores de alto nivel y genera codificaciones específicas
Se enfoca en la habilidad de manejar un leguaje lo mas cercano al natural
Estas son CASE y generadores de código
Ahorra tiempo en proyectos cortos
DEFINICION Qué?
Identificar la informacion que ha de ser procesada
Su función
Rendimiento
Comportamiento del sistema
Interfaces
Restricciones
Criterios de validación
REQUISITOS
FASES DE LA INGENIERIA DEL SOFTWARE
DESARROLLO Cómo?
Cómo se diseñan las estructuras de datos
Cómo implementarse los procedimientos
Cómo caracterizar las interfaces
Cómo traducir al lenguaje
Cómo realizar las pruebas
FASES DE LA INGENIERIA DEL SOFTWARE
MANTENIMIENTO
Se centra en el CAMBIO,
en la corrección de errores
Adaptaciones del software
Cambio por las mejoras
4 tipos de cambio:
Corrección
Adaptación
Mejora
Prevención
FASES DE LA INGENIERIA DEL SOFTWARE