SlideShare una empresa de Scribd logo
1 de 46
Introducción: UML
¿Qué es UML?
 UML = Unified Modeling Language
 Un lenguaje de propósito general para el modelado
orientado a objetos
 Documento “OMG Unified Modeling Language
Specification”
 UML combina notaciones provenientes desde:
– Modelado Orientado a Objetos
– Modelado de Datos
– Modelado de Componentes
– Modelado de Flujos de Trabajo (Workflows)
I. Introducción: UML
Situación de Partida
 Diversos métodos y técnicas OO, con muchos
aspectos en común pero utilizando distintas
notaciones
 Inconvenientes para el aprendizaje, aplicación,
construcción y uso de herramientas, etc.
 Pugna entre distintos enfoques (y correspondientes
gurús)
Establecer una notación estándar
I. Introducción: UML
Historia de UML
 Comenzó como el “Método Unificado”, con la
participación de Grady Booch y Jim
Rumbaugh. Se presentó en el OOPSLA’95
 El mismo año se unió Ivar Jacobson. Los
“Tres Amigos” son socios en la compañía
Rational Software. Herramienta CASE
Rational Rose
I. Introducción: UML
Historia de UML
Nov ‘97 UML aprobado por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2001 UML 2.0
Revisiones menores
I. Introducción: UML
Participantes en UML 1.0
 Rational Software
(Grady Booch, Jim Rumbaugh y
Ivar Jacobson)
 Digital Equipment
 Hewlett-Packard
 i-Logix (David Harel)
 IBM
 ICON Computing
(Desmond D’Souza)
 Intellicorp and James
Martin & co. (James Odell)
 MCI Systemhouse
 Microsoft
 ObjecTime
 Oracle Corp.
 Platinium Technology
 Sterling Software
 Taskon
 Texas Instruments
 Unisys
I. Introducción: UML
UML “aglutina” enfoques OO
UML
Rumbaugh
Jacobson
Meyer
Harel
Wirfs-Brock
Fusion
Embly
Gamma et. al.
Shlaer-Mellor
Odell
Booch
Pre- and Post-conditions
State Charts
Responsabilities
Operation descriptions,
message numbering
Singleton classes
Frameworks, patterns,
notes
Object life cycles
I. Introducción: UML
Aspectos Novedosos
 Definición semi-formal del Metamodelo de UML
 Mecanismos de Extensión en UML:
 Stereotypes
 Constraints
 Tagged Values
Permiten adaptar los elementos de modelado,
asignándoles una semántica particular
I. Introducción: UML
Inconvenientes en UML
 Definición del proceso de desarrollo usando
UML. UML no es una metodología
 Falta integración con respecto de otras
técnicas tales como patrones de diseño,
interfaces de usuario, documentación, etc.
 Ejemplos aislados
 “Monopolio de conceptos, técnicas y métodos
I. Introducción: UML
Perspectivas de UML
 UML será el lenguaje de modelado orientado a objetos
estándar predominante los próximos años
 Razones:
– Participación de metodólogos influyentes
– Participación de importantes empresas
– Aceptación del OMG como notación estándar
 Evidencias:
– Herramientas que proveen la notación UML
– “Edición” de libros
– Congresos, cursos, “camisetas”, etc.
I. Introducción: UML
Breve Tour por UML
Modelos y Diagramas
Un modelo captura una vista de un sistema del mundo real. Es
una abstracción de dicho sistema, considerando un cierto
propósito. Así, el modelo describe completamente aquellos
aspectos del sistema que son relevantes al propósito del modelo,
y a un apropiado nivel de detalle.
Diagrama: una representación gráfica de una colección de
elementos de modelado, a menudo dibujada como un grafo con
vértices conectados por arcos
OMG UML 1.4 Specification
II. Breve Tour por UML
 Un proceso de desarrollo de software debe ofrecer un conjunto de
modelos que permitan expresar el producto desde cada una de las
perspectivas de interés
 El código fuente del sistema es el modelo más detallado del sistema (y
además es ejecutable). Sin embargo, se requieren otros modelos ...
 Cada modelo es completo desde su punto de vista del sistema, sin
embargo, existen relaciones de trazabilidad entre los diferentes
modelos
... Modelos y Diagramas
II. Breve Tour por UML
Diagramas de UML
 Diagrama de Casos de Uso
 Diagrama de Clases
 Diagrama de Objetos
Diagramas de Comportamiento
 Diagrama de Estados
 Diagrama de Actividad
Diagramas de Interacción
 Diagrama de Secuencia
 Diagrama de Colaboración
Diagramas de implementación
 Diagrama de Componentes
 Diagrama de Despliegue
