SlideShare una empresa de Scribd logo
Conceptos Básicos sobre UML Hermenegildo Romero © 2009 DATABASE TEAM  http:// www . db -team. com
INDICE Introducción a UML Notación UML Conceptos Básicos sobre UML
INTRODUCCIÓN A UML
Introducción a UML UML es una especificación de notación orientada a objetos. Se basa en las anteriores especificaciones Booch (BOOCH), Rumbaugh (OMT) y Jacobson (OOSE).  Divide cada proyecto en un número de diagramas que representan las diferentes vistas del proyecto. Estos diagramas juntos son los que representan la arquitectura del proyecto.
Introducción a UML UML es un lenguaje de modelado no una metodología. El  lenguaje de modelado  es la notación gráfica que utilizan los métodos para expresar un diseño. UML es una notación estándar que describe un  proceso , pero no estandariza la forma en la cual se produce esa descripción.
Introducción a UML Es importante comprender que UML no prescribe una manera especifica de cómo debe ser usado en un proyecto,  no hay una manera correcta de usar UML .
Introducción a UML Un lenguaje de modelado : posee una notación que son los símbolos utilizados en el lenguaje (sintaxis). También posee una serie de reglas que gobiernan ese lenguaje. Las reglas son: Sintácticas Cómo se muestran los símbolos y cómo se combinan. Semánticas Nos indican lo que significa cada uno de los símbolos y como se interpreta a nivel individual o en el contexto con otros símbolos. Pragmáticas Describen cómo usar el lenguaje. La intención o guía maestra de cómo usar los símbolos.
Introducción a UML UML : En UML los símbolos son geométricos, como rectángulos, círculos y líneas. Tiene Una serie de reglas sintácticas y semánticas bien definidas. UML no tiene reglas pragmáticas, esto es reglas específicas de cómo usar UML.
Introducción a UML En UML se comienza por la funcionalidad básica del sistema (estereotipos, restricciones). Este modelado básico responde a preguntas como: ¿Como interactúan entre sí los diferentes actores del sistema? ¿qué actividades son parte de su trabajo? ¿cuáles son los objetivos de su trabajo? ¿qué personas, sistemas, o recursos están involucrados que no sean actores del sistema? ¿qué reglas gobiernan sus actividades y estructuras? ¿Hay alguna manera en la que los actores puedan realizar su trabajo de manera más eficiente?
Introducción a UML UML tiene nueve diagramas predefinidos: ESTÁTICOS : Diagrama de clases (Class diagram) Describe la estructura del sistema, las estructuras están definidas a partir de clases y relaciones.  Las clases pueden representar y estructurar información, productos, documentos u organizaciones. Diagrama de Objetos (Object Diagram) Expresa las posibles combinaciones de objetos de un diagrama de clases especifico.
Introducción a UML Diagrama de casos de uso (use-case diagram) Ilustra las relaciones entre casos de uso. Cada caso de uso, generalmente definido en texto plano, describe una parte de la funcionalidad total de un sistema. Diagrama de componentes (component diagram) Un tipo especial de diagrama de clases usado para describir los componentes de un sistema de software. Diagrama de despliegue (deployment diagram) Un tipo especial de diagrama de clases usado para reducir los diagramas de clases y componentes de un gran sistema.
Introducción a UML DINÁMICOS : Diagrama de estados (StateChart diagram) Expresa los posibles estados de una clase. Diagrama de Actividad (Activity Diagram) Describe las actividades y acciones que tienen lugar en un sistema. Diagrama de secuencias (Sequence Diagram) Muestra una o varias secuencias de mensajes enviados entre un conjunto de objetos. Diagrama de colaboración (collaboration diagram) Describe la colaboración entre un conjunto de objetos.
Introducción a UML Estos diagramas capturan los tres aspectos más importantes de un sistema: La estructura La funcionalidad El comportamiento Debido a la capacidad única de adaptación y extensión, es posible añadir nuevos diagramas y elementos a UML, convirtiéndole en un lenguaje flexible que puede ser usado en muchas situaciones diferentes.
Introducción a UML Diagramas recomendados... Aplicación monopuesto Diagrama de casos de uso Diagrama de clases Diagrama de interacción (secuencia o colaboración) Aplicación monopuesto, con entrada de eventos 1+2+3+Diagrama de estados Aplicación cliente-servidor 4 + Diagrama de despliegue y diagrama de componentes. Aplicación distribuida compleja Todos
NOTACION UML
Notación UML UML es una consolidación de muchas de las notaciones y conceptos más usadas orientados a objetos. Empezó como una consolidación del trabajo de Grade Booch, James Rumbaugh, e Ivar Jacobson, creadores de tres de las metodologías orientadas a objetos más populares.  En 1996, el Object Management Group (OMG), un pilar estándar para la comunidad del diseño orientado a objetos, publicó una petición con propósito de un metamodelo orientado a objetos de semántica y notación estándares.
Notación UML UML, en su versión 1.0, fue propuesto como una respuesta a esta petición en enero de 1997. Durante el transcurso de 1997, los seis promotores de las propuestas, unieron su trabajo y presentaron al OMG un documento revisado de UML, llamado UML versión 1.1. Este documento fue aprobado por el OMG en Noviembre de 1997. El OMG llama a este documento OMG UML versión 1.1. Actualmente la versión oficial es la 1.5, y se está trabajando en la 2.0.
Notación UML Inconvenientes: UML no es una metodología. Además, muchas organizaciones han desarrollado sus propias metodologías internas, usando diferentes diagramas y técnicas con orígenes varios. Ejemplos son el método Catalyst por Computer Sciences Corporation (CSC) o el Worlwide Solution Design and Delivery Method (WSDDM) por IBM.
Notación UML Modelos y Diagramas de UML:
Notación UML Diagrama de Casos de Uso El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactúan (operaciones o casos de uso).  Un diagrama de casos de uso consta de los siguientes elementos:  Actor.  Casos de Uso.  Relaciones de Uso, Herencia y Comunicación.
Notación UML Diagrama de Casos de Uso Actor :  Una definición previa, es que un  Actor  es un rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra  rol , pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.  Como ejemplo a la definición anterior, tenemos el caso de un sistema de ventas en que el rol de Vendedor con respecto al sistema puede ser realizado por un Vendedor o bien por el Jefe de Local.
Notación UML Diagrama de Casos de Uso Caso de Uso :  Es una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.
Notación UML Diagrama de Casos de Uso Relaciones :  Asociación   Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple
Notación UML Diagrama de Casos de Uso Relaciones : Dependencia o Instanciación   Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada. Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su estereotipo, que puede ser de  Uso  (<<include>>) o de  Extensión  (<<extends>>). extends : Se recomienda utilizar cuando un caso de uso es similar a otro (extiende sus funcionalidades). uses : Se recomienda utilizar cuando se tiene un conjunto de características que son similares en más de un caso de uso y no se desea mantener copiada la descripción de la característica.
Notación UML Diagrama de Casos de Uso Relaciones : Generalización   Denota heredar las funcionalidades del caso de uso origen. Este tipo de relación esta orientado exclusivamente para casos de uso (y no para actores).  De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelado de clases, en donde esta la duda clásica de  usar  o  heredar .
Notación UML Diagrama de Casos de Uso Ejemplo:   Caso de una Máquina de reciclaje:  Sistema que controla una máquina de reciclaje de botellas, tarros y vasos. El sistema debe controlar y/o aceptar:  Registrar el número de items ingresados.  Imprimir un recibo cuando el usuario lo solicita:  Describe lo depositado  El valor de cada item  Total
Notación UML Diagrama de Casos de Uso Ejemplo:   Caso de una Máquina de reciclaje: El usuario/cliente presiona el botón de comienzo  Existe un operador que desea saber lo siguiente:  Cuantos items han sido retornados en el día.  Al final de cada día el operador solicita un resumen de todo lo depositado en el día.  El operador debe además poder cambiar:  Información asociada a items.  Dar una alarma en el caso de que:  el Item se atora.  No hay más papel.
Notación UML Diagrama de Casos de Uso Ejemplo:   Caso de una Máquina de reciclaje: Como una primera aproximación identificamos a los actores que interactúan con el sistema
Notación UML Diagrama de Casos de Uso Ejemplo:   Caso de una Máquina de reciclaje: Luego, tenemos que un Cliente puede Depositar Ítems y un Operador puede cambiar la información de un Ítem o bien puede Imprimir un informe:
Notación UML Diagrama de Casos de Uso Ejemplo:   Caso de una Máquina de reciclaje: Además podemos notar que un ítem puede ser una Botella, un Tarro o una Jarra vaso
Notación UML Diagrama de Casos de Uso Ejemplo:   Caso de una Máquina de reciclaje: Otro aspecto es la impresión de comprobantes, que puede ser realizada después de depositar algún item por un cliente o bien puede ser realizada a petición de un operador.
Notación UML Diagrama de Casos de Uso Ejemplo:   Caso de una Máquina de reciclaje: Entonces, el diseño completo del diagrama Use Case es:
Notación UML Diagrama de Clases Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenido. Un diagrama de clases esta compuesto por los siguientes elementos:  Clase : atributos, métodos y visibilidad.  Relaciones : Herencia, Composición, Agregación, Asociación y Uso.  Interfaces:  Métodos con funcionalidades generales que implementarán varias clases del modelo. Paquetes:  Subconjunto del modelo que va a contener clases, objetos, relaciones etc.
Notación UML Elementos  Clase  Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).  En UML, una clase es representada por un rectángulo que posee tres divisiones:
Notación UML Superior : Contiene el nombre de la Clase  Intermedio : Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden ser private, protected o public).  Inferior : Contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto con su entorno (dependiendo de la visibilidad: private, protected o public).
Notación UML Ejemplo:  Una Cuenta Corriente que posee como característica:  Balance  Puede realizar las operaciones de:  Depositar  Girar  y Balance  El diseño asociado es:
Notación UML [visibilidad] nombre [multiplicidad] [:tipo] [=valor inicial] [{propiedades}] Atributos:  Los atributos o características de una Clase pueden ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:  public  (+,  ): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.  private  (-,  ): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos pueden acceder).  protected  (#,  ): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accedido por métodos de la clase además de las subclases que se deriven (ver herencia).  Propiedades de los atributos :   Changeable, AddOnly, Frozen.
Notación UML [visibilidad] nombre [(lista de parámetros)] [:tipo retorno] [{propiedades}] Métodos:  Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, éstos pueden tener las características:  public  (+,  ): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados.  private  (-,  ): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden accesar).  protected  (#,  ): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven (ver herencia).  Propiedades de los métodos : IsQuery, Sequential, Guarded, Concurrent.
Notación UML Relaciones entre Clases:  Ahora una vez definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o más clases (cada uno con características y objetivos diferentes).  Antes es necesario explicar el concepto de cardinalidad de relaciones: En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relación y éstas pueden ser:  uno o muchos : 1..* (1..n)  0 o muchos : 0..* (0..n)  número fijo : m (m denota el número).
Notación UML Asociación :  La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre si. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.
Notación UML Asociación Especifica que los objetos pertenecientes a una clase dada se conectan a los objetos de otra. Son análogas a las relaciones que se dan en el modelo entidad/relación
Notación UML Asociación : Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente.
Notación UML Dependencia o Instanciación (uso) : Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada.  El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación grafica que instancia una ventana (la creación del Objeto Ventana esta condicionado a la instanciación proveniente desde el objeto Aplicación)
Notación UML Dependencia o Instanciación (uso) : Cabe destacar que el objeto creado (en este caso la Ventana gráfica) no se almacena dentro del objeto que lo crea (en este caso la Aplicación).
Notación UML Estereotipos de relación clase-objeto: Bind Derive Friend InstanceOf Instantiate Powertype Refine
Notación UML Agregación :  Para modelar objetos complejos, no bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades:  Por Valor : Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada  Composición  (el Objeto base se construye a partir del objeto incluido, es decir, es &quot;parte/todo&quot;).  Por Referencia : Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada  Agregación  (el objeto base utiliza al incluido para su funcionamiento).
Notación UML Agregación Un Almacén posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).  Cuando se destruye el Objeto Almacén también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.  La composición (por Valor) se destaca por un rombo relleno.  La agregación (por Referencia) se destaca por un rombo transparente.  La flecha en este tipo de relación indica la navegabilidad del objeto referenciado. Cuando no existe este tipo de particularidad la flecha se elimina.
Notación UML Herencia (Especialización/Generalización) Indica que una subclase hereda los métodos y atributos especificados por una Super Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Super Clase (public y protected).
Notación UML Herencia (Especialización/Generalización)
Notación UML Estereotipos de generalización: Implementation Restricciones de generalización Complete Incomplete Disjoint Overlapping
Notación UML Ejemplo de relaciones:
Notación UML Ejemplo de relaciones:
Notación UML Casos Particulares Clase Abstracta :  Una clase abstracta se denota con el nombre de la clase y de los métodos con letra &quot;itálica&quot;. Esto indica que la clase definida no puede ser instanciada pues posee métodos abstractos (aún no han sido definidos, es decir, sin implementación). La única forma de utilizarla es definiendo subclases, que implementan los métodos abstractos definidos.
Notación UML Casos Particulares Clase parametrizada :  Una clase parametrizada se denota con un subcuadro en el extremo superior de la clase, en donde se especifican los parámetros que deben ser pasados a la clase para que esta pueda ser instanciada. El ejemplo más típico es el caso de un Diccionario en donde una llave o palabra tiene asociado un significado, pero en este caso las llaves y elementos pueden ser genéricos. La genericidad puede venir dada de un Template (como en el caso de C++) o bien de alguna estructura predefinida (especialización a través de clases).  En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependerán exclusivamente de la implementación que se le quiera dar.
Notación UML Diagramas de interacción: secuencia  colaboración
Notación UML Diagrama de Secuencia   El diagrama de interacción, representa la forma en como un Cliente (Actor) u Objetos (Clases) se comunican entre si en petición a un evento. Esto implica recorrer toda la secuencia de llamadas, de donde se obtienen las responsabilidades claramente.  Dicho diagrama puede ser obtenido de dos partes, desde el Diagrama Estático de Clases o el de Casos de Uso (son diferentes).  Los componentes de un diagrama de interacción son:  Un Objeto o Actor .  Mensaje de un objeto a otro objeto .  Mensaje de un objeto a si mismo .
Notación UML Diagrama de Secuencia   Objeto/Actor :  El rectángulo representa una instancia de un Objeto en particular, y la línea punteada representa las llamadas a métodos del objeto.
Notación UML Diagrama de Secuencia   Objeto/Actor : Puede ser de dos tipos: Transitorio: El ciclo de vida del objeto coincide con el ciclo de vida del objeto contenedor. Persistente: El ciclo de vida del objeto no coincide con el ciclo de vida del objeto contenedor.
Notación UML Diagrama de Secuencia Mensaje a Otro Objeto :  Se representa por una flecha entre un objeto y otro, representa la llamada de un método (operación) de un objeto en particular Activación
Notación UML Diagrama de Secuencia Mensaje al Mismo Objeto :  No solo llamadas a métodos de objetos externos pueden realizarse, también es posible visualizar llamadas a métodos desde el mismo objeto en estudio.
Notación UML Diagrama de Secuencia Tipos de Mensaje  : Simple: Un objeto envia un mensaje a otro que se considera objeto pasivo. Síncrono: El cliente envía un mensaje y espera a que el servidor lo acepte. Si el servidor no lo acepta inmediatamente el cliente continua en espera. Abandono (Balking): El cliente envía un mensaje al servidor, si el servidor está preparado para aceptarlo. El cliente abandona el envío si detecta que no está preparado. Time-Out: El cliente abandona el envío del mensaje si se produce un time-out. Asíncrono: El cliente envía un mensaje al servidor y continúa ejecutando su código mientras espera respuesta del servidor.
Notación UML Diagrama de Secuencia Ejemplo   En el presente ejemplo, presentamos el diagrama de interacción proveniente del siguiente modelo estático:
Notación UML Diagrama de Secuencia Ejemplo Aquí se representa una aplicación que posee una Ventana gráfica, y ésta a su vez posee internamente un botón.  El diagrama de interacción para dicho modelo sería: En donde se hacen notar las sucesivas llamadas a Draw() (entre objetos) y la llamada a Paint() por el objeto Botón
Notación UML Diagrama de colaboración También representa al igual que el de secuencia las interacciones que se producen entre los objetos. La diferencia con los de secuencia es que el de colaboración representa la interacción mas centrado desde el punto de vista de la relación entre los objetos.
Notación UML Diagrama de colaboración Representación de los objetos Una única instancia de la clase Múltiples instancias de clase Clase
Notación UML Diagrama de colaboración Mensajes No está permitido crear un enlace “link” si no existe una relación entre las clases de tipo asociación, agregación o composición. Los diferentes mensajes deben coincidir con métodos de las correspondientes clases.
Notación UML Diagrama de colaboración Mensajes Los enlaces representan también la relación cliente-servidor entre los objetos. Cliente: El que envía el mensaje Servidor: El que recibe el mensaje A partir de esta relación puede definirse el tipo de visibilidad que existe entre los objetos: Visibilidad es la capacidad y el modo en que un objeto accede a otro en su relación cliente-servidor.
Notación UML Diagrama de colaboración Mensajes Tipos de visibilidad: Visibilidad a nivel de  campo : El servidor es uno de los atributos del cliente. Visibilidad a nivel de  parámetro : El servidor es accesible al cliente por que el servidor es un parámetro de alguno de los métodos del cliente. Visibilidad  local : El servidor es una variable local de alguno de los métodos del cliente. Visibilidad  global : El servidor es una variable global a alguno de los métodos del cliente.
Notación UML Diagrama de colaboración Mensajes Tipos de visibilidad
Notación UML Diagrama de Estados El diagrama de estados refleja: El estado de un objeto en un momento del tiempo. Su comportamiento. Transición entre estados El diagrama de estados permite la representación del ciclo de vida de los objetos. Los diagramas de estados contienen: Los estados Las transiciones Los eventos Las operaciones, acciones y actividades
Notación UML Diagrama de Estados Estados Representa al objeto en un momento del tiempo. Estado genérico Estado inicial Estado final
Notación UML Diagrama de Estados Transiciones Son las conexiones unidireccionales que unen los estados. El paso de un estado a otro se produce mediante un  evento . El paso de un estado a otro se produce instantáneamente ya que los objetos deben estar siempre en un estado conocido.
Notación UML Diagrama de Estados Transiciones Se pueden producir transiciones en las que el estado de origen y destino sean el mismo.
Notación UML Diagrama de Estados Guardas Representan condiciones de tipo verdadero/falso que establecen si se desencadena el evento o no. Si es verdadero el evento se ejecuta Si es falso el evento no se ejecuta
Notación UML Diagrama de Estados Acciones y Actividades Los métodos que definimos en el diagrama de clases se representan en el diagrama de estados mediante acciones y actividades Las acciones se corresponden con métodos declarados en la clase del objeto destinatario del evento. La acción tiene acceso por tanto a los parámetros del evento y a los atributos del objeto.
Notación UML Diagrama de Estados Acciones y Actividades Los estados tienen la posibilidad de contener acciones a su vez. Estas se ejecutarán al entrar o al salir del estado, o cuando se ejecuta un evento cuando el objeto está en el estado representado. Acciones de entrada (entry) Acciones de salida (exit) Acciones sobre eventos (on) (event undefined)
Notación UML Diagrama de Estados Acciones y Actividades Actividades Las actividades se corresponden también con métodos de la clase, pero a diferencia de las acciones no presentan una ejecución instantánea. Las actividades pueden interrumpirse mientras que las acciones no. Se utiliza la palabra clave (do)
Notación UML Diagrama de Estados Generalización de estados Un estado puede contener varios subestados Los subestados heredan las variables de estado y las transiciones externas. Agregación de estados Representa la composición de un estado a partir de otros estados independientes. Implica la ejecución simultanea de los estados contenidos.
Notación UML Diagrama de Actividades El diagrama de actividades es una especialización del diagrama de estado. (Representa lo mismo que el de estados pero a menor nivel de detalle). Representa: Un método Un caso de uso Un proceso de negocio Las transiciones en el diagrama de actividades son automáticas, es decir: cuando una actividad termina se desencadena el paso a la siguiente actividad.
Notación UML Diagrama de Actividades Actividades Se representa por:
Notación UML Diagrama de Actividades Transiciones
Notación UML Diagrama de Actividades Condicionales
Notación UML Diagrama de Actividades Sincronización
Notación UML Diagrama de Actividades Swimlanes (pasillos de actividades)
Notación UML Diagrama de componentes Describen elementos físicos del sistema y sus relaciones. Se utilizan para representar los elementos del código que forman parte del sistema y sus relaciones en el entorno de realización. Es una vista física del sistema. Se utilizan en la fase de diseño para describir como se desarrollará el sistema y con que herramientas. Los elementos de un diagrama de componentes son: Los módulos Las relaciones entre módulos
Notación UML Diagrama de componentes Módulos o componentes Pueden representar archivos, librerias, ficheros de clase, paquetes, bases de datos, etc... El estereotipo del componente nos ayuda a reflejar el tipo de componente al que nos referimos
Notación UML Diagrama de componentes Módulos o componentes Representación de paquetes
Notación UML Diagrama de componentes Módulos o componentes Representación de programa principal
Notación UML Diagrama de componentes Módulos o componentes Representación de subprograma
Notación UML Diagrama de componentes Módulos o componentes Representación de paquete
Notación UML Diagrama de componentes Módulos o componentes Representación de tarea
Notación UML Diagrama de componentes Dependencias
Notación UML Diagrama de despliegue
Muchas Gracias Hermenegildo Romero Database Team [email_address] www.db-team.com

