38
PROCESOS DE SOFTWARE Alumno: Acosta Matías Gonzalo Materia: Ingeniería de Software

Procesos de Software- Unidad 2 - Sommerville

Embed Size (px)

DESCRIPTION

Procesos genéricos e híbridos de desarrollo de software.

Citation preview

Page 1: Procesos de Software- Unidad 2 - Sommerville

PROCESOS DE SOFTWARE

Alumno: Acosta Matías Gonzalo

Materia: Ingeniería de Software

Page 2: Procesos de Software- Unidad 2 - Sommerville

PROCESOS DE SOFTWARE

Una serie de actividades que conducen a la

elaboración de un producto de software.

¿Qué tipo de producción se observa hoy en día?

1- Producción artesanal.

- 2- Transformar el desarrollo de software en

una disciplina de ingeniería.

ENTONCES . . .

CICLO DE VIDA DE DESARROLLO DE SISTEMAS,

METODOLOGÍAS, HERRAMIENTAS.

Page 3: Procesos de Software- Unidad 2 - Sommerville

ACTIVIDADES FUNDAMENTALES

Especificación

Diseño e implementación

Validación

Evolución

ACTIVIDADES DE SOPORTE

Documentación

Manejo de configuraciones de software

PROCESOS DE SOFTWARE

LOS PROCESOS TAMBIÉN DEBEN INCLUIR . . .

Producto, Roles, Precondiciones y Postcondiciones.

Page 4: Procesos de Software- Unidad 2 - Sommerville

CLASIFICACIÓN DE PROCESOS

Las actividades del

proceso se planean por

anticipado.

La planeación es

incremental.

Dirigidos por un plan Ágiles

¿CUÁL CONVIENE? O ¿CUÁL ES MEJOR?

- Sistema Empresarial -> Es probable que sea mejor un

proceso menos formal y flexible.

- Sistema Crítico -> Se requiere un proceso muy

estructurado.

Por Ejemplo:

ENTONCES . . .

Por lo general, se necesita encontrar un equilibrio entre

procesos dirigidos por un plan y procesos ágiles.

Page 5: Procesos de Software- Unidad 2 - Sommerville

CONTENIDO

Modelos de proceso de software

Actividades del proceso

Como enfrentar el cambio

El Proceso Unificado Racional

Page 6: Procesos de Software- Unidad 2 - Sommerville

MODELO DE PROCESO

Representación simplificada de este proceso.

Información parcial.

Abstracciones del proceso, para explicar diferentes

enfoques de desarrollo de software.

LOS MODELOS QUE VAMOS A VER SON:

Modelo en cascada (The waterfall model).

Desarrollo incremental.

Ingeniería de software orientada a la reutilización.

Page 7: Procesos de Software- Unidad 2 - Sommerville

MODELO EN CASCADA

Page 8: Procesos de Software- Unidad 2 - Sommerville

CARACTERÍSTICAS:

Las actividades principales se toman como fases

de proceso separadas.

La siguiente fase no comienza hasta que se

termina la fase previa.

ETAPAS:

Análisis y definición de requerimientos.

Diseño del sistema y del software.

Implementación y prueba de unidad.

Integración y prueba de sistema.

Operación y mantenimiento.

Page 9: Procesos de Software- Unidad 2 - Sommerville

CONTRAS

Debido a los costos de producción y aprobación de documentos -> las iteraciones pueden ser onerosas e implicar un rediseño significativo.

Entonces . .

Es normal detener algunas partes del desarrollo y continuar con etapas posteriores.

¿Tendrá alguna consecuencia esto?

Es posible que el sistema no haga lo que el usuario desea.

Implica también una mala estructuración del sistema.

Tienen que establecerse un compromiso en etapa temprana del proceso.

VENTAJAS

Cada etapa produce una documentación que logra hacer

visible el proceso.

Page 10: Procesos de Software- Unidad 2 - Sommerville

ENTONCES... ¿CUÁNDO USAR ESTE

MODELO?

Cuando los requerimientos se entiendan bien.

Cuando sea improbable un cambio radical durante

el desarrollo.

EXISTE UNA VARIANTE DE ESTE MODELO

Desarrollo de sistemas formales -> se crea un modelo matemático para especificar el sistema. Y luego se corrige este modelo mediante transformaciones matemáticas que preservan su consistencia.

¿Cuándo es útil esto? . . .

Cuando los requerimientos de seguridad, fiabilidad o protección son rigurosos.

Page 11: Procesos de Software- Unidad 2 - Sommerville

DESARROLLO INCREMENTAL

Page 12: Procesos de Software- Unidad 2 - Sommerville

CARACTERÍSTICAS

Las actividades están entrelazadas.

Desarrollo del software de manera incremental.

Los primeros incrementos incluyen la función mas

importante o urgente.

VENTAJAS CON RESPECTO AL MODELO EN

CASCADA

Se reduce el costo de adaptar requerimientos

cambiantes del cliente.

Mas fácil obtener retroalimentación del cliente

sobre el desarrollo.

