Modelos de Procesos
Repaso
Modelos de Procesos Modelo en Cascada Modelos Evolutivos
Prototipo Iterativo Incremental Espiral
Modelos de Procesos
Modelo en Cascada : considera las actividades del proceso y las representa como fases separadas Desarrollo Evolutivo: entrelaza las actividades de especificacin, desarrollo y validacin IS basada en componentes: se basa en la existencia de componentes reutilizables y su integracin
Estos modelos no se excluyen mutuamente y a menudo se utilizan juntos
Lic. Paola Piovano
Modelo en Cascada
MC - Ventajas
La ventaja es que la documentacin se produce en cada fase Es disciplinado En proyectos donde hay alta estabilidad es eficiente ya que se pueden encontrar errores de alto impacto en etapas tempranas y a bajo costo.
MC - Desventajas
Inflexibilidad al dividir en etapas. Es rgido y lineal. No provee anticipacin al cambio. Se deben hacer compromisos en etapas iniciales lo que hace dificil responder a los cambios en requerimientos de cliente El usuario interviene al principio y al final del proyecto. No permite implementaciones parciales. Se prueba al final y se retrasa asi la deteccin de errores crticos No apto para desarrollos agiles por la cantidad de dcocumentacin
Lic. Paola Piovano
El paradigma Evolutivo
Problema gap entre la definicin de requerimientos y la distribucin de la aplicacin. Estrategia Entregar algo y medir el valor agregado. Ajustar diseo y objetivos. Exponer implementacion inicial a comentarios del usuario y refinarla en nuevas versiones Iterar: desarrollo de versiones cada vez ms completas del software.
Modelos Evolutivos
Las actividades de especificacion, desarrollo y validacion se entrelazan
Modelo de Prototipos
12
Modelo de Prototipos
Ventajas Extraccin de requerimientos incremental y buena interaccin con el cliente. Es til cuando los requerimientos son pobremente definidos o nadie conoce bien el dominio del problema. Desventajas El cliente ve el prototipo y lo confunde con el sistema real. Se toman decisiones rpidas para poder construir el prototipo, que son difciles de revertir Difcil saber en que momento el producto converger a la solucin El prototipo para descartar nunca se descarta. No hay especificacin del sistema.
Lic Paola Piovano
13
CBSE
Anlisis de componentes -> dada la especificacin se buscan los componentes para satisfacer los requerimientos Modificacin de requerimientos -> se analizan los requerimientos en base a los componentes encontrados para determinar modificaciones necesarias Diseo del sistema con reutilizacin -> organizar un marco de trabajo segn los componentes Desarrollo e integracin -> la integracin forma parte del desarrollo
CBSE - Conclusiones
Ventaja - > reduce cantidad de sw a desarrollar, menos costos y menos riesgos Generalmente, permite una rapida entrega del sw Desventaja -> se deben hacer compromisos en los requerimientos y el sistema puede no cumplir la necesidad real del usuario
17
18
10
Modelo Espiral
Modelo Espiral - combina las actividades del desarrollo con la gestin del riesgo, para minimizar y controlar el riesgo.
Riesgo: circunstancias potencialmente adversas que pueden perjudicar el proceso de desarrollo y la calidad del producto. Administracin del riesgo: disciplina cuyos objetivos son manejar y eliminar los tems de riesgo (del software) antes que se transformen en amenaza.
Lic Paola Piovano
21
Modelo Espiral
Es cclico -> cada ciclo representa una fase del proceso del sw Es un meta-modelo. Estrategia: comenzar por los desarrollos de mayor riesgo.
22
11
23
Modelo Espiral
Primera etapa Se identifican los objetivos de la porcin del producto Plantear alternativas: comprar, disear, o reusar Segunda etapa Se evalan las alternativas y se identifican las reas de riesgo -> actividades asociadas a la evaluacion de riesgo Tercera etapa Consiste del desarrollo y verificacin del prximo nivel del producto. Cuarta etapa Se revisan los resultados para planificar la prxima vuelta de espiral.
Lic Paola Piovano
24
12
Modelo Espiral
Ventajas Constituye un enfoque realista del desarrollo de sistemas de software de gran escala. Desarrollador y cliente comprenden y manejan mejor los riesgos. Mantiene el enfoque sistemtico de los pasos sugeridos por el ciclo de vida de cascada, pero incorpora el marco de trabajo iterativo. Considera los riesgos tcnicos en todas las etapas, y aplicado adecuadamente, logra reducirlos.
Lic Paola Piovano
25
Modelo Espiral
Desventajas Requiere de habilidades para la evaluacin del riesgo, si un riesgo importante no se descubre pierde eficacia. No existe demasiada experiencia en su uso. Requiere un gran conocimiento de gestin por parte de quien dirige el proyecto Es un modelo complejo
26
13
Modelo Transformacional
Modelo Transformacional est basado en especificaciones formales. Ve al desarrollo de sw como una secuencia de pasos que gradualmente transforma una especificacin en implementacin.
Requiere que se transformen los requerimientos informales en especificaciones formales: mtodos de especificacin formal. Pretende reducir errores automatizando pasos del desarrollo.
Lic Paola Piovano
27
Modelo Transformacional
28
14
Modelo Transformacional
Ventajas Busca reusar y construir componentes reusables. Los cambios se hacen en la especificacin. Todo queda documentado. Garantiza resultados correctos. Desventajas El desarrollo de modelos formales es caro y lleva tiempo. Se requiere de estudios detallados y personal capacitado. Es difcil utilizar el modelo como medio de comunicacin con el cliente.
Lic Paola Piovano
29
15
PU
PU
Metodo Unificado : reune y combina las mejores caracteristicas de los mtodos OO propuestos por los 3 autores y otros expertos El resultado fue el desarrollo del UML, Lenguaje Unificado de Modelado que contiene una notacin robusta para el modelado OO El UML proporciona la herramienta pero no el marco de trabajo del proceso El PU provee este marco La empresa Rational Corporation apoy y contrribuy para el desarrollo del proceso, de ah el nombre alternativo
Lic. Paola Piovano
16
UML
Fases del PU
17
Fases del PU
Inicio: CU preliminares, esquema tentativo de susbsistemas importantes Elaboracin: refina y expande CU preliminares, expande arquitectura, modelo de anlisis, modelo de diseo Construccin: implementacin en cdigo fuente, diseo y ejecucin de pruebas de unidad, integracin Transicin: pruebas de versiones beta, documentacin soporte, lanzamiento de incremento
18
19
Desarrollo Agil
Un grupo de expertos, consultores y escritores reunidos en una organizacin la Alianza Agil Firman el Manifiesto Agil para desarrollo gil de sw
En esencia los mtodos giles son un intento por superar debilidades advertidas y reales en la IS convencional
Lic. Paola Piovano
Manifiesto Agil
Estamos poniendo al descubierto mejores mtodos para desarrollar software, hacindolo y ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar: A los individuos y su interaccin, por encima de los procesos y las herramientas. Al sw que funciona, por encima de la documentacin exhaustiva. La colaboracin con el cliente, por encima de la negociacin contractual. La respuesta al cambio, por encima del seguimiento de un plan. Aunque hay valor en los elementos de la derecha, valoramos ms los de la izquierda.
Lic. Paola Piovano
20
21
22
Agilidad
Propone una respuesta efectiva al cambio (insistencia en el cambio) Resalta la entrega rapida del sw operativo y le resta importancia a los productos de trabajo intermedio (no siempre es bueno) Adopta al cliente como una parte del equipo de desarrollo y trabaja para eliminar el nosotros y ustedes
Lic. Paola Piovano
23
Modelos Agiles
PE: Programacion Extrema Scrum Crystal Methodologies Adaptive Software Development (ASD) Dynamic Systems Development Method (DSDM) Feature -Driven Development (FDD) Lean Development (LD)
24
PE
Utiliza un enfoque OO Es la ms destacada de los procesos giles de desarrollo de software Propone practicas para 4 actividades del marco de trabajo: planeacin, diseo, codificacin y pruebas
PE
25
Proceso PE
El ciclo de desarrollo consiste (a grandes rasgos) en los siguientes pasos: 1. El cliente define el valor de negocio a implementar. 2. El programador estima el esfuerzo necesario para su implementacin. 3. El cliente selecciona qu construir, de acuerdo con sus prioridades y las restricciones de tiempo. 4. El programador construye ese valor de negocio. 5. Vuelve al paso 1
Practicas XP
El juego de la planificacin. Hay una comunicacin frecuente el cliente y los programadores. El equipo tcnico realiza una estimacin del esfuerzo requerido para la implementacin de las historias de usuario y los clientes deciden sobre el mbito y tiempo de las entregas y de cada iteracin. Entregas pequeas . Producir rpidamente versiones del sistema que sean operativas, aunque no cuenten con toda la funcionalidad del sistema. Esta versin ya constituye un resultado de valor para el negocio. Una entrega no debera tardar ms 3 meses.
26
Practicas XP
Metfora. El sistema es definido mediante una metfora o un conjunto de metforas compartidas por el cliente y el equipo de desarrollo. Una metfora es una historia compartida que describe cmo debera funcionar el sistema (conjunto de nombres que acten como vocabulario para hablar sobre el dominio del problema , ayudando a la nomenclatura de clases y mtodos del sistema). Diseo simple . Se debe disear la solucin ms simple que pueda funcionar y ser implementada en un momento determinado del proyecto.
Practicas XP
Pruebas . La produccin de cdigo est dirigida por las pruebas unitarias. stas son establecidas por el cliente antes de escribirse el cdigo y son ejecutadas constantemente ante cada modificacin del sistema. Refactorizacin (Refactoring). Es una actividad constante de reestructuracin del cdigo con el objetivo de remover duplicacin de cdigo, mejorar su legibilidad, simplificarlo y hacerlo ms flexible para facilitar los posteriores cambios. Se mejora la estructura interna del cdigo sin alterar su comportamiento externo
27
Practicas XP
Programacin en parejas . Toda la produccin de cdigo debe realizarse con trabajo en parejas de programadores. Esto conlleva ventajas implcitas (menor tasa de errores, mejor diseo, mayor satisfaccin de los programadores, .) Propiedad colectiva del cdigo. Cualquier programador puede cambiar cualquier parte del cdigo en cualquier momento. Integracin continua. Cada pieza de cdigo es integrada en el sistema una vez que est lista. As, el sistema puede llegar a ser integrado y construido varias veces en un mismo da
Lic. Paola Piovano
Practicas XP
40 horas por semana. Se debe trabajar un mximo de 40 horas por semana. No se trabajan horas extras en dos semanas seguidas. Si esto ocurre, probablemente est ocurriendo un problema que debe corregirse. El trabajo extra desmotiva al equipo. Cliente in-situ. El cliente tiene que estar presente y disponible todo el tiempo para el equipo. ste es uno de los principales factores de xito del proyecto XP. El cliente conduce constantemente el trabajo hacia lo que aportar mayor valor de negocio y los programadores pueden resolver de manera inmediata cualquier duda asociada. La comunicacin oral es ms efectiva que la escrita.
Lic. Paola Piovano
28
Practicas XP
Estndares de programacin. XP enfatiza que la comunicacin de los programadores es a travs del cdigo, con lo cual es indispensable que se sigan ciertos estndares de programacin para mantener el cdigo legible. El mayor beneficio de las prcticas se consigue con su aplicacin conjunta y equilibrada puesto que se apoyan unas en otras El mrito de XP PE es integrarlas de una forma efectiva y complementarlas con otras ideas desde la perspectiva del negocio, los valores humanos y el trabajo en equipo
Lic. Paola Piovano
29
30
31