Más contenido relacionado

PPTX
UML - Analisis de Sistemas
PPTX
Uml lenguaje unificado de modelado
PPTX
casos de uso
PPTX
Los 13 diagramas UML y sus componentes
DOCX
Modelado Orientado a Objetos
PPT
Modelo entidad relacion
PPTX
Diagramas de objetos
PPT
Marifer diapositivas uml roisbel
UML - Analisis de Sistemas
Uml lenguaje unificado de modelado
casos de uso
Los 13 diagramas UML y sus componentes
Modelado Orientado a Objetos
Modelo entidad relacion
Diagramas de objetos
Marifer diapositivas uml roisbel

La actualidad más candente (20)

PPT
UML: CASOS DE USO
PPTX
Diagrama de clases
PPTX
UML - Casos de Uso y Diagramas de Clase
PPTX
Tipos de usuarios de base de datos diapositivas
PPT
Sql presentacion
PPTX
Esquema de fragmentación y Distribucion de BDD
PPTX
Analisis Y DiseñO Orientado A Objetos
PPS
Modelo objeto semántico
PPTX
Diagrama componentes
PPT
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
ODP
Uml pres
PPTX
Diagrama de casos de uso por niveles
PPTX
Uml (lenguaje unificado de modelado)
PPTX
Exposición Diagrama de Clases
PPTX
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
PDF
Modelo del dominio
PPTX
Sql DML Lenguaje de manipulación de datos
PPT
Modelos de dominio
PPT
Consultas en sql básico
UML: CASOS DE USO
Diagrama de clases
UML - Casos de Uso y Diagramas de Clase
Tipos de usuarios de base de datos diapositivas
Sql presentacion
Esquema de fragmentación y Distribucion de BDD
Analisis Y DiseñO Orientado A Objetos
Modelo objeto semántico
Diagrama componentes
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Uml pres
Diagrama de casos de uso por niveles
Uml (lenguaje unificado de modelado)
Exposición Diagrama de Clases
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Modelo del dominio
Sql DML Lenguaje de manipulación de datos
Modelos de dominio
Consultas en sql básico
Publicidad

