09 Oct

Ciclo de Vida del Software

Modelo de Ciclo de Vida Clásico o Cascada

1ª Fase Análisis: Consiste en la recopilación de los requisitos del software. Se debe comprender el ámbito de información del software así como la función, el rendimiento y las interfaces requeridas.

2ª Fase Diseño: Consiste en descomponer y organizar el sistema en elementos componentes que puedan ser desarrollados por separado.

3ª Fase Codificación: En esta fase se traduce el diseño a un lenguaje legible para el computador.

4ª Fase Integración: Consiste en probar el sistema completo para garantizar el funcionamiento correcto del conjunto antes de ser puesto en explotación.

5ª Fase Mantenimiento: Puede ocurrir que durante la explotación del sistema sea necesario realizar cambios para corregir errores que no han sido detectados en las fases anteriores o bien para introducir mejoras.

Modelo en V

En este modelo hay un reconocimiento explícito de las diferentes alternativas para alcanzar los objetivos del proyecto.

Se centra en la identificación de los riesgos asociados a cada alternativa y en la manera de resolver dichos riesgos.

Los proyectos se dividen en ciclos (ciclos de la espiral) avanzándose en el desarrollo mediante consensos al final de cada ciclo.

Se adapta a cualquier tipo de actividad:

  1. Planificación: Se identifican los objetivos, las alternativas y las restricciones de la fase.
  2. Análisis de Riesgos: Aquí se llevan a cabo el análisis de las alternativas e identificación y resolución de los riesgos.
  3. Ingeniería del Software: Es donde se desarrolla el producto que corresponde a ese ciclo.
  4. Evaluación por parte del cliente: Valora los resultados que se obtienen de la ingeniería y se planifica el siguiente ciclo.

Modelo Espiral

Este modelo se basa en una serie de ciclos repetitivos que se van refinando progresivamente. Cada ciclo incluye las siguientes fases:

  1. Determinación de objetivos: Se definen los objetivos específicos del ciclo.
  2. Análisis de riesgos: Se identifican y evalúan los riesgos potenciales.
  3. Desarrollo y prueba: Se lleva a cabo el desarrollo del software y se realizan las pruebas correspondientes.
  4. Planificación del siguiente ciclo: Se planifica el siguiente ciclo en función de los resultados del ciclo actual.

Mantenimiento del Software

Mantenimiento Correctivo: Tiene como finalidad corregir errores en el producto software que no han sido detectados y eliminados durante el desarrollo inicial del mismo.

Mantenimiento Adaptativo: Se produce en aplicaciones cuya explotación dura bastante años, de manera que los elementos básicos HW y SW que constituyen la plataforma o entorno en que se ejecutan evolucionan, modificándose parcialmente la interfaz ofrecida a las aplicaciones que corren sobre ellos.

Mantenimiento Perfectivo: Es necesario para obtener versiones mejoradas del producto que permitan mantener o aumentar el éxito del mismo.

Ingeniería Inversa

Actividad que se ocupa de descubrir cómo funciona un programa, función o característica de cuyo código fuente no se dispone, hasta el punto de poder modificar ese código o generar código propio.

Reingeniería

Consiste en generar un sistema bien organizado y documentado a partir del sistema inicial deficiente.

Herramientas CASE

Conjunto de programas o aplicaciones informáticas que dan asistencia a los analistas, ingenieros de software y desarrolladores durante todos los pasos del Ciclo de Vida de desarrollo de un Software.

CASE: Es la automatización de métodos existentes de Ingeniería del Software con el objetivo de mejorar la calidad del producto junto con la eficiencia de los desarrolladores de software.

UML: Es un lenguaje para especificar, construir, visualizar y documentar los artefactos de un sistema de software orientado a objetos. Un artefacto es una información que es utilizada o producida mediante un proceso de desarrollo de software.

Características de los Generadores de Código

  • Lenguaje generado: Si se trata de un lenguaje estándar o un lenguaje propietario.
  • Portabilidad del código generado: Capacidad para poder ejecutarlo en diferentes plataformas físicas y/o lógicas.
  • Generación del esqueleto del programa o del programa completo: Si únicamente genera el esqueleto será necesario completar el resto mediante programación.
  • Posibilidad de modificación del código generado: Suele ser necesario acceder directamente al código generado para optimizarlo o completarlo.
  • Generación del código asociado a las pantallas e informes de la aplicación.

Pruebas de Código

  • Adquisición de datos: herramientas que adquieren datos que se utilizaran durante la prueba.
  • Medida estática: herramientas que analizan el código fuente sin ejecutar casos de prueba.
  • Medida dinámica: herramientas que analizan el código fuente durante la ejecución.
  • Simulación: herramientas que simulan las funciones del hardware o de otros elementos externos.
  • Administración de comprobaciones: herramientas que prestan su asistencia en la planificación, desarrollo y control de las comprobaciones.
  • Herramientas de funcionalidad cruzada: se trata de herramientas que cruzan los límites de las categorías anteriores.

Deja un comentario