Sei sulla pagina 1di 72

Universidad Nacional Jorge Basadre Grohmann

Carrera Técnica de Analista Programador de Sistemas


Curso: Análisis y Diseño Orientado a Objetos I

Sistema de
Administración del
Cine Club Orson
Welles
(SACCOW)
Análisis y Diseño
Tacna, marzo del 2009

Mgr. Artidoro Velapatiño Castilla Pág. 1 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

“Tengo un gato que se llama Trasch... Si estuviera intentando venderlo (por


lo menos, si intentara venderlo a alguien que sabe de computación), no haría
énfasis en que es cariñoso con los seres humanos y en que es autosuficiente,
por cuanto vive fundamentalmente de los ratones que caza... Más bien, yo
diría que es Orientado a Objetos”.
Roger King

A Berenice donde quiera que esté.

Mgr. Artidoro Velapatiño Castilla Pág. 2 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.3 Índice
Página
1.1 Carátula 1
1.2 Página introductora. 2
1.3 Índice general. 3
1.4 Identificación del Proyecto: 5
1.4.1 Título del Proyecto. 5
1.4.2 Descripción 5
1.4.3 Autor (es). 5
1.4.4 Versión. 5
1.4.5 Fecha. 5
1.5 Análisis. 6
1.5.1 Documentación del análisis 6
1.5.2 Especificación preliminar de requerimientos 7
1.5.3 Subsistemas e interfaces 9
1.5.4 Diagramas de casos de uso 10
1.5.4.1 Identificación de actores y definición de casos de uso 10
1.5.4.2 Construcción de diagramas 14
1.5.4.3 Descripción de casos de uso 16
1.5.4.4 Descripción de actores 19
1.5.4.5 Escenarios y subescenarios 20
1.5.4.6 Diagramas de actividades 21
1.5.5 Prototipos 24
1.5.5.1 Descripción del menú con las opciones del prototipo 24
1.5.5.2 Descripción de los módulos del menú. 24
1.6 Diseño 24
1.6.1 Diseño preliminar y diseño detallado 24
1.6.2 Diagramas de interacción 26
1.6.2.1 Diagramas de secuencia. 26
1.6.2.2 Diagramas de colaboración. 28
1.6.3 Diagramas de estructura. 31
1.6.3.1 Diagramas de clases: 31
1.6.3.1.1 Identificación de clases y objetos: 31
1.6.3.1.1.1 Clasificación de Ross 31
1.6.3.1.1.2 Análisis sintáctico: 31
1.6.3.1.1.2.1 Descripción de cómo funciona el sistema. 32
1.6.3.1.1.2.2 Subrayado de sustantivos, sintagmas-adjetivos y verbos para identificar las
clases candidatas, sus atributos y los comportamientos 32
1.6.3.1.1.2.3 Uso del análisis de casos de uso haciendo uso de escenarios y
subescenarios. 33
1.6.3.1.1.2.4 Fichas CRC (Clase - Responsabilidades - Colaboradores) con el formato de
anverso y reverso en base a escenarios 34
1.6.3.1.1.2.5 Depurar clases, atributos y operaciones 36
1.6.3.1.2 Identificación de las relaciones de asociación, dependencia, herencia, agregación. 38
1.6.3.1.3 Construcción del diagrama de clases
1.6.3.1.4 Diccionario de datos
1.6.3.2 Diagrama de objetos.
1.6.4 Diagrama de comportamiento:
1.6.4.1 Diagramas de actividades.
1.6.4.2 Diagrama de estados.
1.6.5 Diagramas de implantación:
1.6.5.1 Diagramas de componentes.
1.6.5.2 Diagramas de despliegue.
1.7 Implementación del Sistema

Mgr. Artidoro Velapatiño Castilla Pág. 3 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.7.1 Generación de la base de datos en SQL Server 2000 a partir de diagrama de clases:
1.7.1.1 Definición de los identificadores de clase.
1.7.1.2 Declaración de las clases persistentes.
1.7.1.3 Creación de los componentes de bases de datos.
1.7.1.3.1 Creación de los componentes
1.7.1.3.2 Creación del diagrama de componentes
1.7.1.4 Creación del esquema de la base de datos
1.7.1.5 Construcción del diagrama de modelo de datos.
1.7.1.6 Generación de la base de datos.
1.7.1.6.1 Creación de la Base de Datos en SQL Server 2000.
1.7.1.6.2 Generación de la Base de Datos en SQL Server 2000.
1.7.1.7 Aplicación de ingeniería reversa para generar modelos lógico y físico en ERWIN.
1.7.2 Construcción del prototipo inicial
1.7.2.1 Menú principal básico
1.7.2.2 Barra de herramientas
1.7.2.3 Barra de estado
1.8 Conclusiones y recomendaciones:
1.7.1 Las conclusiones se obtiene como consecuencia del desarrollo del análisis y diseño del software planteado.
1.7.2 Recomendaciones para ampliar, mejorar y optimizar el sistema.
1.9 Bibliografía y software:
1.9.1 Libros, revistas, apuntes, monografías, sitios Web, etc., se han consultado para realizar el trabajo.
1.8.2 Software utilizado en el trabajo: RATIONAL ROSE 2003, SQL SERVER 2000, ERWIN 4.1, C++ BUILDER
600, MS WORD.

Mgr. Artidoro Velapatiño Castilla Pág. 4 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.4 Identificación del Proyecto


1.4.1 Titulo: “Sistema de Administración
del Cine Club Orson Welles”

1.4.2 Descripción: Es un sistema de software


que administra la taquilla, los clientes y
las películas que se exhiben en el cine
club.

1.4.3 Autores:
Grupo Tákana:
2710890 VASQUEZ MOLLO, Virginia.
2710895 MOLINA CACERES, Juan José.
2710899 RIOS LOPEZ, Cecilia Ana.

1.4.4 Versión: 1.0

1.4.5 Fecha: 01/10/2007

Mgr. Artidoro Velapatiño Castilla Pág. 5 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.5 Análisis
1.5.1 Documentación del análisis
Se debe construir un sistema de software capaz de administrar una base de datos que contenga
información sobre las películas exhibidas en el cine club, la venta de entradas, los datos de los
usuarios (socios y eventuales). Sobre las películas se debe consignar todos los datos referentes
a ella para elaborar una ficha técnica y un resumen del argumento y referencias críticas para
las discusiones posteriores (Cine-Forum) a cada función. Las películas se adquirirán en
formatos de rollo, video o DVD y se proyectan desde proyector de cine, un reproductor VHF
o de una PC. Sobre los usuarios que son socios debe consignarse sus datos personales para la
elaboración de los carnés que les da derecho a precio especial en las entradas y abonos por
temporadas y a pagos a crédito. Se reservan entradas. Las reservas pueden ser de dos tipos:
reservas individuales y abonos para ciclos de películas. Cada entrada es parte de una reserva
individual o de un abono, pero no de ambas. Cada función tiene muchas entradas disponibles,
cada una con un número de asiento único. Una función se puede identificar por una película,
una fecha y una hora. En consecuencia los elementos implicados en el sistema son:
1 Las películas.
2 Los usuarios.
3 Las reservas
4 Las entradas
5 Las funciones
Sobre las películas debe tener los datos sobre el título, título original, el director, el productor,
los protagonistas, el género, el año de producción, la empresa productora, el color (blanco y
negro y colores), la duración, el argumento, el soporte (video/ DVD) y apreciación crítica. Se
debe poder realizar operaciones de adquirir, modificar y eliminar. Sobre los usuarios que
sean miembros debe tenerse datos como apellidos, nombre, sexo, fecha de nacimiento,
ocupación, dirección, teléfono, e-mail, y un código asignado por el sistema. Se debe poder
realizar operaciones de agregar, modificar y eliminar. Se debe poder realizar operaciones de
agregar, modificar y eliminar. Sobre las reservas solo se debe consignar la fecha. Si la reserva
es para entradas de abono debe consignarse un número de serie. Sobre las entradas es
necesario saber la disponibilidad, el número. Se debe poder realizar operaciones de vender,
intercambiar y anular. Sobre las funciones se debe consignar los datos sobre fecha, hora y
lugar. El sistema debe controlar y/o aceptar:
a. Administrar las películas adquiridas por el Cine Club.
a.1 Registrar adquisición de películas.
a.2 Registrar información sobre las películas.
a.3 Imprimir ficha técnica y apreciación crítica.
b. Administrar a los usuarios socios.
b.1 Registrar ingresos, modificaciones y eliminación
b.2 Imprimir carné de socio.
c. Administrar las funciones de proyección de las películas.
c.1 Programar funciones de proyección.
c.2 Imprimir calendario de funciones y ciclos de cine.
c.3 Elaborar estadísticas sobre las funciones.
d. Administrar la taquilla de cada función.
d.1 Control de reservas para entradas y abonos.
d.2 Controlar venta de entradas y abonos.
d.3 Imprimir entradas y abonos.

Mgr. Artidoro Velapatiño Castilla Pág. 6 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

d.4 Confeccionar estadísticas sobre entradas.

El Usuario puede pedir información sobre películas, entradas y funciones. Si es socio


tiene derecho a precios especiales de entradas y abonos. Puede dar sugerencias a través de
correo electrónico. El Administrador es el encargado de adquirir las películas, por alquiler
de rollos, por compra o donación de proveedores de videos o DVD. Es el encargado de
administrar las películas y programar las funciones y dirigir los cine-forum después de
cada función. El Cajero es el encargado de vender las entradas y abonos y controlar la
taquilla de cada función. El Director es el encargado de administra la institución. Es el
único que autoriza los créditos para los socios del Cine Club.
Nota: El archivo del modelo en Rational Rose 2003, se llama SACCOW.mdl. En él se guarda
todos los diagramas y elementos del sistema. En adelante haremos referencia a él con modelo
SACCOW. Estará ubicada en una carpeta D:\PROYECTO_SACCOW

1.5.2 Especificación preliminar de requerimientos


R.0 Requerimientos generales
R.0.1 Las fechas se registrarán en el formato dd/mm/aaaa.
R.0.2 Las unidades monetarias se registrarán con dos decimales y en soles.
R.0.3 Se usará la coma decimal en la notación numérica.

R.1 Gestión de usuarios


R.1.0 Requisitos generales de los usuarios
R.1.0.1 Los usuarios pueden ser eventuales o socios del Cine Club.
R.1.0.2 A los usuarios socios se les asignará un código de identificación.
R.1.0.3 A los usuarios socios se les define por su apellido, nombre, documento de
identificación (DNI, Carné de extranjería, Carné de estudiante, etc.), sexo, fecha
de nacimiento, ocupación, dirección, teléfono, e-mail, fecha de inscripción, foto.
R.1.1 Añadir usuarios socios
R.1.1.1 Sólo se puede añadir usuarios socios, previa autorización del Director.
R.1.2 Eliminación de usuarios socios
R.1.2.1 Sólo se puede eliminar a un socio con autorización del Director.
R.1.2.2 Para poder eliminar a un socio es necesario que no tenga pendiente con el
Cine Club.
R.1.2.3 Sólo se eliminará a un socio que haya dejado de participar por un periodo
de un año en el Cine Club sin justificación.
R.1.3 Modificación de usuarios socios
R.1.3.1 Sólo se puede modificar los datos de un socio con su autorización y la del
Director.
R.1.4 Búsqueda de de usuarios socios
R.1.4.1 Puede buscase individualmente los datos de socio por código, apellido y
nombre.
R.1.4.2 Puede buscarse por grupos por orden alfabético, cronológico (fecha de
nacimiento, fecha de inscripción).
R.1.4.3 Los resultados de las búsquedas deben imprimirse.
R.1.5 Impresión de carnés de socios.
R.1.5.1 Se debe imprimir los carnés de los socios con autorización del Director.

Mgr. Artidoro Velapatiño Castilla Pág. 7 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

R.2 Gestión de películas


R.2.0 Requisitos generales de las películas:
R.2.0.1 Las películas pueden estar grabadas en video o DVD.
R.2.0.2 A las películas se les asignará un código de identificación.
R.2.0.3 A las películas se les define por su título, título original, director,
productor, protagonistas, género, año de producción, empresa productora, país,
color (blanco y negro y colores), duración, argumento, soporte (video/ DVD) y
apreciación crítica.
R.2.1 Añadir películas
R.2.1.1 Sólo se puede añadir películas adquiridas o compradas por el Cine Club.
R.2.2 Eliminación de películas
R.2.2.1 Sólo se pueden eliminar películas deterioradas o perdidas previo
conocimiento del Administrador.
R.2.3 Modificación de películas
R.2.3.1 Sólo se puede modificar los datos de un con la autorización del
Administrador.
R.2.4 Búsqueda de películas
R.2.4.1 Puede buscase individualmente los datos de por código, título.
R.2.4.2 Puede buscarse por grupos por director, protagonistas, empresa
productora, año de producción, país, etc.
R.2.4.3 Los resultados de las búsquedas deben imprimirse.
R.2.5 Impresión de fichas técnicas de películas.
R.2.5.1 Se debe imprimir las fichas técnicas y apreciación crítica de las películas.

R.3 Gestión de funciones


R.3.0 Requisitos generales de las funciones
R.3.0.1 Las funciones se programan con fecha y hora de acuerdo a la
programación y se identifican con un número de identificación correlativo.
R.3.1 Añadir funciones
R.3.1.1 Sólo se puede añadir funciones que se tengan seguridad de llevarse a
cabo.
R.3.2 Eliminación de funciones
R.3.2.1 Sólo se puede eliminar una función que por motivos de fuerza mayor no
se ha efectuado.
R.3.3 Modificación de funciones
R.3.3.1 Sólo se puede modificar los datos de una función que por motivos de
fuerza mayor se ha postergado en hora, en fecha, o en fecha y hora.
R.3.4 Búsqueda de funciones
R.3.4.1 Puede buscase una función individualmente por el número de
identificación y la fecha.
R.3.4.2 Puede buscarse por grupos por un rango de fechas, o por un rango de
número de identificación.
R.3.4.3 Los resultados de las búsquedas deben imprimirse.

R.4 Gestión de la taquilla


R.4.0 Requisitos generales de la taquilla
R.4.0.1 La taquilla controla la venta de entradas individuales y abonos y el crédito
Mgr. Artidoro Velapatiño Castilla Pág. 8 de 72
Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

concedido a los socios por venta de abonos.


R.4.0.2 Sólo los socios pueden hacer reservas de entradas individuales y de
abonos.
R.4.1 Reservas y entradas
R.4.1.1 Sólo los socios tienen derecho a reservar entradas.
R.4.1.2 Sólo se puede reservar un máximo de 4 entradas individuales.
R.4.1.3 Sólo se puede reservar un máximo de 2 abonos.
R.4.1.4 Las reservas sólo se cancelan con 24 horas de anticipación.
R.4.2 Registrar venta de entrada
R.4.2.1 Sólo se puede registrar la venta de entradas individuales vendidas y
canceladas en el momento y asignando el número de asiento respectivo.
R.4.2.2 Se debe imprimir las entradas vendidas.
R.4.3 Registrar venta de abono
R.4.3.1 Se pueden vender abonos a los usuarios en general.
R.4.3.2 Se pueden vender abonos a crédito en tres cuotas a socios, previa
autorización del Director.
R.4.3.3 Se deben imprimir los abonos.
R.4.4Modificación de venta de entrada y abonos
R.4.4.1 Sólo se puede modificar entradas o abonos en el momento de realizar la
venta para cambiar de tipo (general o socio) o el número de asiento.
R.4.5 Anulación de venta de entradas y abonos
R.5.4.1 Solo se pueden anular ventas de entradas y abonos en el momento de
realizar la venta.

1.5.3 Subsistemas e interfaces del SACCOW


) SUBSISTEMAS:
; Subsistema de Taquilla:
Es el sistema que administra las reservas, venta de entradas y abonos para las
funciones del Cine Club.
; Subsistema de Administración:
Es el sistema que administra a los usuarios, películas y funciones del Cine Club.
; Subsistema de Ayuda:
Es el sistema de ayuda interactiva para el Sistema de Administración del Cine Club
Orson Welles.

) INTERFACES
; Interfaz de Taquilla:
La interfaz de Taquilla permite acceder a todas las opciones del Sistema de Taquilla.
; Interfaz de Usuario:
La interfaz de Usuario permite acceder a todas las opciones de la Administración de
Socios.
; Interfaz de Película:
La interfaz de Película permite acceder a todas las opciones de la Administración de
Películas.
; Interfaz de Función:
La interfaz de Función permite acceder a todas las opciones de la Administración de

Mgr. Artidoro Velapatiño Castilla Pág. 9 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Funciones.
; Interfaz de Ayuda:
La interfaz de Ayuda permite acceder a todas las opciones de la ayuda interactiva del
Sistema de Administración del Cine Club Orson Welles.
Ver Figura 2.

