Ingeniería de Software Clase 3 Gloria Lucia Giraldo Gómez [email protected] Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín El proceso del software
Ingeniería de SoftwareClase 3
Gloria Lucia Giraldo Gó[email protected] de SistemasUniversidad Nacional de Colombia – Sede Medellín
El proceso del software
3004582 - I.S Universidad Nacional de Colombia 2
¿ Qué es el proceso del software?
Metodología seguida por una organización para el desarrollo del software
Esta metodología incluye todas las fases del ciclo de vida clásico
Este proceso se define de manera general para todas las aplicaciones de una organización
Igualmente se definen tareas especificas a cada aplicación en particular
3004582 - I.S Universidad Nacional de Colombia 3
El proceso del software
Marco de trabajo común
Actividades del marco de trabajo
Conjunto de tareas
Hitos, entregas
Tareas
Puntos SQA
3004582 - I.S Universidad Nacional de Colombia 4
Modelos del proceso del software
Modelo lineal Modelo de construcción de prototipos Modelo de desarrollo rápido de
aplicaciones (DRA) Modelos evolutivos: incremental,
espiral, de desarrollo concurrente Modelos de métodos formales Técnicas de cuarta generación
3004582 - I.S Universidad Nacional de Colombia 5
Modelo lineal secuencialo Cascada
Desarrollado entre 1960-1980 Basado en el modelo en cascada de
Winston Royce Se conoce como el ciclo de vida básico Secuencia de actividades, donde la
estrategia principal es seguir el progreso del desarrollo de software hacia puntos de revisión bien definidos mediante entregas calendarizadas.
3004582 - I.S Universidad Nacional de Colombia 6
Modelo lineal secuencialo en cascada
Definición Análisis
Diseño Desarrollo
Pruebas Mantenim.
Definición de requisitos:• Las restricciones y metas del sistema se definen a partir de la
interacción con el interesado.• Se comprende la naturaleza de la aplicación y el dominio de
información, así como su funcionalidad, rendimiento e interconexión • Se reúnen todos los requisitos que debe cumplir el software
3004582 - I.S Universidad Nacional de Colombia 7
Modelo lineal secuencialo en cascada
Definición Análisis
Diseño Desarrollo
Pruebas Mantenim.
Se concentra en cuatro características básicas:Estructura de datosArquitectura del softwareRepresentaciones de interfazDetalle procedimental (algoritmo)
3004582 - I.S Universidad Nacional de Colombia 8
Modelo lineal secuencialo en cascada
Definición Análisis
Diseño Desarrollo
Pruebas Mantenim.
• Se llama también Implementación• Generación de código entendible por la máquina• Actualmente se investiga mucho sobre la manera
de generar código automáticamente
3004582 - I.S Universidad Nacional de Colombia 9
Modelo lineal secuencialo en cascada
Definición Análisis
Diseño Desarrollo
Pruebas Mantenim.
• Proceso de depuración de programas• Chequear la validez de las sentencias• Pruebas para detectar errores, asegurando que a
partir de los datos de entrada si se genere la salida deseada
3004582 - I.S Universidad Nacional de Colombia 10
Modelo lineal secuencialo en cascada
Definición Análisis
Diseño Desarrollo
Pruebas Mantenim.
• Corrección de errores no detectados en la etapa de pruebas
• Posibles mejoras funcionales debidas a nuevos requerimientos del cliente
• En esta fase se vuelven a aplicar todas las etapas anteriores sobre el software existente
3004582 - I.S Universidad Nacional de Colombia 11
Modelo lineal secuencialo en cascada
Definición Análisis
Diseño Desarrollo
Pruebas Mantenim. LIMITACIONES
• En la realidad no estrictamente secuencial (se traslapan las etapas)
• El interesado debería exponer los requisitos en la etapa inicial, pero en realidad él lo hace a través de todo el proceso y esto complica las cosas
• La primera versión del software llega al final del proceso, a veces el afán del cliente hace que la aplicación final no cumpla con los requerimientos
3004582 - I.S Universidad Nacional de Colombia 12
Modelo de Construcción de Prototipos
Comienza con una recolección inicial de requisitos para pasar a un diseño rápido y finalmente a la construcción de un prototipo de la solución.
3004582 - I.S Universidad Nacional de Colombia 13
Modelo de Construcción de Prototipos
El desarrollador y el cliente deben ser concientes de que el prototipo se utiliza para precisar los requisitos del software y así evitar inconvenientes como:
El cliente cree que el prototipo es una primera versión funcional del Sistema.
El desarrollador construye el prototipo rápidamente y en ocasiones sin hacer uso de la tecnología optima disponible.
3004582 - I.S Universidad Nacional de Colombia 14
Modelo de Desarrollo Rápido de Aplicaciones (DRA)
Basado en el Modelo Lineal Secuencial Modelo llevado a cabo por varias equipos de trabajo
que siguen las etapas del proceso de manera simultanea.
Modelo aplicable a la construcción de sistemas de información fácilmente modularizables.
El Modelo DRA necesita clientes y desarrolladores comprometidos con el proceso.
No es muy útil para aplicaciones que requieren adopción de nuevas tecnologías porque la curva de aprendizaje puede afectar el cronograma del proyecto.
3004582 - I.S Universidad Nacional de Colombia 15
Modelo de Desarrollo Rápido de Aplicaciones (DRA)
3004582 - I.S Universidad Nacional de Colombia 16
Modelos evolutivos del proceso del SW
Modelos flexibles que permiten la modificación del sistema durante su proceso de desarrollo.
Procesos iterativos que permiten a los desarrolladores construir versiones del software cada vez más completas
Ejemplos: Modelo Incremental. Modelo Espiral. Modelo Espiral WINWIN. Modelo de Desarrollo Concurrente.
3004582 - I.S Universidad Nacional de Colombia 17
Modelo Incremental Aplica el enfoque lineal secuencial
escalonadamente Incrementos parciales de la herramienta
completa (versiones) Cada incremento agrega funcionalidad
adicional o mejorada sobre el sistema Cada etapa debe cumplir con los requisitos
de las desarrolladas
Incremento 2
Incremento n
... ... ... ...
Análisis Diseño Código Pruebas
Análisis Diseño Código Pruebas
Análisis Diseño Código Pruebas
3004582 - I.S Universidad Nacional de Colombia 18
Modelo Incremental Ventajas:
Los clientes no tienen que esperar hasta que el sistema se entregue completamente para comenzar a hacer uso de él.
Los clientes pueden usar los incrementos iniciales como prototipo para precisar los requerimientos posteriores del sistema.
Minimización del riesgo de falla en el proyecto porque los errores se van corrigiendo progresivamente.
Problemas: Adaptación de los requisitos del cliente para lograr
incrementos pequeños (no mas de 20.000 líneas de código) que añadan funcionalidad al sistema.
Nota: Una evolución de este enfoque se conoce como Programación Extrema (XP-Extreme Programming).
3004582 - I.S Universidad Nacional de Colombia 19
Modelo Espiral
Utilización de ciclos en lugar de sucesión de actividades.
Facilita el desarrollo rápido de versiones incrementales de software.
3004582 - I.S Universidad Nacional de Colombia 20
Modelo Espiral WINWIN
Hace énfasis en la etapa Comunicación con el Cliente definiendo un conjunto de actividades de negociación que se llevan a cabo al principio de cada ciclo
El proceso de negociación busca que ambos ganen, tanto cliente como analista: el cliente obtiene el producto que satisface gran
parte de sus necesidades y el desarrollador intenta obtener requisitos que
le permitan cumplir con tiempos de entrega realistas
3004582 - I.S Universidad Nacional de Colombia 21
Modelo Concurrente Provee una meta descripción del proceso de software Mientras que en el Espiral la principal contribución es que
las actividades del software ocurran repetidamente, en el Concurrente es la capacidad de describir las múltiples actividades del software que ocurren simultáneamente.
Dado que los requerimientos cambian es muy probable que una vez haya comenzado la fase de diseño, sea necesario incorporar cambios. En estos casos No se debe detener el diseño, sino que se debe continuar “si es posible” al mismo tiempo que se modifican los requerimientos.
Por lo tanto en este modelo, diversas actividades pueden estar ocurriendo concurrentemente
Posibilita el conocimiento del verdadero estado del proyecto
3004582 - I.S Universidad Nacional de Colombia 22
Modelo de Métodos Formales
El proceso de desarrollo se basa en la transformación matemática formal de la especificación del sistema a un programa ejecutable
Facilita la verificación de programas a través de un riguroso análisis matemático.
La ejecución de este tipo de modelos requiere mucho tiempo y esfuerzo.
“Ingeniería de Software de Sala Limpia”
3004582 - I.S Universidad Nacional de Colombia 23
Modelo de Métodos Formales
Ventaja: Consistencia!!!
Desventaja: complejo, demanda mucho tiempo
3004582 - I.S Universidad Nacional de Colombia 24
Técnicas de cuarta generación Facilita al ingeniero desarrollador del
software la especificación de las características del software a alto nivel, con el fin de generar automáticamente el código a partir de allí.
Existencia de herramientas CASE (Computer Aide Software Engineering) Ingeniería de software asistida por computador
3004582 - I.S Universidad Nacional de Colombia 25
Algunos métodos de desarrollo de software
RUP CDM FDD XP UN-METODO
3004582 - I.S Universidad Nacional de Colombia 26
RUP (Rational Unified Process) Proceso Unificado de Modelado
Surge a mediados de los 90s junto con UML
Así como el CDM es ampliamente documental
Se basa en UML y es iterativo e incremental
El punto de partida es la elicitación de requisitos del software
3004582 - I.S Universidad Nacional de Colombia 27
CDM (Custom Development Method) Método de desarrollo adaptable
Creado por ORACLE CorporationPermite hacer un seguimiento intensivo de las
diferentes fases del desarrollo (Definición, Análisis, Diseño, Construcción, Transición y Producción). Para ello, realizan un conjunto de tareas que se agrupan en procesos. Cada proceso hace parte de cada una de las fases del desarrollo y se reporta mediante un documento denominado “entregable”.
Genera mucha documentación