Presentado por:
Grupo 301403_33
Tutor:
Cesar Orlando Jiménez Angarita
Página 1
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Tabla de Contenidos
Capítulo 1 Introducción
Capítulo 2 Objetivos
2.1 Objetivos Generales
2.2 Objetivos Específicos
Capítulo 3 Justificación
3.1 Justificación Metodológica
3.2 Justificación Práctica
3.3 Justificación Innovativa
3.4 Justificación Profesional
Capítulo 4 Metodología
4.1 Tipo de Metodología
4.2 Metodología de Investigación
Página 2
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
5.5.1 Aplicaciones
5.5.2 Applets
Página 3
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 4
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 5
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Capítulo 11 Conclusiones
Capítulo 12 Recomendaciones
Capítulo 13 Bibliográficas
Página 6
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Capítulo 1 Introducción
La programación orientada a objetos (POO) es una forma de programación en computadoras que tiene
surge los años 70. Se diferencia de la programación clásica o estructurada en que las instrucciones hacen
referencia a los elementos del entorno. Esos elementos representan "objetos"; y todos los datos y todas las
acciones que se hagan con ellos o sobre ellos, están encapsuladas u ocultas en el objeto. Teniendo en
cuenta estos conceptos para la elaboración de este proyecto que se basa en la elaboración de un sistema de
información para reservar habitaciones en un hotel, se hará énfasis en el modelo de requisitos y su
posterior análisis, que permitirán la fácil ejecución e implementación del sistema como tal.
Para realizar el modelo de requisitos hay que tener en claro el planteamiento del problema que en este
caso pretende mostrar las deficiencias que existen en el ingreso del personal visitante en días de visita,
quienes deben soportar varias horas de espera, seguidamente debe elaborarse los modelos e identificar los
actores que interactuaran con el sistema y por último se hará un análisis.
Página 7
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Capítulo 2 Objetivos
Capítulo 3 Justificación
Capítulo 4 Metodología
Java, el lenguaje orientado a objetos diseñado para ser multiplataforma y poder ser empleado el
mismo programa en diversos sistemas operativos.
Esta característica junto con la posibilidad de emplearlo para crear applets e insertarlos en
páginas HTML, o mediante servlets y páginas jsp generar código HTML dinámico. Todo ello con
la capacidad de acceder a bases de datos1.
5.1.1 Características
1
http://www.mundojava.net/
Página 8
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
5.1.2 Procesamiento
5.1.3 Bibliotecas
La programación orientada a Objetos básicamente define una serie de conceptos y técnicas de programación para
representar acciones o cosas de la vida real basada en objetos, a diferencia de otras formas de programación como
por ejemplo la estructurada, con la POO se trabaja de manera distinta vinculando diferentes conceptos tales como
clases, objetos, métodos, propiedades, estados, herencia, encapsulación entre otros, generando cada vez
interrelaciones en nuestro desarrollo en pro del funcionamiento del sistema principal, definiendo el programa como
un conjunto de estos objetos relacionados entre sí2.
Clase: s simplemente una abstracción que hacemos de nuestra experiencia sensible. El ser humano tiende a agrupar
seres o cosas.
Objeto: es una abstracción de algo en el dominio del problema, que refleja las capacidades de un sistema de
almacenar información acerca de ello, interactuar con ello o ambas
Herencia: Esta es la cualidad más importante de un sistema OOP, la que dará mayor potencia y productividad,
permitiendo ahorrar horas y horas de codificación y de depuración de errores, además permite reutilizar todo el
código escrito para las superclases reescribiendo solo aquellas diferencias que existan entre éstas y las subclases.
Encapsulación: Se refiere a la capacidad de agrupar y condensar en un entorno con límites bien-definidos distintos
elementos. Cuando hablemos de encapsulación en general siempre nos referiremos, pues, a encapsulación abstracta.
De manera informal, primero generalizamos (la abstracción) y luego decimos: la generalización está bien, pero
dentro de un cierto orden: hay que poner límites (la encapsulación), y dentro de esos límites vamos a meter, a saco,
todo lo relacionado con lo abstraído: no sólo datos, sino también métodos, comportamientos, etc.
Polimorfismo: aquella cualidad que poseen los objetos para responder de distinto modo ante el mismo mensaje
5.3.1.ARCHIVOS
5.3.2 BASES DE DATOS
5.3.3 EXCEPCIONES
5.3.4 CÓDIGO NATIVO
5.3.5 SINCRONIZACIÓN
5.3.6 SERIALIZACIÓN
5.6.7 FINALIZADOR
2
http://codejavu.blogspot.com.co/2013/05/conceptos-de-programacion-orientada.html
Página 9
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
UML: el lenguaje de modelamiento unificado es como lo dice un lenguaje grafico el cual permite visualizar,
especificar y documentar cada una de las partes que comprende el desarrollo de software. Este permite modelar
conceptualmente los procesos y funciones del sistema, y determina las clases y el esquema de base de datos. También
se relaciona con java.
La interfaz gráfica de usuario, conocida también como GUI (del inglés graphical user interface) es un programa
informático que actúa deinterfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar
la información y acciones disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual
sencillo para permitir la comunicación con el sistema operativo de una máquina o computador 3.
Tipos:
Modo de consola
Interacción mediante teclado
Interfaz basado en texto
Aplicaciones con interfaz gráfica (GUI)
Ventanas gráficas para entrada y salida de datos
Iconos
Dispositivos de entrada (p.ej. ratón, teclado)
Interacción directa Applets
Pequeñas aplicaciones que se ejecutan dentro de un navegador (o en el visualizador de applets
(Appletviewer)
Interfaz gráfica
Limitaciones por motivos de seguridad
Página 10
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
El dueño de un hotel le pide a usted desarrollar un programa para consultar sobre las piezas disponibles y
reservar piezas de su hotel.
El hotel posee tres tipos de piezas: simple, doble y matrimonial, y dos tipos de clientes: habituales y
esporádicos y comodidades (frigobar, TV, y DVD). Una reservación almacena datos del cliente, de la
pieza reservada, la fecha de comienzo y el número de días que será ocupada la pieza.
El hotel posee información sobre cuales clientes son habituales. Esta estructura puede manejarla con un
diccionario, cuya clave sea el número de RUT y como significado tenga los datos personales del cliente.
El diseño a desarrollar debe facilitar la extensibilidad de nuevos tipos de pieza o clientes y a su vez
permitir agregar nuevas consultas.
6.2.1 Actores
Página 11
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
6.2.3 Documentación
Página 12
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 13
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 14
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
6.4.1 Actores
Actor Recepcionista
Casos de Uso Reservar Pieza, Eliminar Reserva, imprimir Listado piezas, consultar precio
pieza, consultar precio cliente, dibujar foto pieza, consultar descuento
cliente.
Tipo Primario.
Descripción Representa un trabajador del hotel que maneja las reservas de piezas.
Página 15
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Actor Administrador
Casos de Uso Cambiar descuento cliente, calcular ganancia, cambiar precio pieza.
Tipo Primario.
Descripción Representa a aquella persona que tiene permitido hacer modificaciones a la
información de las piezas.
Clases Identificadas
Habitación
Tipo habitación
Comodidad
Reserva
Cliente
Descuento
Clases Atributos
Habitacion Nro_Habitacion, Cod_Comodidad, Precio_Habitacion
Tipo_habitacion Cod_tipo, Descripcion_Tipo, Precio_Tipo, Foto
Comodidad Cod_Comodidad, Descrip_Comodidad, Precio_Comodidad
Reserva Nro_Habitacion, Fecha_Desde, Fecha Hasta, Precio Total.
Cliente Nro_Doc_Cliente, Nombre_Cliente, Tipo_Cliente
Descuento Cod_Descuento, Descuento.
Página 16
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Reserva: Para poder hospedarse en el hotel, es necesario contar con una reserva previa, para conocer el
número de la habitación, el tipo de habitación y el tiempo que va a estar hospedado. Una persona puede
hacer reserva de varias habitaciones. Para realizar la reserva esta la persona debe estar registrada.
Habitación: se denomina por medio de un número. La habitación tiene como atributos el tipo de
habitación, la acomodación, el precio y cantidad de días reservados. Una habitación puede ser reservada
varias veces y en diferentes días a la semana. La habitación pertenece al hotel y puede estar disponible
según las reservas
Página 17
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
La arquitectura para el modelo de análisis se basa en tres características de correspondientes a las tres
dimensiones (Entidad, Control y Borde), este modelo tiene como objetivo generar una arquitectura de
objetos que sirve como base para el diseño del sistema.
Control: Corresponde a la información en línea, aquí se pueden generar los informes periódicos para
sacar las estadísticas del servicio de habitación.
Borde: Corresponde a la alimentación de información del sistema de habitación, allí se registran las
novedades y se realizan las modificaciones a las que haya lugar, Ejemplo cambio de tarifas, disponibilidad
de habitaciones.
En el desarrollo del modelo de análisis para cada caso de uso se identifican los objetos necesarios para su
implementación. Se identifican estos objetos según sus estereotipos para corresponder a la funcionalidad
ofrecida en cada caso de uso.:
Página 18
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Se deben identificar los objetos necesarios para implementar todos los casos de uso. La arquitectura de
objetos debe considerar los tres tipos de estereotipos
7.2.1 Borde
Página 19
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
7.2.2 Entidad
Página 20
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
7.2.3 Control
Página 21
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Reserva Habitación
Página 22
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Cancelar Reservas
Página 23
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Tomado de:
http://osl2.uca.es/wikiIW/index.php/MAXIMUS#Sprint_3:_Cancelar_reserva._8.2FJunio.2F2011
Página 24
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
8.1.1 Arquitectura
Asegurar la integralidad es crear un Control en las clases, mediante manejadores (manejo) para cada caso
de uso. Con esto evitamos que se haga un cambio o modificación, en ese caso de uso, que pueda afectar el
funcionamiento, de toda la aplicación
8.1.2 Robustez
La aplicación de reserva de piezas, es segura a prueba de usuarios, ya que tenemos jerarquías de Actores,
lo cual, delimita el acceso, a zonas del programa.
• Las mayorías de los datos, son Declarados de tipo String, con el fin de evitar errores, debido a que
muchos usuarios mezclan caracteres especiales, para separar, letras y/o números.
• Así mismo, implementar al código el ciclo PHVA (Planificar, Hacer, Verificar y Actuar), con el fin de
encontrar una mejora continua a nuestro aplicativo, siempre, se puede mejorar, para cubrir más
necesidades, al igual que se puede verificar con el objetivo de prevenir daños.
• Crear mensajes de alertas, cuando se ingresen datos no correspondientes, a lo que piden cada campo.
8.1.3 Reusó
El reúso se ve reflejado en la herencia que haremos en ciertas clases, como lo es la clase Datos Personas.
Cuyos atributos, pueden ser usados por Paciente, y administradores.
8.1.4 Extensibilidad
Otro aspecto a tener en cuenta en la eficiencia del sistema es que este sea extendido, es decir, que le
permita al usuario ser general. Para conseguir esto en el sistema de reservas, se puede:
Página 25
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Los aspectos a resolver es determina como las clases, atributos y asociaciones del modelo de análisis
deben de implementarse en la estructura de datos, es necesario precisar si se requiere incluir nuevas clases
en el modelo de diseño, también es necesario determinar los algoritmos para implementar las
operaciones.
Para el diseño de objetos se seguirá el diseño por responsabilidad (RDD- Responsability Driven Design)
el diseño RDD se basa en el modelo Cliente-Servidor donde las clases se ven como clientes cuando
generan una petición hacia otra clase y como servidor cuando reciben peticiones de otras clases. Una
misma clase se ve en diferentes momentos como cliente o servidor.
Interface Usuario
Manejador Principal
Página 26
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
REGISTRO USUARIO
REGISTRO DE USUARIO.
MANEJADOR SERVICIOS.
Página 27
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
8.2.2 Responsabilidades
Validar usuarios
Flujo Principal Manejador Principal Solicita desplegar Pantalla Principal a la interface usuario.
La Interface Usuario Despliega la Pantalla Principal. La Pantalla se despliega.
El Usuario selecciona entre las siguientes opciones “Registrarse por primera
Vez”, “OK” y “Salir”.
Si la actividad seleccionada es “Registrase por Primera Vez”, La Pantalla
Principal envía el evento “Registrase por Primera Vez” a la Interface Usuario.
La Interface Usuario envía el evento “Registrase por Primera Vez” al
Manejador Principal. El Manejador Principal solicita “Registrar” al Manejador
Registro Usuario.
Se ejecuta el caso de uso Registrar Usuario Sub flujo Registrar Usuario (S-1).
Si la actividad seleccionada es “OK” se valida el Registro Usuario, mediante
un Login y Password insertados por el Usuario en la Pantalla Principal. La
Pantalla Principal envía el evento “OK” a la Interface Usuario. La Interface
Usuario envía el evento “OK” al manejador Principal. El Manejador Principal
solicita validar Registro Usuario al Manejador Registro Usuario. El Manejador
Registro Usuario solicita validar al Registro Usuario a la Base Datos Registro.
La Base Datos Registro valida el Usuario y devuelve el OK a la Interface Base
Datos Registro. La Interface Datos registro devuelve el OK al Manejador
Registro Usuario. El Manejador Registro Usuario devuelve OK al Manejador
Principal. Una vez validado el Usuario el Manejador Principal Solicita Ofrecer
Servicio al Manejador Servicio. Se continúa con el caso de uso obtener
servicios.
Si la actividad es “Salir”, La Pantalla Principal envía el evento “Salir” a la
Interface Usuario. La Interface Usuario envía el evento “Salir” al Manejador
Principal. El Manejador Principal sale del sistema.
INTERFACE USUARIO.
Responsabilidades asignadas teniendo en cuenta ofrece servicio, valida usuario. Registra usuario.
Página 28
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Descripción: Toda la interacción con el usuario se hace por medio de la interface de usuario
Modulo : Interface Usuario
Estereotipo: Borde
Atributos:
Solicita Ir a la pantalla Principal a la interface de Usuario
Envía el evento “Registrase por primera vez” al Manejador
Principal
Envía el evento “OK” al Manejador Principal
Envía el evento “Salir” al Manejador Principal
Solicitar ir a la pantalla de Servicio
Envía el evento “Obtener Registro” al Manejador de Servicio
Envía el evento “Salir” al Manejador de Servicio
Solicita ir a la pantalla de crear Registro de Usuario
Remite el evento “Registrar” al Manejador Registro Usuario
Envía el evento “Salir” al Manejador de Usuario
Solicitar ir a la Pantalla Obtener Registro Usuario
Envía el evento “Servicios” al Manejador Registro de Usuario
Envía el Evento “Actualizar” al Manejador Registro de
Usuario
Envía el Evento “Eliminar” al Manejador Registro de Usuario
MANEJADOR PRINCIPAL.
Responsabilidades asignadas teniendo en cuenta ofrece servicio, valida usuario. Registra usuario.
Clase: Manejador Principal
Descripción: El manejador Principal es el encargado de desplegar la pantalla principal de
interacción con el usuario, y luego delegar las diferentes funciones a los manejadores especializados
apropiados.
Modulo: Principal
Estereotipos: Control
Atributos:
Solicita Desplegar Pantalla Principal a la Interface Usuario
Ejecuta el evento “Registrase por Primera Vez”
Solicita crear Registro Usuario al Manejador Registro Usuario
Opera el evento “OK”
Solicita validar Registro Usuario al Manejador Registro
Usuario
Solicita ofrecer Servicio al Manejador Servicio
Opera el evento “Salir”
Abandona Sistema
Página 29
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Responsabilidades asignadas teniendo en cuenta ofrece servicio, valida usuario. Registra usuario.
REGISTRO DE USUARIO.
Clase: Registro de Usuario
Descripción: Para utilizar el sistema de consultas de reservación y cancelación de habitaciones, el
usuario debe estar registrado en el sistema. El registro debe tener información acerca del usuario
que incluye nombre, documento, dirección, ciudad, país, celular, email, usuario y contraseña
Modulo: Registro Usuario
Página 30
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Estereotipo: Entidad
Atributo:
MANEJADOR SERVICIOS.
Clase: Manejador Servicios
Descripción: El manejador de servicios se encarga de enviar las peticiones particulares de servicios
a los manejadores especializados para la consulta de solicitud y cancelación de citas
Modulo: Servicios
Estereotipos: Control
Atributos:
Ofrecer Servicio
Solicitar desplegar Pantalla Servicio a la Interface Usuario
Maneja el evento “Obtener Registro”
Solicita Registrar al Manejador Registro Usuario
Maneja el Evento “Salir”
Abandona el Sistema.
PANTALLA DE SERVICIOS.
Clase: Pantalla Servicio
Descripción: Pantalla de Servicios
Modulo: Servicios
Estereotipo: Borde
Atributos:
Despliega
Envía el evento “Obtener Registro” a la Interface Usuario.
Envía el Evento “Salir” a la interface Usuario.
Página 31
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
8.2.3 Colaboraciones
INTERFACE DE USUARIO
Clase: interfaceUsuario
Descripción: Toda la interacción con el usuario se hace por medio de la interface de usuario
Modulo : Interface Usuario
Estereotipo: Borde
Atributos:
Solicita Ir Pantalla Principal
Envía el evento “Registrase por primera vez” Manejador Principal
Envía el evento “OK” Manejador Principal
Envía el evento “Salir” Manejador Principal
Solicitar ir Pantalla de Servicio
Envía el evento “Obtener Registro” Manejador de Servicio
Envía el evento “Salir” Manejador de Servicio
Solicita ir crear Registro de Usuario
Remite el evento “Registrar” Manejador Registro Usuario
Envía el evento “Salir” Manejador de Usuario
Solicitar ir Pantalla Obtener Registro Usuario
Envía el evento “Servicios” Manejador Registro de Usuario
Envía el Evento “Actualizar” Manejador Registro de Usuario
Envía el Evento “Eliminar” Manejador Registro de Usuario
MANEJADOR PRINCIPAL
Página 32
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 33
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
MANEJADOR SERVICIOS.
PANTALLA DE SERVICIOS.
8.2.4 Jerarquías
INTERFACEUSUARIO
Página 34
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Grupo de responsabilidades y colaboraciones para la clase interfaceUsuario con dos nuevas super
clases: Pantalla y Manejador
Solicita ir… Pantalla: PantallaPrincipal, PantallaServicio, PantallaRegistroUsuario,
PantallaObtenerRegistroUsuario
Envía el evento… Manejador: ManejadorPrincipal, ManejadorServicio,
ManejadorRegistroUsuario
Clase: interfaceUsuario
Descripción: Toda la interacción con el usuario se hace por medio de la interface de usuario
Modulo : Interface Usuario
Estereotipo: Borde
Atributos:
Solicita ir… Pantalla: PantallaPrincipal, PantallaServicio, PantallaRegistroUsuario,
PantallaObtenerRegistroUsuario
Envía el evento… Manejador: ManejadorPrincipal, ManejadorServicio,
ManejadorRegistroUsuario
8.2.5 Contratos
Mecanismo que consiste en realizar una agrupación de las responsabilidades, siendo un indicador de los
distintos servicios.
INTERFACE DE USUARIO
Página 35
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
PRINCIPAL
En la principal encontramos un evento el cual lo dirige a una pantalla donde ofrecerás el servicio. Tendrá
la opción de ingresar al servicio o simplemente salir, en este evento no encontramos más ítems.
Clase: Manejador
Descripción: superclase heredada por todos los manejadores del sistema.
Modulo: Principal
Estereotipo: Control
Propiedades: Abstracta
Superclases:
Subclases: Manejador Principal, Manejador Servicio, Manejador Registro Usuario,
Atributos:
Página 36
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Contratos
Manejar Evento
Manejar Evento
Responsabilidades Privadas
Desplegar Pantalla
Manejar Evento Ofrecer Servicio
Ofrecer Servicio
Manejar Evento Salir
Salir.
Contratos
1. Desplegar Pantalla Pantalla (1): Pantalla Principal (1), Pantalla
desplegar Pantalla Servicio (1),
Pantalla Crear Registro usuario (1), Pantalla
Obtener Registro Usuario (1),
Clase: Datos
Descripción: superclase para todas las clases entidad.
Modulo: Dominio
Estereotipo: Entidad
Propiedades: Abstracta
Superclases:
Subclases: Registro Usuario
Página 37
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
SERVICIO.
8.2.6 Subsistemas
Según los casos de uso las clases se pueden distribuir en dos subsistemas. El primero corresponde al
registro de los huespedes el cual se llamará Subsistema registro y el segundo contendrá las clases que
sirven de soporte para ofrecer algún servicio, este se llamara subsistema servicio. Adicionalmente se crea
un subsistema para contener la clase Interface Usuario y uno para la clase Manejador Principal, las cuales
brindan soporte para servicios internos y no se pueden catalogar dentro de los subsistemas determinados
inicialmente.
Página 38
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Subsistema Registro
Tarjeta para subsistemas
Subsistema: SubsistemaRegistro
Página 39
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Descripción: En este subsistema están reunidos los objetos encargados del registro de un
paciente.
Clases: ManejadorRegistroUsuario, InterfaseBaseDeDatosRegistro,
1. Manejar evento RegistroUsuario (1)
2. Registrar usuario RegistroUsuario (2)
Subsistema Servicios
La capacidad de una clase para ocultar su implantación se conoce como encapsulamiento. Al ocultar, se
implica que un atributo o método no queda disponible o es manipulable por ciertas clases En lenguajes
como Java, existen cuatro maneras de calificar a un atributo o método:
Privado. El elemento sólo es accesado por objetos de la misma clase que lo contiene (Simbolizado en
UML con un -)
Público. El elemento es manipulado por cualquier clase. En UML se simboliza con un +.
Página 40
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Por ultimo también se hará uso de los tipos u objetos primitivos de java como int, float, boolean, y objetos
con tipos predefinidos en Java, como String, Vector.
El Diagrama de Clase se puede usar para modelar la estructura lógica de la base de datos,
independientemente de si es orientada a objetos o relacional, con clases representando tablas, y atributos
Página 41
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
En esta fase del diseño del sistema, se procede a realizar una revisión, con el fin de que se optimice el
diseño y buscar las posibles redundancias, con el fin de eliminarlas y así hacer eficaz el sistema
Página 42
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 43
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 44
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 45
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 46
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 47
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 48
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 49
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Clase: interfaceUsuario
Descripción: Toda la interacción con el usuario se hace por medio de la interface de usuario
Modulo : Interface Usuario
Estereotipo: Borde
Atributos:
Solicita Ir Pantalla Principal
Envía el evento “Registrase por primera vez” Manejador Principal
Envía el evento “OK” Manejador Principal
Envía el evento “Salir” Manejador Principal
Solicitar ir Pantalla de Servicio
Envía el evento “Obtener Registro” Manejador de Servicio
Envía el evento “Salir” Manejador de Servicio
Solicita ir crear Registro de Usuario
Remite el evento “Registrar” Manejador Registro Usuario
Envía el evento “Salir” Manejador de Usuario
Solicitar ir Pantalla Obtener Registro Usuario
Envía el evento “Servicios” Manejador Registro de Usuario
Envía el Evento “Actualizar” Manejador Registro de Usuario
Envía el Evento “Eliminar” Manejador Registro de Usuario
Página 50
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
System.exit(O);
if (manejador != null)
if (pantalla != null)
pantalla.borrarPantallaQ;
if (p != null)
pantalla = p;
if (pantalla != null)
pantal1 a.desplegarPantal1a();
show();
setSize(800,600);
setBackground(Color.lightGray);
manejador = m;
9.1.2 Principal
Página 51
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Modulo: Principal
Estereotipos: Control
Atributos:
Solicita Desplegar Pantalla Principal Interface Usuario
Ejecuta el evento “Registrase por Primera Vez” Interface Usuario
Solicita crear Registro Usuario Manejador Registro Usuario
Opera el evento “OK” Interface Usuario
Solicita validar Registro Usuario Manejador Registro Usuario
Solicita ofrecer Servicio Manejador Servicio
Opera el evento “Salir” Interface Usuario
Abandona Sistema Interface Usuario
ms = new ManejadorServicio(this,interfaceUsuario);
ms.setManejadorRegistroUsuario(mru);
desplegarPantal1aPrincipal();
if (pantallaPrincipal == null)
despl egarPantal 1 a(new Pantal 1 aPri nci pal (i nterf acellsuari o, thi s) ) ;
Página 52
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
manejarEventoRegistrar();
else if (str.equalsC'OK11))
manejarEventoValidar();
else
manejarEventosAdicionales(str);
if (mru != null)
if (mru != null) {
if (mru.validarRegistroUsuario(log,pass) == true)
manejarEventoOf recerServicioQ;
else
desplegarPantal1a(pantal1 a);
}
}
9.1.3 Dominio
Página 53
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
nombre = str;
valor = v;
return nombre;
return valor;
valor = v;
Página 54
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
System.out.print(nombre+": ") ;
System.out.pri ntln(valor);
Entidad datos
public Datos() {
if (fg == true)
numAtri butosBD++;
if (atributo != null)
str = atributo.leerNombreQ;
return str;
Página 55
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
if (atributo != null)
return str;
if (atributo != null)
return listaAtributos.sizeQ;
9.1.4 Registro
Página 56
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
clase ManejadorRegistroUsuario.
super(m,ui);
if (str.equalsC'Registrar11))
manejarEventoRegistrar();
else if (str.equals("Actualizar"))
manejarEventoActualizar();
else if (str.equalsC'Eliminar"))
Página 57
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
manejarEventoEliminarO ;
manejarEventoRegi strarTarjetaQ;
else
manejarEventosAdicionales(str);
if (pantallaCrearRegUsuario == null)
pantallaCrearRegUsuario =
new PantallaCrearRegUsuario(interfaceUsuario,this);
desplegarPantal1a(pantal1aCrearRegUsuari o);
if (registroUsuario == null)
return
if (registroUsuario != null)
administrarRegistroUsuarioQ;
if (pantallaObtenerRegUsuario == null)
pantallaObtenerRegUsuario =
Página 58
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
new Pantal1aObtenerRegUsuario(interfaceUsuario,this);
escribi rElementos(pantallaObtenerRegUsuario,registroUsuario);
desplegarPantal1a(pantal1aObtenerRegUsuari o);
p.escribi rElementos(datos);
if (registrollsuario == null)
leerElementosCpantalla,registroUsuario);
p.1eerElementos (datos);
if (registroUsuario == null)
1eerElementos(pantalla,registroUsuario);
if (registroUsuario != null) {
Página 59
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
crearRegi stroUsuarioQ;
if (registrollsuario != null) {
if (mrt == null)
String id = registroUsuario.leerValor(O);
mrt.registrarTarjeta(id);
j++) {
if (nameO.equals(name) == true)
return str;
if (nameO.equals(name) == true)
Página 60
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
String nameO,str,name;
nameO = (String)datos.leerNombre(i);
str = null;
name = null;
textos.sizeQ; j++) {
if (nameO.equals(name) == true) {
nameO = (String)datos.leerNombre(i);
datos.escribi rValor(i,str) ;
String nameO,str,name;
nameO = (String)datos.leerNombre(i);
str = (String)datos.leerValor(i);
textos.sizeQ; j++) {
Página 61
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
if (nameO.equals(name) == true)
((TextField) textos.elementAt(j)).setText(str);
str = (String)datos.leerValor(i);
((TextField) textos.elementAt(j)).setText(str);
9.1.5 Servicios
MANEJADOR SERVICIOS.
PANTALLA DE SERVICIOS.
Página 62
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Página 63
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Una Falla (Failure) esta ocurre cuando un programa no corre bien y no se comporta de
manera adecuada. la falla es una propiedad estadística de un sistema de ejecución.
Un error es una acción humana que provoca que un software contenga una falta. Un error
puede significar la existencia de una falta en el programa, lo cual hace que el sistema falle.
Una falta (fault) tiene en el código del programa. La existencia de una falta en el programa
puede ocasionar una falla en el sistema.
Con lo anterior se puede decir que no se puede garantizar un sistema falle, solo se puede demostrar que
contiene faltas.
Podemos observar si un cambio determinado en el sistema, altero el proceso del mismo, así
mismo siempre se busca una mejora continua de la aplicación, pues se organiza todo, se realizan
Página 64
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
podríamos ver si muestra fallos, o lentitud, Este tipo de prueba mide la confiabilidad de un
sistema.
Prueba de Escala Completa: cuando declaramos los campos de tipos Char, en su mayoría
evitamos que se generen errores al ingresar caracteres especiales, sin embargo, se crearon
excepciones que emiten un mensaje de alerta informando que se han ingresado datos incorrectos.
Se realiza la prueba de estrés donde se lleva al límite extremo al sistemapa verificar su nivel de
tolerancia
Funcionales, del sistema, pues gracias a esto, se garantiza un mejor funcionamiento del sistema.
Prueba de Sobrecarga: para evitar la sobrecarga del sistema en las famosas horas pico, se
Puede implementar la programación en hilo así no se ejecuta toda la aplicación al tiempo, sino
Prueba Negativa: Pueden tomarse todas las precauciones posibles, pero en cualquier momento
puede fallar, para esto, Podríamos tener una réplica de la base de datos en otro servidor con el fin
que, si se llega a presentar algún problema, de servidor, el alterno tome las operaciones que se
están realizando.
Página 65
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Prueba Basada en Requisitos, o Prueba de casos De Uso: toda la aplicación es basada, en los
casos de usos, o especificaciones generales del hotel, para su sistema de reservas de habitaciones.
adecuada, sencilla y clara para el fácil entendimiento de los usuarios, así mismo los colores, de las
manual tengan concordancia, con las interfaces para evitar que los usuarios confundan o no
PRUEBA DE UNIDAD
Prueba de Caja Negra: al ingresar información, si nos da una salida podemos determinar
Prueba de Caja Blanca: se verifica si la lógica del programa está funcionando bien y
Pruebas error: si el usuario da caracteres o dígitos erróneos o Repetidos Como los Números
Página 66
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Prueba Estructural: Son pruebas al código fuente donde ejecutamos clase por clase, para
entender el funcionamiento del código y como se comportaba con los valores ingresados. Para
la reserva de una cita se puede implementar con el fin de ver la seguridad del código para
evitar, un posible ataque al sistema, y que este afecte el funcionamiento del aplicativo.
PRUEBAS DE INTEGRACION
Las pruebas de integración Son concordancias que existen en toda la documentación del
aplicativo, se revisan los casos de uso, los diagramas de clases, de secuencias, y las tarjetas para
Estas pruebas se caracterizan por someter al sistema a un alto estrés, es decir trabajar todas las
partes del sistemas simultáneamente, pero al trabajar programación en hilos, evitamos ese
problemas, debido a que es poco probable que varios eventos, ocurran al mismo tiempo,
siempre hay segundos o milésimas de segundos que hacen la diferencia, y al tener el sistema
Orden de Pruebas: En nuestro proyecto nos basamos en el ciclo PHVA, debido a esto, nuestras
pruebas se basan en planificar el modelo, hacerlo, verificarlo y actuar, al trabajar de esta forma,
casi siempre estamos realizando simulaciones del sistema, para controlar los posibles errores a
Alcance de Pruebas: la principal prueba está realizada en la base de datos debido a que esta es
la más delicada, si no está bien planteada con todas sus relaciones, puede afectar el
Página 67
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
funcionamiento del aplicativo, pues no estaría arrojando los resultados esperados al momento
de agregar un nuevo paciente, realizar una reserva, una modificación o cancelar una cita, podría
lugar para verificar el dominio de los datos que van a ser ingresados al sistema y las salidas del
sistema. Allí verificamos los errores que se puedan presentar y la frecuencia del uso.
Las pruebas se realizarán semiautomáticas, debido a que usaremos simuladores, que bosquejen el
comportamiento del sistema, pero los datos ingresado al aplicativo para que realice la simulación son
Una vez preparada la prueba se debe describir exactamente se ejecuta cada prueba y su propósito de
manera que cada persona no familiarizada con el sistema pueda ejecutarla, cada prueba no importa su
nivel debe ser documentada y también como se debe ejecutar la prueba, en qué orden y cuál es el
resultado esperado.
En la ejecución de las pruebas que realizaremos mediante simuladores, se trabajara en prueba y error, se
realizan las pruebas se encuentra el error, se detiene se corrige el posible error y se vuelve a ejecutar, con
Página 68
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
Se prueban las secuencias más importantes de los casos de usos Registrar Usuario, Crear Usuario,
Capítulo 11 Conclusiones
Este proyecto fue realizado bajo parámetros establecidos, se plasmó la información mediante, las
necesidades que se buscaban satisfacer y los resultados arrojados, fueron los plasmados en los
diseños que se trabajaron.
Todo esto se logró gracias a los conocimientos en programación obtenida a lo largo del curso
Programación Orientada a Objetos, tanto en Java como en Base De Datos.
Capítulo 12 Recomendaciones
Página 69
Proyecto de Investigación Curso Académico de Programación Orientada a Objetos
1. Weitzenfeld, Alfredo. Ingeniería de Software Orientada a Objetos con UML, Java e internet.
Mexico City: Cengage Learning, 2005. Gale Virtual Reference Library. "Desarrollo de Software
Orientado a Objetos." Ingeniería de Software Orientada a Objetos con UML, Java e Internet.
Alfredo Weitzenfeld. Mexico City: Cengage Learning, 2005. [193]. Gale Virtual Reference
Library. Web. 8 July 2014.
Página 70