Modelo de procesos de
software
Para resolver los problemas reales de una industria, un ingeniero del
software o un equipo de ingenieros debe incorporar una estrategia de
desarrollo que acompañe al proceso, métodos y capas de herramientas.
Esta estrategia se llama modelo de proceso o paradigma de
ingeniería del software.
Se selecciona un modelo de proceso para la ingeniería del software
según la naturaleza del proyecto y de la aplicación, los métodos y las
herramientas a utilizarse, los controles y entregas que se requieren.
Todo el desarrollo del software se puede caracterizar como bucle de resolución de
problemas en el que se encuentran cuatro etapas distintas:
DEFINICION DE
PROBLEMAS
DESARROLLO
TECNICO
INTEGRACION
DE
SOLUCIONES
ESTADO
ACTUAL
Modelos del Proceso del Software
Es una representación abstracta de un proceso del software que pueden
utilizar para explicar diferentes enfoques para el desarrollo del software.
Los modelos del proceso son:
Modelo lineal secuencial o
Cascada
Es la secuencia de actividades, donde la estrategia
principal es seguir el progreso del desarrollo de software
hacia puntos de revisión bien definidos.
Describe el orden de las actividades del desarrollo de
software.
Toma demasiado tiempo en ver resultados, lo que
retrasa la detección de errores hasta el final.
MODELO EN CASCADA
PRUEBAS
PRUEBAS
DESARROLLO
DESARROLLO
DISEÑO
DISEÑO
ANALISIS
ANALISIS
DEFINICION
DEFINICION
MANTENIMIENT
O
Definición de requisitos:
Las restricciones y metas del sistema se definen a partir de la interacción con el
interesado.
Análisis
Se comprende la naturaleza de la aplicación y el dominio de información, así como su
funcionalidad, rendimiento e interconexión
Se reúnen todos los requisitos que debe cumplir el software
Diseño
se traducen los requisitos a una representación que permita evaluar la calidad del software que
se va a construir antes de comenzar la implementación
Desarrollo
Se llama también Implementación
Generación de código entendible por la máquina.
El paso de codificación realiza esta tarea.
Pruebas
Proceso de depuración de programas
Checar la validez de las sentencias
Pruebas para detectar errores, asegurando que a partir de los datos de entrada si se genere la salida
deseada
Mantenimiento
Corrección de errores no detectados en la etapa de pruebas
Posibles mejoras funcionales debidas a nuevos requerimientos del cliente
En esta fase se vuelven a aplicar todas las etapas anteriores sobre el software existente
MODELO EN CASCADA
VENTAJAS:
Se tiene todo bien organizado y no se mezclan las fases.
Es perfecto para proyectos que son rígidos.
Ideal para proyectos donde se especifiquen muy bien los requerimientos.
Ideal para proyectos en que se conozca muy bien la herramienta a utilizar.
DESVENTAJAS
Difícilmente un cliente va a establecer al principio todos los
requerimientos necesarios.
No permite movilizarse entre fases.
Los resultados y/o mejoras no son visibles, el producto se ve recién
cuando este, esté finalizado.
MODELO EN ESPIRAL
Se basa en una estrategia para reducir el riesgo del
proyecto en áreas de incertidumbre, como requerimientos
iniciales incompletos e inestables. El modelo enfatiza
ciclos de trabajo, cada uno de los cuales estudia el riesgo
antes de proceder al siguiente ciclo.
MODELO EN ESPIRAL
Cada ciclo comienza con la identificación de los objetivos, soluciones
alternativas, restricciones asociadas con cada alternativa y, finalmente, se
procede a su evolución. Cuando se identifica incertidumbre, se utilizan
diversas técnicas para reducir el riesgo de las distintas alternativas. Cada
ciclo termina con una revisión que discute los logros actuales y los planes
para el siguiente ciclo.
Se crea un diseño preliminar para el nuevo sistema. Esta fase es la más
importante del modelo de espiral.
Se construye un primer prototipo del nuevo sistema tomando como
referencia el diseño preliminar.
MODELO EN ESPIRAL
Un segundo prototipo es evolucionado de un procedimiento
de cuatro fases:
Evaluación del primer prototipo en términos de sus fortalezas, debilidades y riesgos
Definición de los requerimientos del segundo prototipo
Planeación y diseño del segundo prototipo
Construcción y pruebas del segundo prototipo
MODELO EN ESPIRAL
VENTAJAS:
El análisis del riesgo se hace de forma explícita y clara. Une los mejores
elementos de los restantes modelos.
Reduce riesgos del proyecto
Incorpora objetivos de calidad
Integra el desarrollo con el mantenimiento, etc.
Además es posible tener en cuenta mejoras y nuevos requerimientos sin
romper con la metodología, ya que este ciclo de vida no es rígido ni
estático.
DESVENTAJAS
Genera mucho tiempo en el desarrollo del sistema.
Modelo costoso.
Requiere experiencia en la identificación de riesgos.
MODELO INCREMENTAL O
ITERATIVO
Es un desarrollo inicial de la arquitectura completa del sistema, seguido de
incrementos y versiones parciales del mismo. Cada incremento tiene su propio ciclo de
vida. Cada incremento agrega funcionalidad adicional o mejorada sobre el sistema.
Conforme se completa una etapa, se verifica e integra la versión con las demás
versiones ya completadas del sistema.
MODELO INCREMENTAL
Ventajas
Si un error importante es realizado, sólo la última iteración necesita ser
descartada y utilizar el incremento previo.
Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los
requerimientos planeados para los niveles subsiguientes son correctos.
Construir un sistema pequeño es siempre menos riesgoso que construir un
sistema grande.
Desventajas
Se requiere de una experiencia importante para definir los incrementos de forma
de distribuir en ellos las tareas en forma proporcional
Si el sistema a desarrollar es de gran magnitud y se cuenta con un único grupo
para construirlo se corre el riesgo que el desarrollo se prolongue demasiado en
tiempo
Se presupone que todos los requisitos se han definido al inicio.
PROCESO DE SOFTWARE
PERSONAL
También conocido como PSP se concentra en las prácticas de trabajo de los
ingenieros en una forma individual. Sirve para producir software de calidad, cada
ingeniero debe trabajar en la necesidad de realizar trabajo de calidad. PSP se diseñó
para ayudar a profesionales del software para que utilicen constantemente prácticas
sanas de ingeniería de software.