Está en la página 1de 9

Especialización en Ingeniería de Software

Metodologías, Desarrollo y Calidad en la Ingeniería de Software

Actividad: extracción de clases con un


enfoque orientado a objetos

ESTUDIANTE: Juan Carlos Muñoz Castañeda

Diciembre 2023

pg. 1
1. INTRODUCCION ......................................................................................................................... 3
2. IDENTIFICACIÓN DE LAS CLASES Y SU DESCRIPCIÓN ................................................................... 4
3. ASIGNACION DE ATRIBUTOS Y METODOS .................................................................................. 5
4. RELACION ENTRE CLASES ........................................................................................................... 8
5. DIAGRAMA DE CLASES ............................................................................................................... 9

pg. 2
1. INTRODUCCION

La extracción de clases enfocado a la representación y modelación de un sistema cuya metodología


o arquitectura este orientada a objetos, se debe realizar en varias fases cuyo propósito es
comprender a primera vista el funcionamiento del sistema que se requiere, luego identificar las
posibles clases que comprendería el sistema, modelar las clases necesarias con sus respectivos
atributos y operaciones (métodos) y finalmente la forma entre que se relacionan dichas clases que
se suele describir mediante un diagrama UML (Unified Modeling Language) por sus siglas en ingles,
el cual es un estándar que se usa en la actualidad para representar de manera grafica un sistema e
igualmente es una herramienta que se usa para que los desarrolladores para la codificación.

La actividad desarrollara los siguientes puntos:

I. Identificación de las clases y su descripción: en la cual se examinan los requisitos del


sistema y se definan las clases que deberá tener un nombre que denote un significado
descriptivo de la misma y se debe utilizar sustantivos que reflejen a primera vista la
naturaleza y funcionalidad de la entidad.

II. Asignación de los atributos y operaciones (métodos) de cada clases: la definición de


atributos indica las propiedades o características de la clase y sus métodos indican las
acciones que realiza o se pueden realizar sobre la clase.

III. Relaciones entre clases: Establecer la relación de las clases extraídas en donde se
identifican la naturaleza de esta relación bien sea por asociación, agrupación,
composición o herencia.

IV. Diagrama de clases: Una vez establecido los puntos anteriores, los mismos serán
modelados gráficamente usando la Diagrama UML como herramienta.

Para la presente actividad se definirá, extraerá y diagramará la funcionalidad de un sistema de


préstamo bibliotecario conforme a los puntos anteriormente establecidos.

La clases junto con sus atributos y métodos serán nombrados en ingles , pero sus definiciones y
explicaciones seguirán en español.

pg. 3
2. IDENTIFICACIÓN DE LAS CLASES Y SU DESCRIPCIÓN

a. Biblioteca (Library):
Representa la biblioteca en donde se da acceso a todos los servicios de la misma.

b. Usuario (User)
En este caso es la persona que solicita el préstamo de un libro o realiza su devolución.

c. Catalogo (Catalog)
Maneja la información del material existente y disponible en la biblioteca.

d. Prestamos (Loan)
Maneja la información entre el material disponible junto con la búsqueda del usuario
para habilitar su préstamo.

e. Devoluciones (Return)
Incluye el material prestado por el usuario identifica si un determinado libro se
encuentra dentro del plazo establecido para su devolución.

f. Retrasos (Delay)
Si el material prestado es por fuera del plazo de entrega , esta clase maneja el proceso a
seguir para su devolución e impide que el usuario pueda generar mayores prestamos
hasta ponerse al día.

g. Multas (Penalty)
Dependiendo de los días de retraso calcula la multa y remite al proceso de pago de la
misma.

pg. 4
3. ASIGNACION DE ATRIBUTOS Y METODOS

LIBRARY:
Propiedades:
• Nombre de la Biblioteca (libraryName): Con su nombre lo indica el nombre de la
biblioteca de tipo texto.
• Dirección (adress): ubicación de la biblioteca de tipo texto.

Métodos:
• LOGIN(): Ingreso con autentificación al sistema e inicio de sesión.
• LOGOUT(): Cierre de la sesión.

USER:
Propiedades:
• Documento del Usuario (docUser): identificación del usuario que sirve como
identificador principal de tipo entero.
• Nombre Usuario (nameUser): Nombre y Apellidos del usuario de la biblioteca de
tipo texto.
• Dirección Usuario (adressUser): Dirección del usuario de tipo texto.
• Teléfono Usuario (phoneUser): Teléfono o móvil del usuario de tipo entero.
• Correo Electrónico (emailUser): correo con el se suscribió a la biblioteca y donde
llegan todas las notificaciones y anuncios de tipo texto.
• Cantidad Máxima Prestamos (maxLoans): numero máximo de libros que el
usuario puede sacar en préstamo de tipo entero.
• Cantidad Prestamos (qtyLoans): numero de libros prestados al usuario de tipo
entero.
• Estado de Prestamos (delayLoan): indica si el usuario tiene algún libro sin devolver
por lo que se encuentra en mora de tipo Booleano.

