1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.
Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a...
-
Upload
vanesa-santos-segura -
Category
Documents
-
view
217 -
download
0
Transcript of Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a...
![Page 1: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/1.jpg)
Ingeniería de Software: Parte 2
Agustín J. GonzálezElO329: Diseño y Programación
Orientados a ObjetoAdaptado de:
http://www.dsic.upv.es/~uml http://inst.eecs.berkeley.edu/~cs169/
entre otras fuentes.
![Page 2: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/2.jpg)
Algunas Metodologías ...
Personal Software Process y Team software Process XP (Programación Extrema) RUP (Rational Unified Process) La familia Cristal de Cockburn Código Abierto ASD (Desarrollo de Software Adaptable) SCRUM FFD (Desarrollo Manejado por Rasgos) DSDM (Método de desarrollo de sistema dinámico)
Yo no conozco todas, pero vale la pena conocer al menos una. Aquellas en rojo son populares.
![Page 3: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/3.jpg)
RUP ...
![Page 4: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/4.jpg)
Desarrollo de software: Características de RUP ...
Guiado y Manejado por Casos de Uso
Centrado en la Arquitectura
Iterativo e Incremental
Desarrollo Basado en Componentes
Utilización de UML
Proceso Integrado
![Page 5: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/5.jpg)
Casos de uso: Idea general
Un caso de uso es una colección de escenarios de éxito y fallas relacionados que describen actores usando el sistema para alcanzar algún objetivo.
Un escenario es una secuencia específica de acciones e interacciones entre actores y el sistema bajo discusión.
Un actor es algo externo al sistema discusión que interactúa con éste. Por ejemplo: Una persona, otro sistema computacional, un sensor, etc.
Los casos de uso muestran el comportamiento observable del sistema.
![Page 6: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/6.jpg)
Principales metodologías en el tiempo
Tiempo
Modelo Tradicional de Cascada
1980
Tiempo
Definición de Requerimientos
Análisis & Diseño
Implementación y Test Unitarios
Construcción/Pruebas
t
t
Iteración 1 Iteración 2 Iteración 3
P
C
A&D
R
P
C
A&D
R
P
C
A&D
RModelo Iterativo
Incremental1990
Integración ytest del sistema
Operación y mantención
![Page 7: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/7.jpg)
• Pruebas funcionales• Pruebas de desempeño• Gestión de requisitos• Gestión de cambios y
configuración• Ingeniería de Negocio• Ingeniería de datos• Diseño de interfaces
Rational Unified Process1998
Rational Objectory Process1996-1997
Objectory Process1987-1995
Enfoque Ericsson
UML
Rational Unified Process (RUP)
![Page 8: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/8.jpg)
TiempoTiempo
Esfu
erz
o N
ecesari
o p
or
Acti
vid
ad
TransiciónTransiciónElaboraciónElaboración ConstrucciónConstrucciónConcepciónConcepción
Iteración Preliminar
. . . .. . . .Iteración1
Iteración2
. . . .. . . . Iteraciónn
Iteración
n+1
RUP Define Fases de Desarrollo ...
Análisis & Diseño
Construcción
Pruebas
Distribución
Requerimientos
Áreas de trabajo (Workflow)
A & D
C
P
D
R
A & D
C
P
D
R
A & D
C
P
D
R
A & D
C
P
D
R
![Page 9: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/9.jpg)
Fases del Ciclo de Vida
El ciclo de vida consiste en una serie de ciclos, cada uno de los cuales produce una nueva versión del producto
Cada ciclo está compuesto por fases y cada una de estas fases está compuesta por un número de iteraciones
Las fases son 4: Concepción, Inicio o Estudio de
oportunidad Elaboración Construcción Transición
![Page 10: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/10.jpg)
...Fases del Ciclo de Desarrollo
Inicio o Estudio de oportunidad (inception) Define el ámbito y objetivos del proyecto Se define la funcionalidad y capacidades del
producto
Elaboración Tanto la funcionalidad como el dominio del
problema se estudian en profundidad Se define una arquitectura básica Se planifica el proyecto considerando
recursos disponibles
![Page 11: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/11.jpg)
...Fases del Ciclo de Desarrollo Construcción
El producto se desarrolla a través de iteraciones donde cada iteración involucra tareas de análisis, diseño e implementación
Las fases de estudio y análisis sólo dieron una arquitectura básica que es aquí refinada de manera incremental conforme se construye (se permiten cambios en la estructura)
Gran parte del trabajo es programación y pruebas
Se documenta tanto el sistema construido como el manejo del mismo
Esta fase proporciona un producto construido junto con la documentación
![Page 12: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/12.jpg)
...Fases del Ciclo de Desarrollo
Transición Se libera el producto y se entrega al usuario
para un uso real Se incluyen tareas de marketing,
empaquetado atractivo, instalación, configuración, entrenamiento, soporte, mantenimiento, etc.
Los manuales de usuario se completan y refinan con la información anterior
Estas tareas se realizan también en iteraciones
![Page 13: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/13.jpg)
El ciclo de vida iterativo se basa en la evolución de prototipos ejecutables que se muestran a los usuarios y clientes
En el ciclo de vida iterativo, en cada iteración se reproduce el ciclo de vida en cascada a menor escala
Los objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes
Proceso Iterativo e Incremental
![Page 14: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/14.jpg)
Análisis
Diseño
Codific.
Pruebas eIntegración
n veces
... Proceso Iterativo e Incremental
Las actividades se encadenan en una mini-cascada con un alcance limitado por los objetivos de la iteración
![Page 15: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/15.jpg)
... Proceso Iterativo e Incremental
Cada iteración comprende: Planificar la iteración (estudio de riesgos) Análisis de los Casos de Uso y escenarios Diseño de opciones arquitectónicas Codificación y pruebas. La integración del nuevo
código con el hecho en iteraciones anteriores se hace gradualmente durante la construcción
Evaluación de la entrega de ejecutable (evaluación del prototipo en función de las pruebas y de los criterios definidos)
Preparación de la entrega (documentación e instalación del prototipo)
![Page 16: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/16.jpg)
ConcepciónConcepción ElaboraciónElaboración ConstrucciónConstrucción TransiciónTransición
Compromiso de recursos para fase
elaboración
HitoObjetivos,
visión
HitoArquitectura
HitoCapacidad
Operacional
Aceptación del cliente
LiberaciónProducto
Tiempo
Importancia de los Hitos en RUP ...
![Page 17: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/17.jpg)
Deployment Set
Project Management Set
Configuration & Change Management Set
Environment Set
Business Modeling Set
Requirements Set
Analysis & Design Set
Implementation Set
Test Set
... Elementos en RUP
Artefactos Es el Resultado parcial o final que es producido y
usado durante el proyecto. Son las entradas y salidas de las actividades
Un artefacto puede ser un documento, un modelo o un elemento de modelo
Conjuntos de Artefactos
![Page 18: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/18.jpg)
Mejores Prácticas de RUP ...
Controle los Cambios
Administre los Administre los RequerimientosRequerimientos
Use Use Arquitectura Arquitectura
de de ComponentesComponentes
Modele Modele VisualmenteVisualmente
Verifique Verifique CalidadCalidad
Desarrolle Iterativamente
![Page 19: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/19.jpg)
Características Esenciales de RUP
Proceso Dirigido por los Casos de Uso Proceso Iterativo e Incremental Proceso Centrado en la Arquitectura
![Page 20: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/20.jpg)
Proceso Centrado en la Arquitectura
La arquitectura de un sistema es la organización o estructura de sus partes más relevantes
Un arquitectura ejecutable es una implementación parcial del sistema, construida para demostrar algunas funciones y propiedades
RUP establece refinamientos sucesivos de una arquitectura ejecutable, construida como un prototipo evolutivo
Architecture
Inception Elaboration Construction Transition
![Page 21: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/21.jpg)
Otra visión similar con más Actividades
![Page 22: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/22.jpg)
Otra visión similar con más Actividades
Disciplinas o áreas de trabajo
Modelado del Negocio
Requisitos
Análisis y Diseño
Implementación
Pruebas
Despliegue, distribución
Entorno
Gestión de configuración y cambios
Gestión del proyecto
Primarios
De Apoyo
![Page 23: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/23.jpg)
RequisitosCapturar, definir y validar los casos de
uso
Realizar los casos de uso
Verificar que se satisfacen los casos de uso
Análisis & Diseño
Implementación
Pruebas
Casos de Usointegran el
trabajo
Proceso dirigido por los Casos de Uso
![Page 24: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/24.jpg)
Caso de Uso
Realización de Análisis
Realización de Diseño
Caso de Prueba
X
«trace» «trace»
«trace»«trace»
Pruebas Funcionales
PruebasUnitarias
[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]
... Proceso dirigido por los Casos de Uso
![Page 25: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/25.jpg)
... Proceso dirigido por los Casos de Uso
![Page 26: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/26.jpg)
EnfoqueCascada
EnfoqueIterativo eIncremental
Proceso Iterativo e Incremental
Grado de completitud de cada área de trabajo
![Page 27: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/27.jpg)
Grado de Finalización de Artefactos
... Proceso Iterativo e Incremental
![Page 28: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/28.jpg)
15%
10%
15%
30%
15%
P re lim ina ry
Ite ra tion (s)ite r.
# 1
ite r.
# 2
ite r.
# n
ite r.
#n+ 1
ite r.
# n+2
ite r.
#m
ite r.
#m +1
Inception Elaboration Construction Transition
Una iteración en lafase de elaboración
Requisitos
Diseño
Implementación
Pruebas
Análisis
Esfuerzo respecto de las Áreas de Trabajo (Workflows)
![Page 29: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/29.jpg)
P re lim ina ry
Ite ra tion (s)ite r.
# 1
ite r.
# 2
ite r.
# n
ite r.
#n+ 1
ite r.
# n+2
ite r.
#m
ite r.
#m +1
Inception Elaboration Construction Transition
Una iteración en lafase de elaboración
Requisitos
Diseño
Implementación
Pruebas
Análisis
Esfuerzo: 5% 20% 65% 10%Duración: 10% 30% 50% 10%
...Esfuerzo respecto de las Fases
![Page 30: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/30.jpg)
Un Ejemplo: Comparar con V-Model (Motorola)
![Page 31: Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: uml cs169](https://reader036.fdocument.pub/reader036/viewer/2022070416/5665b4781a28abb57c91be57/html5/thumbnails/31.jpg)
Dos lecciones importantes
El tiempo es independiente del contexto. Ahorrar una semana la comienzo de un proyecto es tan bueno como ahorrarla al final. Una semana es una semana.
Es mucho más fácil ahorrar tiempo al inicio del proyecto (cuando los “entregables” son menos claros).
Conclusión: Cómo se aplica esto al proyecto del ramo?