Destacado (20)

PPT
UML - Lenguaje de Modelamiento Unificado
PPT
Introduccion a UML
PPT
Diagramas UML
PPTX
Modelo conceptual de uml
PDF
PPT
Curso Uml 2.1 Diagramas De Cu Y Clases
PPT
MODELAMIENTO VISUAL Y UML
DOC
Descripción de UML
DOCX
Que es UML
PDF
Gestión del talento en la hostelería
PDF
Mapa conceptual uml z1-
PDF
Capitulo01p01
PPT
Tm02 introducción a uml
PPTX
Proceso Unificado De Rational
PDF
Formularios en Drupal 8
PPT
Sesion 2 1 modelo del negocio
PPT
Desarrollo de aplicaciones con rup y uml
PPTX
UML(Lenguaje Unificado de Modelado)
PDF
El lenguaje de modelado unificado
UML - Lenguaje de Modelamiento Unificado
Introduccion a UML
Diagramas UML
Modelo conceptual de uml
Curso Uml 2.1 Diagramas De Cu Y Clases
MODELAMIENTO VISUAL Y UML
Descripción de UML
Que es UML
Gestión del talento en la hostelería
Mapa conceptual uml z1-
Capitulo01p01
Tm02 introducción a uml
Proceso Unificado De Rational
Formularios en Drupal 8
Sesion 2 1 modelo del negocio
Desarrollo de aplicaciones con rup y uml
UML(Lenguaje Unificado de Modelado)
El lenguaje de modelado unificado
Publicidad

