Ciclo de vida del software

Create a To-Do list for your upcoming tasks

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Ciclo de vida del software por Mind Map: Ciclo de vida del software

1. Una fase es un conjunto de actividades relacionadas con un objetivo en el desarrollo del proyecto. Se construye agrupando tareas (actividades elementales) que pueden compartir un tramo determinado del tiempo de vida de un proyecto. La agrupación temporal de tareas impone requisitos temporales correspondientes a la asignación de recursos (humanos, financieros o materiales).

2. Son los productos intermedios que generan las fases. Pueden ser materiales o inmateriales (documentos, software). Los entregables permiten evaluar la marcha del proyecto mediante comprobaciones de su adecuación o no a los requisitos funcionales y de condiciones de realización previamente establecido.

3. Entregables

4. Fases

4.1. FASE PLANIFICACIÓN:

4.2. En esta primera fase se realiza el planteamiento del problema, se definen alcances y objetivos del software.

4.3. Objetivos: estudio de viabilidad, realizar planificación detallada.

4.4. 1/5

4.5. FASE ANÁLISIS (definición de requisitos):

4.6. Esta fase busca definir los requisitos que son los que dirigirán el desarrollo del proyecto de software.

4.7. Objetivos: conocer los requisitos, asegurar que los requisitos son alcanzables, formalizar acuerdo con el cliente.

4.8. 2/5

4.9. FASE DISEÑO:

4.10. En esta fase se estudian posibles opciones de implementación para el software que hay que construir, estructura general del mismo.

4.11. Objetivos: Identificar soluciones tecnológicas, asignar recursos materiales, proponer identificar y seleccionar, establecer métodos de validación, ajustar especificaciones.

4.12. 3/5

4.13. FASE PRUEBAS

4.14. Esta fase busca detectar fallos cometidos en las etapas anteriores para corregirlos.

4.15. Objetivos: Realizar los ajustes necesarios para corregir posibles errores o inconsistencias.

4.16. 4/5

4.17. FASE MANTENIMIENTO

4.18. En esta fase se realizan tres puntos referenciados: mantenimiento correctivo, mantenimiento adaptativo y mantenimiento perfectivo.

4.19. Objetivos: Operación asegurar que el uso del proyecto es el que se pretendía, mantenimiento.

5. Fase de definición de requisitos

5.1. Fase de definición de requisitos

5.1.1. En esta primera fase del ciclo de vida del software, también llamada fase de análisis, se recopila, se examina y se formulan los requisitos del cliente, así como la verificación de las posibles restricciones que se puedan aplicar. Por eso, la etapa de análisis en el ciclo de vida del software corresponde al proceso a través del cual se intenta descubrir qué es lo que realmente se necesita y se llega a una comprensión adecuada de los requerimientos del sistema (las características que el sistema debe poseer).

5.2. Fase

5.2.1. Análisis

5.3. Actividades

5.3.1. Definición del alcance del proyecto.

5.3.2. Identificación del negocio.

5.3.3. Toma de requerimientos.

5.3.4. Estudio de procesos de negocio.

5.3.5. Calendarización del proyecto.

5.4. Artefactos

5.4.1. Modelo del negocio.

5.4.2. Análisis y realización de casos de uso.

5.4.3. Modelo de procesos y actividades de negocio.

5.4.4. Cronograma del proyecto.

6. Ingeniería de requisitos

6.1. La ingeniería de requisitos es el proceso de estudiar las necesidades del usuario para llegar a una definición de requisitos de sistema, hardware o software.

6.2. Etapas de la ingeniería de requisitos

6.2.1. Elicitación

6.2.1.1. Aquí los analistas deben trabajar junto con el cliente para descubrir el problema que el sistema debe resolver, los diferentes servicios que el sistema debe prestar y las restricciones que se pueden presentar.

6.2.2. Análisis

6.2.2.1. Sobre la base de la obtención realizada previamente, comienza esta fase la cual tiene como propósito descubrir problemas con los requisitos del sistema identificados hasta el momento

