Vous êtes sur la page 1sur 8

MODELOS DE PROCESOS DE SOFTWARE

Un modelo de procesos o paradigma de ingeniera del software es una descripcin simplificada


de un proceso del software que presenta una visin de ese proceso. Estos modelos pueden
incluir actividades que son parte de los procesos, productos de software y el papel de las
personas involucradas en la ingeniera del software.

Todo el desarrollo del software se puede caracterizar como bucle de resolucin de problemas
en el que se encuentran cuatro etapas distintas.

Definicin de
Problemas

Desarrollo
Estado Actual
Tcnico

Integracin de
Soluciones

Entre los modelos ms conocidos y valorados tenemos:

A. Codificar y Corregir

B. Modelo en Cascada

C. Desarrollo Evolutivo

D. Desarrollo Formal de Sistemas

E. Desarrollo Basado en Reutilizacin

F. Desarrollo Incremental

G. Desarrollo Espiral
A) CODIFICAR Y CORREGIR

El desarrollo de codificacin y correccin (en ingls "Code and fix") es, ms que una estrategia
predeterminada, el resultado de una falta de experiencia o presin que se ejerce sobre los
desarrolladores para cumplir con una fecha de entrega. Sin dedicar tiempo de forma explcita
para el diseo, los programadores comienzan de forma inmediata a producir cdigo. Antes o
despus comienza la fase de pruebas de software (a menudo de forma tarda) y los
inevitables errores que se encuentran han de eliminarse antes de poder entregar el software.

B) MODELO EN CASCADA

El ms conocido, est basado en el ciclo convencional de una ingeniera, el paradigma del ciclo
de vida abarca las siguientes actividades:

Ingeniera y Anlisis del Sistema: Debido a que el software es siempre parte de un sistema
mayor el trabajo comienza estableciendo los requisitos de todos los elementos del sistema y
luego asignando algn subconjunto de estos requisitos al software.

Anlisis de los requisitos del software: El proceso de recopilacin de los requisitos se centra e
intensifica especialmente en el software. El ingeniero de software (Analistas) debe comprender
el mbito de la informacin del software, as como la funcin, el rendimiento y las interfaces
requeridas.

Diseo: El diseo del software se enfoca en cuatro atributos distintos del programa:
la estructura de los datos, la arquitectura del software, el detalle procedimental y la
caracterizacin de la interfaz. El proceso de diseo traduce los requisitos en una representacin
del software con la calidad requerida antes de que comience la codificacin.
Codificacin: El diseo debe traducirse en una forma legible para la mquina. El paso de
codificacin realiza esta tarea. Si el diseo se realiza de una manera detallada la codificacin
puede realizarse mecnicamente.

Prueba: Una vez que se ha generado el cdigo comienza la prueba del programa. La prueba se
centra en la lgica interna del software, y en las funciones externas, realizando pruebas que
aseguren que la entrada definida produce los resultados que realmente se requieren.

Mantenimiento: El software sufrir cambios despus de que se entrega al cliente. Los cambios
ocurrirn debido a que hayan encontrado errores, a que el software deba adaptarse a cambios
del entorno externo (sistema operativo o dispositivos perifricos), o debido a que el cliente
requiera ampliaciones funcionales o del rendimiento.

Desventajas: Los proyectos reales raramente siguen el flujo secuencial que propone el modelo,
siempre hay iteraciones y se crean problemas en la aplicacin del paradigma.

Normalmente, es difcil para el cliente establecer explcitamente al principio todos los requisitos.
El ciclo de vida clsico lo requiere y tiene dificultades en acomodar posibles incertidumbres que
pueden existir al comienzo de muchos productos.

El cliente debe tener paciencia. Hasta llegar a las etapas finales del proyecto, no estar
disponible una versin operativa del programa. Un error importante no detectado hasta que el
programa est funcionando puede ser desastroso.

C) DESARROLLO EVOLUTIVO

El desarrollo evolutivo consta del desarrollo de una versin inicial que luego de exponerse se va
refinando de acuerdo de los comentarios o nuevos requerimientos por parte del cliente o del
usuario final. Las fases de especificacin, desarrollo y validacin se entrelazan en vez de
separarse.

Existen dos tipos de desarrollo evolutivo:

1. Desarrollo exploratorio, donde el objetivo del proceso es trabajar con el cliente para explorar
sus requerimientos y entregar un sistema final. El desarrollo empieza con las partes del sistema
que se comprenden mejor. El sistema evoluciona agregando nuevos atributos propuestos por el
cliente.
2. Prototipos desechables, donde el objetivo del proceso de desarrollo evolutivo es comprender
los requerimientos del cliente y entonces desarrollar una definicin mejorada de los
requerimientos para el sistema. El prototipo se centra en experimentar con los requerimientos
del cliente que no se comprenden del todo.

DESVENTAJAS

El proceso no es visible. Los administradores tienen que hacer entregas regulares para medir el
progreso. Si los sistemas se desarrollan rpidamente, no es rentable producir documentos que
reflejen cada versin del sistema.

A menudo los sistemas tienen una estructura deficiente. Los cambios continuos tienden a
corromper la estructura del software. Incorporar cambios en l se convierte cada vez ms en
una tarea difcil y costosa.

D) DESARROLLO FORMAL DE SISTEMAS

En ingeniera de software un mtodo formal es un camino a la construccin y anlisis de


modelos matemticos que permitan una automatizacin del desarrollo de sistemas
informticos. Los mtodos formales se caracterizan por emplear tcnicas y herramientas
matemticas para lograr una facilitacin a la hora de encarar la construccin o el anlisis de un
modelo matemtico de un sistema.
VENTAJAS

