Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TACC II
Curso 2008/09
1
Motivación
z Un p
proyecto
y software no consiste sólo 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 elección
l ió de
d uno u otro depende
d d de
d las
l características
í i
del proyecto.
Qué
Desventajas:
Análisis
•No
N permite
it iteraciones.
it i
Cómo
Diseño • Los requisitos se
congelan al principio del
proyecto.
Codificación
• No existe un proyecto
“enseñable” hasta el final
del proyecto.
Pruebas
e integración
MCV en
Cascada Operación
O ó y [ ti ]
[retiro]
Mantenimiento 5
Modelos de Ciclo de Vida
Incremento
Extraer
Eval.
Eval
Planificación Análisis Diseño clases Prototipo Pruebas
cliente
reutilizables
[más iteraciones]
MCV iterativo e
incremental (RUP) 6
Indice
zModelos
M d l d de Ci
Ciclo
l dde Vid
Vida.
zAnálisis
Análisis y Diseño Orientado a
Objetos.
{Ventajas e inconvenientes
inconvenientes.
{Análisis.
{Diseño.
zNotaciones.
zNotaciones
zMetodologías.
7
Análisis y Diseño
Problema vs
vs. Solución
Análisis (qué) Diseño (cómo)
Aeropuerto C t lT fi
ControlTrafico
PlanVuelo
8
Paradigma
g de Orientación a Objetos
j
Características
z Diseños modulares
modulares.
z Extensibilidad.
z Fácil de modificar.
z Orientado a datos.
z Reutilización
R ili ió dde clases.
l
9
Ventajas
z Módulos con fuerte cohesión 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 rápidos
z Herramientas y bibliotecas muy amplias
z Aplicaciones construidas enganchando objetos
z Mejor comprensión 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
ejecución.
11
Análisis Orientado a Objetos
z Centrarse en el “qué”.
z Validar. 12
Análisis Orientado a Objetos
z La especificación de
requisitos
i it d
describe
ib ell
Obtención
sistema, en lenguaje
de requisitos natural.
Especificación
de requisitos:
Documento
z Sirve de comunicación
entre desarrolladores y
Análisis
clientes, “contrato”.
Modelo de
Análisis:
Modelo z El modelo de análisis
Diseño del usa notación formal (ej.:
Sistema Z,, Alloy)
y) o semi-formal
Modelo del
Sistema: (ej.: UML).
Modelo
z Sirve de comunicación
entre desarrolladores. 13
Análisis Orientado a Objetos
Modelos de Análisis
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 Transición de Estados
Diagramas de secuencia. …
…
Modelo de Análisis
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 Interacción. …
14
…
Análisis Orientado a Objetos
Modelos de Análisis. Basado en Escenarios.
Modelo de
Análisis: Modelo
zC
Caso ded uso: conjunto
j t ded escenariosi (
(secuencias
i d
de
interacción 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 rápidas de precios, sin errores.
{ Cliente:
Cli t Q Quiere
i que ell pago sea rápido
á id con ell mínimo
í i esfuerzo.
f Q i
Quiere
una prueba de compra para justificar devoluciones.
{ Compañía: 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 Autorización de Pagos (por tarjetas de crédito): 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
Garantía 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 descripción
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 más elementos.
Requisitos especiales:
z Pantalla táctil en panel grande y plano. El texto debe ser visible desde un metro.
z Respuesta de autorización de crédito en menos de 30 secs, el 90% de las veces.
z Recuperación robusta cuando el acceso a sistemas externos (tales como el inventario,
impuestos, etc.) falla.
z Posibilidades de internazionalización de texto.
z Reglas de negocio insertables en los pasos 3 y 7.
...
20
Casos de Uso: Ejemplo
Lista de variaciones de tecnología y datos:
3a. Se introduce el identificador del elemento mediante escáner de código de barras o
mediante el teclado.
3b. Distintos esquemas de identificadores: UPC, EAN, JAN o SKU.
7a. La información sobre el pago con tarjeta se puede introducir mediante el teclado o
lector.
7b. Se pide firma en papel. En dos años, 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 Análisis 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 Catálogo
1..*
contenido-en 3 describe
1 *
1..*
3 Usado-por 1
1 *
3 almacena
Venta Tienda
* capturada-en 1
fecha Iniciada-por dirección Atributos
hora 1 nombre
1 1 1
por
pagada-p
Cliente contiene
1 1..* Asociación
1
P
Pago R i t
Registro
Cajero
registra-ventas-en 24
cantidad
1 1
Clasificación 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 aplicación.
li ió R
Representan
información relevante para la aplicación.
25
Diagrama de clases de análisis
Caso de uso Procesar Venta
1..*
Venta Elemento26
Venta
Método de Clase-Responsabilidad-
Colaborador (CRC)
z Clases/Responsabilidades/Colaboradores.
Clases/Responsabilidades/Colaboradores
z Jerarquías de generalización/especialización.
27
Método de Clase-Responsabilidad-
Colaborador (CRC)
Clase: PlanoDePlanta
Descripción:
Responsabilidad Colaborador
Define el nombre/tipo de plano de planta
M
Muestra
t lal posición
i ió dde llas cámaras
á d
de vídeo
íd C
Camara
28
Del Análisis al Diseño
z El modelo
d l de d análisis
áli i ddescribe
ib ell sistema
i t d
desde
d
el punto de vista de los actores.
z No
N contiene
ti iinformación
f ió dde lla estructura
t t iinterna
t
del sistema, esto es del cómo.
z Diseño
Di ñ d dell sistema:
i t
{Objetivos de diseño que se deben optimizar (derivados
de los requisitos no funcionales)
funcionales).
{Una arquitectura software: descomposición en
subsistemas, dependencias entre ellos, etc.
z Diseño detallado (de objetos).
{Refinamiento del diseño del sistema.
{Diseño de las clases de la solución, interfaces. 29
Diseño Orientado a Objetos
30
Diseño Orientado a Objetos
j
Encapsulamiento
zDesarrollador
{Objetivo:
j crear clase con interfaz clara y
comprensible
{Manera: ocultar detalles de implementación
{Beneficios: cambio de estructuras/algoritmos
sin afectar
{Coste: clases reutilizables más caras a corto
plazo
31
Diseño Orientado a Objetos
j
Encapsulamiento
32
Descomposición Funcional
33
OOD
34
Definición de una clase
36
Definir atributos
zTipos
Ti d
de atributos
t ib t
{Atómicos predefinidos (entero, real, carácter,
pixel...)
{Atómico enumerativo (color, día de la
semana...))
{Colección
{Composición (referencias objetos)
zValor del atributo
{Común a muchos objetos (variable de clase)
{Propio
op o de u
un objeto ((variable
a ab e de objeto)
37
Identificar Métodos
zTipos
Ti de
d métodos
ét d
{Modificador (asigna valor a un atributo)
{Selector (devuelve el valor de un atributo)
{Aplicable
p a la clase ((constructor))
{Aplicable al objeto
zParámetros del método
{¿Qué información 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 Dirección: Direccion
1
nombre: Texto
P
Pago tiene 1
anyadirVenta(...)
Cantidad: Dinero 40
3Registra-completadas 1
Identificar Errores
41
Patrones de Diseño
z Catálogo de soluciones que han probado ser buenas
para ciertos problemas comunes de diseño.
zR
Reutilización
tili ió de
d buenas
b prácticas,
á ti común
ú en otras
t
ingenierías.
43
UML
http://uml.org
45
UML
z No es un método,
método ni un proceso ni una metodología
metodología.
{ 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 Lógica
Ló i
{Estructura estática y conducta dinámica del sistema
z Vista
Vi t de
d C
Componentes
t
{Organización de las componentes
z Vista
Vi t de
d C
Concurrencia
i
{Comunicaciones y sincronización
z Vista
Vi t de
d D
Despliegue
li
{Arquitectura física
49
Vista de Casos de Uso
z Dirigida
g al Análisis 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 Autorización
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 Lógica
53
Vista Lógica
g
Diagramas estáticos
Elemento
Diagrama
ag a a de
clases
Carbono Hidrógeno
:Hidrógeno :Hidrógeno
Diagrama de
Di d
objetos :Hidrógeno :Carbono :Carbono :Hidrógeno
54
:Hidrógeno :Hidrógeno
Vista Lógica
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 Lógica
g
Diagrama de Secuencia
56
Vista Lógica
g
Diagrama de Colaboración (comunicación)
realizarPago(cantidad) 1: realizarPago(cantidad)
:Registro :Venta
1.1: crear(cantidad)
:Pago
57
Vista Lógica
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
distribución
t ib ió fífísica
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 asignación de componentes a la
arquitectura física
63
Vista de Despliegue
p g
Diagrama de Despliegue
64
Tipos de Diagramas
65
Tipos de Diagramas
Análisis Diseño
D Clases Conceptuales
D. Conceptuales. D Secuencia
D. Secuencia.
67
Metodologías
68
Metodologías
Î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
Análisis Análisis
Modelo
Modelo de
Diseño de
Despliegue
g
Diseño
Modelo de
Implementación I l
Implementación
t ió
Modelo de
Prueba Pruebas
73
Modelo de Casos de Uso
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas d
Di de
De Diseño Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 74
Actividad
Modelo de Análisis
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas d
Di de
De Diseño Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 75
Actividad
Modelo de Diseño
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas d
Di de
De Diseño Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 76
Actividad
Modelo de Despliegue
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas d
Di de
De Diseño Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 77
Actividad
Modelo de Implementación
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas d
Di de
De Diseño Despliegue
Modelo de Diagramas
g de
D
Despliegue
li Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 78
Actividad
Proceso dirigido por casos de uso
workflows
C i
Comienzo El b
Elaboración
ió C
Construcción
t ió T
Transición
i ió
tiempo
Arquitectura
80
Bibliografía
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 “Ingeniería
“I i í del
d l Software.
S ft U enfoque
Un f práctico
á ti 6ª
Edición”. R.S. Pressman, McGraw Hill. 2005.
z “Ingeniería
“I i í del
d l Software
S ft O i t d a Objetos”,
Orientado Obj t ”
Bruegge, Dutoit, Prentice Hall. 2002.
z “Análisis
“A áli i y Diseño
Di ñ Orientado
O i t d a Objetos
Obj t con UML
y el Proceso Unificado”. Schach. McGraw Hill.
2005
2005.
81