Modelo de Procesos de desarrollo de software Flashcards
Que es un ciclo de vida de desarrollo de software?
El ciclo de vida de un proyecto de software especifica el enfoque general del desarrolo, indicando:
-Los procesos, actividades, tareas que se van a realizar y en que orden.
-Los productos que se van a generar, los productos que se van a entregar al cliente (Entregables) y en que orden.
Como es el ciclo de vida clasico o en cascada y cuando aplicarlo?
Es un modelo lineal:
Analisis de requerimientos -> Diseño -> Implementación -> Pruebas -> Mantenimiento
Se debe aplicar: Sólo debe utilizarse cuando los requerimientos se comprende bien y sea improbable que cambien radicalemnte durante el desarrollo del sistema, Baja complejidad del sistema y tiotal disponibilidad de los recursos.
Que es la brecha de expectativas?
Es la divergencia/diferencia entre lo que quiere el usuario y lo que los desarrolladores construyen.
Como se puede mejorar la brecha de expectativas?
Se puede mejorar a tarves del feeback del usuario en distintos entregables antes de llegar al producto final.
Cuales son los modelos iterativos?
-Prototipo: Escuchar al cliente -> Construcción /revision de prototipo -> prototipo con base a pruebas de cliente -> escuchar al cliente ->….
-RAD: Modelado de negocio -> Modelado de datos -> Modelado de proceso -> Generaciín de aplicación -> Prueba y Corrección -> Modelado de negocio …
Cuales son las caracteristicas del prototipo?
- Simula el funcionamiento del sistema antes de que sea construido
- Aporta al usuario ejemplo visual de entradas y salidas
- Es importante porque:
-Mejor calidad del sistema final
-Se identifica lo problemas temprano
-Se involucra al usuario final
-Se satisfacen sus requerimientos
-Entrenar a los usuarios, se evalua su experiencia
Cuando se debe aplicar el prototipo?
Cuando:
-Los requisitos no están claros.
-El alcance del proyecto no está bien definido
-Los usuarios no se muestran colaboradores
-Las comunicaciones con el entorno real presentan gran complejidad
-El cliente no está seguro de contratarnos.
- Cuando el usuario final no analizara modelos abstractos.
- No se esta seguro de la viabilidad de la solución.
- Solo se puede obteer los requerimientos mendiante un proceso de ensayo-error.
- El sistema no requiere de algoritmos detallados.
- Complejidad media.
Cómo es el proceso de prototipo?
- Investigación preliminar
- Construccion de un prototipo inicial
- Refiniar el prototipo hasta que sea aceptado (Iteraciones)
- Completar y liberar el prototipo
Cuales son los tipos de protipos?
Dependiendo del objtivo para los cuales se realiza y el costo es cual es el tipo de prototipo a utilizar:
- Maqueta: Representación Visual estatica de las funciones del sistema (Se puede simular la interacción), no tiene todas las funcionalidades del sistema, se utilizan elementos encadenados de entradas y salidad con datos simples estaticos.
- Desacrtable (Si la herramienta real de desarrolo no es agil para prototipoas se usa otra.): Se implementa de modo desprolijo sin aplicar Ingenieria de software (como calidad o facilidad de mantenimiento). Realizarlo debe ser facil de crear/modificar y rapido, su costo debera ser bajo, se utilizan datos reales, finalizada la etapa se debe tirar. (Si no se descrata este tipo de prototipo podra generar grandes problemas de mantenimiento).
- Progresivo: Se usa cuando la herramienta que tenemos es agil para prototipar. Se aplica Ingenieria de software en todas las etapas. Se usan datos reales. El prototipo se transforma en el sistema final.
Cuando aplicar DAR (Desarrollo Rapido de APlicaciones)
-Ciclo extremadamente corto
-Sistemas que se puedan modularizar
-Cada una de las funciones pueden ser desarrolladas por equipos separados que trabajan en paralelo para finalmente integrarse en un producto.
-Basado en re-uso de componentes y empleos de tecnicas de desarrollo avanzadas.
Que hacen y cuales son los modelos evolutivos?
Son modelos que se adaptan a la evolucion que sufren los requisitos del sistema en funcion del tiempo.
Los vistos son:
-Incremental
-Basado en Componentes
-Espiral
Como es el ciclo de vida incremental?
- El sistema se desarrolla por partes
- Cada iteración devuelve un “incremento” o version operativa. Complejidad media del sistema
- Los errores producidos en un incremento son solucionados para el proximo incremento
- Se basa en la idea de reciclado, reutilizar componentes de software.
Que es un componente y cuales son sus beneficios?
Es una pieza de código pre-elaborad que encapsula alguna funcionalidad expuesta a traves de interfaces estandar.
Sus beneficios son:
-Reutilización del software
-Simplifica las pruebas
-SImplifica el mantenimiento del sistema
-Mayor calidad
-Ciclo de desarrollo más corto
-Mejora el retorno de la inversion
Funcionalidad mejorada. Solo entender la naturaleza no sus detalles internos.
= Incrementa la productividad.
Como es el ciclo de vida basado en componentes?
Cada ciclo se divide en 4 sectores:
1. Definición de objetivos, restricciones del producto y proceso, plan de administración
2. Evaluación y reducción de riesgos (por ejemplo, mejor definicion de requerimientos mediante prototipos)
3. desarrollo y validación: eleccion de un modelo para el desarrollo
4. Planificación: el proyecto se revisa y se decide si se continua con el siguiente cilco, si es asi, se planifica la siguiente fase.
Cuando aplicar el CV basado en componentes?
- Basado en el modelo en espiral + tecnologias de objetos
- Se basa en la existencia de un numero significativo de componentes reutilizables. El proceso de desarrollo del sistema se enfoca en integrar dichos componentes, mas que desarrollarlo de cero.
- Un componente de software reutilizable (CRS), es un artefacto de software Autocontenido y Claramente identificable:
-Ejecuta funciones especificas
-Tien una interfase clase a traves de la cual se integra a otros sistemas
-Tiene documentación apropiada y se caracteriza por su reuso.