Sie sind auf Seite 1von 30

SOFTWARE PARA LA GESTIÓN BÁSICA DE UNA TIENDA DE LIBROS Y VIDEOS

MODELO ESTRUCTURAL

HARVEY RICARDO PEÑALOZA MARTINEZ

20182495009

YEISON EFRAIN TAFUR CANTE

20182495015

PROFESOR:

Ph. D. HENRY ALBERTO DIOSA

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD DE INGENIERÍA

MAESTRÍA EN CIENCIAS DE LA INFORMACIÓN Y LAS COMUNICACIONES. ÉNFASIS EN INGENIERÍA


DE SOFTWARE

INGENIERÍA DE SOFTWARE II

BOGOTÁ D.C.

MAYO 8

2019
Contenido
1. Lista de clases y objetos candidatos............................................................................................ 3
1.1. Lista de sustantivos ............................................................................................................. 3
1.2. Lista de clases seleccionadas............................................................................................... 4
2. Organización de las Estructuras .................................................................................................. 4
3. Diccionario de Clases................................................................................................................... 4
4. Mapa de navegación de IGU ..................................................................................................... 16
4.1. Flujos de navegación de vendedor.................................................................................... 16
4.2. Bocetos visuales ................................................................................................................ 17
4.2.1. Login y menús............................................................................................................ 17
4.2.2. Funcionalidades de Productos .................................................................................. 19
4.2.3. Funcionalidades de Clientes ...................................................................................... 20
4.2.4. Funcionalidades de Ventas y Alquiler ....................................................................... 24
4.2.5. Funcionalidades de reportes ..................................................................................... 28
4.2.6. Mensajes de Confirmación y error ............................................................................ 29
INTRODUCCIÓN

El presente trabajo contiene el modelo estructural del producto de software del problema de la
tienda de libros y videos, partiendo de la especificación funcional se realiza el análisis del cual se
obtiene la definición del modelo requerido para este documento. El modelo estructural contiene un
listado de clases y objetos candidatos, el diagrama de clases, el modelo de persistencia del problema
a trabajar, la definición del patrón arquitectónico de fuente de datos y la estrategia de mapeo a
utilizar.

1. Lista de clases y objetos candidatos


1.1. Lista de sustantivos
Se encontraron los siguientes objetos y clases candidatas partiendo del análisis de la definición del
problema:

 Tienda
 Gestión de clientes
 Gestión de productos
 Reportes
 Gestión Ventas
 Gestión Alquiler
 Persona
 Vendedor
 Administrador
 Productos
 Usuario
 Pagos
 Afiliación
 Tipo Afiliación
 Registro de cliente
 Categorías
 Estado de producto
 Estado de Cliente
 Tipo de tarjetas
 Transacción
 Rol
 Permiso
 Tipo Persona
1.2. Lista de clases seleccionadas

Luego de realizar el análisis de los sustantivos se definen las siguientes clases:

Clases
Producto
Persona
Usuario
Factura
Pago
Transaccion
Rol
TipoPersona
TipoDocumento
EstadoProducto
EstadoUsuario
Categoria
Afiliacion
TipoAfiliacion

2. Organización de las Estructuras

3. Diccionario de Clases

Nombre de la clase: TipoPersona


Descripción: La clase permite realizar una distinción de los usuarios del sistema, las personas son
clientes externos o usuarios internos, esta clase permite abstraer la función que cumple el
registro Persona en el sistema, esta clase cumple como elemento de referencia a la clase Persona.
Atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
privado idTipoPersona Numérico Identificador único del Valor único
tipo de persona
privado nombre string Nombre que describe el los posibles
tipo de persona en el valores son:
sistema  Interno
 Externo
Métodos
Visibilidad Nombre Tipo Tipo Retorno Semántica
Parámetro
público getListaTipoPersona void Lista<TipoPersona> Método para
obtener todos
los datos
registrados
como tipo
persona

Nombre de la clase: TipoDocumento


Descripción: la clase permite tener una colección de tipos de documento para identificar y
diferenciar el documento con el cual un cliente se ha registrado a la tienda, existe la posibilidad
de tener números de documento iguales sin embargo el tipo de documento los debe diferenciar.
Atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
privado idTipoDocumento Numérico Identificador único del Valor único
tipo de documento
privado nombre string Nombre que describe el Valor máximo
tipo de documento en de 40
el sistema caracteres
Métodos
Visibilidad Nombre Tipo Tipo Retorno Semántica
Parámetro
público getListaTipoDocumento void Lista<TipoDocumento> Método para
obtener
todos los
datos
registrados
como tipo
documento