Sistema de Administración del Cine Club Orson Welles

<<subsystem>>
Ayuda
Interfaz_Ayuda

<<subsystem>> <<subsystem>>
Taquilla Administración

Interfaz_Funcion
Interfaz_Película
Interfaz_Taquilla Interfaz_Usuario

Figura 1: Diagrama de Paquetes para Subsistemas e Interfaces del Sistema SACCOW. Este
diagrama se llama DiagramaPaquetes en el modelo SACCOW.

1.5.4 Diagramas de Casos de Uso


1.5.4.1 Identificación de Actores y definición de Casos de Uso
) Identificamos actores en base a preguntas como las siguientes:
¿Cómo encontrar un actor?
♦ Identificar los usuarios del sistema
ƒ ¿Por qué se diseña el sistema?
ƒ ¿Cuáles son los actores que el sistema va a beneficiar?
ƒ ¿Qué actores van a interactuar directamente con el sistema? (actores
primarios)
ƒ ¿Qué actores van a supervisar, mantener, recibir información del sistema?
(actores secundarios)
♦ Identifique los roles que juegan esos usuarios desde el punto de vista del sistema
♦ Identifique otros sistemas con los cuales exista comunicación

En primer lugar identificamos a los actores que interactúan con el sistema SACCOW: Usuario, Cajero,
Director y Administrador. Ver Figura 2

Mgr. Artidoro Velapatiño Castilla Pág. 10 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Director

Sistema de Administración del


Cine Club Orson Welles

Usuario Cajero

Administrador

Figura 2: SACCOW con 4 actores que interactúan con él. Este diagrama se llama DiagramaContexto
en el modelo SACCOW.

) Identificamos casos de uso en base a preguntas como las siguientes:


¿Cómo encontrar un caso de uso?
♦ Identifique las operaciones importantes del sistema a construir
ƒ ¿Cuáles son las principales tareas de un actor?
ƒ ¿Qué información tiene el actor que consultar, actualizar, modificar? ¿Cómo?
ƒ ¿Qué cambios del exterior debe informar el actor al sistema?
ƒ ¿Qué información debe informársele al actor, con respecto a los cambios del
sistema?

) Para el subsistema Taquilla definimos los siguientes:


; Casos de Uso:
1. Reservar entradas: Consiste en las reservar que pueden hacer los usuarios de las
entradas y abonos. Los abonos sólo pueden ser reservados por socios del Cine Club.
Las reservan se confirman o cancelan con 24 horas de anticipación.
2. Comprar entradas: Consiste en efectuar la compra de entradas individuales para un
función del Cine Club que puede ser efectuada por cualquier usuario.
3. Comprar abonos: Consiste en efectuar la compra de varias entradas para un ciclo de
funciones de del Cine Club y que puede ser efectuada por cualquier usuario.
4. Cobrar: Consiste en la operación de cobranza que realiza el cajero. Las entradas
individuales se cobran al contado. Solo existe el crédito para el pago de abonos y es
sólo para socios.
5. Imprimir: Consiste en la impresión de entradas individuales y de abonos
6. Autorizar crédito: El Director de Cine Club es la única persona que puede autorizar
crédito para la venta de abonos.
; Actores:
1. Usuario: Persona que asiste a las funciones del Cine Club. Los usuarios pueden ser
Socios (con derechos especiales) y Eventuales (que asisten a una función muy de vez
en cuando) y que no tiene derechos.
2. Cajero: Persona que se ocupa de vender entradas y abonos a los usuarios del
SACCOW.
3. Director: Persona encargada de organizar los cine-club, promocionar las funciones,
Mgr. Artidoro Velapatiño Castilla Pág. 11 de 72
Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

presidir las reuniones del cine club.


4. Administrador: Persona encargada de la administración del cine club.
Como consecuencia tenemos el diagrama preliminar de la Figura 3.

Reservar entradas

Cobrar

Comprar entradas Cajero


Usuario
(from Use Case Vi ew)
(from Use Case Vi ew)

Comprar abonos Imprimir

Director Autorizar crédito

(from Use Case Vi ew)

Figura 3: Casos de uso preliminares para el subsistema Taquilla de SACCOW. Este diagrama se
llama DiagramaPreliminarCU_Taquilla en el modelo SACCOW.

) Identificamos relaciones entre actores y casos de uso en base a preguntas como las siguientes:
¿Cómo encontrar relaciones entre actores y casos de uso?
♦ Identificar los casos de uso en los cuales se ve implicado un actor
♦ Buscar relaciones extends entre casos de uso
ƒ ¿Qué casos de uso son similares, diferenciándose en la forma en la cual hacen
algunas operaciones?
ƒ ¿Qué caso de uso redefine la forma en la cual se realiza una transacción dentro de
otro caso de uso?
♦ Buscar relaciones include entre casos de uso
ƒ ¿Que casos de uso son usados como transacciones de otros?

; Relaciones entre Casos de Uso:


Hallamos las siguientes relaciones entre los casos de uso del subsistema Taquilla. Ver
Figura 4.

Mgr. Artidoro Velapatiño Castilla Pág. 12 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Reservar entradas

<<realize>> <<realize>>

Imprimir

<<include>>
<<extend>> <<extend>>

Comprar entradas Comprar abonos

<<include>> <<include>>
Imprimir entradas Imprimir abonos

<<communicate>>

Cobrar Autorizar crédito

Figura 4: Relaciones entre casos de uso para el subsistema Taquilla de SACCOW. Este diagrama se
llama DiagramaRelacionesCU_Taquilla en el modelo SACCOW.
) Para el subsistema Administración definimos los siguientes:
; Casos de Uso:
1. Administrar socios: Consiste en las reservar que pueden hacer los usuarios de las
entradas y abonos. Los abonos sólo pueden ser reservados por socios del Cine Club.
Las reservan se confirman o cancelan con 24 horas de anticipación.
2. Administrar películas: Consiste en efectuar la compra de entradas individuales para
un función del Cine Club que puede ser efectuada por cualquier usuario.
3. Administrar funciones: Consiste en efectuar la compra de varias entradas para un
ciclo de funciones de del Cine Club y que puede ser efectuada por cualquier usuario.
; Actores:
1. Administrador: Persona encargada de la administración del cine club.
Como consecuencia tenemos el diagrama preliminar de la Figura 5.

Administrar socios

Administrador
Administrar películas
(from Use Case View)

Administrar funciones

Figura 5: Casos de uso preliminares para el subsistema Administración de SACCOW. Este diagrama
se llama DiagramaPreliminarCU_Administración en el modelo SACCOW.
; Relaciones entre Casos de Uso:
Hallamos las siguientes relaciones entre los casos de uso del subsistema
Administración. Ver Figura 6

Mgr. Artidoro Velapatiño Castilla Pág. 13 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

<<include>> Administrar socios <<include>>


<<include>>
<<include>> <<include>>

Ingresar socios Modificar socios Eliminar socios Imprimir socios Buscar socios

<<extend>> <<extend>>

Búsqueda individual Búsqueda grupal

<<include>>
<<include>>

Imprimir
(f rom Taquilla)

Administrar películas
<<include>> <<include>>

<<include>> <<include>> <<include>>

Ingresar películas Modificar películas Eliminar películas Imprimir ficha técnica Buscar películas

<<extend>>
<<extend>>

<<extend>>

Búsqueda individual Búsqueda grupal


<<include>>

<<include>>

Imprimir
(f rom Taquilla)

Mgr. Artidoro Velapatiño Castilla Pág. 14 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Administrar funciones
<<include>> <<include>> <<include>>

<<include>> <<include>>

Programar calendario Modificar funciones Eliminar funciones Buscar funciones


Ingresar funciones

<<extend>> <<extend>>

Búsqueda grupal
Búsqueda individual
<<include>>

<<include>>

Imprimir
(f rom Taquilla)

Figura 6: Relaciones entre casos de uso para el subsistema Administración de SACCOW. Los tres
diagramas que aparecen en la figura se llaman DiagramaRelacionesCU_Administrar_Socios,
DiagramaRelacionesCU_Administrar_Funciones y
DiagramaRelacionesCU_Administrar_Funciones respectivamente en el modelo SACCOW.

¡Ejercicio!:
; Para el subsistema Ayuda definir los Casos de Uso y Actores. Hallar las
relaciones entre casos de uso y construir el diagrama respectivo.

1.5.4.2 Construcción de Diagrama de Casos de Uso


) Para el subsistema Taquilla definimos lo siguiente:
; Diagrama de Casos de Uso: Ver Figura 7

Mgr. Artidoro Velapatiño Castilla Pág. 15 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Eventual Socio Reservar entradas


<<realize>>
<<realize>>

Comprar entradas Comprar abonos

Usuario
<<include>>
<<include>>
(from Use Case View)

<<include>>

Imprimir Cobrar

<<extend>> <<extend>> <<realize>>

Imprimir entradas Imprimir abonos Director


Autorizar crédito
(from Use Case View)

Cajero
(from Use Case View)

Figura 7: Diagrama de Casos de Uso para el subsistema Taquilla de SACCOW. Este diagrama se
llama DiagramaCU_Taquilla en el modelo SACCOW.

) Para el subsistema Administración definimos lo siguiente:


; Diagrama de Casos de Uso: Ver Figura 8

Mgr. Artidoro Velapatiño Castilla Pág. 16 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Administrar socios

<<include>> <<include>> <<include>> <<include>> <<extend>>


<<include>>

Búsqueda individual

Ingresar socios Modificar socios Eliminar socios <<extend>>


Imprimir socios Buscar socios

Administrador
Búsqueda grupal <<include>>
Administrar películas
(from Use Case View)
<<include>> <<include>> <<include>> <<include>>
<<include>> <<include>>
<<include>>

Ingresar películas Modificar películas Eliminar películas Imprimir ficha técnica Buscar películas <<extend>>

<<include>>

<<extend>> Búsqueda individual


<<include>> Imprimir
(from Taqui...

<<include>>
Búsqueda grupal

<<include>> Administrar funciones


<<extend>>
<<include>>
<<include>> <<include>> <<include>> Búsqueda individual
<<include>>

<<extend>>
Eliminar funciones Buscar funciones
Programar calendario Ingresar funciones Modificar funciones

Búsqueda grupal

<<include>>

Figura 8: Diagrama de Casos de Uso para el subsistema Administración de SACCOW. Este


diagrama se llama DiagramaCU_Administración en el modelo SACCOW.

¡Ejercicio!:
; Para el subsistema Ayuda construir el Diagrama de Casos de Uso final
DiagramaCU_Ayuda que contenga todos los CU, Actores y relaciones
existentes

Mgr. Artidoro Velapatiño Castilla Pág. 17 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.5.4.3 Descripción de Casos de Uso


) Para el subsistema Taquilla vamos a describir los CU siguientes: Reservar entradas,
Comprar entradas, Comprar abonos.

; Descripción del CU Reservar entradas


CU_01 Reservar entradas
Versión 1.0; 25/07/2005
Autor (es) VASQUEZ MOLLO, Virginia; MOLINA CACERES, Juan José; RIOS LOPEZ, Cecilia Ana.
Descripción Permite al socio del Cine Club Orson Welles reservar entradas para las funciones de cine.
Precondición Ser socio del Cine Club Orson Welles.
Secuencia normal Paso Acción
1 El socio se identifica personalmente o por teléfono proporcionando su código de
socio. El cajero verifica los datos y da paso a la solicitud.
2 El socio solicita reserva de una entrada o varias entradas para una función o funciones
del Cine Club Orson Welles.
3 El cajero verifica si hay entradas disponibles para las funciones solicitadas.
3.a Si hay entradas disponibles el cajero informa al socio y le indica fecha, hora y
el importe de las entradas.
3.b Si no hay entradas disponibles el cajero informa al socio.
4 El cajero entrega al socio una ficha con las entradas reservadas con fecha y hora de
las funciones y con fecha y hora para cancelar el importe de las entradas.
4.a Si el socio confirma y paga sus reservas en fecha y hora señaladas, el cajero le
entrega o envía las entradas reservadas.
4.b Si el socio no confirma y no paga sus reservas en fecha y, el cajero pone en
venta las entradas reservadas.
5 El socio confirma la recepción de las entradas.
6 El socio puede cancelar las reservas antes de 24 horas de la función.
Postcondición Socio con entradas reservadas.
Excepciones Paso
4’ La función de cine se cancela:
♦ El cajero informa al socio y puede optarse por 2 alternativas:
• Se le devuelve el dinero si ya canceló.
• Se posterga la reserva para otra fecha.
Rendimiento Paso Cota de tiempo
1 –4 El promedio de realizar una reserva dura de 1 a 5 minutos
Frecuencia Las reservas de entradas se presentan con frecuencia cuando hay festivales o programaciones
de películas interesantes.
Importancia Es importante tener acceso a reservas para festivales o programaciones importantes.
Urgencia Es bueno ofrecer reservas de entradas en el Cine Club Orson Welles.
Comentarios Las reservas son exclusivamente par socios y toda cancelación de reserva se hace 24 horas
antes de la función.
NOTA: Esta tabla es un archivo de MS WORD se llama CU01.doc y está asociado al CU
Reservar entradas del diagrama DiagramaCU_Taquilla con el menú contextual: Open
Specification/ Files.

; Descripción del CU Comprar entradas


CU_02 Comprar entradas
Versión 1.0; 25/07/2005
Autor (es) VASQUEZ MOLLO, Virginia; MOLINA CACERES, Juan José; RIOS LOPEZ, Cecilia Ana.
Descripción Permite al usuario del Cine Club Orson Welles comprar entradas para las funciones de cine.
Precondición Usuario que desea de ver una película en el Cine Club Orson Welles.
Secuencia normal Paso Acción
1 La persona que desee ver una película en el Cine Club Orson Welles se acerca a
ventanilla.
1.a Si es eventual, compra su entrada y paga el precio normal.
1.b Si es socio tiene descuento especial, previa identificación con carné de socio.

Mgr. Artidoro Velapatiño Castilla Pág. 18 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.c Si es socio y ha hecho reserva, canjea su boleta de reserva con las


correspondientes entradas.
2 Usuario ve la película que se está proyectando.
Postcondición Usuario con entradas compradas.
Excepciones Paso
2’ La función de cine se cancela:
♦ El cajero informa al usuario y puede optarse por 2 alternativas:
• Se le devuelve el dinero.
• Se posterga la entrada para otra fecha.
Rendimiento Paso Cota de tiempo
1 –2 El promedio de realizar una compra dura de 1 a 2 minutos
Frecuencia Las compras de entradas se presentan con frecuencia cuando hay películas interesantes.
Importancia Es importante tener acceso a varias funciones de películas interesantes.
Urgencia Es bueno ofrecer varias funciones para el Cine Club Orson Welles.
Comentarios La venta de entradas para el Cine Club Orson Welles es libre, salvo que las entradas estén
agotadas.
NOTA: Esta tabla es un archivo de MS WORD se llama CU02.doc y está asociado al CU
Comprar entradas del diagrama DiagramaCU_Taquilla con el menú contextual: Open
Specification/ Files.

; Descripción del CU Comprar abonos


CU_03 Comprar abonos
Versión 1.0; 25/07/2005
Autor (es) VASQUEZ MOLLO, Virginia; MOLINA CACERES, Juan José; RIOS LOPEZ, Cecilia Ana.
Descripción Permite al usuario del Cine Club Orson Welles comprar abono para las funciones de cine.
Precondición Usuario que desea de varias películas en el Cine Club Orson Welles.
Secuencia normal Paso Acción
1 El usuario que desee ver varias películas en el Cine Club Orson Welles se acerca a
ventanilla.
1.a Puede comprar abonos para 4, 8, 12 ó 20 peliculas normales.
1.b Puede comprar abonos para programaciones especiales de ciclos de cine por
país, por director, por género, etc.
1.c Puede comprar abonos para festivales de cine
2 El usuario ve las películas cuyas entradas incluye el abono.
Postcondición Usuario con abonos comprados.
Excepciones Paso
2’ Una función del abono, algunas funciones, o todo el ciclo cine se cancela:
♦ El cajero informa al socio y puede optarse por 2 alternativas:
• Se le devuelve el dinero abonado.
• Se posterga la entrada del abono para otra fecha.
Rendimiento Paso Cota de tiempo
1 –2 El promedio de realizar una compra del abono dura de 1 a 2 minutos
Frecuencia Las compras de abonos se presentan con frecuencia cuando hay ciclos de películas
interesantes.
Importancia Es importante programar ciclos de películas interesantes.
Urgencia Es bueno ofrecer varios ciclos de películas en el Cine Club Orson Welles.
Comentarios Todo abono ofrece un 20% de descuento en el costo total.
NOTA: Esta tabla es un archivo de MS WORD se llama CU03.doc y está asociado al CU
Comprar abonos del diagrama DiagramaCU_Taquilla con el menú contextual: Open
Specification/ Files.

