Análisis y Diseño de Aplicaciones Ciclo de Vida Docente: T/RT Gonzalo Martínez CETP EMT Informática 3er Año
Introducción En el desarrollo de sistemas, el ciclo de vida son las etapas por las que pasa un proyecto antes de completarse. Es un modelo de referencia de alto nivel de las actividades necesarias para el desarrollo de software. También se le llama Método de desarrollo, Metodología de desarrollo o Ciclo de vida de desarrollo de sistemas.
Introducción El ciclo de vida define las principales fases y actividades del desarrollo de software. Define el orden de dichas fases Sirve para saber donde estamos parados durante un proyecto de software.
Introducción El ciclo de vida define las principales fases y actividades del desarrollo de software, y define el orden de dichas fases.
Ventajas Lograr coherencia entre múltiples proyectos Proporcionar puntos de control y revisión Sirve para saber donde estamos parados durante un proyecto de software.
Etapas del ciclo de vida Las etapas pueden variar de un modelo de ciclo de vida a otro, pero básicamente se mantienen las mismas. También puede pasar que alguna etapa se divida en dos partes, o que se incluya dentro de otra, dependiendo del modelo, o autor de la documentación.
Análisis Esta fase realizamos una investigación a conciencia para tratar de conocer todos los requisitos e implicaciones del proyecto que estamos por abordar. Es de vital importancia que reunamos toda la información pertinente al software a desarrollar y que comprendamos la naturaleza del problema o necesidad que tratamos de cubrir. No podemos elaborar un software que solucione un problema que no comprendemos o no sabemos como se debe solucionar.
Análisis Cuando se trata de un software empresarial, esta fase se enfoca en conocer no solo los requisitos o necesidades de la organización, sino también en conocer el funcionamiento de la organización, para crear un software que responda a las necesidades, la estructura y funciones de la empresa. De esta etapa, surge el documento ESRE (Especificación de Requerimientos)
Diseño El diseño del software es la fase en donde modelamos la estructura y apariencia del software una vez que ya conocemos la naturaleza del problema y hemos determinado cual será la solución mas optima. El diseño del software se enfoca en modelar la base de datos, la arquitectura del software, la interfaz y los algoritmos o procedimientos del mismo, aprovechando las ventajas del desarrollo en equipo.
Diseño En el proceso del diseño debemos construir la solución que será el software basándonos en los requerimientos obtenidos del análisis, en este sentido el diseño es el mapa o el plano que seguirá el programador para construir el software.
Codificación En esta fase tomamos todo lo que se plasmo en el diseño y lo traducimos en el conjunto de ordenes para computadora que es el software. (Lenguajes de Programación, SQL, Scripts, etc)
Pruebas En esta fase tomamos el software que se produjo en la codificación y probamos todas las partes y procesos del mismo, para asegurarnos que cumple con los requisitos que se habían especificado.
Implementación Esta es la fase en que ponemos el software en funcionamiento en el mundo real, o dentro de la organización para la que fue desarrollado. En esta fase se realizan todos los preparativos necesarios para asegurar que la inclusión del software dentro de la organización se realizara sin contratiempos y produciendo la menor cantidad de inconvenientes posible.
Duración de las etapas Análisis: 30% del tiempo total Diseño: 30% del tiempo total Codificación: 25% del tiempo total Prueba: 10% del tiempo total Implementación: 5% del tiempo total
Modelos de ciclo de vida Existen varios modelos de ciclo de vida. No existe ningún estándar sobre que modelo usar Se usa el modelo que mejor se adapte al proyecto y al funcionamiento del equipo de desarrolladores
Modelo en cascada
Modelo en cascada El proyecto progresa a través de una secuencia ordenada de fases. Se hace una revisión al final de cada fase para determinar si se pasa a la siguiente. El software como producto tangible se obtiene al final del ciclo.
Modelo en cascada Buena performance en proyectos con especificaciones estables y bien comprendidas. (Por ejemplo: sistemas de gestión) Los Requerimientos detectados tardíamente suelen ser muy costosos Se dificulta la vuelta a una etapa anterior Feedback de defectos tardío. El costo de corrección pude ser enorme dependiendo del tipo de defecto encontrado
Modelo en cascada Es muy difícil diseñar sistemas complejos sin cometer errores la primera vez que se realiza Puede ocurrir que pasen cambios de visión o necesidades durante el desarrollo del sistema, lo cual puede ser grave en sistemas que llevan meses, o años de desarrollo.
Modelo incremental
Modelo incremental Se realiza primero el análisis del sistema, y el diseño general del mismo. Se itera sobre el resto del diseño, la codificación y las pruebas. Permite que el cliente vea avances del sistema.
Modelo evolutivo
Modelo evolutivo Se divide el sistema en distintas partes autónomas. Las iteraciones incluyen análisis y diseño Es útil cuando tengo requerimientos poco definidos, o el dominio de la aplicación es poco conocida para el desarrollador y/o cliente
Modelo evolutivo Produce resultados visibles en forma temprana Puede ser difícil determinar cuando el producto es aceptable.
Modelo en V
Modelo en V Refleja un ciclo similar al modelo en cascada. Se tiene una secuencia de etapas, que se deben cumplir para pasar a la siguiente.
Modelo en V El lado izquierdo de la V va descomponiendo el sistema hasta el desarrollo, y el lado derecho lo va componiendo en el sistema final. Agrega verificaciones y validaciones, de las etapas a la derecha de la V, con las etapas correlativas a la izquierda de la V
Beneficios Estandarizar el desarrollo de sistemas Entrenar y comunicar a los desarrolladores Gestionar y realizar seguimiento de proyectos de software Mejorar con la experiencia de cada proyecto