Algunas actividades genéricas en todos los procesos de software son:
- Especificación
- Diseño
- Desarrollo
- Validación
- Evolución
Estas actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse.
Modelos Genéricos:
Modelo Cascada, separar en distintas fases de especificación y desarrollo
Fases del modelo de cascada:
- Análisis de requerimientos y definición
- Diseño del sistema y del software
- Implementación y prueba de unidades
- Integración y prueba del sistema
- Operación y mantenimiento
Aplicabilidad del modelo de cascada
Este modelo es sólo apropiado cuando los requerimientos se conocen bien y es improbable que
cambien radicalmente durante el desarrollo del sistema.
Este modelo es usado comúnmente en proyectos grandes de ingeniería de sistemas donde el sistema es desarrollado en varios sitios
Modelo de desarrollo evolutivo
- El desarrollo evolutivo se basa en la idea de desarrollar una implementación inicial.
- Exponerla a los comentarios del usuario y Refinarla a través de las diferentes versiones. hasta desarrollar un sistema adecuado.
- Las actividades de especificación, desarrollo y validación se entrelazan en vez de separarse.
- Existe una rápida retroalimentación entre éstas etapas.
Tipos de desarrollo evolutivo
Desarrollo exploratorio
- El objetivo del proceso es trabajar con el cliente para explorar sus requerimientos y entregar un sistema final
- El desarrollo empieza con las partes del sistema que se comprenden mejor
- El sistema evoluciona agregando nuevos atributos propuestos por el cliente
Prototipos desechables
- El objetivo del proceso es comprender los requerimientos del cliente y entonces desarrollar una definición mejorada de los requerimientos del sistema.
- El prototipo se centra en experimentar con los requerimientos del cliente que no se comprenden del todo.
Aplicabilidad del modelo de desarrollo evolutivo
- Para sistemas interactivos pequeños o medianos
- Para partes de sistemas grandes difíciles de especificar (p.ej. la interfaz de usuario) es aconsejable usar desarrollo exploratorio
- Para sistemas de corta vida
Modelo de ingeniería de software basada en componentes
- Está basado en la reutilización sistemática
- Hace uso de un conjunto de componentes de software reutilizables y de ambientes de trabajo para la integración de éstos
- Estos componentes puede ser sistemas por sí mismos (COTS, Commercial-off-the-shelf systems) que se pueden utilizar para proporcionar una funcionalidad específica como dar formato al texto o efectuar cálculos numéricos