Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introducción a UML
Diagramas de casos de uso
Diagramas de clase
Otros modelos y usos
Contenido
1 Modelos
2 Introducción a UML
4 Diagrama de clases
Modelos
1 Modelos
Introducción a UML
Diagramas de clases
Necesidad de modelado
• Sistemas informáticos complejos
• Mostrar lo que nos interesa (no siempre nos interesa todos los detalles)
Bases Metodológicas de los SS Tema 2: Modelado 4 de 51
Modelos
Introducción a UML
Diagramas de casos de uso
Diagramas de clase
Otros modelos y usos
Necesidad de modelado
• Demasiadas tecnologías y plataformas … (¿Cuál elegir?)
• … que evolucionan muy rápido (¿Quedará desfasado?)
Necesidad de modelado
• Diferentes puntos de vista: cliente, desarrollador, analista, usuarios, …
El concepto de modelo
• Un modelo es una abstracción del sistema
• La abstracción permite ocuparnos de detalles relevantes para nuestro
propósito (oculta detalles para no confundir la visión global)
• Utilidad del modelo:
• Abordar sistemas complejos
• Forma unívoca de comunicación
• Diferentes formas de expresar el sistema para diferentes vistas
• Técnica muy empleada en múltiples campos
Conceptos de modelado
• Sistema software: Descrito por un conjunto de modelos
• Modelo: Simplificación para entender mejor el sistema
• Diagrama: Representación gráfica del modelo
• Vista: Subconjunto de diagramas que analiza un aspecto
Cómo se usan
• Para detectar errores y omisiones en el diseño antes de comprometer
recursos para la implementación:
• Analizar y experimentar
• Investigar y comparar soluciones alternativas
• Minimizar riesgos
• Guiar la implementación
Introducción a UML
Modelos
2 Introducción a UML
Diagramas de clases
UML
UML
• UML es un lenguaje para visualizar los elementos de un gran sistema
software, facilitando
• La comunicación entre los participantes (incluidas herramientas) en el
desarrollo
UML
• UML es un lenguaje para especificar software
• Se pueden construir modelos precisos, no ambiguos y completos
• Cubre las decisiones de análisis, diseño e implementación
Diagramas UML
• Diagramas estructurales y de comportamiento:
• Estructurales: qué objetos deben estar presentes
• Comportamiento: comportamiento dinámico de esos objetos
• Crear componentes
• Separar lo qué hace un componente de cómo lo hace
Modelos
Introducción a UML
Diagramas de clases
Casos de uso
• Los casos de uso describen el comportamiento de un sistema desde el
punto de vista del usuario según acciones y reacciones
• Permiten definir los límites del sistema y las relaciones entre el sistema
y el entorno
• Son descripciones de la funcionalidad del sistema independientes de la
implementación
• Describen qué hace el sistema, no cómo lo hace
• Particionan el conjunto de necesidades atendiendo a la categoría de
usuario que participan en el mismo
• Suele ser el mecanismo esencial para indicar requisitos y
funcionalidades en la mayoría de las metodologías:
• RUP los usa como guía durante todo el proceso
• Son los elementos incluidos en el Product Backlog de SCRUM
• Actores
• Casos de uso
Actores
• Un Actor:
• Representa a un tipo de usuario
• Es una agrupación uniforme de personas, sistemas o máquinas que
interactúan con el sistema de la misma forma
• Se representan con “stick man” (puede adecuarse al contexto)
• El nombre del actor describe el papel desempeñado
• La misma persona física puede interpretar diferentes actores
Caso de uso
• Un caso de uso describe una interacción coherente y con un objetivo
de un actor con un sistema.
• Se representa con una elipse
• Ejemplo: Buscaminas
• Actor: Jugador
• Casos de uso:
• Iniciar partida
• Descubrir casilla
• Marcar casilla
Diagramas de clases
Modelos
Introducción a UML
4 Diagramas de clases
Diagrama de clases
• Describe la estructura de un sistema mostrando las clases del sistema,
sus atributos, operaciones, y las relaciones entre los objetos.
Clases
• Describe la estructura y el comportamiento de objetos que tienen las
mismas características y semánticas
• La estructura se describe mediante sus atributos
• El comportamiento mediante sus operaciones
Atributos
• Representan la información almacenada en una clase
• La descripción se compone de:
• Visibilidad
(público +, privado -, derivado /)
• Nombre (minúscula)
• Tipo
• Multiplicidad
(cantidad [X], indeterminado [*], rango[X..Y])
• Características (opcional)
Atributos: Tipos
• Tipos simples: boolean, int, String …
• Otras clases definidas en nuestro diagrama de clases:
Operaciones
• Especifican (principalmente) las acciones que las instancias de una
clase pueden realizar
• Su nombre comienza con minúscula
• Tiene visibilidad
• Pueden devolver algo (función), o simplemente realizar cambios en el
objeto (procedimiento)
Relaciones
• Son los mecanismos básicos de comunicación entre clases
• Tipos:
• Asociación
• Agregación
• Composición
• Especialización (ya vista)
• Pueden ser unidireccionales o bidireccionales
• Se caracterizan por (opcionales):
• Nombre
• Roles
• Multiplicidad
• Navegación
Relaciones
• Asociación
• Relación de uso persistente
• Permite a los objetos de una clase contactar los objetos de otra clase
para acceder a sus datos y su comportamiento
• Se puede leer como “un objeto está asociado a otro”
• Composición
• Relación fuerte
• Se representa con un rombo con relleno
• Modela la relación entre un todo y las partes
• Se puede leer como “… es parte de …”
• El tiempo de vida del objeto incluido está condicionado por el tiempo del
vida del que lo incluye
• El objeto incluido no tiene sentido sin el que lo incluye
Relaciones
• Agregación
• Relación más débil que la anterior
• Se representa con un rombo sin relleno
• Se puede leer como “… posee un … ”
• El tiempo de vida del objeto incluido no está condicionado por el tiempo
del vida del que lo incluye
• El objeto incluido sí tiene sentido sin el que lo incluye
• Clases de asociación
• Modela relaciones complejas
• Suelen codificarse con tres clases:
2 relacionadas +
1 describe asociación
Ejemplo (resumen)
Modelos
Introducción a UML
Diagramas de clases
Otros modelos
• Vimos que UML incorpora una cantidad de diagramas:
• Objetivo (estructura o comportamiento)
• Nivel de abstracción
• Destinatario
Diagrama de componentes
• Un diagrama de componentes muestra los elementos de un diseño de un
sistema de software
• Un diagrama de componentes permite visualizar la estructura de alto
nivel del sistema y el comportamiento del servicio que estos
componentes proporcionan y usan a través de interfaces. Que se agrupan
en puertos y se conectan mediante conectores
Diagrama de estados
• Un Diagrama de Estados muestra una Máquina de Estados
• Una máquina de estados es un comportamiento que especifica las
secuencias de estados por las que pasa un objeto a lo largo de su vida
en respuesta a eventos, junto con sus respuestas a esos eventos
• Un diagrama de estados muestra el flujo de control entre estados (en
qué estados posibles puede estar un objeto y como se producen los
cambios entre dichos estados)
Diagramas de interacción
• Son diagramas de instancias en los que se muestra la interacción entre
distintos objetos del sistema
• Diferentes tipos de diagramas de interacción:
• Diagramas de secuencia, de colaboración, temporales, de vista general
de interacción
Diagrama de Actividades
• Un diagrama de actividades muestra el flujo de control general de un
sistema, modelando su lógica
• Modela una secuencia de acciones y condiciones tomadas dentro de un
proceso
Diagrama de despliegue
• El Diagrama de Despliegue se utiliza para modelar la disposición física
de los artefactos software en nodos (usualmente plataforma de
hardware o de comunicaciones)
Model-driven architecture
• Meta: el uso de modelos formales para ayudarnos a tratar con la
complejidad e independencia de los sistemas complejos
• Proceso:
• Mediante algún lenguaje de modelado (como UML) se crean modelos
independientes de la plataforma (PIM) del sistema
• Esos modelos se transforman a modelos específicos de la plataforma
(PSM) usando reglas formales.
Model-driven architecture
• Con este acercamiento el enfoque y los artefactos fundamentales son
los modelos (y no programas)
• Ventajas:
• Conceptos del modelo más cercanos al dominio del problema y menos
ligado a la tecnología de implementación
• Los modelos son más fáciles de entender, comprender y mantener
• Tecnología:
• Se generan automáticamente programas completos a partir de modelos
• Se “verifican” automáticamente modelos en un ordenador
Resumen
• Qué es un modelo y cómo se usa en el modelado software
• Otros modelos