Métodos:
• Crear Usuario createUser(): crea el nuevo usuario con los datos pertinentes.
• Modificar Usuario updateUser(): permite actualizar la información personal del
usuario.
• Eliminar Usuario eraseUser(): da de baja al usuario en caso que el mismo lo desee.

pg. 5
CATALOG:
Propiedades:
• Identificación del Libro (idItem): identificador interno de cada libro que existe
dentro de la biblioteca de tipo entero.
• Tipo o tags (type): agrupa los criterios de búsqueda de los libros tales como, el
genero.
• Identificador de la obra o texto (isbn): (International Standard Book Number) que
permite clasificar las obras según título, editor y características de la edición de tipo
texto.
• Autor del libro (author): Author de la obra o texto que también sirve como criterio
de búsqueda de tipo texto.
• Año de Publicación (year): Año de publicación o de la edición del texto de tipo
entero.
• Numero de Existencias (copies): es el stock total o numero de copias que se tiene
de cada ejemplar disponibles para préstamo de tipo entero.

Métodos:
• Anadir libro al catalogo addItem(): permite al administrador (no al usuario)
ingresar un nuevo libro o nueva existencia de algún ejemplar que se tenga e el
catalogo.
• Eliminar Libro eraseItem(): permite al administrador (no al usuario) eliminar un
libro o ejemplar del catalogo, bien sea por deterioro, perdida o razones editoriales.

LOAN:
Propiedades:
• Identificación del Libro (idItem): Trae el identificador único del catalogo para ser
pedido en préstamo por el usuario de tipo entero.
• Fecha de préstamo (loanDate): fecha en que el usuario saca el libro en prestado
de tipo fecha.
• Fecha de regreso (returnDate): fecha en que el usuario debe devolver el libro de
tipo fecha.

Métodos:
• Realizar préstamo setLoan(): asigna el préstamo.
• Devolver préstamo returnLoan(): devolver préstamo, el cual llama a la clase
RETURN y dependiendo del valor de su método “calcDaysDelay()” si es mayor a cero,
usa las siguientes clases DELAY y PENALTY.

pg. 6
RETURN:
Propiedades:
• Identificación del Libro (idItem): Trae el identificador único del catalogo del libro
prestado al usuario de tipo entero.
• Fecha Real de regreso (realReturnDate): fecha en que el usuario devuelve el libro
de tipo fecha.

Métodos:
• Calcular días de mora calcDaysDelay(): Calcula los días de mora entre el día real
de regreso del libro y el día limite de regreso del préstamo, en caso de ser mayor a
cero llama las siguiente clases.

DELAY:
Propiedades:
• Identificación del Libro (idItem): Trae el identificador único del catalogo del libro
en mora de tipo entero.
• Documento del Usuario (docUser): identificación del usuario que esta en mora de
tipo entero.

Métodos:
• Habilitación de préstamo delayLoanUser(): envía a los datos del usuario la
habilitación o deshabilitacion de libros al usuario y llama la clase PENALTY.

PENALTY:
Propiedades:
• Identificación del Libro (idItem): Trae el identificador único del catalogo del libro
en mora de tipo entero.
• Documento del Usuario (docUser): identificación del usuario que esta en mora de
tipo entero.
• Días de Mora (delayDays): numero de días en mora de tipo entero.
• Costo diario de mora (costPenaltyDay): costo diario de multa que depende del
tipo de usuario de tipo Flotante.

Métodos:
• Costo total de la mora calcPenaltyr(): Calcula el costo total de la multa,
multiplicando los días de mora y el costo diario de mora.

pg. 7
4. RELACION ENTRE CLASES

Las clases presentan las siguientes relaciones:

o La biblioteca tiene una relación de asociación con el catalogo y pueden haber


varios catálogos dentro de la biblioteca.
o El usuario tiene una relación de asociación con la biblioteca y el usuario solo
puede abrir una cuenta con su documento de identidad.
o El usuario tiene una relación de asociación con Prestamos y puede realizar
varios prestamos según lo indique su máximo numero de prestamos.
o Prestamos tiene relación de asociación con el catalogo, y como se comunican
mediante el id del material o existencia, solo se puede prestar un libro a la vez
o Devoluciones tiene relación de asociación con prestamos, y solo se puede
devolver un libro que este prestado una sola vez.
o Retrasos (Delay) tiene una relación de dependencia con Devoluciones, ya que
dependiendo del calculo de los días se llama a la clase Delay.
o Multas (Penalty) tiene una relación de dependencia con Retrasos, ya que
dependiendo de la asignación de retardo, llama a la clase Multas y a su vez tiene
una relación de Implementación para el envió de valor a la clase usuario para
deshabilitar el modulo de prestamos o clase.
o Multas igualmente tiene una relación de implementación sobre la clase usuario,
enviando los costos de la multa en donde pueden haber varias multas si existen
varios libros devueltos de manera tardía.

pg. 8
5. DIAGRAMA DE CLASES

pg. 9

También podría gustarte