UML Unified Modeling Language Lenguage Unificado...

10
1 Área de Ingeniería Telemática 1 Universidad de Sevilla UML UML (Unified Modeling Language) Lenguage Unificado de Modelado Antonio J. Sierra Área de Ingeniería Telemática 2 Universidad de Sevilla UML Índice Historia Introducción Objetivos del modelo Críticas Modelo Conceptual de UML Clases Diagrama de Clases

Transcript of UML Unified Modeling Language Lenguage Unificado...

1

Área de Ingeniería Telemática

1

Universidad de Sevilla

UML

UML (Unified Modeling Language)

Lenguage Unificado de Modelado

Antonio J. Sierra

Área de Ingeniería Telemática

2

Universidad de Sevilla

UML

Índice

Historia

Introducción

Objetivos del modelo

Críticas

Modelo Conceptual de UML

Clases

Diagrama de Clases

2

Área de Ingeniería Telemática

3

Universidad de Sevilla

UML

Historia (I)

Entre mitad de los setenta y finales de los ochenta.

De 10 a 50 métodos orientados a objetos (1989-1994)

No cubrían las necesidades completamente.

De la experiencia de estos:

El método Booch,

El método OOSE (Object-Oriented Software Engineering) de Jacobson

El método OMT (Object Modeling Technique) Rumbaugh

Área de Ingeniería Telemática

4

Universidad de Sevilla

UML

Historia

3

Área de Ingeniería Telemática

5

Universidad de Sevilla

UML

Introducción

Unified Modeling Language (UML) es un lenguaje de modelado de propósito general estándarizado en el campo de la ingeniería software.

UML incluye un conjunto de técnicas de notación gráfica para crear modelos abstractos de sistemas específicos, referidos como modelo UML.

UML es un lenguaje gráfico de modelado de sistemas de software más conocido y utilizado en la actualidad;

Respaldado por el OMG (Object Management Group).

Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema de software.

UML ofrece un estándar para describir un "plano" del sistema (modelo):

incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema,

y aspectos concretos como expresiones de lenguajes de programación,

esquemas de bases de datos y componentes de software reutilizables.

Área de Ingeniería Telemática

6

Universidad de Sevilla

UML

Introducción

UML es un "lenguaje" para especificar y no para describir métodos o procesos.

Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir.

Es el lenguaje en el que está descrito el modelo.

Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como el Proceso Unificado Racional o RUP), pero no especifica en sí mismo qué metodología o proceso usar.

4

Área de Ingeniería Telemática

7

Universidad de Sevilla

UML

Introducción

UML no puede compararse con la programación estructurada, pues UML significa (Lengua de Modelación Unificada),

UML no es un programa, solo se representa en forma de diagrama la realidad de una utilización en un requerimiento.

La programación estructurada, es una forma de programar como lo es la orientación a objetos,

La orientación a objetos viene siendo un complemento perfecto de UML, pero no por eso se toma UML sólo para lenguajes orientados a objetos

Área de Ingeniería Telemática

8

Universidad de Sevilla

UML

Objetivos del modelo

Visualizar como es o queremos que sea un sistema.

Especificar la estructura y el comportamiento.

Proporcionar plantillas que nos guíen en la construcción de un sistema.

Documentar las decisiones que hemos adoptado.

5

Área de Ingeniería Telemática

9

Universidad de Sevilla

UML

Críticas a UML

A pesar de estar ampliamente reconocido y utilizado, UML siempre ha sido muy criticado por su carencia de una semántica precisa, lo que ha dado lugar a que la interpretación de un modelo UML no pueda ser objetiva.

Otro problema de UML es que no se presta con facilidad al diseño de sistemas distribuidos.

En tales sistemas cobran importancia factores como transmisión, serialización, persistencia, etc. UML no cuenta con maneras de describir tales factores.

No se puede, por ejemplo, usar UML para señalar que un objeto es persistente o remoto, o que existe en un servidor que corre continuamente y que es compartido entre varias instancias de ejecución del sistema analizado. Sin embargo, UML si acepta la creación de nuestros propios componentes para este tipo de modelado.

Área de Ingeniería Telemática

10

Universidad de Sevilla

UML

Modelo Conceptual de UML

Bloques básicos de construcción de UML

Elementos

Relaciones

