PROCESOS DE SOFTWARE
Se define como Proceso al
conjunto ordenado de pasos a seguir para llegar a la solución de un problema u
obtención de un producto, en este caso particular, para lograr la obtención de
un producto software que resuelva un problema.
Ese proceso de creación de
software puede llegar a ser muy complejo, dependiendo de su porte,
características y criticidad del mismo. Por ejemplo la creación de un sistema
operativo es una tarea que requiere proyecto, gestión, numerosos recursos y
todo un equipo disciplinado de trabajo.
El proceso de desarrollo puede
involucrar numerosas y variadas tareas, desde lo administrativo, pasando por lo
técnico y hasta la gestión y el gerenciamiento. Pero casi rigurosamente siempre
se cumplen ciertas etapas mínimas; que podremos resumir en las siguientes:
(Flor Angela Perez Rosas)
(Flor Angela Perez Rosas)
1.- ESPECIFICACIONES DE SOFTWARE
Debe definir la funcionalidad del
software y las restricciones en su operación.
2.- DISEÑO E IMPLEMENTACIÓN
Se debe producir software que
cumpla su especificación.
3.- VALIDACIÓN DEL SOFTWARE
Se debe validar el software para
asegurar que hace lo que el cliente desea.
4.- EVOLUCIÓN DEL SOFTWARE
El software debe evolucionar para cubrir las necesidades cambiantes del
cliente.
MODELO DE POSESOS DEL SOFTWARE
Un modelo de proceso de software
es una descripción simplificada de un proceso del software, es decir es el
molde, modelo, base del cual se basa el proceso del software y se denomina “Ciclo
de vida del software”
MODELO EN CASCADA
CARACTERÍSTICAS
Cada fase empieza cuando se ha
terminado la fase anterior.
Para pasar de una fase a otra es
necesario conseguir todos los objetivos de la etapa previa.
Ayuda a prevenir que se
sobrepasen las fechas de entrega y los
costes esperados.
Al final de cada fase el personal
técnico y los usuarios tienen la oportunidad de revisar el progreso del
proyecto.
VENTAJAS
- Modelo y planificación fácil y sencillos.
- Sus fases son conocidas por los desarrolladores.
- Los usuarios lo pueden comprender fácilmente.
DESVENTAJAS
- No refleja realmente el proceso de desarrollo del software.
- Se tarda mucho en pasar por todo el ciclo.
- Acentúa el fracaso de la industria del software en su comunicación con el usuario final.
- Se convierten las especificaciones en implementaciones de manera formal.
- Las revisiones del proyecto de gran complejidad son muy difíciles.
- Impone una estructura de gestión de proyecto.
Modelo de desarrollo en cascada
MODELO INCREMENTAL
CARACTERÍSTICAS
Corrige la necesidad de una
secuencia no lineal de pasos de desarrollo.
El sistema se crea añadiendo
componentes funcionales al sistema.
El sistema no se ve como una
entidad monolítica con una fecha fija de entrega, sino que es una integración
de resultados sucesivos obtenidos después de cada repetición.
Se ajusta a entornos de alta
incertidumbre.
VENTAJAS
- Se evita proyectos largos y se entrega “algo de valor” a los usuarios con cierta frecuencia.
- El usuario se involucra más.
- Mayor retorno de la inversión.
DESVENTAJAS
- Difícil de avaluar el coste total.
- Requiere gestores experimentados.
- Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo.
- Los errores en los requisitos se detectan tarde y su corrección resulta costosa.
MODELO EN ESPIRAL
Es un modelo de procesos de software evolutivo
que combina la naturaleza repetitiva de construcción de prototipos con los
aspectos controlados y sistemáticos del modelo lineal secuencial.
Este modelo se desarrolla en una
serie de versiones incrementales.
CARACTERISTICAS
Permite acomodar otros modelos.
Incorpora objetivos de calidad y
gestión de riesgos.
Elimina errores y alternativas no atractivas al
comienzo.
Permite repeticiones, vueltas
atrás y finalizaciones rápidas.
Es difícil de adaptar a los
contratos.
VENTAJAS
- Elimina alternativas
- Evita errores
- Permite repeticiones, vueltas atrás y finalizaciones rápidas
- Revisión que incluye todo el ciclo y el plan siguiente
- Puede ser aplicado a proyectos grandes y complejos
- Reduce desde temprano los riesgos del proyecto, disminuyendo su probabilidad de fracaso.
- Permite lidiar con los cambios en los requerimientos al utilizar prototipos y simulaciones.
- Permite al cliente observar resultados desde temprano gracias al desarrollo de prototipos.
- Puede aplicarse tanto para el desarrollo como para el mantenimiento.
DESVENTAJAS
- No dice el cómo
- Muy flexible
- Poco aplicable a proyectos bajo contrato
- Se necesitan expertos para prever el riesgo
- Debe ser refinado para poder ser aplicado.
MODELO DE DESARROLLO RAPIDO DE
APLACIONES (DRA)
El desarrollo rápido de
aplicaciones (DRA) es un modelo de proceso de software incremental que resalta
un ciclo de desarrollo corto. El modelo DRA es una adaptación a "alta
velocidad" del modelo en cascada en el que se logra el desarrollo rápido
mediante un enfoque de construcción basado en componentes.
CARACTERÍSTICAS
Reduce el riesgo de construir
productos que no satisfagan las necesidades de los usuarios.
Reduce costos y aumenta la
probabilidad de éxito.
Exige disponer de las herramientas
adecuadas.
No presenta calidad ni robustez.
Este modelo suele ser utilizado
principalmente en dos áreas que son:
Prototipado de la interfaz de
usuario y prototipado del rendimiento.
VENTAJAS
- Debe ser un sistema con el que se pueda experimentar.
- Debe ser comparativamente barato (menos del 10%).
- Debe desarrollarse rápidamente.
- Énfasis en la interfaz del usuario.
- Equipo de desarrollo reducido.
- Herramientas y lenguaje adecuado.
DESVENTAJAS
- El cliente ve funcionando lo que para el es la primera versión del producto, que ha sido construido con “plantillas y Alambres”, y puede desilusionarse al decirle que el sistema aun no ha sido construido.
- El desarrollador puede caer en la tentación de ampliar el prototipo para construir el sistema final sin tener en cuenta los compromisos de calidad y de mantenimiento que tiene con el cliente.
MODELO DE PROCESOS EVOLUTIVOS
Los modelos de procesos
evolutivos se basan en la idea de desarrollar una implementación inicial, exponiéndola a los comentarios del
usuario y refinándola a través de las diferentes variaciones hasta que se
desarrolla un sistema adecuado.
El prototipo debe ser construido
en poco tiempo, usando los programas adecuados y no se debe utilizar mucho
dinero pues a partir de que este sea aprobado es que el desarrollador puede
iniciar el verdadero desarrollo del software.
VENTAJAS
- Este modelo es útil cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida.
- También ofrece un mejor enfoque cuando el responsable del desarrollo del software está inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina.
- Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuarios.
- Reduce costos y aumenta la probabilidad de éxito.
- Exige disponer de las herramientas adecuadas.
- Una vez identificados todos los requisitos mediante el prototipo, se construye el producto de ingeniería.
DESVENTAJAS
- El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final.
- A causa de la intención de crear un prototipo de forma rápida, se suelen desatender aspectos importantes, tales como la calidad y el mantenimiento a largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una vez que el prototipo ha cumplido su función. Es frecuente que el usuario se muestre reacio a ello y pida que sobre ese prototipo se construya el sistema final, lo que lo convertiría en un prototipo evolutivo, pero partiendo de un estado poco recomendado.
- El desarrollador suele tomar algunas decisiones de implementación poco convenientes (por ejemplo, elegir un lenguaje de programación incorrecto porque proporcione un desarrollo más rápido). Con el paso del tiempo, el desarrollador puede olvidarse de la razón que le llevó a tomar tales decisiones, con lo que se corre el riesgo de que dichas elecciones pasen a formar parte del sistema final.
No hay comentarios:
Publicar un comentario