2.modelos del proceso

27
2.Modelos del Proceso Ramiro Estigarribia Canese

Upload: ramiro-estigarribia-canese

Post on 26-Jul-2015

53 views

Category:

Technology


0 download

TRANSCRIPT

2.Modelos del Proceso

Ramiro Estigarribia Canese

Proceso de AprendizajeEl desarrollo es un proceso de aprendizaje humano:➔ Es un diálogo entre personas, en el que el

conocimiento se convierte en software. ➔ Se genera interacción entre usuarios, diseñadores y

herramientas en evolución.➔ Es un proceso que se repite y en el que la

herramienta que evoluciona sirve por sí misma como medio para la comunicación: con cada nueva ronda del diálogo se genera más conocimiento útil.

¿Qué es un proceso del SW?➔ Es una estructura para las actividades, acciones y

tareas que se requieren a fin de construir software de alta calidad.

➔ El resultado es la reunión de conocimiento recabado, depurado y organizado.

Actividades EstructuralesUna estructura general para la ingeniería de software define cinco actividades estructurales: 1. Comunicación.2. Planeación.3. Modelado.4. Construcción.5. Despliegue. Además, a lo largo del proceso se aplica: seguimiento del proyecto, administración de riesgos, aseguramiento de la calidad, configuración, revisiones técnicas, entre otras.

Flujo del Proceso: Lineal vs Iterativo

➔ Un flujo de proceso lineal ejecuta cada una de las cinco actividades en secuencia.

➔ Un flujo de proceso iterativo puede repetir las actividades antes de pasar a la siguiente.

Flujo del Proceso Evolutivo

➔ Un flujo de proceso evolutivo realiza las actividades en forma “circular”.

➔ A través de las cinco actividades, cada circuito lleva a una versión más completa del software.

Flujo del Proceso Paralelo.

Un flujo de proceso paralelo ejecuta una o más actividades en paralelo con otras.

Patrones de SW.Los mejores diseñadores en cualquier campo tienenuna habilidad extraña para reconocer patrones quecaracterizan un problema, y asociarlos a una solución.

Un ingeniero del software debe observar cada oportunidad en la que puedan reutilizar patrones de diseño existentes, en vez de crear otros nuevos.

¿Qué es un patrón de SW?➔ Son la base para la búsqueda de soluciones a

problemas comunes del desarrollo de software.➔ Proporcionan elementos reusables.➔ Estos deben ser utilizados sólo si poseemos el mismo

problema o similar que el patrón pueda solucionar.

Patrones del Proceso.➔ Cada equipo de software se enfrenta a problemas

conforme avanza el proyecto.➔ Si se demostrara que existen soluciones fáciles

para dichos problemas, sería útil para el equipo abordarlos y resolverlos rápidamente.

➔ Un patrón del proceso: describe un problema, y sugiere una o más soluciones para el mismo.

➔ Al combinar patrones, un equipo resuelve problemas y construye el proceso que mejor satisfaga las necesidades.

Modelo en Cascada.

➔ Tenemos la tendencia de pensar que el orden es el estado ideal de la naturaleza.

➔ El modelo de la cascada, sugiere un enfoque secuencial, que comienza con la especificación de los requerimientos y avanza hasta concluir con el software terminado .

➔ El progreso fluye de arriba hacía abajo, como una cascada.

Modelo en Cascada

Modelo en CascadaDesventajas

➔ Es raro que un proyecto real sigan el flujo secuencial propuesto por el modelo.

➔ A menudo, es difícil para el cliente enunciar al principio todos los requerimientos.

➔ El cliente debe tener paciencia:No se tendrá una versión funcional hasta que el proyecto está avanzado.

El Modelo Incremental.➔ En muchas situaciones existe una necesidad

de dar rápidamente cierta funcionalidad de software a los usuarios y aumentarla en las entregas posteriores.

➔ En tales casos, se elige un modelo de proceso diseñado para producir el software en incrementos.

