2. Agenda Procesos de software Definición Fases del proceso de software Modelos de procesos de software Definición Tipos de modelos Métodos de la ingeniería de software Definición Cuadro comparativo 2
3. Procesos de software Conjunto de actividades que conducen a la creación de un producto software. Dependen de personas que toman decisiones y juicios. No existe proceso ideal. Para los sistemas críticos, se requiere un proceso de desarrollo muy estructurado. Para sistemas de negocio con requerimientos rápidamente cambiantes, un proceso flexible y ágil probablemente sea más efectivo. 3
4. Fases de proceso de software Especificación del software Se debe definir la funcionalidad del software y las restricciones en su operación. Es una etapa crítica ya que los errores de esta etapa originan problemas en las demás. Se produce un documento de requerimientos. 4
5. Diseño e implementación del software Se debe producir software que cumpla su especificación. Proceso de convertir una especificación del sistema en un sistema ejecutable. Es una descripción de la estructura del software, datos del sistema, interfaces entre los componentes y algoritmos utilizados. 5
6. Validación del software Se debe validad el software para asegurarse que hace lo que el cliente desea. Se utiliza para mostrar que el sistema se ajusta a su especificación. Deben aprobar un proceso de pruebas. Etapas: pruebas de componentes, prueba del sistema, prueba de aceptación. 6
7. Evolución del software El software debe evolucionar para cubrir las necesidades cambiantes del cliente. En hardware es muy costoso hacer cambios en su diseño. En software se pueden hacer cambios en cualquier momento. El software se cambia continuamente durante su periodo de vida 7
8. Modelos de procesos de software Representación abstracta de un proceso del software. Proceso desde perspectiva particular. Proporciona sólo información parcial no son descripciones definitivas de los procesos del software. Pueden ser extendidos y adaptados para crear procesos más específicos de ingeniería del software. Modelos: El modelo en cascada Desarrollo evolutivo Ingeniería del software basada en componentes 8
9. El modelo en cascada Las actividades fundamentales del proceso y los representa como fases separadas del proceso -Análisis y definición de requerimientos .- Restricciones y metas del sistema se definen con los usuarios. -Diseño del sistema y del software.- Divide los requerimientos en sistemas hardware o software El diseño del software identifica abstracciones y sus relaciones. -Implementación y prueba de unidades.- Verificar que cada unidades de programas cumpla su especificación. 9
10. -Integración y prueba del sistema.- Unidades individuales se integran y prueban como un sistema completo, después se entrega al cliente. -Funcionamiento y mantenimiento.- Se instala y se pone en funcionamiento práctico ,el mantenimiento corrige errores. Definición de requerimientos Diseño del sistema y del software Implementación y pruebas de unidades Integración y prueba del sistema Funcionamiento y mantenimiento 10
11. Desarrollo evolutivo Se basa en una implementación inicial y refinándola a través de las diferentes versiones Las actividades de especificación, desarrollo y validación se entrelazan. -Desarrollo exploratorio Trabajar con el cliente para explorar sus requerimientos y entregar un sistema final empieza con las partes que se comprenden mejor. -Prototipos desechadles -comprender los requerimientos del cliente y desarrollar una definición mejorada. 11
12. -Desventajas importantes -El proceso no es visible Administradores hacen entregas regulares para medir el progreso no es rentable producir documentos cada versión del sistema. -A menudo los sistemas tienen una estructura deficiente Cambios continuos corrompen la estructura del software. 12
13. Ingeniería del software basada en componentes Reutilización de software. Código similares los buscan, los modifican según lo creen necesario y los incorporan en el sistema. Tiene la ventaja obvia de reducir la cantidad de software a desarrollarse y así reduce los costos y los riesgos. las etapas en el proceso de la reutilización : Análisis de componentes Modificación de requerimientos Diseño del sistema con reutilización Desarrollo e integración 13
14. Análisis de componentes Según la especificación buscan componentes para esta especificación. Modificación de requerimientos Analizan requerimientos, los componentes encontrados se modifican. Diseño del sistema con reutilización Se diseña o se reutiliza un marco de trabajo. Desarrollo e integración El software que no se puede adquirir externamente se desarrolla. 14
15. Métodos de ingeniería de software Estructurado para el desarrollo de software. Facilita la producción de software de alta calidad de una forma costeable. No existe un método ideal. Métodos se basan en la idea de modelos gráficos. 15
16. Cuadro comparativo Procesos de software Dependen de personas que toman decisiones y juicios. No existe proceso ideal. Modelos de procesos Contienen información parcial. Pueden adaptarse Métodos de procesos No existe un método ideal Basado en el Lenguaje de Modelado Unificado (UML) 16