UML
2025
Definir el análisis Orientado a Objetos
mediante UML
Creación de modelos utilizando
Diagramas de Casos de Uso en UML
q UML (Unified Modeling Language)
El lenguaje de modelado unificado fue creado
para forjar un lenguaje de modelado visual
común, semántica y sintácticamente rico para
la arquitectura, el diseño y la implementación
de sistemas de software complejos, tanto en
estructura como en comportamiento.
UML tiene aplicaciones más
allá del desarrollo de software.
Ejm.: En el flujo de procesos en la
fabricación
q UML (Unified Modeling Language)
El lenguaje de modelado unificado es un
lenguaje gráfico que permite modelar,
visualizar y documentar sistemas. Esta
compuesto por distintos diagramas que
permiten ir representando las distintas vistas
de un sistema, cada diagrama tiene un
objetivo bien definido.
Nos permite modelar varias cosas:
- Procesos
- Sistemas
- Software
Con características como:
- Extensible
- Flexible
- Escalable
Hay muchos paradigmas o modelos para la
resolución de problemas en la informática, que
es el estudio de algoritmos y datos. Hay cuatro
categorías de modelos para la resolución de
problemas:
ü Lenguajes imperativos
ü Lenguajes funcionales
ü Lenguajes declarativos
ü Lenguajes orientados a
objetos (OOP).
En los lenguajes orientados a objetos, los
algoritmos se expresan definiendo 'objetos' y
haciendo que los objetos interactúen entre sí.
Esos objetos son cosas que deben ser
manipuladas y existen en el mundo real.
Pueden ser edificios, artefactos sobre un
escritorio o seres humanos.
Los lenguajes orientados a objetos dominan el
mundo de la programación porque modelan
los objetos del mundo real. UML es una
combinación de varias notaciones orientadas
a objetos:
• Diseño orientado a objetos
• Técnica de modelado de objetos
• Ingeniería de software
orientada a objetos.
q Grady, Booch y Rumbaugh (los tres amigos) de la
ingeniería de software, se unieron para fortalecer los
tres métodos y mejorar el producto final, brindando
claridad a los p r o g r a m a d o r e s a l c r e a r n u e v o s
estándares.
q Este esfuerzo derivó en la publicación de los
documentos UML 0.9 y 0.91 en 1996. Pronto se hizo
evident e q u e v a r i a s o r g a n i z a c i o n e s , i n c l u i d a s
Microsoft, Oracle e IBM, consideraron que UML era
esencial para su propio desarrollo de negocios.
q "Los tres amigos" publicaron la Guía del usuario para el
Lenguaje Unificado de Modelado en 1999, y una
actualización que incluye información sobre UML 2.0
en la segunda edición de 2005.
q Object Management Group® (OMG®) es un
consorcio internacional sin fines de lucro y de
membresía abierta para estándares tecnológicos,
fundado en 1989. Los estándares de modelado de
OMG, incluidos UML y Model Driven Architecture®
(MDA®), permiten un eficaz diseño visual, ejecución y
mantenimiento de software y otros procesos.
q OMG supervisa la definición y el mantenimiento de las
especificaciones de UML. Esta supervisión ofrece a los
ingenieros y programadores la capacidad de usar un
lenguaje para muchos propósitos durante todas las
etapas del ciclo de vida del software en sistemas de
cualquier tamaño.
El OMG define los propósitos de UML de la siguiente
manera:
ü Brindar a arquitectos de sistemas, ingenieros y
desarrolladores de software las herramientas
para el análisis, el diseño y la implementación de
sistemas basados en software, así como para el
modelado de procesos de negocios y similares.
ü Hacer progresar el estado de la industria
permitiendo la interoperabilidad de herramientas
de modelado visual de objetos.
q ¿Dónde se usa?
ü Modelar procesos de negocio
ü Describir la arquitectura de un sistema
ü Mostrar el comportamiento de un sistema
ü Mostrar la estructura de una aplicación
ü Modelar la estructura de datos
ü Crear las especificaciones de un sistema
ü Facilitar la creación de código
q Modelo
ü Un patrón sobre el cual esta basado algo que se
producirá.
ü Modelar es construir un plan basándonos en un
patrón.
ü En UML lo podemos considerar como una forma
visual de describir un negocio y sus reglas.
ü Es muy importante modelar porque:
• Nos ayuda a comunicar diseños
• Ayuda a que los diseños sean mas cercanos a las
implementaciones en la realidad
• Ayuda a definir y entender objetivos
• Ahorra tiempo y dinero
v No hay que exagerar el análisis al punto que ya
no se es productivo
q Diagrama
ü Es una visualización de diferentes elementos de
modelado descritos en UML
ü Cada diagrama se usa para un propósito en
específico
ü Cada diagrama tiene símbolos especiales para
lograr ese propósito
ü Es la representación de un proceso o sistema
q Los objetos en UML son entidades del mundo real
que existen a nuestro alrededor. En el desarrollo de
software, los objetos se pueden usar para describir,
o modelar, el sistema que se está creando en
términos que sean pertinentes para el dominio.
q Estos son algunos conceptos fundamentales de un
mundo orientado a objetos:
• Objetos
• Clase
• Abstracción
• Encapsulación
• Herencia
• Polimorfismo
q Clase:
- Es una plantilla para crear objetos
- Un “plano” a partir del cual
los objetos son construidos
- Tienen:
• Atributos – propiedades
• Operaciones - funcionalidades
q Objeto:
- Es una instancia de una clase
- Algo que existe en el contexto del sistema
q Abstracción:
• Comportamiento de una entidad del mundo
real.
• Un programa no es mas que una descripción
abstracta de un procedimiento o fenómeno
que existe o sucede en el mundo real.
• La abstracción es crucial para comprender
el complejo mundo que nos rodea es una
herramienta muy potente para tratar la
complejidad de las clases y los objetos.
• La abstracción es la clave para diseñar
software de calidad.
q Abstracción:
q Encapsulación:
• Mecanismo para enlazar los datos y
ocultarlos del mundo exterior.
• La encapsulación consiste en ocultar los
atributos y métodos del obje to a otros
objetos. En efecto, algunos atributos y
métodos tienen como único objetivo
tratamientos internos del objeto y no deben
estar expuestos a los objetos exteriores. Una
vez encapsulados, pasan a denominarse
atributos y métodos privados del objeto.
q Encapsulación:
Ejm.:
Al correr, los caballos efectúan diferentes movimientos
como pueden ser levantar las patas, levantar la cabeza o
levantar la cola. Esos movimientos son internos al
funcionamiento del animal y no tienen por qué ser
conocidos en el exterior.
Son métodos privados. Las
operaciones acceden a
una parte interna del
caballo: sus músculos, su
cerebro y su vista. La parte
interna se representa en
forma de atributos
privados.
q Herencia:
ü Mecanismo para crear nuevas clases a partir
de una existente.
ü Se refiere al hecho de transmitir algo de un
organismo a otro.
q Herencia:
ü La programación orientada a objetos
permite a las clases expresar similitudes entre
objetos que tienen algunas características y
comportamiento en común.
q Herencia:
q Polimorfismo:
ü Define el mecanismo para salidas en
diferentes formas.
ü El polimorfismo significa que una clase
(generalmente abstracta) representa un
conjunto formado por objetos diferentes, ya
que éstos son instancias de subclases
diferentes. Cuando se llama a un método
del mismo nombre, esta diferencia se
traduce en comportamientos distintos.
q Polimorfismo:
q Tipos de diagramas que conforman UML:
De Estructura:
ü Diagrama de Clases
ü Diagrama de Componentes
ü Diagrama de Objetos
ü Diagrama de Implementación
ü Diagrama de Paquetes
De Comportamiento:
ü Diagrama de Casos de Uso
ü Diagrama de Estados
ü Diagrama de Actividades
ü Diagrama de Colaboración
ü Diagrama de Secuencia
ü Diagrama de Despliegue
El Diagrama de Casos de Uso representa las
formas que tiene un usuario de utilizar un
sistema, y esta directamente asociado con el
“que debe hacer” un sistema, y no “como
debe hacerlo” (Requerimientos funcionales)
Objetivo:
“…describir las acciones del sistema desde el
punto de vista del usuario…”
REQUISITOS FUNCIONALES - Los usuarios compraran créditos
para adquirir canciones
- El sistema debe registrar la
Ejemplo: información de los usuarios y los
Sistema de Venta de créditos que poseen
Música Online - Los usuarios buscarán las canciones
que deseen y las pagarán con
créditos
- El sistema debe almacenar
información sobre las canciones
que se pueden adquirir y su precio
en créditos
- El sistema deberá sugerir canciones
acordes a los intereses del usuario
CARACTERÍSTICAS: - Representa el comportamiento de un
sistema desde la perspectiva del usuario
para alcanzar los objetivos de negocio
- Describe lo que el software hace, y no la
manera en que lo hace
- Se componen de una representación
gráfica y una especificación funcional
- Deben escribirse desde la perspectiva
del actor
- Describen la interacción del actor y el
sistema
COMPONENTES:
Actores
Funcionalidades (Casos de uso)
Relaciones
ACTORES:
• Un actor es alguien o algo que interactúa con el
sistema (una persona, una organización, un
programa o sistema de hardware o software)
• Un actor estimula al sistema con algún evento o
recibe información del sistema
• Un actor es externo al sistema
• Un actor cumple un rol funcional definido (Ej.:
Cliente, Banco, Empleado)
RELACIONES:
Son relaciones que usamos para ligar gráficamente dos
casos de uso, cuyos flujos de eventos están unidos,
normalmente en una sola sesión del usuario
En otras palabras, un caso de uso que este ligado, por
medio de una de estas relaciones, a otro caso de uso;
también podría leerse o ejecutarse como un solo caso
de uso en lugar de dos
Relaciones fundamentales:
- Uso
- Inclusión (Include)
- Extensión (Extend)
- Generalización
INCLUDE:
Una relación de inclusión se representa como una
dependencia que declara que un caso de uso utiliza
información y servicios de otro
El caso de uso invocador depende del caso de uso
incluido para poder completar su objetivo
El caso de uso incluido siempre se coloca a la derecha
del invocador
INCLUDE:
INCLUDE:
INCLUDE:
EXTEND:
La funcionalidad de un caso de uso incluye un conjunto
de pasos que ocurren solo en algunas oportunidades
Indica una dependencia opcional entre dos casos de uso
Extiende el comportamiento de la base, adiciona pasos
extra
La extensión se coloca debajo de la base
El punto de extensión indica en que parte de la base la
extensión empieza a trabajar
Puede haber varios puntos en los cuales llevar a cabo la
extensión
EXTEND:
EXTEND:
GENERALIZACIÓN:
Similar a la herencia, pero con casos de uso
El hijo tiene cosas en común con el padre, pero adiciona
su propia forma de hacer el trabajo
Tomar en cuenta:
ü No usar dependencias sin motivo
ü Verificar que lo que colocamos realmente es una
dependencia o un caso de uso por si mismo
ü No exagerar los extends para cada camino alterno del
caso de uso
GENERALIZACIÓN:
GENERALIZACIÓN:
EJEMPLO DE RELACIONES: