Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sistema de
Administración del
Cine Club Orson
Welles
(SACCOW)
Análisis y Diseño
Tacna, marzo del 2009
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
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.
1.4.3 Autores:
Grupo Tákana:
2710890 VASQUEZ MOLLO, Virginia.
2710895 MOLINA CACERES, Juan José.
2710899 RIOS LOPEZ, Cecilia Ana.
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.
) 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
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.
<<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.
En primer lugar identificamos a los actores que interactúan con el sistema SACCOW: Usuario, Cajero,
Director y Administrador. Ver Figura 2
Director
Usuario Cajero
Administrador
Figura 2: SACCOW con 4 actores que interactúan con él. Este diagrama se llama DiagramaContexto
en el modelo SACCOW.
Reservar entradas
Cobrar
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?
Reservar entradas
<<realize>> <<realize>>
Imprimir
<<include>>
<<extend>> <<extend>>
<<include>> <<include>>
Imprimir entradas Imprimir abonos
<<communicate>>
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
Ingresar socios Modificar socios Eliminar socios Imprimir socios Buscar socios
<<extend>> <<extend>>
<<include>>
<<include>>
Imprimir
(f rom Taquilla)
Administrar películas
<<include>> <<include>>
Ingresar películas Modificar películas Eliminar películas Imprimir ficha técnica Buscar películas
<<extend>>
<<extend>>
<<extend>>
<<include>>
Imprimir
(f rom Taquilla)
Administrar funciones
<<include>> <<include>> <<include>>
<<include>> <<include>>
<<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.
Usuario
<<include>>
<<include>>
(from Use Case View)
<<include>>
Imprimir Cobrar
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.
Administrar socios
Búsqueda individual
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>>
<<include>>
Búsqueda grupal
<<extend>>
Eliminar funciones Buscar funciones
Programar calendario Ingresar funciones Modificar funciones
Búsqueda grupal
<<include>>
¡Ejercicio!:
; Para el subsistema Ayuda construir el Diagrama de Casos de Uso final
DiagramaCU_Ayuda que contenga todos los CU, Actores y relaciones
existentes
¡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
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.
¡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.
¡Ejercicio!:
Socio desea
reservar entradas
Cajero verifica
datos de socio
[ Es eventual ] [ Es socio ]
[ Hizo reserva ]
Compra entrada y
paga precio normal
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
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.
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.
Figura 13: Menús del SISTEMA de ADMINISTRACION del CINE CLUB ORSON WELLES
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.
a : Asiento
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
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
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
Figura 15: Diagrama de Secuencia para el CU Comprar entradas para el subsistema Taquilla de
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
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.
8: Cancela reservas
6: Confirma reservas
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
1: Solicita entradas
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.
1: Solicita abonos
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.
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.
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.
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.
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.
) 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.
) Clases Candidatas:
Película, Función, Usuario, Eventual, Socio, Cajero, Administrador, Empleado, Director,
Reserva, Entrada, Entrada_individual.
) 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.
) Las clases depuradas con sus atributos y operaciones son las siguientes: Ver Figura 20
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.
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.
Reserva
Usuario
Figura 22: Relaciones de Generalización (Herencia) entre las clases para el Sistema de
administración del Cine Club Orson Welles.
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.
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.
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.
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.
Elegir
director
Seleccionar
películas
Programar
ciclo
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.
Presentar brevemente
la película
Proyectar la
pelicula
Abrir debate
Intervenciones Preguntas
Conclusiones
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”.
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
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
Devolviendo
Película almacenada
do/ Devolver película
Película devuelta
Abono solicitado
do/ Solicitar abono Pagar cuota[ Cuota<=3 ]
^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.
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”.
Aplicación SACCOW.exe
<<Form>>
Identificación de
administrador y contraseña
<<Form>>
Socio
<<Form>>
Editor <<Form>>
Reservas
<<Form>>
Calculadora BD_SACCOW
<<Form>>
Función
<<Form>>
Calendario <<Form>>
Abonos
#include
Compilador
ProyectoSACCOW.obj UnidadPrincipal.obj
Enlazador
ProyectoSACCOW.res
ProyectoSACCOW.exe
ProyectoSACCOW.tds
ProyectoSACCOW.bpr
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.
<<Servidor Principal>>
Servidor Sistema de Administración de
PC Pentium IV 3.GHz Cine Club "Orson Welles"
preemptive
TCP/IP TCP/IP
<<Red local>>
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.
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
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.
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.
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 ; ;
<<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.
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 ;
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) ;
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.
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
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
Este menú ha sido creado con el componente MainMenu de la página Standard de C++
Builder 6.0
) 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.
) 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.
) 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
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.