Sesion1.1 uml
Transcript of Sesion1.1 uml
1
Universidad de San Martín de Porres
Facultad de Ingeniería y Arquitectura
Curso de Especialización Profesional / 2008 - II
Curso: Ingeniería de Software Orientada a Objetos
Mg. Ing. Géner Zambrano [email protected]
2
Sesión 02
UML
3
Contenido:
OMGDefinición de UMLHistoria de UMLModelamiento con UMLDefinición de conceptosDiagramas de UMLFuentes de consulta y links
4
OMG
5
Object Management Group Object Management Group ((OMG)
Es un consorcio internacional que promueve el desarrollo de software orientado por objetos.
El objetivo del OMG es proveer un marco de arquitectura común para permitir la interacción de objetos en plataformas heterogéneas y distribuidas.
Fue fundado en 1989.
Inicialmente estuvo conformado por 8 compañías: 3Com Corpotation, American Airlines, Canon Inc., Data General, Hewlett-Packard, Philips Telecommunications N.V., Sun Microsystems y Unisys Corporation.
El OMG no realiza trabajos de desarrollo e implementación, más bien se basa en la tecnología existente ofrecida por sus miembros.
6
UML
7
¿Qué es UML (Unified Modeling Language)?
Grady Booch
Ivar Jacobson
JamesRumbaugh
UML es el lenguaje estándar para visualizar, especificar, construir y documentar los artefactos de una aplicación de software ó sistema.
Socios de la compañía Rational Software,Herramienta case Rational Rose.
LENGUAJE UNIFICADO DE MODELADO
8
¿Qué es UML (Unified Modeling Language)?
Uml prescribe un conjunto de notaciones y diagramas estándar para modelar sistemas orientados a objeto y describe la semántica esencial de lo que estos diagramas y símbolos significan.
UML es una notación, destinado a los sistemas de modelado que utilizan conceptos orientados a objetos. Los principales factores que motivaron la creación de umlfueron:
La necesidad de modelar sistemas.Las tendencias en la industria de software.Unificar los distintos lenguajes y métodos existentes.Innovar los modelos para adaptarse a la arquitectura distribuida.
9
UML no es:
Un lenguaje de programación visual, sino un lenguaje de modelación visual.
Una herramienta o deposito de especificación, sino un lenguaje de modelación de especificación.
Un proceso, sino que habilita procesos.
Fundamentalmente, UML está relacionado con la captura, comunicación y nivelación (disgregación en niveles) de conocimientos.
10
Evolución de UML:
Nov ‘97 UML aprobado por el OMG
19981999
2000
UML 1.2
UML 1.3
UML 1.4
2001 UML 2.0
Revisiones menores
11
Modelo
El proceso de desarrollo de software se inicia con la construcción de un modelo. Dicho modelo representa la especificación precisa de las necesidades del usuario trasladadas a los requerimientos.
Un modelo es la interpretación simplificada de la realidad.
Estructuralmente destaca la organización del sistema y a nivel de comportamiento destaca la dinámica del sistema.
12
Modelo, propósitos:
Ayudar a comprender un problema complejo (o solución)Comunicar ideas acerca de un problema o soluciónGuiar la implementaciónComo la documentación base que describe el sistema
13
Modelo, características:
AbstractoEnfatiza los elementos importantes y oculta los irrelevantes
ComprensibleFácil de comprender por los observadores
PrecisoRepresenta de forma fiel el sistema que modela
PredictivoSe pueden usar para deducir conclusiones sobre el sistema que modela
BaratoMucho más barato y sencillo de construir es el sistema que se modela
• Los modelos de ingeniería eficaces deben satisfacer todas estas características
14
Modelo, como se usa:
Para detectar errores u omisiones en el diseño antes de comprometer recursos para la implementación
Analizar y experimentar Investigar y comparar soluciones alternativas Minimizar riesgos
Para comunicarse con los “stakeholders”Clientes, usuarios, implementadores, encargados de pruebas, documentadores, etc.
Para guiar la implementación
15
Proceso
Un buen proceso debe permitir a los equipos y clientes trabajar juntos para construir sistemas complejos con pocos defectos en menor tiempo con mayor confiabilidad y previsibilidad para identificar y para reducir riesgos.
16
UML, características:
Divide cada proyecto en un número de diagramas que representan las distintas vistas del proyecto y juntos representan la arquitectura del mismo.
Permite describir un sistema en diferentes niveles de abstracción, simplificando la complejidad sin perder información, para que los usuarios y desarrolladores comprendan las características de la aplicación.
Se quiere convertir en un lenguaje estándar con el que sea posible modelar todos los componentes del desarrollo de una aplicación, sin embargo no pretende definir un modelo de desarrollo sino únicamente un lenguaje de modelado.
17
¿Cómo utilizar UML?
Lo primero que se debe hacer para comenzar a desarrollar un proyecto con UML, es seleccionar una metodología de desarrolloque defina la naturaleza concreta del proceso a seguir.
El modelo a definir en base al proceso elegido, se divide en realidad en varios tipos de modelo o vistas, cada una centrada en un aspecto o punto de vista del sistema. En general, independientemente del proceso que se emplee, se puede encontrar las siguientes vistas:
18
...continua, ¿Cómo utilizar UML?
Vista de Casos de Uso. Engloba los Casos de Uso que describen el comportamiento del sistema como lo verían los usuarios finales y desarrolladores. No especifica la organización del sistema.
Vista de Diseño. Engloba las clases e interfaces que conforman el vocabulario del problema y su solución. Da soporte a los requisitos funcionales del sistema, es decir los servicios que proporciona a los usuarios finales.
Con UML los aspectos estáticos de estas dos vistas se pueden concretar con los diagramas de clases y de objetos; los aspectos dinámicos con los diagramas de iteración (secuencia y colaboración), diagramas de estados y de actividades.
19
...continua, ¿Cómo utilizar UML?
Vista de Procesos. Engloba los hilos y procesos que forman los mecanismos de sincronización y concurrencia del sistema. Da soporte al funcionamiento, capacidad de crecimiento y rendimiento del sistema.
Vista de Despliegue. Engloba los nodos que forman la topología hardware sobre el que se ejecuta el sistema. Da soporte a la distribución, entrega e instalación de las partes que conforman el sistema físico. Con UML los aspectos estáticos de esta vista se pueden concretar con los diagramas despliegue; los aspectos dinámicos con los diagramas de iteración (secuencia y colaboración), diagramas de estados y de actividades.
20
...continua, ¿Cómo utilizar UML?
Vista de Implementación. Engloba los componentes y archivos empleados para hacer posible el sistema físico. Da soporte a la gestión de configuraciones de las distintas versiones del sistema, a partir de componentes y archivos.
Con UML los aspectos estáticos de esta vista se pueden concretar con los diagramas de componentes; los aspectos dinámicos con los diagramas de iteración (secuencia y colaboración), diagramas de estados y de actividades.
21
Lenguaje de modelamiento: UML
UML tiene tres bloques básicos de construcción: elementos, relaciones y diagramas.
I. Elementos: Unidades básicas de construcción, cuatro tipos:
1.1 Estructurales: Partes estáticas de los modelos, representan aspectos conceptuales o materiales.
1.2 De comportamiento: Partes dinámicas de los modelos, representan comportamientos en el tiempo y espacio.
1.3 De agrupación: Partes organizativas de los modelos.
1.4 De Notación: Partes explicativas de los modelos.
22
...continua, Lenguaje de modelamiento: UML
1.1 Elementos estructurales:
Una interfaz es una colección de operaciones que especifican un servicio de una clase o un componente. Describe el comportamiento visible de ese elemento.Dibujable
Ventanaorigentamaño
abrir()cerrar()mover()dibujar()
Una clase es una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica.
23
...continua, Lenguaje de modelamiento: UML
1.1 Elementos estructurales:
Un caso de uso es una descripción de un conjunto de secuencias de acciones de un sistema y que produce un resultado observable de interés para un actor particular.registrar pedido
Una colaboración define una interacción y es una sociedad de roles y otros elementos que colaboran para proporcionar un comportamiento cooperativo.
realizaciónregistrar pedido
24
...continua, Lenguaje de modelamiento: UML
1.1 Elementos estructurales:
Parte física y reemplazable de un sistema, que agrupa un conjunto de interfaces, archivos de código fuente, clases, colaboraciones y proporciona la implementación de dichos elementos.
Elemento físico que existe en tiempo de ejecución y representa un recurso computacional con capacidad de procesamiento.
25
...continua, Lenguaje de modelamiento: UML
1.2 Elementos de comportamiento:
Comprende un conjunto de mensajes que se intercambian entre un conjunto de objetos, para cumplir un objetivo especifico.
compra
Especifica la secuencia de estados por los que pasa un objeto o una interacción, en respuesta a eventos.
esperando
26
...continua, Lenguaje de modelamiento: UML
1.3 Elementos de agrupación:
Se emplea para organizar elementos en grupos.
1.4 Elementos de notación:
Una nota es un elemento explicativo de los modelos UML. Sirve para hacer claridad sobre elementos del modelo.
27
v ...continua, Lenguaje de modelamiento: UML
II. Relaciones: Abstracciones que actúan de unión entre los elementos.
Una dependencia es una relación semántica entredos elementos, en la cual un cambio a un elemento(elemento independiente) puede afectar la semántica del otro elemento (elemento dependiente).
Dependencia
Es una relación estructural que resume un conjunto de enlaces que son conexiones entre objetos. Asociación
Una asociación es una relación estructural quedescribe un conjunto de enlaces, los cuales son conexiones entre objetos. La agregación es un tipoespecial de asociación, que representa una relación estructural entre un todo y sus partes.
UniversidadFacultad 1..*
1
1..*
1
28
v ...continua, Lenguaje de modelamiento: UML
Una generalización es una relación en la cual los objetos del elemento especializado (el hijo) pueden sustituir a los objetos del elemento general (el padre). De esta forma, el hijo comparte la estructura y el comportamiento del padre
Generalización
Una realización especifica que una clase implementara un conjunto de métodos especificados por una interfaz .Realización
29
III. Diagramas
En OMG UML 2.0 se definen una serie de diagramas adicionales a los establecidos en OMG UML 1.x. El conjunto de diagramas se encuentra organizado en torno a dos categorías: diagramas estructurales (representados en verdes) y diagramas dinámicos o de comportamiento (representados en celeste). Los diferentes diagramas son indicados en la figura siguiente:
30
III. Diagramas, continua...
Jerarquía de Diagramas
Diagramas de estructura enfatizan en los elementos que deben existir en el sistema modelado
Diagramas de comportamiento enfatizan en lo que debe suceder en el sistema modelado
Diagramas de Interacción, un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado
31
III. Diagramas, continua...
Communication Diagrams
Sequence Diagrams
Interaction Diagrams
Class Diagrams
DeploymentDiagrams
ComponentDiagrams
Object Diagrams
Structural Diagrams
State Machine Diagrams
Timing Diagrams
Activity Diagrams
Behavioral Diagrams
Use CaseDiagrams
PackageDiagramsStructure
Diagrams
Interaction Diagrams
32
Diagrama de Casos de Uso.
Permiten realizar la especificación del alcance funcional del producto software que se construye y de los actores, entes que interactúan con el producto de software, que requieren los diferentes casos de usos.
Los casos de usos pueden relacionarse entre sí a través de asociaciones que permiten, entre otras cosas, refinar el Modelo de Casos de Usos a través de las asociaciones de:
•Generalización•Extends•Includ
Enfatizan el qué en lugar del cómo.
33
...contiuna, Diagrama de Casos de Uso
Generalización.
Asociación estereotipada como “generalization”. Permite establecer una jerarquía de herencia al nivel de los casos de uso, donde el caso de uso derivado adquiere toda la especificación del caso de uso base e incorporar nuevos requerimientos a la especificación. Reservar libros Reservar cubiculos
Alumno
Reservar recursos
34
...contiuna, Diagrama de Casos de Uso
Solic itar N ueva Tarjeta
Cliente Solicitar Préstamo
<<extend> >
[Tarjeta Caducada]
Extensión.Asociación estereotipada como: extend. Permite incorporar el flujo de eventos de un caso de uso pequeño dentro de un caso de uso base de la aplicación bajo la ocurrencia de una determinada condición, cuando la misma evalúa verdadero.
35
...contiuna, Diagrama de Casos de Uso
Inclusión.Asociación estereotipada como: incluye. Permite incorporar el flujo de eventos de un caso de uso pequeño dentro de un caso de uso base de la aplicación.
Verificar Operación
Consignación
Cliente
Pago de Crédito
<<include>>
<<include>>
36
continua, Diagrama de Casos de Uso, ejemplo:
37
Diagrama de Clases
Muestra las relaciones estructurales y estáticas entre clases.Un modelo conceptual o modelo del dominio muestra gráficamente los conceptos (clases de objetos), los atributos y las asociaciones más importantes del dominio del problema.
Alumno
ProfPorCursoPorEscuela
ProfesorPorCurso
Curso
Profesor
0..*
0..*
0..*
0..*
enseña
RegionDptoGeografico
11..* 11..*
pertenece
Universidad
Escuela
0..*0..* 0..*0..*
trabaja en
Provincia1..*
1
1..*
1
Facultad
1..*
1
1..*
1
pertenece
1..*
1
1..*
1
pertenece
Distrito1..*
1
1..*
1
10..*
10..*
se ubica
Persona
1
0..*
1
0..*reside en
38
Los diagramas de objetos son análogos a los de clases, con la particularidad de que en lugar de encontrar clases, encontramos instancias de éstas.
Son útiles para explicar partes pequeñas del modelo en las que hay relaciones complejas.
Diagrama de Objetos
39
Diagrama de Objetos – Diagrama de Clases (relación):
Los objetos se vinculan por enlaces, que son instanacias de las relaciones entre las clase sde objetos del dominio.
Diagrama de objetos
Diagrama de clases
40
...continua, Diagrama de Actividades
Buscar Bebida
Poner café en filtro Añadir agua al depósito Coger taza
Poner filtro en máquina
Encender máquina
Café en preparación
Servir café
Coger zumo
Beber
[no hay café]
[hay café
[no zumo]
[hay zumo]
/ cafetera.On
indicador de fin
Los diagramas de actividades muestran como las actividades fluyen y las dependencias entre ellas.
41
...continua, Diagrama de Actividades
Emitir billete
Pasajero Vendedor Airline
Solicitar pago Reservar plazas
Confirmarplaza reservadaPagar pasaje
Informar alternativas y precios
Verificar existencia vuelo
Dar detalles vuelo
Solicitar pasaje
Seleccionar vuelo
Ejemplo: “swim lines=pasillos”
42
Diagrama de Estados
Muestran los posibles estados en que puede encontrarse un objeto y las transiciones que pueden causar un cambio de estado. El estado de un objeto depende de la actividad que esté llevando a cabo o de alguna condición.
Resultado de actividad
inicioCircunstancia o condición que provoca la transición
acción
fin
43
...continua, Diagrama de Estados
Los estados pueden anidarse, agrupando estados relacionados en un estado compuesto. Puede ser necesario cuando una actividad involucra actividades concurrentes o asíncronas.
44
Diagrama de Secuencia
: Encargado :WInPréstamos :Socio :Video :Préstamo
prestar(video, socio)
verificar situación socio
verificar situación video
registrar préstamo
entregar recibo
Al diagrama de secuencia se le ha incorporado un mecanismo a través del cual se puede realizar la especificación de bloques repetitivos, opcionales, alternativos, entre otros. En el siguiente diagrama se puede observar que el registro del préstamo solo se efectúa si el usuario satisface la regla de negocio que establece que el video se encuentre disponible.
45
Diagrama de Comunicación (colaboración)
Muestra la distribución estática de los objetos. Resalta la relación estructural de los objetos que intercambian mensajes.
: Encargado
:WInPréstamos
:Socio
:Video
:Préstamo
1: prestar(video, socio)
2: verificar situación socio
3: verificar situación video
4: registrar préstamo5: entregar recibo
46
Diagrama de Secuencia y de Comunicación (colaboración)
Los diagramas de secuencia y de colaboración son Isomorfos.
Un diagrama de secuencia se puede transformar mecanicamente en un diagrama de comunicación. Un diagrama de comunicación se puede transformar mecanicamente en un diagrama de secuencia.
: Usuario
: Actividad : GestroActividad
: InterfazActividad
llama al Caso de uso incluido VisualizarHorario
Flujo alternativo 2.2.1.
Flujo alternatico 2.2.5.
1: Crear o modificar actividad
4: Selecciona intervalo
horario, dia, descripción
6: actualiza la actividad
2: solicita/buscar periodos de tiempo
3: visualida horario
5: visualizan los nuevos cambios
47
Diagrama de Componentes
Uno de los principales elementos incorporados al diagrama de componentes consiste en la definición de puertos a través de los cuales cada componente de software entrega un conjunto de servicios a través de interfaces proveídas y de manera declarativa se definen los servicios requeridos por el componente software. Este mecanismo permite, que un componente software de manera aislada cuente contoda la especificación no solo interna sino además de la especificación de los requerimientos para la integración del componente software con otros componentes software.
El diagrama de componente muestra interfaces y dependencias entre los componentes del software, los componentes de código de fuente, código binario y ejecutables. Un módulo del software puede representarse como un tipo de componente.
48
...continua, Diagrama de Componentes
Un componente es un módulo de código, de modo que los diagramas de componentes son los análogos físicos a los diagramas de clases.
Muestran la organización y dependencias de un conjunto de componentes. Cubren la vista de implementación estática de un sistema.
49
Diagrama de Despliegue
Estos diagramas muestran la distribución y relación entre los diferentes elementos de hardware llamados “nodos”; por ejemplo: cpu, dispositivos de I/O, routers, etc.
Los diagramas de despliegue sirven para modelar la configuración del hardware del sistema, mostrando qué nodos lo componen
50
...continua, Diagrama de Despliegue
InterfazDeCliente InterfazDeVendedor
CargosDeTarjetasDeCrédito
VendedorDeEntradas
InterfazDeGestor
BDEntradas
Cliente Vendedor
Quiosco TerminaDeVentas
ServidorDeEntradas
GestorEntidadDeTarjetasDeCrédito
nodo
1
*
1
multiplicidadde nododependencia
componente
Nivel de Descripción:
51
...continua, Diagrama de Despliegue
Nivel de instancia:
quiosco de la calle Mayor: Quiosco
oficina central: ServidorDeEntradas
taquilla de la calle del Rio:TerminalDeVentas
oficina de televentas:TerminalDeVentas
quiosco del mercado: Quiosco
Instancia de nodo
Nombre de nodo
Tipo de nodoenlace de comunicación
52
Diagrama de Estructura Compuesta
Se emplea para visualizar de manera gráfica las partes que definen la estructura interna de un clasificador. Cuando se utiliza en el marco de una clase, este diagrama permite elaborar un diagrama de clases donde se muestran los diferentes atributos (partes) y las clases, a partir de las cuales se definen los atributos, indicando principalmente las asociaciones de agregación o de composición de la clase a la que se le elabora el diagrama.
Fuente: http://www.visual-paradigm.com/VPGallery/diagrams/CompositeStructureDiagram.html
53
Diagrama de General de Interacción
Se emplea fundamentalmente para representar las interacciones, a través de diagramas o fragmentos de diagramas de secuencias, entre los actores y el sistemacomo una gran caja negra, y de diagramas de actividades en los que aparecen dichos fragmentos.
Fuente: http://www.visual-paradigm.com/VPGallery/diagrams/InteractionOverviewDiagram.html
54
Diagrama de Tiempos
Empleados para mostrar las interacciones donde el propósito fundamental consiste en razonar sobre la ocurrencia de eventos en el tiempo que provocan el cambio de estados de un elemento estructural (clase, componente, etc.).
Fuente: http://www.visual-paradigm.com/VPGallery/diagrams/TimingDiagram.html
55
Diagrama de Paquetes
Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas agrupandoelementos de modelado
Se representan gráficamente como:
Nombre de paquete
56
...continua, Diagrama de Paquetes
Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema)
Un paquete puede contener otros paquetes, sin límite de anidamiento pero cada elemento pertenece a (está definido en) sólo un paquete
Una clase de un paquete puede aparecer en otro paquete por la importación a través de una relación de dependencia entre paquetes
57
Resumen de los Diagramas de UML 2.0.
Diagrama DescripciónDiagrama de actividad “Activity
Diagram” Modela los procesos de negocio de alto nivel, incluso los flujos de datos,también para modelar la lógica compleja dentro de un sistema
Diagrama de Clas es “Clas s Diagram”
Nos muestra una colección de elementos del modelo estáticos como lasclases y tipos, sus objetos, y sus relaciones.
Diagrama de Comunicación “Communication Diagram”
Muestran las clases, sus relaciones mutuas, y el mensaje que fluyen entreellas. La comunicación hace que el diagrama se enfoque típicamente en laorganización estructural de los objetos que envían y reciben los mensajes;antes Diagrama de Colaboración.
Diagrama de componente “Component Diagram”
Modela los componentes que componen una aplicación o sistema. Ademássus relaciones mutuas, interacciones e interfaces.
Diagrama de Es tructura Compues ta “Compos ite
S tructure Diagram”
Modela la estructura interior de un clasificador (como una clase, componente,o un caso de uso), incluso los puntos de la interacción del clasificador o otraspartes del sistema.
58
...continua, Resumen de los Diagramas de UML 2.0.
Diagrama Descripción
Diagrama de Des pliegue “Deployment Diagram”
Muestras la arquitectura de la ejecución de sistemas. Esto incluye nodos,hardware o ambientes de ejecución de software, así como el middleware quelos conecta.
Diagrama Global de Interacción “Interaction Overview Diagram”
Una variante de un diagrama de actividad son las apreciaciones globales elflujo del mando dentro de un sistema o proceso de negocio. Cada nodo /actividad dentro del diagrama puede representar otro diagrama de lainteracción.
Diagrama de Objetos “Object Diagram”
Modela los objetos y sus relaciones en un determinado tiempo, típicamenteun caso especial de un diagrama de clase o un diagrama de comunicación.
Diagrama de paquetes “P ackage Diagram”
Muestras cómo los elementos principales son organizados en los paquetesasí como las dependencias entre estos.
59
...continua, Resumen de los Diagramas de UML 2.0.
Diagrama DescripciónDiagrama de S ecuencia
“S equence Diagram” Muestra la lógica secuencial del modelo, en el efecto la clasificación detiempo de mensajes entre los clasificadores.
El Diagrama de la Máquina Es tado “S tate Machine
Diagram”
Describe los estados de un objeto o la interacción que pueden ser lastransiciones entre los estados. Anteriormente llamado diagrama de estado, oun diagrama de la estado-transición.
Diagrama de Tiempo “Timing Diagram”
Pinta el cambio con el tiempo en estado o condición de un caso delclasificador o papel el tiempo. Típicamente usado para mostrar el cambio conel tiempo en el estado de un objeto en la contestación a los eventos externos.
Diagrama de Cas o de Us o “Us e Cas e Diagram”
Muestra los procesos que contendrá el sistema a través de casos de uso,actores, y sus relaciones mutuas
60
Fuentes de consulta:
PAGINA DE RATIONAL: http://www-306.ibm.com/software/rational/offer/
TUTORIAL: http://www.cs.utsa.edu/~kdo/roseTutorial/
http://www.sparxsystems.com.au/resources/uml2_tutorial/
61
Fin de la Sesión 02
UML