Diseño 1
Diseño 1
Diseño 1
Vicerrectorado Administrativo
Universidad de Los Andes
Propuesta para el
Documento de Diseño de Sistemas
de la DSIA
Versión 1.0
William J. Montilva C.
Lena Sánchez B.
Luís E. Porras C.
Marisol Díaz B.
Marzo, 2008
1 Introducción
Este informe presenta una propuesta de la estructura que podría llevar el documento de
diseño del sistema (DDS) elaborado por el Grupo de Diseño adscrito a la Unidad de
Desarrollo de la Dirección de Servicios de Información Administrativa (UD-DSIA) de la
Universidad de Los Andes.
El documento DDS será utilizado por el Grupo de Programación de la UD-DSIA como una
guía para la codificación e implementación de los sistemas o aplicaciones que pudieran ser
desarrollados para las unidades administrativas de esta institución universitaria.
Entre los objetivos que persigue esta propuesta para la especificación del diseño de
software tenemos:
1. Producir un documento técnico que describa todos los detalles del diseño de la
arquitectura del sistema o aplicación y de todos los componentes que la conforman.
2. Proporcionar todos los detalles técnicos requeridos por el Grupo de Programación
para programar o producir cada uno de los componentes de software de la
aplicación o sistema.
3. Servir de insumo para la planificación y ejecución de las pruebas de unidad,
integración y aceptación que realizará el Grupo de Pruebas al sistema.
4. Servir como material de guía o entrenamiento al nuevo personal que pueda ser
incorporado a un proyecto, proporcionando la información necesaria de cómo una
solución ha sido diseñada y como va a ser implementada.
5. Servir como un acuerdo entre el Grupo de Diseño, el Grupo de Programación y el
Grupo de Pruebas, de cómo va a ser implementada y probada la funcionalidad
descrita en la especificación de requisitos del sistema.
Esta propuesta ha sido organizada de la siguiente manera. La estructura del DDS, en su
primera versión, es presentada en la sección 2. La sección 3 describe cada uno de los puntos
(secciones o apartados) que contiene el DDS. La sección 4 presenta algunas de las fichas
técnicas creadas por el Grupo de Diseño de la DSIA, utilizadas para describir las notaciones
empleadas para construir los diversos de diagramas de UML presentes en el documento
DDS.
Tabla de Contenido
1. Introducción
1.1. Propósito del sistema
1.2. Objetivos y restricciones de diseño
1.3. Definiciones, acrónimos y abreviaturas
1.4. Referencias
1.5. Estructura del documento
Anexos
Capa de
Capa de
Presentación
Presentació
Presentación
Capa Lógica
Capa Ló
Lógica
de Negocio
de Negocio
Capa de
Capa de
Datos
Datos
La capa de presentación es la encargada de manejar la interfaz del usuario,
controlando la captura y presentación de los datos y recibiendo los eventos
accionados por lo usuarios a través de la interfaz. Esta capa se comunica únicamente
con la capa de lógica de negocios.
La capa de lógica de negocios tiene la responsabilidad de manejar la funcionalidad
del sistema, implementando a través de objetos de negocio (programas) las reglas de
negocio que deben cumplirse. Esta capa se comunica con la capa de presentación para
recibir solicitudes y presentar resultados y con la capa de datos, para solicitar al
gestor de base de datos que almacene o recupere datos.
La capa de datos (llamada en algunos casos capa de persistencia) es la responsable
del almacenamiento y recuperación de los datos. Se comunica únicamente con la capa
de lógica de negocios.
Un ejemplo de la descripción y estructura de la arquitectura para un sistema de video
juegos es mostrada a continuación [2]:
“El sistema empleará el estilo arquitectónico de capas y será organizado en tres capas: la
capa de interfaz, la capa de la aplicación y la capa de almacenamiento.
La capa de interfaz contendrá la interfaz gráfica del usuario que le permitirá a los usuarios
interactuar con el sistema. Esta capa será implementada usando el Java Media Framework
y el Java Swing Package, conteniendo el video player y todos sus menús.
La capa de la aplicación contendrá la lógica y reglas para almacenar datos en la capa de la
base de datos y también para recuperar éstos de acuerdo con las necesidades de las
usuario.
Finalmente, la capa de almacenamiento guardará los datos requeridos por el sistema.
El estilo arquitectónico de tres-capas será usado porque no sólo separa la interfaz del
usuario de los datos almacenados, sino que también, provee una capa de lógica de la
aplicación. La capa de aplicación provee una capa intermedia que permite que los datos
almacenados en la base de datos y los componentes GUI están débilmente acoplados.
Esta separación lógica permite que una capa pueda ser modificada sin alterar el resto de
las capas o introducir pequeños cambios en alguna de ellas. Por ejemplo, la capa de la
aplicación podría ser modificada si hay cualquier cambio en el formato de los archivos de
datos y sus atributos, sin que esto afecte la capa de interfaz. Esta capa intermedia hace
posible que este sistema esconda a sus usuarios, la complejidad inherente del
procesamiento de sus datos y haga posible que éste sistema sea mucho más fácil de
mantener y de reutilizar.”
Para el Subsistema de Reservas de la cadena hotelera KMG, la arquitectura propuesta
para este sistema, es presentada en la siguiente figura [3].
La capa de Servicios de Negocio agrupa los módulos que representan los servicios para el
manejo de información del negocio. Estos servicios son aún más básicos que el de la capa
superior y pueden ser compartidos por otros subsistemas. Cada módulo de esta capa
ofrece una única interfaz con los servicios que permiten que las operaciones de la capa
superior puedan ser realizadas. El siguiente diagrama muestra los módulos de esta capa.
La capa de Infraestructura contiene todos los módulos necesarios para utilizar los servicios
de la plataforma. En esta capa residen principalmente adaptadores de los servicios
brindados por la plataforma, entre ellos el módulo de acceso a datos y la comunicación a
otros sistemas, como el de facturación y mensajería. Los servicios de esta capa son
mostrados a continuación."
- - -
Este caso de uso de uso permite que un Cajero capture la venta de una
Descripción
serie de productos y registre su pago en efectivo
Actores Cliente (Iniciador), Cajero
Tipo Primario
Requisitos
RF 1.1, RF 2.3
Asociados
Precondición El Cajero se identifica y autentica
Curso Normal (Básico)
Paso Acción
Este caso de uso comienza cuando un Cliente llega a la caja del Terminal de punto
1
de venta (TPDV) con productos para comprar.
2 El Cajero inicia una nueva venta.
El cajero registra el identificador de cada producto. Si hay varios productos de un
3
mismo tipo, el Cajero puede introducir su cantidad.
El sistema registra la línea de venta y presenta la descripción del producto, precio y suma
4 parcial.
El Cajero repite los pasos 3 y 4 hasta que termine de introducir los productos y le
5
indica al TPDV que se concluyo la venta.
6 El Sistema calcula y presenta el monto total de la venta con sus impuestos.
7 El Cajero le dice al Cliente el total de la venta.
El Cliente efectúa un pago en efectivo, posiblemente con un monto mayor que el
8
total de la venta.
9 El Cajero registra la cantidad de efectivo recibida y el Sistema gestiona el pago.
10 El Sistema registra la venta completa, genera el recibo y actualiza el inventario.
11 El Cajero entrega el recibo de compra y devuelve dinero al Cliente
12 El Cliente se marcha con los artículos comprados.
Se registra la venta, su importe y su respectivo impuesto. Se actualiza la
Postcondición
contabilidad y el inventario
Cursos Alternos o Excepcionales
Paso Acción
3a Introducción de un artículo inválido:
1. El sistema señala el error y rechaza la entrada.
El cliente le pide al Cajero que elimine un artículo de la compra:
3-7a 1. El Cajero introduce el identificador del artículo para eliminarlo.
2. El Sistema resta el artículo de la compra y muestra la suma parcial.
El cliente le pide al Cajero que cancele la venta:
8a 1. El Cajero cancela la venta.
2. El Sistema elimina los datos de la venta actual.
Diagrama de clases de diseño del caso de uso: <nombre del caso de uso>
Un diagrama de clases en UML es presentado aquí, para mostrar las clases de diseño
de software que colaboran en la realización del caso de uso. Este diagrama muestra la
especificación de las clases software que intervienen en este caso de uso, presentando
sus atributos, métodos, asociaciones, interfaces y operaciones, navegabilidad y
dependencias.
Los tipos de clases de diseño que son incluidas en estos diagramas son las clases de
entidad, de interfaz y de control, denominadas así en el Proceso Unificado (RUP).
Las clases de identidad representan a aquellos elementos del mundo real o conceptual
a los que se les guardará información perdurable en el sistema. Las clases de interfaz
modelan la interacción entre el sistema y sus diferentes usuarios, asociadas con la
entrada de datos y salida de información. Las clases de control o activas, son
utilizadas para controlar el flujo de operaciones que debe realizar el sistema en
respuesta a los eventos generados por un actor.
En algunos casos, se construye básicamente un Modelo de Diseño de Objetos que
corresponde a la capa del dominio o lógica de la aplicación, el cual contiene las
clases software que manejaran la lógica del negocio y cuyos nombres son derivados
de los conceptos del negocio. El siguiente ejemplo ilustra un diagrama de clases de
diseño para un sistema de Punto de Venta.
Interfaz gráfica de usuario del caso de uso: <nombre del caso de uso>
En este apartado se mostrarán los diferentes componentes de la interfaz gráfica del
usuario (pantallas, ventanas, formularios o vistas) involucrados en la realización de
este caso de uso.
Adicionalmente se podría incluir aquí, los formatos de impresión asociados a este
caso de uso o en general al subsistema asociado.
Para el caso del subsistema de Reservas, los componentes de la interfaz que permite
ingresar los datos de una reserva son mostrados en las siguientes figuras.
Diagrama de navegación del caso de uso: <nombre del caso de uso>
Esta sección es opcional y podría ser utilizada sólo cuando la realización del caso de
uso tenga cierta navegación compleja que sea necesario describirla. En este caso, se
utilizaría un diagrama de estados de UML para mostrar dicha navegabilidad.
La siguiente figura presenta un posible diagrama de navegación para el caso de uso
hacer reserva, donde se muestran los diferentes componentes de la interfaz de
usuario presentes en la realización de este caso de uso.
3.6 Diseño de la Base de Datos
Esta sección del DDS, contiene los diseños de la base de datos que determinan como
los datos que van a ser incluidos en la base de datos, están lógica y físicamente
organizados. Para ello, el diseño de la base de datos se establece en dos niveles de
detalle.
El primer nivel muestra el modelo conceptual de la base de datos, representado a
través de uno o más diagramas de clases en UML o diagramas entidad-asociación, el
cual es independiente del entorno tecnológico utilizado. El segundo nivel presenta el
modelo implementable de la base de datos, descrito mediante un diagrama físico de la
base datos que depende directamente del manejador de base de datos utilizado.
3.6.1 Esquema Conceptual de la Base de Datos
Este apartado presenta el esquema conceptual de datos del sistema. Este esquema es
el producto de la integración de los diferentes diagramas (de clases en UML o de
entidad-asociación) de cada proceso de negocio o subsistema que haya sido
establecido. Los datos contenidos en este esquema son derivados directamente de los
requisitos funcionales del sistema.
En el caso de utilizar la herramienta de diseño PowerDesigner, los diagramas
generados como Modelo Orientado a Objeto (Object-Oriented Model) o Modelo
Conceptual de Datos (Conceptual Data Model) son incluidos en esta sección.
Un diagrama de clases en UML es mostrado aquí, para representar el modelo
conceptual de datos del subsistema de Reservas.
0..* 1 Hotel
Recepción Habitación
-nombre : String
-IPAddress : String -nombre : String
-ciudad : String
1 1..*
1 0..1 *
*
Cliente
-idCliente : Integer Reserva
-nombre : String 1
-idReserva : Integer
-usuario : String
-checkin *
-password : String TipoHabitación
-checkout
-email : String 1 * -estado -nombre : String
-tel : String
-fax : String * 1
0..*
Clase enumerada
EstadoReserva
Huésped -Pendiente
-nombre : String -En Curso
-documento : String -Finaliza
-pais : String -Cancelada
-NoTomada
En esta sección se describen algunas de las fichas técnicas de productos usadas en el diseño
de sistemas. Estas fichas describen las notaciones empleadas para construir los diversos de
diagramas de UML presentes en este documento DDS.
Tienen el propósito de servir como una referencia rápida al lector de este documento para
entender la simbología utilizada en cada uno de estos diagramas. A continuación, se anexan
las fichas definidas por cada producto de diseño.
1 4 . Va d
il a r r e c a u d o s
1 6 . Bu s c a r O P f n
i a n c e
i
proceso organizacional a
<<e x t e n d >>
1 7 . I n g r e s a r O P f n
i a n c e
i r a s d e a
l s
usuario 1 usuario 2
Imprimir
Recepcionista
14.Validar recaudos
<<extend>>
16.Buscar OP financiera
<<extend>>
paquete. Se muestran a
partir del segundo nivel.
6. Controlar pagos
Continuación ficha técnica: Organización de Casos de Uso
A nivel de sistema:
<<sistema>>
<<subsistema>>
<<subsistema>>
Subsistema 1
Subsistema 2
<<subsistema>>
Subsistema 3
Continuación ficha técnica: Organización de Casos de Uso
Formulacion Presupuesto
<<Subsistema>>
<<Subsistema>>
GestionarModificacionesPpto RealizarEstadisticas
<<Subsistema>> <<Subsistema>>
GestionarIngresoSistema Administración del Sistema
A nivel de un subsistema:
Object-Oriented Model
Model: Modelo de Casos de uso
Package:
Diagram: SUBSISTEMA GESTIÓN DE PAGOS
Author: Nancy B. de García Date: 14/01/2008
Version: 2
Recepcionista
<<módulo>>
1. Cargar información
<<módulo>>
2. Registrar ingreso a Tesorería
Controlador Financiero
Gestor de Pagos : 1
<<módulo>>
4. Solicitar pagos
Revisor de documentación
<<módulo>>
<<módulo>>
5. Generar pagos
6. Controlar pagos
<<Gestión Cuentas Bancarias>>
1.2.2.2 Cheques <<Gestión Cuentas Bancarias>>
1.5 Manejar Cuentas en Divisa
Supervisor de Tesorería : 2
Gestor de Pagos : 2
Consideraciones especiales:
Cuando haya más de 2 niveles se dibuja en forma de árbol; a nivel de un módulo,
se deben mostrar las relaciones de dependencia y los actores.
Máxima cantidad de niveles: 3
Criterios de buen empaquetamiento: alta cohesión y bajo acoplamiento entre
paquetes.
Paleta de colores: B/N para todos los elementos del diagrama. Gris para casos de
uso que son definidos en un diagrama o paquete y se utilizan en otro
Estandarizado por: Grupo de Ingeniería de Requisitos y Diseño de Software
4.3 Ficha Técnica para los Escenarios de Casos de Uso
Consideraciones especiales:
1) Los escenarios de Casos de Uso para Ingeniería de Requisitos, no deben
involucrar aspectos de interfaz gráfica como por ejemplo: pulsar botones.
Tampoco deben involucrar nombres de clases ni de atributos de clases. Sin
embargo, los mismos deben considerar todos los datos que se registran, con
el detalle que se requiere en virtud que estos escenarios serán el insumo
para el diseñador.
2) Cuando el escenario ofrezca varias opciones, las cuales tienen la misma
posibilidad de ser elegidas y el caso de uso tenga una relación de extend
con otros casos de uso, se redacta así:
Ejemplo: caso de uso con relación extend a través de las opciones <opción a>
<opción b> y <opción c>
Flujo feliz:
1. El usuario selecciona una opción.
Flujo alternativo:
1.a. Si el usuario selecciona <opcion a> se realiza el caso de uso Caso de
uso A.
1.b. Si el usuario selecciona <opcion b> se realiza el caso de uso Caso de
uso B.
1.c. Si el usuario selecciona <opcion c> se realiza el caso de uso Caso de
uso C.
3) Cuando el escenario ofrezca varias opciones, de las cuales una de ellas es
la que más se utiliza y existen otras opciones, bien sea que se van a resolver
dentro del mismo caso de uso o a través de un extend, se redacta en forma
parecida a 2), sólo que la opción más frecuente y su flujo se consideran
dentro del flujo feliz, mientras que las opciones se consideran dentro de los
flujos alternativos.
Paleta de colores: Blanco y Negro
Estandarizado por: Grupo de Ingeniería de Requisitos y Diseño de Software
4.4 Ficha Técnica para los Diagramas de Secuencia
Referencias Bibliográficas