¡Ejercicio!:
; Completar la descripción de todos los CU para el subsistema Taquilla.
; Para el subsistema Administración realizar la descripción de todos los CU.
; Para el subsistema Ayuda realizar la descripción de todos los CU.
Mgr. Artidoro Velapatiño Castilla Pág. 19 de 72
Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Y anexar con el procedimiento conocido a cada CU del respectivo Diagrama de


Casos de Uso de sistema SACCOW.

1.5.4.4 Descripción de Actores


) Para el subsistema Taquilla vamos a describir los CU siguientes: Usuario, Cajero,
Administrador.

; Descripción del Actor Usuario


Nombre Usuario
Descripción Persona natural que desea ver películas en el Cine Club Orson Welles.
Rol Ve películas en el CCOW comprando entradas y/o abonos.
Casos de uso Reservar entradas, Comprar entradas, Comprar abonos, Imprimir.
Notas ♦ El usuario puede ser Eventual o Socio.
• El usuario eventual hace uso del CCOW sólo en pocas ocasiones. Paga la
entrada completa
• El usuario socio es miembro del Cine Club y hace uso constante del
CCOW. Esta carnetizado y eso le da derecho a participar en el Cine Club,
acceso a información constante sobre cine, y tiene descuento especial tanto
en las entradas comunes como en los abonos. Sólo los socios tienen derecho
a las reservas y los abonos
NOTA: Esta tabla es un archivo de MS WORD se llama Usuario.doc y está asociado al
Actor Usuario del diagrama DiagramaCU_Taquilla con el menú contextual: Open
Specification/ Files.

; Descripción del Actor Cajero


Nombre Cajero
Descripción Empleado del Cine Club Orson Welles encargado de la taquilla.
Rol Vender entradas, abonos y atender reservas.
Casos de uso Cobrar, Imprimir, Comprar abonos, Imprimir, Reservar entradas.
Notas ♦ El cajero se encarga de las tareas siguientes.
• Vender entradas y abonos a usuarios eventuales o socios.
• Atender las reservas para socios.
• Excepcionalmente pude dar crédito, previa autorización del Director del
Cine Club.
NOTA: Esta tabla es un archivo de MS WORD se llama Cajero.doc y está asociado al Actor
Cajero del diagrama DiagramaCU_Taquilla con el menú contextual: Open Specification/
Files.

; Descripción del Actor Administrador


Nombre Administrador
Descripción Empleado del Cine Club Orson Welles encargado de la administración.
Rol Administrar socios, películas y funciones.
Casos de uso Administrar socios, Administrar películas, Administrar funciones.
Notas ♦ El administrador se encarga de las tareas siguientes.
• Administrar socios a través de las operaciones Ingresar, Modificar,
Eliminar, Buscar, Imprimir con información almacenada en una tabla Socio.
• Administrar películas a través de las operaciones Ingresar, Modificar,
Eliminar, Buscar, Imprimir ficha técnica una tabla Película.
• Administrar socios a través de las operaciones Programar calendario,
Ingresar, Modificar, Eliminar, Buscar con información almacenada en una
tabla Función.

Mgr. Artidoro Velapatiño Castilla Pág. 20 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

NOTA: Esta tabla es un archivo de MS WORD se llama Administrador.doc y está asociado


al Actor Administrador del diagrama DiagramaCU_Taquilla con el menú contextual: Open
Specification/ Files.
¡Ejercicio!:
; Para el subsistema Administración realizar la descripción de todos los
Actores.
; Para el subsistema Ayuda realizar la descripción de todos los Actores.
Y anexar con el procedimiento conocido a cada Actor del respectivo Diagrama
de Casos de Uso de sistema SACCOW.

1.5.4.5 Descripción de Escenarios Actores de Uso


) Para el subsistema Taquilla vamos a describir los Escenarios /Subescenrios siguientes:
Reservar entradas, Comprar entradas, Comprar abonos.

; Descripción del Escenario Reservar entradas


Escenario 1.1 Reservar entradas.
Precondiciones Hay asientos disponibles.
Poscondiciones Los datos se han ingresado correctamente. El número de reservas individuales se ha incrementado.
Excepciones El usuario sólo puede reservar un máximo de 4 entradas.
Iniciado por Usuario.
Finalizado por: Cajero.
Detalle operaciones
Paso Acción
1 El socio se identifica personalmente o por teléfono proporcionando su código de socio. El cajero
verifica los datos y da paso a la solicitud.
2 El socio solicita reserva de una entrada o varias entradas para una función o funciones del Cine
Club Orson Welles.
3 El cajero verifica si hay entradas disponibles para las funciones solicitadas.
3.a Si hay entradas disponibles el cajero informa al socio y le indica fecha, hora y el importe de
las entradas.
3.b Si no hay entradas disponibles el cajero informa al socio.
4 El cajero entrega al socio una ficha con las entradas reservadas con fecha y hora de las funciones y
con fecha y hora para cancelar el importe de las entradas.
4.a Si el socio confirma y paga sus reservas en fecha y hora señaladas, el cajero le entrega o
envía las entradas reservadas.
4.b Si el socio no confirma y no paga sus reservas en fecha y, el cajero pone en venta las
entradas reservadas.
5 El socio confirma la recepción de las entradas.
6 El socio puede cancelar las reservas antes de 24 horas de la función.
NOTA: Esta tabla es un archivo de MS WORD se llama Escenario11.doc y está asociado al
CU Reservar entradas del diagrama DiagramaCU_Taquilla con el menú contextual: Open
Specification/ Files.

; Descripción del Escenario Comprar entradas


Escenario 1.2 Comprar entradas.
Precondiciones Hay asientos disponibles.
Poscondiciones Los datos se han ingresado correctamente. El número de reservas individuales se ha incrementado.
Excepciones El usuario sólo puede reservar un máximo de 2 abonos.
Iniciado por Usuario.
Finalizado por: Cajero.
Detalle operaciones
Paso Acción

Mgr. Artidoro Velapatiño Castilla Pág. 21 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1 La persona que desee ver una película en el Cine Club Orson Welles se acerca a ventanilla.
1.a Si es eventual, compra su entrada y paga el precio normal.
1.b Si es socio tiene descuento especial, previa identificación con carné de socio.
1.c Si es socio y ha hecho reserva, canjea su boleta de reserva con las correspondientes
entradas.
2 El usuario ve la película que se está proyectando.
NOTA: Esta tabla es un archivo de MS WORD se llama Escenario12.doc y está asociado al
CU Comprar entradas del diagrama DiagramaCU_Taquilla con el menú contextual: Open
Specification/ Files.

; Descripción del Escenario Comprar abonos


Escenario 1.3 Comprar abonos.
Precondiciones Hay asientos disponibles.
Poscondiciones Los datos se han ingresado correctamente. El número de abonos se ha incrementado.
Excepciones Los abonos pueden comprarse al contado o por cuotas
Iniciado por Usuario.
Finalizado por: Cajero.
Detalle operaciones
Paso Acción
1 La persona que desee ver una película en el Cine Club Orson Welles se acerca a ventanilla.
1.a Puede comprar abonos para 4, 8, 12 ó 20 funciones normales.
1.b Puede comprar abonos para programaciones especiales de ciclos de cine por país, por
director, por género, etc.
1.c Puede comprar abonos para festivales de cine
2 El usuario paga los abonos
2.a El usuario paga al contado.
2.b El usuario paga en 3 cuotas, previa autorización del Director.
2 El usuario ve las películas cuyas entradas incluye el abono.

NOTA: Esta tabla es un archivo de MS WORD se llama Escenario13.doc y está asociado al


CU Comprar abonos del diagrama DiagramaCU_Taquilla con el menú contextual: Open
Specification/ Files.

¡Ejercicio!:
; Para el subsistema Administración realizar la descripción de todos los
Escenarios.
; Para el subsistema Ayuda realizar la descripción de todos los Escenarios.
Y anexar con el procedimiento conocido a cada Actor del respectivo Diagrama
de Casos de Uso de sistema SACCOW.
Nota: Se pueden insertar los archivos que se quieran.

1.5.4.6 Diagrama de Actividades


) Para el subsistema Taquilla vamos a construir Diagramas de Actividades para los CU
siguientes: Reservar entradas, Comprar entradas, Comprar abonos.

; Diagrama de Actividades para el CU Reservar entradas. Ver Figura 9.


; Diagrama de Actividades para el CU Comprar entradas. Ver Figura 10.
; Diagrama de Actividades para el CU Comprar abonos. Ver Figura 11.

¡Ejercicio!:

Mgr. Artidoro Velapatiño Castilla Pág. 22 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

; Para el subsistema Administración crear los Diagramas de Actividades para


todos los CU del DiagramaCU_Administración.
; Para el subsistema Ayuda realizar crear los Diagramas de Actividades para
todos los CU del DiagramaCU_Ayuda.

Socio desea
reservar entradas

[ Personalmente ] [ Por teléfono ]


[ Socio posterga reservas ]

Se identica en ventanilla Llama por teléfono y


con carné de socio proporciona sus datos

Cajero verifica
datos de socio

Socio reserva Cajero verifica disponibilidad


entradas de entradas

^Nº entradas <=4 [ Hay entradas ] [ No hay entradas ]

Cajero entrega ficha Cajero informa


con datos de resera al socio

Socio ratifica Socio cancela


reserva reserva

[ Paga monto ] [ No paga monto ]

Socio canjea ficha Cajero anula


por entradas reserva

Figura 9: Diagrama de Actividades para el CU Reservar entradas para el subsistema Taquilla de


SACCOW. Este diagrama se llama DiagramaActividad_ReservarEntradas en el modelo SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 23 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Usuario desea ver


función de CCOW

[ Es eventual ] [ Es socio ]

[ Hizo reserva ]

Compra entrada y
paga precio normal

Compra entrada y Canjea ficha de


paga precio especial reserva por entradas

Figura 10: Diagrama de Actividades para el CU Comprar entradas para el subsistema Taquilla de
SACCOW. Este diagrama se llama DiagramaActividad_ComprarEntradas en el modelo SACCOW.

Usuario desea
comprar abono

[ Al contado ] [ En cuotas ]

Paga el monto
Paga en tres
al contado
cuotas

Usuario
recibe abono

Funciones normales de 4, Festivales Ciclos de cine por país, por


8, 12 ó 20 funciones de cine director, por género, etc.

Figura 11: Diagrama de Actividades para el CU Comprar abonos para el subsistema Taquilla de
SACCOW. Este diagrama se llama DiagramaActividad_ComprarAbonos en el modelo SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 24 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.5.5 Prototipos
El prototipo presentado es el de Interfaz con el Usuario que presenta los procesos más
relevantes del Sistema de Administración del Cine Club Orson Welles. Este prototipo está
escrito en C++ Builder 6.0. El menú ha sido construido con el componente MainMenu.
Ver Figura 12

Figura 12: Menú Principal del SISTEMA de ADMINISTRACION del CINE CLUB ORSON
WELLES en C++ Builder 6.0.

1.5.5.1 Descripción del menú con las opciones del prototipo


Ver Figura 13
La opción Archivo La opción Editor La opción Ver

La opción Administración La opción Taquilla La opción Herramientas

Mgr. Artidoro Velapatiño Castilla Pág. 25 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

La opción Reportes La opción Ventana La opción Ayuda

Figura 13: Menús del SISTEMA de ADMINISTRACION del CINE CLUB ORSON WELLES

1.5.5.2 Descripción de los módulos del menú.


) El módulo Archivo: Se encarga de procesar archivos de texto e imágenes para escribir e
imprimir las fichas técnicas y apreciación crítica de las películas.
) El módulo Edición: Realiza las opresiones de cortar, copiar, pegar y deshacer los textos.
) El módulo Ver: Visualiza /oculta la barra de herramientas y la barra de estado.
) El módulo Administración: Administra a los socios, películas y funciones del Cine Club.
) El módulo Taquilla: Administra las reservas y la venta de entradas individuales y
abonos.
) El módulo Reportes: Imprime informes para impresora sobre socios, películas,
funciones, reservas entradas y abonos.
) El módulo Herramientas: Proporciona una calculadora y un calendario de apoyo al
sistema.
) El módulo Ventana: Organiza la distribución de las ventanas abiertas por el sistema.
) El módulo Ayuda: Proporciona ayuda interactiva al estilo Windows para el Sistema.

1.6 Diseño
1.6.1 Diseño preliminar y diseño detallado
) Construcción de los diagramas preliminares
Incluye los diferentes diagramas de interacción (secuencia y colaboración), clases,
objetos, actividades, estados, componentes y despliegue para el Sistema de
Administración del Cine Club Orson Welles.

) Diseño detallado
Refinaremos sucesivamente los diferentes diagramas detallando para tener una visión
mas completa del Sistema de Administración del Cine Club Orson Welles. Aplicando
el proceso incremental e iterativo construiremos las versiones sucesivas del Sistema
hasta obtener un producto satisfactorio.

) Estimación preliminar del tiempo y los costos del diseño detallado


Actividad Personal Tiempo (d) Costos (S/)
Diagramas de interacción Virginia LOPEZ 6 30
Diagramas de clases J.J. MOLINA 4 20
Diagramas de objetos Cecilia LOPEZ 2 10
Diagrama de actividades Virginia LOPEZ 2 10
Diagrama de estados Cecilia LOPEZ 3 15
Diagrama de componentes J.J. MOLINA 2 10

Mgr. Artidoro Velapatiño Castilla Pág. 26 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Diagrama de despliegue J.J. MOLINA 2 10


Total ------------------ 21 105
1.6.2 Diagramas de interacción
1.6.2.1 Diagramas de secuencia
) Para el subsistema Taquilla vamos a construir Diagramas de Secuencia para los CU
siguientes: Reservar entradas, Comprar entradas, Comprar abonos.
; Diagrama de Secuencia para el CU Reservar entradas. Ver Figura 14.

a : Asiento

Socio : Usuario c : Cajero

1: Se presenta o llama
por teléfono 2: Verifica disponibilidad de
asientos
3:
4: Comunica disponibilidad de
asientos
5: Selecciona asientos

6: Confirma reservas
7: Acepta reservas

8: Cancela reservas

9: Acepta cancelación de reservas

Figura 14: Diagrama de Secuencia para el CU Reservar entradas para el subsistema Taquilla de
SACCOW. Este diagrama se llama DiagramaSecuencia_ReservarEntradas en el modelo SACCOW

; Diagrama de Secuencia para el CU Comprar entradas. Ver Figura 15.

a : Asiento
u : Usuario c : Cajero
1: Solicita entradas
2: Verifica disponibilidad de
asientos
3:
4: Muestra disponibilidad de
asientos
5: Selecciona asientos
6: Solicita pago por entradas

7: Paga la entradas

8: Imprime y entrega entradas

Figura 15: Diagrama de Secuencia para el CU Comprar entradas para el subsistema Taquilla de

Mgr. Artidoro Velapatiño Castilla Pág. 27 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

SACCOW. Este diagrama se llama DiagramaSecuencia_ComprarEntradas en el modelo SACCOW.


; Diagrama de Secuencia para el CU Comprar abonos. Ver Figura 16.

a : Asiento
u : Usuario
c : Cajero
1: Solicita abonos 2: Verifica disponibilidad
: Director
3:
4: Muestra disponibilidad
de asientos
5: Selecciona asientos
6: Solicita pago de abono
7: Paga al contado

8: Solicita pago por cuotas


9: Solicita autorización de crédito
10: Autoriza crédito
11: Imprime y entrega abonos
12: Paga 1ra. cuota

13: Imprime comprobante 1ra.


cuota
14: Paga 2da. cuota

15: Imprime comprobante


2da. cuota
16: Paga 3ra. cuota

17: Imprime comprobante 3ra. cuota

Figura 16: Diagrama de Secuencia para el CU Comprar abonos para el subsistema Taquilla de
SACCOW. Este diagrama se llama DiagramaSecuencia_ComprarAbonos en el modelo SACCOW

¡Ejercicio!:
; Para el subsistema Administración crear los Diagramas de Secuencia para
todos los CU del DiagramaCU_Administración.
; Para el subsistema Ayuda realizar crear los Diagramas de Secuencia para
todos los CU del DiagramaCU_Ayuda.

Mgr. Artidoro Velapatiño Castilla Pág. 28 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.6.2.2 Diagramas de Colaboración


) Para el subsistema Taquilla vamos a construir Diagramas de Colaboración para los
CU siguientes: Reservar entradas, Comprar entradas, Comprar abonos.

