Vous êtes sur la page 1sur 13

PROGRAMACIÓN DE COMPUTADORAS II

MODELADO

Basado en libro Programación en Java 6 de Ignacio Zahonero Martínez, Luis Joyanes Aguilar

BÚSQUEDA DE CLASES

 Un problema desarrollado con técnicas O.O., en primer lugar debe responder a esta pregunta: ¿cuáles son los
objetos del programa?.

 Los objetos son instancias de clases, entonces la primera etapa en el desarrollo O.O. exige la identificación de
clases, y posteriormente sus atributos y comportamiento (métodos).

 La localización de clases debe pertenecer al dominio del problema y darles nombres que representen su
responsabilidad en la aplicación.

 Coad y Yourdon proponen seguir un método que consta de dos etapas:

• Primero buscar las clases candidatas. Se identifica un conjunto amplio de clases candidatas.
• En segundo lugar, seleccionar de entre ellas las clases válidas. Aquellas que sean aplicables al dominio de
nuestro problema.

 Bertrand Meyer: "No existe una receta milagrosa para identificar clases que pueda sustituir a la destreza individual
o al experiencia del propio desarrollador de aplicaciones. "

1
IDENTIFICAR LAS CLASES(I)

 Existen diversos criterios para identificar clases candidatas. El sistema que propone UML:

En conversaciones con el cliente del sistema a desarrollar, preste atención a los sustantivos que
utiliza para describir las entidades de su negocio, ya que dichos sustantivos se convertirán en clases
candidatas de su modelo. También preste atención a los verbos que escuche, constituirán
operaciones de sus clases. Los atributos surgirán como sustantivos relacionados con los nombres de
las clase.

Una vez que tenga una lista básica de las clases, pregunte a los clientes qué es lo que cada clase
hace dentro del negocio  responsabilidades de la clase.

IDENTIFICAR LAS CLASES(II)

 Cuando se parte de un documento con los requisitos del problema, el mejor sistema para identificar
clases, o mejor clases candidatas:

Lea la definición o descripción de las especificaciones del problema y localice los nombres o frases
con nombre y verbos o frases con verbos. Los nombres son buenos indicadores de la existencia
de objetos en el modelo OO y los verbos son candidatos a métodos.

 Después de encontrar todos los nombres, se examina lista y se decide qué nombres son realmente
clases en nuestro sistema. Pueden aparecer nombres que simplemente sean atributos de una clase,
por ejemplo un nombre que no puede ser clase es el número de nómina. Es un dato que no
contiene acciones, será un atributo de la clase Empleado.

2
CONCEPTOS QUE IDENTIFICAN CLASES

 Cuando se buscan clases candidatas en el documento de requisitos las siguientes cuestiones ayudan a
identificarlas:
• ¿Se dispone de información que se pueda analizar o almacenar?. En definitiva eventos a recordar. La
información puede ser concepto que se debe registrar en el sistema y por consiguiente clase en el dominio
del problema. Por ejemplo: fecha y hora de acceso de un coche a un parking, compra con una tarjeta.
• ¿Existen sistemas externos?. Sistemas con los que interactúa el sistema en desarrollo. Si es así, serán
considerados clases.
• ¿Existen dispositivos que el sistema puede manejar?. Cualquier dispositivo externo conectado al sistema se
convierte en clase candidata. Por ejemplo, barrera automática, sensor de temperatura, etc.
• ¿Existen partes organizacionales?. Sucursal, departamento, comité etc, siempre que haya que guardar
información específica.
• ¿ Qué roles juegan los actores en la aplicación?. Gerente, Oficinista, Supervisor, etc, son diferentes roles que
una persona puede desempeñar en un trabajo. Jefe de Estudios, Alumno, Director, Profesor, son roles que
desempeñan personas en un Consejo Escolar. Estos roles se pueden ver como clases.
• ¿Hay lugares de los que se necesite guardar información?. Si es así serán candidatos a clases.
• ¿Hay componentes, bibliotecas de clases de proyectos anteriores ?. Normalmente contendrán clases
candidatas.

 Regla: convertir en clase candidata todo aquel concepto del que haya que almacenar información
en el sistema, bien a corto o a largo plazo.