Nombre de la clase: TipoAfiliacion


Descripción: la clase permite obtener una colección de tipos de afiliación, inicialmente se dispone
de afiliación de 6 y 12 meses.
Atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
privado idTipoAfiliacion Numérico Identificador único del Valor único
tipo de afiliación
privado nombre string Nombre que describe el Valor máximo
tiempo de afiliación de 20
caracteres
privado meses Numérico Valor que indica Valor
cuantos meses se va a numérico,
afiliar el cliente todos los
valores
posibles
privado porcentaje Numérico Este valor numérico Valor es
indica el porcentaje de número en
descuento que va a rango de 0 a
tener un cliente afiliado 100
a la tienda.
privado valor Numérico En este campo se define Valor
el valor de la afiliación numérico,
en pesos moneda todos los
colombiana valores
posibles
Métodos
Visibilidad Nombre Tipo Tipo Retorno Semántica
Parámetro
público getListaTipoAfiliacion void Lista<TipoAfiliacion> Método para
obtener
todos los
tipos de
afiliación
registrados

Nombre de la clase: EstadoDisponibilidad


Descripción: Esta clase permite definir el estado de un producto en cuanto a disponibilidad se
refiere mediante esta colección se puede definir en que estado se encuentra el producto
Atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
privado idEstadoDisponibili Numérico Identificador único del Valor único
dad tipo de persona
privado nombre string Nombre que describe el los posibles
tipo de persona en el valores son:
sistema  Disponible
 Vendido
 Alquilado
 De baja
Métodos
Visibilidad Nombre Tipo Tipo Retorno Semántica
Parámetro
público getListaEstadoDisp void Lista<EstadoDisponibilida Método para
onibilidad d> obtener todos
los estados de
disponibilidad a
los que puede
pertenecer un
producto

Nombre de la clase: EstadoProducto


Descripción: Esta clase contiene una colección de registros que se asocian al estado de los
productos, los productos pueden tener diferentes estados físicos en cuanto al deterioro se
refiere.
Atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
privado idEstadoProducto Numérico Identificador único del Valor único
estado del producto
privado nombre string Nombre que describe los posibles
el estado del producto valores de este
en el sistema. campo son:
 Bueno
 Regular
 Ligero
deterioro
 Muy
deteriorado
 De baja
Métodos
Visibilidad Nombre Tipo Tipo Retorno Semántica
Parámetro
público getListaEstadoProducto void Lista<EstadoProducto> Método para
obtener todos
los datos
registrados
como estado
producto

Nombre de la clase: EstadoPersona

Atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
privado idEstadoPersona Numérico Identificador único del Valor único
estado de usuario
privado nombre string Nombre que describe el Valor máximo
estado del usuario en el de 40
sistema caracteres
Métodos
Visibilidad Nombre Tipo Tipo Retorno Semántica
Parámetro
público getListaEstadoUsuario void Lista<EstadoUsuario> Método para
obtener todos
los datos
registrados
como estado
usuario

Nombre de la clase: Categoria

Atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
privado idCategoria Numérico Identificador único de la Valor único
categoría
privado Nombre string Nombre que describe la Valor máximo
categoría de los de 40
productos en el sistema caracteres
Métodos
Visibilidad Nombre Tipo Tipo Retorno Semántica
Parámetro
público getListaCategoria void Lista<Categoria> Método para
obtener todos
los datos
registrados
como categoria

Nombre de la clase: Producto


Descripción: Elemento que representa un producto de venta o alquiler que será entregado a los
clientes según sea solicitado.
Atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
privado idProducto Secuencia Representa un El valor único
número de generado por el
secuencia motor(Numérico)
autogenerado,
siendo este un
identificador único
del registro
privado identificador String Representa un valor Valor máximo de
de identificación de 15 caracteres
producto, este valor
es único para cada
producto.
privado nombre String Representa el Valor máximo de
nombres del 120 caracteres
producto, mediante
el cual se puede
identificar
privado valorAlquilerDia Decimal Representa al valor Aplica todos los
de alquiler del valores posibles
producto en un día. suministrados
privado valorVenta Decimal Contiene el valor de Aplicatosdos los
venta del producto valores
suministrados
privado categoria Categoria Contiene el valor de Objeto de tipo
la categoría definida categoria, solo se
para cada producto puede tener una
categoría
asociada
privado estadoProducto EstadoProducto Representa el valor Objeto de tipo
de estado del EstadoProducto,
producto, este valor solo se puede
se obtiene de una tener un estado
colección de asociado
estados del
producto
Métodos *,**
Visibilidad Nombre Tipo Parámetro Tipo Retorno Semántica
público consultarProducto identificador: Producto Método para
Numérico realizar la
consulta de
productos
mediante el
identificador del
producto
público actualizarProducto producto: boolean Método para
Producto realizar la
actualización de
los registros de
producto, el
identificador del
producto no se
puede actualizar,
se retorna
confirmación de
actualización
público crearProducto producto: boolean Método para
Producto persistir el
producto, se
retorna
confirmación del
registro
guardado.
público listaProductos identificador: Lista<producto> Método para
Numérico, obtener la lista
nombre: String de productos
filtrando por dos
parámetros
número de
identificador y/o
nombre, si no se
envían
parámetros , se
retorna la lista de
productos
* En la capa de métodos se encuentran los métodos constructores de la clase
 Constructor sin parámetros de entrada
 Constructor con todos los atributos como parámetros de la clase constructora.

