ED05.- Diseño orientado a objetos. Elaboración de diagramas estructurales.

Orientaciones para la tutoría

Esta es una unidad introductoria al paradigma de orientación a objetos en la que conoceremos cuales son las principales características de esta forma de desarrollar software en oposición a la metodología estructurada.

A continuación se verá una introducción al lenguaje de modelado UML y a los diagramas que lo componen, tanto estructurales como de comportamiento , así como a varias herramientas que permiten generar diagramas UML tanto libres como propietarias.

Por último se estudiarán los diagramas de clases como mayor exponente de los diagrama estructurales de UML, su principales características y cómo generarlos a partir de la descripción de un problema en particular, obteniendo el código de base para la aplicación en un lenguaje de programación concreto (Java) y los informes con la documentación del diagrama generado de manera automática.

Esta unidad está íntimamente relacionada con la unidad seis que es su continuación natural, en la que se explican los diagramas de comportamiento UML.

Datos generales de la Unidad de Trabajo
Nombre completo del MP Entornos de desarrollo. Siglas MP ED
y título de la UT 05.- Diseño orientado a objetos. Elaboración de diagramas estructurales. Horas 15/90
Índice o tabla de contenidos
  1. Programación orientada a objetos.
    1. Conceptos de orientación a objetos.
    2. Ventajas de la orientación a objetos.
    3. Clases, atributos y métodos.
    4. Visibilidad.
    5. Objetos. Instanciación.
  2. UML.
    1. Familiarizándonos con algunos conceptos UML.
      1. Notación.
      2. Modelos y herramientas.
      3. Métodos.
    2. Tipos de diagramas UML..
    3. Herramientas para la elaboración de diagramas URL.
      1. Generación de la documentación
      2. UMLet.
    4. Ingeniería inversa.
  3. Diagrama de clases.
    1. Creación de clases.
    2. Atributos.
    3. Métodos.
    4. Relaciones entre clases
      1. Cardinalidad o multiplicidad de la relación.
      2. Relación de herencia (Generalización).
      3. Agregación y composición.
      4. Atributos de enlace
      5. Restricciones.
    5. Pautas para crear diagramas de clases.
      1. Obtención de atributos y operaciones.
    6. Generación de código a partir del diagrama de clases.
      1. Elección del lenguaje de programación. Orientaciones para el lenguaje java.

Anexo I.- Descarga e instalación de Visual Paradigm.

Anexo II.- Introducción a UMLet.

  1. Pantalla principal.
  2. Opciones.
    1. Atajos de teclado.
    2. Importación de diagramas.
    3. Exportación de diagramas.
    4. Salvar diagramas.
  3. Elementos del diagrama.
  4. El diagrama.
  5. Edición de las propiedades.

Anexo III.- Generación del diagrama de clases de un problema dado.

  1. Extracción de los sustantivos de la descripción del problema.
  2. Selección de sustantivos como objetos/clases del sistema.
  3. Tabla de relación de las clases u objetos con sus atributos.
  4. Obtención de los métodos.
  5. Obtener relaciones.
  6. Documentación adicional.
  7. Generación de código a partir del diagrama de clases.

Anexo IV.- Generación del diagrama de clases de otro problema dado.

  1. Extracción de los sustantivos de la descripción del problema.
  2. Selección de sustantivos como objetos/clases del sistema.
  3. Tabla de relación de las clases u objetos con sus atributos.
  4. Obtención de los métodos.
  5. Obtener relaciones.
  6. Documentación adicional.
  7. Generación de código a partir del diagrama de clases

Anexo V.- Licencias de recursos.

Objetivos
  1. Identificar los conceptos básicos de la programación orientada a objetos.
  2. Instalar el módulo del entorno integrado de desarrollo que permite la utilización de diagramas de clases. .
  3. Interpretar el significado de diagramas de clases.
  4. Saber trazar diagramas de clases a partir de las especificaciones de las mismas.
  5. Saber generar código a partir de un diagrama de clases.
  6. Saber generar un diagrama de clases mediante ingeniería inversa.
Consejos y recomendaciones El principal escollo con el que se encuentra un alumno que realiza las tareas de modelado por primera vez es la dificultad de abstracción de los conceptos propios de la orientación a objetos, encontrar las clases suele ser relativamente fácil, no tanto hallar los atributos y menos aún los métodos, por lo que se recomienda el análisis de ejemplos alternativos y la consulta enlaces relacionados.
Tarea Criterios de puntuación