EJEMPLO: FLOTA DE VEHÍCULOS(I)

 Controlar la gestión de una flota de diferentes vehículos: coches, camiones, aviones, helicópteros. Cada vehículo
dispone de un radio de acción y una capacidad de carga total. En un instante dado, un vehículo puede encontrarse
en un cierto lugar con una determinada carga.

 Identificar clases. Del análisis del enunciado se extrae la siguiente lista de nombres y frases con nombre que
son clases candidatas:

Flota
Vehículo
Coche
Camión
Avión
Helicóptero
Radio de acción
Capacidad de carga
Lugar
Carga

3
EJEMPLO: FLOTA DE VEHÍCULOS(II)

 Una vez realizada la primera lista de clases candidatas, se realiza un proceso de refinamiento que trate de evitar
una proliferación inútil de clases.
 En esta aplicación parece que no es necesario declarar clases para gestionar el radio de acción y la capacidad de
carga. Estas características se pueden fijar como atributos de vehículo y son comunes a todo tipo de vehículo.
También, es lógico pensar que existen dos tipos de vehículos: terrestres y aéreos. Entonces la lista de clases:
Flota
Vehículo
Vehículo Terrestre
Vehículo Aéreo
Coche
Camión
Avión
Helicóptero
Lugar
Carga
 Relaciones. Un flota contiene vehículos (agregación). Cada vehículo contiene una carga (agregación) y se
encuentra actualmente en un lugar. Hay diferentes tipos de vehículos que comparten propiedades y
comportamiento (generalización/especialización):

CRITERIOS PARA ELEGIR CLASES VÁLIDAS

 A partir de la lista de clases candidatas, para seleccionar las clases válidas se pueden seguir los
siguientes criterios:

• Necesidad de recordar. La clase debe tener información asociada.

• Necesidad de comportamiento. Las clases deben tener operaciones. Un clase sin operaciones puede
existir pero es conveniente una reflexión sobre su utilidad.

• Mas de un atributo. Una clase con un solo atributo es sospechosa de no ser clase, sino atributo de otra.

• Atributos y métodos siempre aplicables. Todos los objetos de una clase deben tener los mismos
atributos y métodos. Si se encuentra objetos de la misma clase con atributos, o métodos, diferentes, puede
ser que en realidad exista más de una clase, las cuales se relacionarán mediante generalización.

4
EJERCICIO 1 DE MODELADO DE CLASES
Biblioteca (nº 7)(I)
Encontrar las clases, relaciones y realizar un diagrama de clases del siguiente documento relativo a una biblioteca: por
cada libro existente el catálogo contiene el título, el autor y el número ISBN. Puede haber varios ejemplares de un libro.
Cada ejemplar de un libro tiene un único número de acceso. Los socios de la biblioteca tiene una clave para préstamo.
El sistema registra el nombre, dirección del lector y el número de clave por cada préstamo. Los socios sólo pueden
solicitar un libro en préstamo, el sistema mantiene un registro de los libros que un socio ha tenido en préstamo, junto
con la fecha de devolución.

Clases candidatas Verbos


Libro Clave registrar nombre ...
Catálogo Préstamo solicitar
Nombre mantener registro
Titulo
Autor Dirección
Isbn Sistema
Ejemplar FechaDevolución
NumeroAcceso
Socio
Biblioteca

EJERCICIO 1, Biblioteca (II)

 Regla de oro: convertir en clase candidata todo aquel concepto del que haya que almacenar
información en el sistema, bien a corto o a largo plazo.

 Clases en el dominio del problema (clases válidas):

Libro (atributos: título, autor, isbn)


Catálogo (atributos: número de libros, detalles de cada libro)
Ejemplar (atributos: número de acceso, título ....)
Socio (atributos: clave, nombre, dirección)
Préstamo (atributos: fecha de entrega, fecha devolución, detalles del socio y del ejemplar)

5
EJERCICIO 1, Biblioteca (III)

 Relaciones
Catálogo "necesita" relacionarse (asociarse) con Libro para conocer sus detalles.

Catalogo * Libro

Catalogo Contenedor Libro

EJERCICIO 1, Biblioteca (IV)

Ejemplar tiene las mismas propiedades que un Libro, además el atributo propio número de acceso.

Libro

Ejemplar