; Diagrama de Colaboración para el CU Reservar entradas. Ver Figura 17.

8: Cancela reservas

6: Confirma reservas

1: Se presenta o llama por teléfono

4: Comunica disponibilidad de asientos


Socio : Usuario c : Cajero
7: Acepta reservas

9: Acepta cancelación de reservas


5: Selecciona asientos

2: Verifica disponibilidad de asientos


3:

a : Asiento

Figura 17: Diagrama de Secuencia para el CU Reservar entradas para el subsistema Taquilla de
SACCOW. Este diagrama se llama DiagramaColaboración_ReservarEntradas en el modelo
SACCOW

; Diagrama de Colaboración para el CU Comprar entradas. Ver Figura 18.

7: Paga las entradas

1: Solicita entradas

4: Muestra disponibildad de asientos


u : Usuario c : Cajero

6: Solicita pago de entradas

8: Imprime y entrega entradas

2: Verifica disponibilidad de asientos


5: Selecciona asientos
3:

a : Asiento

Figura 18: Diagrama de Secuencia para el CU Comprar entradas para el subsistema Taquilla de
SACCOW. Este diagrama se llama DiagramaColaboración_ComprarEntradas en el modelo
SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 29 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

; Diagrama de Colaboración para el CU Comprar abonos. Ver Figura 19.

16: Paga 3ra. cuota

14: Paga 2da. cuota

12: Paga 1ra. cuota

8: Solicita pago por cuotas


7: Paga al contado

1: Solicita abonos

9: Solicita autorización de crédito


4: Muestra disponibilidad de asientos
u : Usuario c : Cajero
6: Solicita pago de abono 10: Autoriza crédito

11: Imprime y entrega abonos


: Director
13: Imprime comprobante 1ra. cuota

15: Imprime comprobante 2da. cuota


2: Verifica disponibilidad
3:
17: Impre comprobante 3ra. cuota

5: Selecciona asientos

a : Asiento

Figura 19: Diagrama de Secuencia para el CU Comprar abonos para el subsistema Taquilla de
SACCOW. Este diagrama se llama DiagramaColaboración_ComprarAbonos en el modelo
SACCOW.

¡Ejercicio!:
; Para el subsistema Administración crear los Diagramas de Colaboración
para todos los CU del DiagramaCU_Administración.
; Para el subsistema Ayuda realizar crear los Diagramas de Colaboración
Secuencia para todos los CU del DiagramaCU_Ayuda.

Mgr. Artidoro Velapatiño Castilla Pág. 30 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.6.3 Diagramas de estructura


1.6.3.1 Diagramas de clases
1.6.3.1.1 Identificación de clases y objetos
1.6.3.1.1.1 Clasificación de Ross
Para nuestro caso, que es el Sistema de Administración del Cine Club Orson Welles consideramos
candidatos a clases siguientes:

Grupos Descripción
Personas Usuarios (Socios y Eventuales), Administrativos (Director, Administrador, Cajero)
Lugares Sala de proyección, Almacén, Ventanilla
Cosas Proyector (Cinta, Multimedia, Vistas fijas, Transparencias) Películas (Rollos, CD,
DVD, VHS), Impresora, Escáner, Papel, Ecran, Asientos.
Organizaciones Cine Club, Administración, Dirección.
Conceptos Cine, Función, Crítica, Abono, Entrada, Reserva, Crédito.
Eventos Función, Cine-Forum, Festival, Ciclo, Propaganda.

) Clases Candidatas:
Usuario, Administrador, Sala, Proyector, Película, Almacén, Impresora, Escáner, Papel, Ecran,
Asientos. Ventanilla, Cine Cub, Administración, Dirección, Cine, Función, Crítica, Abono,
Entrada, Reserva, Crédito, Función, Cine-Forum, Festival, Ciclo, Propaganda.

1.6.3.1.1.2 Análisis sintáctico


Vamos a describir como funciona el Cine Club Orson Welles y vamos a subrayar sustantivos
(candidatos a clases), verbos (candidatos a operaciones) y sintagmas – adjetivo (candidatos a
atributos):
1.6.3.1.1.2.1 Descripción de cómo funciona el sistema
El Cine Club Orson Welles es una empresa que realiza funciones de cine de
películas en formato de rollos (para clásicos del cine), de video, CD y DVD para
incentivar la apreciación crítica del arte cinematográfico. Las películas se adquieren
por compra o donación o alquiler en caso de rollos. Los usuarios son de dos tipos:
eventuales y socios. Sólo se almacena información sobre los socios. Las funciones
se programan en simples, ciclos o festivales.
Sobre las películas debe tener los datos sobre el título, título original, el director, el
productor, los protagonistas, el género, el año de producción, la empresa productora,
el color (blanco y negro y colores), la duración, el argumento, el soporte
(rollo/video/CD/ DVD), ficha técnica, apreciación crítica, fecha de ingreso y precio.
Se debe poder realizar operaciones de adquirir, modificar y eliminar.
Sobre los usuarios que sean socios debe tenerse datos como apellidos, nombre,
sexo, fecha de nacimiento, ocupación, dirección, teléfono, e-mail, y un código
asignado por el sistema. Se debe poder realizar operaciones de agregar, modificar y
eliminar. Se debe poder realizar operaciones de agregar, modificar y eliminar.
Sobre las reservas solo se debe consignar la fecha. Si la reserva es para entradas
de abono debe consignarse un número de serie.
Sobre las entradas es necesario saber la disponibilidad, el número. Se debe poder
realizar operaciones de vender, intercambiar y anular.
Sobre las funciones se debe consignar los datos sobre fecha, hora y lugar y la
película a proyectarse. Se debe poder realizar operaciones de programar calendario,

Mgr. Artidoro Velapatiño Castilla Pág. 31 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

ingresar, modificar, eliminar, buscar e imprimir programas y resultados de búsqueda.

1.6.3.1.1.2.2 Subrayado de sustantivos, sintagmas-adjetivos y verbos


para identificar las clases candidatas, sus atributos y los
comportamientos.
Nota: Los sustantivos van en negrita, los verbos subrayados y los sintagma – adjetivo en
cursiva.

El Cine Club Orson Welles es una empresa que realiza funciones de cine de
películas en formato de rollos (para clásicos del cine), de video, CD y DVD para
incentivar la apreciación crítica del arte cinematográfico. Las películas se
adquieren por compra o donación o alquiler en caso de rollos. Los usuarios son de
dos tipos: eventuales y socios. Sólo se almacena información sobre los socios.
Las funciones se programan en simples, ciclos o festivales.
Sobre las películas se debe tener los datos sobre el título, título original, el director,
el productor, los protagonistas, el género, el año de producción, la empresa
productora, el color (blanco y negro y colores), la duración, el argumento, el soporte
(rollo/video/CD/ DVD), ficha técnica, apreciación crítica, fecha de ingreso y precio.
Se debe poder realizar operaciones de adquirir, modificar y eliminar.
Sobre los usuarios que sean socios debe tenerse datos como apellidos, nombre,
sexo, fecha de nacimiento, ocupación, dirección, teléfono, e-mail, y un código
asignado por el sistema. Se debe poder realizar operaciones de agregar, modificar
y eliminar. Se debe poder realizar operaciones de agregar, modificar y eliminar.
Sobre las reservas sólo se debe consignar la fecha. Si la reserva es para entradas
de abono debe consignarse un número de serie.
Sobre las entradas es necesario saber la disponibilidad, el número. Se debe poder
realizar operaciones de vender, intercambiar y anular.
Sobre las funciones se debe consignar los datos sobre fecha, hora y lugar y la
película a proyectarse. Se debe poder realizar operaciones de programar
calendario, ingresar, modificar, eliminar, buscar e imprimir programas y resultados
de búsqueda.

) Clases Candidatas:
Cine Club Orson Welles, Empresa, Función, Cine, Película, Rollo, Video, CD, DVD,
Apreciación crítica, Arte cinematográfico, Usuario, Eventual, Socio, Información, Ciclo,
Festival, Operación, Sistema, Reserva, Entrada, Abono, Calendario, Programas, Resultado.

1.6.3.1.1.3 Uso del análisis de casos de uso haciendo uso de


escenarios y subescenarios.
Teniendo en cuenta los escenarios (y subescenarios) podemos también sugerir clases
candidatas.

Nota: En un proyecto debe tenerse en cuenta todos los escenarios posibles del sistema.
Nosotros asumimos que describimos todos los escenarios (y subescenarios) posibles para
nuestro sistema.

Mgr. Artidoro Velapatiño Castilla Pág. 32 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

; Descripción del Escenario Reservar entradas

Escenario 11
Paso Acción
1 El socio se identifica personalmente o por teléfono proporcionando su código de socio. El cajero
verifica los datos y da paso a la solicitud.
2 El socio solicita reserva de una entrada o varias entradas para una función o funciones del Cine
Club Orson Welles.
3 El cajero verifica si hay entradas disponibles para las funciones solicitadas.
3.a Si hay entradas disponibles el cajero informa al socio y le indica fecha, hora y el importe de
las entradas.
3.b Si no hay entradas disponibles el cajero informa al socio.
4 El cajero entrega al socio una ficha con las entradas reservadas con fecha y hora de las funciones y
con fecha y hora para cancelar el importe de las entradas.
4.a Si el socio confirma y paga sus reservas en fecha y hora señaladas, el cajero le entrega o
envía las entradas reservadas.
4.b Si el socio no confirma y no paga sus reservas en fecha y, el cajero pone en venta las
entradas reservadas.
5 El socio confirma la recepción de las entradas.
6 El socio puede cancelar las reservas antes de 24 horas de la función.

; Descripción del Escenario Comprar entradas


Escenario 12
Paso Acción
1 La persona que desee ver una película en el Cine Club Orson Welles se acerca a ventanilla.
1.a Si es eventual, compra su entrada y paga el precio normal.
1.b Si es socio tiene descuento especial, previa identificación con carné de socio.
1.c Si es socio y ha hecho reserva, canjea su boleta de reserva con las correspondientes
entradas.
2 El usuario ve la película que se está proyectando.

; Descripción del Escenario Comprar abonos


Escenario 13
Paso Acción
1 La persona que desee ver una película en el Cine Club Orson Welles se acerca a ventanilla.
1.a Puede comprar abonos para 4, 8, 12 ó 20 funciones normales.
1.b Puede comprar abonos para programaciones especiales de ciclos de cine por país, por director,
por género, etc.
1.c Puede comprar abonos para festivales de cine
2 El usuario paga los abonos
2.a El usuario paga al contado.
2.b El usuario paga en 3 cuotas, previa autorización de crédito del Director.
2 El usuario ve las películas cuyas entradas incluye el abono.

) Clases Candidatas:
Socio, Cajero, Cine Club Orson Welles, Empresa, Función, Película, Usuario, Eventual,
Entrada, Abono, Ciclo, Festival, Operación, Sistema, Reserva, Calendario, Programas,
Resultado, Crédito.

1.6.3.1.1.4 Fichas CRC (Clase - Responsabilidades -


Mgr. Artidoro Velapatiño Castilla Pág. 33 de 72
Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Colaboradores) con el formato de anverso y reverso en


base a escenarios
En base a los escenarios podemos construir fichas CRC para algunos elementos como los
siguientes (En un proyecto debe tenerse en cuenta todos los escenarios posibles del sistema):

) Ficha CRC para la clase Película:

CLASE: Película CLASE: Película


Responsabilidades Colaboradores Cod_película: String
Adquisición Administrador Título: String
Proyección Empleado Título_original: String
Director: String
Crítica Usuario
Productor: String
Protagonistas: String
Género: Integer
Año_producción: Integer
Empresa_productora: String
Color: Boolean
Duración: Double
Argumento: Text
Formato: String
Ficha_técnica: Text
Apreciación_crítica: Text
Fecha_ingreso: Date
Precio : Currency
Superclases Subclases
Normal
Documental
Animado

) Ficha CRC para la clase Función

CLASE: Función CLASE: Función


Responsabilidades Colaboradores ID_función: Integer
Fecha : Date
Programar Administrador Hora : String
Proyectar película Empleado Cod_película : String
Cine Forum Usuario, Director, Administrador Superclases Subclases
Matinal
Matinée
Vermouth
Noche

) Ficha CRC para la clase Usuario

Mgr. Artidoro Velapatiño Castilla Pág. 34 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

CLASE: Usuario CLASE: Usuario


Responsabilidades Colaboradores Num_usuario: Integer
Comprar entradas Cajero Num_entradas: Integer
Comprar abonos Cajero Superclases Subclases
Asistir a funciones Función, Película Eventual
Socio

) Ficha CRC para la clase Socio

CLASE: Socio CLASE: Socio


Responsabilidades Colaboradores Cod_socio: String
Apellido: String
Reservar entradas Cajero Nombre: String
Comprar entradas Cajero Sexo: Boolean
Comprar abonos Cajero Fecha_nac: Date
Ocupación: String
Pedir crédito Cajero, Director Dirección: String
Asistir a funciones Función, Película Teléfono: String
Criticar películas Cine Club E_mail: String
Foto: Object
Fecha_ingreso: Date
Superclases Subclases
Usuario

) Ficha CRC para la clase Reserva

CLASE: Reserva CLASE: Reserva


Responsabilidades Colaboradores Serie: String
Fecha : Date
Hacer reserva Cajero, Función, Película Hora : String
Confirmar reserva Cajero Superclases Subclases
Cancelar reserva Cajero Reserva_individual
Abono

) Ficha CRC para la clase Reserva_individual

CLASE: Reserva_individual CLASE: Reserva_individual


Responsabilidades Colaboradores Num_asiento: Integer
Fecha : Date
Hacer reserva Cajero, Función, Película Hora : String
Confirmar reserva Cajero Superclases Subclases
Cancelar reserva Cajero Reserva

Mgr. Artidoro Velapatiño Castilla Pág. 35 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

) Ficha CRC para la clase Abono

CLASE: Abono CLASE: Abono


Responsabilidades Colaboradores Serie: String
Num_asientos : Integer
Hacer reserva Cajero, Función, Película
Superclases Subclases
Confirmar reserva Cajero
Reserva
Cancelar reserva Cajero

) Ficha CRC para la clase Entrada

CLASE: Entrada CLASE: Entrada


Responsabilidades Colaboradores Disponibilidad: Boolean
Asiento : Integer
Comprar entrada Cajero, Función, Película ID_función: Integer
Pagar entrada Cajero Precio: Currency
Superclases Subclases

) Clases Candidatas:
Película, Función, Usuario, Eventual, Socio, Cajero, Administrador, Empleado, Director,
Reserva, Entrada, Entrada_individual.

1.6.3.1.1.5 Depuración de clases, atributos y operaciones


candidatas

) Con las cuatro metodologías usadas podemos deducir que las clases candidatas son:
Usuario, Eventual, Socio, Cajero, Administrador, Empleado, Director, Sala, Proyector,
Almacén, Impresora, Escáner, Papel, Écran, Asiento, Ventanilla, Película, Rollo,
Video, CD, DVD, Cine, Cine Club, Cine Club Orson Welles, Cine-Forum, Crítica,
Apreciación crítica, Arte cinematográfico, Administración, Dirección, Función,
Festival, Ciclo, Abono, Reserva, Entrada, Entrada_individual, Crédito, Propaganda,
Empresa, Información, Operación, Sistema, Calendario, Programa, Resultado.

; Eliminamos las siguientes candidatas a clases por ser vagas:


Información, Sistema, Cine, Operación, Calendario, Programa, Resultado, Crítica,
Empresa, Arte Cinematográfico, Cine Club Orson Welles.
; Eliminamos las siguiente candidatas a clases por ser irrelevantes para el sistema:
Almacén, Papel, Ventanilla.
; Eliminamos las siguientes candidatas a clases por ser parte de la implantación del sistema:
Impresora, Administración, Dirección, Proyector, Écran, Escáner
; Eliminamos las siguientes candidatas a clases por ser atributos:
Sala, Asiento, Rollo, Video, CD, DVD, Festival, Ciclo
; Eliminamos las siguientes candidatas a clases por ser operaciones o actividades:
Mgr. Artidoro Velapatiño Castilla Pág. 36 de 72
Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Cine Club, Cine-Forum, Apreciación crítica, Crédito, Propaganda.


; Eliminamos las siguientes candidatas a clases por ser actores que van a interactuar con el
sistema, pero no van a formar parte del sistema:
Administrador, Empleado, Director

) Luego de la depuración quedan las siguientes clases:


Usuario, Eventual, Socio, Película, Función, Reserva, Entrada_individual, Abono,
Entrada.

) Las clases depuradas con sus atributos y operaciones son las siguientes: Ver Figura 20

Usuario Película Reserva