Diagramas

Reglas de UML

Mecanismos comunes

Especificaciones

Adornos

Divisiones comunes

Mecanismos de extensibilidad

6

Área de Ingeniería Telemática

11

Universidad de Sevilla

UML

Bloques básicos de construcción de UML

Elementos

Elementos estructurales

Elementos de comportamiento

Elementos de agrupación

Elementos de anotación

Relaciones

Dependencia

Asociación

Generación

Realización

Diagramas

clases

objetos

casos de uso

de secuencia

de colaboración

de estados

de actividades

de componentes

de despliegue

Área de Ingeniería Telemática

12

Universidad de Sevilla

UML

Elementos estructurales

Clase

Interfaz

Colaboración

Caso de Uso

Clase activa

Componente

Nodo

7

Área de Ingeniería Telemática

13

Universidad de Sevilla

UML

Elementos Estructurales: Las clases

Ventana

+origen

#altura : Float

-esMaestra : Boolean = false

abrir()

cerrar()

mover()

dibujar()

ponerAlarma(t:Temperatura)

valor() : Temperatura

Nombre

(abstracta

en cursiva)

atributos

operaciones

java::awt::Rectangle

Nombre de

Camino de clases

Nombres

Simples de clases

Cliente

Responsabilidades

-- descriptivo de lo que

realiza responsabilidades

público

protegido

privado

Área de Ingeniería Telemática

14

Universidad de Sevilla

UML

Atributos

[visibilidad] nombre

{multiplicidad}[:tipo]

[=valor inicial] [{propiedades}]

Propiedades predefinidas

changeable No hay restricciones para modificar el valor del atributo

addOnly Una vez creado un valor no puede ser eliminado o modificado (con multiplicidad mayor que 1)

frozen El valor del atributo no se puede modificar tras inicializar el objeto

8

Área de Ingeniería Telemática

15

Universidad de Sevilla

UML

Operaciones

[visibilidad] nombre [(lista de parámetros)][:tipo de retorno] [{propiedades}]

En la lista por parámetros

[dirección] nombre : tipo [= valor por defecto]

dirección puede ser in para parámetro de entrada (no modificable), out para salida (modificable) e inout para entrada (modificable).

propiedades puede ser

leaf no puede ser polimórfica

isQuery sin efectos laterales

sequential los invocadores deben coordinarse para que en el objeto sólo haya un único flujo

guarded se puede invocar exactamente una operación a un mismo tiempo sobre el objeto

concurrent operación concurrente

Área de Ingeniería Telemática

16

Universidad de Sevilla

UML

Ejemplos

Cliente 3

nombre

dirección

teléfono

fechaNacimiento

Factura

Almacén

Icono

{root}

origen:Punto

Mostrar()

Transacción

acciones

tuvoExito()

deshacer()

Producto

id

nombre

precio

ubicación

Envio

Responsabilidades

--Mantener información

relativa a productos enviados

Botón

{leaf}

Mostrar()

9

Área de Ingeniería Telemática

17

Universidad de Sevilla

UML

Interacción, mensaje intercambiados entre un conjunto de objetos

Elementos de comportamiento

Máquina de estados, secuencia de estados por los que pasa un objeto, una interacción durante su vida en respuesta a eventos

Esperando dibujar

Área de Ingeniería Telemática

18

Universidad de Sevilla

UML

Elementos de agrupación, y Elementos de anotación

Los elementos de agrupación, son partes organizativas

Los elementos de anotación, son partes explicativas

Reglas del negocio

Paquetes

Devuelve una

copia del objeto

receptor

Notas

10

Área de Ingeniería Telemática

19

Universidad de Sevilla

UML

Relación en UML

Dependencia, es una relación semántica entre dos elementos, en la cual un cambio a un elemento puede afectar a la semántica del otro

Asociación, relación estructural que describe un conjunto de enlaces, los cuales son conexiones entre objetos

Generalización, relación de especialización/generalización en la cual los objetos del elemento especializado (hijo) puede sustituir a los objetos del elemento general (padre)

Realización, relación semántica entre clasificadores, en donde un clasificador especifica un contrato que otro clasificador garantiza que cumplirá.

0..1 *

patrón empleado

Área de Ingeniería Telemática

20

Universidad de Sevilla

UML

Diagrama de Clases