La realización de la tarea consiste en elaborar un documento con la descripción del proceso de obtención de clases, atributos métodos y relaciones, tal y como aparece en los contenidos de la unidad, en el que se detalle lo siguiente:

  • Crear la tabla de sustantivos y categorizarlos, seleccionar las clases indicando porqué en función de los criterios de selección indicados. 2 puntos.
  • Obtención de las relaciones, describiendo porque se han escogido esas y no otras. 1 punto.
  • Obtener los atributos a partir del enunciado. 1 punto.
  • Obtener los métodos a partir del enunciado. 1 punto.

Crear el diagrama. 1 punto.

Añadir getters, setters y constructores en el diagrama. 1 punto.

Refinar el diagrama, indicando en el documento de texto los métodos y atributos que se añaden y porqué. 1 punto.

Añadir documentación, que debe incluirse en el documento de texto y en el diagrama. 1 punto.

Incluir el proyecto VP-UML en un proyecto NetBeans. 1 punto.

Criterios de corrección

El documento de texto debe estar completo, se exige, al menos:

  • Una tabla de extracción de sustantivos con la categoría a la que pertenecen.
  • Una tabla con las clases y sus atributos según el enunciado del problema.
  • Una tabla con las clases y sus métodos según el enunciado del problema.
  • Un análisis de las relaciones entre clases.
  • Los métodos que se añaden para completar el diagrama.
  • La documentación de las clases.

En el proyecto VP-UML debe incluirse un diagrama de clases completo con todos los atributos, métodos, getters, setters y contructores, así como la documentación de las clases.

En el proyecto de NetBeans debe incluirse el proyecto VP-UML.

La obtención de código e informes no es obligatoria por problemas de licencia de la herramienta.

Solución propuesta
La solución completa y correcta a la tarea propuesta, desarrollada por el autor o la autora de la misma, la podrás encontrar como enlace en la página de inicio de la unidad de trabajo, justo debajo del enlace a las orientaciones para la tutoría.
Trabajo de investigación

Se plantea realizar un trabajo de investigación con el fin de saber cuáles son las herramientas,
que existen actualmente para la elaboración de diagramas de clases y hacer una pequeña guía de
una de esas herramientas con el fin de saber cómo realizar un diagrama de clases con dicha
aplicación (no puede ser ni UMLet ni Vsual Paradign UML).


Sería interesante que usaras una herramienta que genere el código Java (una vez diseñado el
diagrama de clases). Hay herramientas que te permiten dibujar el diagrama de clases pero no
genera el código Java.


Intenta que sea una aplicación que genere dicho código (a raíz del diagrama de clases) e intenta
interpretar la razón por la cual ha generado ese código. Con ello veras la gran utilidad que tiene
los diagramas de clase.


Para ello, tienes que inventarte tu propio enunciado que incluya las siguientes relaciones:


1. Cardinalidad N:M
           Es decir, el mínimo el que sea y el máximo (en los dos lados) que sea muchos.
          Ejemplo: un empleado puede trabajar en varias empresas y en una empresa pueden
          trabajar muchos empleados.
2. Cardinalidad 1:N
          Es decir, el mínimo el que sea pero el máximo (en uno de ellos) que sea 1 y en el
         otro lado que sea muchos. Ejemplo: un empleado trabaja en una empresa (como
         mucho) y en una empresa pueden trabajar muchos empleados.
3. Cardinalidad 1:1
         Es decir, el mínimo el que sea pero el máximo (en los dos lados) que sea 1. Ejemplo:
         un empleado puede trabajar como mucho en una empresa y en una empresa hay,
         como mucho, un empleado)

4. Asociación de composición (al menos una).
         Ejemplo: un empleado puede trabajar en una única empresa y si desaparece la
         empresa, desaparece la información de los empleados.
5. Asociación de agregación.
         Ejemplo: un empleado puede trabajar en una empresa y si desaparece la empresa,
         eso no supondrá la desaparición de la información de los empleados.
6. Relaciones unarias (de una clase consigo misma).
7. Relación de herencia.


Y dibujar el diagrama de clases con la herramienta que tú decidas.

 

Con lo cual, en esta unidad hay dos trabajos a entregar. Por ello, cada tarea supondrá un 50% de la nota en esta unidad en las tareas a entregar al profesor.

Temas de debate

Investigar el uso del modelado UML en entornos de desarrollo de software más modernos, como por ejemplo la creación de software para móviles. Se puede acceder, por ejemplo, a la página de desarrollo de Nokia con las librerías QT y analizar como se incluyen los contenidos de la unidad en su perspectiva de desarrollo.

QT y Nokia.