Num_usuario : Integer Cod_película : String Serie : String
Título : String Fecha : Date
Ingresar() Hora : String
Anular()
Título_original : String
Director : String Ingresar()
País : String Modificar()
Socio Productor : String Eliminar()
Cod_socio : String Protagonistas : String Buscar()
Apellido : String Género : Integer
Nombre : String Reserva_individual
Sexo : Boolean
Año_producción : Integer
Empresa_productora : String Num_asiento : Integer
Fecha_nac : Date
Ocupación : String Color : Boolean
Dirección : String Duración : Double
Teléfono : String Abono
Argumento : Text
E_mail : String Serie : String
Foto : Object Formato : String Num_funciones : Integer
Fecha_ingreso : Date Ficha_técnica : Text Asientos : String
Apreciación_crítica : Text
Ingresar() Fecha_ingreso : Date
Modificar()
Borrar()
Precio : Currency
Buscar() Alquiler : Boolean Entrada
Imprimir()
Disponibilidad : Boolean
Ingresar() Num_asiento : Integer

Eventual Modificar() Fecha : Date


Borrar() Hora : String
ID_usuario : Integer Precio : Currency
...
Vender()
Intercambiar()
Anular()

Función
ID_función : Integer
Fecha : Date
Hora : String
Cod_película : String
Tipo : String

Programar()
Ingresar()
Modifiicar()
Borrar()
Buscar()
Imprimir()

Figura 20: Clases finales seleccionadas para el Sistema de administración del Cine Club
Orson Welles después del proceso de depuración de clases candidatas.

Mgr. Artidoro Velapatiño Castilla Pág. 37 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.6.3.1.2 Identificación de las relaciones de asociación,


dependencia, herencia, agregación.
Analizando las relaciones entre las clases podemos identificar:
) Las siguientes asociaciones: Ver Figura 21

Compra Compra
Eventual Entrada Socio Entrada
0..1 * 0..1 *

Separa
Reserva_individual Entrada Separa
0..1 1 Abono Entrada
0..1 4..20

Se_exhibe Permite_ver
Película Función Entrada Num_asiento Función
1 1..* * 1

Figura 21: Asociaciones entre las clases para el Sistema de administración del Cine Club
Orson Welles.

Nota: Hemos nominado las asociaciones, indicando su multiplicidad (cardinalidad). En el


caso de Permite_ver (Entrada : Num_asiento) es una asociación cualificada donde el
cualificador es el atributo Nro_asiento.

) Las relaciones de Generalización (Herencia): Ver Figura 22

Reserva
Usuario

Eventual Socio Reserva_individual Abono

Figura 22: Relaciones de Generalización (Herencia) entre las clases para el Sistema de
administración del Cine Club Orson Welles.

1.6.3.1.3 Construcción del Diagrama de Clases

) En la sección Logic View de nuestro modelo SACCOW construimos el diagrama


de paquetes: Ver Figura 23

Mgr. Artidoro Velapatiño Castilla Pág. 38 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Area
Administrativa
Area Cine
Club

Figura 22: Paquetes de la Vista Lógica para el Sistema de administración del Cine Club
Orson Welles. Este diagrama se llama Areas en el modelo SACCOW.

) Dentro del paquete Área Administrativa creamos el Diagrama de Clases:

Película
Cod_película : String
Título : String
Usuario Título_original : String
Director : String
Num_usuario : Integer Reserva País : String
Ingresar()
Serie : String Productor : String
Fecha : Date Protagonistas : String
Anular()
Hora : String
Género : String
Ingresar() Año_producción : Integer
* Modificar() Empresa_productora : String
Borrar()
Buscar() Color : Boolean
Duración : Double
Argumento : Text
Formato : String
1
Ficha_técnica : Text
Eventual Socio Apreciación_crítica : Text
Fecha_ingreso : Date
ID_usuario : Integer Cod_socio : String1 Precio : Currency
Apellido : String
Nombre : String
Alquiler : Boolean
1
Sexo : Boolean
Fecha_nac : Date Ingresar()
Ocupación : String Abono Modificar()
Dirección : String Reserva_individual
Télefono : String
Serie : String Borrar()
Num_asiento : Integer Num_funciones : Integer
E_mail : String Buscar()
Foto : Object Asientos : String Imprimir()
Fecha_ingreso : Date
0..1 1
Ingresar() 0..1
Modificar()
Borrar()
Buscar()
Imprimir() 1..*
4..20
Función
1
Entrada ID_función : Integer
* Disponibilidad : Boolean Fecha : Date
Num_asiento : Integer Hora : String
Fecha : Date Cod_película : String
Hora : String Tipo : String
Num_asiento
* Precio : Currency * 1
Programar()
Vender() Ingresar()
Intercambiar() Modificar()
Anular() Borrar()
Imprimir()

Figura 23: Diagrama de Clases para el Sistema de administración del Cine Club Orson
Welles. Este diagrama se llama DiagramaClases_SACCOW en el modelo SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 39 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.6.3.1.4 Diccionario de Datos


Usuario: Persona que asiste a las funciones del Cine Club “Orson Welles”.
Eventual: Tipo de usuario que asiste a funciones del Cine Club “Orson Welles” en raras
ocasiones.
Socio: Tipo de usuario del Cine Club “Orson Welles” que tiene carné que le da derecho a
reservar entradas, descuentos en las entradas y participación activa en las sesiones de Cine –
Forum.
Reserva: Reservación de entradas para las funciones de proyección de películas que hacen los
socios con anticipación.
Reserva_individual: Reservación para una sola función.
Abono: Reservación para varias funciones, festivales o ciclo de funciones.
Entrada: Es un documento en formato de etiqueta que permite a los usuarios ingresar a las
funciones.
Película: Obra cinematográfica que se proyecta en pantalla por intermedio de un proyector
de 35 mm o multimedia.
Función: Proyección de una película en un sala de proyecciones en fecha y hora
determinadas.
Clase Usuario: Clase con los atributos Num_usuario y con las operaciones Ingresar y
Anular.
Clase Socio: Subclase de la clase Usuario, con los atributos Cod_socio, Apellido, Nombre,
Sexo, Fecha_nac, Ocupación, Dirección, Teléfono, E_mail, Foto y Fecha_ingreso y las
operaciones Ingresar, Modificar, Eliminar, Buscar e Imprimir.
Clase Eventual: Subclase de la clase Usuario con los atributos ID_usuario y las operaciones
heredadas de la clase Usuario.
Clase Reserva: Clase con los atributos Serie, Fecha y Hora y las operaciones Ingresar,
Modificar, Eliminar y Buscar.
Clase Reserva_individual: Subclase de la clase Reserva con los atributos Num_asiento y las
operaciones heredadas de la clase Reserva.
Clase Abono: Subclase de la clase Reserva con los atributos Serie, Num_funciones, y
Asientos y las operaciones heredadas de la clase Reserva.
Clase Entrada: Clase con los atributos Disponibilidad, Num_asiento, Fecha, Hora y Precio
y las operaciones Vender, Intercambiar y Anular.
Clase Película: Clase con los atributos Cod_película, Título, Título_original, Director, Pais,
Productor, Protagonistas, Año_producción, Empresa_productora, Color, Duración,
Argumento, Formato, Ficha_técnica, Apreciación_crítica, Fecha_ingreso, Precio y Alquiler
y las operaciones Ingresar, Modificar, Eliminar, Buscar e Imprimir.
Clase Función: Clase con los atributos ID_función, Fecha, Hora, Cod_película y Tipo y las
operaciones Programar, Ingresar, Modificar, Borrar, e Imprimir.
Num_usuario: Atributo de tipo entero de la clase Usuario que identifica a un usuario con un
número correlativo.
Cod_socio: Atributo de tipo cadena de la clase Socio que identifica al Socio socio en el
formato XX999 donde XX son la primera letra del nombre y el apellido paterno y 999 es un
número correlativo.
Apellido: Atributo de tipo cadena de la clase Socio que indica los apellidos paterno y materno
del socio.
Nombre: Atributo de tipo cadena de la clase Socio que indica el nombre del socio.
Sexo: Atributo de tipo lógico de la clase Socio que identifica el sexo del socio, donde 1 =
Masculino y 0 = Femenino.
Fecha_nac: Atributo de tipo fecha/hora de la clase Socio que indica la fecha de nacimiento

Mgr. Artidoro Velapatiño Castilla Pág. 40 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

del socio, en el formato dd/mm/aaaa.


Ocupación: Atributo de tipo cadena de la clase Socio que indica la ocupación del socio.
Dirección: Atributo de tipo cadena de la clase Socio que indica la dirección del socio.
Teléfono: Atributo de tipo cadena de la clase Socio que indica el teléfono domiciliario del
socio.
E_mail: Atributo de tipo cadena de la clase Socio que indica el correo electrónico del socio.
Foto: Atributo de tipo cadena de la clase Socio que indica la dirección del socio.
Fecha_ingreso: Atributo de tipo fecha/hora de la clase Socio que indica la fecha de ingreso
del socio al Cine Club “Orson Welles”, en el formato dd/mm/aaaa.
ID_usuario: Atributo de tipo entero de la clase Eventual que identifica al usuario eventual
con un número correlativo.
Serie: Atributo de tipo cadena de la clase Reserva que indica una reservación de entradas.
Fecha: Atributo de tipo fecha/hora de la clase Reserva que indica la fecha de la función para
la cual se reserva entradas.
Hora: Atributo de tipo cadena de la clase Reserva que indica la hora de la función para la
cual se reserva entradas.
Num_asiento: Atributo de tipo entero de la clase Reserva_individual que indica el numero
del asiento reservado para la función respectiva.
Serie: Atributo de tipo cadena de la clase Abono que indica el número del abono que puede
incluir ceros a la izquierda.
Num_funciones: Atributo de tipo entero de la clase Abono que indica el número de
funciones que incluye el abono.
Asientos: Atributo de tipo cadena de la clase Abono que indica los asientos reservados para
el abono.
Disponibilidad: Atributo de tipo lógico de la clase Entrada que indica si el asiento está o no
disponible. Toma los valores 1 = Disponible y 0 = No disponible.
Num_asiento: Atributo de tipo entero de la clase Entrada que identifica el asiento con un
número.
Fecha: Atributo de tipo fecha/hora de la clase Entrada que indica la fecha de la función
respectiva.
Hora: Atributo de tipo cadena de la clase Entrada que indica la hora de la función
respectiva.
Precio: Atributo de tipo moneda de la clase Entrada que el recio en soles de la función
respectiva.
Cod_película: Atributo de tipo cadena de la clase Película que identifica la película en el
formato XX9999 donde XX indica el género de la película y 9999 es un número correlativo.
Título: Atributo de tipo cadena de la clase Película que indica el título en español de la
película.
Título_original: Atributo de tipo cadena de la clase Película que indica el título en el idioma
original en que fue filmada.
Director: Atributo de tipo cadena de la clase Película que identifica al Director (es) de la
película.
País: Atributo de tipo cadena de la clase Película que indica el país donde se produjo la
película.
Productor: Atributo de tipo cadena de la clase Película que identifica el Productor (es) de la
película.
Protagonistas: Atributo de tipo cadena de la clase Película que identifica a los actores
principales de la película.
Año_producción: Atributo de tipo entero de la clase Película que indica el año de

Mgr. Artidoro Velapatiño Castilla Pág. 41 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

producción de la película.
Empresa_productora: Atributo de tipo cadena de la clase Película que identifica a la
empresa productora de la película.
Color: Atributo de tipo lógico de la clase Película que indica si la película está filmada en
colores o blanco y negro. Toma los valores 1 = Colores y 0 = Blanco y negro.
Duración: Atributo de tipo flotante de la clase Película que indica la duración en minutos de
la película.
Argumento: Atributo de tipo texto de la clase Película que hace una descripción sintética de
la película. Se llama también Sinopsis.
Formato: Atributo de tipo cadena de la clase Película que describe el formato de la película.
Toma los valores: Rollo, VHS, CD o DVD.
Ficha_técnica: Atributo de tipo texto de la clase Película que hace una descripción de los
datos técnicos de la película.
Apreciación_crítica: Atributo de tipo texto de la clase Película que hace una apreciación
crítica de los méritos o deméritos de la película.
Fecha_ingreso: Atributo de tipo fecha/hora de la clase Película que indica la fecha que la
película ingresó al Cine Club “Orson Welles” por donación, compra o alquiler.
Precio: Atributo de tipo moneda de la clase Película que indica el precio en soles de la
compra o alquiler de la película.
Alquiler: Atributo de tipo lógico de la clase Película que indica si la película es alquilada o
no. Toma los valores 1 = Alquilada y 0 = No alquilada.
ID_función: Atributo de tipo entero de la clase Función que identifica la función con un
número correlativo.
Fecha: Atributo de tipo fecha/hora de la clase Función que indica la fecha de la función en
formato dd/mm/aaaa.
Hora: Atributo de tipo cadena de la clase Función que indica la hora de la función.
Cod_película: Atributo de tipo cadena de la clase Función que hace referencia a la película
que se proyectará en la función.
Tipo: Atributo de tipo cadena de la clase Función que indica el tipo función. Toma los
valores Simple, Ciclo o Festival.
Ingresar: Operación de la clase Usuario. Permite ingresar registros de los usuarios.
Anular: Operación de la clase Usuario. Permite anular registros de los usuarios.
Ingresar: Operación de la clase Socio. Permite ingresar registros de los socios.
Modificar: Operación de la clase Socio. Permite modificar datos de los socios.
Eliminar: Operación de la clase Socio. Permite eliminar registros de los socios.
Buscar: Operación de la clase Socio. Permite buscar datos de los socios.
Imprimir: Operación de la clase Socio. Permite imprimir datos de los socios.
Ingresar: Operación de la clase Reserva. Permite ingresar registros de las reservas.
Modificar: Operación de la clase Reserva. Permite modificar datos de las reservas.
Eliminar: Operación de la clase Reserva. Permite registros datos de las reservas.
Buscar: Operación de la clase Reserva. Permite buscar datos de las reservas.
Ingresar: Operación de la clase Entrada. Permite ingresar registros de las entradas.
Modificar: Operación de la clase Entrada. Permite modificar datos de las entradas.
Eliminar: Operación de la clase Entrada. Permite registros datos de las entradas.
Buscar: Operación de la clase Entrada. Permite buscar datos de las entradas.
Ingresar: Operación de la clase Película. Permite ingresar registros de las películas.
Modificar: Operación de la clase Película. Permite modificar datos de las películas.

Eliminar: Operación de la clase Película. Permite eliminar registros de las películas.

Mgr. Artidoro Velapatiño Castilla Pág. 42 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Buscar: Operación de la clase Película. Permite buscar datos de las películas.


Imprimir: Operación de la clase Película. Permite imprimir datos de las películas.
Programar: Operación de la clase Función. Permite programar calendario de las funciones.
Ingresar: Operación de la clase Función. Permite ingresar registros de las funciones.
Modificar: Operación de la clase Función. Permite modificar datos de las funciones.
Borrar: Operación de la clase Función. Permite borrar registros de las funciones.
Imprimir: Operación de la clase Función. Permite imprimir datos de las funciones.
Compra: Asociación entre las clases Usuario y Entrada. La multiplicidad es de 0..1 a
muchos.
Compra: Asociación entre las clases Socio y Entrada. La multiplicidad es de 0..1 a muchos.
Separa: Asociación entre las clases Reserva_individual y Entrada. La multiplicidad es de 0
..1 a 1.
Separa: Asociación entre las clases Abono y Entrada. La multiplicidad es de 0 o 1 a 4..20.
Se_exhibe_en: Asociación entre las clases Película y Función. La multiplicidad es de 1 a 1 o
muchos.
Permite_ver: Asociación cualificada entre las clases Entrada y Función. La multiplicidad es
de muchos a 1. El atributo cualificador es Num_asiento.
Es_un: Relación de Generalización (Herencia) entre las clase Usuario y las clases Eventual
y Socio.
Es_un: Relación de Generalización (Herencia) entre las clase Reserva y las clases
Reserva_individual y Abono.

Nota: El Diccionario de Datos se implanta en Rational Rose de la siguiente manera:


) Para Clases:
Usar la opción Documentation de Open Specification para definir la clase
respectiva.
) Para Atributos:
Usar la opción Documentation de Specification para definir el atributo respectivo.
) Para Operaciones:
Usar la opción Documentation de Specification para definir la operación respectiva.
) Para Asociaciones:
Usar la opción Documentation de Open Specification para definir la asociación
respectiva.

Mgr. Artidoro Velapatiño Castilla Pág. 43 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.6.3.2 Diagrama de Objetos


El Diagrama de Objetos lo creamos a partir del Diagrama de Clases para instanciar un objeto
determinado, para revisar si este modelo funciona para casos reales. Ver Figura 24.