6.2.3. Especificación

6.2.3.1. Aquí se documentan los requisitos acordados con el cliente, en un nivel apropiado de detalle. En la práctica, esta etapa se realiza conjuntamente con el análisis, por lo que se puede decir que la especificación es el “pasar en limpio” el análisis realizado previamente aplicando técnicas y/o estándares de documentación, como la notación UML (Lenguaje de Modelado Unificado), que es un estándar para el modelado orientado a objetos, por lo que los casos de uso y la obtención de requisitos basada en los casos de uso se utilizan cada vez más para la obtención de requisitos.

6.2.4. Validación

6.2.4.1. Por último, la validación garantiza que los requisitos, una vez analizados y resueltos los posibles conflictos, correspondan realmente a las necesidades de clientes y usuarios, para evitar que, a pesar de que el producto final sea técnicamente correcto, no sea satisfactorio. La validación puede llevar al analista a reescribir algunas especificaciones de requisitos y, en otros casos, a obtener nuevos, producto de la aparición de necesidades que hasta entonces estaban ocultas, para volver a evaluar el análisis inicial, o para corregir y perfeccionar el conjunto de requisitos documentados.

7. Modelos del paradigma tradicional

7.1. Modelo en cascada

7.1.1. Uno de los primeros modelos de ciclo de vida del desarrollo fue establecido por W. Royce en 1970 y es conocido como el “modelo de cascada” (waterfall model). En su concepción básica, cada una de las actividades genera, como salidas, productos y modelos que son utilizados como entradas para el proceso subsiguiente; esto supone que una actividad debe terminarse (por lo menos, en algún grado) para empezar la siguiente.

7.2. Modelo espiral

7.2.1. Fue diseñado por Boehm en el año 1988 y se basa en una serie de ciclos repetitivos para ir ganando madurez en el producto final. El espiral se repite las veces que sea necesario hasta que el cliente o el usuario obtenga la satisfacción de sus necesidades. En este modelo hay 4 actividades que envuelven a las etapas: planificación, análisis de riesgo, implementación y evaluación. Una de sus principales ventajas es que los riesgos van disminuyendo conforme avanzan los ciclos o interacciones.

7.3. Modelo iterativo o por prototipos

7.3.1. Este modelo consiste en un procedimiento que permite al equipo de desarrollo diseñar y analizar una aplicación que represente el sistema que será implementado (McCracken y Jackson, 1982).

8. Paradigmas de los modelos de ciclo de vida del software

8.1. Paradigma tradicional

8.1.1. Los paradigmas tradicionales se identifican, fundamentalmente, por ser lineales, es decir se trata de completar cada proceso de principio a fin hasta que quede listo para avanzar a la segunda fase del ciclo del software.

8.1.2. Deventaja

8.1.3. Pérdida de tiempo si se encuentran errores en una fase avanzada porque al devolverse se debe pasar nuevamente por todas las fases y reestructurar de acuerdo con las modificaciones.

8.2. Paradigma orientado a objetos

8.2.1. Las etapas de desarrollo de software en el paradigma orientado a objetos, se conforma principalmente por la creación de clases, análisis de requisitos y el diseño. Con este paradigma se pretende que el código fuente sea reutilizable para otros proyectos.

8.3. Paradigma de desarrollo ágil

8.3.1. El objetivo de este paradigma es el desarrollo de proyectos en poco tiempo, se simplifican procesos tediosos, se agilizan las fases del desarrollo y las interacciones se hacen en corto tiempo.

8.3.2. Una de las principales diferencias con los paradigmas anteriores es que el cliente se ve involucrado en el proyecto durante el desarrollo de este, así, el cliente sugiere mejoras, propone ideas y se mantiene al tanto del desarrollo del producto, a diferencia del paradigma tradicional y el orientado objeto donde el cliente únicamente está al principio.

9. Es Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software

10. Importancia de los requisitos