“El modelo incremental aplica secuencias linealesen forma escalonada a medida que avanza el

calendario de actividades”.

El Modelo Incremental.Cada secuencia lineal produce “incrementos” de software susceptibles de entregarse. (versiones)

Ejemplo: Un procesador de textos:➔ En el primer incremento tendrá las funciones

básicas de administración de archivos y edición➔ En el segundo dará herramientas más sofisticadas

de edición y producción de documentos➔ En el tercero habrá separación de palabras y

revisión de la ortografía.

Modelos Evolutivos.➔ El software, como todos los sistemas

complejos, evolucionan en el tiempo. ➔ Los plazos apretados del mercado hacen que sea

imposible la terminación de un software perfecto.➔ Muchas veces la competencia obliga a lanzar una

versión funcional.➔ En esta situación se necesita un modelo diseñado

para adaptarse a un producto que evoluciona con el tiempo.

RoadMap Ubuntu 10.04

El Prototipo.➔ Es frecuente que un cliente defina algunos

objetivos, pero sin estar seguro de los detalles del sistema.

➔ En estas situaciones, el paradigma de hacer prototipos ofrece un enfoque efectivo.

Ventajas:1. Ayuda a mejorar la comprensión de lo que hay que

elaborar cuando los requerimientos no están claros.2. Permite acelerar el proceso a partir de un prototipo

funcional.

El Prototipo.➔ El prototipo permite tener el primer contacto con el

producto. ➔ La mayoría de los prototipos se construyen para

ser desechados una vez que el producto esté listo.➔ En cambio otros pueden ser evolutivos: finalmente

se transforman en el sistema final.➔ En muchas ocasiones trae beneficios: los usuarios

y desarrolladores interactúan y conocen mejor al proyecto a crear.

El Prototipo. Desventajas.➔ Los usuarios ven una versión funcional del

software, sin darse cuenta que no se tuvieron en cuenta las recomendaciones de calidad, rendimiento, mantenimiento, etc.

➔ El prototipo puede no satisfacer al cliente: es una situación que debe ser manejada con profesionalismo de forma a entender que el producto final será distinto.

El modelo espiral.➔ Las actividades se ordenan en una espiral, en la

que cada bucle representa un conjunto de actividades.

➔ Consiste en una serie de ciclos que se repiten en forma de espiral, comenzando desde el centro.

➔ Permite hacer un desarrollo rápido de versiones.

El modelo espiral. Desventajas.

El modelo espiral puede adaptarse para aplicarse a lo largo de toda la vida del software.

Al igual que otros paradigmas, no es perfecto, y posee desventajas:

1. Incertidumbre en el número de vueltas necesarias.2. Es difícil convencer a los clientes.3. Demanda mucha experiencia en la evaluación del

riesgo y se basa en ella para llegar al éxito.4. Habrá problemas si algún riesgo importante no se

descubre y administra a tiempo.

Ingeniería del Software Basada en Componentes ➔ Los programadores han reutilizado ideas,

abstracciones y procesos desde los comienzos.➔ Hoy en día, los sistemas complejos y de alta

calidad basados en computadora se deben construir en períodos cortos, situación que se mitiga con un enfoque de reutilización más organizado.

¿Qué es la ISBC?Es un proceso que se centra en el diseño y construcción de sistemas utilizando componentes de software reutilizables.

Objetivos de la ISBC:➔ Desarrollar sistemas a partir de componentes ya

construidos en el pasado.➔ Desarrollar nuevos componentes como entidades

reusables.➔ Mantener y evolucionar el sistema a partir de la

adaptación y reemplazo de sus componentes.

Resumen y Conclusiones➔ El desarrollo es un proceso de aprendizaje

humano, en donde las personas se comunican y transforman el conocimiento en software.

➔ Un proceso del SW es una estructura para las actividades, acciones y tareas que se requieren a fin de construir software de alta calidad.

➔ El software de una empresa, y todos los sistemas complejos, tienden a evolucionar en el tiempo.