7/25/2019 04 - Anlisis y Diseo UML
1/57
Ing. Mauricio Paletta, M.Sc
Ing Carlos Abaffy, M.Sc
Material Realizado por:
TECNICAS DE PROGRAMACION III
Tecnologa Orientada a ObjetosUML
7/25/2019 04 - Anlisis y Diseo UML
2/57
Construccin de sistemas como coleccin de objetoscolaborativos.
No preguntar primero qu hace el sistema sino preguntar quien
lo hace. Cmo se encuentran los tipos de objetos relevantes?
Cmo se describen los tipos de objetos?Cmo se describen las relaciones y analogas entre los tipos de
objetos? Cmo se utilizan los tipos de objetos para estructurar elsoftware?
Metodologas Orientadas a Objetos
7/25/2019 04 - Anlisis y Diseo UML
3/57
Construccin de Software Orientado a Objetos
DISEO
REQUERIMIENTOS
CODIFICACION
PROBLEMA
IMPLEMEN-TACION
ANALISIS
Modelo de Objetos
Modelo Dinmico
.
.
Decisiones Implementacin
ArquitecturaDiseo Objetos
.
.
Qu
Cmo
Uso de
lenguaje OO
7/25/2019 04 - Anlisis y Diseo UML
4/57
Construccin de Software Orientado a Objetos
7/25/2019 04 - Anlisis y Diseo UML
5/57
Anlisis Orientado a Objetos
7/25/2019 04 - Anlisis y Diseo UML
6/57
Es la descomposicin de un problema en sus partes. El propsito es modelar un problema basado en conceptos del
mundo real de forma tal que ste se pueda entender y quesatisfaga el conjunto de requerimientos definidos.
El resultado es un problema entendido como una preparacinpara ir al diseo.
Se preocupa ms por identificar los tipos de objetos que pordetallar o identificar los objetos individuales.
Primera oportunidad para identificar la reutilizacin decomponentes existentes.
Dos partes:
- El anlisis de estructuras o modelado de objetos.- El anlisis del comportamiento o modelado dinmico.
Anlisis Orientado a Objetos
7/25/2019 04 - Anlisis y Diseo UML
7/57
Decidir lo que tiene y lo que no tiene que hacer el sistema. Asegurar que el sistema satisfaga las necesidades de sus
usuarios y definir los criterios de aceptacin Anlisis deRequerimientos.
Los principales productos estn basados en la identificacin yprueba de los Requerimientos y el modelo de Clases del
problema.
Anlisis Orientado a Objetos
7/25/2019 04 - Anlisis y Diseo UML
8/57
Diseo Orientado a Objetos
7/25/2019 04 - Anlisis y Diseo UML
9/57
Representa las definiciones completas de las clases yasociaciones identificados en el anlisis incluyendo los
algoritmos de los mtodos usados para implementar lasoperaciones.
El propsito principal es agregar detalles y tomar decisiones deimplementacin.
El resultado es un producto intermedio entre Anlisis yProgramacin para facilitar el trabajo de implementacin.
Usualmente se deriva directamente del anlisis, pero a veces esnecesario agregar nuevas clases o atributos para mejorar elmodelo.
Los principales productos estn relacionados con el modelodetallado de Clases y los flujos de Estados e intercambio de
mensajes entre elementos para satisfacer el problema.
Diseo Orientado a Objetos
7/25/2019 04 - Anlisis y Diseo UML
10/57
Definicin:
Lenguaje de Modelado Unificado - UML
Creacin de Grady Booch, James Rumbaugh e Ivar Jacobson(los tres amigos).
Es un lenguaje (sintaxis y semntica) de modelado y no unmtodo. La sintaxis nos dice cules son los smbolos y cmo
se pueden combinar; la semntica nos da las reglas deinterpretacin de cada smbolo segn el contexto donde seuse.
Usado para modelar o describir sistemas de una gran variedad
de tipos (principalmente de software). Tambin usado duranteel desarrollo de un sistema de software, desde laespecificacin de requerimientos hasta las pruebas finales.
Avalado por el grupo de estndares OMG.
7/25/2019 04 - Anlisis y Diseo UML
11/57
Objetivos:
Lenguaje de Modelado Unificado - UML
Modelar sistemas (no nicamente software) usando conceptosde orientacin a objetos.
Establecer una pareja explcita de elementos tanto a nivelconceptual como ejecutable.
Direccionar los temas de cierto tamao inherentes a lossistemas complejos y/o crticos. Crear un lenguaje de modelado utilizable tanto para los
humanos como para las mquinas.
7/25/2019 04 - Anlisis y Diseo UML
12/57
4 partes:
Lenguaje de Modelado Unificado
Vistas: muestra diferentes aspectos del sistema que se est
modelando. Representa una abstraccin que consiste en unnmero determinado de diagramas. Permite enlazar el modeloal proceso escogido para el desarrollo.
Diagramas: grficas que describen el contenido de una vista.Son 9 tipos de diagramas en total. Elementos del modelo: son los conceptos usados en los
diagramas, asociados comnmente a conceptos de la
orientacin a objetos (clase, objeto, mensaje). Siempre tiene elmismo significado y smbolo, sin importar el diagrama. Mecanismos generales: proveen comentarios, informacin u
otros extras a los elementos del modelo.
7/25/2019 04 - Anlisis y Diseo UML
13/57
5 vistas:
Lenguaje de Modelado Unificado
Vista de Casos de Uso: muestra la funcionalidad del sistema
tal como es percibida por los actores externos. Vista lgica: muestra cmo la funcionalidad est diseada
dentro del sistema, en trminos de las estructuras estticas y el
comportamiento dinmico. Vista de componentes: muestra la organizacin de loscomponentes de cdigo para construir el sistema.
Vista de concurrencia: muestra la concurrencia
(comunicacin y sincronizacin) en el sistema. Vista de despliegue: muestra el despliegue o distribucin delsistema en la arquitectura fsica (computadoras y otrosdispositivos).
7/25/2019 04 - Anlisis y Diseo UML
14/57
9 diagramas:
Lenguaje de Modelado Unificado
o Diagrama de Distribucin Vista de despliegue:
Vista de Casos de Uso: o Diagrama de Casos de Usoo Diagrama de Actividades
Vista lgica: o Diagrama de Clases
o Diagrama de Objetoso Diagramas de Estados
Vista de componentes: o Diagrama de Componentes
Vista de concurrencia: o Diagrama de Colaboracino Diagrama de Secuencias
7/25/2019 04 - Anlisis y Diseo UML
15/57
Use CaseDiagramsUse Case
Diagrams
Use Case
Diagrams
ScenarioDiagramsScenarioDiagramsCollaboration
Diagrams
StateDiagramsStateDiagramsComponent
Diagrams
ComponentDiagramsComponentDiagramsDeploymentDiagrams
State
Diagrams
State
DiagramsObjectDiagrams
ScenarioDiagramsScenario
DiagramsStatechartDiagrams
Use CaseDiagramsUse Case
DiagramsSequenceDiagrams
StateDiagramsState
DiagramsClassDiagrams
Act ivi tyDiagrams
Models
Lenguaje de Modelado Unificado - UML
7/25/2019 04 - Anlisis y Diseo UML
16/57
Logical View
End-user
Functionality
Implementation View
Programmers
Software management
Process View
PerformanceScalability
Throughput
System integrators
Deployment View
System topologyDelivery, installation
Communication
System engineering
Conceptual Physical
Use Case View
Lenguaje de Modelado Unificado - UML
7/25/2019 04 - Anlisis y Diseo UML
17/57
3 elementos bsicos:
Caso de uso: secuencia de transacciones que se realizan en un
elemento de interfaz. Constituye una secuencia completa demensajes y especifica la secuencia de interaccin entre el actory el software. Caso de uso Requerimiento.
Notacin:
Diagrama de Casos de Uso
Caso de UsoCaso de Uso
7/25/2019 04 - Anlisis y Diseo UML
18/57
3 elementos bsicos:
Relaciones: permiten identificar la comunicacin entre los
actores , entre los casos de uso y entre actores y casos de uso.Tipos de relacin:
Diagrama de Casos de Uso
o Relacin de generalizacin entre actores: permite organizar
los actores en una descripcin abstracta del actor.
Persona Empleado
El actor Persona es
ms genrico que elactor Empleado
7/25/2019 04 - Anlisis y Diseo UML
19/57
3 elementos bsicos:
Diagrama de Casos de Uso
o Relacin de generalizacin entre casos de uso: identifica
que un caso de uso especfico hereda y aade propiedades aun caso general.
Comprar en
una mquina
Comprar un
refresco
El caso de usoComprar en unamquina es msgenrico que el caso
de uso Comprar unrefresco
7/25/2019 04 - Anlisis y Diseo UML
20/57
3 elementos bsicos:
Diagrama de Casos de Uso
o Relacin de extensin entre casos de uso (extend): permite
factorizar las variantes sobre la secuencia bsica de un casode uso en nuevos casos de uso que extienden los flujosprincipales.
Alquilar un
vehculo
Alquilar un
chofer
Alquilar un vehculoextiende (opcionalmenteejecuta) a Alquilar un
chofer
7/25/2019 04 - Anlisis y Diseo UML
21/57
3 elementos bsicos:
Diagrama de Casos de Uso
o Relacin de inclusin entre casos de uso (include): permite
sealar que un caso de uso incorpora el comportamiento deotro caso de uso como parte de su propio comportamiento.
Acceder a un sistemausa (siempre ejecuta) aRevisar datos del
usuario
Acceder a
un sistema
Revisar datos
del usuario
7/25/2019 04 - Anlisis y Diseo UML
22/57
3 elementos bsicos:
Diagrama de Casos de Uso
o Relacin de asociacin entre un actor y un caso de uso:
permite sealar la comunicacin existente entre ambos.
7/25/2019 04 - Anlisis y Diseo UML
23/57
Ejemplo:
Diagrama de Casos de Uso
7/25/2019 04 - Anlisis y Diseo UML
24/57
Ejemplo:
Diagrama de Casos de Uso
7/25/2019 04 - Anlisis y Diseo UML
25/57
Definicin:
Diagrama de Actividad
Representan la dinmica del sistema.
Son diagramas usados para mostrar el flujo de las actividadesdel sistema, es decir, muestran el flujo de control entreactividades del sistema, cules actividades se pueden hacer enparalelo y caminos alternativos del flujo.
En el anlisis, se pueden crear para representar el flujo atravs de los casos de uso o para representar el flujo de uncaso de uso particular.
En el diseo, se pueden usar para representar el flujo de unaoperacin particular (algoritmo). Contienen actividades, transiciones entre actividades, cajas de
decisin y barras de sincronizacin.
7/25/2019 04 - Anlisis y Diseo UML
26/57
Elementos:
Diagrama de Actividad
Actividad: representa el desempeo de algn comportamiento
en el diagrama de flujo. Actividades inicial y final: smbolos especiales usados para
iniciar y finalizar el diagrama de flujo. Transicin: muestran el paso del flujo de control de una
actividad a otra. Cajas de decisin: muestran rutas alternativas del flujo de
control basado en una condicin. Barras de sincronizacin: permite representar actividades que
se pueden ejecutar de forma concurrente (una transicin deentrada y varias de salida) o diversos flujos que, una vezculminados, convergen en un punto (varias transiciones de
entrada y una de salida).
Di d A i id d
7/25/2019 04 - Anlisis y Diseo UML
27/57
Notacin:
Diagrama de Actividad
Di d A ti id d
7/25/2019 04 - Anlisis y Diseo UML
28/57
Ejemplo:
Diagrama de Actividad
Di d Cl
7/25/2019 04 - Anlisis y Diseo UML
29/57
Definicin:
Diagrama de Clases
Describe la vista esttica de un sistema en trminos de susclases y las relaciones entre ellas.
Sirve de base para otros diagramas que muestran otrosaspectos del sistema (como el de estados de los objetos y el decolaboracin entre objetos que se muestran en los diagramasdinmicos).
Para su definicin, es necesario que las clases hayan sidoidentificadas y descritas; luego se pueden asociar con otrasclases usando relaciones especficas.
La visibilidad de atributos y mtodos puede ser:
- Privada# Protegida+ Pblica
Di d Cl
7/25/2019 04 - Anlisis y Diseo UML
30/57
Relaciones:
Diagrama de Clases
Asociacin: conexin semntica entre clases que indica que
existe una conexin entre objetos de esas clases. Generalizacin: relacin entre un elemento mas general y otro
mas especfico (herencia). El elemento mas especfico puedecontener informacin adicional.
Dependencia: relacin entre un elemento independiente y otrodependiente. Un cambio en el elemento independiente afectaal elemento dependiente.
Refinamiento: relacin entre dos descripciones del mismo tipopero en niveles diferentes de abstraccin.
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
31/57
Asociaciones:
Diagrama de Clases
Normal: es la asociacin ms comn y se dibuja como una
lnea slida que une las dos clases. Tiene un nombre(comnmente un verbo) que etiqueta el enlace. Es posibleagregar una flecha al final de la asociacin, que indica que laasociacin slo se puede usar en la direccin de la flecha. Sino tiene la flecha se asume que la asociacin es vlida paraambos sentidos. Tambin se puede indicar la multiplicidadvlida en la asociacin.
Persona Carro
0..*1..*
Propietario
1..* 0..*
Empleado ComputadoraUsa
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
32/57
Asociaciones:
Diagrama de Clases
Recursiva: representa la conexin de una clase consigo
misma. Los objetos conectados semnticamente son de lamisma clase. Las asociaciones en general pueden tener rolesconectados a cada clase involucrada en la asociacin e indicanel papel que juega la clase en trminos de la asociacin. Esuna tcnica til para especificar el contexto de una clase y susobjetos.
Nodo
0..*
0..*
Conecta
0..*
0..*
Persona
Se casa con
esposa
esposo
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
33/57
Asociaciones:
Diagrama de Clases
Cualificada: son usadas en asociaciones de uno a muchos o
muchos a muchos. El cualificador indica cmo distinguirentre el conjunto de objetos de los muchos al final de laasociacin; puede verse como un tipo de clave que permiteseparar todos los objetos en la asociacin. Reducen lamultiplicidad en el modelo de uno a muchos a uno a uno.
Canvas Figura0..*id figura0..*
id figura
Recepcionista Reservacin*nmero de
confirmacin
Localizanmero de
confirmacin
*
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
34/57
Asociaciones:
Diagrama de Clases
Disyuntiva (or): representa una restriccin entre dos o ms
asociaciones. Indica que los objetos de una clase puedenparticipar en a lo sumo una de las asociaciones a la vez. Lasasociaciones en general tambin pueden contener restriccionespara indicar que la asociacin debe seguir cierta regla para sucumplimiento.
Compaa
Compaa de
Seguros
Persona
Pliza de
Seguros
1..*
0..*
1..*
0..*0..*1 0..*1
1..*
0..*
1..*
0..*{Or}
Pliza de
Seguros
Cliente
1..*
0..*0..*
1..*
{Ordenado}
Compaa
Compaa de
Seguros
Persona
Pliza de
Seguros
1..*
0..*
1..*
0..*0..*1 0..*1
1..*
0..*
1..*
0..*
{Or}
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
35/57
Asociaciones:
Diagrama de Clases
Agregacin: es un caso especial de asociacin que indica que
la relacin entre las clases es del tipo parte de. Se representamediante un diamante. Cuando la asociacin de composicines obligatoria, el diamante est relleno.
Naval Barco de Guerra**
Contiene
Texto
BotnVentana
*
*
Men
*
*
*
*
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
36/57
Generalizacin:
Diagrama de Clases
Permite representar herencias. Relacin es un o caso
particular de.
Vehculo
Carro Bote
CarroDeportivo
Carro dePasajeros
Camin Velero Bote amotor Carguero
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
37/57
Multiplicidades:
Diagrama de Clases
Esposo Esposa111 1Est casado con
uno a uno
Maestro Estudiante*11 *
uno a muchos
Cajero Cliente1..*11 1.. *
uno a uno o ms
Casa Chimenea0..10..1
uno a ninguno o uno
Ensea
Atiende
Estudiante Crdito11 Toma 12..18
uno a 12 hasta 18
Triciclo Rueda3
uno a 3
Cartn de huevos Huevo1 Contiene 12,241
uno a 12 24
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
38/57
Paquetes:
Diagrama de Clases
Es un mecanismo de agrupamiento para organizar elementos
del modelo en grupos semnticamente relacionados. Puedenimportar elementos de otros paquetes. Los paquetes se puedenrelacionar por generalizacin y dependencia.
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
39/57
Interfaces:
g
Un paquete, componente o clase que tiene una interfazconectada a l, se dice que implementa o soporta la interfazespecfica dado que soporta el comportamiento definido enesa interfaz. Se pueden ver como contratos de colaboracinentre los diferentes elementos del modelo. Una interfaz slo sedescribe como operaciones abstractas. Se representan
mediante pequeos crculos asociado (lnea slida) alelemento del modelo (uno a uno). Una clase que usa lainterfaz se conecta mediante una relacin de dependencia.
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
40/57
Interfaces:
g
Clase B
Una interfaz
Clase A
Diagrama de Clases
7/25/2019 04 - Anlisis y Diseo UML
41/57
Ejemplo:
g
Diagrama de Objetos
7/25/2019 04 - Anlisis y Diseo UML
42/57
Definicin y notacin:
g j
El diagrama de objetos representa la asociacin y relaciones
entre objetos. Sigue la misma notacin que el diagrama declases a diferencia de que en lugar de identificar una clase,identifica una instancia particular u objeto.
El identificador de un objeto puede ir acompaado del
identificador de la clase asociada y un separador entre ambosnombres. Por lo general se subraya el identificador de losobjetos.
Se pueden usar para ejemplificar un diagrama de clases coninstancias explcitas. Tambin se pueden usar como parte delos diagramas de colaboracin en el modelo dinmico.
Diagrama de Objetos
7/25/2019 04 - Anlisis y Diseo UML
43/57
Ejemplo:
Diagrama de Estados
7/25/2019 04 - Anlisis y Diseo UML
44/57
Definicin:
Representa el comportamiento del sistema en el tiempo.
Por lo general se hace un diagrama de estados por clase. El comportamiento es modelado en trminos del estado en el
cual se encuentra un objeto. Se indican qu acciones se ejecutan en cada estado y cul es el
nuevo estado al que se llega luego de un determinado evento. Los estados representan condiciones que son vlidas en el
objeto en un momento dado; los eventos representan la causaque origina el cambio desde un estado a otro.
Diagrama de Estados
7/25/2019 04 - Anlisis y Diseo UML
45/57
Notacin:
Estado inicial
Estado final
Estado
Condicional
Estado1 Estado2Transicin / Evento
Transicin con elmismo estado
Diagrama de Estados
7/25/2019 04 - Anlisis y Diseo UML
46/57
Ejemplo:
Diagrama de Componentes
7/25/2019 04 - Anlisis y Diseo UML
47/57
Definicin:
Permite modelar la estructura del software, incluyendo
dependencias entre componentes en cdigo fuente,componentes en cdigo binario y componentes ejecutables.
Establece relaciones de dependencia entre componentes y/opaquetes de componentes.
Un componente es un grupo de clases que trabajanestrechamente. Se pueden clasificar segn los su existenciaen: tiempo de compilacin; tiempo de enlace; tiempo deejecucin y en varios de esos momentos.
Una dependencia indica que un elemento del modelo (fuente)depende de otro (objeto), de manera que un cambio en elelemento objeto puede significar cambiar el elemento fuente.
Diagrama de Componentes
7/25/2019 04 - Anlisis y Diseo UML
48/57
Tipos de componentes:
Componentes para trabajar en el producto: tambin llamados
componentes fuente, son tpicamente archivos de cdigofuente usados para implementar una o ms clases (archivos debase de datos, cdigo fuente, recursos grficos, etc.).
Componentes de distribucin: tambin llamados componentes
binarios, conforman el fundamento de los sistemas ejecutablesy son tpicamente archivos de cdigo objeto que se generan apartir de los componentes anteriores (ejecutables, DLL,controles ActiveX, etc.).
Componentes de ejecucin: son los creados como resultado deun sistema en ejecucin (archivos temporales, ndices debsqueda, etc.).
Diagrama de Componentes
7/25/2019 04 - Anlisis y Diseo UML
49/57
Ejemplo:
Diagrama de Colaboracin
7/25/2019 04 - Anlisis y Diseo UML
50/57
Definicin:
Muestra la interaccin organizada alrededor de los objetos.
Contiene:o Objetos dibujados como rectngulos. Tres maneras de
identificacin: el nombre del objeto, el nombre del objeto y
su clase o slo el nombre de la clase (objeto annimo).o Enlaces entre objetos mediante lneas que conectan dichosobjetos.
o Mensajes que se muestran con un texto descriptivo y una
flecha que indica el sentido de la ejecucin desde el clientehacia el que suple el evento.
Diagrama de Colaboracin
7/25/2019 04 - Anlisis y Diseo UML
51/57
Ejemplo:
Diagrama de Secuencias
7/25/2019 04 - Anlisis y Diseo UML
52/57
Definicin:
Muestra la interaccin entre objetos estructurada u ordenada
en una secuencia de eventos en el tiempo. Representan el comportamiento del sistema de una forma
amplia. Se lee de izquierda a derecha y de arriba abajo.
Por lo general estn relacionados con la realizacin de loscasos de uso. Pueden haber varios diagramas de secuencia porcaso de uso.
Pueden ser excesivamente grandes si estn involucradasmuchas clases u objetos en la interaccin, en comparacin conlos diagramas de colaboracin.
Diagrama de Secuencias
7/25/2019 04 - Anlisis y Diseo UML
53/57
Notacin:
Objeto1 Objeto2: Actor
Objetos
Mensaje
Activacin
Retorno
Lnea de vida
del objeto
Mensaje
recurrente
Diagrama de Secuencias
7/25/2019 04 - Anlisis y Diseo UML
54/57
Ejemplo:
Diagrama de Distribucin
7/25/2019 04 - Anlisis y Diseo UML
55/57
Definicin:
Modela la distribucin en tiempo de ejecucin de los elementos
de procesamiento y componentes de software, procesos yobjetos asociados.
Tiene que ver con la arquitectura fsica del sistema: dndeestn localizados fsicamente los programas que implementan
las clases y objetos?, en cules computadoras se ejecutan estosprocesos?, cmo se conectan las diferentes computadoras querequiere el sistema para funcionar?.
Se modelan los nodos (objetos fsicos o dispositivos) y lacomunicacin entre ellos. Cada nodo puede contener instanciasde componentes.
Diagrama de Distribucin
7/25/2019 04 - Anlisis y Diseo UML
56/57
Notacin:
Diagrama de Distribucin
7/25/2019 04 - Anlisis y Diseo UML
57/57
Ejemplo: