El documento describe la historia y el desarrollo de UML. UML se deriva de la unificación de tres metodologías de modelado orientado a objetos en los años 90. Desde entonces, UML se ha ido perfeccionando y es ahora un estándar aceptado para el modelado de sistemas de software. UML proporciona elementos como clases, casos de uso y diagramas que permiten modelar de manera visual diferentes aspectos de un sistema.
2. Historia de UML
La notación UML se deriva de y unifica, las tres metodologías de análisis y diseño O.O. más
extendidas:
• Metodología de Grady Booch para la descripción de conjuntos de objetos y sus relaciones.
• Técnica de modelado orientada a objetos de James Rumbaugh (OMT: Object-Modeling
Technique).
• Aproximación de Ivar Jacobson (OOSE: Object- Oriented Software Engineering) mediante la
metodología de casos de uso (use case).
El desarrollo de UML comenzó a finales de 1994 cuando Grady Booch y Jim Rumbaugh de
Rational Software Corporation empezaron a unificar sus métodos. A finales de 1995, Ivar
Jacobson y su compañía Objectory se incorporaron a Rational en su unificación, aportando el
método OOSE.
De las tres metodologías iniciales, las de Booch y Rumbaugh pueden ser descritas como
centradas en objetos, ya que sus aproximaciones se enfocan hacia el modelado de los objetos
que componen el sistema, su relación y colaboración. Por otro lado, la metodología de
Jacobson es más centrada a usuario, ya que todo en su método se deriva de los escenarios de
uso. UML se ha ido fomentando y aceptando como estándar desde el OMG (), que es también
el origen de CORBA, el estándar líder en la industria para la programación de objetos
distribuidos. En 1997 UML 1.1 fue aprobada por la OMG convirtiéndose en la notación
estándar de facto para el análisis y el diseño O.O.
UML es el primer método en publicar un meta-modelo en su propia notación, incluyendo la
notación para la mayoría de la información de requisitos, análisis y diseño(cualquier lenguaje
de modelado de propósito general debería ser capaz de modelarse a sí mismo).
3. Historia de UML
Nov ‘97 UML aprobado
por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2005? UML 2.0
Revisiones menores
UML 1.52003
*Desarrollo de Software
Orientado a Objeto usando UML,
Patricio LetelierTorres,
http://www.dsic.upv.es/~uml/curso.ppt
4. ¡UML!
UML es un lenguaje estándar
para escribir planos de software.
Puede visualizar, especificar,
construir y documentar los
componentes de un sistemas OO
que involucra una gran cantidad
de software.
UML es apropiado para modelar
sistemas de información en
empresas hasta aplicaciones
web. Es un lenguaje muy
expresivo , cubre todas las vistas
necesarias para desarrollar y
5. Donde utilizamos UML
Está pensado para sistemas con gran cantidad
de software:
Sistemas de información de empresas
Banco y servicios financieros
Telecomunicaciones, transporte
Defensa/industria aeroespacial
Electrónica médica
Ámbito científico
También se pueden modelar workflows en un
6. Un modelo conceptual de UML
Para comprender UML, se necesita adquirir un modelo
conceptual del lenguaje. Esto requiere aprender tres
elementos principales:
Bloques básicos de construcción
de UML:
Reglas que dictan cómo se pueden
combinar esos bloques.
Y algunos mecanismos comunes que
se aplican a través de UML.
relaciones
elementos
diagramas
7. Elementos en UML
Estos elementos
son lo bloques
básicos de
construcción
orientados a
objetos de UML.
Se utilizan para
escribir modelos
bien formados.
Elementos
En UML
EstructuralesDe comporta-mientoDe agrupaciónDe anotación
8. Elementos Estructurales
Son los nombres de los modelos UML. En su
mayoría son las partes estáticas de un
modelo, y representan cosas conceptuales o
materiales.
Clase: es una descripción de un
conjunto de objetos que comparten
los mismos atributos, operaciones,
relaciones y semántica. Una clase
implementa una o más interfaces.
+toString() : String
9. Interfaz Representación Gráfica
• Interfaz: es una colección de operaciones que especifica
un servicio de una clase o componente. Por lo tanto, una
interfaz describe el comportamiento visible externamente
de ese elemento. Una interfaz puede representar el
comportamiento completo de una clase o componente, o
sólo una parte de este comportamiento.
• Una interfaz define un conjunto de especificaciones de
operaciones (o sea, sus signaturas), pero nunca sus
implementaciones.
• Una interfaz raramente se encuentra aislada, más bien,
suele estar conectada a la clase o componente que la
realiza.
10. Colaboración
Define una interacción y es una sociedad de roles y
otros elementos que colaboran para proporcionar
un comportamiento cooperativo mayor que la suma
de los comportamientos de sus elementos.
Por lo tanto las colaboraciones tienen dimensión
tanto estructural como de comportamiento. Una
clase dada puede participar en varias
colaboraciones.
Representación de una colaboración
11. Diagrama de Colaboración
Práctica 3
: Encargado
:WInPréstamos
:Socio
:Video
:Préstamo
1: prestar(video, socio)
2: verificar situación socio
3: verificar situación video
4: registrar préstamo
5: entregar recibo
*Desarrollo de Software
Orientado a Objeto usando UML,
Patricio LetelierTorres,
http://www.dsic.upv.es/~uml/curso.ppt
12. Caso de uso
Es una descripción de un conjunto de secuencias de
acciones que un sistema ejecuta y que produce un
resultado observable de interés para un actor
particular.
Un caso de uso se utiliza para estructurar los
aspectos de comportamiento en un modelo. Un
caso de uso es realizado por una colaboración.
Representación de un caso de uso
13. Ejemplo de caso de uso
Retirar dinero
Consultar Extracto
Cliente
Realizar transferencia
*Desarrollo de Software
Orientado a Objeto usando UML,
Patricio LetelierTorres,
http://www.dsic.upv.es/~uml/curso.ppt
15. Elementos en UML
Estos elementos
son lo bloques
básicos de
construcción
orientados a
objetos de UML.
Se utilizan para
escribir modelos
bien formados.
Elementos
En UML
De compor-
tamiento
16. Elementos en UML
Estos elementos
son lo bloques
básicos de
construcción
orientados a
objetos de UML.
Se utilizan para
escribir modelos
bien formados.
Elementos
En UML
De agrupación
17. Elementos de agrupación
Son las partes organizativas de los modelos UML.
Hay un elemento de agrupación principal, los
paquetes. Un paquete es un mecanismo de
propósito general para organizar elementos en
grupos.
Los elementos estructurales, los elementos de
comportamiento, e incluso otros elementos de
agrupación pueden incluirse en un paquete.
Al contrario de los componentes (que existen en
tiempo de ejecución), un paquete es puramente
conceptual (sólo existe en tiempo de desarrollo).
utilidades
Representación
de un paquete
18. Elementos en UML
Estos elementos
son lo bloques
básicos de
construcción
orientados a
objetos de UML.
Se utilizan para
escribir modelos
bien formados.
Elementos
En UML
De anotación
19. Elementos de anotación
Son las partes explicativas de los modelos UML.
Hay un tipo principal llamado Nota. Una nota es
simplemente un símbolo para mostrar
restricciones y comentarios junto a un elemento o
una colección de elementos.
Las notas se utilizan para adornar los diagramas
con restricciones o comentarios que se expresan
mejor en texto informal o formal.
Representación
de una nota
20. Un modelo conceptual de UML
Uno de los bloques básicos de construcción de UML son las
Una relación es una conexión entre elementos.
Para diferenciar las distintas relaciones se utilizan diferentes
tipos de líneas.
Las relaciones más importantes son las dependencias, las
generalizaciones y las asociaciones. Existe también la
relación de Realización
relaciones
21. Dependencia
Es una relación semántica entre dos elementos, en la cual un cambio
a un elemento (el elemento independiente) puede afectar a la
semántica del otro elemento (el dependiente).
Las dependencias generalmente representan relaciones de uso que
declara que un cambio en la especificación de un elemento puede
afectar a otro elemento que la utiliza, pero no necesariamente a la
inversa.
La mayoría de las veces se utilizan en el contexto de las clases o
paquetes , para indicar que una clase utiliza a otra como argumento
en la signatura de una operación.
Representación de una dependenciaPlanDelCurso
agregar(c : Curso)
eliminar(c : Curso)
Curso
22. Generalización
Es una relación entre un elemento general
(llamado super-clase o clase padre) y un caso
más específico de ese elemen-to (llamado
subclase o clase hija). La generalización se
llama a veces relación “es-un-tipo-de”: un
elemento (claseTransporteTerrestre) es-un-
tipo-de un elemento más general (clase
Transporte). La generalización significa que
los objetos hijos se pueden emplear en
cualquier que pueda aparecer el padre, pero
no a la inversa. Es decir, el hijo puede sustituir
al padre.
El hijo hereda atributos y operaciones del
padre.
El hijo puede agregar atributos y operaciones.
Representación de una
generalización
23. Asociación
Es una relación estructural que especifica que los objetos de
un elemento están conectados con los objetos de otro.
Las asociaciones y dependencias pueden ser reflexivas.
Si existe una asociación entre dos clases, se puede navegar
desde un objeto de una clase hasta un objeto de la otra clase.
La agregación es un tipo especial de asociación, que
representa una relación estructural entre un todo y sus
partes. Representa una relación del tipo “tiene-un”. Ejemplo:
UnTransporteTerrestre
“tiene” ruedas.
ProfesorDepartamento
10..1
director
1
dirige
0..1
24. Realización
Es una relación semántica entre
clasificadores, en donde un clasificador
especifica un contrato que otro clasificador
garantiza que cumplirá. Se pueden encontrar
relaciones de realización: entre interfaces y
las clases o componentes que las realizan, y
entre los casos de uso y las colaboraciones
que los realizan.
La realización es lo suficientemente
diferente de la dependencia, la
generalización y la asociación como para ser
tratada como un tipo aparte de relación.
Semánticamente la realización es una
mezcla entre dependencia y generalización.
Representación de
una realización
27. Pulse para editar los formatos
del texto del esquema
Segundo nivel del esquema
Tercer nivel del
esquema
Cuarto nivel del
esquema
Quinto nivel
del esquema
Sexto nivel del
esquema
Séptimo nivel
del esquema
Octavo nivel
del esquema
Diagrama de clases
Un diagrama de clases
presenta un conjunto de
clases, interfaces y
colaboraciones, y las
relaciones entre ellas.
Es el modelo más común
en el modelado de
sistemas orientados a
objetos.
Se utilizan para describir la
vista de diseño estática de
un sistema.
La definición de clase
Una clase es una descripción
de un conjunto de objetos
que comparten los mismos
atributos, operaciones,
relaciones y semántica. Una
clase implementa una o más
interfaces.
Las clases se pueden utilizar
para capturar el vocabulario
del sistema que se está
modelando.
Se pueden utilizar clases
para representar cosas que
sean software, hardware o
puramente conceptuales.
29. Pulse para editar los formatos
del texto del esquema
Segundo nivel del esquema
Tercer nivel del
esquema
Cuarto nivel del
esquema
Quinto nivel
del esquema
Sexto nivel del
esquema
Séptimo nivel
del esquema
Octavo nivel
del esquema
Diagrama de Objeto
Un diagrama de objetos representa un conjunto de objetos y
sus relaciones.
Se utilizan para describir estructuras de datos, instantáneas de
las instancias de los elementos encontrados en los diagramas
de clases.
Cubren la vista de diseño estática o la vista de procesos
estática de un sistema desde la perspectiva de casos reales o
prototípicos.
Los diagramas de objetos modelan las instancias de los
elementos contenidos en los diagramas de clases.
Un diagrama de objetos muestra un conjunto de objetos y sus
relaciones en un momento concreto.
30. Pulse para editar los formatos
del texto del esquema
Segundo nivel del esquema
Tercer nivel del
esquema
Cuarto nivel del
esquema
Quinto nivel
del esquema
Sexto nivel del
esquema
Séptimo nivel
del esquema
Octavo nivel
del esquema
Diagrama de Objeto
c: Compañía
d1: Departamento
nombre = “Ventas”
d2: Departamento
nombre = “I+D”
d3: Departamento
nombre = “Reparaciones”
p: Persona
nombre = “Francisco”
id = 1234
cargo = “vendedor”
:InformacionContacto
dirección = “Avda.
España 1234”
Objeto anónimo
Valor del atributo
Enlace
Enlace
31. Un modelo conceptual de UML
Para comprender UML, se necesita adquirir un
modelo conceptual del lenguaje. Esto requiere
aprender tres elementos principales:
Bloques básicos de construcción de UML: elementos,
relaciones y diagramas.
Reglas que dictan cómo se pueden combinar esos
bloques.
Y algunos mecanismos comunes que se aplican a
través de UML.
32. Pulse para editar los formatos
del texto del esquema
Segundo nivel del esquema
Tercer nivel del
esquema
Cuarto nivel del
esquema
Quinto nivel
del esquema
Sexto nivel del
esquema
Séptimo nivel
del esquema
Octavo nivel
del esquema
Reglas de UML
Los bloques de
construcción de UML no
pueden combinarse de
cualquier manera. Como
cualquier lenguaje UML
tiene unas reglas que
especifican a qué debe
parecerse un modelo
bien formado.
Un modelo bien
formado es aquel que es
semánticamente
autoconsistente y está
en armonía con todos
sus modelos
UML tiene reglas semánticas
para:
Nombres: cómo llamar a los
elementos, relaciones y
diagramas.
Alcance: el contexto que da
significado específico a un
nombre.
Visibilidad: cómo se pueden ver y
utilizar esos nombres por otros.
Integridad: cómo se relacionan
apropiada y consistentemente
unos elementos con otros.
33. Mecanismos comunes
Existen cuatro mecanismos comunes que se
aplican de forma consistente a través de todo el
lenguaje:
Especificaciones
UML no es sólo un lenguaje gráfico, sino que detrás de cada
notación gráfica hay una especificación que proporciona una
explicación textual de la sintaxis y semántica del bloque de
construcción.
Por ejemplo, detrás del icono de una clase hay una
especificación que proporciona información de sus atributos,
operaciones, signaturas y comportamiento de la clase
(visualmente el icono de la clase puede mostrar sólo parte de
la especificación).
34. Pulse para editar los formatos
del texto del esquema
Segundo nivel del esquema
Tercer nivel del
esquema
Cuarto nivel del
esquema
Quinto nivel
del esquema
Sexto nivel del
esquema
Séptimo nivel
del esquema
Octavo nivel
del esquema
Adornos
La mayoría de los elementos UML
tienen una única y clara notación
gráfica que proporciona una
representación visual de los aspectos
más importantes del elemento. Pero
la especificación puede incluir otros
detalles algunos de los cuales se
pueden incluir como adornos
gráficos en la notación base.
Por ejemplo se pueden incluir
adornos en el icono de una clase
indicando la visibilidad de la
operaciones.
35. Mecanismos de extensibilidad
UML proporciona un lenguaje estándar para escribir
planos software, pero no es posible que un lenguaje
cerrado sea siempre suficiente para expresar todos
los matices posibles de todos los modelos en todos
los dominios y en todos los momentos. Por esta
razón UML es abierto-cerrado, siendo posible
extender el lenguaje de manera controlada.
Los mecanismos de extensión incluyen :
estereotipos, valores etiquetados y restricciones.