Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccion ADOO PDF
Introduccion ADOO PDF
TACC II
Curso 2008/09
1
Motivacin
z Un p
proyecto
y software no consiste slo en p
programar.
g
3
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?.
zL
La eleccin
l i de
d uno u otro depende
d d de
d las
l caractersticas
i
del proyecto.
Qu
Desventajas:
Anlisis
No
N permite
it iteraciones.
it i
Cmo
Diseo Los requisitos se
congelan al principio del
proyecto.
Codificacin
No existe un proyecto
enseable hasta el final
del proyecto.
Pruebas
e integracin
MCV en
Cascada Operacin
O y [ ti ]
[retiro]
Mantenimiento 5
Modelos de Ciclo de Vida
Incremento
Extraer
Eval.
Eval
Planificacin Anlisis Diseo clases Prototipo Pruebas
cliente
reutilizables
[ms iteraciones]
MCV iterativo e
incremental (RUP) 6
Indice
zModelos
M d l d de Ci
Ciclo
l dde Vid
Vida.
zAnlisis
Anlisis y Diseo Orientado a
Objetos.
{Ventajas e inconvenientes
inconvenientes.
{Anlisis.
{Diseo.
zNotaciones.
zNotaciones
zMetodologas.
7
Anlisis y Diseo
Problema vs
vs. Solucin
Anlisis (qu) Diseo (cmo)
Aeropuerto C t lT fi
ControlTrafico
PlanVuelo
8
Paradigma
g de Orientacin a Objetos
j
Caractersticas
z Diseos modulares
modulares.
z Extensibilidad.
z Fcil de modificar.
z Orientado a datos.
z Reutilizacin
R ili i dde 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
z IImpactos
t d f
desfavorables
bl sobre
b espacio
i y tiempo
ti d
de
ejecucin.
11
Anlisis Orientado a Objetos
z Centrarse en el qu.
z Validar. 12
Anlisis Orientado a Objetos
z La especificacin de
requisitos
i it d
describe
ib ell
Obtencin
sistema, en lenguaje
de requisitos natural.
Especificacin
de requisitos:
Documento
z Sirve de comunicacin
entre desarrolladores y
Anlisis
clientes, contrato.
Modelo de
Anlisis:
Modelo z El modelo de anlisis
Diseo del usa notacin formal (ej.:
Sistema Z,, Alloy)
y) o semi-formal
Modelo del
Sistema: (ej.: UML).
Modelo
z Sirve de comunicacin
entre desarrolladores. 13
Anlisis Orientado a Objetos
Modelos de Anlisis
Modelos basados en Modelos orientados al Flujo
Escenarios
Casos de uso, texto. Diagramas de Flujo de Datos
Casos de uso, diagramas. Diagramas de Flujo de Control
Diagramas de actividad. Diagramas de Transicin de Estados
Diagramas de secuencia.
Modelo de Anlisis
Modelos basados en
Clases Modelos basados en
Comportamiento
Diagramas de Clases.
Diagramas de Paquete. Diagramas de Estado.
Modelos CRC.
CRC Diagramas de Secuencia.
Secuencia
Diagramas de Interaccin.
14
Anlisis Orientado a Objetos
Modelos de Anlisis. Basado en Escenarios.
Modelo de
Anlisis: Modelo
zC
Caso ded uso: conjunto
j t ded escenariosi (
(secuencias
i d
de
interaccin de los actores y el sistema)
16
Casos de uso
z Pasos:
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 ell pago sea rpido
id con ell 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:
18
{ El cajero se ha identificado y autentificado.
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 ell elemento
l t y presentat 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 hayy ms elementos.
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:
actor
actor Analizar
Analizador de Actividad Calculador de
Actividad de Impuestos
p
Ventas
...
actor
Gestionar Sistema de
Seguridad contabilidad
Gestionar
Administrador Usuarios
del sistema 22
Modelos de Anlisis Basados en Clases
Identificar las clases
* d
descrito-por
it 1
ElementoVenta Especific.Producto
cantidad registra-ventas-de Descripcion 3contiene
0..1 Precio 1..*
1..*
1.. 1..*
1.. ID 1
Producto 1 Catlogo
1..*
contenido-en 3 describe
1 *
1..*
3 Usado-por 1
1 *
3 almacena
Venta Tienda
* capturada-en 1
fecha Iniciada-por direccin Atributos
hora 1 nombre
1 1 1
por
pagada-p
Cliente contiene
1 1..* Asociacin
1
P
Pago R i t
Registro
Cajero
registra-ventas-en 24
cantidad
1 1
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.
25
Diagrama de clases de anlisis
Caso de uso Procesar Venta
1..*
Venta Elemento26
Venta
Mtodo de Clase-Responsabilidad-
Colaborador (CRC)
z Clases/Responsabilidades/Colaboradores.
Clases/Responsabilidades/Colaboradores
z Jerarquas de generalizacin/especializacin.
27
Mtodo de Clase-Responsabilidad-
Colaborador (CRC)
Clase: PlanoDePlanta
Descripcin:
Responsabilidad Colaborador
Define el nombre/tipo de plano de planta
M
Muestra
t lal posicin
i i dde llas cmaras
d
de vdeo
d C
Camara
28
Del Anlisis al Diseo
z El modelo
d l de d anlisis
li i ddescribe
ib ell sistema
i t d
desde
d
el punto de vista de los actores.
z No
N contiene
ti iinformacin
f i dde lla estructura
t t iinterna
t
del sistema, esto es del cmo.
z Diseo
Di d dell 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
30
Diseo Orientado a Objetos
j
Encapsulamiento
zDesarrollador
{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
32
Descomposicin Funcional
33
OOD
34
Definicin de una clase
36
Definir atributos
zTipos
Ti d
de atributos
t ib t
{Atmicos predefinidos (entero, real, carcter,
pixel...)
{Atmico enumerativo (color, da de la
semana...))
{Coleccin
{Composicin (referencias objetos)
zValor 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
zTipos
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
zParmetros del mtodo
{Qu informacin necesita? (argumentos de
entrada)
{Qu debe devolver? (resultado y argumentos
de sa
salida)
da)
39
Ejemplo
descrito-por
ElementoVenta EspecificacionProducto
* 1
C tid d Entero
Cantidad: E t Descripcion: Text
Precio: Dinero
getSubTotal()
ID: IDElemento
1..* ...
contenido-en 1 *
1..*
1 5contiene
1 Busca-en 1
captura Catalogo
g
Venta 1 catalogo
1 ...
Fecha: Date
hora: Time Registro getEspecificacion(...)
1
completa: Logico ...
1
Completar() finalizarVenta()
* 5usa
crearElementoVenta(..) introducirElemento(...)
crearPago() hacerNuevaCompra(...) 1
getTotal()
g () realizarPago(...)
1 Tienda
1
pagada-por Direccin: Direccion
1
nombre: Texto
P
Pago tiene 1
anyadirVenta(...)
Cantidad: Dinero 40
3Registra-completadas 1
Identificar Errores
41
Patrones de Diseo
z Catlogo de soluciones que han probado ser buenas
para ciertos problemas comunes de diseo.
zR
Reutilizacin
tili i de
d buenas
b prcticas,
ti comn
en otras
t
ingenieras.
43
UML
http://uml.org
45
UML
z No es un mtodo,
mtodo ni un proceso ni una metodologa
metodologa.
{ centrado en la arquitectura,
{ iterativo e
{ incremental.
46
UML
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
Servicio
caje o
cajero de Autorizacin
Procesar de Pagos
Devoluciones
actor
actor Analizar
Analizador de Actividad Calculador de
Actividad de Impuestos
p
Ventas
...
actor
Gestionar Sistema de
Seguridad contabilidad
Gestionar
Administrador Usuarios
del sistema 51
Vista Lgica
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
54
:Hidrgeno :Hidrgeno
Vista Lgica
Diagrama
g de Estados
[(info=driver.detectarDisco())!=NULL]/
[not driver. disco=buscaDisco(info)
detectarAbierto()] NumActual = 1;
C actual = disco.obtenerCancion(ordenActual)
disco obtenerCancion(ordenActual)
Abierto()]
Cerrado endOfSong()/
NumActual+=1
driver.cerrar ()
[driiver.detectarA
Play()/
Pl ()/
driver.abrir ())
C
Stop driver.play(actual, 0) Play
()/
ejject ()/
[NumActual<=
pausa)
eject
disco.numCanciones()]/
p()
d
e
Tpausa = driver.stop
driver.plaay(actual, Tp
d
actual=
eject ()/
Abierto disco.obtenerCancion
driver.stop(); stop()/
(NumActual)
driver.abrir() driver.stop();
driver.play(actual,0)
NumActual=1
Pause()//
actual=
Play()/
disco.obtenerCancion(NumActual)
P
Pause
apagar ()/
driver.stop(); 55
driver.apagar()
Vista Lgica
g
Diagrama de Secuencia
56
Vista Lgica
g
Diagrama de Colaboracin (comunicacin)
realizarPago(cantidad) 1: realizarPago(cantidad)
:Registro :Venta
1.1: crear(cantidad)
:Pago
57
Vista Lgica
g
Diagrama de Actividad
Drink
[no cola]
58
Vista de Componentes
59
Vista de Componentes
p
Ejemplo
60
http://www.agilemodeling.com/artifacts/componentDiagram.htm
Vista de Concurrencia
:FactoryManager
:FactoryScheduler
job
1:start(job)
A2,B2/2:completed(job)
currentJob:TransferJob
<<local>> job :FactoryJobMgr
B2:completed A2:completed
1/B1:start(job) 1/A1:start(job)
:Robot :Oven
62
Vista de Despliegue
zMuestra
M t la
l di
distribucin
t ib i ffsica
i d dell sistema
i t
(ordenadores, dispositivos) y sus
conexiones
zDirigida
g a desarrolladores,, integradores
g y
probadores
zSe 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 Clases Conceptuales
D. Conceptuales. D Secuencia
D. Secuencia.
67
Metodologas
68
Metodologas
Booch (
(OOAD)) Jacobson (OOSE)
CASEIode (CCM) Olivetti (OGROUP)
Coad-Yourdon- Martin-Odell
Ni l (OOA,OOD)
Nicola (OOA OOD) (OOIE)
NE University TASKON
(Demeter) ((OORAM))
Object Engin. Winter (OSMOSYS)
(Fresco) Rumbaugh (OMT)
Hewlett-Packard LBMS (SE/OT)
(Fusion) Shlaer/Mellor
Graham (SOMA) (OOSA)
Texas Instruments CCTA (SSADM)
(IE\O) WWirfs-Brock
s oc (RDD)
( )
ICL (MTD) Lloyds Register 69
72
Rational Unified Process (RUP)
workflows y modelos
Modelo de
Anlisis Anlisis
Modelo
Modelo de
Diseo de
Despliegue
g
Diseo
Modelo de
Implementacin I l
Implementacin
t i
Modelo de
Prueba Pruebas
73
Modelo de Casos de Uso
Diagramas de
Casos de Uso
Modelo de Diagramas de
Anlisis Componentes
Modelo Diagramas d
Di de
De Diseo Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementacin Colaboracin
Modelo de Diagramas de
Pruebas Estado
Diagramas de 74
Actividad
Modelo de Anlisis
Diagramas de
Casos de Uso
Modelo de Diagramas de
Anlisis Componentes
Modelo Diagramas d
Di de
De Diseo Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementacin Colaboracin
Modelo de Diagramas de
Pruebas Estado
Diagramas de 75
Actividad
Modelo de Diseo
Diagramas de
Casos de Uso
Modelo de Diagramas de
Anlisis Componentes
Modelo Diagramas d
Di de
De Diseo Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementacin Colaboracin
Modelo de Diagramas de
Pruebas Estado
Diagramas de 76
Actividad
Modelo de Despliegue
Diagramas de
Casos de Uso
Modelo de Diagramas de
Anlisis Componentes
Modelo Diagramas d
Di de
De Diseo Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementacin Colaboracin
Modelo de Diagramas de
Pruebas Estado
Diagramas de 77
Actividad
Modelo de Implementacin
Diagramas de
Casos de Uso
Modelo de Diagramas de
Anlisis Componentes
Modelo Diagramas d
Di de
De Diseo Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementacin Colaboracin
Modelo de Diagramas de
Pruebas Estado
Diagramas de 78
Actividad
Proceso dirigido por casos de uso
workflows
C i
Comienzo El b
Elaboracin
i C
Construccin
t i T
Transicin
i i
tiempo
Arquitectura
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 ini 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