Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
25/04/2020 1 Análisis y Diseño de Sistemas UML Modelado Conceptual 1 Modelo Conceptual Objetivo: Desarrollar un diagrama de clases (Modelo Conceptual). Contenido: • Modelado Conceptual • Características específicas • Agregación/Composición • Clase-Asociación • Generalización • Restricciones y notas 2 Análisis y Diseño de Sistemas 25/04/2020 2 Modelado conceptual • Especifica los conceptos más significativos del dominio del problema. • Estos conceptos deben estar contenidos en los requisitos del futuro sistema. • Para UML representa una estructura estática, típicamente no se define ninguna operación. La representación incluye los atributos y relaciones de los conceptos. • Características: • Claro y simple • Consistente • Completo • Fidelidad • No redundante 3 Análisis y Diseño de Sistemas Modelado conceptual con UML • Qué significa “modelo conceptual” • Es una vista gráfica de la información controlada por el sistema. • Dos niveles de abstracción: clasificación / instanciación • clase: es una plantilla que define a un grupo de entidades con estructura, relaciones, semántica y comportamiento comunes. • objeto: representa a una entidad concreta con identidad, estado y comportamiento. Juan:Vendedor reloj:Artículo radio:Artículo Objetos Clase 4 Análisis y Diseño de Sistemas 25/04/2020 3 Definiciones básicas • clases en análisis y diseño: • Análisis • Representan o corresponden a conceptos del dominio. • Por lo general se representan conceptos y atributos. • Diseño • Representan o corresponden a fragmentos de código. • Especifican al detalle elementos de implementación. 5 Análisis y Diseño de Sistemas Notación básica de objetos y clases p1 : Punto posiciónX = 3 posiciónY = -5 p2 : Punto posiciónX = 0 posiciónY = 2 «instance of»«instance of» p1 : Punto p1 : Punto Punto posiciónX posiciónY Punto situar( ) mover( ) Punto Punto posiciónX posiciónY situar( ) mover( ) 6 Análisis y Diseño de Sistemas 25/04/2020 4 Tipos de clases • Tipos de clases según los objetos representados: • objetos físicos: avión, persona, libro... • objetos lógicos: cuenta corriente, asignatura, número complejo… • objetos históricos: asiento bancario, reserva de habitación… • Para entender lo que es una clase, hace falta entender cuáles serán sus instancias. Un caso especial lo constituyen los objetos que representan una colección, familia o tipo de cosas, más que una cosa en sí misma. • Ejemplos: raza perruna, producto a la venta, título en la biblioteca. • Todo objeto representa una “entidad concreta”, pero esto no significa necesariamente “entidad física” o tangible. 7 Análisis y Diseño de Sistemas DNI: 18153658 Nombre: Luis Edad: 35 Empresa: UDEP DNI: 18143535 Nombre: Ana Edad: 30 Empresa: CIP Trabajador Atributos • Atributo: propiedad compartida por los objetos de una clase • cada atributo tiene un valor (probablemente diferente) para cada objeto • Atributo derivado (concepto propio del análisis): • propiedad redundante que puede ser calculada a partir de otras • /área ( = base * altura) • pueden implementarse como operaciones al pasar a diseño • Notación (más importante en diseño) • pueden suprimirse todos los elementos excepto el nombre de atributo: • visibilidad nombre multiplicidad : Tipo = valorInicial • Ejemplos: • + saldo : Moneda = 0 • - Edad *: Entero • Apellido 8 Análisis y Diseño de Sistemas Atributos 25/04/2020 5 Operaciones • Operación: función o transformación que puede aplicarse a los objetos de una clase. • puede ser invocada por otros objetos, o por el mismo objeto. • método: especificación procedimental (implementación) de una operación. • Notación (más importante en diseño) • pueden suprimirse todos los elementos excepto el nombre de operación • visibilidad nombre (param: Tipo = valDef,…) : TipoRet • ejemplos: • obtenerSaldo ( ) : Moneda • marcar (número : Teléfono; reintentos : Integer) 9 Análisis y Diseño de Sistemas Operaciones Enlaces y asociaciones Asociación: Especificación de un conjunto de enlaces. Representa la estructura y el comportamiento del sistema. Enlace: Conexión entre objetos. Determina una tupla de objetos. Instancia de una asociación. ArtículoVendedor Juan : Vendedor Ana : Vendedor Estatuilla : Artículo Cuadro : Artículo Espejo : Artículo 10 Análisis y Diseño de Sistemas 25/04/2020 6 Asociaciones: nombre de asociación y nombre de rol ArtículoVendedor subasta Nombre de asociación Dirección del nombre Los nombres de asociación se pueden repetir en un modelo, excepto para asociaciones entre las mismas dos clases 11 Análisis y Diseño de Sistemas • Valores típicos: – 0..1 cero o uno – 1..1 uno y sólo uno (abreviado como “1”) – 0..* desde cero hasta “muchos” (abreviado como “*”) – 1..* desde uno hasta “muchos” • Otros valores: – rangos enteros: (2..*), (0..3), etc. – lista de rangos separados por comas: (1, 3, 5..10, 20..*), (0, 2, 4, 8), etc. Multiplicidad de la asociación • En una asociación binaria, la multiplicidad de un extremo de asociación especifica el número de instancias destino que pueden estar enlazadas con una única instancia origen a través de la asociación ArtículoPersona vendedor artículo 1..1 0..* Artículo participa obligatoriamente Persona participa opcionalmente 12 Análisis y Diseño de Sistemas 25/04/2020 7 Asociaciones actor-sistema y clase-clase • Un mismo concepto puede ser modelado a la vez como actor y como clase: • Actor: representa entidades externas al sistema. • Clase: representa entidades modeladas dentro del sistema. • No confundir asociaciones actor-sistema (casos de uso, relaciones con el exterior) con asociaciones clase-clase (relaciones internas): • “Para subastar algún artículo es necesario darse de alta como vendedor, introduciendo el DNI, un nombre descriptivo (largo), un nombre de usuario (breve) y una contraseña de acceso. Una vez que el vendedor está dado de alta, puede registrar artículos en la subasta o modificar alguno de sus datos: descripción breve, descripción ampliada, fotografía en formato JPEG, y precio de salida.” Artículo descripciónBreve descripciónAmpliada fotografía precioSalida Vendedor dni nombreDescriptivo nombreUsuario contraseña subasta registra modifica Vendedor Registrar artículo Modificar datos de artículo 13 Análisis y Diseño de Sistemas Asociaciones reflexivas • Una asociación reflexiva (o recursiva) es aquella en la que los dos extremos de la asociación están unidos a la misma clase. • Los enlaces pueden conectar dos instancias diferentes de la misma clase, o incluso una instancia consigo misma. • En una asociación reflexiva los nombres de rol son obligatorios, para poder distinguir los dos extremos de la asociación. • Una asociación reflexiva no es simétrica: los extremos son distinguibles, aunque la asociación quiera significar equivalencia: es-amigo-de, es-igual-a... Empleado Personadirige 0..1 0..* jefe subalterno ama 0..* 0..* amante amado dirige(Ana, Juan) dirige(Juan, Ana) ama(Pedro, Clara) ama(Clara, Pedro) 14 Análisis y Diseño de Sistemas 25/04/2020 8 Clase-asociación • Tiene todas las propiedades de una clase y de una asociación: • Atributos, operaciones y asociaciones con otras clases. • Conexión entre clases que especifica enlaces entre ellas. • Multiplicidad, navegabilidad, etc • Es un único elemento, por tanto tiene un nombre único. • Como cualquier otra asociación, no puede contener tuplas repetidas, aunque los valores de los atributos sean distintos: sustituir clase-asociación por clase intermedia. Persona Empresa trabaja-para sueldo Cuenta trabaja-para1..* 0..* pagar-en0..* 1 15 Análisis y Diseño de Sistemas Persona Empresa trabaja-para sueldo pagar( ) trabaja-para1..* 0..* Transformación de clase-asociación en clase intermedia • Sustituir la clase-asociación por una clase simple, cuyas instancias representan enlaces. • Las multiplicidadesoriginales se cruzan, y aparecen otras nuevas. • Es una forma de implementar la clase- asociación, pero hay que añadir una restricción adicional para no permitir tuplas repetidas. clase intermedia clase-asociación Persona Empresa trabaja-para sueldo pagar( ) 1 0..* 1 1..* 16 Análisis y Diseño de Sistemas 25/04/2020 9 Generalización y clasificación • Principio de sustitución: • Extensión: todas los objetos de la subclase son también de la superclase. • Intensión: la definición de la superclase es aplicable a la subclase. • Generalización: clase-clase. Es una clasificación de clases. • Gato es un tipo de Mamífero, Mamífero es un tipo de Animal. • Clasificación: objeto-clase. • Fluti es un Gato, Fluti es un Mamífero, Fluti es un Animal. Gato Mamífero Animal Fluti «instance of» Instancias directas e indirectas 17 Análisis y Diseño de Sistemas Jerarquías de clases Generalización: - no-reflexiva - transitiva - asimétrica Representaciones alternativas: - relaciones binarias - estructura en árbol Transporte Aéreo Terrestre Avión Helicóptero Bicicleta Automóvil Ferrocarril Transporte AéreoTerrestre Avión HelicópteroBicicleta Automóvil Ferrocarril 18 Análisis y Diseño de Sistemas 25/04/2020 10 Subclase vs. Atributo • ¿Cómo modelar las propiedades de los objetos? Regla general: • Propiedad cambiante o rango de valores muy grande: atributo. • Propiedad fija con valores enumerados: especialización (cada propiedad se traduce en un criterio de especialización, cada valor en una subclase). • También se puede modelar como un atributo con valor fijo. • Criterio final de especialización: comportamiento. ¿Especialización exagerada? Alternativa a la doble especialización CuentaCorriente titular moneda Coche CocheRojoCocheVerdeCocheAzul color 19 Análisis y Diseño de Sistemas Diagramas de clases y de objetos • Diagrama de clases • captura y especifica el vocabulario del sistema: • elementos: clases, atributos, operaciones... • relaciones: asociaciones, generalizaciones... • estructura del sistema, fundamento de su comportamiento • sugerencias para mejorar la comunicación: • nombres adecuados: clases, atributos, operaciones, asociaciones, etc. • distribución espacial de los elementos y evitar cruces de líneas • distinto nivel de detalle según el propósito y nivel de abstracción • Diagrama de objetos • ilustra la estructura del sistema mediante situaciones particulares • “fotografía” del sistema: objetos, valores de atributos; enlaces • las instancias deben conformarse a sus especificaciones • objetos, enlaces → clases, asociaciones • las especificaciones pueden estar representadas en distintos diagramas 20 Análisis y Diseño de Sistemas 25/04/2020 11 Diagrama de clases vs. Diagrama de objetos Acme : Sociedad Emca : Limitada Ana : Persona Clara : Persona Pedro : Persona accionista empleado empleado accionista Sociedad Persona accionista empleado Sociedad Anónima Limitada 21 Análisis y Diseño de Sistemas Restricciones y notas {ningún accionista puede ser empleado} falta determinar las subclases de Sociedad Sociedad Persona accionista empleado Vendedor nif {regla nif} nombreDescriptivo nombreUsuario contraseña 22 Análisis y Diseño de Sistemas 25/04/2020 12 Restricciones en asociaciones Vuelo Aeropuerto {ordered} escala * 0..* * 1origen * 1destino Cliente Mesa * * reserva Cuenta Sociedad Persona * 1..1 * 1..1 {xor} or exclusivo entre asociaciones ordenación de los elementos una asociación no puede contener túplas repetidas 23 Análisis y Diseño de Sistemas Ejercicio: hacer el modelo conceptual del caso ▪ El dueño de una farmacia requiere un sistema informático para controlar la farmacia. ▪ El almacenero recibe y revisa los productos de los proveedores y los coloca en los estantes respectivos. Los productos son registrados mediante una guía de remisión (documento con que llegan las medicinas: Nº de guía, fecha, hora, proveedor, etc.). Tomar en cuenta que un producto siempre es comprado a un único proveedor. El almacenero también gestiona los datos de las medicinas que se manejan. ▪ Las salidas de almacén se realizan por las ventas (boleta o factura). El vendedor registra la boleta: Número, Fecha, etc. Y el gerente realiza la venta con factura: N° de factura, fecha, Ruc y nombre del cliente, etc. ▪ Para una venta tanto el vendedor y el gerente requieren consultar las medicinas. ▪ El gerente necesita consultar qué cliente ha realizado más compras en un mes, para darle regalos, cada cierto tiempo. Los regalos no son controlados por el sistema. ▪ Es el gerente gestiona a los datos de los clientes (Nombre, teléfono, dirección, etc.) mediante el sistema. También el gerente es el encargado de registrar los proveedores (Nombre, teléfono, dirección, etc.). 24 Análisis y Diseño de Sistemas
Compartir