II. Breve Tour por UML
... Diagramas de UML
Use Case
Diagrams
Use Case
Diagrams
Diagramas de
Casos de Uso
Scenario
Diagrams
Scenario
Diagrams
Diagramas de
Colaboración
State
Diagrams
State
Diagrams
Diagramas de
Componentes
Component
DiagramsComponent
DiagramsDiagramas de
Distribución
State
Diagrams
State
Diagrams
Diagramas de
Objetos
Scenario
Diagrams
Scenario
Diagrams
Diagramas de
Estados
Use Case
Diagrams
Use Case
Diagrams
Diagramas de
Secuencia
State
Diagrams
State
Diagrams
Diagramas de
Clases
Diagramas de
Actividad
Modelo
II. Breve Tour por UML
Los diagramas expresan gráficamente partes de un modelo
4+1 vistas de Kruchten (1995)
Vista Lógica
Vista de
Procesos
Vista de
Distribución
Vista de
Realización
Vista de los
Casos de Uso
Organización de Modelos
Este enfoque sigue el browser de Rational Rose
II. Breve Tour por UML
... Organización de Modelos
Propuesta de Rational Unified Process (RUP)
 M. de Casos de Uso del Negocio (Business Use-Case Model)
 M. de Objetos del Negocio (Business Object Model)
 M. de Casos de Uso (Use-Case Model)
 M. de Análisis (Analysis Model)
 M. de Diseño (Design Model)
 M. de Despliegue (Deployment Model)
 M. de Datos (Data Model)
 M. de Implementación (Implementation Model)
 M. de Pruebas (Test Model)
II. Breve Tour por UML
Paquetes en UML
 Los paquetes ofrecen un mecanismo general para
la organización de los modelos/subsistemas
agrupando elementos de modelado
 Se representan gráficamente como:
Nombre de
paquete
II. Breve Tour por UML
… Paquetes en UML
 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
II. Breve Tour por UML
… Paquetes en UML
 Todas las clases no son
necesariamente visibles desde
el exterior del paquete, es
decir, un paquete encapsula a
la vez que agrupa
 El operador “::” permite
designar una clase definida en
un contexto distinto del actual
II. Breve Tour por UML
… Paquetes en UML
II. Breve Tour por UML
Diagrama de Casos de Uso
 Casos de Uso es una técnica para capturar
información de cómo un sistema o negocio
trabaja, o de cómo se desea que trabaje
 No pertenece estrictamente al enfoque
orientado a objeto, es una técnica para captura
de requisitos
II. Breve Tour por UML
Ejemplos
II. Breve Tour por UML
Supervisor
Verificar Situación del Cliente
Administrativo
Preparar Catálogo
Sistema
Inventario
Tipos de Venta
… Ejemplos
En el paquete tipos de venta:
II. Breve Tour por UML
Venta Normal
Venta en Rebajas
Venta en Ofertas
Vendedor
… Ejemplos
II. Breve Tour por UML
Solicitar Nueva Tarjeta
Cliente
Solicitar Préstamo
<<extend>>
[Tarjeta Caducada]
… Ejemplos
II. Breve Tour por UML
Verificar Operación
Consignación
Cliente
Pago de Crédito
<<include>>
<<include>>
Diagrama de Secuencia
II. Breve Tour por UML
: Encargado
:WInPréstamos :Socio :Video :Préstamo
prestar(video, socio)
verificar situación socio
verificar situación video
registrar préstamo
entregar recibo
Diagrama de Colaboración
II. Breve Tour por UML
: 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
Diagrama de Clases
 El Diagrama de Clases es el diagrama principal
para el análisis y diseño
 Un diagrama de clases presenta las clases del
sistema con sus relaciones estructurales y de
herencia
 La definición de clase incluye definiciones para
atributos y operaciones
 El modelo de casos de uso aporta información