Usuario Película
Num_usuario : 102 Cod_película : DR0001
Título : Ciudadano Kane
Reserva Título_original : Citizen Kane
Serie : 2005125 Director : Orson Welles
Fecha : 20/07/2005 Pais : USA
Hora : 19 Productor
* Protagonistas : Josph Cotten, Orson Welles
Género : Drama
Año_producción : 1940
Empresa_productora : Mercury Productions
Color : T
1
Duración : 119
Argumento : Es la historia...
Socio Formato : VHS
Ficha_técnica : Título :.....
Cod_socio : AV62
Apellido : Velasquez Santamaria
Apreciación_crítica : Considerada como ....
Nombre : Alvaro Fecha_ingreso : 05/01/2001
Sexo : 1 Precio : 25
Fecha_nac : 30/04/1978 Alquiler : F
Ocupación : Ingeniero Civil
Dirección : 28 de Julio 178
Abono
Télefono : 749741 Serie : 2005125 1
E_mail Num_funciones : 4
Foto : alvarovelsan@yahoo.com Asientos : 12,13,14,15
Fecha_ingreso : 01/04/2003
0..1

1..*

1
Entrada Función
Disponibilidad : T ID_función : 10
Num_asiento : 12 Num_asiento Fecha : 29/07/2005
Fecha : 2 * Hora : 19
1
Hora : 19 Cod_película : DRA0001
Precio : 3 Tipo : Simple

Figura 24: Diagrama de Objetos para el Sistema de administración del Cine Club Orson
Welles. Este diagrama se llama DiagramaClases_Objetos y ha sido construido fuera del modelo
SACCOW, pero se ha incluido como parte del sistema. Muestra una ocurrencia particular.

Mgr. Artidoro Velapatiño Castilla Pág. 44 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.6.4 Diagramas de Comportamiento


1.6.4.1 Diagramas de Actividades
Vamos a construir diagramas de actividades para actividades relevantes en el Sistema de
Administración del Cine Club “Orson Welles”.

) Actividades dentro del paquete Area Cine Club


; Actividad: Ciclo de Cine Dedicado a un Director. Ver Figura 25

Elegir
director

Seleccionar
películas

Programar
ciclo

Preparar fichas técnicas y


Anunciar Adquirir las
apreciaciones críticas de las películas
ciclo películas

Vender Vender
entradas abonos

Proyectar
películas

Realizar
Cine Forums

Figura 25: Diagrama de Actividades para organizar un ciclo dedicado a un director de cine,
en el Sistema de administración del Cine Club Orson Welles. Este diagrama se llama
DiagramaActividad_CicloDirector en el modelo SACCOW.

; Actividad: Cine Forum. Ver Figura 26

Mgr. Artidoro Velapatiño Castilla Pág. 45 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Repartir Ficha técnica a


los usuarios

Presentar brevemente
la película

Proyectar la
pelicula

Abrir debate

Intervenciones Preguntas

Conclusiones

Figura 26: Diagrama de Actividades para organizar un Cine Forum en el Sistema de


administración del Cine Club Orson Welles. Este diagrama se llama
DiagramaActividad_CicloDirector en el modelo SACCOW.

) Actividades dentro del paquete Area Administrativa

; Actividad: Adquisición de una película. Ver Figura 27

Mgr. Artidoro Velapatiño Castilla Pág. 46 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Director Administrador Cajero Proveedor /Donador

Solicitar
película
Revisar
información

[ Rollo ] Solicitar
[ Otro formato ]
alquiler

Solicitar Aprobar
compra adquisición

Pagar
Solicitar
alquiler/compra
donación

Enviar
película

Recepcionar
película

Programar
función

Proyectar
película

[ Alquiler ]
[ Compra/Donación ]
Devolver Pagar envío
Recibir
pelicula película
Almacenar Pasar a
información cinemateca

Figura 27: Diagrama de Actividades con calles para adquisición de una película en el
Sistema de administración del Cine Club Orson Welles. Este diagrama se llama
DiagramaActividad_AdquirirPelícula en el modelo SACCOW.
¡Ejercicio!:
; Construir Diagramas de Actividades para otros procesos relevantes dentro
del Sistema de Administración del Cine Club “Orson Welles”.

Mgr. Artidoro Velapatiño Castilla Pág. 47 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.6.4.2 Diagramas de Estados


Vamos a construir diagramas de estados para cambios de estado relevantes en el Sistema de
Administración del Cine Club “Orson Welles”.

) Estados dentro del paquete Area Administrativa


; Proceso: Reservación y venta de asientos en el cine club. Ver Figura 28

Asignado a Abono

Fuera de tiempo
Asiento Disponible
Reservar Asiento Reservado Asiento Vendido
do/ Reservar
do/ Asignar
Vender
Anular reserva entry/ Reservar do/ Vender
exit/ Asiento asignado exit/ Asiento reservado exit/ Asiento vendido

Intercambiar

Figura 28: Diagrama de Estados para reservación y venta de asientos en el Sistema de


administración del Cine Club Orson Welles. Este diagrama se llama DiagramaEstados_Asientos
en el modelo SACCOW.

; Proceso: Adquisición de películas para el cine club. Ver Figura 29

Solicitando
Solicitar compra Comprando
entry/ Elegir película
do/ Buscar el lista Solicitar donación do/ Comprar película
exit/ Solicitar
Donando
Solicitar alquiler entry/ Datos donador Película comprada
do/ Donar película
Película donada
Alquilando
do/ Alquilar película
Almacenando

Película alquilada do/ Almacenar película

Devolviendo
Película almacenada
do/ Devolver película
Película devuelta

Figura 29: Diagrama de Estados para adquisición de películas en el Sistema de


administración del Cine Club Orson Welles. Este diagrama se llama DiagramaEstados_Adquirir
Películas en el modelo SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 48 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

; Proceso: Pago de abono para el cine club. Ver Figura 30

Abono solicitado
do/ Solicitar abono Pagar cuota[ Cuota<=3 ]

Abono solicitado Abono solicitado

Pagando al Pagando por


contado cuotas
do/ Pagar monto do/ Pagar cuota

^Monto pagado

^Monto pagado
Abono
pagado

Figura 30: Diagrama de Estados para pagar abonos en el Sistema de administración del
Cine Club Orson Welles. Este diagrama se llama DiagramaEstados_PagarAbono en el modelo
SACCOW.

) Estados dentro del paquete Area Cine Club


; Proceso: Ciclo de Cine. Ver Figura 30

Iniciación
do/ Propagandizar Ciclo de Cine
Agregar película

Abierto
Cerrado [ Cuenta= 4/8/12/20 ]
entry/ Proyectar película
do/ Finalizar ciclo exit/ ^PelículaEnLista.AgregarPelícula

Cancelar Cancelar

Cancelado

^PelículaEnLista.Eliminar

Figura 30: Diagrama de Estados para Ciclo de Cine en el Sistema de administración del
Cine Club Orson Welles. Este diagrama se llama DiagramaEstados_CicloCine en el modelo
SACCOW.
Ejercicio!:
; Construir Diagramas de Estados para otros procesos relevantes dentro del
Sistema de Administración del Cine Club “Orson Welles”.

Mgr. Artidoro Velapatiño Castilla Pág. 49 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.6.5 Diagramas de Implantación


1.6.5.1 Diagramas de Componentes
Vamos a construir diagramas de componentes el Sistema de Administración del Cine Club
“Orson Welles”.
; Diagrama de componentes formulario. Ver Figura 31

Aplicación SACCOW.exe

<<Form>>
Identificación de
administrador y contraseña

<<Form>>
Socio

<<Form>>
Editor <<Form>>
Reservas

<<Form>> Acceso a Base


<<Form>> Película de Datos
Principal
<<Form>>
Imágenes <<Form>>
Entradas

<<Form>>
Calculadora BD_SACCOW
<<Form>>
Función

<<Form>>
Calendario <<Form>>
Abonos

Figura 31: Diagrama de Componentes (Formularios) para el Sistema de administración del


Cine Club Orson Welles. Este diagrama se llama DiagramaCompoentes_SACCOW_Formularios
en el modelo SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 50 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

; Diagrama con componentes código y archivos auxiliares. Ver Figura 32

ProyectoSACCOW.cpp UnidadPrincipal.cpp UnidadPrincipal.h

#include
Compilador

ProyectoSACCOW.obj UnidadPrincipal.obj

Enlazador

ProyectoSACCOW.res

ProyectoSACCOW.exe

ProyectoSACCOW.tds

ProyectoSACCOW.bpr

Reportes Intrefaz Ayuda

BD_SACCOW

Figura 32: Diagrama de Componentes (Código) para el Sistema de administración del Cine
Club Orson Welles. Este diagrama se llama DiagramaCompoentes_SACCOW_Código en el
modelo SACCOW.

1.6.5.2 Diagrama de Despliegue


Construimos el Diagrama de Despliegue para el Sistema De Administración del Cine Club
Orson Welles. Ver Figura 33

Mgr. Artidoro Velapatiño Castilla Pág. 51 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

<<Servidor Principal>>
Servidor Sistema de Administración de
PC Pentium IV 3.GHz Cine Club "Orson Welles"

preemptive

SQL Sever 2000


Windows 2003 Server
<<Red local>>

TCP/IP TCP/IP
<<Red local>>

Cliente1: Servidor de Impresión Cliente 2: Taquilla


Administración

manual manual

AdmiCCOW.exe Taquilla.exe
preemptive

Pentium IV 2 GHZ

Impresora HP de Ppentium IV 2
Inyeccón de tinta GHz

Figura 33: Diagrama de Despliegue para el Sistema de administración del Cine Club
Orson Welles. Este diagrama se llama DiagramaCompoentes_SACCOW_Código en el modelo
SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 52 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.7 Implementación del Sistema


1.7.1 Generación de la base de datos en SQL
Server 2000 a partir de diagrama de clases
1.7.1.1 Definición de los identificadores de clase
Para definir los identificadores de clase utilizamos el siguiente cuadro:
Clase Identificador
(Part of Object Indentity )
Eventual ID_usario
Socio Cod_usuario
Reserva Serie
Entrada Num_asiento, Fecha, Hora
Película Cod_película
Función ID_función

1.7.1.2 Declaración de las clases persistentes


Previamente rectificamos los estereotipos de las clases, asignado valor nulo a los estereotipos;
entonces nuestro diagrama de clases toma la forma de la Figura 34.

Usuario Película
Num_usuario : Integer Cod_película : String
Reserva
Título : String
Ingresar() Serie : String
Título_original : String
Anular() Fecha : Date
Director : String
Hora : String
País : String
Productor : String
Ingresar()
Protagonistas : String
Modificar()
Género : String
Borrar()
Año_producción : Integer
Buscar()
Empresa_productora : String
*
Color : Boolean
Duración : Double
Eventual Argumento : Text
ID_usuario : Integer Formato : String
Ficha_técnica : Text
Apreciación_crítica : Text
1 Fecha_ingreso : Date
Socio Precio : Currency
Cod_socio : String Alquiler : Boolean
Apellido : String
1
Nombre : String Ingresar()
Sexo : Boolean Reserva_individual Abono
Modificar()
Fecha_nac : Date Num_asiento : Integer Serie : String Borrar()
Ocupación : String Num_funciones : Integer ...
Dirección : String Asientos : String
Télefono : String 0..1 1
E_mail : String
0..1
Foto : Object
Fecha_ingreso : Date
1 1..*
Ingresar()
Modificar() 4..20 Función
1
Borrar() * Entrada ID_función : Integer
Buscar() Disponibilidad : Boolean Fecha : Date
Imprimir() Num_asiento : Integer Hora : String
Fecha : Date Cod_película : String
Hora : String Tipo : String
Num_asiento

* Precio : Currency * 1
Programar()
Vender() Ingresar()
Intercambiar() Modificar()
Anular() Borrar()
Imprimir()

Figura 34: Diagrama de Clases para el Sistema de administración del Cine Club Orson
Welles. Este diagrama se llama DiagramaClases_SACCOW en el modelo SACCOW.
Mgr. Artidoro Velapatiño Castilla Pág. 53 de 72
Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Luego declaramos todas las clases como persistentes:

Clase Open Specification


(Detail/Persistence: Persistent)
Usuario ~
Eventual ~
Socio ~
Reserva ~
Reserva_individual ~
Abono ~
Entrada ~
Película ~
Función ~

1.7.1.3 Creación de los componentes de Bases de Datos


1.7.1.3.1 Creación de los componentes
Creamos los componentes de la bases de datos:

Componente (Component) Nombre (Name) Destino (Target)


Base de Datos (Database) DB_SACCOW SQL Server 2000.x
Espacio de Tablas (TableSpace) TSP_SACCOW

1.7.1.3.2 Creación del Diagrama de componentes para la BD


Arrastrando estas componentes a Main (renombrado DiagramaComponentes_BD)
obtenemos el diagrama correspondiente. Ver Figura 35.

DB_SACCOW
<<Tablespace>>
TSP_SACCOW

Figura 35: Diagrama de Componentes para la Base de Datos del Sistema de administración
del Cine Club Orson Welles. Este diagrama se llama DiagramaComponentes_DB en el modelo
SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 54 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.7.1.4 Creación del esquema de la Base de Datos


En la sección Área Administrativa creamos el esquema S_0 con los datos siguientes:
Esquema de Destino Base se Datos de Destino Prefijo (Prefix)
(Destination Schema) (Target Database)
S_SACCOW DB_SACCOW Ninguno

Ver Figura 36

Figura 36: Esquema para la base de datos del Sistema de administración del Cine Club
Orson Welles. Este esquema se llama S_SACCOW en el modelo SACCOW.

1.7.1.5 Creación del Diagrama del Modelo de Datos


A partir del esquema S_SACCOW, creamos el diagrama del modelo de datos, arrastrando las
tablas generadas y obtendremos un diagrama semejante a la Figura 37, donde Rational Rose
crea las tablas y les define características estándar para las columnas y asigna las claves
respectivas a cada tabla

Luego, redefinimos las propiedades de cada columna (Nombre, tipo de dato, ancho),
interrelaciones, cardinalidad y obtendremos algo semejante a la Figura 38, de acuerdo a las
características expresadas en el Diccionario de Datos y las siguientes indicaciones para cada
una de las tablas:

Tabla: USUARIO
Columna PK Tipo_dato No nulo Único
Num_usuario INT ; ;
Usuario_ID PK INT ; ;

Mgr. Artidoro Velapatiño Castilla Pág. 55 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Usuario Reserv a Película


Num_usuario : INT Serie : VARCHAR(255) Cod_película : VARCHAR(255)
Usuario_ID : INT Fecha : DATETIME Título : VARCHAR(255)
Hora : VARCHAR(255) Título_original : VARCHAR(255)
<<PK>> PK_Usuario8() Cod_socio : VARCHAR(255) Director : VARCHAR(255)
Usuario_ID : INT País : VARCHAR(255)
1 Productor : VARCHAR(255)
1
<<Identifying>> <<PK>> PK_Reserva0() Protagonistas : VARCHAR(255)
<<FK>> FK_Reserva5() Género : VARCHAR(255)
<<Non-Identifying>> <<Index>> TC_Reserva12() Año_producción : INT
0..* 0..* 1 Empresa_productora : VARCHAR(255)
1
Color : BIT
Socio Duración : FLOAT(64, 0)
<<Identifying>> Argumento : SMALLINT
Cod_socio : VARCHAR(255)
Formato : VARCHAR(255)
Apellido : VARCHAR(255) 1 <<Identifying>>
Ficha_técnica : SMALLINT
<<Identifying>> Nombre : VARCHAR(255)
Apreciación_crítica : SMALLINT
Sexo : BIT
Fecha_ingreso : DATETIME
Fecha_nac : DATETIME
Precio : MONEY
Ocupación : VARCHAR(255)
Alquiler : BIT
Dirección : VARCHAR(255)
Télefono : VARCHAR(255) 0..1
<<PK>> PK_Película4()
E_mail : VARCHAR(255)
Foto : SMALLINT 0..1
1
Fecha_ingreso : DATETIME Abono
Usuario_ID : INT Serie : VARCHAR(255)
Num_funciones : INT Reserv a_indiv idual
<<PK>> PK_Socio7() Asientos : VARCHAR(255) Num_asiento : INT
<<FK>> FK_Socio12() Reserva_Serie : VARCHAR(255) Serie : VARCHAR(255) <<Non-Identifying>>
1
0..* <<Non-Identifying>>
<<PK>> PK_Abono10() <<PK>> PK_Reserva_individual9()
<<FK>> FK_Abono10() <<FK>> FK_Reserva_individual8()
<<Non-Identifying>> 1
1
Ev entual
0..*
ID_usuario : INT 0..* <<Non-Identifying>>
Usuario_ID : INT 1..*

