10
2015 Desarrollo Evolutivo, Incremental y Prototipos SOFTWARE DE COMUNICACIONES PROFESOR: ING. ALEXIS MORA G.

Desarrollo Evolutivo

Embed Size (px)

DESCRIPTION

Desarrollo Evolutivo Ingenieria Telematica

Citation preview

Page 1: Desarrollo Evolutivo

2015

Desarrollo Evolutivo, Incremental y Prototipos

SOFTWARE DE COMUNICACIONES

PROFESOR: ING. ALEXIS MORA G.

ESTUDIANTES:

ADEMIR RASMIJNFELIPE RUIZ QUESADA

CHRISTOPHER MADURO

Page 2: Desarrollo Evolutivo

ContenidoIntroducción.............................................................................................................................................2

Modelo incremental................................................................................................................................2

Historia..................................................................................................................................................2

Concepto..............................................................................................................................................2

¿En qué consiste?..............................................................................................................................2

Etapas....................................................................................................................................................3

Características....................................................................................................................................4

Modelo Prototipos..................................................................................................................................5

Modelo Evolutivo....................................................................................................................................5

Comparación entre métodos...............................................................................................................6

Evolutivo contra incremental..................................................................................................................6

Diferencias entre el evolutivo y prototipos.............................................................................................6

Diferencias entre incremental y evolutivo...............................................................................................6

Conclusión...............................................................................................................................................7

Bibliografía..................................................................................................................................................8

Page 3: Desarrollo Evolutivo

Introducción

Debido a lo complejo que resulta el desarrollo de software, se deben buscar métodos que permitan definir claramente un ciclo de vida del software. Para garantizar que este cumpla con los objetivos previstos al inicio.

Los métodos de desarrollo de software son un conjunto de herramientas, técnicas y procesos que brindan soporte y facilitan el logro u obtención de una meta.

El ciclo de vida de un producto de software define sus etapas desde su análisis, diseño, desarrollo, implementación, verificación, validación, operación y soporte.

Modelo incrementalAl igual que los otros métodos de modelado, el Modelo Incremental es de naturaleza interactiva pero se diferencia de aquellos en que al final de cada incremento se entrega un producto completamente operacional.

El Modelo Incremental es particularmente útil cuando no se cuenta con una dotación de personal suficiente. Los primeros pasos los pueden realizar un grupo reducido de personas y en cada incremento se puede añadir personal, de ser necesario.

HistoriaEl modelo fue propuesto por Haralan Mills en 1980. Sugirió como una forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos, hasta adquirir experiencia con el sistema. Surge porque en los primeros desarrollos se podía esperar largo tiempo hasta que el software estuviese listo. Las reglas del negocio de hoy no lo permiten.

ConceptoEs un modelo para el desarrollo de software en el que se realizan secuencias lineales de forma escalonada mientras se progresa en el tiempo. Cada secuencia lineal produce un incremento en el software.

Durante el proceso se trata de llevar a cabo el proyecto en diferentes partes, para que al final terminará siendo una solución completa, de esta forma poder resolver las necesidades planteadas por el cliente.

Sin embargo, estos incrementos no se pueden realizar de forma aleatoria. Sino que depende del cliente, de cual necesidad es más urgente de los puntos del proyecto.

Se busca realizar los incrementos más básicos, complejos y de mayor riesgo lo más pronto posible. Para que el proyecto conforme avance en el tiempo disminuya el riesgo y aumenten las posibilidades de éxito.

Page 4: Desarrollo Evolutivo

¿En qué consiste?Consiste en un método de desarrollo de software donde se realiza un desarrollo inicial de la arquitectura del sistema. Este primer desarrollo esencial es denominado núcleo.

A este núcleo, se le agregaran incrementos, donde cada uno posee su propio ciclo de vida. Se basan en el anterior, pero no cambian ni su funcionabilidad ni sus interfaces.

Al principio se crea un plan de incrementos, basado en las funciones priorizadas según el cliente. Cada incremento representa un subconjunto de funciones del sistema que se entregará.

EtapasGeneralmente el proceso se divide en cuatro etapas: Análisis, diseño, codificación y pruebas.

Análisis

Definir con detalle las necesidades que tendrán que resolver el software, sin tomar encuentra los medios técnicos necesarios. Es decir, se definen los requisitos del sistema.