Similar a Introducción a UML (20)

PPT
UML_Clase_01
PDF
Diagramas del uml
PDF
Diagramas de uml
PDF
Diagramas del uml
PDF
Diagramas del uml
PDF
Diagramas del uml
PDF
diagramas_del_uml.pdf
PDF
Diagrama uml ing software i promecys
PDF
Modelado sistemas UML
PDF
UML Java
PDF
Uml java
PDF
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1
PPT
Objeto de Aprendizaje : Introducción a UML
PDF
Diagramas del uml
PDF
Diagramas UML
PPT
Ingenieria de software
PPT
PPTX
PPS
Presentacion uml dian1_2003
UML_Clase_01
Diagramas del uml
Diagramas de uml
Diagramas del uml
Diagramas del uml
Diagramas del uml
diagramas_del_uml.pdf
Diagrama uml ing software i promecys
Modelado sistemas UML
UML Java
Uml java
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1
Objeto de Aprendizaje : Introducción a UML
Diagramas del uml
Diagramas UML
Ingenieria de software
Presentacion uml dian1_2003

Más de Hermes Romero (16)

PDF
UNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdf
PDF
Intalligent - Sistema de gestión del talento ágil
PDF
Agile talent management
PDF
Metodología de gestión del talento ágil
PDF
Intalligent, Agile Talent Management
PDF
Introducción a Microstrategy
PDF
Introduction to Mobile Marketing - The complete tutorial
PDF
Still using marketing from the stone age??
PPT
Manual XML
PPT
Oracle xmldb
PPT
Fundamentos de DataWarehouse
PPT
Metodologias de desarrollo
PPT
Desarrollo de sistemas
PPT
Calidad de software
PPT
Proyectos software
PPT
Introducción a Business objects
UNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdf
Intalligent - Sistema de gestión del talento ágil
Agile talent management
Metodología de gestión del talento ágil
Intalligent, Agile Talent Management
Introducción a Microstrategy
Introduction to Mobile Marketing - The complete tutorial
Still using marketing from the stone age??
Manual XML
Oracle xmldb
Fundamentos de DataWarehouse
Metodologias de desarrollo
Desarrollo de sistemas
Calidad de software
Proyectos software
Introducción a Business objects

