Está en la página 1de 11

DIAGRAMA DE CLASES DIAGRAMAS DE CLASES: Los diagramas de clases se utilizan para modelar la visión estática de un sistema.

Esta visión soporta los requisitos funcionales del sistema, en concreto, los servicios que el sistema debería proporcionar a sus usuarios finales. Normalmente contienen: clases, interfaces y relaciones entre ellas: de asociación, de dependencia y/o de generalización. ES Los diagramas de clases también pueden contener a paquetes o subsistemas, que se usan para agrupar elementos del modelo en partes más grandes (por ejemplo, paquetes que a su vez contienen a varios diagramas de clases). Al igual que otros diagramas, en los diagramas de clases pueden aparecer notas explicativas y restricciones.

los lenguajes de representación y formalización (mapas de navegación. wireframes. 5. Estrategia Investigación de usuarios Definición de arquitectura de información Definición de interacción Diseño de interfaz Producción Testeo A lo largo de este proceso. 3. Este lenguaje propone un sistema de notación que pueda acompañar el proyecto desde la etapa de estrategia (alto grado de abstracción) hasta la . 6.) van marcando cada etapa pero carecemos de un sistema que permita transversalizar el producto final: la experiencia del usuario. esquemas de datos. este esquema es el resultado de aplicar un proceso de abstracción a un determinado mundo real (universo de discurso). Dentro de este proceso podemos distinguir: 1.MECANISMOS DE ABSTRACCIÓN Los procesos de abstracción ayudan a modelar los datos. diagramas de flujo. el modelador debe centrarse en lo esencial. Los MD ofrecen distintos mecanismos de abstracción para facilitar la representación de los esquemas de datos. 4. 2. Los principales mecanismos de abstracción son: Generalización_instanciación o particularización Agregación Jerarquías de generalización NOTACIÓN GRÁFICA: La complejidad de un proyecto de desarrollo Web requiere de una metodología escalonada que normalmente es abordada por un equipo multidisciplinario. 7. etc. pasando por alto aspectos que son irrelevantes o que caen fuera del universo de discurso.

