Anda di halaman 1dari 7

Instituto Polit

ecnico Nacional
Escuela Superior de Ingeniera Mec
anica
y El
ectrica
Unidad Culhuacan
Ingeniera en Computacion
Ingeniera de Software
M
etodo Evolutivo
Bautista Borjas Isabel
Castillo Silva Julia Miroslava

Muniz Balderas Luis Angel


Santillan Gomez Ricardo

Septiembre - 2016

INDICE

Indice
1. Procesos de software
1.1. Modelos de procesos de software . . . . . . . . . . . . . . . . . . . . .

3
3

2. Proceso evolutivo

3. Ventajas y desventajas

4. Diferencias con el modelo incremental

Bautista Borjas

Castillo Silva

2 Mu
niz Balderas

Santillan Gomez

1.

Procesos de software

Un proceso de software es un conjunto de actividades que conducen a la creacion


de un software; para esto se establece un grupo de tareas que son comunes para
la gran mayora de los proyectos de software, sin importar su tama
no, alcance o
complejidad. Estas actividades permiten el desarrollo de software desde cero, sin
embargo puede desarrollarse software ampliando y modificando sistemas ya existentes.Los procesos de software son complejos y dependen principalmente de las
decisiones y juicios de las personas involucradas es por esto que es difcil el dise
no
de herramientas de automatizacion de procesos de software.
Existe una inmensa cantidad de procesos de software distintos, debido a que
no existe ninguno que sea ideal ya que cada uno se ha dise
nado para satisfacer
cierto enfoque. Los procesos han evolucionado para explotar las capacidades de las
personas dentro de una organizacion asi como para satisfacer las caractersticas de
un desarrollo especifico por lo que no se puede hablar de un proceso de software
ideal, solo podemos decir que un proceso es mas optimo para el proyecto especifico,
pero no para todos los casos.
A pesar de la gran variedad y numero de procesos existentes, estos comparten
ciertas caractersticas o tareas comunes; entre ellas podemos encontrar las siguientes:
Especificacion del software. En esta etapa se definen las caractersticas de software as como sus restricciones.
Dise
no e implementacion del software. Se debe producir software que cumpla
su especificacion.
Validacion del software. Es aqui cuando evaluamos y comprobamos que efectivamente el software creado concuerda con los requisitos planteados por el
cliente.
Evolucion del software. El software debe evolucionar para cubrir las necesidades cambiantes del cliente.

1.1.

Modelos de procesos de software

Para resolver los problemas reales dentro de la industria, un ingeniero debe incorporar una estrategia de desarrollo que lo acompa
ne en los procesos y etapas descritos
con anterioridad. A esta estrategia se le conoce como Modelo de Proceso de Software.
Un modelo de proceso de software es una representacion abstracta de un proceso
de software. Cada modelo de procesos representa un proceso desde una perspectiva
particular, y as proporciona solo informacion parcial sobre esa parte del proceso,
y se selecciona de acuerdo a la naturaleza del proyecto y de la aplicacion, de su
alcance, los metodos y herramientas de las que se dispone y los tiempos o controles
que sobre el deban aplicarse.
Todo desarrollo de software se puede caracterizar como un bucle de resolucion
de problemas (figura 1) en la que se encuentran m
ultiples etapas y cada una de ellas
puede tratarse a su vez como un problema por si mismo(figura 2).
El modelo de proceso en el cual nos enfocaremos es en el llamado Proceso
evolutivo y las diferencias, ventajas y desventajas que presenta con otros modelos,
principalmente con el modelo creciente.

Bautista Borjas

Castillo Silva

3 Mu
niz Balderas

Santillan Gomez

Figura 1: Etapas de resolucion de un problema.

Figura 2: Subdivision de cada etapa en un nuevo problema

2.

Proceso evolutivo

Se reconoce que el software, al igual que la mayora de los procesos complejos,


evoluciona con el tiempo. Los requisitos de gestion y de productos a menudo cambian
conforme avanza el proyecto evitando que se pueda cumplir, en tiempo y forma, con
los requerimientos del mismo.
En estas y otras situaciones similares los ingenieros de software necesitan un
modelo de proyecto dise
nado explcitamente para adecuarse a las necesidades de un
producto que evolucione con el tiempo.
Este enfoque entrelaza las actividades de especificacion, desarrollo y validacion.
un sistema inicial se desarrolla rapidamente a partir de especificaciones abstractas.
Este se refina basado en las peticiones del cliente para producir un sistema que
satisfasca sus necesidades.
El desarrollo evolutivo planeta la idea de generar una version inicial, de manera
general y presentarla al cliente para posteriormente ir mejorandola a lo largo de
distintas versiones hasta lograr un desarrollo adecuado. Como se muestra en la figura
Bautista Borjas

Castillo Silva

4 Mu
niz Balderas

Santillan Gomez

3. Las actividades de especificacion, desarrollo y validacion se entrelazan, en vez de


separarse, para permitir una rapida retroalimentacion entre estas.

Figura 3: Diagrama que ejemplifica el modelo de desarrollo evolutivo


