Un conjunto estructurado de actividades necesarias para desarrollar un sistema de software.
Muchos de los procesos de software son diferentes, pero todos implican:
-Especificación
-Diseño e implementación
-Validación
-Evolución
-El proceso establece todas las actividades principales
-El proceso utiliza recursos, está sujeto a una serie de restricciones y genera productos intermedios y finales
-El proceso puede estar compuesto de subprocesos que se encadenan de alguna manera. Puede definirse como una jerarquía de procesos organizada de modo que cada subproceso tenga su propio modelo de proceso
-Cada actividad del proceso tiene criterios de entrada y de salida, de modo que se conoce cuándo comienza y cuándo termina una actividad
Cuando un proceso implica la construcción de algún producto, suele referirse al proceso como un ciclo de vida
-El proceso de desarrollo de software suele denominarse ciclo de vida del software
Se puede definir ciclo de vida del software como:
Las distintas fases por las que pasa el software desde que nace una necesidad de mecanizar un proceso hasta que deja de utilizarse el software que sirvió para ese objetivo, pasando por las fases de desarrollo y explotación [Frakes et al., 1991]
Desde un punto de vista general puede considerarse que el ciclo de vida de un software tiene tres etapas claramente diferenciadas:
-Planificación
-Implementación
-Puesta en producción
-Cuando se pone por escrito una descripción de un proceso, se da forma a una comprensión común de las actividades, recursos y restricciones relacionados con el desarrollo del software.
-Ayuda al equipo de desarrollo a encontrar las inconsistencias, las redundancias y las omisiones en el proceso y en las partes que lo constituyen.
-El modelo debe reflejar las metas del desarrollo. A medida que se construye el modelo el equipo de desarrollo evalúa las actividades candidatas por su adecuación para alcanzar dichas metas.
-Especificación
-Diseño
-Fabricación
-Prueba
-Instalación
-Mantenimiento
Conjunto de actividades necesarias para transformar las ideas iniciales del usuario, que desea automatizar un determinado trabajo, en software.
1.-Modelo de cascada
2.-Desarrollo incremental
3.-Modelo espiral
4.-Desarrollo Rápido de Aplicaciones (DRA)
5.-Orientados a la reutilización
6.-Orientado a Objetos