You are on page 1of 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.

s
E
o
ld
A
cae
rD
tuP
s ta
E o
d
c tu
A l
a
fi
m
b
In
S

T
ig fi le
e
D
b
ro
P

te g
In

ic
n
a
m

i n
c
ra
lu c
o
S e
n
ds

io
ds
es
D
c
T

l lo
ro
a
io
n

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.

You might also like