Disciplina cuya meta es el desarrollo costeable de sistemas de software
El establecimiento y uso de principios de ingeniería robustos, orientados a obtener económicamente
software que sea fiable y funcione eficientemente sobre máquinas reales
Requerimientos
Descripción de los servicios proporcionados por el sistema y sus restricciones operativas.
Refleja las necesidades del cliente de un sistema.
Del usuario
Declaraciones en lenguaje natural de los servicios
que se espera que proporcione el sistema y la
restricciones del mismo.
Del sistema
Establece detalladamente las funciones, servicios, y restricciones operativas del sistema (Especificación funcional)
Funcionales
Declaraciones de los servicios que debe proporcionar el sistema, de la amanera en
que éste debe reaccionar a entradas particulares y de como se debe comportar en
situaciones particulares.
No funcionales
Son restricciones de los servicios por el sistema. Incluyen restricciones del tiempo sobre el proceso de desarrollo y estandares
Metodologías
Tradicionales
Centran su atención en llevar una documentación exhaustiva de todo el proyecto y en cumplir con
un plan de proyecto, definido todo esto, en la fase inicial del desarrollo del proyecto. Altos costes al
implementar un cambio y la falta de flexibilidad en proyectos donde el entorno es volátil.
Ágiles
Basan su fundamento en la adaptabilidad de los procesos de desarrollo. Estas metodologías
ponen de relevancia que la capacidad de respuesta a un cambio es más importante que el
seguimiento estricto de un plan.
Modelos
Evolutivo
Construcción de una implementación parcial que
cubre los requisitos conocidos, para ir
aprendiendo el resto y paulatinamente
incorporarlos al sistema.
En V
Busca hacer la actividad de
pruebas más efectiva y
productiva Los planes (y casos
de prueba) se van elaborando
a medida que se avanza en el
desarrollo del proyecto.
Prototipado
Utilizado principalmente en el desarrollo de sistemas
donde existe un pobre conocimiento de los
requerimientos de un sistema o la rápida evolución de
los mismos a través del tiempo.
Espiral
El modelo de desarrollo en espiral es un generador
del modelo de proceso guiado por el riesgo que se
emplea para conducir sistemas intensivos de
ingeniería de software concurrente y con múltiples
usuarios.
Cascada
Establece orden en el desarrollo de grandes productos
de software Diferentes etapas, las cuales son
procesadas de un modo lineal
Incremental
Combina elementos del modelo en
cascada aplicado en forma iterativa.
Aplica secuencias lineales de manera
escalonada conforme avanza el tiempo
en el calendario.
Proceso Unificado
El proceso unificado es un intento
encaminado a reunir los mejores
rasgos y características de los otros
modelos de proceso de software,
pero los caracteriza de manera que
implementen muchos de los
mejores principios del desarrollo
ágil de software.