para establecer las clases, objetos, atributos y
operaciones
II. Breve Tour por UML
Ejemplos (Clase y Visibilidad)
Alumno
DNI : char[10]
número_exp : int
nombre : char[50]
alta()
poner_nota(asignatura : char *, año : int, nota : float)
matricular(cursos : asignatura, año : int)
listar_expediente()
II. Breve Tour por UML
… Ejemplos (Asociación)
ProfesorDepartamento
10..1
director
1
dirige
0..1
II. Breve Tour por UML
… Ejemplos (Clase Asociación)
II. Breve Tour por UML
Empresa Empleado
1..** 1..**
trabajadoresempleador
Cargo
nombre
sueldo 0..1
1..*
superior
subordinado 1..*
0..1
… Ejemplos (Generalización)
II. Breve Tour por UML
Trabajador
Directivo Administrativo Obrero
{ disjunta, completa }
… Ejemplos
II. Breve Tour por UML
Avión militar Avión comercial
Avión de carga Avión de pasajeros
Motor Vendedor de billetes
Avión
1..4
1
1..4
1
Piloto
Reserva
n
1
n
1
Línea aérea
Vuelo
n1 n1
1..2
n
1..2
n
n1 n1
1
n
1
n
{ disjunta, completa }
{ disjunta, completa }
Diagrama de Estados
con préstamos
sin préstamos
alta baja
prestar devolver[ número_préstamos = 1 ]
prestar
devolver[ número_préstamos > 1 ]
número_préstamos = 0
número_préstamos > 0
II. Breve Tour por UML
Socio
número : int
nombre : char[50]
número_prestamos : int = 0
alta()
baja()
prestar(código_libro : int, fecha : date)
devolver(código_libro : int, fecha : date)
Diagrama de Actividad
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
II. Breve Tour por UML
Emitir billete
Pasajero Vendedor Airline
… Otro Ejemplo (con swim lines)
Solicitar pago Reservar plazas
Confirmar
plaza reservadaPagar pasaje
Informar alternativas
y precios
Verificar
existencia vuelo
Dar detalles vuelo
Solicitar pasaje
Seleccionar vuelo
II. Breve Tour por UML
Diagrama Componentes (Dependencias)
Control y Análisis
Comment
Acceso a BD
Comment
Rutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Gestión de Cuentas
Comment
II. Breve Tour por UML
Diagrama de Despliegue
Punto de Venta
Servidor Central
Terminal de Consulta
Gestión de Cuentas
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Rutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Acceso a BD
Comment
Control y Análisis
Comment
II. Breve Tour por UML
Resumen
 UML define una notación que se expresa
como diagramas sirven para representar
modelos/subsistemas o partes de ellos
 El 80 por ciento de la mayoría de los
problemas pueden modelarse usando
alrededor del 20 por ciento de UML-- Grady
Booch
II. Breve Tour por UML
El Paradigma
Orientado a Objeto
usando UML
¿Por qué la Orientación a Objetos?
 Proximidad de los conceptos de modelado respecto de
las entidades del mundo real
– Mejora captura y validación de requisitos
– Acerca el “espacio del problema” y el “espacio
de la solución”
 Modelado integrado de propiedades estáticas y
dinámicas del ámbito del problema
– Facilita construcción, mantenimiento y
reutilización
III. El Paradigma Orientado a Objeto
¿Por qué la Orientación a Objetos?
 Conceptos comunes de modelado durante el análisis,
diseño e implementación
– Facilita la transición entre distintas fases
– Favorece el desarrollo iterativo del sistema
– Disipa la barrera entre el “qué” y el “cómo”
 Sin embargo, existen problemas ...
III. El Paradigma Orientado a Objeto
“...Los conceptos básicos de la OO se conocen desde
hace dos décadas, pero su aceptación todavía no está tan
extendida como los beneficios que esta tecnología puede
sugerir”
“...La mayoría de los usuarios de la OO no utilizan los
conceptos de la OO de forma purista, como inicialmente
se pretendía. Esta práctica ha sido promovida por
muchas herramientas y lenguajes que intentan utilizar los
conceptos en diversos grados”
--Wolfgang Strigel
Problemas en OO
III. El Paradigma Orientado a Objeto
 Un objeto contiene datos y operaciones que operan sobre los
datos, pero ...
 Podemos distinguir dos tipos de objetos degenerados:
– Un objeto sin datos (que sería lo mismo que una biblioteca
de funciones)
– Un objeto sin “operaciones”, con sólo operaciones del tipo
crear, recuperar, actualizar y borrar (que se correspondería
con las estructuras de datos tradicionales)
 Un sistema construido con objetos degenerados no es un
sistema verdaderamente orientado a objetos
“Las aplicaciones de gestión están constituidas
mayoritariamente por objetos degenerados”
… Problemas en OO
III. El Paradigma Orientado a Objeto
Reflexiones respecto de Situación Actual
de Desarrollo de SI
Análisis Diseño
Enfoque
Estructurado
Enfoque OO
Diagramas de Casos de Uso
Diagramas de Actividad
Diagramas de Secuencia
Diagramas de Colaboración d
DFDs
Diagrama de Clases
Diagrama de Estados
Diagramas de Actividad
DEs
Modelo
Relacional !!
Implementación
Entornos de
Programación
Visual
Bases de Datos
(Objeto-)
Relacionales
Modelo
Relacional
E-R
III. El Paradigma Orientado a Objeto

Más contenido relacionado

La actualidad más candente (20)

Clase03 m sw
Clase03 m swClase03 m sw
Clase03 m sw
 
Modelo dinamico
Modelo dinamicoModelo dinamico
Modelo dinamico
 
UML
UMLUML
UML
 
Sesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisisSesion 3 2 modelo de analisis
Sesion 3 2 modelo de analisis
 
IntroduccióN Uml
IntroduccióN UmlIntroduccióN Uml
IntroduccióN Uml
 
Equipo2
Equipo2Equipo2
Equipo2
 
Curso Uml 1 Introduccion
Curso Uml   1 IntroduccionCurso Uml   1 Introduccion
Curso Uml 1 Introduccion
 
UML
UMLUML
UML
 