Rápida entrega de un software útil.

Page 13: Procesos de Software- Unidad 2 - Sommerville

INCONVENIENTES, DESDE LA

PERSPECTIVA ADMINISTRATIVA.

El proceso no es visible.

La estructura del sistema tiende a degradarse.

Parecen pocos

inconvenientes . . .

SI EL SISTEMA FUERA:

Grande

Complejo

De larga duración

Con diversos equipos de trabajo

Parecen pocos inconvenientes, pero . . .

El inconveniente se incrementa.!!!

Page 14: Procesos de Software- Unidad 2 - Sommerville

INGENIERÍA DE SOFTWARE ORIENTADA A

LA REUTILIZACIÓN

Page 15: Procesos de Software- Unidad 2 - Sommerville

CARACTERÍSTICAS

Basado en una cantidad significativa de

componentes reutilizables.

También puede haber reutilización informal.

ETAPAS

Análisis de componentes.

Modificación de requerimientos.

Diseño de sistema con reutilización.

Desarrollo e integración

Page 16: Procesos de Software- Unidad 2 - Sommerville

TIPOS DE COMPONENTES QUE SE PUEDEN

REUTILIZAR

Servicios web

Colección de objetos desarrollados como un paquete

para ser integrados como framework de componentes.

Sistemas hechos a medida (stand-alone).

VENTAJAS DE ÉSTE PROCESO

Reduce: Software desarrollado, costo y riesgo.

Conduce a una entrega mas rápida del software.

¿Y LAS DESVENTAJAS?

No cubrir necesidades reales de los clientes.

Se pierde el control de la evolución del sistema.

Page 17: Procesos de Software- Unidad 2 - Sommerville

ACTIVIDADES DEL PROCESO

Especificación del software

Definición de requerimientos.

Identificación de restricciones.

Page 18: Procesos de Software- Unidad 2 - Sommerville

ESPECIFICACIÓN DEL SOFTWARE

Actividades principales:

Estudio de factibilidad.

Obtención y análisis de requerimientos.

Especificación de requerimientos.

Validación de requerimientos.

¿Éstas actividades siguen una secuencia estricta.?

No necesariamente, el análisis de requerimientos

continua en las siguientes actividades, dado que pueden

surgir nuevos requerimientos.

Page 19: Procesos de Software- Unidad 2 - Sommerville

ACTIVIDADES DEL PROCESO

Diseño e implementación del software.

Descripción de la estructura del software.

Convertir la descripción en un ejecutable.

Page 20: Procesos de Software- Unidad 2 - Sommerville

DISEÑO E IMPLEMENTACIÓN DEL

SOFTWARE

Actividades principales:

Diseño arquitectónico.

Diseño de interfaz.

Diseño de componentes.

Diseño de base de datos.

Las actividades del proceso de diseño están vinculadas,

es inevitable la retroalimentación de una actividad a otra.

Page 21: Procesos de Software- Unidad 2 - Sommerville

ACTIVIDADES DEL PROCESO

Validación del software

Verificar que el sistema cumple con sus

especificaciones y las expectativas del cliente.

Page 22: Procesos de Software- Unidad 2 - Sommerville

VALIDACIÓN DE SOFTWARE

Un plan de prueba. Aplicable, por ejemplo, a un

sistema crítico.

Page 23: Procesos de Software- Unidad 2 - Sommerville

ACTIVIDADES DEL PROCESO

Evolución del software

Flexibilidad

La ingeniería de software como proceso evolutivo.

Page 24: Procesos de Software- Unidad 2 - Sommerville

CÓMO ENFRENTAR EL CAMBIO

El cambio es inevitable en proyectos grandes de

software.

El sistema responde a presiones externas cambiantes.

Nuevos requerimientos.

Nuevas tecnologías.

Nuevas posibilidades de diseño e implementación.

Existen dos enfoques para reducir costos de rehacer:

Evitar el cambio -> Prototipo de sistema.

Tolerancia al cambio -> Entrega incremental.

Page 25: Procesos de Software- Unidad 2 - Sommerville

CÓMO ENFRENTAR EL CAMBIO

Creación del prototipo

Características

Demuestra conceptos.

Permite encontrar mas sobre el problema y soluciones.

Page 26: Procesos de Software- Unidad 2 - Sommerville

CÓMO ENFRENTAR EL CAMBIO

Etapas de creación del prototipo

Establecimiento de objetivos del prototipo.

De lo contrario los administradores o usuarios finales

pueden malinterpretar la función del mismo.

Definición de la funcionalidad del prototipo.

Decidir que poner y que dejar fuera, para reducir costos

y acelerar entrega.

Desarrollo del prototipo.

Evaluación del prototipo.

Capacitación del usuario.

Inconvenientes

Que el prototipo no se utilice igual que el sistema final.

Que el revisor talvez no sea el usuario final.

Que el prototipo sea lento -> no se prueba completo.

Page 27: Procesos de Software- Unidad 2 - Sommerville

CÓMO ENFRENTAR EL CAMBIO

Otras consideraciones.

