Está en la página 1de 49

UML

UNIFIED MODELING LANGUAGE


INTRODUCCIÓN
● QUE ES?
● Uml o Unified Modeling Language (lenguaje unificado
de modelado), es un lenguaje gráfico que se utiliza para
ver, construir y documentar un sistema de software

● ¿por qué “lenguaje grafico”?


○ Porque utiliza diagramas y símbolos visuales para representar diferentes aspectos de un
sistema de software, incluyendo su estructura, comportamiento, e incluso los patrones de
interacción entre los objetos o componentes dentro del sistema
Antecendentes
● Se remonta a principios de l a década de 1990, en ese
momento había muchos tipos de modelado de sistemas de
software, cada uno con su propia notación y metodología.
Esto causó una gran cantidad de confusión y dificultades
de interoperabilidad.
● Primera versión a mediados de los 90 ● Adopción para la Object Management
● Suficientemente amplia para cubrir todos los Group (OMG) en 1997
casos de uso de modelado de software ● Ha sufrido varias revisiones
● Suficientemente especifico como para ser
● Se ha expandido para cubrir gama mas
útil y coherente
amplia de casos
Diagramas UML

● Lenguaje visual con el objetivo de:


○ Facilitar la creación de código
○ Describir la estructura de una aplicación
○ Describir la estructura de un sistema
○ Mostrar el comportamiento de un sistema
○ Crear modelos de datos
Metodologías
Modelo “waterfall”

● El modelo de “waterfall” Requisitos


(cascada) se basa en una
secuencia lineal de fases o pasos, Diseño
cada una de las cuales depende
de la entrega anterior Implementación

Verificación

Mantenimiento
● Que paquetes / componentes formarán el
proyecto? Requisitos
● Tipos fundamentales de cada uno de los
componente
● Como interactuarán estos componentes entre Diseño
sí para que todo funcione?
● Seguridad / rendimiento
● ¿Cómo responderá y solucionaremos Implementación
errores?
● Robustez
● ¿Extenderemos el proyecto en el futuro? Verificación
● Vam

Mantenimiento
● Se debe completar ● Ideal para
secuencialmente una fase
para poder comenzar la aplicaciones
siguiente militares,
● Este modelo se debe usar
solo si los requerimientos aplicaciones
están muy claros y no se médicas,
van a hacer cambios
continuamente
aplicaciones de
seguridad. etc-.
Modelos
“AGILE”
AGILE
● Surgió en 2001 con el “agile manifestó”
● Cuatro características principales:
○ Individuos e interacciones sobre procesos y herramientas
○ funcionalidad sobre la documentación extensiva
○ Colaboración con el cliente sobre negociación contractual
○ Respuesta al cambio sobre seguir un plan
POO
Programación orientada a objetos
¿Que es la POO y
porque surge?.
Conceptos
importantes de la
POO
historia

POO
• 1980

Programación
estructurada
• 1960
Programación no • Estructuras,
Estructurada condicionales, bucles
• 1950 • Pascal
• Ensamblador • Cobol
• Fortran •C
• Basic
● BASIC es un acrónimo (Beginner’s All-purpose Symbolic
Instruction Code) y la idea era que fuese usado como un
medio para facilitar la programación en
Programación estructurada / no estructurada

●Problemas:
○ Bloques de código muy largos
○ Código espagueti
○ En caso de error todo cae
○ Difícil mantenimiento
○ Difícil escalabilidad
Que es la POO?

● Cambio de visión. Nuevo paradigma de


programación
○ POO
■ Trasladar lo que vemos en la vida real a código de
programación
■ Observar los problemas a resolver como objetos:
orientación a objetos
Herencia Clases Abstracción

Encapsulamiento Polimorfismo
objetos

Propiedades Métodos
¿Como es? ¿Qué hace?
Tipos de
diagramas UML
● Diagramas de caso de uso
○ Representa la funcionalidad del sistema desde la perspectiva del usuario.
○ Muestran como interactúa un usuario con el sistema

● Diagrama de Clases
○ Son los más comunes en el modelado de sistemas orientados a objetos
○ Representan clases (u objetos) y las relaciones entre ellas

● Diagramas de Objetos
○ Son similares a los de clases, pero se utilizan para mostrar ejemplos de objetos en un sistema
y sus interacciones en un momento especifico

● Diagramas de Secuencia
○ Representan la secuencia de interacciones entre los objetos en el tiempo
○ Muestran como los mensajes pasan entre los objetos
● Diagramas de actividades
○ Son similares a los diagramas de flujo y se utilizan para mostrar el flujo de control de una
actividad a otra

● Diagramas de Componentes
○ Representan la organización y dependencias entre un conjunto de componentes

● Diagramas de implementación o Despliegue


○ Muestran la configuración de artefactos de software en la infraestructura

● Diagramas de Estado
○ Representan el cambio en el estado de un objeto provocado por eventos

● Diagramas de Interacción
○ Es un tipo general de diagramas que incluy varios tipos más específicos como los diagramas
de secuencia, diagramas de comunicación, diagramas de tiempo y diagramas de interacción
● Diagramas de Estructura Compuesta
○ Se utilizan para mostrar el interior de una clase y las interacciones entre sus partes internas

● Diagramas de perfil
○ Definen mecanismos para adaptar UML a dominios o plataformas especificas