** La clase incluye los métodos de obtención y asignación de valores, para cada atributo,
mediante las estructuras:

 Asignación:
o Visibilidad: Público;
o Nombre método: setNombreAtributo;
o Tipo parámetro: del mismo tipo que el atributo;
o Tipo retorno: void.
 Obtención:
o Visibilidad: Público;
o Nombre método: getNombreAtributo;
o Tipo parámetro: void;
o Tipo retorno: del mismo tipo que el atributo.

Nombre de la clase: Usuario


Descripción: Elemento que representa los usuarios con acceso al sistema, para dicho acceso los
usuarios deben utilizar usuario y contraseña, cada usuario está asociado a un rol y cada rol tiene
permisos específicos asociados a la navegación y tareas en la aplicación.
Atributos
Visibilidad Nombre Tipo Semántica Dominio de valores
privado nombreUsuario string Nombre de usuario Tamaño máximo de
con el cual los 15 caracteres
usuarios se
identifican para
ingresar a la
aplicación
privado clave string Contiene el valor de Tamaño mínimo de la
la clave con la que clave de 8 y máximo
el usuario se de 15 caracteres para
autentica en el la clave en claro
sistema. La clave se
debe persistir en
cifrado SHA256
privado persona Persona Contiene el objeto Objeto de tipo
persona el cual Persona, solo se
contiene la puede tener una
información básica persona asociada
del usuario.
Métodos *,**
Visibilidad Nombre Tipo Parámetro Tipo Retorno Semántica
público Usuario void void Método Constructor
de la clase
público consultaUsuario nombreUsuario: Usuario Método para obtener
Nombre String el usuario filtrado por
nombre
público actualizarClave usuario:Usuario boolean Realiza la
actualización del
clave de un usuario
especifico, retorna
true en caso de éxito,
falso en caso
contrario
público crearUsuario usuario:Usuario boolean Realiza la creación de
un usuario, retorna
true en caso de éxito,
falso en caso
contrario
público actualizarUsuario usuario:Usuario boolean Método para
actualizar los datos
de usuario, retorna
true en caso de éxito,
falso en caso
contrario
* En la capa de métodos se encuentran los métodos constructores de la clase
 Constructor sin parámetros de entrada
 Constructor con todos los atributos como parámetros de la clase constructora.
** La clase incluye los métodos de obtención y asignación de valores, para cada atributo,
mediante las estructuras:

 Asignación:
o Visibilidad: Público;
o Nombre método: setNombreAtributo;
o Tipo parámetro: del mismo tipo que el atributo;
o Tipo retorno: void.
 Obtención:
o Visibilidad: Público;
o Nombre método: getNombreAtributo;
o Tipo parámetro: void;
o Tipo retorno: del mismo tipo que el atributo.

Nombre de la clase: Afiliacion


Descripción: Con esta clase se puede determinar que un cliente es afiliado a la tienda lo cual
permite que se asigne un porcentaje de descuento, cada persona puede elegir una membresía de
6 o 12 meses, cuando el afiliado paga la suscripción por los 12 meses obtiene un mayor beneficio
de descuento en cada compra y/o alquiler de los productos de la tienda.
Atributos
Visibilidad Nombre Tipo Semántica Dominio de
valores
privado idAfiliacion Secuencia Representa un numero de El valor único
secuencia autogenerado, generado por el
siendo este un motor
identificador único del (Numérico)
registro

privado tipoAfiliacion TipoAfiliacion Representa el tipo afiliación


donde se define el tiempo
de
Métodos *,**
Visibilidad Nombre Tipo Parámetro Tipo Retorno Semántica

Nombre de la clase: Persona