Un Préstamo se puede considerar que es una interacción entre Socio y Ejemplar . El socio toma un
ejemplar de un libro, los detalles del socio y del ejemplar son de interés para realizar el préstamo, así
como la fecha de entrega.

Socio Prestamo Ejemplar

6
EJERCICIO 1, Biblioteca (V)

Con el fin de mantener información del sistema, habrá dos tipos de listas, una de socios y otra de
préstamos.

Lista

ListaSocio ListaPrestamo
Socio Prestamo

EJERCICIO 1, Biblioteca (VI)

Catalogo * Libro Lista

ListaPrestamo ListaSocio
Ejemplar

Prestamo Socio

7
EJERCICIO 2 DE MODELADO DE CLASES
Encuestas (I)
 Se desea desarrollar un sistema de recogida de encuestas a través de internet. Cualquier
persona desde su navegador puede inscribirse en el sistema rellenando un formulario. El
formulario recoge los siguientes datos obligatorios del nuevo usuario:

• Apellidos y nombre.
• Alias de usuario para acceder al sistema.
• Dirección de correo electrónico.
• Temas en los que está interesado (seleccionando uno o más de los que se le ofrecen).
Para cada uno de estos temas, especificará un grado de preferencia en una escala de 1 a
10, según el grado de interés.

Una vez validados los datos, el sistema le devuelve al usuario una palabra clave única que le
permitirá acceder al sistema, junto al nombre de usuario. Periódicamente, el usuario recibirá
por correo un cuestionario sobre uno de los temas que seleccionó en su inscripción. Deberá
rellenarlo y devolverlo por la misma vía. Para contestar al cuestionario el usuario marcará una y
sólo una de las cuatro propuestas a cada pregunta, pero en el futuro se permitirá también
hacer preguntas de otros tipos, como preguntas abiertas, y se debe acomodar el análisis a esta
circunstancia. A partir de todos los cuestionarios recogidos sobre un tema, el sistema publicará
unos resultados estadísticos que podrán ser consultados desde una página Web.

SOLUCIÓN, Encuestas (II)

 Identificar clases. Del análisis del enunciado se extrae la siguiente lista de nombres y frases con nombre que
son clases candidatas: Y de verbos que pueden indicar operaciones.

Sistema
Encuesta
Persona
Formulario
Usuario
Apellido
Nombre
Alias
Correo
Tema
Escala
Clave
Cuestionario
Pregunta
Respuesta

8
SOLUCIÓN, Encuestas (III)

 Antes de realizar el proceso de refinamiento, recordemos la regla de oro: convertir en clase candidata todo
aquel concepto del que haya que almacenar información en el sistema, bien a corto o a largo plazo.

En un principio se puede considerar que Formulario es una forma de agrupar Nombre, Apellido, alias y dirección
de correo. Tema sí tiene entidad para ser una clase, guarda información y tiene operaciones para manejar el
contenido . La selección de un tema tiene la característica (atributo) de el grado de interés. Usuario es el rol de
Persona en este contesto. En el enunciado del texto aparece Sistema para referirse a la aplicación. Entonces la
lista de clases:

Encuesta
Usuario
Tema
Selección
Cuestionario
Pregunta
Respuesta

SOLUCIÓN, Encuestas (IV)

 Relaciones. El usuario realiza una o más selecciones, cada elección se corresponde con un tema (relaciones de
asociación). Cada Cuestionario está formado por un rango de preguntas, y cada pregunta por 4 respuestas
(agregación). El usuario puede participar en un número de encuestas indeterminado. Para elaborar una encuesta
se evalúan las contestaciones recibidas.
 Diagrama de clases:

Tema

Selección
Cuestionario Pregunta Respuesta
1..* 4
1..*

0..*
Usuario Encuesta

 El diagrama no recoge la contestación a las preguntas del formulario. Se mejora con una nueva clase: Contestación,
asociada con Encuesta. Además, para tener en cuenta la posibilidad de preguntas abiertas, se introduce la clase
PreguntaTest, que incorpora la peculiaridades de este tipo de preguntas.

9
SOLUCIÓN, Encuestas (V)

 El diagrama de clases más refinado:

Pregunta
Tema
-nombre
+getNom
Selección

Cuestionario PreguntaTest Respuesta