Staruml
StarumlStaruml
Staruml
 
UML
UMLUML
UML
 
Generación de códigos
Generación de códigosGeneración de códigos
Generación de códigos
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
Modelo de proceso_de_negocio
Modelo de proceso_de_negocioModelo de proceso_de_negocio
Modelo de proceso_de_negocio
 
Uml
UmlUml
Uml
 
Camtasia Getting Started Guide
Camtasia Getting Started GuideCamtasia Getting Started Guide
Camtasia Getting Started Guide
 
IngenieríA De Software Uml
IngenieríA De Software UmlIngenieríA De Software Uml
IngenieríA De Software Uml
 
MODELAMIENTO VISUAL Y UML
MODELAMIENTO VISUAL Y UMLMODELAMIENTO VISUAL Y UML
MODELAMIENTO VISUAL Y UML
 
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
 
Informatica
Informatica Informatica
Informatica
 
Diagramas de clases
Diagramas de clasesDiagramas de clases
Diagramas de clases
 

Similar a Uml

Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UMLJuan Antonio
 
El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"
El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"
El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"YuseLis Andrades
 
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"YuseLis Andrades
 
Presentacion uml dian1_2003
Presentacion uml dian1_2003Presentacion uml dian1_2003
Presentacion uml dian1_2003Diana Vásquez
 
Teoria del modelado de objetos modificado
Teoria del modelado de objetos modificadoTeoria del modelado de objetos modificado
Teoria del modelado de objetos modificadoRobert Rodriguez
 
Lenguaje unificado de modelado
Lenguaje unificado de modeladoLenguaje unificado de modelado
Lenguaje unificado de modeladoDarwinGranda
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecysLeonel Narvaez Ruiz
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de softwareYaskelly Yedra
 
Ut5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de usoUt5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de usoijmb666
 
Guia_Lab_UML-General_UTP.pdf
Guia_Lab_UML-General_UTP.pdfGuia_Lab_UML-General_UTP.pdf
Guia_Lab_UML-General_UTP.pdfLuisFelipeUNI
 
ADS - Sesion2
ADS - Sesion2ADS - Sesion2
ADS - Sesion2willy0303
 
Modelamiento visual-y-uml346
Modelamiento visual-y-uml346Modelamiento visual-y-uml346
Modelamiento visual-y-uml346Mguel
 

Similar a Uml (20)

Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UML
 
cursoUML.ppt
cursoUML.pptcursoUML.ppt
cursoUML.ppt
 
Introducción a UML
Introducción a UMLIntroducción a UML
Introducción a UML
 
El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"
El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"
El Proceso UML Ing. de Sistemas 7° Sem. "UNEFA"
 
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"
 
Introducción a UML
Introducción a UMLIntroducción a UML
Introducción a UML
 
Presentacion uml dian1_2003
Presentacion uml dian1_2003Presentacion uml dian1_2003
Presentacion uml dian1_2003
 
Uml
UmlUml
Uml
 
Diagramas uml(1)
Diagramas uml(1)Diagramas uml(1)
Diagramas uml(1)
 
uml
umluml
uml
 
Teoria del modelado de objetos modificado
Teoria del modelado de objetos modificadoTeoria del modelado de objetos modificado
Teoria del modelado de objetos modificado
 
Lenguaje unificado de modelado
Lenguaje unificado de modeladoLenguaje unificado de modelado
Lenguaje unificado de modelado
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecys
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de software
 
Ut5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de usoUt5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de uso
 
Uml
UmlUml
Uml
 
Guia_Lab_UML-General_UTP.pdf
Guia_Lab_UML-General_UTP.pdfGuia_Lab_UML-General_UTP.pdf
Guia_Lab_UML-General_UTP.pdf
 
ADS - Sesion2
ADS - Sesion2ADS - Sesion2
ADS - Sesion2
 
Modelamiento visual-y-uml346
Modelamiento visual-y-uml346Modelamiento visual-y-uml346
Modelamiento visual-y-uml346
 
Curso de UML 2.0
Curso de UML 2.0 Curso de UML 2.0
Curso de UML 2.0
 