<<PK>> PK_Eventual6() Entrada


<<FK>> FK_Eventual11() 1
<<Non-Identifying>> Disponibilidad : BIT Función
Num_asiento : INT ID_función : INT
Fecha : DATETIME Fecha : DATETIME
0..* Hora : VARCHAR(255) 0..* Hora : VARCHAR(255)
Precio : MONEY Cod_película : VARCHAR(255)
ID_función : INT <<Non-Identifying>>
Tipo : VARCHAR(255)
ID_usuario : INT Película_Cod_película : VARCHAR(255)
Cod_socio : VARCHAR(255) 1
Serie : VARCHAR(255) <<PK>> PK_Función5()
Reserva_Serie : VARCHAR(255) 0..*
<<FK>> FK_Función2()
Usuario_ID : INT <<Index>> TC_Función6()
Socio_Usuario_ID : INT

<<PK>> PK_Entrada3()
<<FK>> FK_Entrada9()
<<FK>> FK_Entrada7()
<<FK>> FK_Entrada6()
<<FK>> FK_Entrada4()
<<FK>> FK_Entrada3()
<<Index>> TC_Entrada14()
<<Index>> TC_Entrada8()
<<Index>> TC_Entrada10()

Figura 37: Diagrama del modelo de datos para el Sistema de administración del Cine Club
Orson Welles. Este diagrama se llama DiagramaModeloDatos_SACCOW en el modelo SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 56 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Tabla: EVENTUAL
Columna PK Tipo_dato No nulo Único
ID_usuario PK INT ; ;
Usuario_ID FK/PK INT ;

Tabla: SOCIO
Columna PK Tipo_dato No nulo Único
Cod_socio PK CHAR(5) ; ;
Apellido VARCHAR(40) ;
Nombre VARCHAR(35) ;
Sexo BIT ;
Fecha_nac DATETIME ;
Ocupación VARCHAR(30)
Dirección VARCHAR(60) ;
Teléfono VARCHAR(10)
E_mail VARCHAR(35)
Foto IMAGE
Fecha_ingreso DATETIME ;
Usuario_ID FK/PK INT ;

Tabla: RESERVA
Columna PK Tipo_dato No nulo Único
Serie PK CHAR(6) ; ;
Fecha DATETIME ;
Hora CHAR(5) ;
Cod_socio FK CHAR(5) ;
Usuario_ID FK INT ;

Tabla: ABONO
Columna PK Tipo_dato No nulo Único
Serie CHAR(6) ; ;
Num_funciones INT ;
Hora CHAR(5) ;
Reserva_Serie FK/PK CHAR(6) ;

Tabla: RESERVA_INDIVIDUAL
Columna PK Tipo_dato No nulo Único
Num_asiento INT ; ;
Serie FK/PK CHAR(6) ;

Tabla: ENTRADA
Columna PK Tipo_dato No nulo Único
Disponibilidad BIT ;
Num_asiento PK INT ;
Fecha PK DATETIME ;
Hora PK CHAR(5) ;
Precio MONEY ;
ID_función FK INT ;
ID_usuario FK INT ;

Mgr. Artidoro Velapatiño Castilla Pág. 57 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Cod_socio FK CHAR(5) ;
Serie FK CHAR(6) ;
Reserva_Serie FK CHAR(6) ;
Usuario_ID FK INT ;
Socio_Usuario FK INT ;

Tabla: PELICULA
Columna PK Tipo_dato No nulo Único
Cod_película PK CHAR(6) ; ;
Título VARCHAR(255) ;
Título_original VARCHAR(255) ;
Director VARCHAR(60) ;
País VARCHAR(30) ;
Productor VARCHAR(60) ;
Protagonistas VARCHAR(80) ;
Género VARCHAR(20) ;
Año_producción INT ;
Empresa_productora VARCHAR(40) ;
Color BIT ;
Duración FLOAT ;
Argumento TEXT
Formato VARCHAR(5) ;
Ficha_técnica TEXT
Apreciación_crítica TEXT
Fecha_ingreso DATETIME
Precio MONEY
Alquiler BIT

Tabla: FUNCION
Columna PK Tipo_dato No nulo Único
ID_función PK INT ; ;
Fecha DATETIME ;
Hora CHAR(5) ;
Tipo VARCHAR(8) ;
Película_Cod CHAR(6) ;

Mgr. Artidoro Velapatiño Castilla Pág. 58 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Usuario Reserva
Num_usuario : INT Película
Serie : CHAR(6)
Usuario_ID : INT Cod_película : CHAR(6)
Fecha : DATETIME
Hora : CHAR(5) Título : VARCHAR(255)
<<PK>> PK_Usuario8() Título_original : VARCHAR(255)
Cod_socio : CHAR(5)
<<Unique>> TC_Usuario21() Director : VARCHAR(60)
Usuario_ID : INT
<<Unique>> TC_Usuario23() País : VARCHAR(30)
<<PK>> PK_Reserva0() Productor : VARCHAR(60)
1 Protagonistas : VARCHAR(80)
1 <<FK>> FK_Reserva5()
<<Identifying>> <<Index>> TC_Reserva12() Género : VARCHAR(20)
<<Unique>> TC_Reserva25() Año_producción : INT
<<Non-Identifying>> 0..* Empresa_productora : VARCHAR(40)
1 1 Color : BIT
0..* Duración : FLOAT(64, 0)
<<Identifying>>
Argumento : SMALLINT
Formato : VARCHAR(5)
Socio
Ficha_técnica : TEXT
Cod_socio : CHAR(5) Apreciación_crítica : TEXT
<<Identifying>>
Apellido : VARCHAR(40) 1 Fecha_ingreso : DATETIME
<<Identifying>> Nombre : VARCHAR(35) Precio : MONEY
Sexo : BIT 0..1 Alquiler : BIT
Fecha_nac : DATETIME Argumento : TEXT
Ocupación : VARCHAR(30)
Dirección : VARCHAR(60) <<PK>> PK_Película4()
Télefono : VARCHAR(10)
Abono
<<Unique>> TC_Película28()
E_mail : VARCHAR(35) Serie : CHAR(6)
Foto : IMAGE Num_funciones : INT 1
Fecha_ingreso : DATETIME Asientos : VARCHAR(60) 0..1
Usuario_ID : INT Reserva_Serie : CHAR(6)
Serie : VARCHAR(255)
<<PK>> PK_Socio7() Asientos : VARCHAR(255)
<<FK>> FK_Socio12() Reserva_individual
<<Unique>> TC_Socio24() <<PK>> PK_Abono10()
<<FK>> FK_Abono10() Num_asiento : INT
1
<<Unique>> TC_Abono26() Serie : VARCHAR(255) <<Non-Identifying>>
0..* <<Unique>> TC_Abono27()
<<Non-Identifying>> <<PK>> PK_Reserva_individual9()
1 <<FK>> FK_Reserva_individual8()
1

Eventual <<Non-Identifying>>
ID_usuario : INT
Usuario_ID : INT <<Non-Identifying>>
0..*
0..* 1..*
<<PK>> PK_Eventual6()
<<FK>> FK_Eventual11()
<<Unique>> TC_Eventual22() 1 Entrada
<<Non-Identifying>> Función
Disponibilidad : BIT
Num_asiento : INT ID_función : INT
Fecha : DATETIME Fecha : DATETIME
0..* Hora : CHAR(5) Hora : CHAR(5)
0..* <<Non-Identifying>> Tipo : VARCHAR(8)
Precio : MONEY
ID_función : INT Película_Cod_película : CHAR(6)
ID_usuario : INT 1
Cod_socio : CHAR(5) <<PK>> PK_Función5()
Serie : VARCHAR(255) <<FK>> FK_Función2()
Reserva_Serie : CHAR(6) 0..* <<Index>> TC_Función6()
Usuario_ID : INT
Socio_Usuario_ID : INT

<<PK>> PK_Entrada3()
<<FK>> FK_Entrada9()
<<FK>> FK_Entrada7()
<<FK>> FK_Entrada6()
<<FK>> FK_Entrada4()
<<FK>> FK_Entrada3()
<<Index>> TC_Entrada14()
<<Index>> TC_Entrada8()
<<Index>> TC_Entrada10()

Figura 38: Diagrama del modelo de datos rectificado para el Sistema de administración del
Cine Club Orson Welles. Este diagrama se llama DiagramaModeloDatos_SACCOW en el modelo
SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 59 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.7.1.6 Generación de la Base de Datos en SQL Server 2000


1.7.1.6.1 Creación de la Base de Datos en SQL Server 2000
Previamente en SQL Server 2000 creamos la base de datos DB_SACCOW en la carpeta adecuada:
D:\ PROYECTO_SACCOW\Base de Datos
A partir del esquema S_SACCOW (Data Modeler /Forward Engineer). Ver Figura 39

Figura 39: Base de Datos DB_SACCOW creada en SQL Server 2000.

1.7.1.6.2 Generación de la Base de Datos en SQL Server 2000


) En Choose Options: Seleccionamos
; Tables y
; Indexes
) En la ventana de Choose to Save and Execute DDL, indicamos el nombre de archivo
donde se guardará el código DDL generado., por ejemplo en File name ingresar:
CodigoGeneradoSACCOW.SQL. Con el botón Browse elegimos la carpeta para guardar:
D:\PROYECTO_SACCOW\ Base de Datos\ CodigoGeneradoSACCOW.SQL
) Marcamos también ; Execute para generar la base de datos en SQL Server, y poner los
datos solicitados
; User Name: sa
; Server: ARTIDORO
; Password:
; Database: DB_SACCOW
Ver Figura 40.

Mgr. Artidoro Velapatiño Castilla Pág. 60 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Figura 40: Generación de la Base de Datos DB_SACCOW.

) Hacemos click en Test Conection y luego Aceptar y obtenemos la base de datos en


SQL Server. Ver Figura 41

Figura 41: Base de Datos DB_SACCOW en SQL Server 2000

) Y cuyo diagrama se muestra en la Figura 42

Figura 42: Diagrama de la Base de Datos DB_SACCOW en SQL Server 2000

Mgr. Artidoro Velapatiño Castilla Pág. 61 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.7.1.7 Aplicación de ingeniería reversa para generar modelos


lógico y físico en ERWIN
Vamos al ERWIN y usamos Ingeniería Reversa (Inversa) para obtener los modelos Lógico
y Físico de la base de datos. Ver Figuras 43 y 44. Guardamos los esquemas de los modelos
lógico y físico con el nombre DB_SACCOW.er1 en ERWIN.
dtproperties
Reserva id
Abono property
Reserva_individual Serie Entrada
Reserva_Serie (FK)
Serie (FK) Num_asiento objectid
Fecha
Num_funciones Fecha value
Hora
Num_asiento Serie Hora Función uvalue
Cod_socio (FK)
Asientos Película lvalue
Usuario_ID (FK) Disponibilidad ID_función
Precio Cod_película version
Fecha
ID_función (FK)
Hora Título
ID_usuario (FK)
Tipo Título_original
Cod_socio (FK)
Cod_película (FK) Director
Serie
País
Reserva_Serie (FK)
Productor
Usuario_ID (FK)
Protagonistas
Socio_Usuario_ID (FK)
Género
Año_producción
Empresa_productora
Color
Duración
Eventual
Formato
Usuario_ID (FK) Ficha_técnica
ID_usuario Apreciación_crítica
Fecha_ingreso
Precio
Alquiler
Argumento

Usuario
Usuario_ID
Num_usuario

Socio
Usuario_ID (FK)
Cod_socio
Apellido
Nombre
Sexo
Fecha_nac
Ocupación
Dirección
Télefono
E_mail
Foto
Fecha_ingreso

Figura 43: Esquema Lógico de la Base de Datos DB_SACCOW en ERWIN 4.1


dtproperties
Reserva id: int
Abono property: varchar(64)
Reserva_individual Serie: char(6) Entrada
Reserva_Serie: char(6)
Serie: char(6) Num_asiento: int objectid: int
Fecha: datetime
Num_funciones: int Fecha: datetime value: varchar(255)
Hora: char(5)
Num_asiento: int Serie: varchar(255) Hora: char(5) Función uvalue: nvarchar(255)
Cod_socio: char(5)
Asientos: varchar(255) Película lvalue: image
Usuario_ID: int Disponibilidad: bit ID_función: int
Precio: money Cod_película: char(6) version: int
Fecha: datetime
ID_función: int
Hora: char(5) Título: varchar(255)
ID_usuario: int
Tipo: varchar(8) Título_original: varchar(255)
Cod_socio: char(5)
Cod_película: char(6) Director: varchar(60)
Serie: varchar(255)
País: varchar(30)
Reserva_Serie: char(6)
Productor: varchar(60)
Usuario_ID: int
Protagonistas: varchar(80)
Socio_Usuario_ID: int
Género: varchar(20)
Año_producción: int
Empresa_productora: varchar(40)
Color: bit
Duración: float
Eventual
Formato: varchar(5)
Usuario_ID: int Ficha_técnica: text
ID_usuario: int Apreciación_crítica: text
Fecha_ingreso: datetime
Precio: money
Alquiler: bit
Argumento: text

Usuario
Usuario_ID: int
Num_usuario: int

Socio
Usuario_ID: int
Cod_socio: char(5)
Apellido: varchar(40)
Nombre: varchar(35)
Sexo: bit
Fecha_nac: datetime
Ocupación: varchar(30)
Dirección: varchar(60)
Télefono: varchar(10)
E_mail: varchar(35)
Foto: image
Fecha_ingreso: datetime

Figura 44: Esquema Físico de la Base de Datos DB_SACCOW en ERWIN 4.1

Mgr. Artidoro Velapatiño Castilla Pág. 62 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

El código generado CodigoGeneradoSACCOW.SQL es:

CREATE TABLE Reserva_individual (


Num_asiento INT NOT NULL,
Serie VARCHAR ( 255 ) NOT NULL,
CONSTRAINT PK_Reserva_individual9 PRIMARY KEY NONCLUSTERED (Serie)
) ON TSP_SACCOW
GO
CREATE TABLE Abono (
Num_funciones INT NOT NULL,
Reserva_Serie CHAR ( 6 ) NOT NULL,
Serie VARCHAR ( 6 ) NOT NULL,
Asientos VARCHAR ( 255 ) NOT NULL,
CONSTRAINT PK_Abono10 PRIMARY KEY NONCLUSTERED (Reserva_Serie),
CONSTRAINT TC_Abono26 UNIQUE NONCLUSTERED (Serie),
CONSTRAINT TC_Abono27 UNIQUE NONCLUSTERED (Num_funciones)
)
GO
CREATE TABLE Socio (
Cod_socio CHAR ( 5 ) NOT NULL,
Apellido VARCHAR ( 40 ) NOT NULL,
Nombre VARCHAR ( 35 ) NOT NULL,
Sexo BIT NOT NULL,
Fecha_nac DATETIME NOT NULL,
Ocupación VARCHAR ( 30 ),
Dirección VARCHAR ( 60 ) NOT NULL,
Teléfono VARCHAR ( 10 ),
E_mail VARCHAR ( 35 ),
Foto IMAGE,
Fecha_ingreso DATETIME NOT NULL,
Usuario_ID INT NOT NULL,
CONSTRAINT PK_Socio7 PRIMARY KEY NONCLUSTERED (Usuario_ID,
Cod_socio),
CONSTRAINT TC_Socio24 UNIQUE NONCLUSTERED (Cod_socio)
)
GO
CREATE TABLE Entrada (
Disponibilidad BIT NOT NULL,
Num_asiento INT NOT NULL,
Fecha DATETIME NOT NULL,
Hora CHAR ( 5 ) NOT NULL,
Precio MONEY NOT NULL,
ID_función INT NOT NULL,
ID_usuario INT NOT NULL,
Cod_socio CHAR ( 5 ) NOT NULL,
Serie VARCHAR ( 255 ) NOT NULL,
Reserva_Serie CHAR ( 6 ) NOT NULL,
Usuario_ID INT NOT NULL,
Socio_Usuario_ID INT NOT NULL,
CONSTRAINT PK_Entrada3 PRIMARY KEY NONCLUSTERED (Num_asiento, Fecha,
Hora)
)
GO
CREATE TABLE Reserva (
Serie CHAR ( 6 ) NOT NULL,
Fecha DATETIME NOT NULL,
Hora CHAR ( 5 ) NOT NULL,
Cod_socio CHAR ( 5 ) NOT NULL,
Usuario_ID INT NOT NULL,
CONSTRAINT TC_Reserva25 UNIQUE NONCLUSTERED (Serie),

Mgr. Artidoro Velapatiño Castilla Pág. 63 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

CONSTRAINT PK_Reserva0 PRIMARY KEY NONCLUSTERED (Serie)


)
GO
CREATE TABLE Eventual (
ID_usuario INT NOT NULL,
Usuario_ID INT NOT NULL,
CONSTRAINT PK_Eventual6 PRIMARY KEY NONCLUSTERED (Usuario_ID,
ID_usuario),
CONSTRAINT TC_Eventual22 UNIQUE NONCLUSTERED (ID_usuario)
)
GO
CREATE TABLE Película (
Cod_película CHAR ( 6 ) NOT NULL,
Título VARCHAR ( 255 ) NOT NULL,
Título_original VARCHAR ( 255 ) NOT NULL,
Director VARCHAR ( 60 ) NOT NULL,
País VARCHAR ( 30 ) NOT NULL,
Productor VARCHAR ( 60 ) NOT NULL,
Protagonistas VARCHAR ( 80 ) NOT NULL,
Género VARCHAR ( 20 ) NOT NULL,
Año_producción INT NOT NULL,
Empresa_productora VARCHAR ( 40 ) NOT NULL,
Color BIT NOT NULL,
Duración FLOAT ( 64 ) NOT NULL,
Formato VARCHAR ( 5 ) NOT NULL,
Ficha_técnica TEXT,
Apreciación_crítica TEXT,
Fecha_ingreso DATETIME,
Precio MONEY,
Alquiler BIT,
Argumento TEXT,
CONSTRAINT PK_Película4 PRIMARY KEY NONCLUSTERED (Cod_película),
CONSTRAINT TC_Película28 UNIQUE NONCLUSTERED (Cod_película)
)
GO
CREATE TABLE Usuario (
Num_usuario INT NOT NULL,
Usuario_ID INT IDENTITY NOT NULL,
CONSTRAINT TC_Usuario21 UNIQUE NONCLUSTERED (Num_usuario),
CONSTRAINT PK_Usuario8 PRIMARY KEY NONCLUSTERED (Usuario_ID),
CONSTRAINT TC_Usuario23 UNIQUE NONCLUSTERED (Usuario_ID)
)
GO
CREATE TABLE Función (
ID_función INT NOT NULL,
Fecha DATETIME NOT NULL,
Hora CHAR ( 5 ) NOT NULL,
Tipo VARCHAR ( 8 ) NOT NULL,
Película_Cod_película CHAR ( 6 ) NOT NULL,
CONSTRAINT PK_Función5 PRIMARY KEY NONCLUSTERED (ID_función)
)
GO
CREATE INDEX TC_Entrada14 ON Entrada (Cod_socio)
GO
CREATE INDEX TC_Entrada8 ON Entrada (ID_función)
GO
CREATE INDEX TC_Entrada10 ON Entrada (ID_usuario)
GO
CREATE INDEX TC_Reserva12 ON Reserva (Cod_socio)
GO