Último (20)

PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Presentación de Redes de Datos modelo osi
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
clase auditoria informatica 2025.........
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
taller de informática - LEY DE OHM
PDF
Estrategia de apoyo tecnología miguel angel solis
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
SAP Transportation Management para LSP, TM140 Col18
Presentación de Redes de Datos modelo osi
El-Gobierno-Electrónico-En-El-Estado-Bolivia
clase auditoria informatica 2025.........
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Calidad desde el Docente y la mejora continua .pdf
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
taller de informática - LEY DE OHM
Estrategia de apoyo tecnología miguel angel solis
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Propuesta BKP servidores con Acronis1.pptx
CyberOps Associate - Cisco Networking Academy
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad

Introducción a UML

  • 1. Conceptos Básicos sobre UML Hermenegildo Romero © 2009 DATABASE TEAM http:// www . db -team. com
  • 2. INDICE Introducción a UML Notación UML Conceptos Básicos sobre UML
  • 4. Introducción a UML UML es una especificación de notación orientada a objetos. Se basa en las anteriores especificaciones Booch (BOOCH), Rumbaugh (OMT) y Jacobson (OOSE). Divide cada proyecto en un número de diagramas que representan las diferentes vistas del proyecto. Estos diagramas juntos son los que representan la arquitectura del proyecto.
  • 5. Introducción a UML UML es un lenguaje de modelado no una metodología. El lenguaje de modelado es la notación gráfica que utilizan los métodos para expresar un diseño. UML es una notación estándar que describe un proceso , pero no estandariza la forma en la cual se produce esa descripción.
  • 6. Introducción a UML Es importante comprender que UML no prescribe una manera especifica de cómo debe ser usado en un proyecto, no hay una manera correcta de usar UML .
  • 7. Introducción a UML Un lenguaje de modelado : posee una notación que son los símbolos utilizados en el lenguaje (sintaxis). También posee una serie de reglas que gobiernan ese lenguaje. Las reglas son: Sintácticas Cómo se muestran los símbolos y cómo se combinan. Semánticas Nos indican lo que significa cada uno de los símbolos y como se interpreta a nivel individual o en el contexto con otros símbolos. Pragmáticas Describen cómo usar el lenguaje. La intención o guía maestra de cómo usar los símbolos.
  • 8. Introducción a UML UML : En UML los símbolos son geométricos, como rectángulos, círculos y líneas. Tiene Una serie de reglas sintácticas y semánticas bien definidas. UML no tiene reglas pragmáticas, esto es reglas específicas de cómo usar UML.
  • 9. Introducción a UML En UML se comienza por la funcionalidad básica del sistema (estereotipos, restricciones). Este modelado básico responde a preguntas como: ¿Como interactúan entre sí los diferentes actores del sistema? ¿qué actividades son parte de su trabajo? ¿cuáles son los objetivos de su trabajo? ¿qué personas, sistemas, o recursos están involucrados que no sean actores del sistema? ¿qué reglas gobiernan sus actividades y estructuras? ¿Hay alguna manera en la que los actores puedan realizar su trabajo de manera más eficiente?
  • 10. Introducción a UML UML tiene nueve diagramas predefinidos: ESTÁTICOS : Diagrama de clases (Class diagram) Describe la estructura del sistema, las estructuras están definidas a partir de clases y relaciones. Las clases pueden representar y estructurar información, productos, documentos u organizaciones. Diagrama de Objetos (Object Diagram) Expresa las posibles combinaciones de objetos de un diagrama de clases especifico.
  • 11. Introducción a UML Diagrama de casos de uso (use-case diagram) Ilustra las relaciones entre casos de uso. Cada caso de uso, generalmente definido en texto plano, describe una parte de la funcionalidad total de un sistema. Diagrama de componentes (component diagram) Un tipo especial de diagrama de clases usado para describir los componentes de un sistema de software. Diagrama de despliegue (deployment diagram) Un tipo especial de diagrama de clases usado para reducir los diagramas de clases y componentes de un gran sistema.
  • 12. Introducción a UML DINÁMICOS : Diagrama de estados (StateChart diagram) Expresa los posibles estados de una clase. Diagrama de Actividad (Activity Diagram) Describe las actividades y acciones que tienen lugar en un sistema. Diagrama de secuencias (Sequence Diagram) Muestra una o varias secuencias de mensajes enviados entre un conjunto de objetos. Diagrama de colaboración (collaboration diagram) Describe la colaboración entre un conjunto de objetos.
  • 13. Introducción a UML Estos diagramas capturan los tres aspectos más importantes de un sistema: La estructura La funcionalidad El comportamiento Debido a la capacidad única de adaptación y extensión, es posible añadir nuevos diagramas y elementos a UML, convirtiéndole en un lenguaje flexible que puede ser usado en muchas situaciones diferentes.
  • 14. Introducción a UML Diagramas recomendados... Aplicación monopuesto Diagrama de casos de uso Diagrama de clases Diagrama de interacción (secuencia o colaboración) Aplicación monopuesto, con entrada de eventos 1+2+3+Diagrama de estados Aplicación cliente-servidor 4 + Diagrama de despliegue y diagrama de componentes. Aplicación distribuida compleja Todos
  • 16. Notación UML UML es una consolidación de muchas de las notaciones y conceptos más usadas orientados a objetos. Empezó como una consolidación del trabajo de Grade Booch, James Rumbaugh, e Ivar Jacobson, creadores de tres de las metodologías orientadas a objetos más populares. En 1996, el Object Management Group (OMG), un pilar estándar para la comunidad del diseño orientado a objetos, publicó una petición con propósito de un metamodelo orientado a objetos de semántica y notación estándares.
  • 17. Notación UML UML, en su versión 1.0, fue propuesto como una respuesta a esta petición en enero de 1997. Durante el transcurso de 1997, los seis promotores de las propuestas, unieron su trabajo y presentaron al OMG un documento revisado de UML, llamado UML versión 1.1. Este documento fue aprobado por el OMG en Noviembre de 1997. El OMG llama a este documento OMG UML versión 1.1. Actualmente la versión oficial es la 1.5, y se está trabajando en la 2.0.
  • 18. Notación UML Inconvenientes: UML no es una metodología. Además, muchas organizaciones han desarrollado sus propias metodologías internas, usando diferentes diagramas y técnicas con orígenes varios. Ejemplos son el método Catalyst por Computer Sciences Corporation (CSC) o el Worlwide Solution Design and Delivery Method (WSDDM) por IBM.
  • 19. Notación UML Modelos y Diagramas de UML:
  • 20. Notación UML Diagrama de Casos de Uso El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactúan (operaciones o casos de uso). Un diagrama de casos de uso consta de los siguientes elementos: Actor. Casos de Uso. Relaciones de Uso, Herencia y Comunicación.
  • 21. Notación UML Diagrama de Casos de Uso Actor : Una definición previa, es que un Actor es un rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra rol , pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema. Como ejemplo a la definición anterior, tenemos el caso de un sistema de ventas en que el rol de Vendedor con respecto al sistema puede ser realizado por un Vendedor o bien por el Jefe de Local.
  • 22. Notación UML Diagrama de Casos de Uso Caso de Uso : Es una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.
  • 23. Notación UML Diagrama de Casos de Uso Relaciones : Asociación Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple
  • 24. Notación UML Diagrama de Casos de Uso Relaciones : Dependencia o Instanciación Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada. Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su estereotipo, que puede ser de Uso (<<include>>) o de Extensión (<<extends>>). extends : Se recomienda utilizar cuando un caso de uso es similar a otro (extiende sus funcionalidades). uses : Se recomienda utilizar cuando se tiene un conjunto de características que son similares en más de un caso de uso y no se desea mantener copiada la descripción de la característica.
  • 25. Notación UML Diagrama de Casos de Uso Relaciones : Generalización Denota heredar las funcionalidades del caso de uso origen. Este tipo de relación esta orientado exclusivamente para casos de uso (y no para actores). De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelado de clases, en donde esta la duda clásica de usar o heredar .
  • 26. Notación UML Diagrama de Casos de Uso Ejemplo: Caso de una Máquina de reciclaje: Sistema que controla una máquina de reciclaje de botellas, tarros y vasos. El sistema debe controlar y/o aceptar: Registrar el número de items ingresados. Imprimir un recibo cuando el usuario lo solicita: Describe lo depositado El valor de cada item Total
  • 27. Notación UML Diagrama de Casos de Uso Ejemplo: Caso de una Máquina de reciclaje: El usuario/cliente presiona el botón de comienzo Existe un operador que desea saber lo siguiente: Cuantos items han sido retornados en el día. Al final de cada día el operador solicita un resumen de todo lo depositado en el día. El operador debe además poder cambiar: Información asociada a items. Dar una alarma en el caso de que: el Item se atora. No hay más papel.
  • 28. Notación UML Diagrama de Casos de Uso Ejemplo: Caso de una Máquina de reciclaje: Como una primera aproximación identificamos a los actores que interactúan con el sistema
  • 29. Notación UML Diagrama de Casos de Uso Ejemplo: Caso de una Máquina de reciclaje: Luego, tenemos que un Cliente puede Depositar Ítems y un Operador puede cambiar la información de un Ítem o bien puede Imprimir un informe:
  • 30. Notación UML Diagrama de Casos de Uso Ejemplo: Caso de una Máquina de reciclaje: Además podemos notar que un ítem puede ser una Botella, un Tarro o una Jarra vaso
  • 31. Notación UML Diagrama de Casos de Uso Ejemplo: Caso de una Máquina de reciclaje: Otro aspecto es la impresión de comprobantes, que puede ser realizada después de depositar algún item por un cliente o bien puede ser realizada a petición de un operador.
  • 32. Notación UML Diagrama de Casos de Uso Ejemplo: Caso de una Máquina de reciclaje: Entonces, el diseño completo del diagrama Use Case es:
  • 33. Notación UML Diagrama de Clases Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenido. Un diagrama de clases esta compuesto por los siguientes elementos: Clase : atributos, métodos y visibilidad. Relaciones : Herencia, Composición, Agregación, Asociación y Uso. Interfaces: Métodos con funcionalidades generales que implementarán varias clases del modelo. Paquetes: Subconjunto del modelo que va a contener clases, objetos, relaciones etc.
  • 34. Notación UML Elementos Clase Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.). En UML, una clase es representada por un rectángulo que posee tres divisiones:
  • 35. Notación UML Superior : Contiene el nombre de la Clase Intermedio : Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden ser private, protected o public). Inferior : Contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto con su entorno (dependiendo de la visibilidad: private, protected o public).
  • 36. Notación UML Ejemplo: Una Cuenta Corriente que posee como característica: Balance Puede realizar las operaciones de: Depositar Girar y Balance El diseño asociado es:
  • 37. Notación UML [visibilidad] nombre [multiplicidad] [:tipo] [=valor inicial] [{propiedades}] Atributos: Los atributos o características de una Clase pueden ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son: public (+, ): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados. private (-, ): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos pueden acceder). protected (#, ): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accedido por métodos de la clase además de las subclases que se deriven (ver herencia). Propiedades de los atributos : Changeable, AddOnly, Frozen.
  • 38. Notación UML [visibilidad] nombre [(lista de parámetros)] [:tipo retorno] [{propiedades}] Métodos: Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, éstos pueden tener las características: public (+, ): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados. private (-, ): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden accesar). protected (#, ): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven (ver herencia). Propiedades de los métodos : IsQuery, Sequential, Guarded, Concurrent.
  • 39. Notación UML Relaciones entre Clases: Ahora una vez definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o más clases (cada uno con características y objetivos diferentes). Antes es necesario explicar el concepto de cardinalidad de relaciones: En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relación y éstas pueden ser: uno o muchos : 1..* (1..n) 0 o muchos : 0..* (0..n) número fijo : m (m denota el número).
  • 40. Notación UML Asociación : La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre si. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.
  • 41. Notación UML Asociación Especifica que los objetos pertenecientes a una clase dada se conectan a los objetos de otra. Son análogas a las relaciones que se dan en el modelo entidad/relación
  • 42. Notación UML Asociación : Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente.
  • 43. Notación UML Dependencia o Instanciación (uso) : Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada. El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación grafica que instancia una ventana (la creación del Objeto Ventana esta condicionado a la instanciación proveniente desde el objeto Aplicación)
  • 44. Notación UML Dependencia o Instanciación (uso) : Cabe destacar que el objeto creado (en este caso la Ventana gráfica) no se almacena dentro del objeto que lo crea (en este caso la Aplicación).
  • 45. Notación UML Estereotipos de relación clase-objeto: Bind Derive Friend InstanceOf Instantiate Powertype Refine
  • 46. Notación UML Agregación : Para modelar objetos complejos, no bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades: Por Valor : Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada Composición (el Objeto base se construye a partir del objeto incluido, es decir, es &quot;parte/todo&quot;). Por Referencia : Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento).
  • 47. Notación UML Agregación Un Almacén posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias). Cuando se destruye el Objeto Almacén también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados. La composición (por Valor) se destaca por un rombo relleno. La agregación (por Referencia) se destaca por un rombo transparente. La flecha en este tipo de relación indica la navegabilidad del objeto referenciado. Cuando no existe este tipo de particularidad la flecha se elimina.
  • 48. Notación UML Herencia (Especialización/Generalización) Indica que una subclase hereda los métodos y atributos especificados por una Super Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Super Clase (public y protected).
  • 49. Notación UML Herencia (Especialización/Generalización)
  • 50. Notación UML Estereotipos de generalización: Implementation Restricciones de generalización Complete Incomplete Disjoint Overlapping
  • 51. Notación UML Ejemplo de relaciones:
  • 52. Notación UML Ejemplo de relaciones:
  • 53. Notación UML Casos Particulares Clase Abstracta : Una clase abstracta se denota con el nombre de la clase y de los métodos con letra &quot;itálica&quot;. Esto indica que la clase definida no puede ser instanciada pues posee métodos abstractos (aún no han sido definidos, es decir, sin implementación). La única forma de utilizarla es definiendo subclases, que implementan los métodos abstractos definidos.
  • 54. Notación UML Casos Particulares Clase parametrizada : Una clase parametrizada se denota con un subcuadro en el extremo superior de la clase, en donde se especifican los parámetros que deben ser pasados a la clase para que esta pueda ser instanciada. El ejemplo más típico es el caso de un Diccionario en donde una llave o palabra tiene asociado un significado, pero en este caso las llaves y elementos pueden ser genéricos. La genericidad puede venir dada de un Template (como en el caso de C++) o bien de alguna estructura predefinida (especialización a través de clases). En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependerán exclusivamente de la implementación que se le quiera dar.
  • 55. Notación UML Diagramas de interacción: secuencia colaboración
  • 56. Notación UML Diagrama de Secuencia El diagrama de interacción, representa la forma en como un Cliente (Actor) u Objetos (Clases) se comunican entre si en petición a un evento. Esto implica recorrer toda la secuencia de llamadas, de donde se obtienen las responsabilidades claramente. Dicho diagrama puede ser obtenido de dos partes, desde el Diagrama Estático de Clases o el de Casos de Uso (son diferentes). Los componentes de un diagrama de interacción son: Un Objeto o Actor . Mensaje de un objeto a otro objeto . Mensaje de un objeto a si mismo .
  • 57. Notación UML Diagrama de Secuencia Objeto/Actor : El rectángulo representa una instancia de un Objeto en particular, y la línea punteada representa las llamadas a métodos del objeto.
  • 58. Notación UML Diagrama de Secuencia Objeto/Actor : Puede ser de dos tipos: Transitorio: El ciclo de vida del objeto coincide con el ciclo de vida del objeto contenedor. Persistente: El ciclo de vida del objeto no coincide con el ciclo de vida del objeto contenedor.
  • 59. Notación UML Diagrama de Secuencia Mensaje a Otro Objeto : Se representa por una flecha entre un objeto y otro, representa la llamada de un método (operación) de un objeto en particular Activación
  • 60. Notación UML Diagrama de Secuencia Mensaje al Mismo Objeto : No solo llamadas a métodos de objetos externos pueden realizarse, también es posible visualizar llamadas a métodos desde el mismo objeto en estudio.
  • 61. Notación UML Diagrama de Secuencia Tipos de Mensaje : Simple: Un objeto envia un mensaje a otro que se considera objeto pasivo. Síncrono: El cliente envía un mensaje y espera a que el servidor lo acepte. Si el servidor no lo acepta inmediatamente el cliente continua en espera. Abandono (Balking): El cliente envía un mensaje al servidor, si el servidor está preparado para aceptarlo. El cliente abandona el envío si detecta que no está preparado. Time-Out: El cliente abandona el envío del mensaje si se produce un time-out. Asíncrono: El cliente envía un mensaje al servidor y continúa ejecutando su código mientras espera respuesta del servidor.
  • 62. Notación UML Diagrama de Secuencia Ejemplo En el presente ejemplo, presentamos el diagrama de interacción proveniente del siguiente modelo estático:
  • 63. Notación UML Diagrama de Secuencia Ejemplo Aquí se representa una aplicación que posee una Ventana gráfica, y ésta a su vez posee internamente un botón. El diagrama de interacción para dicho modelo sería: En donde se hacen notar las sucesivas llamadas a Draw() (entre objetos) y la llamada a Paint() por el objeto Botón
  • 64. Notación UML Diagrama de colaboración También representa al igual que el de secuencia las interacciones que se producen entre los objetos. La diferencia con los de secuencia es que el de colaboración representa la interacción mas centrado desde el punto de vista de la relación entre los objetos.
  • 65. Notación UML Diagrama de colaboración Representación de los objetos Una única instancia de la clase Múltiples instancias de clase Clase
  • 66. Notación UML Diagrama de colaboración Mensajes No está permitido crear un enlace “link” si no existe una relación entre las clases de tipo asociación, agregación o composición. Los diferentes mensajes deben coincidir con métodos de las correspondientes clases.
  • 67. Notación UML Diagrama de colaboración Mensajes Los enlaces representan también la relación cliente-servidor entre los objetos. Cliente: El que envía el mensaje Servidor: El que recibe el mensaje A partir de esta relación puede definirse el tipo de visibilidad que existe entre los objetos: Visibilidad es la capacidad y el modo en que un objeto accede a otro en su relación cliente-servidor.
  • 68. Notación UML Diagrama de colaboración Mensajes Tipos de visibilidad: Visibilidad a nivel de campo : El servidor es uno de los atributos del cliente. Visibilidad a nivel de parámetro : El servidor es accesible al cliente por que el servidor es un parámetro de alguno de los métodos del cliente. Visibilidad local : El servidor es una variable local de alguno de los métodos del cliente. Visibilidad global : El servidor es una variable global a alguno de los métodos del cliente.
  • 69. Notación UML Diagrama de colaboración Mensajes Tipos de visibilidad
  • 70. Notación UML Diagrama de Estados El diagrama de estados refleja: El estado de un objeto en un momento del tiempo. Su comportamiento. Transición entre estados El diagrama de estados permite la representación del ciclo de vida de los objetos. Los diagramas de estados contienen: Los estados Las transiciones Los eventos Las operaciones, acciones y actividades
  • 71. Notación UML Diagrama de Estados Estados Representa al objeto en un momento del tiempo. Estado genérico Estado inicial Estado final
  • 72. Notación UML Diagrama de Estados Transiciones Son las conexiones unidireccionales que unen los estados. El paso de un estado a otro se produce mediante un evento . El paso de un estado a otro se produce instantáneamente ya que los objetos deben estar siempre en un estado conocido.
  • 73. Notación UML Diagrama de Estados Transiciones Se pueden producir transiciones en las que el estado de origen y destino sean el mismo.
  • 74. Notación UML Diagrama de Estados Guardas Representan condiciones de tipo verdadero/falso que establecen si se desencadena el evento o no. Si es verdadero el evento se ejecuta Si es falso el evento no se ejecuta
  • 75. Notación UML Diagrama de Estados Acciones y Actividades Los métodos que definimos en el diagrama de clases se representan en el diagrama de estados mediante acciones y actividades Las acciones se corresponden con métodos declarados en la clase del objeto destinatario del evento. La acción tiene acceso por tanto a los parámetros del evento y a los atributos del objeto.
  • 76. Notación UML Diagrama de Estados Acciones y Actividades Los estados tienen la posibilidad de contener acciones a su vez. Estas se ejecutarán al entrar o al salir del estado, o cuando se ejecuta un evento cuando el objeto está en el estado representado. Acciones de entrada (entry) Acciones de salida (exit) Acciones sobre eventos (on) (event undefined)
  • 77. Notación UML Diagrama de Estados Acciones y Actividades Actividades Las actividades se corresponden también con métodos de la clase, pero a diferencia de las acciones no presentan una ejecución instantánea. Las actividades pueden interrumpirse mientras que las acciones no. Se utiliza la palabra clave (do)
  • 78. Notación UML Diagrama de Estados Generalización de estados Un estado puede contener varios subestados Los subestados heredan las variables de estado y las transiciones externas. Agregación de estados Representa la composición de un estado a partir de otros estados independientes. Implica la ejecución simultanea de los estados contenidos.
  • 79. Notación UML Diagrama de Actividades El diagrama de actividades es una especialización del diagrama de estado. (Representa lo mismo que el de estados pero a menor nivel de detalle). Representa: Un método Un caso de uso Un proceso de negocio Las transiciones en el diagrama de actividades son automáticas, es decir: cuando una actividad termina se desencadena el paso a la siguiente actividad.
  • 80. Notación UML Diagrama de Actividades Actividades Se representa por:
  • 81. Notación UML Diagrama de Actividades Transiciones
  • 82. Notación UML Diagrama de Actividades Condicionales
  • 83. Notación UML Diagrama de Actividades Sincronización
  • 84. Notación UML Diagrama de Actividades Swimlanes (pasillos de actividades)
  • 85. Notación UML Diagrama de componentes Describen elementos físicos del sistema y sus relaciones. Se utilizan para representar los elementos del código que forman parte del sistema y sus relaciones en el entorno de realización. Es una vista física del sistema. Se utilizan en la fase de diseño para describir como se desarrollará el sistema y con que herramientas. Los elementos de un diagrama de componentes son: Los módulos Las relaciones entre módulos
  • 86. Notación UML Diagrama de componentes Módulos o componentes Pueden representar archivos, librerias, ficheros de clase, paquetes, bases de datos, etc... El estereotipo del componente nos ayuda a reflejar el tipo de componente al que nos referimos
  • 87. Notación UML Diagrama de componentes Módulos o componentes Representación de paquetes
  • 88. Notación UML Diagrama de componentes Módulos o componentes Representación de programa principal
  • 89. Notación UML Diagrama de componentes Módulos o componentes Representación de subprograma
  • 90. Notación UML Diagrama de componentes Módulos o componentes Representación de paquete
  • 91. Notación UML Diagrama de componentes Módulos o componentes Representación de tarea
  • 92. Notación UML Diagrama de componentes Dependencias
  • 93. Notación UML Diagrama de despliegue
  • 94. Muchas Gracias Hermenegildo Romero Database Team [email_address] www.db-team.com

Notas del editor

  • #5: Estos tres autores fueron contratados por la empresa Rational Software Co para crear una notación unificada en la que basar la construcción de sus herramientas CASE. Incorpora las ventajas de cada uno de los métodos anteriores. UML se ha convertido en un estándar de facto de la industria Con UML se fusiona la notación de estas técnicas para formar una herramienta compartida entre todos los ingenieros software que trabajan en el desarrollo orientado a objetos.
  • #6: Es decir, no especifica exactamente los pasos a seguir, cuántos diagramas ni de qué tipo formarán el diseño de nuestra aplicación o sistema.
  • #10: Un estereotipo permite especificar las características básicas de un elemento del diagrama (por ejemplo, en un diagrama de clases, un clase sería un estereotipo, que debe contener determinadas propiedades y métodos. Si se crea una clase Coche, todos los objetos de la clase coche contendrán las mismas propiedades y métodos). Una restricción indica una condición obligatoria para una clase o relación (por ejemplo, teniendo la clase Coche y la clase Rueda, una restricción asociada podría ser que la relación que las une fuese de 1 a 4).