10.1. Los requisitos cobran importancia dentro del ciclo de vida del software, puesto que:

10.1.1. 1. Establecen el alcance del trabajo subsecuente, pueden definir estrategias de desarrollo, riesgos, tomar decisiones de negocio (viabilidad de negocio), de proyecto (tiempo, recursos), de sistema (arquitectura).

10.1.2. 2. Indican al equipo del proyecto qué requieren los usuarios (necesidades de negocio).

10.1.3. 3. El éxito o fracaso de un proyecto está altamente influenciado por la calidad de los requisitos y el proceso para gestionarlos durante el desarrollo de un producto.

11. Clasificación

11.1. Los requerimientos se pueden definir de distintas maneras, la primera clasificación se encuentra relacionada con el nivel de descripción con la que cuentan estos y dentro de este tipo de clasificación se encuentran:

11.1.1. Requerimientos de usuario

11.1.1.1. Son declaraciones, en lenguaje natural y en diagramas, de los servicios que se espera que el sistema proporcione y de las restricciones bajo las cuales debe funcionar.

11.1.2. Requerimientos de sistema

11.1.2.1. Estos requerimientos establecen con detalle las funciones, servicios y restricciones operativas del sistema. El documento de requerimientos del sistema deberá ser preciso, y definir exactamente lo que se va a desarrollar.

11.1.2.2. Requerimientos funcionales

11.1.2.2.1. Son declaraciones de los servicios que debe proporcionar el sistema, de la manera en que este debe reaccionar a entradas particulares; o también pueden declarar explícitamente lo que el sistema no debe hacer.

11.1.2.3. Requerimientos no funcionales

11.1.2.3.1. Son restricciones de los servicios o funciones ofrecidos por el sistema. Incluyen restricciones de tiempo, sobre el proceso de desarrollo y estándares. Dentro de estos requerimientos se encuentra todo lo referente a la fiabilidad, el tiempo de respuesta y la capacidad de almacenamiento.

12. Es un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso (2008).

13. es el proceso que se sigue para construir y hacer evolucionar un determinado software.

14. Modelos del ciclo de vida del paradigma ágil

14.1. Scrum

14.1.1. Este modelo se basa en el desarrollo incremental, es decir conforme pasen las fases y la iteración mayor será el tamaño del proyecto que se está desarrollando.

14.2. El Scrum consiste en realizar un análisis de los requerimientos del sistema (Product Backlog), señalar cuáles serán los objetivos a corto o mediano plazo dentro de un sprint, o sea, la fase de desarrollo. Posteriormente, los desarrolladores harán lo suyo, se realizarán algunas pruebas y se retroalimentará de acuerdo con lo conseguido al terminar la última fase.

14.3. Modelo Kanban

14.3.1. David J. Anderson (reconocido como el líder de pensamiento de la adopción del Lean/Kanban para el trabajo de conocimiento), formuló el método Kanban como una aproximación al proceso evolutivo e incremental y al cambio de sistemas para las organizaciones de trabajo. El método está enfocado en llevar a cabo las tareas pendientes y los principios más importantes pueden ser divididos en cuatro principios básicos y seis prácticas.

14.3.2. El modelo Kanban es uno de los modelos más visuales de las metodologías ágiles; este consiste en la creación de un tablero con etiquetas, donde se seccionan cada una de las fases de su desarrollo, además se clasifican de acuerdo con los equipos de trabajo y se les asignan objetivos a corto, mediano y largo plazo.

14.4. Modelo XP o programación extrema

14.4.1. Modelo XP o programación extrema

14.4.1.1. La programación extrema o eXtreme Programming (XP) es un enfoque de la ingeniería de software formulado por Kent Beck, autor del primer libro sobre este tema: Extreme Programming Explained: Embrace Change (1999). Esta metodología es adaptable según las necesidades y requerimientos a implementar, además, el cliente se encuentra involucrado en el proceso de desarrollo lo que hace que el producto pueda ser terminado en un menor tiempo.