Académique Documents
Professionnel Documents
Culture Documents
2 TIPOS DE DIAGRAMAS:
–Diagramas de estructura
• Proporcionar una forma de representar los datos y las relaciones estáticas que se encuentran en un sistema de información
• Diagrama de clase
–Diagramas de comportamiento
DIAGRAMAS DE ESTRUCTURA
• Diagrama de clase
- Describir la estructura del sistema en términos de clases y objetos.
- Propósito principal durante el flujo de trabajo de análisis: crear un vocabulario que sea utilizado tanto por el analista como por los usuarios
¿QUÉ ES UNA CLASE?
• Una plantilla general que usamos para crear instancias u objetos específicos en el dominio de la aplicación.
• Representa un tipo de persona, lugar o cosa sobre la cual el sistema necesitará capturar y almacenar información
• Abstracciones que especifican los atributos y comportamientos de un conjunto de objetos.
¿QUÉ ES UN OBJETO?
• Entidades que encapsulan estado y comportamiento.
• Cada objeto tiene una identidad: - Puede ser referido individualmente.
- Es distinguible de otros objetos.
TIPOS DE CLASES
• Unos encontrados durante el análisis:
- personas, lugares, eventos y cosas sobre las cuales el sistema capturará información
- Los que se encuentran en el dominio de la aplicación
• Unos encontrados durante el diseño:
- objetos específicos como ventanas y formularios que se utilizan para construir el sistema
2 TIPOS DE CLASES DURANTE EL ANÁLISIS
• Concreto: - Clase de dominio de aplicación
- Ejemplo: clase de cliente y clase de empleado
• Abstracto - Abstracciones útiles.
- Ejemplo: clase de persona
ATRIBUTOS EN UNA CLASE
• Propiedades de la clase sobre las que queremos capturar información.
• Representa una información que es relevante para la descripción de la clase dentro del dominio de la aplicación
ATRIBUTOS EN UNA CLASE
• Solo agrega atributos que son primitivos o tipos atómicos
• Atributo derivado - Atributos calculados o derivados de otros atributos.
- denotado colocando una barra (/) antes del nombre
OPERACIONES EN UNA CLASE
• Representa las acciones o funciones que una clase puede realizar
• Describe las acciones a las que las instancias de la clase serán capaces de responder
• Se puede clasificar como un constructor, consulta o operación de actualización
REPRESENTACIÓN UML DE CLASE
RELACIÓN DE ASOCIACIÓN
• Tipo de rol mostrado por:
- trazar linea entre clases
- indicando con un signo más antes del nombre del rol
RELACIÓN DE GENERALIZACIÓN
• Permite al analista crear clases que heredan atributos y operaciones de otras clases
• Representado por A-KIND-OF (una- especie- de) relación
RELACIÓN DE AGREGACIÓN
• Forma de asociación especializada en la que un todo está relacionado con su (s) parte (s)
• Representado por A-PART-OF (una-parte-de) relación
RELACIÓN DE AGREGACIÓN
• Se indica colocando un diamante más cercano a la clase que representa la agregación
MULTIPLICIDAD
• Documenta cuántas instancias de una clase se pueden asociar con una instancia de otra clase
DIAGRAMA DE CLASE
2 enfoques para derivar diagramas de clase: - De los casos de uso y sus escenarios.
- De tarjetas CRC
DERIVANDO EL DIAGRAMA DE CLASE DE CASOS DE USO Y ESCENARIOS
• Analizar el texto en las descripciones de casos de uso y escenarios.
PAUTAS PARA ANALIZAR CASOS DE USO
• Un nombre común o impropio implica una clase de objetos
• Un nombre propio implica una instancia de una clase.
• Un nombre colectivo implica una clase de objetos formada por grupos de instancias de otra clase.
PAUTAS PARA ANALIZAR CASOS DE USO (2)
• Un adjetivo implica un atributo de un objeto.
• Hacer un verbo implica una operación.
• Un verbo implica una relación entre un objeto y su clase.
• Tener un verbo implica una agregación o relación de asociación
PAUTAS PARA ANALIZAR CASOS DE USO (3)
• Un verbo transitivo implica una operación.
• Un verbo intransitivo implica una excepción.
• Un predicado o frase verbal descriptiva implica una operación
• Un adverbio implica un atributo de una relación o una operación
DIAGRAMA DE CLASE
• Asegúrese de que las clases sean necesarias y suficientes para resolver el problema subyacente
- no faltan atributos o métodos en cada clase
- no hay atributos o métodos adicionales o no utilizados en cada clase
- no hay clases extra o extra
DESCARTANDO CLASES INNECESARIAS E INCORRECTAS
• Clases redundantes
• Clases irrelevantes
• Clases vagas
• Atributos
• Operaciones
• roles
• Construcciones de implementación
TIPOS DE CLASES
• Unos encontrados durante el análisis:
- personas, lugares, eventos y cosas sobre las cuales el sistema capturará información
- Los que se encuentran en el dominio de la aplicación
• Unos encontrados durante el diseño:
- objetos específicos como ventanas y formularios que se utilizan para construir el sistema
Puede especificar una operación indicando su firma: listando el nombre, el tipo y el valor predeterminado de todos los parámetros y, en el caso de las funciones, un tipo de
retorno.
CLASES DE REPRESENTACION
Al dibujar una clase, no es necesario mostrar los atributos y la operación en cada diagrama.
RESPONSABILIDADES DE CLASE
Una clase también puede incluir sus responsabilidades en un diagrama de clase.
Una responsabilidad es un contrato u obligación de una clase para realizar un servicio en particular.
RELACIONES
En UML, las interconexiones de objetos (lógicas o físicas), se modelan como relaciones.
Hay tres tipos de relaciones en UML:
• dependencias
• generalizaciones
• asociaciones
RELACIONES DE DEPENDENCIA
Una dependencia indica una relación semántica entre dos o más elementos. La dependencia de CourseSchedule a Course existe porque Course se usa en las operaciones de
agregar y eliminar de CourseSchedule.
RELACIONES DE GENERALIZACIÓN
Una generalización conecta una subclase a su superclase. Denota una herencia de atributos y comportamiento de la superclase a la subclase e indica una
especialización en la subclase de la superclase más general.
UML permite que una clase herede de múltiples superclases, aunque algunos lenguajes de programación (por ejemplo, Java) no permiten herencia múltiple.
RELACIONES DE ASOCIACIÓN
Si dos clases en un modelo necesitan comunicarse entre sí, debe haber un vínculo entre ellas. Una asociación denota ese enlace.
Podemos indicar la multiplicidad de una asociación agregando adornos de multiplicidad a la línea que denota la asociación.
El ejemplo indica que un estudiante tiene uno o más instructores:
También podemos indicar el comportamiento de un objeto en una asociación (es decir, la función de un objeto) utilizando nombres de rol.
Podemos restringir la relación de asociación definiendo la navegabilidad de la asociación. Aquí, un objeto Enrutador solicita servicios de un objeto DNS enviando mensajes
(invocando las operaciones de) el servidor. La dirección de la asociación indica que el servidor no tiene conocimiento del enrutador.
Las asociaciones también pueden ser objetos en sí, llamadas clases de enlace o clases de asociación.
Podemos modelar objetos que contienen otros objetos por medio de asociaciones especiales llamadas agregaciones y composiciones.
Una agregación especifica una relación de parte completa entre un agregado (un todo) y una parte constituyente, donde la parte puede existir independientemente del agregado.
Las agregaciones se indican mediante un adorno de diamante hueco en la asociación.
Una composición indica una propiedad sólida y una vida en coincidencia de partes por parte del conjunto (es decir, viven y mueren como un todo). Las composiciones están
denotadas por un adorno de diamante lleno en la asociación.
INTERFACES
Una interfaz es un conjunto de operaciones con nombre que especifica el comportamiento de los objetos sin mostrar su estructura interna. Puede
representarse en el modelo mediante un rectángulo de uno o dos compartimientos, con el estereotipo <<interfaz>> sobre el nombre de la interfaz.
SERVICIOS DE INTERFAZ
Las interfaces no se instancian. No tienen atributos ni estado. Más bien, especifican los servicios ofrecidos por una clase relacionada.
INTERFACES
Una interfaz de clase también puede representarse mediante un círculo conectado a una clase mediante una línea continua.
CLASE PARAMETRIZADA
Una clase o plantilla parametrizada define una familia de elementos potenciales.
Para usarlo, el parámetro debe estar enlazado.
Una plantilla se representa mediante un pequeño rectángulo discontinuo superpuesto en la esquina superior derecha del rectángulo de la clase. El
rectángulo discontinuo contiene una lista de parámetros formales para la clase.
El enlace se realiza con el <<bind>> estereotipo y un parámetro para proporcionar a la plantilla. Estos son adornos de la flecha discontinua que denota la
relación de realización.
Aquí creamos una lista de nombres vinculados para la Lista del Decano.
ENUMERACIÓN
Una enumeración es un tipo de datos definido por el usuario que consta de un nombre y una lista ordenada de literales de enumeración.
EXCEPCIONES
Las excepciones se pueden modelar como cualquier otra clase.
Observe el <<excepción>> estereotipo en el compartimento de nombres.
PAQUETES
Un paquete es un elemento similar a un contenedor para organizar otros elementos en grupos.
Un paquete puede contener clases y otros paquetes y diagramas.
Los paquetes se pueden utilizar para proporcionar acceso controlado entre clases en paquetes diferentes.
Las clases en el paquete FrontEnd y las clases en el paquete BackEnd no pueden acceder entre sí en este diagrama.
Las clases en el paquete BackEnd ahora tienen acceso a las clases en el paquete FrontEnd.
DIAGRAMA DE COMPONENTES
Los diagramas de componentes son uno de los dos tipos de diagramas que se encuentran en el modelado de los aspectos físicos de un sistema orientado a objetos. Muestran la
organización y las dependencias entre un conjunto de componentes.
Utilice diagramas de componentes para modelar la vista de implementación estática de un sistema. Esto implica modelar las cosas físicas que residen en un nodo, como
ejecutables, bibliotecas, tablas, archivos y documentos.
- La Guía del usuario de UML, Booch et. al., 1999
Aquí hay un ejemplo de un modelo de componente de una versión ejecutable. [Booch, 99]
DIAGRAMA DE DESPLIEGUE
Los diagramas de implementación son uno de los dos tipos de diagramas que se encuentran al modelar los aspectos físicos de un sistema orientado a objetos. Muestran la
configuración de los nodos de procesamiento en tiempo de ejecución y los componentes que viven en ellos.
Utilice diagramas de implementación para modelar la vista de implementación estática de un sistema. Esto implica modelar la topología del hardware en el que se ejecuta el
sistema. - La Guía del usuario de UML, [Booch, 99]
Un componente es una unidad física de implementación con interfaces bien definidas que se pretende utilizar como parte reemplazable de un sistema. Los componentes bien
diseñados no dependen directamente de otros componentes, sino de las interfaces que admiten los componentes. - El Manual de Referencia UML, [Rumbaugh, 99]
Diagrama de despliegue de un sistema cliente-servidor.
Un caso de uso se representa como una elipse en un diagrama de casos de uso. Un caso de uso siempre está etiquetado con su nombre.
Un actor se representa como una figura de palo en un diagrama de caso de uso. Cada actor participa en uno o más casos de uso.
Los actores pueden participar en una relación de generalización con otros actores.
Los actores pueden estar conectados a casos de uso solo por asociaciones.
Aquí tenemos un estudiante que interactúa con el registrador y el sistema de facturación a través de un caso de uso de "Registro para cursos".
MÁQUINA ESTATAL
“La vista de la máquina de estado describe el comportamiento dinámico de los objetos a lo largo del tiempo al modelar los ciclos de vida de los objetos de cada clase. Cada objeto
se trata como una entidad aislada que se comunica con el resto del mundo al detectar eventos y responder a ellos. Los eventos representan los tipos de cambios que los objetos
pueden detectar ... Cualquier cosa que pueda afectar a un objeto se puede caracterizar como un evento ". - El Manual de Referencia UML, [Rumbaugh, 99]
Un objeto debe estar en algún estado específico en un momento dado durante su ciclo de vida. Un objeto hace la transición de un estado a otro como resultado de algún evento
que lo afecta. Puede crear un diagrama de estado para cualquier clase, colaboración, operación o caso de uso en un modelo UML.
Solo puede haber un estado de inicio en un diagrama de estado, pero puede haber muchos estados intermedios y finales.
DIAGRAMA DE SECUENCIA
Un diagrama de secuencia es un diagrama de interacción que enfatiza el orden del tiempo de los mensajes. Muestra un conjunto de objetos y los mensajes enviados y recibidos
por esos objetos.
Gráficamente, un diagrama de secuencia es una tabla que muestra los objetos dispuestos a lo largo del eje X y los mensajes, ordenados a medida que aumenta el
tiempo, el eje Y. - La Guía del usuario de UML, [Booch, 99]
Un objeto en un diagrama de secuencia se representa como un cuadro con una línea discontinua que desciende de él.
La línea se llama línea de vida del objeto y representa la existencia de un objeto durante un período de tiempo.
Los mensajes se representan como flechas horizontales que pasan de un objeto a otro a medida que el tiempo avanza por las líneas de
vida del objeto. Las condiciones (como [check = “true”)) indican cuándo se pasa un mensaje.
Observe que la flecha inferior es diferente. La punta de la flecha no es sólida y no hay un mensaje que la
acompañe.
Esta flecha indica un retorno de un mensaje anterior, no un mensaje nuevo.
DIAGRAMA DE COLABORACIÓN
Un diagrama de colaboración enfatiza la relación de los objetos que participan en una interacción. A diferencia de un diagrama de secuencia, no tiene que mostrar la línea de vida
de un objeto explícitamente en un diagrama de colaboración. La secuencia de eventos se indica mediante números de secuencia que preceden a los mensajes.
Los identificadores de objeto tienen el formato nombreobjeto: nombre de clase, y se puede omitir el nombre de objeto o el nombre de clase, y la colocación de los dos puntos
indica un nombre de objeto:, o un: nombre de clase.
Diagrama de colaboración-Diagrama de secuencia
Tanto un diagrama de colaboración como un diagrama de secuencia se derivan de la misma información en el metamodelo de UML, por lo que puede tomar un diagrama en una
forma y convertirlo en la otra. Son semánticamente equivalentes.
DIAGRAMA DE ACTIVIDAD
Un diagrama de actividad es esencialmente un diagrama de flujo, que muestra el flujo de control de actividad a actividad.
Use diagramas de actividad para especificar, construir y documentar la dinámica de una sociedad de objetos, o para modelar el flujo de control de una operación. Mientras que
los diagramas de interacción enfatizan el flujo de control de objeto en objeto, los diagramas de actividad enfatizan el flujo de control de actividad a actividad. Una actividad es
una ejecución continua no atómica dentro de una máquina de estado. - La Guía del usuario de UML, [Booch, 99]
DIAGRAMAS DE OBJETOS
- Modelar las instancias de cosas contenidas en el diagrama de clase.
- un diagrama que muestra un conjunto de objetos y su relación en un momento determinado
- cubre un conjunto de instancias de las cosas que se encuentran en un diagrama de clase
- Expresa la parte estática de una interacción.
UN DIAGRAMA DE OBJETOS
CONTENIDO
• Contenidos particulares
- Objetos
- Enlaces
• Contenidos comunes
- Nombre, notas, paquete y subsistema.
USOS COMUNES
- modelar la vista de diseño estática o la vista de proceso estática de un sistema
- modelar la estructura de datos estática
- visualizar, especificar, construir y documentar la existencia de ciertas instancias en el sistema, junto con sus relaciones entre sí
MODELADO DE ESTRUCTURAS DE OBJETOS
PROPIEDADES DEL DIAGRAMA DE OBJETOS
- no es necesario que un solo diagrama de objetos capture todo sobre el diseño de un sistema o la vista de proceso.
- Reflejar algunos de los elementos concretos o prototípicos que viven en el sistema en ejecución.