PROYECTO DE DESARROLLO DE SOFTWARE
ANÁLISIS DE REQUISITOS
Levantar los requisitos para un producto de software es la primera etapa para crearlo. A menudo, los clientes piensan que saben lo que el software tiene que hacer, pero se requiere de habilidad y experiencia en la ingeniería de software para reconocer requisitos incompletos, ambiguos o contradictorios.
DISEÑO Y ARQUITECTURA
Se refiere a determinar cómo funcionará el software de forma general y planificar su desarrollo. Consiste en incorporar patrones de diseño, buenas prácticas y consideraciones de la implementación tecnológica.
IMPLEMENTACIÓN
Convertir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software, pero no es necesariamente la porción más larga. La complejidad y la duración de esta etapa está íntimamente ligada al o a los lenguajes de programación utilizados.
PRUEBAS
Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación. Una técnica de prueba es probar por separado cada módulo del software.
IMPLANTACIÓN
Constituye el último eslabón de la metodología de desarrollo de software y es posterior al proceso de pruebas.
MANTENIMIENTO
Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software.
METODOLOGÍAS DE DESARROLLO
Una metodología es una colección de procedimientos, técnicas y herramientas, formada por fases, cada una de las cuales se puede dividir en sub-fases, que guiarán a los desarrolladores de sistemas a elegir las técnicas más apropiadas en cada momento del proyecto y también a planificarlo, gestionarlo, controlarlo y evaluarlo.
CASCADA
El modelo de cascada original se desarrolló entre las décadas de los años 60 y 70, y se define como una secuencia de actividades, donde la estrategia principal es seguir el progreso del desarrollo de software hacia puntos de revisión bien definidos.
FASES DEL MODELO CASCADA:
INGENIERÍA Y ANÁLISIS DEL SISTEMA:
Análisis y diseño de todos los componentes del sistema computacional.
ANÁLISIS DE REQUISITOS SOFTWARE:
Se debe conocer qué necesita el usuario para saber qué necesidades debemos cubrir.
DISEÑO:
En esta fase se realizan los algoritmos necesarios para que se cumplan los requerimientos del usuario, así como también los análisis necesarios para saber qué herramientas usar en la etapa de codificación. Se dividen en:
- Diseño de alto nivel o arquitectónico
- Diseño detallado
CODIFICACIÓN:
Es la fase de programación propiamente dicha.
PRUEBAS:
Las componentes, una vez programadas, se ensamblan para formar el sistema y se demuestra que trabaja correctamente antes de ser puesto en práctica por el usuario. Existen varios tipos de pruebas:
- Pruebas de unidad
- Pruebas de integración
- Pruebas de sistema.
MANTENIMIENTO:
El software necesitará cambios después de la entrega. Los tipos de mantenimiento son: mantenimiento preventivo y perfectivo.
VENTAJAS DEL MODELO CASCADA:
- Modelo y planificación fácil y sencillos.
- Sus fases son conocidas por los desarrolladores.
- Los usuarios lo pueden comprender fácilmente.
DESVENTAJAS DEL MODELO CASCADA:
- Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseño.
- Bajo riesgo para desarrollos bien comprendidos utilizando tecnología conocida.
INCREMENTAL
El modelo incremental consiste en un desarrollo inicial de la arquitectura completa del sistema seguida de incrementos y versiones parciales.
EVOLUTIVO
Este modelo considera que el desarrollo de sistemas es un proceso de cambios progresivos mediante cambios de especificación de requerimientos.
ESPIRAL
El modelo espiral, desarrollado durante la década de los años 80, es una extensión del modelo de cascada.
PROTOTIPOS
Un prototipo es una versión preliminar, intencionalmente incompleta o reducida de un sistema.
LOS SIGUIENTES SON ALGUNOS TIPOS DE PROTOTIPO:
LOS PROTOTIPOS DE REQUISITOS:
Permiten que los usuarios perciban la funcionalidad del producto final a través del diseño de interfaces o pantallas del sistema.
LOS PROTOTIPOS DE ANÁLISIS:
Permiten generar rápidamente una arquitectura general que considere las características principales del sistema de acuerdo con la especificación de requisitos.
LOS PROTOTIPOS DE DISEÑO:
Permiten explorar y comprender la arquitectura particular de un sistema para poder evaluar aspectos como cuellos de botella, rendimiento y uso de memoria o incoherencias en el diseño.