Se comprende mejor el sistema.

La comunicacin con el cliente mejora ya que se dispone de una descripcin clara y no


ambigua de los requisitos del usuario.

El sistema se describe de manera ms precisa.

El sistema se asegura matemticamente que es correcto segn las especificaciones.

Mayor calidad en el software respecto al cumplimiento de las especificaciones.

Mayor productividad.

DESVENTAJAS

El desarrollo de herramientas que apoyen la aplicacin de mtodos formales es complicado y


los programas resultantes son incmodos para los usuarios.

Los investigadores por lo general no conocen la realidad industrial.

Es escasa la colaboracin entre la industria y el mundo acadmico, que en ocasiones se


muestra demasiado dogmtico.

Se considera que la aplicacin de mtodos formales encarece los productos y ralentiza su


desarrollo.

E) DESARROLLO BASADO EN REUTILIZACIN

La reutilizacin de software es un proceso donde se recurre al uso de activos de software en las


especificaciones de anlisis, diseos, implementacin y pruebas de una aplicacin o sistemas de
software.

La reutilizacin tiene ciertos indicadores, por ejemplo:

1. Entre el 40% y 60% de una aplicacin es re-utilizable en otra.

2. Aproximadamente el 0% de una aplicacin administrativa es re-utilizable.

3. Aproximadamente el 75% de las funciones son comunes a ms de un programa.

4. Solo el 15% del cdigo encontrado en muchos sistemas es nico y novedoso a una aplicacin
especfica.
La reutilizacin tiene Principios como la existencia de parecidos en distintos sistemas de un
mismo dominio, donde el software puede representarse como una combinacin de mdulos y
los sistemas nuevos se puede caracterizar por diferencias respecto a los antiguos sistemas.

F) DESARROLLO INCREMENTAL

es un proceso de desarrollo de software creado en respuesta a las debilidades del modelo


tradicional de cascada.

Bsicamente este modelo de desarrollo, que no es ms que un conjunto de tareas agrupadas en


pequeas etapas repetitivas (iteraciones), es uno de los ms utilizados en los ltimos tiempos
ya que, como se relaciona con novedosas estrategias de desarrollo de software y una
programacin extrema, es empleado en metodologas diversas.

El modelo consta de diversas etapas de desarrollo en cada incremento, las cuales inician con el
anlisis y finalizan con la instauracin y aprobacin del sistema.

La idea principal detrs de mejoramiento iterativo es desarrollar un sistema de programas de


manera incremental, permitindole al desarrollador sacar ventaja de lo que se ha aprendido a
lo largo del desarrollo anterior, incrementando, versiones entregables del sistema. El
aprendizaje viene de dos vertientes: el desarrollo del sistema, y su uso (mientras sea posible).
Los pasos claves en el proceso son comenzar con una implementacin simple de los
requerimientos del sistema, e iterativamente mejorar la secuencia evolutiva de versiones hasta
que el sistema completo est implementado. En cada iteracin, se realizan cambios en el diseo
y se agregan nuevas funcionalidades y capacidades al sistema.

Bsicamente este modelo se basa en dos premisas:

Los usuarios nunca saben bien que es lo que necesitan para satisfacer sus necesidades.
En el desarrollo, los procesos tienden a cambiar.
El proceso en s mismo consiste de:
Etapa de inicializacin
Etapa de iteracin
Lista de control de proyecto

G) DESARROLLO EN ESPIRAL

La principal caracterstica del modelo en espiral es la gestin de riesgos de forma peridica en el ciclo
de desarrollo. Este modelo fue mejorando algunos aspectos clave de las metodologas del modelo
de cascada y del desarrollo rpido de aplicaciones, pero dando nfasis en un rea que para
muchos no jug el papel que requiere en otros modelos: un anlisis 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 travs de algunas interacciones con el diagrama
de los cuatro cuadrantes representativos de las siguientes actividades:

Crear planes con el propsito de identificar los objetivos del software, seleccionados para
implementar el programa y clarificar las restricciones en el desarrollo del software.
Anlisis de riesgos: una evaluacin analtica de programas seleccionados, para evaluar como
identificar y eliminar el riesgo.
La implementacin del proyecto: implementacin del desarrollo del software y su
pertinente verificacin.

Modelo de espiral con nfasis en los riesgos, haciendo hincapi en las condiciones de las opciones y
limitaciones para facilitar la reutilizacin de software, la calidad del software puede ayudar como
una meta propia en la integracin en el desarrollo del producto. Sin embargo, el modelo en espiral
tiene algunas limitaciones, entre las que destacan:

El nfasis se sita en el anlisis de riesgo, y por lo tanto requiere de clientes que acepten este anlisis
y acten en consecuencia. Para ello es necesaria confianza en los desarrolladores, as como la
predisposicin a gastar ms para solventar los temas, por lo cual este modelo se utiliza
frecuentemente en desarrollo interno de software a gran escala.

Si la implementacin del riesgo de anlisis afectar de forma esencial los beneficios del proyecto, no
debera utilizarse este modelo.

Los desarrolladores de software han de buscar de forma explcita riesgos y analizarlos de forma
exhaustiva para que este modelo funcione.
La primera fase es la bsqueda 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 anlisis,
y si fuera necesario incluyendo la fabricacin 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 evalan los resultados y se inicia el diseo de la siguiente fase.

Vous aimerez peut-être aussi