● Diagramas de paquetes
○ Representan las dependencias entre los paquetes en un sistema
STAR UML
● Software para diagramar
Diagramas de
casos de uso
Para que sirve
● Describe la funcionalidad del sistema desde el punto de
vista del usuario, para ello:
○ Define las interacciones entre actores y sistema para realizar funciones concretas (caso de
uso)
○ Define que funcionalidades tiene el sistema (que hace la app)
○ Proporciona vistas de alto nivel. No entra en detalles
○ Facilita comunicación entre desarrolladores
○ Facilita escenarios de prueba
ejemplo sencillo
App Transporte
● Preguntas a realizar:
○ ¿Quiénes van a utilizar e interactuar con la aplicación?
○ Principales funciones que debe realizar la aplicación
Relaciones caso de uso

● Include:
○ El caso base
depende y siempre
incluirá el Caso
Caso base
comportamiento de <<include>> Include
otro caso de uso
para poder
completar su
objetivo
Relaciones caso de uso

● Extend: Caso base


○ El caso base
depende
opcionalmente e <<Extend>>
incluirá
ocasionalmente el
comportamiento del Caso
otro caso de uso par Extend
completar su
objetivo
Generalización
● En UML la “generalización” en los
diagramas de caso de uso es similar
Definir
al concepto de “herencia” en
Destino
programación orientada a objetos
(POO). Es una forma de representar
una relación “es un tipo de” entre
casos de uso
● En un diagrama de casos de uso, una
relación de generalización se
representa con la línea con una
flecha triangular apuntando hacia el Definir destino Definir destino
por dirección por puntos de
caso de uso “general” o padre, interés
mientras que el otro extremo se
conecta al caso de uso especializado
Puntos a tener en cuenta
● No abusar de las dependencias
● No confundir extends con condicionales
● Distinguir entre dependencias y caso de uso por si mismo
Comprobación “WAVE”
● W (what – qué) debe describir que hace el sistema, en respuesta
a una interacción del actor, no como lo hace.
● A (actor) el caso de uso debe estar descrito desde la perspectiva
del actor
● V (valor) todo caso de uso debe proporcionar valor a sus actores
● E (escenario) el flujo de eventos dentro de un caso de uso debe
representar un escenario completo de interacción eentre el actor y
el sistema. Deebe haber un inicio, una ruta y un final
Diagramas de clases
Diagramas de clases
● ¿Qué son?
● ¿Para qué sirven?
● Clasificador: representación gráfica
¿Qué son los diagramas de clase?
● El diagrama de clases es un diagrama que muestra
“cómo” se organiza y estructura un sistema.
● Se enfoca en la estructura interna del sistema y muestra
cómo está organizado en términos de clases y objetos
● Describe cómo se implementará el sistema desde una
perspectiva orientada a objetos
¿Para qué sirve el diagrama de clases?
● Representa la estructura del sistema
● Visualizar relaciones
● Facilita el diseño del sistema
● Documentar el sistema
● Promover la reutilización
● Facilita la comunicación
● Base para otros diagramas UML
consideraciones
● El nombre de una clase siempre debe comenzar con
mayúscula.
● El nombre de una clase siempre debe estar en el centro
del primer compartimento.
● El nombre de una clase siempre debe escribirse
en formato.
● El nombre de la clase abstracta UML debe escribirse en
formato cursiva.
REPRESENTACIÓN GRAFICA
para representar objetos y clases, se utiliza el clasificador

NombreClase
+ público

Atributos /
visibilidad
- privado

propiedades
Operaciones # protegido

(Métodos)
~ paquete
ejemplo
Asociación entre clases
● ¿Qué es la asociación?
○ La asociación entre clases
se utiliza para representar
relaciones entre diferente
Colegio Alumno
clases. Esta relación
significa que una clase Atributos / Atributos /
conoce a otra y tiene una propiedades propiedades
referencia a ella
● ¿Cómo se representa? Operaciones Operaciones
○ La asociación se representa
(Métodos) (Métodos)
con una línea que conecta
dos clases en un diagrama
de clases
Asociación
Asociación entre clases
● Se suele leer como “tiene…” Colegio Alumno
● tipo;: adicionalmente se l e
puede indicar un verbo para Atributos / Enseña> Atributos /
especificar el tipo de asociación propiedades propiedades
● Direccionalidad; paréntesis 1 *
angulares se colocan junto al Operaciones Operaciones
verbo para indicar (Métodos) (Métodos)
direccionalidad
● Multiplicidad: Adicionalmente
se pueden utilizar números o Colegio Alumno
rangos que indican cuántas
instancias de una clase están Atributos / <Aprende Atributos /
asociadas con una instancia de propiedades propiedades
la otra clase 1 *
Operaciones Operaciones
(Métodos) (Métodos)
Empresa

Atributos /
propiedades
Operaciones
(Métodos)

Presidente Director Empleado

Atributos / Atributos / Atributos /


propiedades propiedades propiedades
Operaciones Operaciones Operaciones
(Métodos) (Métodos) (Métodos)
Relaciones de clase
● El siguiente paso es construir relaciones para crear un
diagrama de clases. Aquí tenemos tres tipos de relaciones
principales:

● Generalizaciones
● Asociaciones
● Dependencias
Generalizaciones
● Las generalizaciones son
comúnmente conocidas como
Herencia porque vincula una
subclase a su superclase.
● Una subclase se hereda de su
superclase.
Asociaciones
● muestra una relación estática entre dos entidades. La
asociación entre un estudiante y una escuela es el
"estudio"
reglas para la Asociación
● La asociación es principalmente un verbo o una frase
verbal o un sustantivo o una frase nominal.
● Su nombre debe indicar el papel que desempeña la clase
adjunta al final de la ruta de asociación.
Dependencia
● Una dependencia significa la relación entre dos o más clases en la
que un cambio en una puede forzar cambios en la otra. Sin
embargo, siempre creará una relación más débil. La dependencia
indica que una clase depende de otra.
● en el siguiente ejemplo el estudiante depende de la universidad

También podría gustarte