Mostrando entradas con la etiqueta Responsabilidades. Mostrar todas las entradas
Mostrando entradas con la etiqueta Responsabilidades. Mostrar todas las entradas

lunes, 13 de mayo de 2013

Análisis orientado a objetos (AOO) III. Caso práctivo de modelado CRC


Se trata de modelar un sistema de biblioteca con los siguientes requisitos:

Crear una aplicación para gestionar una biblioteca, la aplicación incluirá las búsquedas y préstamo de material bibliográfico, libros, revistas, documentos, etc.

Los socios podrán consultar el material bibliográfico.

Cada socio puede tener prestado un número máximo de elementos, 2 libros, 3 revistas y 4 documentos y cada tipo de material tiene un periodo de préstamo diferente. Libros 15 días, revistas 7 días, Documentos tres días.

Si se devuelve un elemento después de su fecha habrá una multa que también dependerá del tipo de objeto y de los días de demora.

Resolución

En nuestra búsqueda identificamos los nombres (Objetos) y los verbos (Responsabilidades)

Podemos crear la tarjeta CSocio que contendrá los datos del socio (nombre, dirección, teléfono, etc) con las responsabilidades de saber que elementos tiene prestados y por cuanto tiempo.

También parece obvia la tarjeta CMaterial que contendrá los datos del material (ISBN, Título, autor, etc ) y las responsabilidades de conocer las fechas de préstamo y devolución y la multa en caso de demora. Como estas responsabilidades dependerán del tipo de material se puede crear la tarjeta CLibro, CRevista y CDocumento como tarjetas hijas de CMaterial. Finalmente se puede crear un tarjeta que englobe todo CBiblioteca que tenga por funciones prestar y recibir material, visualizarlo, saber si está prestado o no.

El primer diagrama CRC podría ser de este estilo:

                      diagrama CRC

La clase CBiblioteca se conecta a la Base de Datos (esto puede requerir otra clase) para obtener y actualizar información relativa al material y a los préstamos. Dicha clase colabora con CSocio para obtener el material que presta o desea consultar el socio y con CMaterial para obtener la información relativa a este.

La clase CSocio contiene los datos del socio, del material que tiene prestado y las multas que se han aplicado al socio.

La clase CMaterial tiene información relativa a las fechas que presta el material y calcula las multas, de ella derivan tres clases específicas CLibro, CRevista y CDocumento que tienen la responsabilidad de calcular la multa correspondiente. Dicho cálculo es específico para cada tipo de material (polimorfismo), el resto de datos comunes se almacenan en la clase base CMaterial. Siguiendo estas tarjetas se valida y mejora el sistema de clases, creando nuevas clases responsabilidades y colaboraciones hasta llegar al diseño definitivo.

lunes, 6 de mayo de 2013

Análisis orientado a orientado a objetos (AOO) II

El proceso de AOO


Para comenzar a analizar un proyecto no comenzaremos intentando ver que objetos tendrá la aplicación sino más bien si interaccionará con personas o con máquinas, como será esta interacción, si pertenece a un conjunto más amplio de programas o si se coordinará con otras aplicaciones. A continuación se exponen una serie de técnicas para recopilar datos para definir un modelo de análisis.

Casos de uso


Es una visión del sistema desde el punto de vista del usuario define el sistema con un escenario de uso habitual de interacción del sistema con el usuario final. Esta visión debe quedar definida de forma clara y sin ambigüedades y será un excelente modelo de creación de requisitos y de validación de pruebas. El resultado final es un diagrama de casos de uso de UML que puede representarse en diferentes niveles de abstracción.