Está en la página 1de 4

En ingeniería del software, un proceso de desarrollo del software es el proceso de dividir el trabajo

de desarrollo del software en distintas fases para mejorar el diseño, la gestión del producto, y la gestión
de proyecto. Es también conocido como el ciclo de vida del desarrollo de software. La metodología
puede incluir la pre-definición de entregas concretas y artefactos que son creados y completados por un
equipo del proyecto para desarrollar o mantener una aplicación.
La mayoría de procesos de desarrollo modernos pueden ser vagamente descritos como ágiles. Otras
metodologías incluyen desarrollo en cascada, prototipado, desarrollo iterativo e incremental, desarrollo de
espiral, desarrollo de aplicación rápida, y programación extrema.
Algunas personas consideran el "modelo" del ciclo de vida un término más general para una categoría de
las metodologías y el "proceso" de desarrollo de software un término más concreto para referirse a un
proceso concreto escogido por una organización específica. Por ejemplo, hay muchos procesos de
desarrollo de software concretos que encajan en la espiral del modelo del ciclo de vida. Este campo es a
menudo considerado un subconjunto del ciclo de vida del desarrollo de sistemas.

Índice

 1Historia
 2Prácticas
o 2.1Integración continua
o 2.2Prototipado
o 2.3Desarrollo incremental
o 2.4Desarrollo rápido de aplicaciones
 3Metodologías
o 3.1Desarrollo ágil
o 3.2Desarrollo en cascada
o 3.3Desarrollo de espiral
o 3.4Otros
 4Procesar los meta-modelos
 5En la práctica
 6Véase también
 7Referencias
 8Enlaces externos

Historia[editar]
El marco de la metodología de desarrollo del software (también conocida como SDM) no emergió hasta
los 60. Según Elliott (2004) el ciclo de vida del desarrollo de sistemas (SDLC) puede ser considerado el
marco de metodología formalizado más antiguo por haber construido los sistemas de información.La idea
principal del SDLC ha sido "perseguir el desarrollo de sistemas de la información de manera deliberada,
estructurada y metódica, requiriendo cada etapa del ciclo de vida ––desde el comienzo de la idea
hasta la entrega final del sistema–– para que sea realizado rígida y secuencialmente" dentro del contexto
en el que el marco se aplique.1 El objetivo principal de este marco de metodología en los 60 era "para
desarrollar sistemas empresariales funcionales a gran escala en una era de conglomerados de negocios a
gran escala. Las actividades de los sistemas de la información evolucionaron alrededor del procesamiento
de datos pesados y las rutinas de procesamiento de números".
Las metodologías, los procesos, y la gama de marcos de pasos proscriptivos específicos que pueden ser
utilizados directamente por una organización en el trabajo del día a día, a marcos flexibles que una
organización usa para generar un conjunto de pasos a medida según las necesidades de un proyecto
específico o un grupo. En algunos casos la organización "patrocinadora" o "que aporta la manutención"
distribuye un conjunto oficial de documentos que describen el proceso. Los ejemplos concretos incluyen:
1970s

 Programación estructurada desde 1969


 Cap Gemini SDM, originalmente de PANDATA, la primera traducción inglesa fue publicada en 1974.
SDM se mantiene para la Metodología de Desarrollo de Sistemas
1980s
 Análisis de sistemas estructurados y método de diseño (SSADM) desde 1980 en adelante
 Análisis de los requisitos de la información/metodología del software de los sistemas
1990s

 La programación orientada a objetos (POO) se desarrolló al principio de los 60, y se convirtió en el


enfoque dominante de la programación a mediadios de los 90
 Desarrollo rápido de aplicaciones (RAD), desde 1991
 Método dinámico de desarrollo de sistemas (DSDM), desde 1994
 Scrum, desde entonces 1995
 Proceso de software en equipo, desde 1998
 Proceso Unificado racional (RUP), mantenido por IBM desde 1998
 Programación extrema, desde 1999
2000s

 Proceso Unificado ágil (AUP) mantenido desde 2005 por Scott Ambler
 Entrega ágil disciplinada (DAD) sustituye AUP
2010s

 Marco ágil escalado (SAFe)


 Scrum a gran escala (LeSS)
Es notable que desde DSDM en 1994, todas las metodologías de la lista de arriba, excepto RUP, han sido
metodologías ágiles - aún así muchas organizaciones, especialmente gobiernos, todavía utilizan procesos
anteriores a las metodologías ágiles (a menudo cascada o similar). El proceso de software y la calidad del
software están estrechamente interrelacionados; algunos efectos y facetas inesperados han sido
observados en la práctica2
Desde los inicios de los 2000s el escalado de los procesos de entrega ágil se han convertido el reto más
grande para los equipos que utilizan procesos ágiles.3
Entre estos, otro proceso de desarrollo del software ha sido establecido en código abierto. La adopción de
estas buenas prácticas conocidas y procesos establecidos dentro de los límites de una compañía se llama
fuente interior.

Prácticas[editar]
Varias aproximaciones del desarrollo del software han sido utilizadas desde el origen de tecnología de la
información, en dos categorías principales .[cita requerida] Normalmente una aproximación o una combinación
de aproximaciones es escogida por un equipo de gestión o de desarrollo .[cita requerida]
Las metodologías "tradicionales" como la de cascada, que tiene distintas fases, son a veces conocidas
como metodologías del ciclo de vida de desarrollo de software (SDLC), aunque este término también
podría ser utilizado de manera más general para referirse a cualquier metodología. [cita requerida] Un enfoque
del "ciclo de vida" con distintas fases contrasta con los enfoques de las ágiles que definen el proceso de
iteración, pero donde el diseño, la construcción, y el despliegue de partes diferentes pueden ocurrir
simultáneamente .[cita requerida]

Integración continua[editar]
La integración continua es la práctica de juntar todas las copias del trabajo de los desarrolladores en una
rama principal compartida varias veces al día.4 Grady Booch primero denominó y propuso el CI en su
método de 1991, a pesar de que no defienda hacer la integración varias veces al día. 5 La programación
extrema (XP) adoptó el concepto de CI y defendió que se hiciera la integración más de una vez al día –
quizás tantas veces como decenas de muchos como decenas de veces al día.

Prototipado[editar]
El prototipado de software consiste en la creación prototipos, p.e. las versiones incompletas del software
de un programa siendo desarrollado.
Los principios básicos son:
 El prototipado no es una metodología de desarrollo completa e independiente, sino más bien un
enfoque para probar características particulares en el contexto de una metodología completa (como
el desarrollo incremental, espiral o rápido de aplicaciones (RAD)).
 Intentos de reducir los riesgos inherentes del proyecto a base de dividir un proyecto en pequeños
segmentos proporcionando facilidad de cambio durante el proceso de desarrollo.
 El cliente está implicado durante el proceso de desarrollo, lo cual aumenta el probabilidad de que el
cliente acepte la implementación final.
 Mientras algunos prototipos están desarrollados con la expectativa de que serán descartados, es
posible que en algunos casos evolucionen de prototipo a sistema operativo.
Una comprensión básica del problema fundamental del negocio es necesaria para evitar resolver los
problemas equivocados, pero esto se cumple para todas las metodologías del software.

Desarrollo incremental[editar]
Varios métodos son aceptables para combinar metodologías de desarrollo de sistemas lineales e
iterativos, con el objetivo principal de reducir el riesgo inherente del proyecto al dividir un proyecto en
segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo.
Hay tres variantes principales de desarrollo incremental

1. Se realiza una serie de mini cascadas, donde todas las fases de la cascada se completan para
una pequeña parte de un sistema, antes de pasar al siguiente incremento, o
2. Los requisitos generales se definen antes de proceder al desarrollo evolutivo de mini cascadas
de incrementos individuales de un sistema, o
3. El concepto inicial de software, el análisis de requisitos y el diseño de la arquitectura y el núcleo
del sistema se definen a través del método cascada, seguido de una implementación
incremental, que culmina con la instalación de la versión final, un sistema operativo.

Desarrollo rápido de aplicaciones[editar]

Desarrollo de Aplicación rápida (RAD) Modelo

El desarrollo rápido de aplicaciones (RAD) es una metodología de desarrollo del software, que
favorece desarrollo iterativo y la construcción rápida de prototipos en lugar de grandes cantidades de
planificación inicial. La "planificación" del software desarrollado utilizando RAD se intercala con la escritura
del propio software. La falta de una planificación previa extensa generalmente permite que el software se
escriba mucho más rápido, y hace que sea más fácil cambiar los requisitos.
El proceso de rápido desarrollo comienza con el comienza con el desarrollo de modelos de
datos preliminares y modelos de procesos de negocios utilizan técnicas estructuradas. En la siguiente
etapa, los requisitos se verifican mediante el prototipado para eventualmente refinar los modelos de datos
y procesos. Estas etapas se repiten iterativamente; un mayor desarrollo da como resultado "una
declaración de requisitos técnicos y diseño técnico combinados que se utilizará para construir nuevos
sistemas".
El término se utilizó por primera vez para describir un proceso de desarrollo de software introducido
por James Martin en 1991. Según Whitten (2003), es una fusión de varias técnicas estructuradas,
especialmente ingeniería de tecnología de la información basada en datos, con técnicas de creación de
prototipos para acelerar el desarrollo de sistemas de software. 6
Los principios básicos del desarrollo rápido de aplicaciones son:

 El objetivo clave es el rápido desarrollo y la entrega de un sistema de alta calidad a un costo de


inversión relativamente bajo.
 Intenta reducir el riesgo inherente del proyecto dividiendo un proyecto en segmentos más pequeños y
proporcionando más facilidad de cambio durante el proceso de desarrollo.
 Tiene como objetivo producir sistemas de alta calidad rápidamente, principalmente a través de
prototipos iterativos (en cualquier etapa de desarrollo), participación activa del usuario y herramientas
de desarrollo computarizadas. Estas herramientas pueden incluir constructores de Interfaces
Gráficas de Usuario (GUI), herramientas de Ingeniería de Software Asistida por
Ordenador (CASO), Sistemas de Administración de Bases de Datos (SGBD), lenguajes de
programación de cuarta generación, generadores de código y técnicas orientadas a objetos.
 El control del proyecto implica priorizar el desarrollo y definir plazos de entrega o "cajas de tiempo".
Si el proyecto comienza a decaer, hay que hacer énfasis en reducir los requisitos para adaptarse a la
caja de tiempo, no en aumentar el plazo.
 Control de proyecto implica priorizar desarrollo y definiendo fechas límite de entrega o “timeboxes”. Si
los inicios de proyecto para resbalar, el énfasis encima está reduciendo requisitos para caber el
timebox, no en crecientes la fecha límite.
 Generalmente incluye el diseño de aplicaciones conjuntas (JAD), donde los usuarios participan
intensamente en el diseño del sistema, a través de construir consensuadamente ya sea en talleres
estructurados, o en una interacción facilitada electrónicamente.
 La participación activa del usuario es imprescindible.
 Produce iterativamente software de producción, a diferencia de un prototipo desechable.
 Produce la documentación necesaria para facilitar el futuro desarrollo y mantenimiento.
 Los métodos estándar de análisis y diseño de sistemas pue

También podría gustarte