Download - planeacion de software
UMLUMLUML significa Lenguaje Unificado de ModeladoUML combina lo mejor de:– Conceptos de modelado de datos
(diagramas entidad-relación)– Modelado de negocios (flujos de trabajo) – Modelado de objetos – Modelado de componentes
Notación UMLNotación UML
UML define 9 tipos de diagramas que representan los distintos puntos de vista de modelado.
DiagramasDiagramas
1) Diagramas de casos de uso. Representan las funciones de un sistema desde el punto de vista del usuario.
2) Diagramas de secuencia.Son una representación temporal de los objetos y sus relaciones.
3) Diagramas de colaboración.Son una representación espacial de objetos, uniones e interacciones.
DiagramasDiagramas
4) Diagramas de objeto.Representan objetos y sus relaciones.
5) Diagramas de clase.Representan la estructura estática en términos de clases y relaciones.
6) Diagramas de estado.Representan el comportamiento de una clase en términos de estado.
DiagramasDiagramas
7) Diagramas de actividad.Representan el comportamiento de una operación como un conjunto de acciones.
8) Diagramas de despliegue.Representan la colocación de componentes en piezas particulares de hardware.
9) Diagramas de componenteRepresentan los componentes físicos de una aplicación.
Diagramas de Casos de UsoDiagramas de Casos de Uso
Es la descripción de un comportamiento, de acuerdo a la funcionalidad esperado, con el objetivo de completar una tarea del sistema.Modela la funcionalidad del sistema desde el punto de vista de usuarios externos llamados actores.El propósito es definir una pieza de comportamiento coherente, sin revelar la estructura interna del sistema.
Catálogo telefónico
Cliente
Vendedor
Encargado de Envíos
Supervisor
revisarcondiciones
hacer pedido
atender pedidos
establecer créditos
Nombre del Sistema
Actores
Caso de Uso
Comunicación entre Actor y Caso de Uso
EjemploEjemplo
Diagrama de Caso de UsoDiagrama de Caso de UsoActor: representa cualquier persona o sistema que
necesita interactuar con el sistema. Actores principales. Personas que usan funciones del sistema principal. En el caso de un cajero automático, son los clientes.Actores secundarios. Llevan a cabo actividades de administración o mantenimiento. En el caso de un cajero, es la persona que rellena el cajero de dinero.
Maneja
Servicio
Vende
Repara
Cliente
Mecánico
Vendedor
Casos y ActoresCasos y Actores
La misma persona física puede hacer el rol de varios actores . Además, varias personas pueden tener el mismo rol y por lo tanto ser el mismo actor (todos los clientes). El nombre del actor describe el rol hecho por el usuario.
Casos y Actores en “paquetes”Casos y Actores en “paquetes”Para identificar en forma más sencilla a los actores y sus casos de uso, se sugiere organizarlos en “paquetes”, de acuerdo a las principales funciones de sistema:– Ayudan a la modularidad del sistema– Facilitan la identificación de las casos de uso y
los actores principales y secundarios– Mantienen un nivel de complejidad adecuados
RelacionesRelaciones
Relación “usa” (use)Una relación “usa” entre casos significa que
una instancia del caso fuente también incluye el comportamiento descrito por el caso apuntado. Esta relación ocurre cuando tenemos un comportamiento que es similar entre varios casos y no queremos copiar la descripción de ese comportamiento.
RelacionesRelaciones
Relación “extiende” (extend)Relación “extiende” se usa cuando
tenemos un caso que es similar a otro caso pero hace un poco más. También puede verse como un comportamiento opcional al sistema.
Transfiere
Identificación
Transferido por
computadora
Cliente Local
Cliente Remoto
<<extiende>>
<<usa>>
RelacionesRelaciones
EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientesSuponga que se requiere desarrollar el control de una máquina automática paradespachar bebidas calientes. La máquina recibe monedas de 0.50, 1, 2 y 5 pesos. Existen tres tipos de bebidas (café negro, café capucino, chocolate).
Es posible azucarar al gusto el productoseleccionado y la máquina es capaz de darcambio. El dinero que los usuarios introducen se guarda en un recipiente aparte al disponiblepara el cambio, el cual se encuentra ordenadopor denominación.
EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes
EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes
DiagramaDiagrama de de CasosCasos de de UsoUso
introducirDineropedirAzucar
pedirProducto
darCambiocancelar
“uses”
“uses”
“uses”
hacer pedido
pedir producto
<<include>>
datos del cliente
<<include>>
organizar pago
<<include>>
Estas inserciones son explicitas de “hacer pedido!”
Inclusión
solicitar catálogo
<<extend>>
Extensión
EjemploEjemploCatálogo Telefónico
Documentación Documentación de un Caso de Usode un Caso de Uso
Una vez identificados los casos de uso y sus actores es muy importante documentar cada caso de uso.– Ayuda a aclarar la lógica de interacción– Permite detectar los objetos involucrados– Es la base para construir los diagramas de
secuencia y de actividad.
Nombre del caso de usoActor(es)DescripciónPre-condiciónDisparadorEventos normalesExcepciones (Variaciones alternas)
http://members.aol.com/acockburn/papers/uctempla.htm
Documentación Documentación de un Caso de Usode un Caso de Uso
EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes
DocumentaciónDocumentación de un de un CasoCaso de de UsoUso
Nombre del caso de uso: IntroducirDineroActor(es): ClienteDescripción: Solicita el dineroPre-condición: La maquina está lista.Disparador: Recepción de monedasEventos normales: 1. Recibe dinero
2. Cuenta dineroExcepciones : 1. Falla de la máquina(Variaciones alternas)
Diagrama de SecuenciaDiagrama de SecuenciaUn objeto
Nuevo objetoMuestra un conjunto de mensajes dispuestos en una secuencia de tiempo.Muestra el comportamiento secuencial de un caso de uso.
Diagrama de SecuenciaDiagrama de Secuencia
Un objetoNuevo objeto
Línea de Vida
Objetos
Tiempo
Fin de la vida
Mensajes
EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes
DiagramaDiagrama de de SecuenciasSecuencias
:Máquina :Producto :Ingrediente
darCambio()
“destroy”
1:servir()2:*[1..n] servir()
Diagrama de secuenciaDiagrama de secuenciaCatálogo Telefónico
p: Cliente p: Vendedor s: Inventario s: Almacen
1.Solicita Artículo2.Verifica “stack”
3.Indica Cant. de Artículos
4.Indica existencia
5.Hace pedido6.Solicita el Artículo
7.Fecha de Envío8.Fecha de Envío
“9.destroy”
Diagrama de ColaboraciónDiagrama de ColaboraciónDestaca la organización de los objetos que
participan en una interacción.
Tienen dos características que los distinguen de los diagrama de secuencias:
•El camino: Indica como se enlaza un objeto a otro
•El número de secuencia: indica la ordenación temporal de un mensaje.
Objeto 1
Objeto 3Objeto 2
1: acción()
2: acción()
3: acción()
Diagrama de ColaboraciónDiagrama de Colaboración
Enlace
Objetos
Secuencia
Mensaje
:Máquina
:Producto
3:dar_Cambio()
1:servir()
:Ingrediente
2:*[1..n] servir()
EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes
DiagramaDiagrama de de ColaboraciónColaboración
Diagrama de ColaboraciónDiagrama de ColaboraciónCatálogo Telefónico
p: Cliente
p: Vendedor
s: Inventario
s: Almacen
1: Solicita Artículo
2: Verifica “stack”
3: Hace pedido
4: Solicita Artículo
5: “destroy”
Diagramas de objetosDiagramas de objetosPresentan un conjunto de objetos y sus relaciones identificados en los requerimientos funcionales y casos de uso de un escenario de negocios de un sistema.Cubren una vista de diseño estático desde la perspectiva de casos reales o prototípicos.Para representarlos se parte de un proceso de identificación de sustantivos en la descripción de eventos normales y diagramas de secuencia y colaboración de los casos de uso
Modelo de ObjetosModelo de Objetos
Encontrando OBJETOS. Para evaluar si un objeto candidato realmente es un
objeto del sistema debe tomar en cuenta:– Un objeto debe tener datos que deben ser almacenados– Cada objeto debe tener más de un atributo– Todas las instancias del objeto comparten los mismos
los métodos y atributos.
EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes
DiagramaDiagrama de de ObjetosObjetos
MáquinavalorRecolectado: 10.00
IngredienteCantidad: 1cNombre:cafe
ProductoCosto: 10.00Nombre: Cafe
DepositoMonedasnumMonedas: 1
DepositoMonedasIguales
Denominacion: 1.00, 5.00, 10.00PanelControl
EjemploEjemplo
d1:Departamento
d2:Departamento
Nombre=“Ventas”
Nombre=“Conta”
p:Persona
Nombre=Fco. LópezId: 121415
director
Reporta Paga
Rol
Enlace
Valor al Atributo
Comportamiento: se refiere a aquellas cosas que el objeto puede realizar.
Conceptos Básicos Conceptos Básicos ClasesClases
Cliente
Alta()Baja()Modificación()Consulta()
NombreDirecciónTeléfono
Nombre
Atributos
Operaciones
Clase
Objeto:Es cualquier cosa, lugar, persona acerca de
la cual el usuario puede guardar información y asociar un comportamiento.
Conceptos Básicos Conceptos Básicos Clases y Objetos Clases y Objetos
:Cliente
Nombre=“Ventas”
Representación en UML
Clase 1
Clase 2 Clase 3
Herencia: significa que el comportamiento y/o atributos definidos en una clase pueden ser reusadosen otra clase distinta.
Generalización: es una relación que describe la forma que que dos clases interactuan es decir la subclase hereda los atributos y métodos de la superclase.
Relaciones 00 Relaciones 00
Clase 1
Clase 2 Clase 3
Composición: es una relación que describe cuando un objeto esta compuesto de uno o más objetos.
Relaciones OO Relaciones OO
Clase 1 Clase 2
Clase 1 Clase 2
Relaciones de colaboraciónRelaciones de colaboración
Cardinalidad: relación entre objetos que denota el número de instancias de A que pueden ser relacionadas a una instancias de B – Cada instancia de la clase1 es asociada con cero o una
instancia de la clase2
– Cada instancia de la clase1 es asociada con exactamente una instancia de la clase2
0..1
1
Clase 1 Clase 2
Clase 1 Clase 2
Relaciones de colaboración y su cardinalidad– Cada instancia de la clase1 es asociada con cero o
muchas instancias de la clase2
– Cada instancia de la clase1 es asociada con una o muchas instancias de la clase2
*
1..*
Relaciones de colaboraciónRelaciones de colaboración
Especificación de ClasesEspecificación de ClasesPara cada clase del modelo de objetos se debe
realizar una especificación de clases que contenga:
– Nombre de la clase– Definición de negocio para la clase (significado
para el usuario)– Relaciones, especificar si es una colaboración,
especialización o composición.
Especificación de ClasesEspecificación de Clases– Atributos, especificando como mínimo el tipo
de dato.– Definición de los métodos, incluyendo como el
método se lleva a cabo y que datos necesita. Recomendable utilizar texto estructurado.
EjemploEjemploMáquinaMáquina de de BebidasBebidas CalientesCalientes
DiagramaDiagrama de de ClasesClases
MáquinavalorRecolectadorecibirPeticion()recibirDinero()darCambio()….
Ingredientecantidadnombreservir()
Productocostonombreservir()
DepositoMonedasnumMonedasagregarMoneda()
DepositoMonedasIgualesdenominaciondarMoneda()…..
1..4
1
4
1..*
1..*
1..*
PanelControl
Ejemplo: Diagrama de ClasesEjemplo: Diagrama de Clases
EmpleadoNombreIdRegistro()
DepartamentoNombreClaveConsulta()Solicitud()
1..*
EmpresaNombreRFC
1..*
1
* 1
Depto. Contabilidad
directormiembro
Paga
Rol
DependenciaGeneralización
Cardinalidad
Agregación
Estado 3
Modela los posibles cambios de un objeto.
También es útil para describir el comportamiento del sistema.
Estado 1
Estado 2
Estado inicial
Estado final
Diagrama de EstadoDiagrama de Estado
EjemploEjemplo: : MáquinaMáquina de de BebidasBebidas CalientesCalientesDiagramaDiagrama de de EstadosEstados
Lista RecibiendoMonedas
Elección Productoy azucar
Sirviendo Producto
Desperfecto
userInput(BotonOn)[todoOk=true] userInput(BotonOn)[todoOk=false]
[todoOk=false
]
Apagada
userInput(BotonOff)
use
rIn
put(
Bot
onO
ff)
userInput(BotonOn)[todoOk=true]/MostrarDineroActual
userInput(Boton)[todoOk=true]/MostrarNivelAzucar, MostrarProducto
[todoOk=true]/ServirProducto
[todoOk=true]/IniciarIndicadores
BuenFuncionamiento
Diagrama de actividadesDiagrama de actividadesCombina el diagrama de eventos de JimOdell, las técnicas de modelado de estados y las redes de Petri.Son útiles en conexión con el flujo de trabajo donde una actividad es un método sobre una clase.Permite documentar la lógica de cada caso de uso.
*[Para todo caso]
ActividadActividad
Actividad
Actividad
Actividad
[Condición 1]
[Condición 2]
[Condición de sincronización]
Diagrama de ActividadDiagrama de Actividad
EjemploEjemplo: : MáquinaMáquina de de BebidasBebidas CalientesCalientesDiagramaDiagrama de de ActividadActividad
Servir productos Servir azucar Servir AguaCaliente
Indicar que la bebida esta lista
Preparar vaso
Lista
EjemploEjemplo: : DiagramaDiagrama de de ActividadActividadMétodoMétodo: : hacerhacer pedidopedido
Cancela orden Autoriza pago Verificaexistencias
Asigna orden
Despacha orden
Recibe orden
Reordena
Inicio
*[Para cada artículo]
[fallo] [éxito]
[en existencia] [falta mercancia]
Diagrama de DespliegueDiagrama de Despliegue
El diagrama de despliegue (deployment) muestra la configuración de los elementos de procesamiento en tiempo de ejecución (run-time) con sus respectivos procesos de softwareVisualiza la distribución de componentes
DirecciónBase dedatos
Biblioteca
Jardines
Edificio Principal
Diagrama de DespliegueDiagrama de Despliegue
EjemploEjemplo: : MáquinaMáquina de de BebidasBebidas CalientesCalientesDiagramaDiagrama de de DespliegueDespliegue
PCMáquina
DepositoMonedas
DepositoMonedasIguales
DespachadorProductos
PanelControl
1 4
1
11
3
1
1
Diagramas de ComponentesDiagramas de ComponentesEl mundo físicoEl mundo físico
Los diagramas de componentes ilustran la organización y dependencia entre los componentes de software
Un componente puede ser:– Código fuente– Código ejecutable– Código interpretado
Curso CursoOfertado
Alumno Profesor
Diagrama de ComponentesDiagrama de Componentes
Curso.dllPersona.dll
CursoUsuario
Inscribe.exeFactura.exeSistema
facturación
EjemploMáquina de Bebidas CalientesDiagrama de Componentes
Despachador.dll
Control de dinero.dll
Panel de Control.dll
Forma icónica
Despachador
MetamodeloMetamodelo
Para dar más rigor, sin perder la utilidad se crea el metamodelo. Un metamodelo es un diagrama, usualmente un diagrama de clase, que define la notación.Se dice que UML es un lenguaje Metamodelo.
BibliografíaBibliografíaBooch G. , Rumbaugh J., Jacobson I. “El Lenguaje Unificado de Modelado”,
Addison Wesley Iberoamericana, Madrid 1999Rational Software Co.,
“Analysis and Design with UML”, 1997Figueroa P., “Elementos notacionales de UML”, Univ. Los Andes, Bogotá, Colombia1997 http://agamenon.uniandes.edu.co/~pfiguero/soo/uml/
BibliografíaBibliografíaMuller P. , “Instant UML”, Wrox. 1997Fowler M. , Scott K., “UML gota a gota”, 1997Pressman R. , “Software Engineering. A practitioner´s Approach Ed. Mc Graw Hill. Cuarta edición. 1997Larman C. “UML y patrones”. Ed. Prentice Hall. 1999.Página de Rational Rose en México:– http://www.abits.com.mx/