Si se entrega un prototipo en lugar de la versión final:

Puede ser imposible corregir el prototipo para cubrir

requerimientos no funcionales.(rendimiento, seguridad,

robustez y fiabilidad).

El prototipo no tiene la misma documentación que el

sistema final.

Será difícil y costoso mantener.

Se hacen mas flexibles los estándares de calidad de la

organización.

Page 28: Procesos de Software- Unidad 2 - Sommerville

CÓMO ENFRENTAR EL CAMBIO

Entrega incremental

Características

Cada incremento proporciona un subconjunto de la funcionalidad del sistema.

Experimentar con el sistema ayuda a clarificar requerimientos, para posteriores incrementos.

Page 29: Procesos de Software- Unidad 2 - Sommerville

CÓMO ENFRENTAR EL CAMBIO

Ventajas

Los clientes utilizan los primeros incrementos como prototipos -> adquieren experiencia.

Los clientes no tienen esperar hasta la entrega completa del sistema para ganar valor del mismo.

Se mantiene el beneficio del desarrollo incremental.

Los servicios mas importantes reciben mayores pruebas -> menores fallas en partes significativas.

Inconvenientes

Requerimientos no definidos en detalle -> Difícil identificar recursos que necesiten todos los requerimientos.

Desarrollo iterativo complicado cuando se diseña un sistema de reemplazo.

Algunos clientes requieren toda la especificación de antemano.

Page 30: Procesos de Software- Unidad 2 - Sommerville

CÓMO ENFRENTAR EL CAMBIO

Modelo en espiral de Boehm

Page 31: Procesos de Software- Unidad 2 - Sommerville

CÓMO ENFRENTAR EL CAMBIO

Características

Cada ciclo representa una fase del proceso de software.

Combina evitar el cambio, con la tolerancia al cambio.

Supone que los cambios son resultados de los riesgos.

Sectores

Establecimiento de objetivos.

Valoración y reducción del riesgo.

Desarrollo y validación.

Planeación.

La diferencia principal con otros modelos es el

reconocimiento explicito del riesgo.

Page 32: Procesos de Software- Unidad 2 - Sommerville

REPASO

Procesos de

software

Actividades

principalesTienen

• Especificación

• Diseño e implementación

• Validación

• Evolución

Modelos de procesos

de software

Pueden representarse

como

• Modelo en cascada

• Desarrollo incremental

• Orientado a reutilización

Enfrentar el cambio

Deben

Enfoques

• Evitar el cambio -> Prototipos

• Tolerar el cambio -> Desarrollo incremental

Modelos

generales

Modelo en espiral de Boehm

Page 33: Procesos de Software- Unidad 2 - Sommerville

PROCESO UNIFICADO RACIONAL

Características

Combina elementos de todos los procesos genéricos.

Buenas practicas en especificación y diseño.

Apoya creación de prototipos y entrega incremental.

Se describe desde tres perspectivas:

Dinámica -> muestra fases a través del tiempo.

Estática -> presenta actividades (disciplinas) del proceso.

Práctica -> sugiere buenas prácticas durante el proceso.

Fases

Concepción.

Elaboración.

Construcción.

Transición.

Page 34: Procesos de Software- Unidad 2 - Sommerville

PROCESO UNIFICADO RACIONAL

Cada fase puede desarrollarse incrementalmente.

Todo el conjunto de fases puede expresarse de manera

incremental.

Visión dinámica:

Page 35: Procesos de Software- Unidad 2 - Sommerville

PROCESO UNIFICADO RACIONAL

Visión estática

Flujos de trabajo de proceso centrales (Disciplinas)

Modelado del negocio -> casos de uso de la empresa

Requerimientos -> casos de uso para requerimientos

Análisis y diseño -> modelos arquitectónicos, de componentes,

de objetos y de secuencias

Implementación -> generación de código a partir de modelos

Pruebas

Despliegue -> instalación

Flujos de trabajo de apoyo

Administración de la configuración y del cambio -> gestión de

cambios

Administración del proyecto -> gestión de desarrollo

Entorno -> pone a disposición del equipo las herramientas

adecuadas

Page 36: Procesos de Software- Unidad 2 - Sommerville

PROCESO UNIFICADO RACIONAL

Visión estática y dinámica

Page 37: Procesos de Software- Unidad 2 - Sommerville

PROCESO UNIFICADO RACIONAL

Aclaraciones

Cada ciclo constituye una versión del sistema

Cada ciclo consta de cuatro fases

Cada fase se divide en iteraciones

Cada iteración desarrolla en secuencia un conjunto de

flujos de trabajo

El proceso unificado consiste en una serie de

flujos de trabajo que van desde los requisitos

hasta las pruebas.

Page 38: Procesos de Software- Unidad 2 - Sommerville

PROCESO UNIFICADO RACIONAL

Buenas prácticas

Desarrollo de software de manera iterativa

Gestión de requerimientos

Usar arquitecturas basadas en componentes

Visualizar el software a partir de modelos

Verificar la calidad del software

Controlar los cambios del software