Ir arriba

Lenguaje: U M L

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.

  • UML es una notación, no es un proceso.

  • Se han definido muchos procesos para UML. Rational ha ideado RUP, “proceso unificado”.

  • Permite especificar todas las decisiones de análisis, diseño e implementación, construyéndose modelos precisos, no ambiguos y completos.

  • UML puede conectarse a lenguajes de programación:

    - Ingeniería directa.

    - Inversa.

  • Permite documentar todos los artefactos de un proceso de desarrollo (requisitos, arquitectura, pruebas, versiones,..)
Modelado
de
casos
Modelado
conceptual
Diagrama
de
interacción
Diagrama
de
Clases

  1. Porque usar UML
    1. Construcción de software

      • El desarrollo de software es una tarea difícil.

      • Es difícil asegurar la calidad del software.

      • Un método software establece cómo abordar de un modo sistemático la construcción de software.

      • Se describe el problema y la solución mediante un conjunto de modelos.

      • Tres dimensiones en un método: Tecnológica, Proceso y Organización

    2. Dimensiones en un método

      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

    3. Ventajas de la unificación

      • Reunir los puntos fuertes de cada método

      • Idear nuevas mejoras

      • Proporcionar estabilidad al mercado

        • Proyectos basados en un lenguaje maduro

        • Aparición de potentes herramientas

      • Eliminar confusión en los usuarios

    4. Objetivos en el diseño de UML

      • Modelar sistemas, desde los requisitos hasta los artefactos ejecutables, utilizando técnicas OO.

      • Cubrir las cuestiones relacionadas con el tamaño propias de los sistemas complejos y críticos.

      • Lenguaje utilizable por las personas y las maquinas.

      • Encontrar equilibrio entre expresividad y simplicidad.

    5. Modelado del software

      • El modelado es el diseño de aplicaciones software antes de escribir el código.

      • Se crean un conjunto de modelos (“planos del software”) que permiten especificar aspectos tales como los requisitos o el diseño de los programas.

      • UML es un lenguaje para escribir modelos.

      • Es posible generación automática de código a partir de los modelos.

      ¿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”.

    6. Utilidad del modelado

      • Visualizar cómo es o queremos que sea el sistema

      • Especificar la estructura y comportamiento del sistema

      • Proporciona plantillas que guían la construcción del sistema.

      • Documentan las decisiones.

      ¿Problemas en el desarrollo de software?

      • Retrasos en los plazos.

      • Proyectos cancelados.

      • Rápido deterioro del sistema instalado.

      • Tasa de defectos o fallos.

      • Requisitos mal comprendidos.

      • Cambios frecuentes en el dominio del problema.

      • Muchas de las interesantes características del software no proporcionan beneficios al cliente.

      • Buenos programadores se cansan y dejan el equipo

      ¿Modelado es la solución?

      ¿Escribimos código directamente?

      • Se facilita la comunicación entre el equipo al existir un lenguaje común.

      • Se dispone de documentación que trasciende al proyecto.

      • Hay estructuras que trascienden lo representable en un lenguaje de programación.

    7. Modelado de Casos de Usos Volver al principio

      • ¿Qué son los Casos de Uso?

        • Un caso de uso especifica un comportamiento deseado del sistema.

        • Representan los requisitos funcionales del sistema.

          “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

        • Describen qué hace el sistema, no cómo lo hace.

        Representación Grafica

        Sintaxis del Caso de Uso: Verbo Objeto

      • Tipos de Casos 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.

      • Notación

        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.

      • ¿Quiénes son los Actores?

        Un actor representa un conjunto coherente de roles que juegan los usuarios de los casos de uso al interaccionar con el sistema.

        • Roles jugados por personas, dispositivos, u otros sistemas.

        • El tiempo puede ser un actor (“procesos iniciados por el sistema”).

        • No forman parte del sistema.

        • Un usuario puede jugar diferentes roles.

        • En la realización de un caso de uso pueden intervenir diferentes actores.

        • Un actor puede intervenir en varios casos de uso.

        • Identificar casos de uso mediante actores y eventos externos.

        • Un actor necesita el caso de uso y/o participa en él.

      • Diagrama de Casos de Uso

        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.

        s

      • Clasificación de los casos de uso

        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.

      • Casos de uso y Colaboraciones

        • Con un caso de uso se describe un comportamiento esperado del sistema, pero no se especifica cómo se implementa.

        • Una caso de uso se implementa a través de una colaboración: “Sociedad de clases y otros elementos que colaborarán para realizar el expresado en un caso de uso”

        • Una colaboración tiene una parte estática (diagramas de clases) y una parte dinámica (diagramas de secuencia).

      • Relaciones entre los Casos de Uso

        s

        “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:

        • Generalización:Un cdu hereda el comportamiento y significado de otro.

        • Inclusión:Un cdu base incorpora explícitamente el comportamiento de otro en algún lugar de su secuencia.

        • Extensión:Un cdu base incorpora implícitamente el comportamiento de otro cdu en el lugar especificado indirectamente por este otro cdu.

        s

        Relación de inclusión

        • Permite factorizar un comportamiento en un caso de uso aparte y evitar repetir un mismo flujo en diferentes casos de uso.

        • Ejemplo caso de uso “Hacer Pedido”: “Obtener y verificar el número de pedido. Include (Validar usuario). Examinar el estado de cada parte del pedido y preparar un informe para el usuario”.

        Relación de extensión

        • El caso de uso base incluye una serie de puntos de extensión.

        • Sirve para modelar.

          • La parte opcional del sistema.

          • Un subflujo que sólo se ejecuta bajo ciertas condiciones.

          • Varios flujos que se pueden insertar en un punto.

        • Ejemplo caso de uso “Hacer Pedido”: “ Include (Validar usuario). Recoger los items del pedido del usuario. (establecer prioridad). Enviar pedido para ser procesado.

      • ¿Cómo obtener los de casos de uso?

          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.


      Volver al principio


    8. Modelo Conceptual Volver al principio

      • ¿Qué es un modelo Conceptual?

        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.

      • ¿Cuáles son los papeles o funciones de una organización?

        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.

      • ¿Cuándo crear un modelo conceptual?

        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.

          • Ventajas: Disminuye la complejidad.

          • Desventajas: Se dispone de menos información inicial para el entendimiento de los aspectos generales.

        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:

        • Símbolo: Palabras o imágenes que representan un concepto.

        • Intención: La definición del concepto.

        • Extensión: El conjunto de ejemplos al que se aplica el concepto.

      • ¿Qué estrategia usar para identificar los conceptos?

        Es mejor exagerar y especificar un modelo conceptual con muchos conceptos refinados que no especificarlo cabalmente.

        • No se excluya un concepto simplemente porque los requerimientos no indiquen una necesidad evidente que permita recordar la información acerca de ella. O porque el concepto carece de atributos. Es perfectamente valido tener conceptos sin atributos o conceptos con un papel puramente de comportamientos en el dominio en ves de un papel informacional.

        • Obtención de conceptos a partir de una lista:

          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

        • Obtención de conceptos a partir de la Identificación de frases nominales: Se las extrae de las descripciones textuales del dominio de un problema y considerarlas conceptos o atributos idóneos.

      • ¿Como construir un Modelo Conceptual?

          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:

        • Si en el mundo real no consideramos un concepto X como número o texto, probablemente X sea un concepto y no un atributo.

        • En caso de duda Convierta el atributo en un concepto independiente.

        Definiciones:

        • Clase en UML: Es una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, métodos, relaciones y semántica.

        • Operación en UML: Es un servicio que puede solicitarse a un objeto para que realice un comportamiento.

        • Método en UML: Es la implementación de una operación que especifica el algoritmo o procedimiento de ésta última.

        • Tipo en UML: Se asemeja a la de clase –describe un conjunto de objetos parecidos con atributos y operaciones-, pero no pueden incluir métodos. De ello se debe que un tipo es una especificación de una entidad de software y no una implementación. Ello significa que un tipo en UML es independiente del lenguaje.

        • Interfaz en UML: Se define como un conjunto de operaciones visibles en el exterior. En el UML pueden estar asociadas a tipos y clases (y también a paquetes que agrupan elementos).

        Asociaciones:

        Criterio de las asociaciones útiles:

        • Las asociaciones que el conocimiento de la relación ha de ser preservado durante algún tiempo.

        • Las asociaciones provenientes de la Lista de Asociaciones Comunes.

        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:

        • Nombre.

        • Expresión de multiplicidad: Define cuantas instancias de un tipo A pueden asociarse a una instancia del tipo B en determinado momento.

        • Navegabilidad.

        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.


      Volver al principio


    9. Diagramas de Interacción Volver al principio

      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.

      • Diagrama de Secuencia

        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.

      • Diagrama de Colaboración

        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:


      Volver al principio


    10. Diagrama de Clases Volver al principio

      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.

        • Los diagramas de clases son generalmente creados después o en forma paralela con los diagramas de interacción. (diagramas de secuencia, diagramas de colaboración).

        • Los diagramas de interacción son usados para identificar las clases y los métodos que ellos entregan.

        • El modelo conceptual también es usado para obtener clases para agregar mayores detalles.

        • Las clases son consideradas entidades de software y no conceptos del mundo real.

        • Identificar todas las clases examinando los diagramas de interacción. (diagramas de secuencia, diagramas de colaboración).

        • Duplicar los atributos de los conceptos asociados mostrados en el modelo conceptual.

        • Agregar los nombres de los métodos examinando los diagramas de interacción.

        • Agregar el tipo de datos (e información) a los atributos y a los métodos.

      • Modelo Conceptual Vs. Diagrama de Clases

      • Elementos

        Un diagrama de clases esta compuesto por los siguientes elementos:

        • Clase: atributos, métodos y visibilidad.

        • Relaciones: Herencia, Asociación, Ensamblado y Uso.

      • Clase:

        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:

        • Superior: Contiene el nombre de la Clase.

        • Intermedio: Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden ser private, protected o public).

        • Inferior: Contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto con su entorno (dependiendo de la visibilidad: private, protected o public).

        Ejemplo:

        Una Cuenta Corriente que posee como característica:

        • Balance

        • Puede realizar las operaciones de:

        • Depositar

        • Girar

        • y Balance

        El diseño asociado es:

      • Atributos:

        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:

        • public: Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

        • private: Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden accesar).

        • protected: Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven (ver herencia).

        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:

      • Métodos:

        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.

      • Relaciones entre Clases:

        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:

        • uno-uno

        • uno-muchos(1...*)

        • muchos-muchos(* *)

        • opcional (0..1 )

        • número fijo: m (m denota el número

        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.

      • Herencia (Especialización/Generalización):

        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.

      • Asociación:

        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.

        • Asignación

          (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.

        • Composición

          (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.

        • Se considera un ensamblado y no una asociación regular:

        • Si se puede usar la frase "parte-de" o "consiste-de" o "tiene";

        • Si algunas operaciones en el todo se pueden propagarse a sus partes;

        • Si algunos atributos en el todo se pueden propagar a sus partes;

        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:

        • Un Almacén posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).

        • Cuando se destruye el Objeto Almacén también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.

        • La composición se destaca por un rombo relleno.

        • La agregación se destaca por un rombo transparente.

        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.

      Escríbeme a: franco_cilgomez@hotmail.com

      Gracias Franco

      19/02/08

      PARADIGMA
      La ignorancia niega o agrede o critica
      La ciencia duda..!!
      Wilucha

      Paradigmas
      de Vida
      Linguístico
      Sistémico
      Matemático
      Volver

      PARADIGMA
      Es más valioso quién se levanta
      que quién nunca cayó..
      Wilucha

      Apuntes de clasesLenguaje Apuntes de clasesGramática Apuntes de clasesAutómata Apuntes de clasesLaplace Apuntes de clasesSeries Apuntes de clasesEcuación Apuntes de clasesOperador

      PARADIGMA
      Cultivo una rosa blanca
      ..en julio, como en enero
      para el amigo sincero
      que me da su mano franca..!!

      Y para el cruel que me arranca
      el corazón con que vivo,
      cardo ni ortiga cultivo;
      ..cultivo una rosa blanca..!
      José Martí

      Sofy Carpio Amor Yo..!! Sano Pity..!! Asado Cayo..!! Alegria Wilin..!! Extasis Volver a Inicio
      Volver

      Te espero en: wilucha@gmail.com

      Esta page está en: www.wilocarpio.com.ar

      24/09/2002

      Volver al principio