Uml

  • 2. ¿Qué es UML?  UML = Unified Modeling Language  Un lenguaje de propósito general para el modelado orientado a objetos  Documento “OMG Unified Modeling Language Specification”  UML combina notaciones provenientes desde: – Modelado Orientado a Objetos – Modelado de Datos – Modelado de Componentes – Modelado de Flujos de Trabajo (Workflows) I. Introducción: UML
  • 3. Situación de Partida  Diversos métodos y técnicas OO, con muchos aspectos en común pero utilizando distintas notaciones  Inconvenientes para el aprendizaje, aplicación, construcción y uso de herramientas, etc.  Pugna entre distintos enfoques (y correspondientes gurús) Establecer una notación estándar I. Introducción: UML
  • 4. Historia de UML  Comenzó como el “Método Unificado”, con la participación de Grady Booch y Jim Rumbaugh. Se presentó en el OOPSLA’95  El mismo año se unió Ivar Jacobson. Los “Tres Amigos” son socios en la compañía Rational Software. Herramienta CASE Rational Rose I. Introducción: UML
  • 5. Historia de UML Nov ‘97 UML aprobado por el OMG 1998 1999 2000 UML 1.2 UML 1.3 UML 1.4 2001 UML 2.0 Revisiones menores I. Introducción: UML
  • 6. Participantes en UML 1.0  Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson)  Digital Equipment  Hewlett-Packard  i-Logix (David Harel)  IBM  ICON Computing (Desmond D’Souza)  Intellicorp and James Martin & co. (James Odell)  MCI Systemhouse  Microsoft  ObjecTime  Oracle Corp.  Platinium Technology  Sterling Software  Taskon  Texas Instruments  Unisys I. Introducción: UML
  • 7. UML “aglutina” enfoques OO UML Rumbaugh Jacobson Meyer Harel Wirfs-Brock Fusion Embly Gamma et. al. Shlaer-Mellor Odell Booch Pre- and Post-conditions State Charts Responsabilities Operation descriptions, message numbering Singleton classes Frameworks, patterns, notes Object life cycles I. Introducción: UML
  • 8. Aspectos Novedosos  Definición semi-formal del Metamodelo de UML  Mecanismos de Extensión en UML:  Stereotypes  Constraints  Tagged Values Permiten adaptar los elementos de modelado, asignándoles una semántica particular I. Introducción: UML
  • 9. Inconvenientes en UML  Definición del proceso de desarrollo usando UML. UML no es una metodología  Falta integración con respecto de otras técnicas tales como patrones de diseño, interfaces de usuario, documentación, etc.  Ejemplos aislados  “Monopolio de conceptos, técnicas y métodos I. Introducción: UML
  • 10. Perspectivas de UML  UML será el lenguaje de modelado orientado a objetos estándar predominante los próximos años  Razones: – Participación de metodólogos influyentes – Participación de importantes empresas – Aceptación del OMG como notación estándar  Evidencias: – Herramientas que proveen la notación UML – “Edición” de libros – Congresos, cursos, “camisetas”, etc. I. Introducción: UML
  • 12. Modelos y Diagramas Un modelo captura una vista de un sistema del mundo real. Es una abstracción de dicho sistema, considerando un cierto propósito. Así, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propósito del modelo, y a un apropiado nivel de detalle. Diagrama: una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo con vértices conectados por arcos OMG UML 1.4 Specification II. Breve Tour por UML
  • 13.  Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés  El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos ...  Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diferentes modelos ... Modelos y Diagramas II. Breve Tour por UML
  • 14. Diagramas de UML  Diagrama de Casos de Uso  Diagrama de Clases  Diagrama de Objetos Diagramas de Comportamiento  Diagrama de Estados  Diagrama de Actividad Diagramas de Interacción  Diagrama de Secuencia  Diagrama de Colaboración Diagramas de implementación  Diagrama de Componentes  Diagrama de Despliegue II. Breve Tour por UML
  • 15. ... Diagramas de UML Use Case Diagrams Use Case Diagrams Diagramas de Casos de Uso Scenario Diagrams Scenario Diagrams Diagramas de Colaboración State Diagrams State Diagrams Diagramas de Componentes Component DiagramsComponent DiagramsDiagramas de Distribución State Diagrams State Diagrams Diagramas de Objetos Scenario Diagrams Scenario Diagrams Diagramas de Estados Use Case Diagrams Use Case Diagrams Diagramas de Secuencia State Diagrams State Diagrams Diagramas de Clases Diagramas de Actividad Modelo II. Breve Tour por UML Los diagramas expresan gráficamente partes de un modelo
  • 16. 4+1 vistas de Kruchten (1995) Vista Lógica Vista de Procesos Vista de Distribución Vista de Realización Vista de los Casos de Uso Organización de Modelos Este enfoque sigue el browser de Rational Rose II. Breve Tour por UML
  • 17. ... Organización de Modelos Propuesta de Rational Unified Process (RUP)  M. de Casos de Uso del Negocio (Business Use-Case Model)  M. de Objetos del Negocio (Business Object Model)  M. de Casos de Uso (Use-Case Model)  M. de Análisis (Analysis Model)  M. de Diseño (Design Model)  M. de Despliegue (Deployment Model)  M. de Datos (Data Model)  M. de Implementación (Implementation Model)  M. de Pruebas (Test Model) II. Breve Tour por UML
  • 18. Paquetes en UML  Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas agrupando elementos de modelado  Se representan gráficamente como: Nombre de paquete II. Breve Tour por UML
  • 19. … Paquetes en UML  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 II. Breve Tour por UML
  • 20. … Paquetes en UML  Todas las clases no son necesariamente visibles desde el exterior del paquete, es decir, un paquete encapsula a la vez que agrupa  El operador “::” permite designar una clase definida en un contexto distinto del actual II. Breve Tour por UML
  • 21. … Paquetes en UML II. Breve Tour por UML
  • 22. Diagrama de Casos de Uso  Casos de Uso es una técnica para capturar información de cómo un sistema o negocio trabaja, o de cómo se desea que trabaje  No pertenece estrictamente al enfoque orientado a objeto, es una técnica para captura de requisitos II. Breve Tour por UML
  • 23. Ejemplos II. Breve Tour por UML Supervisor Verificar Situación del Cliente Administrativo Preparar Catálogo Sistema Inventario Tipos de Venta
  • 24. … Ejemplos En el paquete tipos de venta: II. Breve Tour por UML Venta Normal Venta en Rebajas Venta en Ofertas Vendedor
  • 25. … Ejemplos II. Breve Tour por UML Solicitar Nueva Tarjeta Cliente Solicitar Préstamo <<extend>> [Tarjeta Caducada]
  • 26. … Ejemplos II. Breve Tour por UML Verificar Operación Consignación Cliente Pago de Crédito <<include>> <<include>>
  • 27. Diagrama de Secuencia II. Breve Tour por UML : Encargado :WInPréstamos :Socio :Video :Préstamo prestar(video, socio) verificar situación socio verificar situación video registrar préstamo entregar recibo
  • 28. Diagrama de Colaboración II. Breve Tour por UML : 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
  • 29. Diagrama de Clases  El Diagrama de Clases es el diagrama principal para el análisis y diseño  Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia  La definición de clase incluye definiciones para atributos y operaciones  El modelo de casos de uso aporta información para establecer las clases, objetos, atributos y operaciones II. Breve Tour por UML
  • 30. Ejemplos (Clase y Visibilidad) Alumno DNI : char[10] número_exp : int nombre : char[50] alta() poner_nota(asignatura : char *, año : int, nota : float) matricular(cursos : asignatura, año : int) listar_expediente() II. Breve Tour por UML
  • 32. … Ejemplos (Clase Asociación) II. Breve Tour por UML Empresa Empleado 1..** 1..** trabajadoresempleador Cargo nombre sueldo 0..1 1..* superior subordinado 1..* 0..1
  • 33. … Ejemplos (Generalización) II. Breve Tour por UML Trabajador Directivo Administrativo Obrero { disjunta, completa }
  • 34. … Ejemplos II. Breve Tour por UML Avión militar Avión comercial Avión de carga Avión de pasajeros Motor Vendedor de billetes Avión 1..4 1 1..4 1 Piloto Reserva n 1 n 1 Línea aérea Vuelo n1 n1 1..2 n 1..2 n n1 n1 1 n 1 n { disjunta, completa } { disjunta, completa }
  • 35. Diagrama de Estados con préstamos sin préstamos alta baja prestar devolver[ número_préstamos = 1 ] prestar devolver[ número_préstamos > 1 ] número_préstamos = 0 número_préstamos > 0 II. Breve Tour por UML Socio número : int nombre : char[50] número_prestamos : int = 0 alta() baja() prestar(código_libro : int, fecha : date) devolver(código_libro : int, fecha : date)
  • 36. Diagrama de Actividad 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 II. Breve Tour por UML
  • 37. Emitir billete Pasajero Vendedor Airline … Otro Ejemplo (con swim lines) Solicitar pago Reservar plazas Confirmar plaza reservadaPagar pasaje Informar alternativas y precios Verificar existencia vuelo Dar detalles vuelo Solicitar pasaje Seleccionar vuelo II. Breve Tour por UML
  • 38. Diagrama Componentes (Dependencias) Control y Análisis Comment Acceso a BD Comment Rutinas de Coneccion Comment Interfaz de Terminal Comment Gestión de Cuentas Comment II. Breve Tour por UML
  • 39. Diagrama de Despliegue Punto de Venta Servidor Central Terminal de Consulta Gestión de Cuentas Comment Interfaz de Terminal Comment Rutinas de Coneccion Comment Rutinas de Coneccion Comment Interfaz de Terminal Comment Rutinas de Coneccion Comment Acceso a BD Comment Control y Análisis Comment II. Breve Tour por UML
  • 40. Resumen  UML define una notación que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos  El 80 por ciento de la mayoría de los problemas pueden modelarse usando alrededor del 20 por ciento de UML-- Grady Booch II. Breve Tour por UML
  • 41. El Paradigma Orientado a Objeto usando UML
  • 42. ¿Por qué la Orientación a Objetos?  Proximidad de los conceptos de modelado respecto de las entidades del mundo real – Mejora captura y validación de requisitos – Acerca el “espacio del problema” y el “espacio de la solución”  Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema – Facilita construcción, mantenimiento y reutilización III. El Paradigma Orientado a Objeto
  • 43. ¿Por qué la Orientación a Objetos?  Conceptos comunes de modelado durante el análisis, diseño e implementación – Facilita la transición entre distintas fases – Favorece el desarrollo iterativo del sistema – Disipa la barrera entre el “qué” y el “cómo”  Sin embargo, existen problemas ... III. El Paradigma Orientado a Objeto
  • 44. “...Los conceptos básicos de la OO se conocen desde hace dos décadas, pero su aceptación todavía no está tan extendida como los beneficios que esta tecnología puede sugerir” “...La mayoría de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretendía. Esta práctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados” --Wolfgang Strigel Problemas en OO III. El Paradigma Orientado a Objeto
  • 45.  Un objeto contiene datos y operaciones que operan sobre los datos, pero ...  Podemos distinguir dos tipos de objetos degenerados: – Un objeto sin datos (que sería lo mismo que una biblioteca de funciones) – Un objeto sin “operaciones”, con sólo operaciones del tipo crear, recuperar, actualizar y borrar (que se correspondería con las estructuras de datos tradicionales)  Un sistema construido con objetos degenerados no es un sistema verdaderamente orientado a objetos “Las aplicaciones de gestión están constituidas mayoritariamente por objetos degenerados” … Problemas en OO III. El Paradigma Orientado a Objeto
  • 46. Reflexiones respecto de Situación Actual de Desarrollo de SI Análisis Diseño Enfoque Estructurado Enfoque OO Diagramas de Casos de Uso Diagramas de Actividad Diagramas de Secuencia Diagramas de Colaboración d DFDs Diagrama de Clases Diagrama de Estados Diagramas de Actividad DEs Modelo Relacional !! Implementación Entornos de Programación Visual Bases de Datos (Objeto-) Relacionales Modelo Relacional E-R III. El Paradigma Orientado a Objeto

