Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objetivos de aprendizaje
Comprender el concepto de Proceso de desarrollo y ciclo de vida del software Distinguir los diversos modelos de proceso de desarrollo y ciclo de vida del software Distinguir las diversas metodologas de desarrollo Comprender las caractersticas de los mtodos agiles
Temas a tratar
Visin genrica del proceso de desarrollo
Definicin
Fases
Definicin Ejemplo
Definicin
El proceso de desarrollo es un Marco de Trabajo que define las tareas a realizar para desarrollar software de alta calidad.
(Pressman).
Un Proceso define quien realiza algo, cuando y como para alcanzar cierto objetivo
.
El proceso de desarrollo incluye el conjunto de estrategias para coordinar los mtodos, tcnicas y herramientas para manejar efectivamente el desarrollo de un producto de software.
Requerimientos nuevos o cambios Sistema nuevo o modificado
Proceso de SW
Fases
Definicin
Anlisis del Sistema Requerimientos Planificacin
Desarrollo
Diseo Codificacin Prueba
Evolucin
Correccin Adaptacin Mejora
Correccin Adaptacin
Mejora
Implementacin
Construccin
Pruebas unitarias
Pruebas de integracin
Validacin
Pruebas funcionales
Pruebas de usuario
Evolucin
Alternativamente, a veces se usa el termino Ciclo de Vida, Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotacin y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definicin de los requisitos hasta la finalizacin de su uso (IEEE 12207). Proceso: conjunto de actividades. Actividad: conjunto de tareas. Tarea: accin que transforma entradas en salida
El Proceso de Software
Norma ISO/IEC 12207
Ciclo de vida
5. Procesos primarios
5.1 Adquisicin 5.2 Suministro
6. Procesos de soporte
6.1 Documentacin 6.2 Gestin de la configuracin 6.3 Control de calidad
Concepcin
Retirada
Proceso 1
6.6 Reuniones 6.7 Auditora 6.8 Resolucin de problemas 7. Procesos organizacionales 7.1 Gestin 7.3 Mejora 7.2 Infraestructura 7.4 Formacin Actividad 1
Tarea 1 Tarea 2 Tarea n
Proceso N
Actividad n
Tarea 1 Tarea 2 Tarea n
El Proceso de Software
5.3 Procesos de Desarrollo
Contiene las actividades y tareas realizadas por el desarrollador. Integra las siguientes actividades:
Codificacin y prueba del software.
Integracin del software Prueba del software. Integracin del sistema. Prueba del sistema.
Implementacin del proceso. Anlisis de requisitos del sistema. Diseo de la arquitectura del sistema. Anlisis de los requisitos del software. Diseo de la arquitectura del software. Diseo detallado del software.
El Proceso de Software
Norma ISO/IEC 12207:2008
Un Modelo de Proceso de Software es una descripcin de un proceso de software que se presenta desde una perspectiva particular. Es una abstraccin de un proceso real. Incluye actividades (que son parte de los procesos del software), los productos software, y el papel de las personas interesadas en el desarrollo ( stakeholders).
Secuencial
Definicin
Iterativos
Prototipo
Evolutivos
Definicin
Espiral Componentes Incremental
Fases
Ciclo de vida clsico, modelo en cascada + antiguo, + usado Enfoque sistemtico secuencial
Crticas:
Proyectos reales raras veces se ajustan a este enfoque. Raras veces cliente expone todos los requerimientos desde el inicio. El Producto operativo al final => Cliente con gran paciencia .
Consejo:
Usar cuando todos los requerimientos han sido establecidos claramente de entrada.
Modelos Iterativos
Construccin de Prototipos
Usar cuando no estn claros los requisito de entrada Iterativo. Pero hasta cuando se itera? Working prototype, desechar y empezar con desarrollo de sistema.
Aceptado Obtencin de Requerimientos Construccin Prototipo Evaluacin Cliente Ciclo de Vida Clsico
Mejora de la Especificacin
NO Aceptado
Modelos Iterativos
Construccin de Prototipos
Crticas:
Cliente cree que prototipo es el sistema. Peligro de familiarizacin con malas elecciones iniciales (quick and dirty). Usar cuando inicialmente no estn claros los requerimientos. Definir claramente de entrada las reglas de juego con el cliente.
Consejo:
Modelos Evolutivos
Se adaptan ms fcilmente a los cambios introducidos a lo largo del desarrollo. Son Iterativos En cada iteracin se obtienen versiones ms completas del Software Modelos Evolutivos:
Modelo Incremental Modelo en Espiral Modelo de Desarrollo Basado en Componentes
Modelos Evolutivos
Modelo Incremental
Inc1 Anlisis Diseo Codif. Prueba Entrega 1er Incremento
Inc2
Anlisis
Diseo
Codif.
Prueba
Inc3
Anlisis
Diseo
Codif.
Prueba
Tiempo
Modelos Evolutivos
Modelo Incremental
Modelos Evolutivos
Modelo en Espiral
Modelos Evolutivos
Modelo en Espiral
til para proyectos grandes. Permite usar el prototipado en todas las etapas de la evolucin para reducir el riesgo. Mantiene el enfoque sistemtico de los pasos sugeridos por el lineal secuencial, pero lo incorpora dentro de un marco iterativo ms real. Crticas:
Difcil de convencer a los clientes de que es controlable. Requiere mucha habilidad para el anlisis de riesgos y de esta habilidad depende su xito.
Modelos Evolutivos
Desarrollo basado en componentes
Planificacin
Comunicacin con el Cliente Anlisis Riesgos de
Construir
Extraer
Colocar en biblioteca
IS03 El Proceso SW
Construir iteracin
29/36
Mtodos informales
No siguen un esquema, depende del estilo del desarrollador Quick & Dirty (USA) Match stick box (Europa) Metodologas giles
Mtodos Semiformales
Mtodos Estructurados SA/SD (structured analysis & structured design) Mtrica Mtodos Orientados a Objetos OMT OOSE RUP
32/36
Mtodos Formales
Permiten al ingeniero de software especificar, desarrollar y verificar un sistema informtico mediante la aplicacin de una notacin matemtica rigurosa. Utilizan un lenguaje de especificacin formal, Un mtodo formal proporciona los medios de especificar un sistema de forma que se aseguren, de manera sistemtica, la consistencia, la completitud y la correccin. Se suelen basar en notaciones matemticas similares a las del lgebra de conjuntos y la lgica
33/36
Tarea
Para cada uno de los modelos anteriores, cmo maneja el modelo un cambio significativo y tardo en los requerimientos?
En una empresa utilizan el producto de software PP para el control presupuestario. La empresa no dispone de las versiones en lenguaje fuente del producto, ni ninguna documentacin excepto el manual del usuario. A usted lo contratan para construir un producto que brinde la misma funcionalidad que PP, pero para que corra en equipos distintos. Qu modelo de ciclo de vida adoptara para llevar a cabo este proyecto? Por qu?
Discuta las ventajas y desventajas que puede traer a una organizacin de desarrollo el adoptar un nico modelo de proceso para todos sus proyectos.
34/36
Tarea
Suponga que una empresa requiere a su organizacin que utilice un modelo de proceso especfico al contratarla para construir un sistema. Su organizacin construye el software utilizando los recursos, actividades y restricciones prescritos. Cuando el software se instala y pone en marcha experimenta una falla catastrfica. Cuando el cliente investiga el origen de la falla, acusa a su organizacin de negligencia por no haber llevado a cabo revisiones de cdigo que hubieran permitido detectar el problema antes de poner en produccin el sistema. Su organizacin responde que las revisiones de cdigo no estaban en el proceso requerido. Cules son las implicancias legales y ticas que aparecen en esta disputa?
35/36