Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ad Introduccion Uml
Ad Introduccion Uml
• Temario
• Estructuras de Objetos
• Diagramas Estáticos
• Diagramas de Clases
• Diagramas de Casos de Uso
• Diagramas Dinámicos
• Diagramas de Estado
• Diagramas de Actividades
• Diagramas de Secuencias
• Diagramas de Colaboración
• Diagramas de Implementación
• Diagramas de Componentes
• Diagramas de Distribución
• Casos de estudio
• Patrones de Diseño
• Metodologías
• Instructor
• Ing. y M.A. Francisco Javier Mariscal Flores fmarisc@uach.mx
Tomado de http://comunidad.uach.mx/fmarisc/analisis/Analisis.ppt
Pag. 1
Ingeniería de Software
Pag. 2
Diagramas Estáticos
• Casos de Uso
• Es una colección de situaciones que ocurren cuando un actor usa un sistema para
completar un proceso. Normalmente un caso de uso es un proceso relativamente
largo, no un paso individual o transacción. Cada caso de uso necesita representar
una tarea, o una unidad coherente de funcionalidad, la cuál necesita ser soportada
por el sistema.
• Una vez identificado los casos de uso se pueden crear diagramas de casos de uso
para colocar el caso de uso en contexto. Involucrando las fronteras del sistema para
un conjunto de casos de uso y definiendo las líneas de comunicación entre un actor
particular y el caso de uso.
Sist. de Información
de Biblioteca
Recursos para
Prestamo
Agregar
recursos
Bibliotecario Usuario
Regresar
Recursos
• En las etapas iniciales de desarrollo del proyecto, los diagramas de casos de uso
describen las actividades del mundo real y las motivaciones. Se puede afinar los
diagramas en etapas posteriores para reflejar las interfases de usuario y los detalles
de diseño.
• Cuando se tienen varios subsistemas es común dibujar la frontera del sistema, pero
generalmente se omite.
Pag. 3
Diagramas Estáticos
Pag. 4
Diagramas Estáticos
Pag. 5
Diagramas Estáticos
Pag. 6
Diagramas Estáticos
Pag. 7
Diagramas Estáticos
Reabastecer de
Acuerdo a las ventas
Pag. 9
Diagramas Estáticos
Pag. 10
Estructuras de Objetos
• ¿Qué es un objeto?
• Conceptualmente, un objeto es una cosa con la que se puede
interactuar: Se le pueden mandar varios mensajes y reaccionará. El
como se comporte dependerá del estado interno actual del objeto. Un
objeto tiene una identidad la cual lo distingue de todos los demás
objetos.
• El estado de un objeto se representa mediante los datos
almacenados en el mismo, los cuales son llamados atributos.
• El comportamiento de un objeto es lo que éste puede hacer y se
encuentra contenido en métodos, los cuáles se invocan enviándoles
mensajes.
• Representación UML de un objeto (Diagrama de Clase):
Empleado
- Nombre:String
- Sexo:Boolean
- Direccion:String
- RFC:String
+ TomarNombre:String
+ TomarRFC:String
+ TomarDireccion:String
Pag. 11
Estructuras de Objetos
Pag. 12
Estructuras de Objetos
• Clases
• Es un tipo (o plantilla) de objeto, el cual describe un conjunto de objetos que
tienen un rol equivalente en un sistema. Para crear una instancia de un objeto
se usa la clase como la base para determinar como formar el objeto.
• Atributos
• Son los datos que están encapsulados dentro del objeto y determinan su
estado. Algunos pueden cambiar (p.ej: un empleado puede cambiar de
dirección), otros son inmutables y deben conservar el mismo valor durante la
vida del objeto (p.ej: el RFC de un empleado)
• Métodos
• Son una implementación del comportamiento requerido por una clase, cada
instancia de objeto proveniente de la clase tendrá éstos métodos. Podrán ser
llamados por otros objetos o internamente.
• Mensajes
• Los objetos responden o actúan en función a los mensajes que reciben y el
estado actual de sus atributos. Cuando se manda un mensaje a un objeto se le
esta ordenando que ejecute un método y generalmente se desconoce el
código que ejecutará porque está encapsulado.
• Interfases
• Es el medio fundamental de comunicación entre los objetos. La interfase
describe completamente cómo van a interactuar con la clase los usuarios de
la clase. La interfase pública de un objeto define cuáles mensajes aceptará sin
importar de donde provengan.
Pag. 13
Estructuras de Objetos
• Herencia
• Permite a una clase heredar los atributos y métodos de otra clase, facilitando
de esta forma la reutilización del código y permitiendo crear nuevas clases
mediante la abstracción de los atributos y métodos comunes.
Mamíferos
Superclase
- colorOjos: int
+ TomarColorOjos: int
Perro gato
-frecuenciaLadrido: int -frecuenciaMaullido:int Subclases
+ Ladrar: int + Maullar: int
• Las clases Perro y Gato heredan de la clase Mamíferos, esto significa que la
clase Perro tiene los siguientes atributos:
• colorOjos Heredada de la clase Mamíferos
• frecuenciaLadrido Definida solo para la clase Perro
• y los siguientes métodos:
• tomarColorOjos Heredada de la clase Mamíferos
• Ladrar Definida solo para la clase Perro
Pag. 14
Estructuras de Objetos
• Abstracción
• Quitar las propiedades y acciones de un objeto para dejar sólo aquellas que
sean necesarias.
• Polimorfismo
• Significa tener muchas formas. En lenguajes de programación significa que
una entidad puede tener uno de muchos tipos. En orientación a objetos una
variable polimórfica puede referirse a diferentes objetos en diferentes tiempos.
Las subclases pueden hacer caso omiso de los métodos o atributos de las
superclases y definir los suyos propios.
• La asignación dinámica permitirá que al mandar un mensaje a un objeto se
asignará dinámicamente dependiendo del código del método que haya
definido la instancia de dicho objeto que puede ser uno propio o heredado.
• Encapsulamiento
• Se oculta la funcionalidad de los objetos, evitando que otros objetos o el
mundo exterior puedan ver sus operaciones internas.
• Asociaciones
• Un objeto puede estar relacionado con uno o más objetos
• Composiciones
• La agregación de objetos permite definir composiciones, en las que cada
componente se considera como tal sólo como parte del objeto compuesto.
Pag. 15
Estructuras de Objetos
• Diagramas
• Para describir el diseño de un sistema, el lenguaje que usemos debe estar
basado en diagramas, porque la experiencia nos ha mostrado que es así como
pensamos en los sistemas.
• No es el diseño, sino una representación de un modelo de el diseño, que
captura un aspecto de el diseño de una forma que puede ser discutida.
• Los modelos de diagramas a considerar son:
• El modelo de casos de uso que describe el sistema requerido desde el punto de
vista de los usuarios.
• El modelo estático que describe los elementos de el sistema y sus relaciones.
• El modelo dinámico que describe el comportamiento del sistema a través del
tiempo.
• podremos tomar una:
• Vista lógica nos permitirá alcanzar los requerimientos funcionales. Cuáles partes
van juntas? Cuáles son las clases y sus relaciones?
• Vista de proceso ayuda a lograr los requerimientos no-funcionales, como el
desempeño y la disponibilidad. Cuáles necesidades de control hay? Qué
actividades pueden ser concurrentes? Qué sincronización debe haber?
• Vista de desarrollo ayuda a administrar el proyecto. Cuál parte hará cada elemento
del equipo de gente? Que partes pueden reusarse?
• Vista física ayuda a alcanzar los requerimientos no-funcionales, haciendo una vista
más concreta que la de proceso.Cuales partes correrán en la misma computadora?
Pag. 16
Estructuras de Objetos
• Diagramas UML
• La relación existente entre los diversos diagramas de UML se
muestra a continuación:
Diagrama
Diagramadede
Clases
Clases
Diagrama
Diagramadede
Casos
Casosde
de Diagrama
Diagramade
de Distribución
Distribución
Uso
Uso Secuencias
Secuencias
CODIGO
CODIGO
Diagrama
Diagramade
de
Estados Diagrama
Diagramade
de
Diagrama Estados
Diagramade
de Componentes
Componentes
Colaboración
Colaboración
Diagrama
Diagramadede
Actividad
Actividad
Pag. 17
Diagramas Estáticos
• Objetos y Clases
• Identificar las clases que deben existir en nuestro sistema, es la parte
mas grande del trabajo de diseñar sistemas orientados a objetos.
• Construir rápidamente y lo más barato posible el sistema que alcance
nuestros requerimientos.
• Construir un sistema que sea fácil de mantener y adaptar para los
requerimientos futuros.
• Cada pieza de comportamiento requerida por el sistema deberá ser
proporcionada de una manera sensible, por los objetos de las clases
que elijamos.
• Un buen modelo de clases consiste de clases de los objetos
principales, los cuales no dependen de la funcionalidad particular
requerida actualmente
• Una técnica es la identificación de sustantivos. Descarte los
candidatos que sean inapropiados por alguna razón, renombrando
las clases restantes si es necesario
• Pueden descartar candidatos por: redundancia, vaguedad, son un
evento o una operación, son meta-lenguaje, están fuera del alcance
del sistema, son un atributo.
Pag. 18
Diagramas Estáticos
Pag. 19
Diagramas Estáticos
Nombre
• ejemplo: Atributos ...
Operaciones ...
Pag. 20
Diagramas Estáticos
Pag. 21
Diagramas Estáticos
Usa
Autor Computadora
Pag. 22
Diagramas Estáticos
*
Nodo
conecta
*
Un nodo se conecta a muchos nodos y estos a su vez se conectan
con varios mas. (en una red de cómputo
Pag. 23
Diagramas Estáticos
Póliza de
Seguros
0..1
Refiere a Está expresado
1 en un
esposa
Persona
esposo
casado con
Pag. 24
Diagramas Estáticos
Pag. 25
Diagramas Estáticos
• Tipos de asociaciones
• Asociación calificada (Qualified association). Representa la información
de identidad y reduce la multiplicidad de uno a muchos por una de uno a
uno.
renglón:{1,2,3} 1 1
Tablero Cuadro
columna:{1,2,3}
Pag. 26
Diagramas Estáticos
• Tipos de asociaciones
• Clase de Asociación. Una clase puede estar unida a una asociación. Se
usa para agregar información extra sobre un enlace; por ejemplo, el
tiempo en que el link fue creado. Cada enlace está asociado a un objeto de
la clase de asociación.
Participa en
Jugador Equipo
Persona
Pag. 27
Diagramas Estáticos
{O}
1 1 1 1
Comida Ensalada PlatoFuerte Postre
1 9
Tablero Cuadros
Pag. 28
Diagramas Estáticos
Vehículo
Pag. 29
Diagramas Estáticos
• Interfaces y realizaciones
• Una interfaz es un conjunto de operaciones que especifica cierto
aspecto de la funcionalidad de una clase, y es un conjunto de
operaciones que una clase presenta a otras. Se usa el símbolo de
clase pero sin atributos, solamente con las operaciones:
Teclado
marca
cantidadDeteclas
«interfaz»
Ctrl() MaquinaDeEscribir
Alt()
RePag() Teclazo()
AvPag()
...
Pag. 30
Diagramas Estáticos
• Diagrama de objetos
• Un diagrama de objetos en UML usa la misma notación que los diagramas
de clases, ya que los objetos solo son instancias de la misma clase.
Autor Computadora
Usa
Clases:
nombre: String nombre: String
0..* 1..*
edad: Integer memoria: Integer
Pag. 31
Diagramas Estáticos
• Diagrama de Clases
• Modelo Conceptual de Punto de Venta
Registra-venta-de
Descritas-por
1
Pag. 32
Diagramas Dinámicos
• Diagramas de estados
• Presenta los estados en los que puede encontrarse un objeto junto
con las transiciones entre los estados, y muestra los puntos inicial y
final de una secuencia de cambios de estado.
• Los símbolos UML en un diagrama de estados son:
Estado
Nombre
Inicio Fin
Variables de
estado Transición
Transición
Evento que Actividades
dispara
Pag. 33
Diagramas Dinámicos
Hacer/Arrancar
Hacer/Arrancar
[lapso transcurrido] Teclazo o movimiento
del ratón
Protector
De
pantalla
Pag. 34
Diagramas Dinámicos
Operación
A la espera Registro de Representación
de acción una acción de la acción
del usuario del usuario del usuario
[lapso transcurrido]
Verificar el
Actualizar
conómetro
despliegue
del sistema
Pag. 35
Diagramas Dinámicos
[lapso transcurrido]
Verificar el
Actualizar
conómetro
despliegue
del sistema
Teclazo
[lapso transcurrido] o movimiento
del ratón
Pag. 36
Diagramas Dinámicos
Pag. 37
Diagramas Dinámicos
• Diagramas de actividades
• Describen como se coordinan las actividades, muestran como puede
ser implementada una operación que debe realizar muchas tareas
diferentes y se desea mostrar cuales son las dependencias
esenciales entre ellas.
• Elementos de un diagrama de actividades:
• La actividad se muestra como una caja con nombre con las esquinas muy
redondeadas, representa cuando la actividad ha terminado
Actividad
Actividad 1 Actividad 2
Pag. 38
Diagramas Dinámicos
Fin de la
jornada
Baño Descanso
Pag. 39
Diagramas Dinámicos
Oprimir numero
Fin de la de canal
jornada
Cambiar(canal) Cambiar(canal)
Oprimir numero
de canal
Pag. 40
Diagramas Dinámicos
Pag. 41
Diagramas Dinámicos
Esperar en [regresando]
la fila
[obteniendo
prestado]
Registrar el Poner el libro de
regreso Regreso en gaveta
Registrar el
préstamo
Preparar para
el siguiente miembro
Pag. 42
Diagramas Dinámicos
Pag. 43
Diagramas Dinámicos
• Diagrama de secuencias.
• Muestra la forma en que los objetos se comunican entre sí al
transcurrir el tiempo. Constan de objetos y representando en una
línea vertical el tiempo, se indican las operaciones que ejecuta el
objeto o activación se representan mediante un rectángulo cuya
altura va en relación a la duración de la operación.
• Los mensajes van de un objeto a otro se representan con líneas.
Pueden ser simples (transfieren control), sincrónicos (esperan
respuesta) o asincrónicos (no espera respuesta)
:Objeto 1 :Objeto 2
Pag. 44
Diagramas Dinámicos
Pag. 45
Diagramas Dinámicos
[necesitaReorden]
Regreso nuevo
Un Artículo
de reorden
Creación
[hayExistencia]
nuevo()
Un Artículo
para entrega
Pag. 46
Diagramas Dinámicos
Pag. 47
Diagramas Dinámicos
Pag. 48
Diagramas Dinámicos
bien
se suprimen
las demás
¿todo transacciones
terminado?
bien
el objeto
se borra
¿todo a sí mismo
es Válido terminado?
Autodelegación
Pag. 49
Diagramas Dinámicos
Pag. 50
Diagramas Dinámicos
• Diagramas de colaboraciones.
• Muestra los objetos,las relaciones entre ellos, los mensajes que se
envían los objetos entre sí.
• El mensaje se representa como una flecha cerca de la línea de asociación
entre dos objetos. Esta flecha apunta al objeto receptor. El tipo de
mensaje se mostrará en una etiqueta cerca de la flecha.
• El mensaje le indicará al objeto receptor que ejecute una de sus
operaciones.
• Un diagrama de secuencias puede ser convertido en uno de
colaboraciones y viceversa.
• Se agregará una cifra al mensaje para indicar la secuencia propia del
mensaje.
:Nombre1
1:Agregar()
3:Actualizar()
:Nombre2
:Nombre3 2:Modificar()
Pag. 51
Diagramas Dinámicos
:GUI 1:notificar(tecleo)
6:respuesta()
3:actualizar(tecleo) :Sistema operativo
:Monitor
2:actualizar(tecleo)
5:mostrar(tecleo) :CPU
4:notificar(tecleo)
:Tarjeta de video
Pag. 52
Diagramas Dinámicos
Pag. 53
Diagramas de Implementación
• Diagramas de componentes
• Un componente es la implementación de un subsistema, la cual da las
especificaciones (en términos de casos de uso) y una estructura de clases que
lleva a cabo la especificación. Su representación es:
calculadora.java
Pag. 54
Diagramas de Implementación
Pag. 55
Diagramas de Implementación
«compilar»
MiAplicación
«ejecutable»
Pag. 56
Diagramas de Implementación
ProcesadorTextos.exe
Clases:
ProcesadorTextos
VerificadorOrtografico
ContadorPalabras
ProcesadorTextos.exe
Pag. 57
Diagramas de Implementación
«Interfaz»
ElementoDeEscucha AWTEventMulticaster
cambioAlEstadoDelElemento()
Animacion.htm
«ActiveX»
VBScript
DisposicionAnimacion.alx
«ActiveX»
BotonEjecutar
«ActiveX»
ImagenEsfera «ActiveX»
BotonDetener
«ActiveX»
CronometroEsfera «ActiveX»
BotonReinicar
Esfera.gif
«ActiveX» «ActiveX»
CuadroCombCronometro CuadroCombDistancia
Pag. 59
Diagramas de Implementación
• Diagramas 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.
• Un nodo representa todo tipo de equipo de cómputo y se representa
por un cubo:
Nodo
Pag. 60
Diagramas de Implementación
• Diagramas de distribución.
• Los nodos se interconectan mediante soportes bidireccionales (en
principio) que puede a su vez estereotiparse.
• Se pueden mostrar los componentes en relaciones de dependencia
con un nodo:
Servidor
Directorio telefónico
corporativo
Programa de Resultado de
búsqueda la búsqueda
Pag. 61
Diagramas de Implementación
Servidor
Directorio telefónico
corporativo
Programa de Resultado de
búsqueda la búsqueda
«Comunicación»
Cliente
Programa de
Presentación
Pag. 62
Diagramas de Implementación
PC PC
Pentium 300Mhz Pentium 300Mhz
Windows 95 Windows 95
«Dispositivo» «Dispositivo»
«Dispositivo» «Dispositivo»
Modem ESS 336V Monitor
Conector T Conector T
PackardBell
Pag. 63
Caso de Estudio (CS4)
Pag. 64
Caso de Estudio (CS4)
Pag. 65
Caso de Estudio (CS4)
Producir el
manual del curso
OEP Adjunto CS4
Inscribir en los
Módulos
eCS4 Director de estudios CS4
Pag. 66
Caso de Estudio (CS4)
Pag. 67
Caso de Estudio (CS4)
Director de
Estudios dirige
1..*
1 1..*
0..* Estudiante
Cursos Grado
1
esta en
0..*
Estudiante Estudiante
otros años 4to año
Pag. 68
Caso de Estudio (CS4)
Asignar
Adjuntos
Actualizar registro
de módulo
Pag. 69
Caso de Estudio (Restaurante)
Entra el cliente
[Prefiere el bar]
[Lista de espera] Espera en el bar
Pag. 70
Caso de Estudio (Restaurante)
Pag. 71
Caso de Estudio (Restaurante)
Entra el cliente
Llamar al asistente
Ir por las bebidas
Servir Pan y agua
Traer bebida
Modelado en
un diagrama
Traer entremes Preparar platillo Por separado
Pag. 72
Caso de Estudio (Restaurante)
Pag. 73
Caso de Estudio (Restaurante)
[Desea postre]
Traer el menú
de postres
Ingerir postres
[Guardar abrigo/sombrero] Liquidar cuenta
Recoger abrigo Dejar propina
Salir
o sombrero
Pag. 74
Caso de Estudio (Restaurante)
• Preparación de platillos
• ¿Cómo se coordina el chef para tener los platillos a tiempo? R: La gente en una mesa
casi siempre termina sus entremeses, en momentos distintos. Entre el mesero y el chef
se coordinan para traerles a todos los platos fuertes al mismo tiempo. El chef recibe la
comanda y empieza a preparar los entremeses y el plato fuerte, cuando esta terminado el
entremés, el mesero va a la cocina, los toma y los lleva a la mesa.
• ¿Cómo se entera el mesero que ya están listos los entremeses? R: El mesero va a la
cocina de vez en cuando. El chef luego de dar el entremés al mesero, espera que este le
avise cuando la mayoría de los comensales ya casi ha terminado con sus entremeses
para poderle dar el toque final a cada plato fuerte. El mesero va a la cocina, y le avisa al
chef que ya casi están listos para el plato fuerte, el chef termina su preparación. El
mesero los toma y los lleva a la mesa
Pag. 75
Caso de Estudio (Restaurante)
• Preparación de platillos
Recibir comanda
Iniciar la preparación
Preparar entremeses
Del plato fuerte
Coordinar la preparación
Llevar entremeses
de otros pedidos
Finaliza la preparación
de plato fuete
Tomar el plato
fuerte
Pag. 76
Caso de Estudio (Restaurante)
• Clases y asociaciones
• El cliente se asocia con una gran cantidad de clases, como muestran las
asociaciones a continuación:
Postre Cuenta Propina Reservación
1 1 1
Ingiere Liquida 1
Deja
1 1 1
1
Hace
1..*
Es atendido por 1
1
Cliente Mesero
Da a guardar Sombrero
1
0..*
1 1 1 1 1
Da a guardar 1 Encargado del
Guardarropa
Elige del 0..*
Abrigo
Ingiere
Hace
1
1 1 Elige del
1
Orden
Menú Alimento Menú del
postre
Pag. 77
Caso de Estudio (Restaurante)
Pag. 78
Caso de Estudio (Restaurante)
Pag. 79
Caso de Estudio (Restaurante)
«Dispositivo»
Computadora
palmtop
Inalámbrico
«Dispositivo»
Red
«Dispositivo» «Dispositivo»
PC de la PC del
cocina gerente
Pag. 80
Caso de Estudio (Restaurante)
• Casos de uso
• El paquete mesero
Mesero
Totalizar
Una cuenta
Transmitir una
Orden al bar
Tomar
Tomar una orden Obtener un acuse
una orden
Incluir De bebida De recibo
Pag. 81