Notas del editor

  1. Documento “OMG Object Management Group --&amp;gt; Unified Language Specification”, (versión 1.3, 808 páginas, 8 de Julio de 1999 y versión 1.4, 582 páginas, 1 de Noviembre de 2000) Resumen Semántica (185 páginas) Guía de Notación (173 páginas) Profiles Estándares Definición de Interfaz CORBAfacility Especificación DTD de XMI Especificación del Object Constraint Language Elementos Estándar de UML Glosario de Modelado del OMG
  2. &amp;lt;number&amp;gt;
  3. &amp;lt;number&amp;gt; OOPSLA’95 Object-Oriented Programming Systems Languages and Applications
  4. &amp;lt;number&amp;gt;
  5. &amp;lt;number&amp;gt;
  6. &amp;lt;number&amp;gt;
  7. &amp;lt;number&amp;gt; Stereotype = Estereotipo Constraint = Restricción de Integridad Tagged Values = Valores Etiquetados, es un par (nombre propiedad, valor) Los mecanismos de extensión pueden usarse para: Añadir nuevos elementos de modelado sin crear nuevos símbolos. En este caso el símbolo existente estará etiquetado con el correspondiente estereotipo. Esto permite que el metamodelo de UML no se vea alterado. Definir extensiones necesarias en un proceso de desarrollo o lenguaje de implementación específico. Asignar una semántica particular o información no semántica a elementos de modelado. Las restricciones de integridad pueden escribirse usando un lenguaje específico para representar restricciones (tal como OCL, Object Constraint Language, que expresa restricciones mediante fórmulas bien formadas, desarrollado por IBM) u otros lenguajes (por ejemplo, un determinado lenguaje de programación) o incluso en lenguaje natural. Tipos de enfoques: no-formales, semi-formales y formales Las principales mejoras al utilizar métodos formales son: Mayor rigor en la especificación Mejores condiciones para realizar la verificación y validación Mejores condiciones para automatización de procesos para la generación automática de prototipos y/o código final
  8. &amp;lt;number&amp;gt;
  9. &amp;lt;number&amp;gt;
  10. &amp;lt;number&amp;gt;
  11. &amp;lt;number&amp;gt;
  12. &amp;lt;number&amp;gt; El Diagrama de Objetos en realidad no se provee como un tipo de diagrama separado. En Diagramas de Secuencia, Diagramas de Colaboración y en Diagramas de Actividad se modelan objetos. He visto en algunos libros referirse a Diagramas de Paquetes, Diagramas de Subsistemas y Diagramas de Modelos. Sin embargo, éstos corresponden a casos particulares de los diagramas arriba mencionados, cuando en éstos sólo se incluye paquetes (o subsistemas, o modelos, respectivamente).
  13. &amp;lt;number&amp;gt;
  14. &amp;lt;number&amp;gt;
  15. &amp;lt;number&amp;gt;
  16. &amp;lt;number&amp;gt; Paquete--&amp;gt; es la parte de UML que se encarga de modelar el procedimiento de un sistema Colaboracione Casos de Uso Maquinas de Estado
  17. &amp;lt;number&amp;gt;
  18. &amp;lt;number&amp;gt;
  19. &amp;lt;number&amp;gt;
  20. &amp;lt;number&amp;gt; Cada Caso de Uso puede estar definido por: texto que lo describe secuencia de pasos (flujo de eventos) ejecutados dentro del caso de uso precondiciones y postcondiciones para que el caso de uso comience o termine mezclando las anteriores
  21. &amp;lt;number&amp;gt; En los D. de Casos de Uso no existe el concepto de “explosión” tal como se tiene en los DFDs (Diagramas de Flujo de Datos). La funcionalidad representada por un caso de uso es “atómica” (aunque en Rational Rose 98 a un caso de uso se le puede asociar un nuevo D. de Casos de Uso!!). En UML el concepto de paquete permite organizar de manera jerárquica un modelo, y en este caso, un paquete puede tener asociado un nuevo diagrama.
  22. &amp;lt;number&amp;gt;
  23. &amp;lt;number&amp;gt; En UML 1.3 se disponen de tres tipos de relaciones entre casos de uso, representadas por un símbolo de generalización desde un caso de uso a otro. Los tipos de relación son: Inclusión (con el estereotipo &amp;lt;&amp;lt;include&amp;gt;&amp;gt;), Extensión (con el estereotipo &amp;lt;&amp;lt;extend&amp;gt;&amp;gt;) y Generalización (sin estereotipo). En UML 1.3 se utiliza el estereotipo &amp;lt;&amp;lt;include&amp;gt;&amp;gt; en lugar de &amp;lt;&amp;lt;uses&amp;gt;&amp;gt;. Más adelante, cuando se entre en detalles de los D. de Casos de Uso se abordarán con más detalle las relaciones entre casos de uso.
  24. &amp;lt;number&amp;gt;
  25. &amp;lt;number&amp;gt; Los Diagramas de Secuencia y de Colaboración son usados para describir gráficamente un caso de uso o un escenario Un Diagrama de Secuencia muestra los objetos de un escenario mediante líneas verticales y los mensajes entre objetos como flechas conectando objetos Los mensajes son dibujados cronológicamente desde arriba hacia abajo Los rectángulos en las líneas verticales representan los periodos de actividad de los objetos.
  26. &amp;lt;number&amp;gt; El Diagrama de Colaboración modela la interacción entre los objetos de un Caso de Uso Los objetos están conectados por enlaces (links) en los cuales se representan los mensajes enviados acompañados de una flecha que indica su dirección El Diagrama de Colaboración ofrece una mejor visión del escenario cuando el analista está intentando comprender la participación de un objeto en el sistema
  27. &amp;lt;number&amp;gt;
  28. &amp;lt;number&amp;gt;
  29. &amp;lt;number&amp;gt;
  30. &amp;lt;number&amp;gt;
  31. &amp;lt;number&amp;gt;
  32. &amp;lt;number&amp;gt;
  33. &amp;lt;number&amp;gt; El Diagrama de Estados modela el comportamiento de una parte del sistema Típicamente se elabora un diagrama de Estados para cada clase que tenga un comportamiento significativo El comportamiento es modelado en términos del estado en el cual se encuentra el objeto, qué acciones se ejecutan en cada estado y cuál es el estado al que transita después de un determinado evento
  34. &amp;lt;number&amp;gt; Caso especial de Diagrama de Estados donde: Todos (o la mayoría de) los estados son estados de acción Todas (la mayoría de) las transiciones son “disparadas” como consecuencia de la finalización de la la acción. El Diagrama de Actividades puede especificar: El comportamiento de los objetos de una clase La lógica de una operación (método) Parte o toda la descripción de un Caso de uso La descripción de un Flujo de Trabajo
  35. &amp;lt;number&amp;gt;
  36. &amp;lt;number&amp;gt; Un diagrama de Componentes permite modelar la estructura del software y la dependencia entre componentes Un componente es un grupo de clases que trabajan estrechamente. Los componentes pueden corresponder código fuente, binario o ejecutable Una relación de dependencia indica que un componente utiliza otro, por lo cual depende de él
  37. &amp;lt;number&amp;gt; El Diagrama de Distribución modela la distribución en tiempo de ejecución de los elementos de procesamiento y componentes de software, junto a los procesos y objetos asociados En el Diagrama de Distribución se modelan los nodos y la comunicación entre ellos Cada nodo puede contener instancias de componentes
  38. &amp;lt;number&amp;gt;
  39. &amp;lt;number&amp;gt;
  40. &amp;lt;number&amp;gt;
  41. &amp;lt;number&amp;gt;
  42. &amp;lt;number&amp;gt; Para mayores detalles respecto de estos problemas consultar: “Real-Life Object-Oriented Systems”, Soren Lauesen, IEEE Software March/April 1998.
  43. &amp;lt;number&amp;gt;