Con base a esto se redacta la especificación de requisitos, el cual especificara que debe hacer el software abarcando lo más importante para que se pueda desarrollar.

Diseño

Especifica una solución al problema planteado en la etapa de análisis. También nos indica como el software debe realizar sus funciones. Hay que definir su arquitectura en general, las interfaces del usuario.

A partir de todo lo anterior se debe codificar el software. Se puede hacer la comparación con la construcción de un edificio, donde todo lo especificado anteriormente nos servirá como plano para la construcción del sistema.

De esta etapa de obtendrá el documento es la especificación del diseño. También esta etapa es el mejor momento para elaborar la especificación de la prueba (define con que datos se debe probar cada programa, los cuales son los resultados esperados en cada paso)

Codificación

Es la etapa en la se traduce el diseño plantado en las etapas anteriores en código procesable en la computadora. Se empieza la elaboración del sistema propiamente.

En esta etapa se obtiene el programa propiamente con sus funcionabilidades y componentes

Pruebas

Page 5: Desarrollo Evolutivo

Conste en realizar pruebas al software creado. Desde ámbitos diferentes para comprobar que de verdad se comporte según lo esperado.

Se empieza probando un programa, posteriormente se prueba como un conjunto de programas, para así conocer si el sistema podría solventar el problema.

CaracterísticasBeneficios

Construir un sistema pequeño conlleva menos riesgos que desarrollar un sistema grande.

El usuario se involucra más. Se reduce el tiempo de espera. Al ir desarrollando parte de las funcionabilidades, es más fácil determinar si los

requerimientos planteados para los niveles subsiguientes son correctos. Si un error importante es realizado, solo la última iteración necesita ser

descartada. Reduciendo el tiempo de desarrollo de un sistema decrecen las probabilidades

que esos requerimientos de usuarios puedan cambiar durante el desarrollo. Los errores de desarrollo realizados en un incremento, pueden ser arreglados

antes del próximo incremento. los incrementos se pueden planear para gestionar riesgos técnicos.

Desventajas

Page 6: Desarrollo Evolutivo

Se requiere mucha planeación, tanto administrativa como técnica Se requieren metas claras para conocer el estado del proyecto Difícil de evaluar el costo total Las primeras versiones son muy incompletas Se puede aumentar el costo debido a las pruebas ya que pueden requerir más

tiempo y recursos

Modelo Prototipos

Modelo Evolutivo

Page 7: Desarrollo Evolutivo

Comparación entre métodos

Evolutivo contra incrementalEl incremental es una aproximación muy parecida a la evolutiva. En este modelo se desarrolla el sistema para satisfacer un subconjunto de los requisitos especificados y en posteriores versiones se incrementa el programa con nuevas funcionalidades que satisfagan más requisitos.

En el caso del modelo evolutivo se desarrollaría una nueva versión de todo el sistema, en el incremental se parte de la versión anterior sin cambios y le añadimos las nuevas funciones.

Diferencias entre el evolutivo y prototiposEl método evolutivo se diferencia del modelo por prototipos en que en prototipos se da por hecho que aunque se necesiten varias iteraciones para lograrlo al final se llegará a tener una serie de requisitos completos y sin errores, que no vayan a cambiar más.

En el modelo evolutivo se asume que los requisitos pueden cambiar en cualquier momento del ciclo de vida y no solo en la etapa de análisis.

Diferencias entre incremental y evolutivo

Page 8: Desarrollo Evolutivo

Conclusión

Page 9: Desarrollo Evolutivo

BibliografíaGutierrez, D. (Julio de 2011). Métodos de Desarrollo de Software. (U. d. Andes, Ed.) Obtenido de

http://www.codecompiling.net/files/slides/IS_clase_13_metodos_y_procesos.pdf

Hernandez, A. (7 de 11 de 2013). Modelo incremental - Explicación & Desarrollo. Obtenido de https://www.youtube.com/watch?v=fXMQohgAYAY

Instituto Nacional de Tecnologias de la Comunicacion. (Marzo de 2009). INGENIERÍA DEL SOFTWARE: METODOLOGÍAS Y CICLOS DE VIDA. Obtenido de file:///C:/Users/Felipe/Desktop/guia_de_ingenieria_del_software.pdf