Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Temario
El proceso del software Modelos de proceso de software El modelo lineal secuencial El modelo de construccin de prototipos El modelo DRA Modelos evolutivos de proceso del software Desarrollo basado en componentes El modelo de mtodos formales Principales metodologas
HERRAMIENTAS
MTODOS PROCESO UN ENFOQUE DE CALIDAD
Cualquier enfoque de ingeniera debe apoyarse sobre un compromiso de organizacin de calidad. El fundamento de la Ingeniera del Software es la capa de Proceso. Los Mtodos de la Ingeniera del Software indican cmo construir tcnicamente el software. Las Herramientas de la Ingeniera del Software proporcionan un enfoque automtico o semiautomtico para el proceso y para los mtodos, como los CASE.
Modelos del proceso del software Modelo lineal secuencial Modelo de construccin de prototipos Modelo de desarrollo rpido de aplicaciones (DRA) Modelos evolutivos: Modelo incremental Modelo espiral Modelo de desarrollo concurrente Modelos de mtodos formales Tcnicas de cuarta generacin
Mejores aplicaciones Un proceso de desarrollo que identifica productos intermedios de cada fase de forma que se pueda planificar y controlar el proyecto Un proceso estndar en la organizacin
Costos de oportunidad Presupuesto disponible Plazos para cumplimiento Capacidad de nuestros recursos Polticas de desarrollo Polticas empresariales
MODELO LINEAL
Anlisis
Diseo
Cdigo
Prueba
A
Construir y revisar la maqueta
Entrega 1
A
Escuchar al cliente
D
A A
C
D D C
Entrega 2
P C P Ent.3 Ent4
MODELO INCREMENTAL
Desarrollado entre 19601980 Basado en el modelo en cascada de Winston Royce Se conoce como el ciclo de vida bsico Secuencia de actividades, donde la estrategia principal es seguir el progreso del desarrollo de software hacia puntos de revisin bien definidos mediante entregas calendarizadas
Definicin
Anlisis
Diseo Desarrollo Prueba Mantenim. Definicin de requisitos: Las restricciones y metas del sistema se definen a partir de la interaccin con el interesado. Se comprende la naturaleza de la aplicacin y el dominio de informacin, as como su funcionalidad, rendimiento e interconexin Se renen todos los requisitos que debe cumplir el software
Definicin
Anlisis
Diseo Desarrollo Prueba Mantenim. Se concentra en cuatro caractersticas bsicas: Estructura de datos Arquitectura del software Representaciones de interfaz Detalle procedimental (algoritmo)
Definicin
Anlisis
Diseo Desarrollo Prueba Mantenim. Se llama tambin Implementacin Generacin de cdigo entendible por la mquina Actualmente se investiga mucho sobre la manera de generar cdigo automticamente
Definicin
Anlisis
Diseo Desarrollo Prueba Mantenim. Proceso de depuracin 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
Definicin
Anlisis
Diseo Desarrollo Prueba Mantenim. Correccin 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
Definicin
Anlisis
Diseo Desarrollo Prueba
LIMITACIONES
En la realidad no estrictamente secuencial (se traslapan las etapas) El interesado debera exponer los requisitos en la etapa inicial, pero en realidad l lo hace a travs de todo el proceso y esto complica las cosas La primera versin del software llega al final del proceso, a veces el afn del cliente hace que la aplicacin final no cumpla con los requerimientos
Mantenim.
Comienza con una recoleccin inicial de requisitos para pasar a un diseo rpido y finalmente a la construccin de un prototipo de la solucin.
Utilizar el Prototipo
Revisar el Prototipeo
NO
Prototipo Terminado
El prototipo no contiene todas las caractersticas del sistema final.
El desarrollador y el cliente deben ser consientes 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 versin funcional del Sistema. El desarrollador construye el prototipo rpidamente y en ocasiones sin hacer uso de la tecnologa optima disponible.
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 construccin de sistemas de informacin fcilmente modularizables. El Modelo DRA necesita clientes y desarrolladores comprometidos con el proceso. No es muy til para aplicaciones que requieren adopcin de nuevas tecnologas porque la curva de aprendizaje puede afectar el cronograma del proyecto.
Modelos flexibles que permiten la modificacin del sistema durante su proceso de desarrollo. Procesos iterativos que permiten a los desarrolladores construir versiones del software cada vez ms completas Ejemplos: Modelo Incremental. Modelo Espiral. Modelo Espiral WINWIN. Modelo de Desarrollo Concurrente.
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
Anlisis Incremento 2 Anlisis ... Anlisis Diseo Diseo ... Diseo Cdigo Cdigo ... Cdigo Pruebas Pruebas ... Pruebas
Incremento n
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. Minimizacin del riesgo de falla en el proyecto porque los errores se van corrigiendo progresivamente. Problemas: Adaptacin de los requisitos del cliente para lograr incrementos pequeos (no mas de 20.000 lneas de cdigo) que aadan funcionalidad al sistema.
Nota: Una evolucin de este enfoque se conoce como Programacin Extrema (XP-Extreme Programming).
Modelo Espiral
Utilizacin de ciclos en lugar de sucesin de actividades. Facilita el desarrollo rpido de versiones incrementales de software.
Hace nfasis en la etapa Comunicacin con el Cliente definiendo un conjunto de actividades de negociacin que se llevan a cabo al principio de cada ciclo. El proceso de negociacin 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
Modelo Concurrente
Provee una meta descripcin del proceso de software Mientras que en el Espiral la principal contribucin es que las actividades del software ocurran repetidamente, en el Concurrente es la capacidad de describir las mltiples actividades del software que ocurren simultneamente. Dado que los requerimientos cambian es muy probable que una vez haya comenzado la fase de diseo, sea necesario incorporar cambios. En estos casos No se debe detener el diseo, 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
El proceso de desarrollo se basa en la transformacin matemtica formal de la especificacin del sistema a un programa ejecutable Facilita la verificacin de programas a travs de un riguroso anlisis matemtico. La ejecucin de este tipo de modelos requiere mucho tiempo y esfuerzo. Ingeniera de Software de Sala Limpia
Facilita al ingeniero desarrollador del software la especificacin de las caractersticas del software a alto nivel, con el fin de generar automticamente el cdigo a partir de all. Existencia de herramientas CASE (Computer Aide Software Engineering) Ingeniera de software asistida por computador