1..*
- numPreguntas 1..* 4

1..*
1..*

Usuario
0..* Encuesta
- nombre
-fecha 1..* Contestación
- apell
- numResp -orden
- correo
+getTexto
- clave

EJERCICIO 3 DE MODELADO DE CLASES


Sistema de monitorización
 Realice el análisis de un sistema de monitorización de redes que realiza la
información y visualización de un grupo de redes. Cada monitor muestra la
configuración de una red en un momento específico. Existen tres tipos de redes: en
anillo, en bus y en estrella. Las redes están compuestas por nodos
independientemente de su topología, los cuales tienen un identificador de red único
que los distingue. El sistema debe poder reconfigurar los nodos añadiendo o
quitando desde el monitor que la visualiza.

10
SOLUCIÓN, Sistema de monitorización (I)

 Identificar clases. Del análisis del enunciado se extrae


la siguiente lista de nombres y frases con nombre que son
clases candidatas: Y de verbos que pueden indicar
operaciones.
Nombres Verbos
Sistema mostrar
Red estar compuesta
Monitor visualizar
Red en anillo reconfigurar
Red en bus añadir
Red en estrella eliminar
Nodo
Identificador

SOLUCIÓN, Sistema de monitorización (II)

 A continuación se realiza un proceso de refinamiento. Parece que no es necesario declarar una clase para
representar el identificador de nodo. Estas característica se pueden fijar como atributo de nodo. En el enunciado
del texto aparece Sistema para referirse al problema, no tiene una responsabilidad en el dominio del problema.

 Relaciones. Un red está compuesta de nodos (agregación).. Hay diferentes tipos de redes que comparten
propiedades y comportamiento (generalización/especialización). El monitor está relacionado con la red para
realizar su funcionalidad, es necesario establecer una relación de asociación entre monitor y red.

 Las operaciones que se pueden identificar en la aplicación :

 Monitor puede mostrar la configuración de la red.


 Dar de alta un nodo.
 Dar de baja un nodo.
 Operaciones de navegación ...

11
SOLUCIÓN, Sistema de monitorización (III)

Red
Monitor 1 .. * Nodo

darAlta identif
añadirNodo
darBaja
quitarNodo

EnAnillo EnEstrella EnBus

PROBLEMA 1 DE MODELADO DE CLASES


Organigramas
Se desea implementar una aplicación que permita realizar organigramas en color. Los
elementos de que consta un organigrama en este momento son líneas, círculos,
óvalos, rectángulos, rectángulos con esquinas redondeadas, líneas rectas y texto. El
sistema puede experimentar cambios por incorporación de nuevos elementos. Se sabe
que el cliente quiere que se pueda borrar, mover y por supuesto dibujar todos los
elementos del organigrama. También se ha de poder guardar y recuperar desde un
almacenamiento permanente.

12
PROBLEMA 2 DE MODELADO DE CLASES
Competencia de gimnasia
Se quiere diseñar un sistema para simplificar los marcadores de competiciones, tales
como gimnasia, salto de palanca, y barra fija. Existen distintas pruebas y distintos
competidores. Todo competidor puede participar en distintas pruebas y toda prueba
tiene muchos competidores. Cada prueba tiene varios jueces que califican al
competidor de la prueba. En algunos casos, un juez puede calificar más de una prueba.
Cada competidor realiza tres intentos, que es calificado por el conjunto de jueces de la
prueba.

PROBLEMA 3 DE MODELADO DE CLASES


Teléfonos
En un sistema telefónico se utilizan teléfonos fijos y teléfonos móviles. Los fijos están
conectados directamente a las centralitas locales y los móviles a su centralita local a
través de unas antenas intermedias. Además, para cuando se realizan llamadas entre
diversas operadoras, existen centralitas puente encargadas de la transformación de
mensajes.
Cuando un usuario marca un número de teléfono, la centralita local pide un canal al
ordenador central. La búsqueda del teléfono destino se realiza por toda la red de
centralitas a través de dicho canal, hasta llegar al destino final. Una vez terminada la
llamada y cerrada la conexión, la centralita local le indica al ordenador que puede
liberar el canal y le pasa la información de la llamada. El ordenador almacena esa
información en la base de datos de clientes.

13

Vous aimerez peut-être aussi