introduccion a uml
DESCRIPTION
mi presentacion del curso de introduccion a UMLTRANSCRIPT
C O O R DIN AC IÓ N GEN ERAL DE TEC N O LO GÍAS DE LA IN FO RMAC IÓ N
U NIVER S IDAD DE GUADALAJARALI J O S É J IMÉN EZ C ABRERA
Uml
Presentación
Nombre Institución a la que pertenecen Título, función y responsabilidad en el trabajo Tu Experiencia relacionada con el análisis y la
recopilación de requerimientos Tu experiencia relacionadas con el diseño y la
arquitectura de software Experiencia relacionada con las notaciones de
modelado, tales como la OMT y UML Razones para inscribirse en este curso Las expectativas para este curso
Contenido del Curso
IntroducciónDiagramas de casos de
usoDiagramas de clasesDiagramas de objetosDiagramas de
paquetes
Diagramas de estadoDiagrama de
ActividadesDiagrama de secuenciaDiagrama de
comunicaciónDiagrama de
componentesDiagrama de
despliegue
Diagramas UML
Introducción General
¿Qué es Uml?
UML = Unified Modeling Language. El Lenguaje de Modelado Unificado (UML) es un
lenguaje gráfico para visualizar, especificar, construir y documentar los artefactos de un sistema de software independiente del lenguaje de programación utilizado.
¿Qué es Uml?
Uml esta hecho por notaciones y diagramas. Las notaciones consisten en elementos que colaboran
juntos en un diagrama. Por Ejemplo símbolos, conectores, notas, valores. Etc.
Los diagramas son representaciones graficas de un proceso, el sistema o una parte de el.
UML es extensible.UML es escalable.
Notaciones UML
Elementos Relaciones
¿Por que usar UML?
Crisis del Software
Creadores del UML
Dr. James Rumbaugh
Grady Booch Dr. Ivar Jacobson
Ventajas de UML
Es útil para comunicar concepto y sistemas.
Reduce costos y riesgos al permitir la
experimentación con modelos.
Reduce la complejidad.
Aumenta la calidad de los sistemas.
Productividad y eficiencia en los desarrollos.
Facilita el re-uso de artefactos.
Ventajas de UML
Hemisferio Izquierdo
• Análisis•Detalle•Pensamiento Lógico•Comunicación Verbal
Hemisferio Derecho
• Intuición•Creatividad•Pensamiento Emocional•Comunicación no Verbal
Resumen
Uml Es un lenguaje Visual Que nos permite, diseñar, comunicar y documentar entre otras cosas.
Un modelo nos permite realizar una representación de la realidad.
Uml nos permite usar ambos hemisferios de nuestro cerebro.
Modelado de Objetos:Un VISTAZO GENERAL
13 de abr de 2023(c) 2010 Universidad de Guadalajara. Prohibida su reproducción.
¿Que es un modelo?
“Un modelo es una simplificación de la realidad”
Un modelo es una abstracción de alguna entidad (como un edificio) o de un sistema (como el software)
Diferentes vistas muestran el modelo de diferentes perspectivas
Un objeto es algo que existe en el contexto de un sistema.
Orientación de objetos
Un objeto es algo que existe en el contexto de un sistema.
Un objeto es la instancia de una clase.
Orientación de objetos
Clases
Una clase es "un conjunto de objetos que comparten una estructura común y un comportamiento común." (Booch Objeto página Soluciones 303)
es un molde con el que los objetos pueden ser creados.
es una categoría en la que los objetos pueden ser organizados.
Es también una plantilla en la que los objetos pueden ser creados.
Atributos y operaciones
Las clases (y los objetos que perteneces a la clase) tienen: Atributos: Propiedades
Tamaño, color, genero Operaciones: Funcionalidad
Nadar, comer, correr, dormir
Herencia
La herencia es "un mecanismo por el cual se define una clase, en referencia a los demás, sumando todas sus características a las suyas." (Página Meyer, 1197)
Características de la herencia:
• Atributos y métodos de la superclase se incluyen en la subclase
• Subclase métodos puede reemplazar los métodos de superclase • Una subclase puede heredar de múltiples superclases (llamada
herencia múltiple) o una subclase puede sólo heredar de una superclase única (herencia simple)
Relaciones entre objetos
Los objetos no existen aislados; existen en relación con otros objetos.
Generalización
En la Generalización, la clase hijo esta basado en la clase padre. Esta relación indica que dos clases son similares pero tienen algunas diferencias.
Asociación
La asociación significa que dos clases estas conectadas (o relacionadas) de alguna manera. La información de una clase esta ligada a los datos de
la otra clase. Una clase trabaja con otra para elaborar una tarea. Una clase actúa sobre otra clase.
Agregación
Una Agregación indica una relación entre un todo y sus partes
Equipo de Futbol
Composición
La composición es una forma fuerte de agregación. En este tipo de relación, cada parte puede pertenecer a un solo conjunto a la vez.
Composición
La composición es una forma fuerte de agregación. En este tipo de relación, cada parte puede pertenecer a un solo conjunto a la vez.
La característica principal es que no se puede compartir.
Compartir
Composición
Cuando el objeto principal es destruido, sus partes también son destruidas
Multiplicidad
La multiplicidad muestra el numero de objetos que pueden participar en una relación
Ejemplos: Una clase ocurre en un salón. Un maestro enseña muchas clases. Un maestro enseña a muchos estudiantes Un estudiante aprende de muchos maestros.
Polimorfismo
es la capacidad de tomar muchas formas diferentes
Polimorfismo
es la capacidad de tomar muchas formas diferentes
El polimorfismo puede aplicar Objetos Operaciones
Polimorfismo
es la capacidad de tomar muchas formas diferentes
Polimorfismo
es la capacidad de tomar muchas formas diferentes
Polimorfismo
es la capacidad de tomar muchas formas diferentes
Objeto Volador
Polimorfismo
es la capacidad de tomar muchas formas diferentes
Objeto Volador volar()volar()
PANORAMA GENERAL
Tipos de Diagramas
Diagramas UML
Modelo 4+1
Vista lógica
Vista de proceso
Vista Física
Vista de
desarrollo
Vista de casos de
uso
Vista lógica
Vista logica
Vista de proceso
Vista Fisica
Vista de
desarrollo
Vista de casos de
uso
Clase Colaboración
Vista de procesos
Vista logica
Vista de proceso
Vista Fisica
Vista de
desarrollo
Vista de casos de
uso
Vista Física
Vista logica
Vista de proceso
Vista Fisica Vista de
desarrollo
Vista de casos de
uso
Vista de desarrollo
Vista logica
Vista de proceso
Vista Fisica Vista de desarrollo
Vista de casos de
uso
componentes
paquetes
Vista de casos de uso
Vista logica
Vista de proceso
Vista Fisica
Vista de
desarrollo
Vista de casos de
uso
Modelo estático vs dinámico
Modelos estáticos: muestra la estructura del sistema.
Modelos Dinámicos: Muestra las características del comportamiento del sistema.
Modelos de implementación: muestra los elementos necesarios para la implementación del sistema.
Modelos Estáticos
Modelos Estáticos
Un modelo estático de un sistema muestra la estructura del sistema.
Se hace hincapié en las partes que componen el sistema.
Los modelos estáticos se usan para definir los nombres de las clases, los atributos, asignación de los métodos y los paquetes.
Los diagramas que representas el modelo estático incluyen los diagramas de clases, diagramas de objetos y los diagramas de casos de uso.
Modelos Dinámicos
Modelos Dinámicos
Un modelo dinámico muestra el comportamiento del sistema, por ejemplo, cómo se comporta el sistema en respuesta a los acontecimientos externos.
permite identificar los objetos necesarios y cómo esos objetos trabajan juntos a través de los métodos y los mensajes
Util para diseñar la lógica y el comportamiento del sistema.
Los diagramas UML que representan los modelos dinámicos son los diagramas de secuencia, diagramas de comunicación,diagramas de estado y diagramas de actividad.
Modelo de implementación
Este modelo muestra las diferentes elementos de un sistema que se requieren para su implementación.
Se muestra la organización física de los componentes de software y otros recursos físicos, tales como las rutas de hardware y de conexión.
Los diagramas que representan el modelo de implementación son los diagramas de componentes y los diagramas de despliegue.
Estático vs Dinámico
Los diagramas estáticos (especialmente los diagramas de clases) dan a los desarrolladores información detallada sobre las clases, tipos de datos y parámetros.
Los diagramas dinámicos, tales como los diagramas de secuencia y comunicación, ayudará a definir los objetos y cómo interactúan.
La practica del modelado ágil recomienda el desarrollo de ambos modelos en paralelo, trabajando en modelos estáticos y dinámicos al mismo tiempo.
Casos de uso
Clases
Objetos
Paquetes
Estados
Diagrama de Actividades
Diagramas de Casos de uso
Actor
"Un actor es un rol que un usuario representa con relación al sistema." (Fowler, UML Gota a Gota)
Un actor también es "Un conjunto coherente de roles que los usuarios de los casos de uso juegan al interactuar con estos casos de uso.”
Agente de Viajes
Actor
Este icono representa un actor humano (usuario) del sistema. También puede representar a un sistema externo.
Agente de Viajes
Caso de uso
Un caso de uso describe lo que el sistema hace para lograr una meta desde la perspectiva del cliente.
CU01: Gestionar Almacén
Una asociación en un caso de uso representa "La participación de un actoren un caso de uso”
Asociación
E2: Registrar Huésped
Recepcionista
• Un actor debe ser asociados con uno o más casos de uso.• Un caso de uso debe ser asociados con uno o más
actores.• Un asociación es representado por una línea solida sin
puntas de flecha.
Caso de uso: asociaciones
La dependencia <<include>>
El caso de uso depende de la invocación de caso de uso incluido con el fin de ser completada.
Siempre es llamado por el caso de uso que lo incluye.
Puede ser llamado por mas de un caso de uso. uc Use Case View
Bibliotecario
Registrar PrestamosConocer
Disponibilidad de un Libro«include»
La dependencia <<extend>>
Un caso de uso extiende a otro cuando le agrega tareas adicionales al primero.
Identifica escenarios que ocurren en casos alternos.
uc Use Case View
Bibliotecario
Registrar Dev oluciones
Cobrar multa«extend»
Generalización uc Casos de Uso de la Biblioteca
Bibliotecario
Administrador del Inv entario
Registrar Prestamo
Registrar Dev oluciones
Mantener Actualizado el inv entario de Libros
Puntos de extensión
Casos de uso
Para cada caso de uso ...Describir los pasos involucrados en la
interacción entre un actor y el sistema, empezando por el actor principal.
Comienza con éxito el escenario principal.Puedes buscar caminos alternativos:
Excepciones: ¿Qué podría salir mal aquí?
Extensiones: ¿Qué otro objetivo podría entrar aquí?
Diagramas de clase
Clasificadores: Clases y Objetos
Atributos y operaciones
Atributos son las propiedades que tiene un objeto de una determinada instancia
Los estereotipos
class System
«interface»Interface2
«enumeration»Enumeration1
Asociaciones y Multiplicidad
Las clases tienen una relación con otras clases
Asociaciones y Multiplicidad
Las clases tienen una relación con otras clases
Las clases pueden estar relacionada con otras múltiples veces, a eso le llamamos multiplicidad.
Asociación de Clases
Un Asociación de clases permite
class System
Clase1 Clase2
Clase3
Agregación y Composición
Generalización
class System
Persona
Empleado Estudiante
Realización
class System
Animal
Av e Av ion
Maquina«interface»ObjetoVolador
Dependencia
class System
Automov il Gasolina
Restricciones y notas
Las restricciones muestran las restricciones que un elemento tiene.
Le da condiciones y restricciones en varios aspectos.
Las notas permiten incluir información adicional a un elemento UML.
class System
Esto es una nota
Clases Abstractas e Interfaces
Las Clases Abstractas permite que sea heredada por sus hijos pero no se puede instanciar directamente.
Las interfaces especifican la implementación pero no especifican como implementarlas.
class System
«interface»Interface2
«abs»Class6
Diagramas de objetos
Objetos e instancias
Diagramas de paquetes
Paquetes
class System
Package1
Visibilidad
Los paquete puede guardar la visibilidad de los elementos que la componen
Al igual que los atributos y las operaciones pueden ser Públicos Privados Protegidos Paquetes
Las relaciones entre los paquetes
Los paquetes al igual que las clases no trabajan aisladamente
pkg Diagrama de paquetes
Package1
+ Class1
Package2
Package3 Package4
+ Package6
Package5
«import»
Paquetes de Casos de Uso
Paquetes de Casos de Uso
Cuándo utilizar los diagramas de paquetes
Cuando el proyecto es muy complejo y contiene muchas clases o casos de uso.
Mantener un registro de las dependencias.Para organizar clases que tienen elementos
comunes.Para indicar dependencias entre paquetes .Para crear una estructura jerárquica.Para dividir los sistemas complejos en
modulos.
Diagramas de actividad
conceptos básicos
Caminos paralelos y alternativos
Bifurcación: Barra de color negra. sirve para indicar cuando se realizan actividades paralelas.
Decisión/Combinar : diamante, para indicar cuando se toman caminos diferentes
act Diagra...
Bifurcación
Decisión
Diagramas de Subactividades
Son diagramas que se encuentran dentro de una actividad mayor
Uso de Carriles (Swimlines)
Diagramas de secuencia
Tipos de mensajes
Diagrama de secuencia
Diagramas de Estado
seudoestados
seudoestados
Diagramas de componentes
La introducción de componentes
La representación gráfica es la siguiente:
estereotipos
UML define cinco estereotipos estándar que se aplican a los componentes:
Executable: Especifica un componente que se puede ejecutar en un nodo.
Library: Especifica una biblioteca de objetos estática o dinámica.
Table: Especifica un componente que representa una tabla de una base de datos.
File: Especifica un componente que representa un documento que contiene código fuente o datos.
Document: Especifica un componente que representa un documento.
Diagramas de Distribución
¿Qué un diagrama de distribución?
Los Diagramas de Distribución muestran la disposición física de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos
Nodos
Un nodo es un elemento físico que existe en tiempo de ejecución y representa un recurso computacional, que generalmente tiene algo de memoria y, a menudo, capacidad de procesamiento.
Los nodos se utilizan para modelar la topología del hardware sobre el que se ejecuta el sistema. Representa típicamente un procesador o un dispositivo sobre el que se pueden desplegar los componentes.
Componentes
Los componentes son los elementos que participan en la ejecución de un sistema. Los nodos son los elementos donde se ejecutan los componentes.
Los componentes representan el empaquetamiento físico de los elementos lógicos. Los nodos representan el despliegue físico de los componentes.
La relación entre un nodo y el componente que despliega puede mostrarse con una relación de dependencia, o listando los nodos desplegados en un
compartimiento adicional dentro del nodo.
Ejemplo
Otros Diagramas
Diagrama de requerimientos
Diagrama de procesos
Diagrama de interfaces
Diagrama de navegación
Diagrama entidad-relacion
Notas finales
Grado de complejidad
Herramientas de desarrollo
Herramientas de desarrollo
Herramientas de desarrollo