Estos programas se originan en el hecho de que es muy
costoso rectificar los errores que se detectan tarde dentro de la fase de
implementación. El ciclo de vida permite que los errores se detecten lo antes
posible y por lo tanto, permite a los desarrolladores concentrarse en la
calidad del software, en los plazos de implementación y en los costos
asociados.
El ciclo de vida básico de un software consta de los siguientes procedimientos:
- Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.
- Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
- Diseño general: requisitos generales de la arquitectura de la aplicación.
- Diseño en detalle: definición precisa de cada subconjunto de la aplicación.
- Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
- Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
- Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.
- Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.
- Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.
- Implementación
- Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
Todos estos pasos tienen el fin de ofrecer un producto de calidad, efectivo y validable, pero para que entiendan mejor su importancia los dejo con este video, sobre la Importancia del Aseguramiento de Calidad de Software:
El orden y la presencia de cada uno de estos procedimientos
en el ciclo de vida de una aplicación dependen del tipo de modelo de ciclo de
vida acordado entre el cliente y el equipo de desarrolladores.
Hay varios modelos a seguir para el establecimiento de un proceso para el
desarrollo de software, cada uno de los cuales describe un enfoque diferente
para diferentes actividades que tienen lugar durante el proceso.
Modelos De Desarrollo De Software:
Los modelos de desarrollo de software son una
representación abstracta de una manera en particular. Realmente no representa
cómo se debe desarrollar el software, sino de un enfoque común. Puede ser
modificado y adaptado de acuerdo a las necesidades del software en proceso de
desarrollo. Hay varios modelos para perfilar el proceso de desarrollo, cada
uno de las cuales cuenta con pros y contras. El proyecto debería escoger el más
apropiado para sus necesidades. En ocasiones puede que una combinación de
varios modelos sea apropiado.
- Modelo de Cascada:
El modelo de cascada define las siguientes etapas que
deben cumplirse de forma sucesiva:
1.Especificación de requisitos
2.Diseño del software
3.Construcción o Implementación del software
4.Integración
5.Pruebas (o validación)
6.Despliegue (o instalación)
7.Mantenimiento
- Modelo en Espiral:
La principal característica del modelo en espiral es la
gestión de riesgos de forma periódica en el ciclo de desarrollo. Este modelo
fue creado en 1988 por Barry Boehm, combinando algunos aspectos clave de las
metodologías del modelo de cascada y del desarrollo rápido de aplicaciones,
pero dando énfasis en un área que para muchos no jugó el papel que requiere en
otros modelos: un análisis iterativo y concienzudo de los riesgos,
especialmente en el caso de sistema complejos de gran escala.
La espiral se visualiza como un proceso que pasa a
través de algunas interaciones con el diagrama de los cuatro cuadrantes
representativos de las siguientes actividades:
1.Crear planes con el propósito de identificar los objetivos
del software, seleccionados para implementar el programa y clarificar las
restricciones en el desarrollo del software;
2.Análisis de riesgos: una evaluación analítica de
programas seleccionados, para evaluar como identificar y eliminar el riesgo;
3.La implementación del proyecto: implementación del
desarrollo del software y su pertinente verificación;
Modelo de espiral con énfasis en los riesgos, haciendo hincapié en las condiciones de las opciones y limitaciones para facilitar la reutilización de software, la calidad del software puede ayudar como una meta propia en la integración en el desarrollo del producto. Sin embargo, el modelo en espiral tiene algunas limitaciones, entre las que destacan:
1.El énfasis se sitúa en el análisis de riesgo, y por lo tanto requiere de clientes que acepten este análisis y actúen en consecuencia. Para ello es necesaria confianza en los desarrolladores así como la predisposición a gastar más para solventar los temas, por lo cual este modelo se utiliza frecuentemente en desarrollo interno de software a gran escala.
2.Si la implementación del riesgo de análisis afectará de forma esencial los beneficios del proyecto, no debería utilizarse este modelo.
3.Los desarrolladores de software han de buscar de forma explícita riesgos y analizarlos de forma exhaustiva para que este modelo funcione.
La primera fase es la búsqueda de un plan
para conseguir los objetivos con las limitaciones del proyecto para así buscar
y eliminar todos los riesgos potenciales por medio de un cuidadoso análisis, y
si fuera necesario incluyendo la fabricación de un prototipo. Si es imposible
descartar algunos riesgos, el cliente ha de decidir si es conveniente terminar
el proyecto o seguir adelante ignorando los riesgos. Por último, se evalúan los
resultados y se inicia el diseño de la siguiente fase.
- Desarrollo de Intervalo o Incremental:
El desarrollo iterativo recomienda la
construcción de secciones reducidas de software que irán ganando en tamaño para
facilitar así la detección de problemas de importancia antes de que sea
demasiado tarde. Los procesos iterativos pueden ayudar a desvelar metas del
diseño en el caso de clientes que no saben cómo definir lo que quieren.
- Desarrollo Ágil:
El desarrollo ágil de software utiliza un
desarrollo iterativo como base para abogar por un punto de vista más ligero y
más centrado en las personas que en el caso de las soluciones tradicionales.
Los procesos ágiles utilizan retroalimentación en lugar de planificación, como
principal mecanismo de control. La retroalimentación se canaliza por medio de
pruebas periódicas y frecuentes versiones del software.
Hay muchas variantes de los procesos ágiles:
- Condición y Corrección:
El
desarrollo de codificación y corrección (en inglés "Code and fix")
es, más que una estrategia predeterminada, el resultado de una falta de
experiencia o presión que se ejerce sobre los des-arrolladores para cumplir con
una fecha de entrega.7 Sin dedicar tiempo de forma explícita para el diseño,
los programadores comienzan de forma inmediata a producir código. Antes o
después comienza la fase de pruebas de software (a menudo de forma tardía) y
los inevitables errores que se encuentran han de eliminarse antes de poder
entregar el software.
- Orientado a la Reutilizacion:
La reutilización de software es un proceso
donde se recurre al uso de activos de software en las especificaciones de
análisis, diseños, implementación y pruebas de una aplicación o sistemas de
software.
La reutilización tiene ciertos Indicadores
por ejemplo:
1. Entre el 40% y 60% de una aplicación es
re-utilizable en otra.
2. Aproximadamente el 60% de una aplicación
administrativa es re-utilizable.
3. Aproximadamente el 75% de las funciones
son comunes a más de un programa.
4. Solo el 15% del código encontrado en
muchos sistemas es único y novedoso a una aplicación específica.
El rango general de uso recurrente esta entre
el 15% y 85%.
La reutilización tiene Principios como la
existencia de parecidos en distintos sistemas de un mismo dominio, donde el
software puede representarse como una combinación de módulos y los sistemas
nuevos se puede caracterizar por diferencias respecto a los antiguos
sistemas.
No hay comentarios.:
Publicar un comentario