Descripción: Esta clase contiene la información de los usuarios que intervienen en el sistema siendo
estos de tipo interno o externo, las personas de tipo externo son clientes y las internas son usuarios
con acceso a la manipulación de la aplicación (Vendedor y Administrador).
Atributos
Visibilidad Nombre Tipo Semántica Dominio de valores
privado idPersona Secuencia Representa un numero El valor único
de secuencia generado por el
autogenerado, siendo motor (Numérico)
este un identificador
único del registro
privado tipoDocumento TipoDocumento Corresponde a la Objeto de tipo
asignación de un tipo TipoDocumento,
de documento solo se puede tener
asociado a una asociado un tipo de
colección de tipo documento
TipoDocumento
privado documento Numérico Representa el valor del Todos los posibles
número de valores que se
identificación del puedan tener de
cliente, este valor números de
permite la consulta de identificación, se
los clientes en puede estar
combinación con el repetido, pero en
tipo de documento combinación con el
tipo de documento
estos deben ser
únicos.
privado nombres String Representa los Valor máximo de
nombres de la 120 caracteres
persona, mediante el
cual se puede
identificar un usuario
privado apellidos String Representa los Valor máximo de
apellidos de la 120 caracteres
persona, contribuye a
la identificación de un
usuario
privado direccion String Representa la Valor máximo de
ubicación física de 120 caracteres
domicilio de la persona
cliente
privado telefono Numérico Corresponde al valor Al valor debe ser
que va a tener como igual a 7 caracteres
número de contacto
fijo de la persona
privado celular Numérico Corresponde al valor Al valor debe ser
que va a tener como igual a 7 caracteres
número de contacto
móvil del cliente
privado estadoUsuario EstadoUsuario Representa el valor Objeto de tipo
asociado a una EstadoUsuario, solo
colección de se puede tener un
EstadoUsuario con el estado asociado
cual se determina el
estado del cliente, este
estado puede indicar,
si está registrado,
afiliado o de baja.
privado tipoPersona TipoPersona Representa la Objeto de tipo
especificación del tipo TipoPersona, solo se
de persona en el puede tener un tipo
sistema, si es un cliente persona asociado ya
(Externo) o si tiene que esto indica si es
acceso al sistema como un cliente con
vendedor o acceso a la
administrador(Interno) aplicación
privado usuario Usuario Se asocia usuario en el Objeto de tipo
sistema cuando la Usuario, solo se
Persona es de tipo puede tener una
Interno. Esta asociación, con
asociación le permite a objeto de tipo
una persona usuario
privado afiliacion Afiliacion Campo que permite Objeto de tipo
indicar si una persona Afiliacion , solo se
se encuentra afiliada, puede tener un tipo
mediante la afiliación asociado.
se puede indicar el
porcentaje de
descuento en la
compra o alquiler de
productos
Métodos *,**
Visibilidad Nombre Tipo Parámetro Tipo Retorno Semántica
público Cliente void void Método constructor
de la clase
público consultarCliente tipoDocumento: Cliente Método para
Numérico realizar la consulta
,documento: de cliente mediante
Numérico la combinación tipo
documento y
numero de
documento
público actualizarCliente cliente: Cliente boolean Método para
realizar la
actualización de los
registros de cliente,
el número y tipo de
documento no se
pueden actualizar,
se retorna
confirmación de
actualización de
documento
público crearCliente cliente: Cliente boolean Método para
persistir el cliente,
se retorna
confirmación del
registro guardado.
público listaClientes documento: Lista<Cliente> Método para
Numérico, obtener la lista de
nombre: String clientes filtrando
por dos parámetros
número de
documento y/o
nombre, si no se
envían parámetros ,
se retorna la lista de
clientes
* En la capa de métodos se encuentran los métodos constructores de la clase
 Constructor sin parámetros de entrada
 Constructor con todos los atributos como parámetros de la clase constructora.

** La clase incluye los métodos de obtención y asignación de valores, para cada atributo,
mediante las estructuras:

 Asignación:
o Visibilidad: Público;
o Nombre método: setNombreAtributo;
o Tipo parámetro: del mismo tipo que el atributo;
o Tipo retorno: void.
 Obtención:
o Visibilidad: Público;
o Nombre método: getNombreAtributo;
o Tipo parámetro: void;
o Tipo retorno: del mismo tipo que el atributo.
4. Mapa de navegación de IGU
4.1. Flujos de navegación de vendedor
4.2. Bocetos visuales
4.2.1. Login y menús
4.2.2. Funcionalidades de Productos
4.2.3. Funcionalidades de Clientes
4.2.4. Funcionalidades de Ventas y Alquiler
4.2.5. Funcionalidades de reportes
4.2.6. Mensajes de Confirmación y error

Das könnte Ihnen auch gefallen