Anda di halaman 1dari 81

Introduccin al Anlisis y Diseo Orientado a Objetos

Tema 3

TACC II Curso 2008/09 1

Motivacin
z Un p proyecto y software no consiste slo en p programar g . z Necesitamos saber cules son las necesidades del cliente.
{ Identificar Id tifi l los requisitos, i it anotarlos, t l analizarlos, li l validarlos. lid l

z Necesitamos disear una solucin, , y hacer los planos p del software:


{ Diseo de la arquitectura, detallado, de datos,

z Hay que asegurarse de que el software funciona:


{ Pruebas de unidad (a nivel de mtodo y clase), de integracin, del sistema de aceptacin sistema, aceptacin, etc. etc

z Hay que mantener el software.


{ Documentacin (de cada una de las fases), coherencia entre los productos de las distintas fases (ej. cdigo vs. diseos).
2

Indice

zModelos de Ciclo de Vida.


z Anlisis y Diseo Orientado a Objetos Objetos. z Notaciones. z Metodologas.

Modelos de ciclo de vida


z Qu Q estrategia t t i seguimos i para organizar i l las f fases d de un proyecto?. z Un modelo de ciclo de vida nos guia en las fases que hay y q que realizar, sus entradas y salidas, y los criterios de transicin. zL La eleccin l i de d uno u otro depende d d de d las l caractersticas i del proyecto. z Con teconologas orientadas a objetos se tiende a ciclos de vida iterativos e incrementales.
4

Modelos de Ciclo de Vida


/ Estudio de Viabilidad. Planificacin y Estimacin.

Qu

Anlisis

Desventajas:
No N permite it iteraciones. it i

Cmo

Diseo

Los requisitos se congelan al principio del proyecto. No existe un proyecto enseable hasta el final del proyecto.

Codificacin

MCV en Cascada

Pruebas e integracin

Operacin O y Mantenimiento

[ ti ] [retiro]
5

Modelos de Ciclo de Vida


Iteracin de A & D [ms iteraciones]

Planificacin

Anlisis

Diseo

Incremento Planificacin Anlisis Diseo Extraer clases reutilizables Prototipo Pruebas Eval. Eval cliente

[ms iteraciones]

MCV iterativo e incremental (RUP)

Indice
z Modelos M d l d de Ci Ciclo l d de Vid Vida.

zAnlisis y Diseo Orientado a Objetos.


{Ventajas e inconvenientes inconvenientes. {Anlisis. {Diseo. z Notaciones. Notaciones z Metodologas.
7

Anlisis y Diseo
Problema vs vs. Solucin
Anlisis (qu) Diseo (cmo)

Dominio del problema

Dominio de la Solucin

Modelo del Dominio del Problema ControlTrafico

Modelo del Dominio de la Solucin VentanaResumen VentanaMapas p

Avin

Controlador Trafico Aeropuerto

BDPlanVuelo C t lT fi ControlTrafico
8

PlanVuelo

Paradigma g de Orientacin a Objetos j


Caractersticas

z Diseos modulares modulares. z Efectos laterales mnimos(encapsulamiento) ( p ) z Extensibilidad. z Fcil de modificar. z Orientado a datos. z Explota la herencia (jerrquico). z Reutilizacin R ili i d de clases. l
9

Ventajas
z Mdulos con fuerte cohesin interna y escaso acoplamiento externo (sin variables globales, ) z Facilita el funcionamiento en entorno multiprocesador (objetos distribuidos) z Correspondencia directa con el mundo real z Prototipos rpidos z Herramientas y bibliotecas muy amplias z Aplicaciones construidas enganchando objetos z Mejor comprensin y mantenimiento z Apropiado para aplicaciones dirigidas por eventos.
10

Inconvenientes
zI Impactos t d f desfavorables bl sobre b espacio i y tiempo ti d de ejecucin. z Forma de pensar diferente: curva de aprendizaje lenta. z Herencia y ligadura dinmica dificultan las pruebas. z Difcil seguir el flujo de ejecucin (e.j. llamdas implicitas a constructores, conversiones implcitas, etc.) z Frameworks grandes y complicados (e.j. MFCs).
11

Anlisis Orientado a Objetos


z Centrarse en el qu. z Identificar los requisitos: documentos de anlisis.
{ Entrevistas. { Identificar requisitos funcionales y no funcionales (ej.: rendimiento, fiabilidad)

z Especificar los requisitos: documento de especificacin de requisitos.


{ Documento D t tcnico. t i O Organizacin i i y clasificacin l ifi i d de l los requisitos. i it

z Analizar: Modelos de anlisis anlisis.


{ Estudio de posibles escenarios: casos de uso. { Otras tcnicas: fichas CRC, orientados al flujo, etc.

z Validar.

12

Anlisis Orientado a Objetos


Obtencin de requisitos Especificacin de requisitos: Documento Anlisis Modelo de Anlisis: Modelo Diseo del Sistema Modelo del Sistema: Modelo

z La especificacin de requisitos i it d describe ib el l sistema, en lenguaje natural. z Sirve de comunicacin entre desarrolladores y clientes, contrato. z El modelo de anlisis usa notacin formal (ej.: Z, , Alloy) y) o semi-formal (ej.: UML). z Sirve de comunicacin entre desarrolladores. 13

Anlisis Orientado a Objetos


Modelos de Anlisis
Modelos basados en Escenarios Casos de uso, texto. Casos de uso, diagramas. Diagramas de actividad. Diagramas de secuencia. Modelos orientados al Flujo Diagramas de Flujo de Datos Diagramas de Flujo de Control Diagramas de Transicin de Estados

Modelo de Anlisis
Modelos basados en Clases Diagramas de Clases. Diagramas de Paquete. Modelos CRC. CRC Diagramas de Interaccin. Modelos basados en Comportamiento Diagramas de Estado. Diagramas de Secuencia. Secuencia
14

Anlisis Orientado a Objetos


Modelos de Anlisis. Basado en Escenarios.
Modelo de Anlisis: Modelo

Modelo Funcional: Modelo

Modelo de Objetos: Modelo

Modelo Dinmico: Modelo

z Modelo funcional: casos de uso y escenarios. z Modelo de Objetos: diagramas de clases y objetos. z Modelo M d l dinmico: di i di diagramas d de secuencia, i
15

Casos de uso
zD Describen ib qu hace h el l sistema i t d d el desde l punto t de d vista i t de un observador externo. z Actores: quin interacta con el sistema?. Tambin pueden ser otros sistemas. p z Un escenario es un ejemplo de lo que ocurre cuando uno o varios i actores interactan i con el l sistema. i zC Caso de d uso: conjunto j t de d escenarios i ( (secuencias i d de interaccin de los actores y el sistema)
16

Casos de uso
z Pasos:
{ Identificar los lmites (alcance) del sistema. { Identificar los actores principales. { Para cada uno, identificar sus objetivos. { Definir casos de uso que satisfagan sus objetivos.
17

Casos de Uso: Ejemplo


CASO DE USO 1: Procesar venta Actor Primario:
{ Cajero. C j

Interesados y objetivos:
{ Cajero: Quiere anotaciones precisas y rpidas de precios, sin errores. { Cliente: Cli t Q Quiere i que el l pago sea rpido id con el l mnimo i esfuerzo. f Q i Quiere una prueba de compra para justificar devoluciones. { Compaa: Quieren almacenar las transacciones y satisfacer los intereses de los clientes. { Comercial: Quiere que se le actualicen sus comisiones por venta. { Agencias de impuestos gubernamentales: Quieren recolectar impuestos de cada venta. Puede que haya varias agencias (nacionales, regionales, etc.) t ) { Servicios de Autorizacin de Pagos (por tarjetas de crdito): Quiere recibir peticiones digitales de autorizaciones en el formato y protocolo correcto.

Precondiciones:
{ El cajero se ha identificado y autentificado.

18

Casos de Uso: Ejemplo


Garanta de xito (Postcondiciones):
Se registra la compra en el sistema. Se calcula el impuesto aplicable. Se actualizan los sistemas de inventario y de contabilidad. Se registran las comisiones. Se genera un recibo. Se registran las aprobaciones de pago por tarjeta.

Escenario principal de Exito: 1. Llega un clienta al TPV con bienes o servicios que comprar. 2. El cajero comienza una nueva compra. 3. El cajero introduce un identificador de producto. 4 El sistema 4. i t registra i t el l elemento l t y presenta t una descripcin d i i del d l mismo, i su precio i y total actual. Se calcula el precio de una lista de reglas. El cajero j repite p los p pasos 3-4 hasta q que no hay y ms elementos. 5. El sistema presenta el total con los impuestos calculados. 6. El cajero le dice el total al cliente, y le pide que pague. 7 El cliente paga y el sistema procesa el pago. 7. pago 8. El sistema registra la venta completada y manda la informacin a los sistemas externos de inventario y contabilidad. 9. El sistema genera el recibo. 10. El cliente se va.
19

Casos de Uso: Ejemplo


Extensiones (Flujos alternativos): a*. En cualquier momento, el sistema falla. 3a. Identificador invlido. 1. El sistema seala un error y rechaza la entrada. 7a. Pago en efectivo. ... 7b Pago con tarjeta 7b. tarjeta. ... Requisitos especiales: z Pantalla tctil en panel grande y plano. El texto debe ser visible desde un metro. z Respuesta de autorizacin de crdito en menos de 30 secs, el 90% de las veces. z Recuperacin robusta cuando el acceso a sistemas externos (tales como el inventario, impuestos, etc.) falla. z Posibilidades de internazionalizacin de texto. z Reglas de negocio insertables en los pasos 3 y 7. ...
20

Casos de Uso: Ejemplo


Lista de variaciones de tecnologa y datos: 3a. Se introduce el identificador del elemento mediante escner de cdigo de barras o mediante el teclado. 3b. Distintos esquemas de identificadores: UPC, EAN, JAN o SKU. 7a. La informacin sobre el pago con tarjeta se puede introducir mediante el teclado o lector. 7b. Se pide firma en papel. En dos aos, creemos que muchos clientes van a querer captura de firma digital. Frecuencia de ocurrencia: Puede ser casi continua. Temas abiertos: Cules son las posibles variaciones en las leyes sobre impuestos? Explorar el tema de recuperacin en caso de fallo de sistemas externos. Qu modificaciones se necesitan para negocios distintos? Debe el cajero extraer el cajn con la recaudacin al terminar? Puede el cliente usar directamente el lector de tarjetas o es el cajero el que lo hace?
21

Diagrama de Casos de Uso (UML)


TPV
Procesar Venta caje o cajero Procesar Devoluciones
actor Analizador de Actividad de Ventas

Servicio de Autorizacin de Pagos


actor Calculador de Impuestos p

Analizar Actividad ... Gestionar Seguridad Gestionar Usuarios

actor Sistema de contabilidad

Administrador del sistema

22

Modelos de Anlisis Basados en Clases


Identificar las clases

z Analizar los documentos de anlisis, anlisis o casos de uso. uso z Clases que pertenecen al espacio de la solucin vs. espacio p del p problema. z Aislar los sustantivos:
{ Entidades externas: producen o consumen informacin que usa el sistema. { Cosas (informes, seales, etc.): informacin que necesita el sistema. { Sucesos o eventos que ocurren durante la operacin del sistema. { Papeles que desempean los usuarios. { Unidades organizacionales. { Sitios que establecen el contexto y la funcin global del sistema. { Estructuras que definen una clase de objetos o clases relacionadas.
23

Diagrama de clases Conceptuales


ElementoVenta
cantidad 1..* 1.. * 0..1 d descrito-por it registra-ventas-de 1..* 1.. 1

Concepto C t u Objeto del dominio

Especific.Producto
Descripcion Precio ID 1 1..* 3contiene 1

Producto
contenido-en 1 * 1..* 1

1..* 3 describe *

Catlogo
3 Usado-por 1

Venta
fecha hora pagada-p por 1

capturada-en

3 almacena

Tienda
direccin nombre 1 contiene 1..* Atributos

Iniciada-por 1 1

Cliente
1 registra-ventas-en 1 1

Asociacin
24

P Pago
cantidad

Cajero

R i t Registro

Clasificacin de clases
z Tipos de clases:
{ De entidad (a.k.a. de modelo o de negocio). Son clases que persisten i d durante l la aplicacin. li i R Representan informacin relevante para la aplicacin. { De frontera (a.k.a. de contorno). Clases que crean la interfaz que el usuario ve y con la que interacciona. interacciona { De control. Realizan una unidad unidad de trabajo trabajo: : crean o actualizan objetos de entidad, validan datos, etc.

25

Diagrama de clases de anlisis


Caso de uso Procesar Venta

Cajero

TPV GUI

actor

actor

actor

Sistema Contabilidad

Servicio Autorizacin Pagos

Calculador Impuestos

Calculo Precio

Registro Venta

Busqueda Elemento

1..*
Venta Elemento 26 Venta

Mtodo de Clase-ResponsabilidadColaborador (CRC)


z Clases/Responsabilidades/Colaboradores. Clases/Responsabilidades/Colaboradores z Facilitan la colaboracin entre desarrolladores. z Una ficha por cada clase relevante. z Se identifican sus responsabilidades. z Divisin de responsabilidades, relaciones de colaboracin. z Jerarquas de generalizacin/especializacin.
27

Mtodo de Clase-ResponsabilidadColaborador (CRC)


Clase: PlanoDePlanta Descripcin:

Responsabilidad
Define el nombre/tipo de plano de planta Maneja la posicin del plano de planta Escala el plano de planta Incorpora paredes, puertas y ventanas

Colaborador

Pared

M Muestra t la l posicin i i d de l las cmaras d de vdeo d C Camara

28

Del Anlisis al Diseo


z El modelo d l de d anlisis li i d describe ib el l sistema i t d desde d el punto de vista de los actores. z No N contiene ti i informacin f i d de l la estructura t t i interna t del sistema, esto es del cmo. z Diseo Di d del l sistema: i t
{ Objetivos de diseo que se deben optimizar (derivados de los requisitos no funcionales) funcionales). { Una arquitectura software: descomposicin en subsistemas, dependencias entre ellos, etc.

z Diseo detallado (de objetos).


{ Refinamiento del diseo del sistema. { Diseo de las clases de la solucin, interfaces.
29

Diseo Orientado a Objetos


z Conceptos bsicos de DOO:
{ Encapsulamiento. p { Ocultacin de informacin. { Herencia. Herencia { Interfaces. { Polimorfismo. P li fi

30

Diseo Orientado a Objetos j


Encapsulamiento

z Desarrollador
{Objetivo: j crear clase con interfaz clara y comprensible {Manera: ocultar detalles de implementacin {Beneficios: cambio de estructuras/algoritmos sin afectar {Coste: clases reutilizables ms caras a corto plazo

31

Diseo Orientado a Objetos j


Encapsulamiento

z Usuario de las clases


{Objetivo: j usar la clase con el mnimo esfuerzo {Manera: usar slo las operaciones provistas {Beneficios: interfaz comprensible comprensible, bajo coste de programacin {Coste: prdida de eficiencia de ejecucin

32

Descomposicin Funcional
z Mdulos construidos alrededor de las p operaciones z Datos globales o distribuidos entre mdulos z Entrada/Proceso/Salida z Organigramas de trabajo y flujo de datos

33

OOD
z Mdulos construidos alrededor de las clases z Clases escasamente acopladas, sin datos globales z Encapsulamiento y mensajes z Diagramas jerrquicos de clases

34

Definicin de una clase


z Identificar y nombrar la clase p z Identificar sus componentes z Identificar sus atributos z Identificar los errores z Identificar las conexiones funcionales (qu clases sirve/exige) z Definir conexiones con superclase y subclases z Identificar propiedades especiales (persistencia, concurrencia) z Probar la clase en un prototipo

35

Identificar atributos
z El conjunto de atributos de una clase debe ser:
{Completo (contienen toda la informacin pertinente) {General (se aplican a todos los objetos de la clase) {Diferenciado (cada atributo representa un aspecto diferente de la clase)

36

Definir atributos
z Tipos Ti d de atributos t ib t
{Atmicos predefinidos (entero, real, carcter, pixel...) {Atmico enumerativo (color, da de la semana...) ) {Coleccin {Composicin (referencias objetos)

z Valor del atributo


{Comn a muchos objetos (variable de clase) {Propio op o de u un objeto ( (variable a ab e de objeto)
37

Identificar Mtodos
z Mtodo: algoritmo que utiliza y modifica los atributos de una clase z Un mtodo es desencadenado por un mensaje z Funcionalidad de la clase: conjunto de sus mtodos z El conjunto de mtodos debe ser:
{ Completo (realizan toda la funcionalidad de la clase) { General (se aplican a todos los objetos de la clase) { Diferenciado (cada mtodo debe ser simple y realizar una sola funcin)
38

Definir Mtodos
z Tipos Ti de d mtodos t d
{Modificador (asigna valor a un atributo) {Selector (devuelve el valor de un atributo) {Aplicable p a la clase ( (constructor) ) {Aplicable al objeto

z Parmetros del mtodo


{Qu informacin necesita? (argumentos de entrada) {Qu debe devolver? (resultado y argumentos de sa salida) da)
39

Ejemplo
ElementoVenta
C tid d Entero Cantidad: E t getSubTotal() 1..* contenido-en 1 captura 1 1 ... finalizarVenta() introducirElemento(...) hacerNuevaCompra(...) realizarPago(...) 1 1 Busca-en catalogo descrito-por * 1 EspecificacionProducto Descripcion: Text Precio: Dinero ID: IDElemento ... 1 * 1..* 5contiene 1

Venta
Fecha: Date hora: Time completa: Logico

Catalogo g
... getEspecificacion(...) 1 5usa 1

Registro

Completar() * crearElementoVenta(..) crearPago() getTotal() g () 1 pagada-por 1

Tienda
Direccin: Direccion nombre: Texto 1 anyadirVenta(...)
40

P Pago
Cantidad: Dinero

tiene 3Registra-completadas

Identificar Errores
z Qu puede salir mal durante la ejecucin de un mtodo? z Qu comprobaciones debe hacer cada mtodo? z Cmo interceptar y corregir las condiciones de error?

41

Patrones de Diseo
z Catlogo de soluciones que han probado ser buenas para ciertos problemas comunes de diseo. z Evita reinventar la rueda continuamente. zR Reutilizacin tili i de d buenas b prcticas, ti comn en otras t ingenieras. z Un patrn es una descripcin del problema y la esencia de su solucin, que se puede reutilizar en casos distintos. distintos z Los estudiaremos en el Tema 8.
42

Indice
z Modelos de Ciclo de Vida. z Anlisis. Anlisis z Diseo.

zNotaciones.
{UML
z Metodologas. Metodologas

43

UML
http://uml.org

z Unified Modeling Language Language. z Combinar y estandarizar una notacin para la descripcin de sistemas orientados a objetos a partir de los lenguajes de modelado ms conocidos:
{ Booch - OOD. OOD { Rumbaugh - OMT. { Jacobson - OOSE y Objectory.

z Combina las mejores propiedades de:


{ { { { Conceptos de modelos de datos (ERD) Modelos de negocios (workflow) Modelos de Objetos Modelos de Componentes
44

UML
z Es un lenguaje grfico para visualizar visualizar, especificar especificar, construir y documentar las partes de un sistema de software desde distintos puntos de vista. z Ofrece una forma estndar de modelar sistemas software pudiendo utilizarse: software,
{ Con cualquier proceso de desarrollo. { A lo largo de todo el ciclo de vida. { Con C di distintas ti t t tecnologas l d de i implementacin l t i

z Puede usarse tambin en otras reas, , como la ingeniera de negocio, modelado de procesos, etc.

45

UML
z No es un mtodo, mtodo ni un proceso ni una metodologa metodologa. z No establece qu modelos construir. z Para un ptimo aprovechamiento, debe ser usado en un proceso:
{ guiado por casos de uso uso, { centrado en la arquitectura, { iterativo e { incremental.
46

UML
z UML es una familia de notaciones, tiles para describir distintos aspectos p p de un sistema:
{Esttico. Describe los elementos del sistema y sus relaciones. {Dinmico. Describe el comportamiento del sistema a lo largo del tiempo.
z Casos de Uso. Desde el punto de vista del usuario usuario.

47

UML
Tipos de Diagramas

UML

Modelos

48

Vistas
z Vista Vi t de d C Casos d de U Uso
{ Funcionalidad externa del sistema

z Vista Vi t Lgica L i
{ Estructura esttica y conducta dinmica del sistema

z Vista Vi t de d C Componentes t
{ Organizacin de las componentes

z Vista Vi t de d C Concurrencia i
{ Comunicaciones y sincronizacin

z Vista Vi t de d D Despliegue li
{ Arquitectura fsica
49

Vista de Casos de Uso


z Dirigida g al Anlisis de Requisitos q ( (lo q que q quiere hacer el usuario) z Describe la funcionalidad del sistema, como la perciben los actores externos z Dirige el desarrollo de las otras vistas z Define los objetivos finales del sistema z Permite validar el sistema z Actor externo:
{ Usuario { Otro sistema

z Se p plasma en diagramas g
{ de Casos de Uso { de Actividad { de Secuencia
50

Vista de Casos de Uso


TPV
Procesar Venta caje o cajero Procesar Devoluciones
actor Analizador de Actividad de Ventas

Servicio de Autorizacin de Pagos


actor Calculador de Impuestos p

Analizar Actividad ... Gestionar Seguridad Gestionar Usuarios

actor Sistema de contabilidad

Administrador del sistema

51

Vista Lgica
z Describe la funcionalidad interna z Dirigida a diseadores y desarrolladores z Define la estructura esttica
{Clases, objetos y relaciones

z Define las colaboraciones dinmicas


{Mensajes y funciones

z Propiedades P i d d adicionales di i l
{Persistencia y concurrencia {Interfaces y estructura interna de las clases
52

Vista Lgica
z Se plasma en diagramas
{Estticos
z de Clases j z de Objetos

{Dinmicos
z de Estado z de Secuencia z de Colaboracin z de Actividad
53

Vista Lgica g
Diagramas estticos
Elemento

Diagrama ag a a de clases
Carbono Hidrgeno

:Hidrgeno

:Hidrgeno

Diagrama de Di d objetos

:Hidrgeno

:Carbono

:Carbono

:Hidrgeno

:Hidrgeno

:Hidrgeno

54

Vista Lgica
Diagrama g de Estados
[(info=driver.detectarDisco())!=NULL]/ disco=buscaDisco(info) [not driver. detectarAbierto()] NumActual = 1; C actual = disco.obtenerCancion(ordenActual) disco obtenerCancion(ordenActual) [dri iver.detectarA Abierto()]

Cerrado
e eject ()/ driver.cerrar () d ej ject ()/ driver.abrir () d )

endOfSong()/ NumActual+=1

Stop

Play()/ Pl ()/ driver.play(actual, 0) Play()/ driver.pla ay(actual, Tp pausa)

Play
Pause()/ / Tpausa = driver.stop p()

C
[NumActual<= disco.numCanciones()]/ actual= disco.obtenerCancion (NumActual) driver.play(actual,0)

Abierto

eject ()/ driver.stop(); stop()/ driver.abrir() driver.stop(); NumActual=1 actual= disco.obtenerCancion(NumActual)

P Pause

apagar ()/ driver.stop(); driver.apagar()

55

Vista Lgica g
Diagrama de Secuencia

56

Vista Lgica g
Diagrama de Colaboracin (comunicacin)

realizarPago(cantidad)

:Registro

1: realizarPago(cantidad)

:Venta

1.1: crear(cantidad)

:Pago

57

Vista Lgica g
Diagrama de Actividad
Put Coffee in Filter Put Filter in Machine Turn on Machine Add Water to Reservoir / coffeePot.turnOn Brew coffee light goes out Pour Coffee [found cola] Get cans of cola Drink [no cola]
58

[found coffee] Find Beverage [no coffee]

Get Cups

Vista de Componentes
z Describe los mdulos del sistema y sus p dependencias. z Modelar la arquitectura software. z Dirigida Di i id a d desarrolladores. ll d z Se p plasma as a e en d diagramas. ag a as
{de Componentes

59

Vista de Componentes p
Ejemplo

60

http://www.agilemodeling.com/artifacts/componentDiagram.htm

Vista de Concurrencia
z Describe la divisin del sistema en procesos y procesadores z Dirigida a desarrolladores e integradores z Resuelve problemas de
{ uso eficiente de los recursos { ejecucin en paralelo (hilos) { comunicacin y sincronizacin de hilos

z Se plasma en diagramas
{ dinmicos { de Componentes { de Despliegue

61

Vista de Concurrencia
Ejemplo
:FactoryManager
job

:FactoryScheduler
A2,B2/2:completed(job) 1:start(job)

currentJob:TransferJob
<<local>> job

:FactoryJobMgr

B2:completed 1/B1:start(job)

A2:completed 1/A1:start(job)

:Robot

:Oven

62

Vista de Despliegue
z Muestra M t la l di distribucin t ib i f fsica i d del l sistema i t (ordenadores, dispositivos) y sus conexiones z Dirigida g a desarrolladores, , integradores g y probadores z Se plasma en
{el diagrama de Despliegue {el mapa de asignacin de componentes a la arquitectura fsica
63

Vista de Despliegue p g
Diagrama de Despliegue

64

Tipos de Diagramas

65

Tipos de Diagramas

Anlisis

Diseo

D. Casos de Uso. D. Secuencia del Sistema. D Clases Conceptuales D. Conceptuales. D. Clases Anlisis.

D. Clases y Objetos. D. Colaboracin. D Secuencia D. Secuencia. D. Estados.


66

Indice
z Modelos de Ciclo de Vida. z Anlisis. Anlisis z Diseo. z Notaciones.

zMetodologas. Metodologas

67

Metodologas
z Una notacin no es suficiente. z Cmo se organiza el proyecto? (MCV) z Qu documentacin se genera? z Qu tcnicas se utilizan en cada fase? z Quin las realiza? z Herramientas de soporte?

68

Metodologas
Booch

( (OOAD) ) CASEIode (CCM) Coad-YourdonNi l (OOA,OOD) Nicola (OOA OOD) NE University (Demeter) Object Engin. (Fresco) Hewlett-Packard (Fusion) Graham (SOMA) Texas Instruments (IE\O) ICL (MTD) ParcPlace (OBA)

(OOSE) Olivetti (OGROUP) Martin-Odell (OOIE) TASKON (OORAM) ( ) Winter (OSMOSYS) Rumbaugh (OMT) LBMS (SE/OT) Shlaer/Mellor (OOSA) CCTA (SSADM) W Wirfs-Brock s oc (RDD) ( ) Lloyds Register (Z++)

Jacobson

69

Rational Unified Process (RUP)


z Es un p proceso iterativo e incremental. z Dirigido por los casos de uso. z Centrado en la arquitectura. arquitectura z Fases:
{ Comienzo Comienzo. Definir el alcance del proyecto. proyecto { Elaboracin. Plan de proyecto, especificar caractersticas, esbozar la arquitectura. { Construccin. Construir el producto. { Transicin. Entrega a los usuarios.

Comienzo

Elaboracin tiempo

Construccin

Transicin
70

Rational Unified Process (RUP) ( )


Hitos e Iteraciones
Comienzo Elaboracin Construccin Transicin

Visin

Esbozo de arqu.

funcionalidad inicial

Release del producto

Comienzo

Elaboracin

Construccin

Transicin

Iteraciones preliminares

Iteraciones de arquitectura

Iteraciones de desarrollo

Iteraciones de transicin

Release

Release Release Release Rel.

Release ReleaseRel.

Release Release

71

Rational Unified Process (RUP)


Fases workflows e iteraciones Fases,

72

Rational Unified Process (RUP)


workflows y modelos
Uso de diagramas UML
Modelo de Casos de Uso

Requisitos

Anlisis

Modelo de Anlisis

Diseo

Modelo de Diseo

Modelo de Despliegue g

Implementacin

Modelo de I l Implementacin t i

Prueba

Modelo de Pruebas
73

Modelo de Casos de Uso


Diagramas de Casos de Uso Modelo de Casos de Uso Modelo de Anlisis Modelo De Diseo Modelo de D Despliegue li Modelo de Implementacin Modelo de Pruebas Diagramas de Clases Diagramas de Componentes Diagramas d Di de Despliegue Diagramas g de Secuencia Diagramas de Colaboracin Diagramas de Estado Diagramas de Actividad
74

Diagramas de Objetos

Diagramas de Paquetes

Modelo de Anlisis
Diagramas de Casos de Uso Modelo de Casos de Uso Modelo de Anlisis Modelo De Diseo Modelo de D Despliegue li Modelo de Implementacin Modelo de Pruebas Diagramas de Clases Diagramas de Componentes Diagramas d Di de Despliegue Diagramas g de Secuencia Diagramas de Colaboracin Diagramas de Estado Diagramas de Actividad
75

Diagramas de Objetos

Diagramas de Paquetes

Modelo de Diseo
Diagramas de Casos de Uso Modelo de Casos de Uso Modelo de Anlisis Modelo De Diseo Modelo de D Despliegue li Modelo de Implementacin Modelo de Pruebas Diagramas de Clases Diagramas de Componentes Diagramas d Di de Despliegue Diagramas g de Secuencia Diagramas de Colaboracin Diagramas de Estado Diagramas de Actividad
76

Diagramas de Objetos

Diagramas de Paquetes

Modelo de Despliegue
Diagramas de Casos de Uso Modelo de Casos de Uso Modelo de Anlisis Modelo De Diseo Modelo de D Despliegue li Modelo de Implementacin Modelo de Pruebas Diagramas de Clases Diagramas de Componentes Diagramas d Di de Despliegue Diagramas g de Secuencia Diagramas de Colaboracin Diagramas de Estado Diagramas de Actividad
77

Diagramas de Objetos

Diagramas de Paquetes

Modelo de Implementacin
Diagramas de Casos de Uso Modelo de Casos de Uso Modelo de Anlisis Modelo De Diseo Modelo de D Despliegue li Modelo de Implementacin Modelo de Pruebas Diagramas de Clases Diagramas de Componentes Diagramas d Di de Despliegue Diagramas g de Secuencia Diagramas de Colaboracin Diagramas de Estado Diagramas de Actividad
78

Diagramas de Objetos

Diagramas de Paquetes

Proceso dirigido por casos de uso


workflows Requisitos Anlisis Diseo Implementacin Prueba

Los casos de uso dirigen y relacionan estos workflows

z Los casos de uso dirigen las iteraciones:


{ Creacin y validacin de la arquitectura. { Definicin de los casos y procedimientos de prueba. { Planificacin de las iteraciones. { Creacin de la documentacin de usuario. { Entrega del sistema

z Sincronizacin del contenido de los distintos modelos


79

Proceso centrado en la arquitectura


z Los modelos son el medio para visualizar, especificar, construir, generar y documentar la arquitectura del sistema. z RUP prescribe el refinamiento sucesivo de la arquitectura. arquitectura
C i Comienzo El b Elaboracin i tiempo Arquitectura C Construccin t i T Transicin i i

80

Bibliografa
z Applying A l i UML and d Patterns. P tt 2 d Edition 2nd Editi . Craig C i Larman, Prentice Hall, 2002. z Applying A l i UML in i the th Unified U ifi d Process. P Ivar I Jacobson, Rational Software. z Ingeniera I i del d l Software. S ft U enfoque Un f prctico ti 6 Edicin. R.S. Pressman, McGraw Hill. 2005. z Ingeniera I i del d l Software S ft O i t d a Objetos, Orientado Obj t Bruegge, Dutoit, Prentice Hall. 2002. z Anlisis A li i y Diseo Di Orientado O i t d a Objetos Obj t con UML y el Proceso Unificado. Schach. McGraw Hill. 2005 2005.
81