SlideShare una empresa de Scribd logo
1 de 81
Descargar para leer sin conexión
Introducción al Análisis y
Diseño Orientado a Objetos
Tema 3
TACC II
1
TACC II
Curso 2008/09
MotivaciónMotivación
Un proyecto software no consiste sólo en programar.p y p g
Necesitamos saber cuáles son las necesidades del cliente.
Id tifi l i it t l li l lid lIdentificar los requisitos, anotarlos, analizarlos, validarlos.
Necesitamos diseñar una solución, y hacer “los planos” del, y p
software:
Diseño de la arquitectura, detallado, de datos, …
Hay que asegurarse de que el software funciona:
Pruebas de unidad (a nivel de método y clase), de integración, del
sistema de aceptación etcsistema, de aceptación, etc.
Hay que mantener el software.
2
Documentación (de cada una de las fases), coherencia entre los
productos de las distintas fases (ej. código vs. diseños).
IndiceIndice
Modelos de Ciclo de Vida.
Análisis y Diseño Orientado a ObjetosAnálisis y Diseño Orientado a Objetos.
Notaciones.
Metodologías.
3
Modelos de ciclo de vidaModelos de ciclo de vida
Q é t t i i i l f d¿Qué estrategia seguimos para organizar las fases de
un proyecto?.
Un modelo de ciclo de vida nos guia en las fases que
hay que realizar, sus entradas y salidas, y los criteriosy q y y
de transición.
L l ió d d d d l í iLa elección de uno u otro depende de las características
del proyecto.
Con teconologías orientadas a objetos se tiende a ciclos
de vida iterativos e incrementales.
4
Modelos de Ciclo de VidaModelos de Ciclo de Vida
/ Estudio de Viabilidad.
Análisis
Qué
/
Planificación y Estimación.
N it it i
Desventajas:
Diseño
Có
•No permite iteraciones.
• Los requisitos se
congelan al principio del
Codificación
mo
congelan al principio del
proyecto.
• No existe un proyecto
Pruebas
• No existe un proyecto
“enseñable” hasta el final
del proyecto.
e integración
O ó [ ti ]
MCV en
Cascada
5
Operación y
Mantenimiento
[retiro]
Modelos de Ciclo de VidaModelos de Ciclo de Vida
Iteración de A & D
Planificación Análisis Diseño
[más iteraciones]
Incremento
Extraer
Eval
Planificación Análisis Diseño clases
reutilizables
Prototipo Pruebas
Eval.
cliente
[más iteraciones]
MCV iterativo e
6
incremental (RUP)
IndiceIndice
M d l d Ci l d VidModelos de Ciclo de Vida.
Análisis y Diseño Orientado aAnálisis y Diseño Orientado a
Objetos.
Ventajas e inconvenientesVentajas e inconvenientes.
Análisis.
Diseño.
NotacionesNotaciones.
Metodologías.
7
Análisis y Diseño
Problema vs SoluciónProblema vs. Solución
Análisis (qué) Diseño (cómo)
Dominio del problema Dominio de la Solución
Modelo del Dominio del Problema Modelo del Dominio de la Solución
ControlTrafico
VentanaResumen VentanaMapas
Avión Controlador
Trafico
Aeropuerto C t lT fi
BDPlanVuelo
p
8
PlanVuelo
Aeropuerto ControlTrafico
Paradigma de Orientación a Objetosg j
Características
Diseños modularesDiseños modulares.
Efectos laterales mínimos(encapsulamiento)( p )
Extensibilidad.
Fácil de modificar.
Orientado a datos.
Explota la herencia (jerárquico).
R ili ió d l
9
Reutilización de clases.
VentajasVentajas
Módulos con fuerte cohesión interna y escasoy
acoplamiento externo (sin variables globales, …)
Facilita el funcionamiento en entornoFacilita el funcionamiento en entorno
multiprocesador (objetos distribuidos)
Correspondencia directa con el mundo realCorrespondencia directa con el mundo real
Prototipos rápidos
Herramientas y bibliotecas muy amplias
Aplicaciones construidas enganchando objetosAplicaciones construidas enganchando objetos
Mejor comprensión y mantenimiento
10Apropiado para aplicaciones dirigidas por eventos.
InconvenientesInconvenientes
I t d f bl b i ti dImpactos desfavorables sobre espacio y tiempo de
ejecución.
Forma de pensar diferente: curva de aprendizaje lenta.
Herencia y ligadura dinámica dificultan las pruebas.
Difícil seguir el flujo de ejecución (e.j. llamádas implicitas
a constructores, conversiones implícitas, etc.)
Frameworks grandes y complicados (e.j. MFCs).
11
Análisis Orientado a ObjetosAnálisis Orientado a Objetos
Centrarse en el “qué”.
Identificar los requisitos: documentos de análisis.
Entrevistas.Entrevistas.
Identificar requisitos funcionales y no funcionales (ej.: rendimiento,
fiabilidad)
Especificar los requisitos: documento de especificación de
requisitos.
D t té i O i ió l ifi ió d l i itDocumento técnico. Organización y clasificación de los requisitos.
Analizar: Modelos de análisisAnalizar: Modelos de análisis.
Estudio de posibles escenarios: casos de uso.
Otras técnicas: fichas CRC, orientados al flujo, etc.
12Validar.
Análisis Orientado a ObjetosAnálisis Orientado a Objetos
La especificación de
i it d ib l
Obtención
de requisitos
requisitos describe el
sistema, en lenguaje
natural.de requisitos
Especificación
de requisitos:
Documento
Sirve de comunicación
entre desarrolladores y
Análisis
Modelo de
Análisis:
entre desarrolladores y
clientes, “contrato”.
Diseño del
Sistema
Modelo
Modelo del
El modelo de análisis
usa notación formal (ej.:
Z, Alloy) o semi-formalModelo del
Sistema:
Modelo
, y)
(ej.: UML).
Sirve de comunicación
13
Sirve de comunicación
entre desarrolladores.
Análisis Orientado a ObjetosAnálisis Orientado a Objetos
Modelos de Análisis
Modelos basados en Modelos orientados al Flujo
Casos de uso, texto.
Casos de uso, diagramas.
Diagramas de Flujo de Datos
Diagramas de Flujo de Control
Modelos basados en
Escenarios
Modelos orientados al Flujo
Diagramas de actividad.
Diagramas de secuencia.
…
Diagramas de Transición de Estados
…
Modelo de Análisis
Modelos basados en
Modelos basados en
Diagramas de Clases.
Diagramas de Paquete.
Modelos CRC
Clases
Diagramas de Estado.
Diagramas de Secuencia
Modelos basados en
Comportamiento
14
Modelos CRC.
Diagramas de Interacción.
…
Diagramas de Secuencia.
…
Análisis Orientado a ObjetosAnálisis Orientado a Objetos
Modelos de Análisis. Basado en Escenarios.
Modelo de
Análisis: Modelo
Modelo Funcional:
Modelo
Modelo de
Objetos: Modelo
Modelo
Dinámico: Modelo
Modelo funcional: casos de uso y escenarios.
Modelo de Objetos: diagramas de clases yModelo de Objetos: diagramas de clases y
objetos.
M d l di á i di d i
15
Modelo dinámico: diagramas de secuencia,…
Casos de usoCasos de uso
D ib é h l i t d d l t d i tDescriben qué hace el sistema desde el punto de vista
de un observador externo.
Actores: ¿quién interactúa con el sistema?. También
pueden ser otros sistemas.p
Un escenario es un ejemplo de lo que ocurre cuando
i i ú l iuno o varios actores interactúan con el sistema.
C d j t d i ( i dCaso de uso: conjunto de escenarios (secuencias de
interacción de los actores y el sistema)
16
Casos de usoCasos de uso
Pasos:
Identificar los límites (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
Casos de Uso: Ejemplo
CASO DE USO 1: Procesar venta
Actor Primario:
C jCajero.
Interesados y objetivos:
Cajero: Quiere anotaciones precisas y rápidas de precios, sin errores.
Cli t Q i l á id l í i f Q iCliente: Quiere que el pago sea rápido con el mínimo esfuerzo. Quiere
una prueba de compra para justificar devoluciones.
Compañía: Quieren almacenar las transacciones y satisfacer los
intereses de los clientes.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,
t )etc.)
Servicios de Autorización de Pagos (por tarjetas de crédito): Quiere
recibir peticiones digitales de autorizaciones en el formato y protocolo
correcto.
1818
Precondiciones:
El cajero se ha identificado y autentificado.
Casos de Uso: Ejemplo
Garantía de éxito (Postcondiciones):
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: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 i t i t l l t t d i ió d l i i4. El sistema registra el elemento y presenta una descripción del mismo, su precio y
total actual. Se calcula el precio de una lista de reglas.
El cajero repite los pasos 3-4 hasta que no hay más elementos.j p p q y
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 pago7. El cliente paga y el sistema procesa el pago.
8. El sistema registra la venta completada y manda la información a los sistemas
externos de inventario y contabilidad.
9. El sistema genera el recibo.
1919
10. El cliente se va.
Casos de Uso: Ejemplo
Extensiones (Flujos alternativos):
Casos de Uso: Ejemplo
Extensiones (Flujos alternativos):
a*. En cualquier momento, el sistema falla.
3a. Identificador inválido.
1. El sistema señala un error y rechaza la entrada.
7a. Pago en efectivo.
...
7b Pago con tarjeta7b. Pago con tarjeta.
...
Requisitos especiales:
Pantalla táctil en panel grande y plano. El texto debe ser visible desde un metro.
Respuesta de autorización de crédito en menos de 30 secs, el 90% de las veces.
Recuperación robusta cuando el acceso a sistemas externos (tales como el inventario,
impuestos, etc.) falla.impuestos, etc.) falla.
Posibilidades de internazionalización de texto.
Reglas de negocio insertables en los pasos 3 y 7.
...
2020
Casos de Uso: Ejemplo
Lista de variaciones de tecnología y datos:
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:
¿Cuáles son las posibles variaciones en las leyes sobre impuestos?
Explorar el tema de recuperación en caso de fallo de sistemas externos.
¿Qué modificaciones se necesitan para negocios distintos?
¿Debe el cajero extraer el cajón con la recaudación al terminar?
¿Puede el cliente usar directamente el lector de tarjetas o es el cajero el que lo hace?
2121
¿Puede el cliente usar directamente el lector de tarjetas o es el cajero el que lo hace?
Diagrama de Casos de Uso (UML)Diagrama de Casos de Uso (UML)
TPVTPV
Procesar
Venta
caje o
Servicio
cajero
Procesar
Devoluciones
de Autorización
de Pagos
«actor»
Calculador de
Impuestos
Analizar
Actividad
«actor»
Analizador de
Actividad de pImpuestos
«actor»
Gestionar
Ventas
...
Sistema de
contabilidad
Gestionar
Seguridad
Gestionar
22
Administrador
del sistema
Gestionar
Usuarios
Modelos de Análisis Basados en Clases
Identificar las clases
Analizar los documentos de análisis o casos de usoAnalizar los documentos de análisis, o casos de uso.
Clases que pertenecen al espacio de la solución vs.
espacio del problema.p p
Aislar los sustantivos:
Entidades externas: producen o consumen información que usa
el sistema.el sistema.
Cosas (informes, señales, etc.): información que necesita el
sistema.
Sucesos o eventos que ocurren durante la operación delSucesos o eventos que ocurren durante la operación del
sistema.
Papeles que desempeñan los usuarios.
Unidades organizacionales.Unidades organizacionales.
Sitios que establecen el contexto y la función global del sistema.
Estructuras que definen una clase de objetos o clases
relacionadas.
23
relacionadas.
Diagrama de clases
C t
Conceptuales
* 1d it
Concepto u
Objeto del
dominio
cantidad
ElementoVenta
1..*
Descripcion
Precio
ID
Especific.Producto
* 1descrito-por
3contiene
1
1..*
registra-ventas-de
1..*
0..1
contenido-en
1.. ID
Catálogo
1
Producto
1..
1 *
3 describe
1..*
1
Venta
1
Tienda
* capturada-en
3 Usado-por 1
*
3 almacena
1
1..*
fecha
hora
por
1
dirección
nombre
1
capturada-en
Atributos
1
Iniciada-por
1
1
P
pagada-p
1
R i t
contiene
1..*
1
Asociación
Cliente
24
cantidad
Pago Registro
1
Cajero
11
registra-ventas-en
Clasificación de clasesClasificación de clases
Tipos de clases:
De entidad (a.k.a. de modelo o de negocio). Son clases
i d l li ió Rque persisten durante la aplicación. Representan
información relevante para la aplicación.
De frontera (a.k.a. de contorno). Clases que crean la
interfaz que el usuario ve y con la que interaccionainterfaz que el usuario ve y con la que interacciona.
De control. Realizan una “unidad de trabajo”: crean oDe control. Realizan una unidad de trabajo : crean o
actualizan objetos de entidad, validan datos, etc.
25
Diagrama de clases de análisisDiagrama de clases de análisis
Caso de uso Procesar Venta
Cajero TPV GUI
«actor»«actor»«actor»
Registro
Venta
Busqueda
Elemento
Calculo
Precio
Calculador
Impuestos
Servicio
Autorización
Pagos
Sistema
Contabilidad
1..*
26
Venta Elemento
Venta
Método de Clase-Responsabilidad-
Clases/Responsabilidades/Colaboradores
Colaborador (CRC)
Clases/Responsabilidades/Colaboradores.
Facilitan la colaboración entre desarrolladores.Facilitan la colaboración entre desarrolladores.
Una ficha por cada clase relevante.
Se identifican sus responsabilidades.
División de responsabilidades, relaciones de
colaboración.
Jerarquías de generalización/especialización.
27
Método de Clase-Responsabilidad-
Colaborador (CRC)
Clase: PlanoDePlanta
Descripción:Descripción:
Responsabilidad ColaboradorResponsabilidad Colaborador
Define el nombre/tipo de plano de planta
Maneja la posición del plano de planta
Escala el plano de planta
Incorpora paredes, puertas y ventanas
M t l i ió d l á d íd
Pared
CMuestra la posición de las cámaras de vídeo Camara
28
Del Análisis al DiseñoDel Análisis al Diseño
El d l d áli i d ib l i t d dEl modelo de análisis describe el sistema desde
el punto de vista de los actores.
N ti i f ió d l t t i tNo contiene información de la estructura interna
del sistema, esto es del cómo.
Di ñ d l i tDiseño del sistema:
Objetivos de diseño que se deben optimizar (derivados
de los requisitos no funcionales)de los requisitos no funcionales).
Una arquitectura software: descomposición en
subsistemas, dependencias entre ellos, etc.
Diseño detallado (de objetos).
Refinamiento del diseño del sistema.
29
Diseño de las clases de la solución, interfaces.
Diseño Orientado a ObjetosDiseño Orientado a Objetos
Conceptos básicos de DOO:
Encapsulamiento.p
Ocultación de información.
HerenciaHerencia.
Interfaces.
P li fiPolimorfismo.
30
Diseño Orientado a Objetosj
Encapsulamiento
Desarrollador
Objetivo: crear clase con interfaz clara yj y
comprensible
Manera: ocultar detalles de implementaciónManera: ocultar detalles de implementación
Beneficios: cambio de estructuras/algoritmos
sin afectarsin afectar
Coste: clases reutilizables más caras a corto
plazoplazo
31
Diseño Orientado a Objetosj
Encapsulamiento
Usuario de las clases
Objetivo: usar la clase con el mínimo esfuerzoj
Manera: usar sólo las operaciones provistas
Beneficios: interfaz comprensible bajo coste deBeneficios: interfaz comprensible, bajo coste de
programación
Coste: pérdida de eficiencia de ejecuciónCoste: pérdida de eficiencia de ejecución
32
Descomposición FuncionalDescomposición Funcional
Módulos construidos alrededor de las
operacionesp
Datos globales o distribuidos entre
módulosmódulos
Entrada/Proceso/Salida
Organigramas de trabajo y flujo de datos
33
OODOOD
Módulos construidos alrededor de las
clases
Clases escasamente acopladas, sin datos
globalesglobales
Encapsulamiento y mensajes
Diagramas jerárquicos de clases
34
Definición de una claseDefinición de una clase
Identificar y nombrar la clase
Identificar sus componentesp
Identificar sus atributos
Identificar los erroresIdentificar los errores
Identificar las conexiones funcionales (qué
clases sirve/exige)clases sirve/exige)
Definir conexiones con superclase y subclases
Identificar propiedades especiales (persistencia,
concurrencia)
35Probar la clase en un prototipo
Identificar atributosIdentificar atributos
El conjunto de atributos de una clase debe
ser:
Completo (contienen toda la información
pertinente)pertinente)
General (se aplican a todos los objetos de la
clase)clase)
Diferenciado (cada atributo representa un
aspecto diferente de la clase)aspecto diferente de la clase)
36
Definir atributosDefinir atributos
Ti d t ib tTipos de atributos
Atómicos predefinidos (entero, real, carácter,
pixel...)
Atómico enumerativo (color, día de la
)semana...)
Colección
Composición (referencias objetos)
Valor del atributo
Común a muchos objetos (variable de clase)
Propio de un objeto (variable de objeto)
37
op o de u objeto ( a ab e de objeto)
Identificar MétodosIdentificar Métodos
Método: algoritmo que utiliza y modifica los
atributos de una clase
Un método es desencadenado por un mensaje
Funcionalidad de la clase: conjunto de susFuncionalidad de la clase: conjunto de sus
métodos
El conjunto de métodos debe ser:El conjunto de métodos debe ser:
Completo (realizan toda la funcionalidad de la clase)
General (se aplican a todos los objetos de la clase)General (se aplican a todos los objetos de la clase)
Diferenciado (cada método debe ser simple y realizar
una sola función)
38
una sola función)
Definir MétodosDefinir Métodos
Ti d ét dTipos de métodos
Modificador (asigna valor a un atributo)
Selector (devuelve el valor de un atributo)
Aplicable a la clase (constructor)p ( )
Aplicable al objeto
Parámetros del métodoParámetros del método
¿Qué información necesita? (argumentos de
entrada)entrada)
¿Qué debe devolver? (resultado y argumentos
de salida)
39
de sa da)
EjemploEjemplo
C tid d E t
ElementoVenta
Descripcion: Text
EspecificacionProducto
1
descrito-por
*
...
getSubTotal()
Cantidad: Entero
1..*
Descripcion: Text
Precio: Dinero
ID: IDElemento
1 *
Venta
contenido-en
1
captura Catalogo
5contiene1
1..*
Busca-en
1
1
catalogo
getEspecificacion(...)
Fecha: Date
hora: Time
completa: Logico
Venta
...
Registro
1
...
g
1
1
1 catalogo
finalizarVenta()
introducirElemento(...)
hacerNuevaCompra(...)
realizarPago(...)
Completar()
crearElementoVenta(..)
crearPago()
getTotal()
1
5usa
1
*
realizarPago(...)g ()
P
pagada-por
1
1
Dirección: Direccion
nombre: Texto
Tienda
1
40
anyadirVenta(...)
Cantidad: Dinero
Pago tiene 1
3Registra-completadas 1
Identificar ErroresIdentificar Errores
¿Qué puede salir mal durante la ejecución
de un método?
¿Qué comprobaciones debe hacer cada
método?método?
¿Cómo interceptar y corregir las
condiciones de error?
41
Patrones de DiseñoPatrones de Diseño
Catálogo de soluciones que han probado ser buenasCatálogo de soluciones que han probado ser buenas
para ciertos problemas comunes de diseño.
Evita “reinventar la rueda” continuamente.
R tili ió d b á ti ú tReutilización de buenas prácticas, común en otras
ingenierías.
Un patrón es una descripción del problema y la esencia
de su solución, que se puede reutilizar en casos
distintosdistintos.
Los estudiaremos en el Tema 8.
42
IndiceIndice
Modelos de Ciclo de Vida.
AnálisisAnálisis.
Diseño.
Notaciones.
UMLUML
MetodologíasMetodologías.
43
UMLUML
Unified Modeling Language
http://uml.org
Unified Modeling Language.
Combinar y estandarizar una notación para la descripciónCombinar y estandarizar una notación para la descripción
de sistemas orientados a objetos a partir de los lenguajes
de modelado más conocidos:
Booch OODBooch - OOD.
Rumbaugh - OMT.
Jacobson - OOSE y Objectory.
Combina las mejores propiedades de:
Conceptos de modelos de datos (ERD)Conceptos de modelos de datos (ERD)
Modelos de negocios (workflow)
Modelos de Objetos
Modelos de Componentes
44
Modelos de Componentes
UMLUML
Es un lenguaje gráfico para visualizar especificarEs un lenguaje gráfico para visualizar, especificar,
construir y documentar las partes de un sistema de
software desde distintos puntos de vista.
Ofrece una forma estándar de modelar sistemas
software pudiendo utilizarse:software, pudiendo utilizarse:
Con cualquier proceso de desarrollo.
A lo largo de todo el ciclo de vida.
C di ti t t l í d i l t ióCon distintas tecnologías de implementación
Puede usarse también en otras áreas, como la,
ingeniería de negocio, modelado de procesos, etc.
45
UML
No es un método ni un proceso ni una metodología
UML
No es un método, ni un proceso ni una metodología.
No establece qué modelos construir.No establece qué modelos construir.
Para un óptimo aprovechamiento, debe ser usado en un
proceso:
guiado por casos de usoguiado por casos de uso,
centrado en la arquitectura,
iterativo e
46
incremental.
UMLUML
UML es una familia de notaciones, útiles
para describir distintos aspectos de unp p
sistema:
Estático Describe los elementos del sistema yEstático. Describe los elementos del sistema y
sus relaciones.
Dinámico Describe el comportamiento delDinámico. Describe el comportamiento del
sistema a lo largo del tiempo.
Casos de Uso Desde el punto de vista del usuarioCasos de Uso. Desde el punto de vista del usuario.
47
UMLUML
Tipos de
DiagramasDiagramas
UMLUML
48
Modelos
Vistas
Vi t d C d U
Vistas
Vista de Casos de Uso
Funcionalidad externa del sistema
Vi t Ló iVista Lógica
Estructura estática y conducta dinámica del sistema
Vi t d C tVista de Componentes
Organización de las componentes
Vi t d C iVista de Concurrencia
Comunicaciones y sincronización
Vi t d D liVista de Despliegue
Arquitectura física
49
Vista de Casos de UsoVista de Casos de Uso
Dirigida al Análisis de Requisitos (lo que quiere hacer elg q ( q q
usuario)
Describe la funcionalidad del sistema, como la perciben
los actores externoslos actores externos
Dirige el desarrollo de las otras vistas
Define los objetivos finales del sistema
Permite validar el sistema
Actor externo:
UsuarioUsuario
Otro sistema
Se plasma en diagramasp g
de Casos de Uso
de Actividad
de Secuencia
50
de Secuencia
Vista de Casos de UsoVista de Casos de Uso
TPVTPV
Procesar
Venta
caje o
Servicio
cajero
Procesar
Devoluciones
de Autorización
de Pagos
«actor»
Calculador de
Impuestos
Analizar
Actividad
«actor»
Analizador de
Actividad de pImpuestos
«actor»
Gestionar
Ventas
...
Sistema de
contabilidad
Gestionar
Seguridad
Gestionar
51
Administrador
del sistema
Gestionar
Usuarios
Vista LógicaVista Lógica
Describe la funcionalidad interna
Dirigida a diseñadores y desarrolladoresDirigida a diseñadores y desarrolladores
Define la estructura estática
Clases, objetos y relaciones
Define las colaboraciones dinámicasDefine las colaboraciones dinámicas
Mensajes y funciones
P i d d di i lPropiedades adicionales
Persistencia y concurrencia
52Interfaces y estructura interna de las clases
Vista LógicaVista Lógica
Se plasma en diagramas
Estáticos
de Clases
de Objetosj
Dinámicos
de Estadode Estado
de Secuencia
de Colaboraciónde Colaboración
de Actividad
53
Vista Lógicag
Diagramas estáticos
Elemento
Diagrama de
HidrógenoCarbono
ag a a de
clases
:Hidrógeno:Hidrógeno
Di d
:Hidrógeno :Hidrógeno:Carbono :Carbono
Diagrama de
objetos
54
:Hidrógeno :Hidrógeno
Vista Lógica
Diagrama de Estadosg
[(info=driver.detectarDisco())!=NULL]/
disco=buscaDisco(info)
NumActual = 1;
actual = disco obtenerCancion(ordenActual)C
[not driver.
detectarAbierto()]
Cerrado
actual disco.obtenerCancion(ordenActual)
Pl ()/
() endOfSong()/
NumActual+=1
)
C
Abierto()]
Stop Play
Play()/
driver.play(actual, 0)
p()
pausa)
eject()/
driver.cerrar
C
[NumActual<=
disco.numCanciones()]/
ject()/
driver.abrir()
iver.detectarA
/
=driver.stop
ay(actual,Tp
stop()/
driver.stop();
NumActual=1
Abierto
eject ()/
driver.stop();
driver.abrir()
e
d
actual=
disco.obtenerCancion
(NumActual)
driver.play(actual,0)
ej
d
[dri
P
Pause()/
Tpausa=
Play()/
driver.pla
NumActual=1
actual=
disco.obtenerCancion(NumActual)
Pause
55
apagar ()/
driver.stop();
driver.apagar()
Vista Lógicag
Diagrama de Secuencia
56
Vista Lógicag
Diagrama de Colaboración (comunicación)
realizarPago(cantidad)
:Registro :Venta
realizarPago(cantidad) 1: realizarPago(cantidad)
1.1: crear(cantidad)
:Pago
57
Vista Lógicag
Diagrama de Actividad
Put Coffee
in Filter
Turn on
Put Filter
in Machine
Find
Add Water
to Reservoir
Machine
Brew
[found
coffee] / coffeePot.turnOn
Beverage
Get
Cups
coffee
[no coffee] light goes out
Get cans
of cola
Pour
Coffee
[found cola]
of cola
Drink
[no cola]
58
[no cola]
Vista de ComponentesVista de Componentes
Describe los módulos del sistema y sus
dependencias.p
Modelar la arquitectura software.
Di i id d ll dDirigida a desarrolladores.
Se plasma en diagramas.Se p as a e d ag a as
de Componentes
59
Vista de Componentesp
Ejemplo
60
http://www.agilemodeling.com/artifacts/componentDiagram.htm
Vista de ConcurrenciaVista de Concurrencia
Describe la división del sistema en procesos y
procesadores
Dirigida a desarrolladores e integradores
Resuelve problemas deResuelve problemas de
uso eficiente de los recursos
ejecución en paralelo (hilos)ejecución en paralelo (hilos)
comunicación y sincronización de hilos
Se plasma en diagramasSe plasma en diagramas
dinámicos
de Componentes
61
de Componentes
de Despliegue
Vista de Concurrencia
Ejemplo
:FactoryScheduler
:FactoryManager
currentJob:TransferJob
1:start(job)
A2,B2/2:completed(job)
job
:FactoryJobMgr<<local>> job
B2:completed
1/B1:start(job)
A2:completed
1/A1:start(job)
:Robot :Oven
62
Vista de Despliegue
M t l di t ib ió fí i d l i t
Vista de Despliegue
Muestra la distribución física del sistema
(ordenadores, dispositivos) y sus
conexiones
Dirigida a desarrolladores, integradores yg , g y
probadores
Se plasma enSe plasma en
el diagrama de Despliegue
el mapa de asignación de componentes a lael mapa de asignación de componentes a la
arquitectura física
63
Vista de Desplieguep g
Diagrama de Despliegue
64
Tipos de DiagramasTipos de Diagramas
65
Tipos de DiagramasTipos de Diagramas
Análisis Diseño
D. Casos de Uso. D. Clases y Objetos.
D. Secuencia del Sistema.
D Clases Conceptuales
D. Colaboración.
D SecuenciaD. Clases Conceptuales.
D. Clases Análisis.
D. Secuencia.
D. Estados.
66
IndiceIndice
Modelos de Ciclo de Vida.
AnálisisAnálisis.
Diseño.
Notaciones.
MetodologíasMetodologías.
67
MetodologíasMetodologías
Una notación no es suficiente.
¿Cómo se organiza el proyecto? (MCV)¿Cómo se organiza el proyecto? (MCV)
¿Qué documentación se genera?
¿Qué técnicas se utilizan en cada fase?
¿Quién las realiza?¿Quién las realiza?
¿Herramientas de soporte?
68
MetodologíasMetodologías
Booch (OOAD) Jacobson (OOSE)( )
CASEIode (CCM)
Coad-Yourdon-
Ni l (OOA OOD)
Olivetti (OGROUP)
Martin-Odell
(OOIE)Nicola (OOA,OOD)
NE University
(Demeter)
(OOIE)
TASKON
(OORAM)(Demeter)
Object Engin.
(Fresco)
( )
Winter (OSMOSYS)
Rumbaugh (OMT)
Hewlett-Packard
(Fusion)
Graham (SOMA)
LBMS (SE/OT)
Shlaer/Mellor
(OOSA)Graham (SOMA)
Texas Instruments
(IEO)
(OOSA)
CCTA (SSADM)
Wirfs-Brock (RDD)
69
ICL (MTD)
ParcPlace (OBA)
W s oc ( )
Lloyds Register
(Z++)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Es un proceso iterativo e incremental.p
Dirigido por los casos de uso.
Centrado en la arquitecturaCentrado en la arquitectura.
Fases:
Comienzo Definir el alcance del proyectoComienzo. Definir el alcance del proyecto.
Elaboración. Plan de proyecto, especificar características,
esbozar la arquitectura.
Construcción. Construir el producto.
Transición. Entrega a los usuarios.
70
Comienzo Elaboración Construcción Transición
tiempo
Rational Unified Process (RUP)( )
Hitos e Iteraciones
Comienzo Elaboración Construcción Transición
Visión Esbozo
de arqu.
funcionalidad
inicial
Release
del producto
Comienzo Elaboración Construcción Transición
… … … …
Iteraciones
preliminares
Iteraciones de
arquitectura
Iteraciones de
desarrollo
Iteraciones de
transición
71ReleaseRelease Release Release Rel. Release Release Release ReleaseRel.
Rational Unified Process (RUP)
Fases workflows e iteracionesFases, workflows e iteraciones
72
Rational Unified Process (RUP)
workflows y modelos
Requisitos
Modelo de
Casos de
Uso
Uso de diagramas UML
Análisis
Modelo de
Análisis
Diseño
Modelo
de
Diseño
Modelo de
Despliegue
Implementación
Diseño
g
Modelo de
I l t ió
Implementación Implementación
Modelo de
73
Prueba
Modelo de
Pruebas
Modelo de Casos de UsoModelo de Casos de Uso
Diagramas de
Casos de Uso
Modelo de
Casos de Uso
Diagramas de
Clases
Diagramas de
Objetos
Diagramas de
Paquetes
Modelo de
Análisis
Modelo
Diagramas de
Componentes
Di dModelo
De Diseño
Modelo de
D li
Diagramas de
Despliegue
Diagramas de
Despliegue
Modelo de
Implementación
g
Secuencia
Diagramas de
ColaboraciónImplementación
Modelo de
Pruebas
Colaboración
Diagramas de
Estado
74Diagramas de
Actividad
Modelo de AnálisisModelo de Análisis
Diagramas de
Casos de Uso
Modelo de
Casos de Uso
Diagramas de
Clases
Diagramas de
Objetos
Diagramas de
Paquetes
Modelo de
Análisis
Modelo
Diagramas de
Componentes
Di dModelo
De Diseño
Modelo de
D li
Diagramas de
Despliegue
Diagramas de
Despliegue
Modelo de
Implementación
g
Secuencia
Diagramas de
ColaboraciónImplementación
Modelo de
Pruebas
Colaboración
Diagramas de
Estado
75Diagramas de
Actividad
Modelo de DiseñoModelo de Diseño
Diagramas de
Casos de Uso
Modelo de
Casos de Uso
Diagramas de
Clases
Diagramas de
Objetos
Diagramas de
Paquetes
Modelo de
Análisis
Modelo
Diagramas de
Componentes
Di dModelo
De Diseño
Modelo de
D li
Diagramas de
Despliegue
Diagramas de
Despliegue
Modelo de
Implementación
g
Secuencia
Diagramas de
ColaboraciónImplementación
Modelo de
Pruebas
Colaboración
Diagramas de
Estado
76Diagramas de
Actividad
Modelo de DespliegueModelo de Despliegue
Diagramas de
Casos de Uso
Modelo de
Casos de Uso
Diagramas de
Clases
Diagramas de
Objetos
Diagramas de
Paquetes
Modelo de
Análisis
Modelo
Diagramas de
Componentes
Di dModelo
De Diseño
Modelo de
D li
Diagramas de
Despliegue
Diagramas de
Despliegue
Modelo de
Implementación
g
Secuencia
Diagramas de
ColaboraciónImplementación
Modelo de
Pruebas
Colaboración
Diagramas de
Estado
77Diagramas de
Actividad
Modelo de ImplementaciónModelo de Implementación
Diagramas de
Casos de Uso
Modelo de
Casos de Uso
Diagramas de
Clases
Diagramas de
Objetos
Diagramas de
Paquetes
Modelo de
Análisis
Modelo
Diagramas de
Componentes
Di dModelo
De Diseño
Modelo de
D li
Diagramas de
Despliegue
Diagramas de
Despliegue
Modelo de
Implementación
g
Secuencia
Diagramas de
ColaboraciónImplementación
Modelo de
Pruebas
Colaboración
Diagramas de
Estado
78Diagramas de
Actividad
Proceso dirigido por casos de usoProceso dirigido por casos de uso
workflows
Requisitos Análisis Diseño Implementación Prueba
Los casos de uso dirigen y relacionan estos workflows
Los casos de uso dirigen las iteraciones:
Creación y validación de la arquitectura.
Definición de los casos y procedimientos de prueba.
Planificación de las iteraciones.
Creación de la documentación de usuario.
Entrega del sistema
79
Entrega del sistema
Sincronización del contenido de los distintos modelos
Proceso centrado en la arquitecturaProceso centrado en la arquitectura
Los modelos son el medio para visualizar,Los modelos son el medio para visualizar,
especificar, construir, generar y documentar la
arquitectura del sistema.
RUP prescribe el refinamiento sucesivo de la
arquitecturaarquitectura.
C i El b ió C t ió T i ióComienzo Elaboración Construcción Transición
tiempo
Arquitectura
80
BibliografíaBibliografía
“A l i UML d P tt 2 d Editi ” C i“Applying UML and Patterns. 2nd Edition ”. Craig
Larman, Prentice Hall, 2002.
“A l i UML i th U ifi d P ” I“Applying UML in the Unified Process”. Ivar
Jacobson, Rational Software.
“I i í d l S ft U f á ti 6ª“Ingeniería del Software. Un enfoque práctico 6ª
Edición”. R.S. Pressman, McGraw Hill. 2005.
“I i í d l S ft O i t d Obj t ”“Ingeniería del Software Orientado a Objetos”,
Bruegge, Dutoit, Prentice Hall. 2002.
“A áli i Di ñ O i t d Obj t UML“Análisis y Diseño Orientado a Objetos con UML
y el Proceso Unificado”. Schach. McGraw Hill.
2005
81
2005.

Más contenido relacionado

La actualidad más candente

3. modelo entidad relación extendido
3. modelo entidad relación extendido3. modelo entidad relación extendido
3. modelo entidad relación extendidoGalo Anzules
 
Diagrama paquetes, colaboracion y componetes
Diagrama paquetes, colaboracion y componetesDiagrama paquetes, colaboracion y componetes
Diagrama paquetes, colaboracion y componetesandrescofran
 
Desarrollo de aplicaciones web con casos de uso
Desarrollo de aplicaciones web  con casos de usoDesarrollo de aplicaciones web  con casos de uso
Desarrollo de aplicaciones web con casos de usoJosafat Mtz
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividadesTerryJoss
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UMLramirezjaime
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
Analisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de usoAnalisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de usoYovana Connie Roca Avila
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesSorey García
 
Lectura 3 Modelo De Analisis
Lectura 3   Modelo De AnalisisLectura 3   Modelo De Analisis
Lectura 3 Modelo De Analisisguest0a6e49
 
Representacion del Conocimiento Inteligencia Artificial
Representacion del Conocimiento Inteligencia ArtificialRepresentacion del Conocimiento Inteligencia Artificial
Representacion del Conocimiento Inteligencia Artificialjorgeescalona2387
 
Plantilla de toma de requisitos softwarev 1.0
Plantilla de toma de requisitos softwarev 1.0Plantilla de toma de requisitos softwarev 1.0
Plantilla de toma de requisitos softwarev 1.0Javier Hermoso Blanco
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de softwareGuillermo Lemus
 

La actualidad más candente (20)

UML: CASOS DE USO
UML: CASOS DE USOUML: CASOS DE USO
UML: CASOS DE USO
 
3. modelo entidad relación extendido
3. modelo entidad relación extendido3. modelo entidad relación extendido
3. modelo entidad relación extendido
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Diagrama paquetes, colaboracion y componetes
Diagrama paquetes, colaboracion y componetesDiagrama paquetes, colaboracion y componetes
Diagrama paquetes, colaboracion y componetes
 
Arquitectura fisica y logica
Arquitectura fisica y logicaArquitectura fisica y logica
Arquitectura fisica y logica
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionalesRequisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 
Desarrollo de aplicaciones web con casos de uso
Desarrollo de aplicaciones web  con casos de usoDesarrollo de aplicaciones web  con casos de uso
Desarrollo de aplicaciones web con casos de uso
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividades
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UML
 
Base de Datos Orientada a Objetos
Base de Datos Orientada a ObjetosBase de Datos Orientada a Objetos
Base de Datos Orientada a Objetos
 
7.flujo, comportamiento, patrones y web apps
7.flujo, comportamiento, patrones y web apps7.flujo, comportamiento, patrones y web apps
7.flujo, comportamiento, patrones y web apps
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Analisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de usoAnalisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de uso
 
DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para Dummies
 
Lectura 3 Modelo De Analisis
Lectura 3   Modelo De AnalisisLectura 3   Modelo De Analisis
Lectura 3 Modelo De Analisis
 
Diagramas De Caso De Uso
Diagramas De Caso De UsoDiagramas De Caso De Uso
Diagramas De Caso De Uso
 
Representacion del Conocimiento Inteligencia Artificial
Representacion del Conocimiento Inteligencia ArtificialRepresentacion del Conocimiento Inteligencia Artificial
Representacion del Conocimiento Inteligencia Artificial
 
Plantilla de toma de requisitos softwarev 1.0
Plantilla de toma de requisitos softwarev 1.0Plantilla de toma de requisitos softwarev 1.0
Plantilla de toma de requisitos softwarev 1.0
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 

Destacado

diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 
Concurrencia bases datos 2
Concurrencia bases datos 2Concurrencia bases datos 2
Concurrencia bases datos 2Velmuz Buzz
 
Negociacion tecnologica
Negociacion tecnologicaNegociacion tecnologica
Negociacion tecnologicaTeresa Luna
 
13 Clase Flujo De Analisis
13 Clase Flujo De Analisis13 Clase Flujo De Analisis
13 Clase Flujo De AnalisisJulio Pari
 
Contexto del desarrollo tecnológico
Contexto del desarrollo tecnológicoContexto del desarrollo tecnológico
Contexto del desarrollo tecnológicoananpe
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionAbner Gerardo
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estadosstill01
 

Destacado (10)

diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
Guia Yahveh
Guia YahvehGuia Yahveh
Guia Yahveh
 
Concurrencia bases datos 2
Concurrencia bases datos 2Concurrencia bases datos 2
Concurrencia bases datos 2
 
Negociacion tecnologica
Negociacion tecnologicaNegociacion tecnologica
Negociacion tecnologica
 
CMMI
CMMICMMI
CMMI
 
5.comprensión de los requerimientos
5.comprensión de los requerimientos5.comprensión de los requerimientos
5.comprensión de los requerimientos
 
13 Clase Flujo De Analisis
13 Clase Flujo De Analisis13 Clase Flujo De Analisis
13 Clase Flujo De Analisis
 
Contexto del desarrollo tecnológico
Contexto del desarrollo tecnológicoContexto del desarrollo tecnológico
Contexto del desarrollo tecnológico
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacion
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 

Similar a Introducción al Análisis y Diseño Orientado a Objetos (AOA

3 analisis y diseño resumen
3  analisis  y diseño resumen3  analisis  y diseño resumen
3 analisis y diseño resumenfelixzenon
 
Pu fase de inicio-casos uso
Pu fase de inicio-casos usoPu fase de inicio-casos uso
Pu fase de inicio-casos usoingridleona
 
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motorsIso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motorsEduhardo Rodrigez Rosales
 
Programacion avanzada en java
Programacion avanzada en javaProgramacion avanzada en java
Programacion avanzada en javaanamarron
 
PRIMER EXAMEN PARCIAL DE INTELIGENCIA DE NEGOCIOS
PRIMER EXAMEN PARCIAL DE INTELIGENCIA DE NEGOCIOSPRIMER EXAMEN PARCIAL DE INTELIGENCIA DE NEGOCIOS
PRIMER EXAMEN PARCIAL DE INTELIGENCIA DE NEGOCIOSRis Fernandez
 
Tecnologías de información e informática
Tecnologías de información e informáticaTecnologías de información e informática
Tecnologías de información e informáticaMaestros Online
 
10 Clase Captura De Los Requisitos Cap[1].6
10 Clase Captura De Los Requisitos Cap[1].610 Clase Captura De Los Requisitos Cap[1].6
10 Clase Captura De Los Requisitos Cap[1].6Julio Pari
 
10 Clase Captura De Los Requisitos Cap.6
10 Clase Captura De Los Requisitos  Cap.610 Clase Captura De Los Requisitos  Cap.6
10 Clase Captura De Los Requisitos Cap.6Julio Pari
 
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOLCURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOLDarwin Durand
 
Subasta Inversa Electrónica
Subasta Inversa ElectrónicaSubasta Inversa Electrónica
Subasta Inversa Electrónicacarloscjcv
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacionMaestros Online
 
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801luis Farro
 
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801luis Farro
 
Planteamiento del caso de negocio Ingenieria Electrica
Planteamiento del caso de negocio Ingenieria ElectricaPlanteamiento del caso de negocio Ingenieria Electrica
Planteamiento del caso de negocio Ingenieria ElectricaFabiola Trejo Gómez
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso RealesSergio Sanchez
 

Similar a Introducción al Análisis y Diseño Orientado a Objetos (AOA (20)

3 analisis y diseño resumen
3  analisis  y diseño resumen3  analisis  y diseño resumen
3 analisis y diseño resumen
 
Semana13-AOO.ppt
Semana13-AOO.pptSemana13-AOO.ppt
Semana13-AOO.ppt
 
Pu fase de inicio-casos uso
Pu fase de inicio-casos usoPu fase de inicio-casos uso
Pu fase de inicio-casos uso
 
Diseño orientado a objeto
Diseño orientado a objetoDiseño orientado a objeto
Diseño orientado a objeto
 
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motorsIso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
 
Programacion avanzada en java
Programacion avanzada en javaProgramacion avanzada en java
Programacion avanzada en java
 
PRIMER EXAMEN PARCIAL DE INTELIGENCIA DE NEGOCIOS
PRIMER EXAMEN PARCIAL DE INTELIGENCIA DE NEGOCIOSPRIMER EXAMEN PARCIAL DE INTELIGENCIA DE NEGOCIOS
PRIMER EXAMEN PARCIAL DE INTELIGENCIA DE NEGOCIOS
 
Tecnologías de información e informática
Tecnologías de información e informáticaTecnologías de información e informática
Tecnologías de información e informática
 
10 Clase Captura De Los Requisitos Cap[1].6
10 Clase Captura De Los Requisitos Cap[1].610 Clase Captura De Los Requisitos Cap[1].6
10 Clase Captura De Los Requisitos Cap[1].6
 
10 Clase Captura De Los Requisitos Cap.6
10 Clase Captura De Los Requisitos  Cap.610 Clase Captura De Los Requisitos  Cap.6
10 Clase Captura De Los Requisitos Cap.6
 
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOLCURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
CURSO DE PROGRAMACION AVANZADA EN JAVA EN ESPAÑOL
 
Subasta Inversa Electrónica
Subasta Inversa ElectrónicaSubasta Inversa Electrónica
Subasta Inversa Electrónica
 
Tema 1 Ingeniería de Requisitos
Tema 1 Ingeniería de RequisitosTema 1 Ingeniería de Requisitos
Tema 1 Ingeniería de Requisitos
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
 
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
Dialnet aplicacion delasimulacionmontecarloenelcalculodelri-4835801
 
Ingenieria i sesión 05 modelo negocio
Ingenieria i   sesión 05 modelo negocioIngenieria i   sesión 05 modelo negocio
Ingenieria i sesión 05 modelo negocio
 
Planteamiento del caso de negocio Ingenieria Electrica
Planteamiento del caso de negocio Ingenieria ElectricaPlanteamiento del caso de negocio Ingenieria Electrica
Planteamiento del caso de negocio Ingenieria Electrica
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
 

Último

Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 

Último (20)

Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 

Introducción al Análisis y Diseño Orientado a Objetos (AOA

  • 1. Introducción al Análisis y Diseño Orientado a Objetos Tema 3 TACC II 1 TACC II Curso 2008/09
  • 2. MotivaciónMotivación Un proyecto software no consiste sólo en programar.p y p g Necesitamos saber cuáles son las necesidades del cliente. Id tifi l i it t l li l lid lIdentificar los requisitos, anotarlos, analizarlos, validarlos. Necesitamos diseñar una solución, y hacer “los planos” del, y p software: Diseño de la arquitectura, detallado, de datos, … Hay que asegurarse de que el software funciona: Pruebas de unidad (a nivel de método y clase), de integración, del sistema de aceptación etcsistema, de aceptación, etc. Hay que mantener el software. 2 Documentación (de cada una de las fases), coherencia entre los productos de las distintas fases (ej. código vs. diseños).
  • 3. IndiceIndice Modelos de Ciclo de Vida. Análisis y Diseño Orientado a ObjetosAnálisis y Diseño Orientado a Objetos. Notaciones. Metodologías. 3
  • 4. Modelos de ciclo de vidaModelos de ciclo de vida Q é t t i i i l f d¿Qué estrategia seguimos para organizar las fases de un proyecto?. Un modelo de ciclo de vida nos guia en las fases que hay que realizar, sus entradas y salidas, y los criteriosy q y y de transición. L l ió d d d d l í iLa elección de uno u otro depende de las características del proyecto. Con teconologías orientadas a objetos se tiende a ciclos de vida iterativos e incrementales. 4
  • 5. Modelos de Ciclo de VidaModelos de Ciclo de Vida / Estudio de Viabilidad. Análisis Qué / Planificación y Estimación. N it it i Desventajas: Diseño Có •No permite iteraciones. • Los requisitos se congelan al principio del Codificación mo congelan al principio del proyecto. • No existe un proyecto Pruebas • No existe un proyecto “enseñable” hasta el final del proyecto. e integración O ó [ ti ] MCV en Cascada 5 Operación y Mantenimiento [retiro]
  • 6. Modelos de Ciclo de VidaModelos de Ciclo de Vida Iteración de A & D Planificación Análisis Diseño [más iteraciones] Incremento Extraer Eval Planificación Análisis Diseño clases reutilizables Prototipo Pruebas Eval. cliente [más iteraciones] MCV iterativo e 6 incremental (RUP)
  • 7. IndiceIndice M d l d Ci l d VidModelos de Ciclo de Vida. Análisis y Diseño Orientado aAnálisis y Diseño Orientado a Objetos. Ventajas e inconvenientesVentajas e inconvenientes. Análisis. Diseño. NotacionesNotaciones. Metodologías. 7
  • 8. Análisis y Diseño Problema vs SoluciónProblema vs. Solución Análisis (qué) Diseño (cómo) Dominio del problema Dominio de la Solución Modelo del Dominio del Problema Modelo del Dominio de la Solución ControlTrafico VentanaResumen VentanaMapas Avión Controlador Trafico Aeropuerto C t lT fi BDPlanVuelo p 8 PlanVuelo Aeropuerto ControlTrafico
  • 9. Paradigma de Orientación a Objetosg j Características Diseños modularesDiseños modulares. Efectos laterales mínimos(encapsulamiento)( p ) Extensibilidad. Fácil de modificar. Orientado a datos. Explota la herencia (jerárquico). R ili ió d l 9 Reutilización de clases.
  • 10. VentajasVentajas Módulos con fuerte cohesión interna y escasoy acoplamiento externo (sin variables globales, …) Facilita el funcionamiento en entornoFacilita el funcionamiento en entorno multiprocesador (objetos distribuidos) Correspondencia directa con el mundo realCorrespondencia directa con el mundo real Prototipos rápidos Herramientas y bibliotecas muy amplias Aplicaciones construidas enganchando objetosAplicaciones construidas enganchando objetos Mejor comprensión y mantenimiento 10Apropiado para aplicaciones dirigidas por eventos.
  • 11. InconvenientesInconvenientes I t d f bl b i ti dImpactos desfavorables sobre espacio y tiempo de ejecución. Forma de pensar diferente: curva de aprendizaje lenta. Herencia y ligadura dinámica dificultan las pruebas. Difícil seguir el flujo de ejecución (e.j. llamádas implicitas a constructores, conversiones implícitas, etc.) Frameworks grandes y complicados (e.j. MFCs). 11
  • 12. Análisis Orientado a ObjetosAnálisis Orientado a Objetos Centrarse en el “qué”. Identificar los requisitos: documentos de análisis. Entrevistas.Entrevistas. Identificar requisitos funcionales y no funcionales (ej.: rendimiento, fiabilidad) Especificar los requisitos: documento de especificación de requisitos. D t té i O i ió l ifi ió d l i itDocumento técnico. Organización y clasificación de los requisitos. Analizar: Modelos de análisisAnalizar: Modelos de análisis. Estudio de posibles escenarios: casos de uso. Otras técnicas: fichas CRC, orientados al flujo, etc. 12Validar.
  • 13. Análisis Orientado a ObjetosAnálisis Orientado a Objetos La especificación de i it d ib l Obtención de requisitos requisitos describe el sistema, en lenguaje natural.de requisitos Especificación de requisitos: Documento Sirve de comunicación entre desarrolladores y Análisis Modelo de Análisis: entre desarrolladores y clientes, “contrato”. Diseño del Sistema Modelo Modelo del El modelo de análisis usa notación formal (ej.: Z, Alloy) o semi-formalModelo del Sistema: Modelo , y) (ej.: UML). Sirve de comunicación 13 Sirve de comunicación entre desarrolladores.
  • 14. Análisis Orientado a ObjetosAnálisis Orientado a Objetos Modelos de Análisis Modelos basados en Modelos orientados al Flujo Casos de uso, texto. Casos de uso, diagramas. Diagramas de Flujo de Datos Diagramas de Flujo de Control Modelos basados en Escenarios Modelos orientados al Flujo Diagramas de actividad. Diagramas de secuencia. … Diagramas de Transición de Estados … Modelo de Análisis Modelos basados en Modelos basados en Diagramas de Clases. Diagramas de Paquete. Modelos CRC Clases Diagramas de Estado. Diagramas de Secuencia Modelos basados en Comportamiento 14 Modelos CRC. Diagramas de Interacción. … Diagramas de Secuencia. …
  • 15. Análisis Orientado a ObjetosAnálisis Orientado a Objetos Modelos de Análisis. Basado en Escenarios. Modelo de Análisis: Modelo Modelo Funcional: Modelo Modelo de Objetos: Modelo Modelo Dinámico: Modelo Modelo funcional: casos de uso y escenarios. Modelo de Objetos: diagramas de clases yModelo de Objetos: diagramas de clases y objetos. M d l di á i di d i 15 Modelo dinámico: diagramas de secuencia,…
  • 16. Casos de usoCasos de uso D ib é h l i t d d l t d i tDescriben qué hace el sistema desde el punto de vista de un observador externo. Actores: ¿quién interactúa con el sistema?. También pueden ser otros sistemas.p Un escenario es un ejemplo de lo que ocurre cuando i i ú l iuno o varios actores interactúan con el sistema. C d j t d i ( i dCaso de uso: conjunto de escenarios (secuencias de interacción de los actores y el sistema) 16
  • 17. Casos de usoCasos de uso Pasos: Identificar los límites (alcance) del sistema. Identificar los actores principales. Para cada uno, identificar sus objetivos. Definir casos de uso que satisfagan sus objetivos. 17
  • 18. Casos de Uso: Ejemplo CASO DE USO 1: Procesar venta Casos de Uso: Ejemplo CASO DE USO 1: Procesar venta Actor Primario: C jCajero. Interesados y objetivos: Cajero: Quiere anotaciones precisas y rápidas de precios, sin errores. Cli t Q i l á id l í i f Q iCliente: Quiere que el pago sea rápido con el mínimo esfuerzo. Quiere una prueba de compra para justificar devoluciones. Compañía: Quieren almacenar las transacciones y satisfacer los intereses de los clientes.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, t )etc.) Servicios de Autorización de Pagos (por tarjetas de crédito): Quiere recibir peticiones digitales de autorizaciones en el formato y protocolo correcto. 1818 Precondiciones: El cajero se ha identificado y autentificado.
  • 19. Casos de Uso: Ejemplo Garantía de éxito (Postcondiciones): 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: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 i t i t l l t t d i ió d l i i4. El sistema registra el elemento y presenta una descripción del mismo, su precio y total actual. Se calcula el precio de una lista de reglas. El cajero repite los pasos 3-4 hasta que no hay más elementos.j p p q y 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 pago7. El cliente paga y el sistema procesa el pago. 8. El sistema registra la venta completada y manda la información a los sistemas externos de inventario y contabilidad. 9. El sistema genera el recibo. 1919 10. El cliente se va.
  • 20. Casos de Uso: Ejemplo Extensiones (Flujos alternativos): Casos de Uso: Ejemplo Extensiones (Flujos alternativos): a*. En cualquier momento, el sistema falla. 3a. Identificador inválido. 1. El sistema señala un error y rechaza la entrada. 7a. Pago en efectivo. ... 7b Pago con tarjeta7b. Pago con tarjeta. ... Requisitos especiales: Pantalla táctil en panel grande y plano. El texto debe ser visible desde un metro. Respuesta de autorización de crédito en menos de 30 secs, el 90% de las veces. Recuperación robusta cuando el acceso a sistemas externos (tales como el inventario, impuestos, etc.) falla.impuestos, etc.) falla. Posibilidades de internazionalización de texto. Reglas de negocio insertables en los pasos 3 y 7. ... 2020
  • 21. Casos de Uso: Ejemplo Lista de variaciones de tecnología y datos: 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: ¿Cuáles son las posibles variaciones en las leyes sobre impuestos? Explorar el tema de recuperación en caso de fallo de sistemas externos. ¿Qué modificaciones se necesitan para negocios distintos? ¿Debe el cajero extraer el cajón con la recaudación al terminar? ¿Puede el cliente usar directamente el lector de tarjetas o es el cajero el que lo hace? 2121 ¿Puede el cliente usar directamente el lector de tarjetas o es el cajero el que lo hace?
  • 22. Diagrama de Casos de Uso (UML)Diagrama de Casos de Uso (UML) TPVTPV Procesar Venta caje o Servicio cajero Procesar Devoluciones de Autorización de Pagos «actor» Calculador de Impuestos Analizar Actividad «actor» Analizador de Actividad de pImpuestos «actor» Gestionar Ventas ... Sistema de contabilidad Gestionar Seguridad Gestionar 22 Administrador del sistema Gestionar Usuarios
  • 23. Modelos de Análisis Basados en Clases Identificar las clases Analizar los documentos de análisis o casos de usoAnalizar los documentos de análisis, o casos de uso. Clases que pertenecen al espacio de la solución vs. espacio del problema.p p Aislar los sustantivos: Entidades externas: producen o consumen información que usa el sistema.el sistema. Cosas (informes, señales, etc.): información que necesita el sistema. Sucesos o eventos que ocurren durante la operación delSucesos o eventos que ocurren durante la operación del sistema. Papeles que desempeñan los usuarios. Unidades organizacionales.Unidades organizacionales. Sitios que establecen el contexto y la función global del sistema. Estructuras que definen una clase de objetos o clases relacionadas. 23 relacionadas.
  • 24. Diagrama de clases C t Conceptuales * 1d it Concepto u Objeto del dominio cantidad ElementoVenta 1..* Descripcion Precio ID Especific.Producto * 1descrito-por 3contiene 1 1..* registra-ventas-de 1..* 0..1 contenido-en 1.. ID Catálogo 1 Producto 1.. 1 * 3 describe 1..* 1 Venta 1 Tienda * capturada-en 3 Usado-por 1 * 3 almacena 1 1..* fecha hora por 1 dirección nombre 1 capturada-en Atributos 1 Iniciada-por 1 1 P pagada-p 1 R i t contiene 1..* 1 Asociación Cliente 24 cantidad Pago Registro 1 Cajero 11 registra-ventas-en
  • 25. Clasificación de clasesClasificación de clases Tipos de clases: De entidad (a.k.a. de modelo o de negocio). Son clases i d l li ió Rque persisten durante la aplicación. Representan información relevante para la aplicación. De frontera (a.k.a. de contorno). Clases que crean la interfaz que el usuario ve y con la que interaccionainterfaz que el usuario ve y con la que interacciona. De control. Realizan una “unidad de trabajo”: crean oDe control. Realizan una unidad de trabajo : crean o actualizan objetos de entidad, validan datos, etc. 25
  • 26. Diagrama de clases de análisisDiagrama de clases de análisis Caso de uso Procesar Venta Cajero TPV GUI «actor»«actor»«actor» Registro Venta Busqueda Elemento Calculo Precio Calculador Impuestos Servicio Autorización Pagos Sistema Contabilidad 1..* 26 Venta Elemento Venta
  • 27. Método de Clase-Responsabilidad- Clases/Responsabilidades/Colaboradores Colaborador (CRC) Clases/Responsabilidades/Colaboradores. Facilitan la colaboración entre desarrolladores.Facilitan la colaboración entre desarrolladores. Una ficha por cada clase relevante. Se identifican sus responsabilidades. División de responsabilidades, relaciones de colaboración. Jerarquías de generalización/especialización. 27
  • 28. Método de Clase-Responsabilidad- Colaborador (CRC) Clase: PlanoDePlanta Descripción:Descripción: Responsabilidad ColaboradorResponsabilidad Colaborador Define el nombre/tipo de plano de planta Maneja la posición del plano de planta Escala el plano de planta Incorpora paredes, puertas y ventanas M t l i ió d l á d íd Pared CMuestra la posición de las cámaras de vídeo Camara 28
  • 29. Del Análisis al DiseñoDel Análisis al Diseño El d l d áli i d ib l i t d dEl modelo de análisis describe el sistema desde el punto de vista de los actores. N ti i f ió d l t t i tNo contiene información de la estructura interna del sistema, esto es del cómo. Di ñ d l i tDiseño del sistema: Objetivos de diseño que se deben optimizar (derivados de los requisitos no funcionales)de los requisitos no funcionales). Una arquitectura software: descomposición en subsistemas, dependencias entre ellos, etc. Diseño detallado (de objetos). Refinamiento del diseño del sistema. 29 Diseño de las clases de la solución, interfaces.
  • 30. Diseño Orientado a ObjetosDiseño Orientado a Objetos Conceptos básicos de DOO: Encapsulamiento.p Ocultación de información. HerenciaHerencia. Interfaces. P li fiPolimorfismo. 30
  • 31. Diseño Orientado a Objetosj Encapsulamiento Desarrollador Objetivo: crear clase con interfaz clara yj y comprensible Manera: ocultar detalles de implementaciónManera: ocultar detalles de implementación Beneficios: cambio de estructuras/algoritmos sin afectarsin afectar Coste: clases reutilizables más caras a corto plazoplazo 31
  • 32. Diseño Orientado a Objetosj Encapsulamiento Usuario de las clases Objetivo: usar la clase con el mínimo esfuerzoj Manera: usar sólo las operaciones provistas Beneficios: interfaz comprensible bajo coste deBeneficios: interfaz comprensible, bajo coste de programación Coste: pérdida de eficiencia de ejecuciónCoste: pérdida de eficiencia de ejecución 32
  • 33. Descomposición FuncionalDescomposición Funcional Módulos construidos alrededor de las operacionesp Datos globales o distribuidos entre módulosmódulos Entrada/Proceso/Salida Organigramas de trabajo y flujo de datos 33
  • 34. OODOOD Módulos construidos alrededor de las clases Clases escasamente acopladas, sin datos globalesglobales Encapsulamiento y mensajes Diagramas jerárquicos de clases 34
  • 35. Definición de una claseDefinición de una clase Identificar y nombrar la clase Identificar sus componentesp Identificar sus atributos Identificar los erroresIdentificar los errores Identificar las conexiones funcionales (qué clases sirve/exige)clases sirve/exige) Definir conexiones con superclase y subclases Identificar propiedades especiales (persistencia, concurrencia) 35Probar la clase en un prototipo
  • 36. Identificar atributosIdentificar atributos El conjunto de atributos de una clase debe ser: Completo (contienen toda la información pertinente)pertinente) General (se aplican a todos los objetos de la clase)clase) Diferenciado (cada atributo representa un aspecto diferente de la clase)aspecto diferente de la clase) 36
  • 37. Definir atributosDefinir atributos Ti d t ib tTipos de atributos Atómicos predefinidos (entero, real, carácter, pixel...) Atómico enumerativo (color, día de la )semana...) Colección Composición (referencias objetos) Valor del atributo Común a muchos objetos (variable de clase) Propio de un objeto (variable de objeto) 37 op o de u objeto ( a ab e de objeto)
  • 38. Identificar MétodosIdentificar Métodos Método: algoritmo que utiliza y modifica los atributos de una clase Un método es desencadenado por un mensaje Funcionalidad de la clase: conjunto de susFuncionalidad de la clase: conjunto de sus métodos El conjunto de métodos debe ser:El conjunto de métodos debe ser: Completo (realizan toda la funcionalidad de la clase) General (se aplican a todos los objetos de la clase)General (se aplican a todos los objetos de la clase) Diferenciado (cada método debe ser simple y realizar una sola función) 38 una sola función)
  • 39. Definir MétodosDefinir Métodos Ti d ét dTipos de métodos Modificador (asigna valor a un atributo) Selector (devuelve el valor de un atributo) Aplicable a la clase (constructor)p ( ) Aplicable al objeto Parámetros del métodoParámetros del método ¿Qué información necesita? (argumentos de entrada)entrada) ¿Qué debe devolver? (resultado y argumentos de salida) 39 de sa da)
  • 40. EjemploEjemplo C tid d E t ElementoVenta Descripcion: Text EspecificacionProducto 1 descrito-por * ... getSubTotal() Cantidad: Entero 1..* Descripcion: Text Precio: Dinero ID: IDElemento 1 * Venta contenido-en 1 captura Catalogo 5contiene1 1..* Busca-en 1 1 catalogo getEspecificacion(...) Fecha: Date hora: Time completa: Logico Venta ... Registro 1 ... g 1 1 1 catalogo finalizarVenta() introducirElemento(...) hacerNuevaCompra(...) realizarPago(...) Completar() crearElementoVenta(..) crearPago() getTotal() 1 5usa 1 * realizarPago(...)g () P pagada-por 1 1 Dirección: Direccion nombre: Texto Tienda 1 40 anyadirVenta(...) Cantidad: Dinero Pago tiene 1 3Registra-completadas 1
  • 41. Identificar ErroresIdentificar Errores ¿Qué puede salir mal durante la ejecución de un método? ¿Qué comprobaciones debe hacer cada método?método? ¿Cómo interceptar y corregir las condiciones de error? 41
  • 42. Patrones de DiseñoPatrones de Diseño Catálogo de soluciones que han probado ser buenasCatálogo de soluciones que han probado ser buenas para ciertos problemas comunes de diseño. Evita “reinventar la rueda” continuamente. R tili ió d b á ti ú tReutilización de buenas prácticas, común en otras ingenierías. Un patrón es una descripción del problema y la esencia de su solución, que se puede reutilizar en casos distintosdistintos. Los estudiaremos en el Tema 8. 42
  • 43. IndiceIndice Modelos de Ciclo de Vida. AnálisisAnálisis. Diseño. Notaciones. UMLUML MetodologíasMetodologías. 43
  • 44. UMLUML Unified Modeling Language http://uml.org Unified Modeling Language. Combinar y estandarizar una notación para la descripciónCombinar y estandarizar una notación para la descripción de sistemas orientados a objetos a partir de los lenguajes de modelado más conocidos: Booch OODBooch - OOD. Rumbaugh - OMT. Jacobson - OOSE y Objectory. Combina las mejores propiedades de: Conceptos de modelos de datos (ERD)Conceptos de modelos de datos (ERD) Modelos de negocios (workflow) Modelos de Objetos Modelos de Componentes 44 Modelos de Componentes
  • 45. UMLUML Es un lenguaje gráfico para visualizar especificarEs un lenguaje gráfico para visualizar, especificar, construir y documentar las partes de un sistema de software desde distintos puntos de vista. Ofrece una forma estándar de modelar sistemas software pudiendo utilizarse:software, pudiendo utilizarse: Con cualquier proceso de desarrollo. A lo largo de todo el ciclo de vida. C di ti t t l í d i l t ióCon distintas tecnologías de implementación Puede usarse también en otras áreas, como la, ingeniería de negocio, modelado de procesos, etc. 45
  • 46. UML No es un método ni un proceso ni una metodología UML No es un método, ni un proceso ni una metodología. No establece qué modelos construir.No establece qué modelos construir. Para un óptimo aprovechamiento, debe ser usado en un proceso: guiado por casos de usoguiado por casos de uso, centrado en la arquitectura, iterativo e 46 incremental.
  • 47. UMLUML UML es una familia de notaciones, útiles para describir distintos aspectos de unp p sistema: Estático Describe los elementos del sistema yEstático. Describe los elementos del sistema y sus relaciones. Dinámico Describe el comportamiento delDinámico. Describe el comportamiento del sistema a lo largo del tiempo. Casos de Uso Desde el punto de vista del usuarioCasos de Uso. Desde el punto de vista del usuario. 47
  • 49. Vistas Vi t d C d U Vistas Vista de Casos de Uso Funcionalidad externa del sistema Vi t Ló iVista Lógica Estructura estática y conducta dinámica del sistema Vi t d C tVista de Componentes Organización de las componentes Vi t d C iVista de Concurrencia Comunicaciones y sincronización Vi t d D liVista de Despliegue Arquitectura física 49
  • 50. Vista de Casos de UsoVista de Casos de Uso Dirigida al Análisis de Requisitos (lo que quiere hacer elg q ( q q usuario) Describe la funcionalidad del sistema, como la perciben los actores externoslos actores externos Dirige el desarrollo de las otras vistas Define los objetivos finales del sistema Permite validar el sistema Actor externo: UsuarioUsuario Otro sistema Se plasma en diagramasp g de Casos de Uso de Actividad de Secuencia 50 de Secuencia
  • 51. Vista de Casos de UsoVista de Casos de Uso TPVTPV Procesar Venta caje o Servicio cajero Procesar Devoluciones de Autorización de Pagos «actor» Calculador de Impuestos Analizar Actividad «actor» Analizador de Actividad de pImpuestos «actor» Gestionar Ventas ... Sistema de contabilidad Gestionar Seguridad Gestionar 51 Administrador del sistema Gestionar Usuarios
  • 52. Vista LógicaVista Lógica Describe la funcionalidad interna Dirigida a diseñadores y desarrolladoresDirigida a diseñadores y desarrolladores Define la estructura estática Clases, objetos y relaciones Define las colaboraciones dinámicasDefine las colaboraciones dinámicas Mensajes y funciones P i d d di i lPropiedades adicionales Persistencia y concurrencia 52Interfaces y estructura interna de las clases
  • 53. Vista LógicaVista Lógica Se plasma en diagramas Estáticos de Clases de Objetosj Dinámicos de Estadode Estado de Secuencia de Colaboraciónde Colaboración de Actividad 53
  • 54. Vista Lógicag Diagramas estáticos Elemento Diagrama de HidrógenoCarbono ag a a de clases :Hidrógeno:Hidrógeno Di d :Hidrógeno :Hidrógeno:Carbono :Carbono Diagrama de objetos 54 :Hidrógeno :Hidrógeno
  • 55. Vista Lógica Diagrama de Estadosg [(info=driver.detectarDisco())!=NULL]/ disco=buscaDisco(info) NumActual = 1; actual = disco obtenerCancion(ordenActual)C [not driver. detectarAbierto()] Cerrado actual disco.obtenerCancion(ordenActual) Pl ()/ () endOfSong()/ NumActual+=1 ) C Abierto()] Stop Play Play()/ driver.play(actual, 0) p() pausa) eject()/ driver.cerrar C [NumActual<= disco.numCanciones()]/ ject()/ driver.abrir() iver.detectarA / =driver.stop ay(actual,Tp stop()/ driver.stop(); NumActual=1 Abierto eject ()/ driver.stop(); driver.abrir() e d actual= disco.obtenerCancion (NumActual) driver.play(actual,0) ej d [dri P Pause()/ Tpausa= Play()/ driver.pla NumActual=1 actual= disco.obtenerCancion(NumActual) Pause 55 apagar ()/ driver.stop(); driver.apagar()
  • 57. Vista Lógicag Diagrama de Colaboración (comunicación) realizarPago(cantidad) :Registro :Venta realizarPago(cantidad) 1: realizarPago(cantidad) 1.1: crear(cantidad) :Pago 57
  • 58. Vista Lógicag Diagrama de Actividad Put Coffee in Filter Turn on Put Filter in Machine Find Add Water to Reservoir Machine Brew [found coffee] / coffeePot.turnOn Beverage Get Cups coffee [no coffee] light goes out Get cans of cola Pour Coffee [found cola] of cola Drink [no cola] 58 [no cola]
  • 59. Vista de ComponentesVista de Componentes Describe los módulos del sistema y sus dependencias.p Modelar la arquitectura software. Di i id d ll dDirigida a desarrolladores. Se plasma en diagramas.Se p as a e d ag a as de Componentes 59
  • 61. Vista de ConcurrenciaVista de Concurrencia Describe la división del sistema en procesos y procesadores Dirigida a desarrolladores e integradores Resuelve problemas deResuelve problemas de uso eficiente de los recursos ejecución en paralelo (hilos)ejecución en paralelo (hilos) comunicación y sincronización de hilos Se plasma en diagramasSe plasma en diagramas dinámicos de Componentes 61 de Componentes de Despliegue
  • 63. Vista de Despliegue M t l di t ib ió fí i d l i t Vista de Despliegue Muestra la distribución física del sistema (ordenadores, dispositivos) y sus conexiones Dirigida a desarrolladores, integradores yg , g y probadores Se plasma enSe plasma en el diagrama de Despliegue el mapa de asignación de componentes a lael mapa de asignación de componentes a la arquitectura física 63
  • 64. Vista de Desplieguep g Diagrama de Despliegue 64
  • 65. Tipos de DiagramasTipos de Diagramas 65
  • 66. Tipos de DiagramasTipos de Diagramas Análisis Diseño D. Casos de Uso. D. Clases y Objetos. D. Secuencia del Sistema. D Clases Conceptuales D. Colaboración. D SecuenciaD. Clases Conceptuales. D. Clases Análisis. D. Secuencia. D. Estados. 66
  • 67. IndiceIndice Modelos de Ciclo de Vida. AnálisisAnálisis. Diseño. Notaciones. MetodologíasMetodologías. 67
  • 68. MetodologíasMetodologías Una notación no es suficiente. ¿Cómo se organiza el proyecto? (MCV)¿Cómo se organiza el proyecto? (MCV) ¿Qué documentación se genera? ¿Qué técnicas se utilizan en cada fase? ¿Quién las realiza?¿Quién las realiza? ¿Herramientas de soporte? 68
  • 69. MetodologíasMetodologías Booch (OOAD) Jacobson (OOSE)( ) CASEIode (CCM) Coad-Yourdon- Ni l (OOA OOD) Olivetti (OGROUP) Martin-Odell (OOIE)Nicola (OOA,OOD) NE University (Demeter) (OOIE) TASKON (OORAM)(Demeter) Object Engin. (Fresco) ( ) Winter (OSMOSYS) Rumbaugh (OMT) Hewlett-Packard (Fusion) Graham (SOMA) LBMS (SE/OT) Shlaer/Mellor (OOSA)Graham (SOMA) Texas Instruments (IEO) (OOSA) CCTA (SSADM) Wirfs-Brock (RDD) 69 ICL (MTD) ParcPlace (OBA) W s oc ( ) Lloyds Register (Z++)
  • 70. Rational Unified Process (RUP)Rational Unified Process (RUP) Es un proceso iterativo e incremental.p Dirigido por los casos de uso. Centrado en la arquitecturaCentrado en la arquitectura. Fases: Comienzo Definir el alcance del proyectoComienzo. Definir el alcance del proyecto. Elaboración. Plan de proyecto, especificar características, esbozar la arquitectura. Construcción. Construir el producto. Transición. Entrega a los usuarios. 70 Comienzo Elaboración Construcción Transición tiempo
  • 71. Rational Unified Process (RUP)( ) Hitos e Iteraciones Comienzo Elaboración Construcción Transición Visión Esbozo de arqu. funcionalidad inicial Release del producto Comienzo Elaboración Construcción Transición … … … … Iteraciones preliminares Iteraciones de arquitectura Iteraciones de desarrollo Iteraciones de transición 71ReleaseRelease Release Release Rel. Release Release Release ReleaseRel.
  • 72. Rational Unified Process (RUP) Fases workflows e iteracionesFases, workflows e iteraciones 72
  • 73. Rational Unified Process (RUP) workflows y modelos Requisitos Modelo de Casos de Uso Uso de diagramas UML Análisis Modelo de Análisis Diseño Modelo de Diseño Modelo de Despliegue Implementación Diseño g Modelo de I l t ió Implementación Implementación Modelo de 73 Prueba Modelo de Pruebas
  • 74. Modelo de Casos de UsoModelo de Casos de Uso Diagramas de Casos de Uso Modelo de Casos de Uso Diagramas de Clases Diagramas de Objetos Diagramas de Paquetes Modelo de Análisis Modelo Diagramas de Componentes Di dModelo De Diseño Modelo de D li Diagramas de Despliegue Diagramas de Despliegue Modelo de Implementación g Secuencia Diagramas de ColaboraciónImplementación Modelo de Pruebas Colaboración Diagramas de Estado 74Diagramas de Actividad
  • 75. Modelo de AnálisisModelo de Análisis Diagramas de Casos de Uso Modelo de Casos de Uso Diagramas de Clases Diagramas de Objetos Diagramas de Paquetes Modelo de Análisis Modelo Diagramas de Componentes Di dModelo De Diseño Modelo de D li Diagramas de Despliegue Diagramas de Despliegue Modelo de Implementación g Secuencia Diagramas de ColaboraciónImplementación Modelo de Pruebas Colaboración Diagramas de Estado 75Diagramas de Actividad
  • 76. Modelo de DiseñoModelo de Diseño Diagramas de Casos de Uso Modelo de Casos de Uso Diagramas de Clases Diagramas de Objetos Diagramas de Paquetes Modelo de Análisis Modelo Diagramas de Componentes Di dModelo De Diseño Modelo de D li Diagramas de Despliegue Diagramas de Despliegue Modelo de Implementación g Secuencia Diagramas de ColaboraciónImplementación Modelo de Pruebas Colaboración Diagramas de Estado 76Diagramas de Actividad
  • 77. Modelo de DespliegueModelo de Despliegue Diagramas de Casos de Uso Modelo de Casos de Uso Diagramas de Clases Diagramas de Objetos Diagramas de Paquetes Modelo de Análisis Modelo Diagramas de Componentes Di dModelo De Diseño Modelo de D li Diagramas de Despliegue Diagramas de Despliegue Modelo de Implementación g Secuencia Diagramas de ColaboraciónImplementación Modelo de Pruebas Colaboración Diagramas de Estado 77Diagramas de Actividad
  • 78. Modelo de ImplementaciónModelo de Implementación Diagramas de Casos de Uso Modelo de Casos de Uso Diagramas de Clases Diagramas de Objetos Diagramas de Paquetes Modelo de Análisis Modelo Diagramas de Componentes Di dModelo De Diseño Modelo de D li Diagramas de Despliegue Diagramas de Despliegue Modelo de Implementación g Secuencia Diagramas de ColaboraciónImplementación Modelo de Pruebas Colaboración Diagramas de Estado 78Diagramas de Actividad
  • 79. Proceso dirigido por casos de usoProceso dirigido por casos de uso workflows Requisitos Análisis Diseño Implementación Prueba Los casos de uso dirigen y relacionan estos workflows Los casos de uso dirigen las iteraciones: Creación y validación de la arquitectura. Definición de los casos y procedimientos de prueba. Planificación de las iteraciones. Creación de la documentación de usuario. Entrega del sistema 79 Entrega del sistema Sincronización del contenido de los distintos modelos
  • 80. Proceso centrado en la arquitecturaProceso centrado en la arquitectura Los modelos son el medio para visualizar,Los modelos son el medio para visualizar, especificar, construir, generar y documentar la arquitectura del sistema. RUP prescribe el refinamiento sucesivo de la arquitecturaarquitectura. C i El b ió C t ió T i ióComienzo Elaboración Construcción Transición tiempo Arquitectura 80
  • 81. BibliografíaBibliografía “A l i UML d P tt 2 d Editi ” C i“Applying UML and Patterns. 2nd Edition ”. Craig Larman, Prentice Hall, 2002. “A l i UML i th U ifi d P ” I“Applying UML in the Unified Process”. Ivar Jacobson, Rational Software. “I i í d l S ft U f á ti 6ª“Ingeniería del Software. Un enfoque práctico 6ª Edición”. R.S. Pressman, McGraw Hill. 2005. “I i í d l S ft O i t d Obj t ”“Ingeniería del Software Orientado a Objetos”, Bruegge, Dutoit, Prentice Hall. 2002. “A áli i Di ñ O i t d Obj t UML“Análisis y Diseño Orientado a Objetos con UML y el Proceso Unificado”. Schach. McGraw Hill. 2005 81 2005.