Mgr. Artidoro Velapatiño Castilla Pág. 64 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

CREATE INDEX TC_Función6 ON Función (Película_Cod_película)


GO
ALTER TABLE Reserva_individual ADD CONSTRAINT FK_Reserva_individual8
FOREIGN KEY (Serie) REFERENCES Reserva (Serie)
GO
ALTER TABLE Abono ADD CONSTRAINT FK_Abono10 FOREIGN KEY (Reserva_Serie)
REFERENCES Reserva (Serie)
GO
ALTER TABLE Socio ADD CONSTRAINT FK_Socio12 FOREIGN KEY (Usuario_ID)
REFERENCES Usuario (Usuario_ID)
GO
ALTER TABLE Entrada ADD CONSTRAINT FK_Entrada6 FOREIGN KEY
(Socio_Usuario_ID, Cod_socio) REFERENCES Socio (Usuario_ID, Cod_socio)
GO
ALTER TABLE Entrada ADD CONSTRAINT FK_Entrada4 FOREIGN KEY (Usuario_ID,
ID_usuario) REFERENCES Eventual (Usuario_ID, ID_usuario)
GO
ALTER TABLE Entrada ADD CONSTRAINT FK_Entrada3 FOREIGN KEY (ID_función)
REFERENCES Función (ID_función)
GO
ALTER TABLE Entrada ADD CONSTRAINT FK_Entrada9 FOREIGN KEY (Reserva_Serie)
REFERENCES Abono (Reserva_Serie)
GO
ALTER TABLE Entrada ADD CONSTRAINT FK_Entrada7 FOREIGN KEY (Serie)
REFERENCES Reserva_individual (Serie)
GO
ALTER TABLE Reserva ADD CONSTRAINT FK_Reserva5 FOREIGN KEY (Usuario_ID,
Cod_socio) REFERENCES Socio (Usuario_ID, Cod_socio)
GO
ALTER TABLE Eventual ADD CONSTRAINT FK_Eventual11 FOREIGN KEY (Usuario_ID)
REFERENCES Usuario (Usuario_ID)
GO
ALTER TABLE Función ADD CONSTRAINT FK_Función2 FOREIGN KEY
(Película_Cod_película) REFERENCES Película (Cod_película)
GO

1.7.2 Construcción del prototipo inicial


1.7.2.1 Menú principal básico

Figura 45: Menú Principal del Sistema


Mgr. Artidoro Velapatiño Castilla Pág. 65 de 72
Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Este menú ha sido creado con el componente MainMenu de la página Standard de C++
Builder 6.0

Figura 46: Menú Principal del Sistema

Se ha construido utilizando las siguientes reglas


ƒ Escribiendo los nombre del ítem con la propiedad Caption.
ƒ Resaltando una letra con subrayado escribiendo el símbolo & antes de la letra,
por ejemplo &Archivo para obtener Archivo.
ƒ Usando un guión – para línea separatoria.
ƒ Deshabilitando un ítem del menú poniendo la opción Enabled en false.
ƒ Poniendo teclas de acceso rápido (combinación de teclas) haciendo uso de la
propiedad ShortCut.
ƒ Creando submenús, ubicándose en el ítem respectivo y usando el menú
contextual (botón derecho del ratón) y usando la opción Create Submenu o la
combinación [Ctrl] + [→].

Se tiene los menús e ítems siguientes:


) Archivo: Maneja los ítems: Abrir Editor, Abrir Imagen /Configurar Impresora, Impresora
/Cerrar /Salir.
• Abrir Editor: Abre editor de textos para fichas técnicas, críticas, comentarios sobre
películas y funciones del Cine Club.
• Abrir Imagen: Abre imágenes sobre películas, actores y funciones. Tiene un menú
contextual (PopupMenu) con las opciones: Abrir, Guardar, Guardar como, Cerrar
imagen:
ƒ Abrir: Abre imágenes permitiendo filtrar archivos .bmp, .jpg, .jpeg, .ico,
.emf, .wmf.
ƒ Guardar: Permite guardar imágenes.
ƒ Guardar como: Permite guardar imágenes renombrando los archivos.
ƒ Cerrar imagen: Cierra la ventana de imagen.
• Configurar impresora: Permite configurar la impresora para la opción Imprimir
• Impresora: Imprime textos.
• Cerrar: Cierra la ventana activa.

Mgr. Artidoro Velapatiño Castilla Pág. 66 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

• Salir: Sale del SACCOW


1.7.2.2 Barra de herramientas
La Barra de herramientas tiene la finalidad de acceder rápidamente a las opciones más frecuentes
mediante iconos:

Figura 47: Barra de herramientas

Se ha construido esta barra insertando los siguientes componentes de la página Win32:


01 CoolBar (Contiene la Barra de Herramientas)
01 ToolBar (Insertado dentro de Coolbar1)
01 ImageList (Contiene las imágenes asignadas a los botones de la barra de herramientas
y a los menús)

En la Barra de herramientas (ToolBar), se ha insertado las imágenes:


0 un icono adecuado para Socio.
1 un icono adecuado para Película.
2 un icono adecuado para Función.
3 un icono adecuado para Cortar.
4 un icono adecuado para Copiar.
5 un icono adecuado para Pegar.
6 un icono adecuado para Ayuda.

Figura 48: Barra de herramientas

) Botón1: Socio: Accede a la administración de socios del Cine Club Orson Welles.
) Botón2: Película: Accede a la administración de películas del Cine Club Orson Welles.
) Botón3: Función: Accede a la administración de funciones del Cine Club Orson Welles.
) Botón4: Separador.
) Botón5: Cortar: Corta bloques de texto y los guarda en el Portapapeles de Windows.
) Botón6: Copiar: Copia bloques de texto y los guarda en el Portapapeles de Windows.
) Botón7: Pegar: Pega texto copiado o cortado y que está en el Portapapeles de Windows.
) Botón8: Separador.
) Botón9: Ayuda: Accede a la ayuda HTML del SACCOW.

Mgr. Artidoro Velapatiño Castilla Pág. 67 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

1.7.2.3 Barra de estado


La Barra de estado tiene la finalidad de visualizar dos paneles: 0 para los autores del sistema y l para
mes y año de construcción del sistema:

Figura 49: Barra de herramientas

Se ha construido esta barra insertando el componente de la página Win32:


01 StatusBar (Barra de estado)
Que contiene dos paneles:
) Panel 0: Contiene el grupo de alumnos que ha elaborado el SACCOW.
) Panel 1: Contiene el mes y año de elaboración del SACCOW.

1.7.3 Implantación del visualizador de imágenes

1.8 Conclusiones y Recomendaciones


1.8.1 Conclusiones
) El Análisis y Diseño Orientado a Objetos es una metodología fácilmente aplicable a
Sistemas de Software de diverso tipo. En este caso lo hemos utilizado para el Sistema de
Administración del Cine Club “Orson Welles”.
) El Rational Rose 2003 es una buena herramienta CASE para el análisis y diseño de
sistemas orientados a objetos. No es un simple graficador. Además de permitir la
construcción de todos los diagramas de UML, documentar el sistema, permite generar

Mgr. Artidoro Velapatiño Castilla Pág. 68 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

bases de datos y código.


) El SQL Server 2000 es uno de los mejores SGBDR (Sistema de Gestión de Bases de
Datos Relacionales) que nos permite manejar los datos de un sistema. Actualmente es el
más utilizado por la facilidad que ofrece en las consultas y compatibilidad con lenguajes
de interfaz como Visual Studio.NET, C++ Builder, Power Builder, Delphi.

1.8.2 Recomendaciones para ampliar, mejorar y optimizar el sistema


) Usar el Análisis y Diseño Orientado a Objetos para construir Sistemas de Software
dentro de los dominios de problema como negocios, educación, etc.
) Dar al modelamiento de sistemas su verdadero peso, puesto que el énfasis actual está en
el análisis y diseño antes que en la codificación al usar herramientas de programación
visuales que usan componentes (objetos) predefinidos donde se codifica solo lo
estrictamente necesario.
) Usar el UML como lenguaje de modelamiento orientado a objetos para Sistemas
Orientados a Objetos.
) Usar el Rational Rose 2003 (o posterior versión) como herramienta de modelamiento
para Sistemas Orientados a Objetos. Existen alternativas como Power Designer,
Together, Visual Paradigm, Poseidon.
) Usar el SQL Server 2000 (o posterior versión) como SGBD para Sistemas Orientados a
Objetos, puesto que el uso de SGBDOO (Sistema de Gestión de Bases de Datos Orientado
a Objetos) aun no está difundido ni estandarizado. Otras alternativas son Access, Visual
FoxPro, Interbase, Sybase.
) Usar el C++ Builder 6.0 como lenguaje de interfaz (por ahora sólo para construir el menú
principal del prototipo).
) Puede ampliarse el Sistema de Administración del Cine Club “Orson Welles” a un
Sistema en Arquitectura Cliente /Servidor.
) Debe actualizarse y renovarse la biblioteca del ITEL.
) Debe, en lo posible, adquirirse software original par el ITEL para tener acceso a la
documentación completa y renovación constante de nuevas versiones.
) Los mejores trabajos del curso de Análisis y Diseño Orientado a Objetos I, deben
integrase a la biblioteca del ITEL, como material de consulta.

1.9 Bibliografía y Software


1.9.1 Bibliografía
) Sobre ADOO
ƒ BOOCH, Grady: Análisis y diseño orientado a objetos.
ƒ MARTIN, James; ODELL, James: Análisis y diseño orientado a objetos.
ƒ COAD, Peter; YOURDON, Edward: Object - Oriented Analysis.
ƒ RUMBAUGH, James y Otros: Modelado y diseño orientado a objetos.
ƒ VOSS, Greg: Programación orientada a objetos.

Mgr. Artidoro Velapatiño Castilla Pág. 69 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

ƒ COX, Brad; NOVOBILSKI, Andrew: Programación orientada a objetos.


ƒ BUDD, Timothy: Programación orientada a objetos.
ƒ WINBLAD, Ann; EDWARDS, Samuel KING, David: Software orientado a objetos.

) Sobre UML
ƒ RUMBAUGH, James; JACOBSON, Ivar; BOOCH, Grady: El Lenguaje Unificado de
Modelado: Manual de Referencia.
ƒ RUMBAUGH, James; JACOBSON, Ivar; BOOCH, Grady: El Proceso Unificado de
Desarrollo del Software.
ƒ LARMAN, Craig: UML y patrones: Introducción al análisis y diseño orientado a
objetos.
ƒ FOWLER, Martin; SCOTT, Kendall: UML gota a gota.
ƒ RAMIREZ CORRALES, Luis Eduardo: Aplicando Herramientas UML.
ƒ ROMERO MORENO, Gesvin: UML con Rational Rose.

) Sobre Rational Rose


ƒ CONALLEN, Jim: Visual Modeling with Rational Rose and UML.
ƒ QUATRIANI, Terry: Visual modeling with Rational Rose 2002 and UML.
ƒ BOGGS, W: Mastering UML with Rational Rose 2002 + CD,

) Sobre SQL Server


ƒ RAMIREZ, Eduardo: Aplicando SQL Server 2000.
ƒ ABURTO CORREA, Eddy Blaider; PANTIGOSO SILVA, Robert Jaime: Base de Datos
con SQL Server 2000 Paso a Paso.
ƒ CORONEL, Gustavo: Diseño de Aplicaciones Cliente Servidor con Erwin 3.5, SQL
Server 2000 y Power Builder 7.0.
ƒ GROFT, James R.; WEINBERG, Paul N.: Aplique SQL.
ƒ COFFMAN, Gayle: SQL Server 7: Manual de Referencia.
ƒ SOUKUP, Ron: Microsoft SQL Server A fondo.
ƒ BUSTAMANTE GUTIERREZ, César A.: Aplicaciones Cliente Servidor con Visual
FoxPro 6.0 y SQL Server 2000.
ƒ BESCH, David y colaboradores: SQL Server 7 Database Design.
ƒ RUMBAUGH, James; JACOBSON, Ivar; BOOCH, Grady: El Lenguaje Unificado de Modelado:
Manual de Referencia.

) Sobre C++ Builder


ƒ JOYANES AGUILAR, Luis: Borland C++ Builder 5. Programación orientada a objetos.
ƒ ARNUSH, Craig: Aprendiendo Borland C++ 5.0 en 21 días.
ƒ REISDORF, Kent: Aprendiendo Borland C++ Builder 3.0 en 21 días.
ƒ CHARTE OJEDA, Francisco: Programación con C++ Builder 5.0
ƒ MARTEENS. Ian: La Cara Oculta del C++ Builder (Formato PDF en Internet)

) Sitios Web
ƒ http://dis.um.es/~jnicolas/08BD_CSW.html
ƒ http://www.marteens.com/CaraOculta.htm
ƒ http://www.dsic.upv.es/~uml
ƒ http://www.clikear.com/manuales/uml/
ƒ http://www.tic.udc.es/~fbellas/teaching/adoo/
ƒ http://www.dsic.upv.es/asignaturas/facultad/lsi/ejemplorup/
ƒ http://edic.lsi.uniovi.es/isoft_sistemas/recursos/recursos.html
ƒ http://www.omg.org/technology/documents/formal/uml.htm
ƒ http://www.omg.org
ƒ http://www.rational.com

Mgr. Artidoro Velapatiño Castilla Pág. 70 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

ƒ http://www.rational.com/uml
ƒ http://www.rational.com/products/rose
ƒ http://www.javasoft.com

1.9.2 Software
ƒ Rational Rose 2003 Enterprise Edition.
ƒ Borland C++ Builder 6.0
ƒ MS SQL Server 2000 Personal Edition.
ƒ CA Erwin 4.1.
ƒ MS Word 2003.

Mgr. Artidoro Velapatiño Castilla Pág. 71 de 72


Universidad Nacional Jorge Basadre Grohmann
Carrera Técnica de Analista Programador de Sistemas
Curso: Análisis y Diseño Orientado a Objetos I

Mgr. Artidoro Velapatiño Castilla Pág. 72 de 72

Potrebbero piacerti anche