Este proyecto se encuentra en fase de evaluación. Cómo funciona Las partituras de interacción descomponen el diálogo entre la persona y el servicio en 3 distintas capas horizontales: 1. ———————— línea de interacción ———————— ———————— línea de visibilidad ———————— . así como detectar incosistencias o puntos críticos en el servicio.etapa final de implementación en código (alto grado de especificidad). por lo tanto. Acciones del usuario: la intensionalidad del usuario expresada en sus acciones concretas 2. así como un facilitador del diálogo dentro de los equipos de diseño. Se trata de un sistema que permite coreografiar y orquestar cuidadamente el díagolo en continuidad entre la persona y el servicio. Esperamos que esta herramienta se constituya como una ayuda para el desarrollo de aplicaciones y servicios para Internet. diseñadores y programadores) comprender el total y cuidar el cumplimiento de la visión original. para poder avanzar en su afinación es de vital contar con tus comentarios. Proceso: las funciones que permiten al sistema (servidor) dar respuesta en el diálogo con el usuario Cada módulo de interacción se compone como un compás en esta partitura. Contacto directo: los elementos de interfaz que permiten al usuario ejecutar tales acciones 3. Estos compases (o patrones de interacción) permiten ensamblarse para verificar la lógica y la calidad de la experiencia en determinados escenarios de uso. permitiendo a cada actor del proyecto (estrategas.

Aunque no es lo común. También se puede representar una asociación binaria y unidireccional. Cuando una asociación es una conexión semántica entre los objetos de dos clases. dado un objeto de una clase. añadiendo una flecha al final de la línea. éstas se llaman asociaciones n-arias. ASOCIACIÓN : Una asociación es una relación estructural que especifica que los objetos de una clase están conectados con los objetos de otra. se llama asociación binaria.ENCAPSULACION La encapsulamiento presenta tres ventajas básicas: • Se protegen los datos de accesos indebidos • El acoplamiento entre las clases se disminuye • Favorece la modularidad y el mantenimiento Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos. (+) Los atributos/operaciones públicos son visibles a otras clases (cuando se trata de atributos se está transgrediendo el principio de encapsulamiento). se pueden tener asociaciones que conecten más de dos clases. como son: • NOMBRE . Normalmente una asociación es binaria y bidireccional (se puede navegar en ambas direcciones). Esta parte es totalmente invisible desde fuera de la clase (excepto para clases friends en terminología C++). (#) Los atributos/operaciones protegidos están visibles para las clases friends y para las clases derivadas de la original. Esta flecha indica que la asociación sólo se puede utilizar en la dirección de la flecha. Cada asociación puede presentar algunos elementos adicionales que dan detalle a la relación. (~) Package : Sólo es visible dentro del mismo package. Niveles de encapsulamiento: (-) Privado : es el más fuerte. se pueda enlazar con otros objetos de la misma clase. También es posible que. Se dibuja como una línea sólida entre dos clases.

Pero si queremos especificar un mayor significado. • RESTRICCIONES Los elementos anteriores son suficientes para detallar una relación de asociación. • Rol Cuando una clase participa en una asociación.. indica que para cada objeto de la clase en el lado opuesto existen varios objetos en el otro extremo. cero-a-muchos (0. etc. Así no hay ambigüedad sobre su significado. • MULTIPLICIDAD La multiplicidad describe la cardinalidad de la relación. es decir. Por ejemplo. Mientras que en el segundo caso la asociación navegable nos dice que una persona puede poseer varios coches o ninguno. El rango puede ser tres (3). cuántos objetos están conectados en una instancia de una asociación (enlace). . pero no nos informa sobre cuántas personas son propietarias de un coche. Cuando se establece una multiplicidad al final de la línea de una asociación. juega un rol específico en dicha relación.1). Se puede designar de forma explícita mediante un nombre a los finales de la línea.Una asociación puede tener un nombre. En la Figura de abajo se muestran los dos tipos de navegación en una asociación entre las clases Persona y Coche. si queremos que los objetos de una clase al final de una asociación (con una multiplicidad mayor que uno) estén en un orden explícito. Para indicar la dirección en que se debe leer el nombre se emplea un triángulo. que se usa para describir la naturaleza de la relación. cero-a-uno (0..* ó *). el cual describe la semántica de la asociación en el sentido indicado. En el primer caso un coche puede tener uno o más propietarios y una persona es propietaria de cero o más coches. UML define cinco restricciones que se pueden aplicar. uno-a-muchos (1. debemos escribir {ordenado} al final de la misma y cerca de la clase..*).

ninguna es más importante que la otra. Una ambulancia está formada (agregación) por cuatro ruedas. . lo que significa que ambas clases están conceptualmente al mismo nivel. lo que significa que un objeto del todo tiene objetos de la parte.TIPOS DE ASOCIACIÓN Los tipos de asociaciones presentes en un diagrama de clases son: 1. su conductor (asociación) es José Fernández. EJEMPLO: El vehículo de matrícula CR-0978-Z es (especialización) de la clase ambulancia. un motor. ASOCIACIÓN NORMAL Una asociación normal entre dos clases representa una relación estructural entre sus objetos. Se trata de una relación no muy fuerte. . AGREGACIÓN Una agregación sirve para modelar una relación “todo-parte”. La ambulancia es una generalización del conjunto de vehículos utilizados en el hospital. un chasis. El propietario (asociación) de la ambulancia matrícula CR-0978-Z es la empresa CUASER. Podemos distinguir: • AGREGACIÓN NORMAL Una agregación normal se denota dibujando una línea con un rombo sin rellenar al final de la misma del lado del todo (del lado de la clase que contiene a la otra clase).

Se trata de una relación de pertenencia muy fuerte. Una agregación de composición se denota dibujando una línea con un rombo relleno al final de la misma del lado del todo (del lado de la clase que contiene a la otra clase). Ejemplos de agregaciones En la Figura de abajo podemos encontrar tres ejemplos con los tres tipos de agregaciones: normal. . pero la multiplicidad en el lado de la parte puede ser cualquier intervalo.1). compartida y la de composición. La multiplicidad en el lado del todo puede ser uno (1) ó cero-a-uno (0.• AGREGACIÓN COMPARTIDA Una agregación compartida es aquella en la que las partes pueden ser partes en varios todos..

. GENERALIZACIÓN .

ya que no está implementada en la clase Vehículo al aparecer junto a la operación la palabra {abstracta} y además su implementación es diferente dependiendo del tipo de objeto: coche o barco. referidas a tipos de vehículos. La generalización normal es una relación de herencia entre clases. HERENCIA : . los podemos declarar con visibilidad protegida Ejemplos de generalizaciones La Figura de abajo nos muestra un conjunto de cuatro clases junto con sus asociaciones y dependencias. llamada superclase. En nuestro ejemplo la clase Vehículo muestra las cosas comunes entre coches y barcos. Los atributos y las operaciones con visibilidad pública en la superclase serán también públicos en la subclase. mientras que las clases Coche y Barco son concretas. pero no serán accesibles dentro de la subclase. incluyendo la relación de asociación a la clase Persona. las operaciones y todas las asociaciones son heredadas. La generalización es utilizada por clases y casos de uso y por otros elementos de modelado como los paquetes. La clase específica. Se trata de una clase abstracta que no tiene objetos. Dicha operación está redefinida en las clases Coche y Barco. entre una general y otra específica. llamada subclase. Los atributos. Los atributos y las operaciones que tengan visibilidad privada también serán heredados. Para proteger los atributos y las operaciones de accesos desde fuera de la superclase y de la subclase. Estas subclases heredan el atributo color y la operación Conducir de la superclase Vehículo. hereda todo de la clase general.Una generalización es una relación de clasificación entre un elemento más general y otro más específico.

etc En programación orientada a objetos el polimorfismo se refiere a la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede ser heterogénea. salario del empleado. como saldo del cliente. pero además cada uno tendrá información adicional que depende del tipo de persona. Por ejemplo. Empleados. Acreedores. Clientes. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía. Así nacen los conceptos de funciones polimórficas y tipos polimórficos.Se define como la reutilización de un objeto padre ya definido para poder extender la funcionalidad en un objeto hijo. El segundo hace referencia al mismo método con diferentes parámetros POLIMORFISMO El concepto de polimorfismo. . todos comparten datos básicos como una persona. los tipos polimórficos. en un lenguaje de programación que cuenta con un sistema de tipos dinámico (en los que las variables pueden contener datos de cualquier tipo u objetos de cualquier clase) como Smalltalk no se requiere que los objetos que se utilizan de modo polimórfico sean parte de una jerarquía de clases TAMBIÉN SE CLASIFICA EN HERENCIA : Por redefinición de métodos abstractos Por método sobrecargado. por su parte. total de inversión del accionista. son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no está especificado. desde una perspectiva más general. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta. más allá de las obvias diferencias sintácticas. Por ejemplo: Una persona puede especializarse en Proveedores. La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice. Los objetos hijos heredan todas las operaciones y/o propiedades de un objeto padre. se puede aplicar tanto a funciones como a tipos de datos. Accionistas.

. Otra clasificación agrupa los polimorfismo en dos tipos: Ad-Hoc que incluye a su vez sobrecarga de operadores y coerción. puede ser utilizado a todo tipo de datos compatible. Así.Clasificación Se puede clasificar el polimorfismo en dos grandes clases:   Polimorfismo dinámico (o polimorfismo paramétrico) es aquél en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja. Universal (inclusión o controlado por la herencia. paramétrico o genericidad). El polimorfismo dinámico unido a la herencia es lo que en ocasiones se conoce como programación genérica Polimorfismo estático (o polimorfismo ad hoc) es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados.