En 1994, Booch, Rumbaugh y Jacobson al unificar las notaciones de sus métodos, dan origen al UML: Unified Modeling Language
que es un lenguaje para visualizar, especificar, construir y documentar los artefactos (modelos) de un sistema que involucra una gran cantidad de software, desde una perspectiva OO.
- Ingeniería directa.
- Inversa.
|
||
de casos |
conceptual |
|
de interacción |
de Clases |
Tecnológica: Conceptos, Notación, Técnicas y Herramientas.
Proceso: Conjunto de pasos a realizar y resultados obtenidos en cada paso.
Organización: Cómo organizar las personas para acomodar el proceso.
Método
¿Por qué modelamos?
“Una empresa software con éxito es aquella que produce de manera consistente software de calidad que satisface las necesidades de los usuarios”
“El modelado es la parte esencial de todas las actividades que conducen a la producción de software de calidad”
“Un modelo es una simplificación de la realidad”
“Un modelo es una descripción de un (o parte de un) sistema en un lenguaje bien definido”
“Construimos modelos para comprender mejor el sistema que estamos desarrollando”.
¿Problemas en el desarrollo de software?
¿Modelado es la solución?
¿Escribimos código directamente?
“Un caso de uso especifica una secuencia de acciones, incluyendo variantes, que el sistema puede ejecutar y que produce un resultado observable de valor para un particular actor”
Representación Grafica
Sintaxis del Caso de Uso:
Según el nivel de detalle.
Alto Nivel.
Expandido : Descripción detallada con una plantilla
Según la importancia.
Primario, secundario u opcional.
Según el nivel de abstracción.
Esencial : ¿Qué hace el sistema?
Real : Se contemplan detalles de implementación (GUI y tecnología).
Casos de Uso de Alto Nivel:
Describe un proceso brevemente. Son muy usados durante el examen inicial de los requerimientos y del proyecto, a fin de comprender rápidamente la complejidad y funcionalidad del sistema.
Caso de uso: Nombre.
Actores: Actores que participan en el caso de uso.
Propósito:Intención del caso de uso.
Resumen:Repetición de la descripción del caso de uso de alto nivel, o una síntesis similar.
Tipo:
1- Primario, Secundario u Opcional.
2- Esencial : Son caso expandidos que se expresan en una forma teórica que contiene poca tecnología y pocos detalles de implementación. Los casos de uso de alto nivel son de carácter esencial debido a su brevedad y abstracción. Real: Describe concretamente el proceso a partir de su diseño concreto actual, sujeto a las tecnologías especificas de entrada y de salida, etc.
Referencias Cruzadas:Casos relacionados de uso y funciones también relacionadas del sistema.
Curso normal de los eventos: Describe los detalles de la conversión interactiva entre los actores y el sistema. Explica la secuencia más común de los eventos. La historia normal de las actividades y la terminación exitosa de un proceso. No incluye situaciones alternas.
Curso Normal de los Eventos |
|
Acción del Actor |
Respuesta del Sistema |
Acciones numeradas de los actores |
Descripciones numeradas de las respuestas del sistema. |
Nota: Durante la fase de planeación y elaboración es conveniente es conveniente expandir los casos de uso mas importantes y dejar el resto para el ciclo de desarrollo.
Curso alterno de los eventos: Alternativas que pueden ocurrir en el número de línea. Descripción de expresiones.
Un actor representa un conjunto coherente de roles que juegan los usuarios de los casos de uso al interaccionar con el sistema.
Explica gráficamente un conjunto de casos de uso de un sistema, los actores y las relaciones entre estos y los casos de uso. Tiene por objeto una clase de diagrama contextual que permite reconocer a los actores externos a un sistema y la forma básica en que lo utilizan.
Es necesario clasificar los casos de uso, dado que los de alto rango deben ser tratados en los inicios de los ciclos de desarrollo.
a) Tener una fuerte repercusión en el diseño arquitectónico.
b) Con relativamente poco esfuerzo, obtener información e ideas sobre el diseño.
c) Incluir funciones riesgosas, urgentes o complejas.
d) Requiere una investigación a fondo o tecnología más nueva y riesgosa.
e) Representar procesos primarios de la línea de negocio.
f) Apoyar directamente el aumento de ingresos o la reducción de costos.
El esquema taxonómico puede servirse de una clasificación simple y poco rigurosa: Alto, medio y bajo.
“El objetivo de la arquitectura del sistema es encontrar el conjunto mínimo de colaboraciones bien estructuradas, que satisfacen el comportamiento especificado en todos los casos de uso del sistema”
Tres tipos de relaciones:
Relación de inclusión
Relación de extensión
1) Identificar los usuarios del sistema.
2) Encontrar todos los roles que juegan los usuarios y que son relevantes al sistema.
3) Para cada rol identificar todas las formas (objetivos) de interactuar con el sistema.
4) Crea un caso de uso por cada objetivo.
5) Estructurar los casos de uso.
6) Revisar y validar con el usuario.
Es una representación de conceptos en un dominio del problema. Identificando los conceptos, los atributos y las asociaciones del dominio que se juzgan importantes. Representa cosas del mundo real, no componentes de software.
El modelo conceptual permite visualizar no solo los conceptos de interés, sino también los papeles de las personas y las funciones de la organización.
Estrategias:
1. Crear un modelo conceptual que se centre en los conceptos obvios expresados en los requerimientos y posponer para mas adelante una investigación con más detenimiento. El modelo conceptual se irá refinando con cada ciclo de desarrollo.
2. Suspender su creación hasta el comienzo de los ciclos de desarrollo. Este se modificará con cada ciclo de desarrollo.
Concepto:
En términos informales es una idea, cosa u objeto del mundo real. En términos más formales se lo puede definir a partir de:
Es mejor exagerar y especificar un modelo conceptual con muchos conceptos refinados que no especificarlo cabalmente.
Categoría del Concepto |
Ejemplos |
Objetos físicos o tangibles | TPDV |
Especificaciones, de diseño o descripciones de cosas | EspecificacióndeProducto |
Lugares | Tienda |
Transacciones | Venta, Pago |
Línea o renglón de elemento de transacción | VentasLíneasdeProductov |
Papel de las personas | Cajero |
Contenedores de otras cosas | Tienda, Cesto |
Cosas dentro de un contenedor | Producto |
Otros sistemas de computo o electromecánicos externos al sistema | SistemadeAutorizacióndeTarjetadeCredito |
Conceptos de nombres abstractos | Hambre |
Organizaciones | DepartamentodeVentas |
Eventos | Venta, Robo, Junta |
Procesos (a menudo no están representados, pero pueden estarlo) | VentaUnProducto |
Reglas y política | PoliticadeReembolso |
Catálogos | CatálogodeProducto |
Registros de finanzas, de trabajo, de contratos de asuntos legales | Recibo, Mayor, ContratodeEmpleo |
Instrumentos y servicios financieros | LínesdeCredito |
Manuales, Libros | ManualdePersonal |
1.Liste los conceptos idóneos usando la lista de categorías de concepto y la identificación de frases nominales relacionadas con los requerimientos en cuestión.
2.Dibuje un modelo conceptual.
3.Ignore las asociaciones necesarias para registrar las relaciones para las cuales debe reservar un espacio en la memoria.
4.Agregar los atributos necesarios para cumplir con las necesidades de información.
Nota:
Definiciones:
Asociaciones:
Criterio de las asociaciones útiles:
Lista de Asociaciones Comunes
Categoría |
Ejemplo |
A es una parte física de B | Caja-TPDV |
A es una parte lógica de B | VentasLíneadeProducto-Venta |
>A está físicamente contenido en B | TPDV-Tienda |
A esta contenido lógicamente en B | DescripcióndeProducto-Catalogo |
A es una descripción de B | DescripcióndeProducto-Producto |
A es un elemento de línea en una transacción o reporte de B | VentasLíneadeProducto-Venta |
A se conoce/intrduce/registra/presenta/captura en B | Venta-TPDV |
A es miembro de B | Cajero-Tienda |
A es una subunidad organizacional B | Departamento-Tienda |
A usa o dirige a B | Cajero-Tienda |
A se comunica con B | Cliente-Cajero |
A se relaciona con una transacción B | Pago-Venta |
A es una transacción relacionada con otra transacción B | Pago-Venta |
A está contiguo a B | TPDV- TPDV |
A es propiedad de B | TPDV-Tienda |
Nota: Las marcadas son de alta prioridad
Papeles: Son los extremos de una relación. Estos pueden tener:
Asignación de nombre a una asociación:
Se basa en el formato NombnredeTipo-FraseNominal-NombredeTpo, donde la frase nominal genera una secuencia que es legible y significativa dentro del contexto del modelo. Los nombres de las asociaciones comienzan con mayúscula. Una frase nominal debe construirse con guiones.
Atributos: Es un valor lógico de un dato de un objeto.
Nota: Agregar aquellos en que los requerimientos (por ejemplo los casos de uso) indican o conllevan la necesidad de recordar información. En un modelo conceptual es preferible que los atributos sean atributos simples o valores puros de datos (Booleano, Fecha, Número, Cadena (Texto), Hora).
No use los atributos para relacionar dos conceptos, para ello usamos las asociaciones.
Los diagramas UML de secuencia y de colaboración (llamados diagramas de interacción) se para modelar los aspectos dinámicos de un sistema.
Un diagrama de interacción consiste en un conjunto de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar entre ellos.
Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo. Esta descripción es importante porque puede dar detalle a los casos de uso, aclarándolos al nivel de mensajes de los objetos existentes, como también muestra el uso de los mensajes de las clases diseñadas en el contexto de una operación.
Linea de vida de un objeto
Un objeto se representa como una línea vertical punteada con un rectángulo de encabezado y con rectángulos a través de la línea principal que denotan la ejecución de métodos (véase activación). El rectángulo de encabezado contiene el nombre del objeto y el de su clase, en un formato nombreObjeto: nombreClase. Por ejemplo, el objeto objetoA, instancia de la clase A.
Activación
Muestra el periodo de tiempo en el cual el objeto se encuentra desarrollando alguna operación, bien sea por sí mismo o por medio de delegación a alguno de sus atributos. Se denota como un rectángulo delgado sobre la línea de vida del objeto.
Mensaje
El envío de mensajes entre objetos se denota mediante una línea sólida dirigida, desde el objeto que emite el mensaje hacia el objeto que lo ejecuta. En el ejemplo anterior el objeto objetoA envía el mensaje al objeto objetoB y un poco más adelante en el tiempo el objeto objetoB envía mensaje a objetoC.
Ejemplo:
Se quiere modelar una llamada a través de una telefónica.
Para esto se tienen cuatro objetos involucrados: dos interlocutores (s y r), una central y una conversación. La secuencia empieza cuando un interlocutor envía un mensaje a la central al descolgar el auricular. La central da el tono de llamada, y el interlocutor marca el número al que desea llamar. El tiempo de marcado debe ser menor que 30 segundos.
La creación de los diagramas de secuencia depende de la formulación de los casos de uso. Los casos de uso indican cómo los actores interactúan con el sistema. Durante la operación del sistema, los actores generan eventos, solicitando alguna operación a cambio.
El diagrama de secuencia de un sistema es una representación que muestra, en determinado escenario de un caso de uso, los eventos generados por actores externos, su orden y los eventos internos del sistema.
Ejemplo: caso de uso para compra de productos en un supermercado.
Caso de uso: | Comprar productos |
Actores: | Cliente, cajero |
Tipo: | Primario |
Descripción: | Un Cliente llega a la caja registradora con los artículos que va a comprar. El Cajero registra los artículos y cobra el importe. Al terminar la operación, el Cliente se marcha con los productos. |
Los diagramas de colaboración explican gráficamente las interacciones entre las instancias del modelo (objetos).
Por ejemplo:
Ejemplo TPDV:
Secuencia de los mensajes en un diagrama de colaboración:
Es posible definir mensajes condicionales:
Es posible definir trayectorias mutuamente excluyentes:
Un multiobjeto, por ejemplo un arreglo en Java, se representa como una pila de objetos:
Se pueden enviar mensajes a multiobjetos:
Ejemplo de crear un objeto y agregarlo a un multiobjeto:
Ejemplo : Matricular un nuevo estudiante en la universidad.
Hay cuatro objetos involucrados: un encargado de matrícula, un estudiante, un curso y la universidad. La acción comienza cuando el encargado de matrícula crea un objeto estudiante, lo añade a la universidad, y le pide al objeto estudiante que se matricule. El objeto estudiante obtiene (de sí mismo) su plan de estudio, e identifica los cursos que quiere matricular.
Ejemplo: caso de uso para compra de productos en un supermercado.
Def.: Un evento es una acción externa de entrada, que un actor produce en el sistema. En el ejemplo anterior, se tienen tres eventos: pasarProducto, terminarVenta y efectuarPago. Una vez que se identifican los eventos, se registran en la entidad que corresponda. Por ejemplo:
Para cada evento que se produce en el sistema, se debe hacer un diagrama de colaboración. Ejemplo:
En el diagrama de clases será donde definiremos las características de cada una de las clases y relaciones de dependencia y generalización. Es decir, es donde daremos rienda suelta a nuestros conocimientos de diseño orientado a objetos, definiendo las clases e implementando las ya típicas relaciones de herencia y agregación. Este diagrama sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenido.
Un diagrama de clases esta compuesto por los siguientes elementos:
Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).
En UML, una clase es representada por un rectángulo que posee tres divisiones:
En donde:
Ejemplo:
Una Cuenta Corriente que posee como característica:
El diseño asociado es:
Un atributo representa alguna propiedad de la clase que se encuentra en todas las instancias de la clase. Los atributos pueden representarse solo mostrando su nombre, mostrando su nombre y su tipo, e incluso su valor por defecto. Los atributos o características de una Clase pueden ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:
Los atributos definen la estructura de una clase y de sus correspondientes objetos. El atributo define el valor de un dato para todos los objetos pertenecientes a una clase.
Ejemplo: Nombre, edad, peso, son atributos de la clase persona. Color, precio, modelo, son atributos de la clase automóvil.
Dentro de una clase, los nombre de los atributos deben ser únicos (aunque puede aparecer el mismo nombre de atributo en diferentes clases).
Atributos Derivados: Los atributos básicos son atributos independientes dentro del objeto. En contraste, los atributos derivados son atributos que dependen de otros atributos. Los atributos derivados dependen de otros atributos del objeto, los cuales pueden ser básicos o derivados. La notación es una diagonal como prefijo del atributo, como se muestra en la siguiente figura:
Ejemplo: El Área de un Rectángulo se puede calcular conociendo su Ancho y Largo, por lo cual no se define como una atributo básico de la caja, sino como un atributo derivado:
Un método u operación es la implementación de un servicio de la clase, que muestra un comportamiento común a todos los objetos. En resumen es una función que le indica a las instancias de la clase que hagan algo. Las operaciones son funciones o transformaciones que se aplican a todos los objetos de una clase particular. La operación puede ser una acción ejecutada por el objeto o sobre el objeto.
Ejemplo: Arrojar, atrapar, inflar, y patear, son operaciones para la clase pelota. Abrir, cerrar, ocultar, y dibujar, son operaciones para la clase ventana.
Las operaciones deben ser únicas dentro de una misma clases, aunque no necesariamente para diferentes clases.
Ejemplo: Las clases pelota y libro pueden las dos tener operaciones de comprar, pero no pueden tener cada una dos operaciones comprar.
Existen tres relaciones diferentes entre clases, Dependencias, Generalización y Asociación. En las relaciones se habla de una clase destino y de una clase origen. La origen es desde la que se realiza la acción de relacionar. Es decir desde la que parte la flecha, la destino es la que recibe la flecha. Ahora ya definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o más clases (cada uno con características y objetivos diferentes). Antes es necesario explicar el concepto de cardinalidad de relaciones:
En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia, es decir especifica cuantas instancias de una clase se pueden relacionar a una sola instancia de otra clase.
Se anotan en cada extremo de la relación y éstas pueden ser:
La notación para representar una relación opcional, donde la multiplicidad es "uno" o "cero", escribiendo una relación opcional, 0 o 1. Esto significa que dos objetos pueden o no estar conectados, y si lo están corresponden a una multiplicidad de 1.
Las clases con atributos y operaciones comunes se pueden organizar de forma jerárquica, mediante la herencia. La herencia es una abstracción importante para compartir similitudes entre clases, donde todos los atributos y operaciones comunes a varias clases se pueden compartir por medio de la superclase, una clase más general. Las clases más refinadas se conocen como las subclases.
La Herencia es útil para el modelo conceptual al igual que para la implementación. Como modelo conceptual da buena estructuración a las clases. Como modelo de implementación es un buen vehículo para no replicar innecesariamente el código. Generalización define una relación entre una clase más generalizada, y una o más versiones refinadas de ella.
Especialización define una relación entre una clase más general, y una o más versiones especializadas de ella.
La superclase generaliza a sus subclases, y las subclases especializan a la superclase. El proceso de especialización es el inverso de generalización. Una instancia de una subclase, o sea un objeto, es también una instancia de su superclase.
La herencia es transitiva a través de un número arbitrario de niveles. Los ancestros de una clase son las superclases de una clase en cualquier nivel superior de la jerarquía, y los descendientes de una clase son las subclases de una clase en cualquier nivel inferior de la jerarquía.
La herencia indica que una subclase hereda los métodos y atributos especificados por una Súper Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Súper Clase (public y protected), ejemplo:
En la figura se especifica que Auto y Camioneta heredan de Vehículo, es decir, Auto posee las Características de Vehículo (Precio, VelMax, etc) además posee algo particular que es Descapotable, en cambio Camioneta también hereda las características de Vehículo (Precio, VelMax, etc) pero posee como particularidad propia Tara y Carga. Cabe destacar que fuera de este entorno, lo único "visible" es el método Características aplicable a instancias de Vehículo, Auto y Camioneta, pues tiene definición publica, en cambio atributos como Descapotable no son visibles por ser privados. (Los nombres de atributos y operaciones deben ser únicos en la jerarquía de herencia.)
La generalización se puede extender a múltiples niveles de jerarquías, donde una clase hereda de su superclase, que a su vez hereda de otra superclase, hacia arriba en la jerarquía. En otras palabras, las relaciones entre subclases y superclases son relativas. La herencia define una jerarquía de clases donde existen ancestros y descendientes, que pueden ser directos o no.
Ejemplo: Un Barco tiene un Nombre, Fabricante, y Costo. Tipos especiales de Barco, como Velero, tienen además de estas características básicas, un Número de Velas, mientras que otro tipo especial de Barco, como Barco a Motor, tiene un Motor. Barco es la clase básica (la superclase) mientras que Velero y Barco a Motor son las clases refinadas (las subclases). Se debe definir las características básicas de los barcos una sola vez, y luego añadir detalles para veleros, barcos a motor, etc.
Ejemplo: Una jerarquía conteniendo una superclase Mueble, y varias subclases Mesa y Asiento, puede ser extendida con nuevas subclases, como Mesa Circular, Mesa Rectangular, mientras que un Asiento puede extenderse con las subclases Silla, Sillón, y Taburete. Cada clase tiene sus propios atributos los cuales se van especializando a medida que las clases son cada vez más especializadas. Nótese que no necesariamente todas las clases tienen que incluir atributos.
La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre si. Una asociación describe la relación entre clases de objetos, y describe posibles ligas, donde una liga es una instancia de una asociación, al igual que un objeto es una instancia de una clase.
Ejemplo:
Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente.
Grado de la Asociación:
El grado de una asociación se determina por el número de clases conectadas por la misma asociación. Las asociaciones pueden ser binarias, ternarias, o de mayor grado. Las asociaciones se consideran binarias si relacionan solo dos clases.
Ejemplo: La asociación entre Persona e Instituto es una asociación binaria.
Las asociaciones pueden ser de mayor grado si relacionan a la misma vez más de dos clases. Aparte de relaciones binarias, lo más común son relaciones ternarias (entre tres clases), relaciones de más alto nivel son mucho menos comunes. Mientras el grado de una relación aumenta, su comprensión se dificulta, y se debe considerar partir las relaciones en varias relaciones binarias.
Ejemplo: Puede existir una relación ternaria entre Estudiante, Profesor, y Universidad donde "un estudiante estudia con un profesor en una universidad". El grado de las ligas corresponden al de las asociaciones.
Asociaciones Reflexivas:
Las asociaciones pueden ser reflexivas, relacionando distintos objetos de una misma clase.
EjemploPara una clase persona puede existir una asociación pariente que describe que dos objetos de tipo persona, como Juan Pérez y Laura Pérez son parientes.
El grado de una asociación reflexiva puede ser binario, ternario, o de mayor grado, dependiendo del número de objetos involucrados.
Ejemplo: Para la clase persona puede existir una asociación ternaria entre tres personas donde uno es el abuelo, el otro es el hijo del abuelo, y el tercero es el nieto del abuelo.
Las asociaciones reflexivas relacionan distintos objetos de una misma clase.
Ejemplo: Juan Pérez es pariente-de Laura Pérez, donde ambos son objetos de tipo Persona, como se muestra en la Figura
Ejemplo: La asociación reflexiva pariente-de para la clase Persona se muestra en la siguiente figura
Ensamblados: Agregación y Composición
Los ensamblados, en particular la agregación y composición, son formas especiales de asociación entre un todo y sus partes, en donde el ensamblado está compuesto por sus componentes. El ensamblado es el objeto central, y la estructura completa se describe como una jerarquía de contenido.
(el objeto base utiliza al incluido para su funcionamiento). Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye.
(el Objeto base se construye a partir del objeto incluido). Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye.
Un ensamblado puede componerse de varias partes, donde cada relación se considera una relación separada. En el caso de agregación, las partes del ensamblado pueden aparecer en múltiples ensamblados. En el caso de composición, las partes del ensamblado no pueden ser compartidas entre ensamblados.
Ejemplo: Una Red de Computadoras se puede considerar un ensamblado, donde las Computadoras son sus componentes. Este también es un ejemplo de agregación, ya que las Computadoras pudieran ser partes de múltiples Redes de Computadoras a la vez. Adicionalmente, las Computadoras pueden existir independientemente de la existencia de la Red de Computadoras.
Ejemplo: Un Automóvil se puede también considerar un ensamblado, donde el Motor y la Carrocería son sus componentes. Este también es un ejemplo de composición, ya que el Motor y la Carrocería son partes del Automóvil, y a diferencia de la agregación, no pueden ser compartidos entre distintos Automóviles a la vez. Adicionalmente, no tiene mucho sentido que el Motor y la Carrocería existan de manera independiente al Automóvil, por lo cual la composición refleja de manera importante, el concepto de propiedad.
El ensamblado tiene propiedades de transición: Si A es parte de B y B es parte de C; entonces A es parte de C.
Ejemplo: Si el Motor es parte del Automóvil, entonces sus propiedades, como su posición y velocidad, están dadas por la posición y velocidad del Automóvil.
El ensamblado es antisimétrico: Si A es parte de B, entonces B no es parte de A. Estas propiedades se propagan entre el ensamblado y sus componentes.
Ejemplo: Si el Motor es parte del Automóvil, entonces el Automóvil no es parte del Motor.
La notación para un ensamblado, en particular para un agregado, es un diamante adherido al lado del objeto correspondiente al ensamblado total, conectado por una línea a sus componentes, como se muestra en la siguiente figura.
Ejemplo: El Automóvil con sus componentes, Motor y Carrocería, se muestran en el siguiente diagrama
Ejemplo: Una computadora personal (PC) está compuesta por uno o varios monitores, un sistema, un teclado y opcionalmente un ratón. El sistema tiene un chasis, un procesador central (CPU), varias tarjetas de memoria (RAM), y opcionalmente un ventilador. El diagrama se muestra en la siguiente figura.
Otro ejemplo:
En donde se destaca que:
La flecha en este tipo de relación indica la navegabilidad del objeto referenciado. Cuando no existe este tipo de particularidad la flecha se elimina.
Dependencia o Instanciación (uso):
Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Es una relación de uso, es decir una clase usa a otra, que la necesita para su cometido. Se representa con una flecha discontinua va desde la clase utilizadora a la clase utilizada. Con la dependencia mostramos que un cambio en la clase utilizada puede afectar al funcionamiento de la clase utilizadora, pero no al contrario. El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación gráfica que instancia una ventana (la creación del Objeto Ventana esta condicionado a la instanciación proveniente desde el objeto Aplicación):
Cabe destacar que el objeto creado (en este caso la Ventana gráfica) no se almacena dentro del objeto que lo crea (en este caso la Aplicación).
Ejemplo utilizando relaciones, cardinalidad, etc.
Ejemplo: La clase Persona tiene un Nombre, Dirección, y Número del Seguro Social. Una persona puede trabajar en algún proyecto y ganar un salario. Una Compañía tiene un Nombre, Dirección, Número de Teléfono, y Producto Primario. Una Compañía contrata y despide Personas. Persona y Compañía tienen una relación "muchos-muchos". El título del trabajo depende de la persona y de la compañía. Hay dos tipos de Personas: Trabajadores y Administradores. Cada Trabajador está involucrado en varios Proyectos; cada Administrador es responsable de varios proyectos. En un proyecto pueden trabajar varios trabajadores y un solo administrador. Cada proyecto tiene un Nombre, Presupuesto, y una Prioridad Interna para asegurar recursos. Además una Compañía está compuesta de múltiples Departamentos; cada departamento dentro de una compañía se identifica de forma única por su Nombre. Un departamento usualmente tiene un administrador. La mayoría de los administradores manejan un departamento; y algunos administradores no están asignados a ningún departamento. Cada departamento manufactura varios productos; mientras que cada producto está hecho por un solo departamento. Un producto tiene Nombre, Costo, y Peso.
Gracias Franco
19/02/08
Volver |
---|
Lenguaje | Gramática | Autómata | Laplace | Series | Ecuación | Operador |
---|
Y para el cruel que me arranca
el corazón con que vivo,
cardo ni ortiga cultivo;
..cultivo una rosa blanca..!
José Martí
Amor | Sano | Asado | Alegria | Extasis |
Volver |
---|
Te espero en: wilucha@gmail.com
Esta page está en: www.wilocarpio.com.ar
24/09/2002