Existen dos tipos de desarrollo evolutivo:
1. Desarrollo exploratorio. Donde el objetivo del proceso es trabajar con el cliente
para explorar sus necesidades y entregar un sistema final. En este caso el
desarrollo comienza con las partes del sistema que se comprenden mejor y a
partir de estas se agregan nuevos atributos propuestos por el cliente.
2. Prototipos desechables. Donde el objetivo del proceso es entender las necesidades del cliente y entonces desarrollar una version mejorada para los requerimientos del sistema. El prototipo se centra en experimentar con los requerimientos del cliente que no se comprenden del todo hasta llegar a entenderlos.
Un enfoque evolutivo suele ser mas conveniente que un modelo en cascada ya
que permite atender mejor las necesidades del cliente. La ventaja de un proceso de
software con un enfoque evolutivo es que las especificaciones se pueden desarrollar
de una forma creciente a la par que los usuarios desarrollen un mejor entendimiento
del problema. Sin embargo, desde la perspectiva de gestion, el modelo evolutivo tiene
dos claros problemas:
1. El proceso no es visible. Los administradores tienen que hacer entregas regulares para medir el proceso. Si los sistemas se desarrollan rapidamente no es
rentable producir documentos que reflejen cada version del sistema.
2. A menudo los sistemas tienen una estructura deficiente. Los cambios continuos
tienden a corromper la estructura del software. Incorporar cambios en el se
convierte cada vez mas en una tarea difcil y costosa.
Para sistemas peque
nos y de tama
no medio (hasta 500 mil lineas de codigo) el
enfoque evolutivo es el mejor. Los problemas del desarrollo evolutivo se hacen particularmente presentes para proyectos grandes, complejos y de larga duracion, donde
diferentes equipos desarrollan distintas partes del sistema ya que es difcil establecer
una arquitectura estable utilizando este sistema, lo que dificulta la integracion de
las distintas partes.
Para proyectos grandes se recomienda un enfoque mixto, que incorpore los mejores caractersticas del modelo en cascada y el desarrollo evolutivo. Esto implica
Bautista Borjas

Castillo Silva

5 Mu
niz Balderas

Santillan Gomez

generar un prototipo desechable utilizando el desarrollo evolutivo para entender mejor los requisitos del sistema para una vez resueltos los requerimientos implementar
un modelo mas estructurado.
Las partes del sistema bien comprendidas se pueden especificar y desarrollar
usando un proceso basado en el modelo en cascada. Las otras partes del sistema,
que son difciles de especificar, se deben desarrollar utilizando siempre un enfoque
exploratorio.

3.

Ventajas y desventajas
Ventajas:
Especialmente u
tiles cuando se reconoce la naturaleza evolutiva del proyecto
de software.
Permiten ajustarse al cambio durante el desarrollo dl proyecto.
La construccion de prototipos ayuda a entender mejor los requisitos y necesidades, as como el resultado de la construccion de software.
Las especificaciones pueden desarrollarse de manera creciente, conforme se
vayan agregando.
Es mas efectivo que el modelo en cascada en el sentido que cumple con las
necesidades inmediatas del cliente.
El tener un mayor entendimiento de los requisitos permite la construccion de
software de calidad.
Especialmente u
til para proyectos peque
nos.
Desventajas:
Si el proyecto se alarga, a menudo no es rentable generar documentacion para
cada version del proyecto.
El cliente considera la mayora de las veces el prototipo como el producto final.
Es facil dejar de lado la calidad del software o la factibilidad de mantenimiento.
Los cambios continuos pueden ser perjudiciales para la estructura del software
haciendo difcil su mantenimiento o el agregar nuevas caractersticas.
Cuando se trabaja con diferentes grupos es difcil integrar todas las peque
nas
partes en un trabajo final.
El cliente puede entrar en impaciencia o desconfianza, debido a que se le van
presentando modelos y funciones diferentes en cada etapa del proceso.

Bautista Borjas

Castillo Silva

6 Mu
niz Balderas

Santillan Gomez

4.

Diferencias con el modelo incremental

La entrega incremental es un enfoque intermedio que combina ventajas de los


modelos estructurados (cascada) y los modelos evolutivos. En un proceso de desarrollo incremental los clientes identifican los servicios que proporciona el sistema.
Identifican que servicios son mas importantes y cuales menos. Entonces se definen
varios incrementos en donde cada uno proporciona funcionalidad al sistema (figura
4). La asignacion de servicios a los incrementos depende de la prioridad del servicio,
con la prioridad mas alta entregada primero.

Figura 4: Diagrama que representa un sistema incremental


De esta forma las principales diferencias que presentan estos dos modelos se listan
a continuacion:
El modelo creciente se enfoca uno a uno en los servicios con base en su jerarqua
o prioridad; el modelo evolutivo, en cambio, aborda los requisitos seg
un su
entendimiento de estos, ya sea aquellos que estan claros y a partir de ellos
construir el resto, o aquellos que presentan mas dudas para poder delimitarlos
correctamente.
Para el modelo de procesos evolutivo es difcil ya segmentacion del problema,
ya que una vez segmentado, dada la cambiante naturaleza del mismo, es difcil
unir las diferentes partes o esto puede causar un deficit en la estructura del
software.
Cada uno de los incrementos permite su propia implementacion de forma que
este modelo ofrece una implementacion temprana que posteriormente sera mejorada, en el caso del desarrollo evolutivo cada prototipo o exploracion no
puede ser considerado una version final, por lo que no puede implementarse.
Debido a que los servicios mas importantes son los que se entregan primero, el
modelo incremental permite que se realicen mas pruebas en los elementos mas
importantes del proyecto lo cual no es posible en el caso del modelo evolutivo.
La naturaleza exploratoria del modelo evolutivo ofrece una mejor comprension
y delimitacion de los requisitos y caractersticas de un sistema, por lo que
asegura un mejor cumplimiento de estos.

Bautista Borjas

Castillo Silva

7 Mu
niz Balderas

Santillan Gomez

Anda mungkin juga menyukai