Proceso de desarrollo de software


En ingeniería de software , un proceso de desarrollo de software es el proceso de dividir el trabajo de desarrollo de software en pasos o subprocesos más pequeños, paralelos o secuenciales para mejorar el diseño y la gestión de productos . También se conoce como ciclo de vida de desarrollo de software ( SDLC ). La metodología puede incluir la definición previa de entregables y artefactos específicos que son creados y completados por un equipo de proyecto para desarrollar o mantener una aplicación. [1]

La mayoría de los procesos de desarrollo modernos se pueden describir vagamente como ágiles . Otras metodologías incluyen cascada , creación de prototipos , desarrollo iterativo e incremental , desarrollo en espiral , desarrollo rápido de aplicaciones y programación extrema .

Un "modelo" de ciclo de vida a veces se considera un término más general para una categoría de metodologías y un "proceso" de desarrollo de software es un término más específico para referirse a un proceso específico elegido por una organización específica. [ cita requerida ] Por ejemplo, hay muchos procesos de desarrollo de software específicos que se ajustan al modelo de ciclo de vida en espiral. El campo a menudo se considera un subconjunto del ciclo de vida del desarrollo de sistemas .

El marco de la metodología de desarrollo de software (también conocido como SDM) no surgió hasta la década de 1960. Según Elliott (2004), el ciclo de vida del desarrollo de sistemas (SDLC) puede considerarse el marco metodológico formalizado más antiguo para la construcción de sistemas de información . La idea principal del SDLC ha sido "perseguir el desarrollo de sistemas de información de una manera muy deliberada, estructurada y metódica, requiriendo cada etapa del ciclo de vida - desde el inicio de la idea hasta la entrega del sistema final - para llevarse a cabo de forma rígida y secuencial " [2] en el contexto del marco que se aplica. El objetivo principal de este marco metodológico en la década de 1960 era "desarrollar sistemas comerciales funcionales a gran escalaen una era de conglomerados empresariales a gran escala. Las actividades de los sistemas de información giraban en torno al procesamiento pesado de datos y las rutinas de procesamiento de números ". [2]

Las metodologías, procesos y marcos van desde pasos proscriptivos específicos que pueden ser usados ​​directamente por una organización en el trabajo diario, hasta marcos flexibles que usa una organización para generar un conjunto personalizado de pasos a la medida de las necesidades de un proyecto específico o grupo. En algunos casos, una organización "patrocinadora" o de "mantenimiento" distribuye un conjunto oficial de documentos que describen el proceso. Los ejemplos específicos incluyen:

Es notable que desde DSDM en 1994, todas las metodologías en la lista anterior, excepto RUP, han sido metodologías ágiles; sin embargo, muchas organizaciones, especialmente los gobiernos, todavía usan procesos pre-ágiles (a menudo en cascada o similares). El proceso del software y la calidad del software están íntimamente relacionados; En la práctica se han observado algunas facetas y efectos inesperados [3].


Modelo de desarrollo rápido de aplicaciones (RAD)
Las actividades del proceso de desarrollo de software representadas en el modelo en cascada . Hay varios otros modelos para representar este proceso.
Modelo en espiral (Boehm, 1988)
Los tres enfoques básicos aplicados a los marcos metodológicos de desarrollo de software.
Ciclo de vida de desarrollo de software (SDLC)