PROGRAMACIÓN AVANZADA TEMA: SISTEMA DE COMPRA Y RESERVACIÓN DE TICKETS DE VUELOS Datos Informativos del Componente Educativo: UTPL-ECTS CICLO 4 TITULACIÓN CREDITOS Ingeniería Sistemas Informáticos y Computación. 4 Datos informativos: Autores: Carchi Ludeña Katherine Mishell. Arteaga Maza Sleyder Daniel. Maurad Juela Jonathan Andres. C.I. 1104811300 1103967715 1105060469 Docente: Ing. Quezada Sarmiento Pablo Alejandro Fecha: 2013-04-19 LOJA-ECUADOR OBJETIVOS General: - Desarrollar un sistema de reservaciones de vuelos que permita al usuario hacer consultas y reservaciones de vuelos, además de poder comprar los tickets aéreos de forma remota, sin la necesidad de recurrir a un agente de viajes. Específicos: - Brindar un sistema que permita la reservación y compra de boletos de forma eficiente y segura - Crear un sistema flexible a modificaciones y mejoras - Poner en práctica los conocimientos que día a día vamos adquiriendo dentro de la materia en especial UML. JUSTIFICACIÓN: Para una agencia de viajes brindar un mejor servicio es una prioridad no solo para ellos sino para todas las empresas de cualquier clase. Muchas de las veces a las personas les disgustan el hecho de que un agente de viajes esté constantemente llamándolo a ofrecerle sus ofertas turísticas. Conforme la tecnología ha ido avanzando todas las actividades se han ido automatizando es por ello que las empresas facilitan al usuario el acceso a su información a través de la web. Es necesario que las empresas de boletos aéreos brinden al usuario la facilidad de que desde cualquier punto en el que se encuentren puedan realizar una reservación de vuelo o comprar un boleto sin la necesidad de acudir a dicha agencia. El proceso de pago de los boletos será también una ventaja para el usuario ya que tan solo con su tarjeta de crédito podrá pagar los boletos antes reservados. Si bien es cierto muchas de las reservaciones pueden ser mal logradas o realizadas con malas intenciones por lo que deben existir políticas y un código de ética por parte de la agencia de viajes. Con un sistema de reservación de boletos la empresa podrá utilizar este sistema como una herramienta para conocer cuáles han sido los destinos más solicitados, de acuerdo a la temporada de viajes conocer cómo están los precios y sobre todo la situación de su agencia si están siendo productivas o no. Este sistema permite al usuario registrarse, consultar los destinos de los vuelos, las reservaciones y el pago de cualquier tipo de boleto. El objetivo de este sistema es cumplir con lo antes mencionado brindando al usuario una forma ágil de reservaciones, búsquedas, etc. Y a la agencia de viajes para que pueda optimizar su trabajo crecer y ser más competitiva. ALCANCE El presente proyecto está diseñado en un sistema de reservación y compra de boletos de avión que permitan a una empresa mantener un registro de sus clientes y destinos más solicitados. Debido a que el programa servirá para la reservación de boletos tanto de cliente como de los demás procesos que tiene una empresa vamos a considerar las siguientes características: Permitirá al usuario el ingreso de datos Permitirá la búsqueda de datos de tickets de avión mediante el uso de una base de datos El programa generará una factura con los datos del cliente Estas son las características que poseerá la aplicación. A más de ello podemos decir que esta aplicación constara de máximo 4 interfaces en donde el usuario podrá navegar a través de la aplicación. A continuación se realizará una breve descripción de las interfaces que componen la aplicación: La primera ventana que se le presentara al usuario será una ventana en donde el usuario podrá observar una pequeña historia de la empresa y tendrá una opción en donde se pueda registrar y acceder al siguiente módulo. Luego de haberse logueado puede realizar las búsquedas de los boletos y destinos disponibles, una vez seleccionado el destino podrá realizar la reservación y confirmarla. Para realizar el pago deberá ingresar su información personal junto con su usuario y contraseña. Una vez confirmados los términos del contrato se habilitara la opción de reservaciones para su posterior viaje. LIMITACIONES Entre las limitaciones que presentará la aplicación tenemos las siguientes: Fallos en la base de datos Fallos en la escritura de sentencias sql Excepciones debido a la utilización de base de datos e interfaces graficas No se podrá mostrar informes de ningún tipo referentes a la información que posee la base de datos MARCO TEÓRICO AGENCIA DE VIAJES: Es una empresa turística dedicada a la intermediación, organización y realización de proyectos, planes e itinerarios, elaboración y venta de productos turísticos entre sus clientes y determinados proveedores de viajes: como por ejemplo: transportistas (aerolíneas, cruceros), servicio de alojamiento (hoteles) con el objetivo de poner los bienes y servicios turísticos a disposición de quienes deseen y puedan utilizarlos. La agencia de viajes esta encargada de informar claramente al viajero sobre las características de los destinos, los servicios que obtendrá así como quien se los proveerá y los viajes existente. Se le debe ayudar al cliente en la selección del viaje más adecuado de acuerdo a sus necesidades específicas. Es esencial la adecuada comunicación de la agencia con el viajero, así sabrá con mayor exactitud las necesidades y expectativas que el cliente ha puesto en el viaje.Por lo tanto la agencia debe contar con gente profesional y experta en destinos y viajes, que tenga una adecuada preparación cultural y técnica y además con la capacidad de poder captar las necesidades de los clientes. CLIENTE: El cliente es muy importante dentro de una empresa ya que sin usuario no se produce una actividad comercial pues se necesita una persona que compre los productos que se están ofreciendo. Así mismo se busca satisfacer la necesidad de las personas y para la empresa es indispensable tener una estrategia de venta, haciendo que el usuario encuentre el producto que está buscando, obtenga un buen servicio y transforme al usuario en CLIENTE. Es por ello que este proyecto está destinado a ser una herramienta que aporte al desarrollo de las actividades de la empresa. La base de nuestro programa es que la reservación de vuelos vía online facilite y brinde mayor comodidad a los usuarios o clientes y puedan reservar o comprar tickets de vuelo desde cualquier punto que posea acceso a internet, evitando que los usuarios deban acudir físicamente a alguna instalación u oficina de agencia de viajes. LENGUAJE DE PROGRAMACIÓN JAVA Dentro de nuestro programa se utilizará el lenguaje Java. Java fue diseñado por James Gosling, de Sun Microsystems, en 1990, como software para dispositivos electrónicos de consumo, como calculadoras y microondas. Inicialmente se llamó Oak (roble en inglés), aunque tuvo que cambiar debido a que dicho nombre ya estaba registrado por otra empresa. (http://java.ciberaula.com/articulo/que_es_java) Java es un lenguaje moderno, de alto nivel, que recoge los elementos de programación que típicamente se encuentran en todos los lenguajes de programación, permitiendo la realización de programas profesionales. Java se dice orienta a objetos pues, los objetos son los elementos básicos para modelar los datos sobre los que trabaja un programa. es un lenguaje sencillo , o todo lo sencillo que puede ser un lenguaje orientado a objetos, eliminando la mayor parte de los problemas de C++. Es un lenguaje independiente de plataforma, por lo que un programa hecho en Java se ejecutará igual en un PC con Windows que en una estación de trabajo basada en Unix. También hay que destacar su seguridad, desarrollar programas que accedan ilegalmente a la memoria o realizar caballos de troya es una tarea propia de titanes. NETBEANS Es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE es un producto libre y gratuito sin restricciones de uso. NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. SunMicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos. La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software. http://es.wikipedia.org/wiki/NetBeans BASE DE DATOS Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. Componentes de una Base de Datos: Hardware: constituido tambores, cintas, etc. Software: que es el DBMS o Sistema Administrador de Base de Datos. Datos: los cuales están almacenados de acuerdo a la estructura externa y van a ser procesados para convertirse en información. por dispositivo de almacenamiento como discos, Conceptos Básicos de Base de datos Archivo: son conjuntos de registros. Registros: son conjuntos de campos. Campos: es la mínima unidad de referencia. http://www.monografias.com/trabajos34/base-de-datos/base-de-datos.shtml#base XAMPP Es un paquete formado por un servidor web Apache, una base de datos MySQL y los intérpretes para los lenguajes PHP y Perl. Es de plataforma independiente y tiene licencia GNU GPL. Una de las ventajas de XAMPP es que de una forma muy sencilla y rápida te puedes montar en tu máquina un entorno de desarrollo de cualquier aplicación web que use PHP y base de datos. La configuración por defecto de XAMPP tiene algunas deficiencias de seguridad por lo que no es recomendable usarla como una herramienta para producción, sin embargo con algunas modificaciones es lo suficientemente seguro para ser usada como servidor de sitios web en internet. COMUNICACIÓN CON LA BASE DE DATOS Para comunicarnos con la base de datos, primero nos conectamos con la base de datos (como hemos explicado antes) y después crearemos un objeto Statement con el que realizaremos las consultas a la base de datos. Para realizar una consulta podemos usar, alguno de los siguientes métodos: 1.ExecuteUpdate(sentenciaSQL); : Sera usada para los casos en los que usemos instrucciones SQL de manipulación de datos tales como INSERT, DELETE o UPDATE. 2.ExecuteQuery(sentenciaSQL); : Sera usada para los casos en los que usemos instrucciones SQL de tipo SELECT. Para este último caso deberemos usar una variable de tipo ResultSet o ResultSetMetaData para almacenar los valores obtenidos con la consulta. CREAR UNA BDD En el apartado Crear nueva.... Ingrese en nombre de su BDD y presiones Crear CREAR TABLAS Puede hacerlo inmediatamente creada la BDD o encualquiera desde Estructura o del SQL. Ingrese el nombre de la tabla y la cantidad decampos que ud. cree necesitará. Crear Tabla PANTALLA PARA LA CREACIÓN DE CAMPOS Y DEFINICIÓN DE TIPOS. ENFOQUES DEL CONTROL DE EXCEPCIONES Siempre se deben crear controladores de excepción para responder a cualquier circunstancia excepcional, es decir, no prevista en la ejecución de un programa. El enfoque más práctico para detectar excepciones de base de datos es probar la aplicación en los diferentes escenarios de excepción. Determinar las excepciones posibles que pueden producirse para una operación del código pertinente y provocar su aparición. Después, se debe examinar los resultados del seguimiento para ver qué excepción se inicia, o examinar la información del error devuelto en el depurador. Esto permite saber qué códigos devueltos se obtendrán para los escenarios de excepción utilizados. EXCEPCIONES EN LA BASE DE DATOS EN el paquete java.sql Se encuentra la clase Sqlexception Que captura las excepciones ocurridas en el manejo de la base de datos. Su uso no difiere del resto de excepciones, pero incorpora nuevos métodos interesantes: Getsqlstate:. Describe el error según las convenciones xopen. Getmessage. El método típico de excepciones, salvo que éste recoge el texto que envía el controlador jdbc según lo informado por el gestor de bases de datos, lo que le hace muy efectivo getErrorCode. Devuelve el código de error ocurrido (según lo informado por el gestor de la base de datos) getNextException. Que permite ver la siguiente excepción ocurrida, ya que a veces ocurren varias a la vez (especialmente en transacciones y operacionescomplejas).Ejemplo: try{ //instrucciones de manejo de la base de datos }catch( SQLException sqle ){while(e!=null){ System.err.println("Estado:"+e.getSQLState());System.err.println("Código: "+e.getErrorCode());System.err.println("Mensaje: "+e.getMessage());e.getNextException();}} SQLWarning Otras veces, ocurre que la base de datos provoca excepciones, sino advertencias( warnings ) Los objetos que las provocan (sobre todo los ResultSet) las van almacenando en objetos de tipo SQLWarning. Para ver los errores basta con llamar repetidamente al método getSQLWarning. En cada llamada obtendremos un nuevo objeto SQLWarning hasta que, finalmente no haya más (devolverá entonces el valor null).Los métodos que permiten observar el contenido de la advertencia son los mismos que los de la clase SQLException, ya que esta clase es heredera suya. Añade el método getNextWarning que funciona de forma similar a getNextException, pero que en esta clase no se suele utilizar ya que las sucesivas llamadas al método getSQLWarnings provocan el mismo resultado. El método clearWarnings de la clase ResultSet permite borrar las advertencias almacenadas hasta ese momento. INTERFAZ GRAFICA EN JAVA La interfaz de usuario es la parte del programa que permite al usuario interaccionar con él. La API de Java proporciona una biblioteca de clases para el desarrollo de Interfaces gráficas de usuario (en realidad son dos). La biblioteca proporciona un conjunto de herramientas para la construcción de interfaces gráficas que tienen una apariencia y se comportan de forma semejante en todas las plataformas en las que se ejecuten. La estructura básica de la biblioteca gira en torno a componentes y contenedores. Los contenedores contienen componentes y son componentes a su vez, de forma que los eventos pueden tratarse tanto en contenedores como en componentes. La API está constituida por clases, interfaces y derivaciones. AWT y Swing. COMPONENTES DE AWT SWING Paquete de Java para la generación del GUI en aplicaciones reales de gran tamaño. Disponible como paquete externo en Java 1.1 e integrado desde Java 1.2. Es una de las API de JFC (Java FoundationClasses): AWT, Java 2D, Accessibility, Drag and Drop, Swing, ETC. Escrito totalmente en Java. No reemplaza a AWT. Se apoya sobre AWT y añade JComponents. Utiliza el modelo de eventos de Java 1.1. Elección entre diferentes aspectos (look &feel). Arquitectura Model-View-Controller (MVC). Nuevos componentes (árboles, tablas, frames internos, iconos, bordes, tooltips, beans, etcétera). JERARQUIA DE CLASES CONTENEDORES Contenedores de alto nivel: JFrame: Habitualmente la clase JFrame se emplea para crear la ventana principal de una aplicación en Swing. JDialog: Ventanas de interacción con el usuario. Contenedores intermedios: JPanel: Agrupa a otros componentes. JScrollPanel: Incluye barras de desplazamiento. ESQUEMA DE APLICACIÓN EN SWING importjavax.swing.*; public class Gui00 extends JFrame { // Constantes y componentes (objetos) public Gui00(){ super("Ejemplo 00"); // Configurar Componentes ; // Configurar Manejadores Eventos ; setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } // Terminar la aplicación al cerrar la ventana. public static void main(String args[]){ Gui00 aplicacion = new Gui00(); } } INTERACCIÓN CON EL USUARIO Al interactuar con la aplicación, el usuario: Acciona componentes (ActionEvent). El usuario pulsa un botón. El usuario termina de introducir un texto en un campo y presiona Intro. El usuario selecciona un elemento de una lista pulsando el preferido (o de un menú). Pulsa o suelta botones del ratón (MouseEvent). Minimiza, cierra o manipula una ventana (WindowEvent). Escribe con el teclado (KeyEvent). Descubre porciones de ventanas (PaintEvent). Cuando el usuario de un programa o applet mueve el ratón, presiona un pulsador o pulsa una tecla, genera un evento (actionEvent). Los eventos son objetos de ciertas clases. Normalmente un objeto de alguna subclase de EventObject que indica: El elemento que accionó el usuario. La identificación del evento que indica la naturaleza del evento. La posición del ratón en el momento de la interacción. Teclas adicionales pulsadas por el usuario, como la tecla. Control, la tecla de Cambio a mayúsculas, etcétera. METODOLOGÍA La metodología que se va a implementar en nuestro proyecto se basará en el Proceso Unificado de Rational (RationalUnifiedProcess en inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software desarrollado por la empresa Rational Software, actualmente propiedad de IBM. Junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, diseño, implementación y documentación de sistemas orientados a objetos. El RUP está basado en 6 principios clave que son los siguientes: Adaptar el proceso El proceso deberá adaptarse a las necesidades del cliente ya que es muy importante interactuar con él. Las características propias del proyecto u organización, el tamaño del mismo, así como su tipo o las regulaciones que lo condicionen, influirán en su diseño específico. También se deberá tener en cuenta el alcance del proyecto en un área subformal para hacer un proceso de satisfacción del software. Equilibrar prioridades Los requisitos de los diversos participantes pueden ser diferentes, contradictorios o disputarse recursos limitados. Debe encontrarse un equilibrio que satisfaga los deseos de todos. Gracias a este equilibrio se podrán corregir desacuerdos que surjan en el futuro. Demostrar valor iterativamente Los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas. En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se refina la dirección del proyecto así como también los riesgos involucrados. Colaboración entre equipos El desarrollo de software no lo hace una única persona sino múltiples equipos. Debe haber una comunicación fluida para coordinar requisitos, desarrollo, evaluaciones, planes, resultados, etc. Elevar el nivel de abstracción Este principio dominante motiva el uso de conceptos reutilizables tales como patrón del software, lenguajes 4GL o marcos de referencia (frameworks) por nombrar algunos. Esto evita que los ingenieros de software vayan directamente de los requisitos a la codificación de software a la medida del cliente, sin saber con certeza qué codificar para satisfacer de la mejor manera los requisitos y sin comenzar desde un principio pensando en la reutilización del código. Un alto nivel de abstracción también permite discusiones sobre diversos niveles y soluciones arquitectónicas. Éstas se pueden acompañar por las representaciones visuales de la arquitectura, por ejemplo con el lenguaje UML. Enfocarse en la calidad El control de calidad no debe realizarse al final de cada iteración, sino en todos los aspectos de la producción. El aseguramiento de la calidad forma parte del proceso de desarrollo y no de un grupo independiente. RUP divide el proceso de desarrollo en cuatro fases dentro de las cuales se realizan varias iteraciones. El ciclo de vida de la metodología RUP se lo realiza en cada una de las fases: Inicio En esta fase es donde se reúne todos los requisitos o requerimientos del usuario. Elaboración Aquí en esta fase de desarrollo, es donde se construyen los diagramas (casos de uso, actividad, secuencia, etc.), para posteriormente construir la base de datos. Construcción En esta fase es donde pasamos a moldear el producto que vamos a mostrar al usuario con todos sus requerimientos, además de que en esta etapa se realiza la implantación y las pruebas del mismo. Transición Durante esta fase de transición busca garantizar que se tiene un producto preparado para su entrega al usuario. ANÁLISIS Y DISEÑO DE LA PROPUESTA DE TRABAJO Análisis Es importante para una empresa brindar diferentes medios para acceder a sus servicios y son las tecnologías de la información las que actúan como una gran herramienta para la comunicación y difusión de actividades comerciales. Es por ello que el presente sistema se enfoca en las agencias de viajes y aerolíneas brindándoles un medio por el cual sus clientes hagan uso de sus servicios como: reservaciones, pagos y consultas de todos los vuelos a través de la web sin la necesidad de intermediarios, simplemente el usuario y el computador. Logrando así una manera más ágil para realizar sus procesos, y brindando un entorno cómodo y agradable para el usuario. Planteamiento del Problema El problema de: Afecta a: Cuyo impacto es: Una buena solución: Desarrollar un Software de Reservación de Vuelos, el mismo que permitirá al usuario hacer consulta, reservaciones y pagos a través del internet. -A los usuarios o clientes quienes van a adquirir los servicios que la Empresa de Reservación de vuelos ofrece. -Al grupo de profesionales que laboran en la agencia de viajes que a través de su sistema ofrecen sus servicios. No tener los servicios disponibles que ofrece la empresa al instante para que el usuario tome su mejor decisión. Desarrollar una aplicación, con una base de datos en donde se muestre los servicios disponibles para los clientes, creando una interfaz que sea fácil de manejar con las que acceder a dicha base de datos. Posicionamiento del Producto Para -Gerente o representante de la Empresa de Agencia de Viajes Quienes Nombre del Producto Que Diferente a: Nuestro Producto -Usuarios que tengan tarjeta de crédito y solvencia suficiente para poder comprar su boleto. Controlan las solicitudes de los diferentes servicios que presta la empresa con su equipo de trabajo. Software de Reservación de vuelos Permite a los usuarios consultar, reservar Vuelos así como también permite cancelar sus boletos de viaje Recurrir a una agencia de viaje Consiste en una aplicación que cuenta con una interfaz accesible para los usuarios en donde tendrá disponible información acerca de las distintas ofertas, consultas y reservaciones de vuelo Necesidades y Características Necesidad Característica Tener información cuando el usuario requiera. Esta aplicación estará disponible las 24 horas del día. Tener información actualizada. El sistema contará con información confiable. Ética y Seguridad en las Transacciones. Base de datos segura para posibles ataques informáticos. Fácil manejo de la aplicación Interfaz gráfica entendible para usuarios Es necesario analizar los casos de uso que se presentarán dentro de la aplicación es por ello que a continuación se detallan las plantillas de casos de uso establecidas por la herramienta RUP. Caso de Uso: Registro de Información del Usuario Breve Descripción Permite al usuario registrarse en el sistema para poder hacer uso de todos sus servicios de manera continua. Breve Descripción de los Actores Los principales actores de este caso de uso es el usuario que cumple con su registro de información personal y el sistema que brinda la interfaz para que el usuario pueda hacer uso de la aplicación. Internamente también se interactúa con la Base de datos del usuario que es en donde se almacenará todos los datos brindados por el usuario. Precondiciones El usuario debe tener acceso a internet. Flujo Básico de Eventos 1. Se presenta al usuario un panel de inicio de sesión con dos casilleros y dos botones 2. En el primer casillero ingresar su nombre de usuario 3. En el segundo casillero ingresar su contraseña 4. Click en el botón ingresar. 4.1 Se ejecuta el caso de Uso Validar Usuario Flujo Alternativo Si el usuario aun no posee una cuenta de Usuario: 5. Se presenta al usuario un panel de inicio de sesión con dos casilleros y dos botones 6. Click en el botón crear cuenta de Usuario. 6.1 Se ejecuta el subflujo Crear Cuenta de Usuario (S-1) Subflujos S-1 Crear Cuenta de Usuario 1. Se presenta una pantalla que contiene la información de registro. 2. El usuario debe llenar todos los campos de información como son: nombre, apellido, país, ciudad, dirección, teléfono, correo electrónico, nombre de usuario y contraseña. El nombre de usuario y contraseña serán utilizados por el sistema para validar al usuario. 4. El usuario deberá elegir entre guardar o cancelar. 4.1 La opción guardar, el sistema valida los datos, los almacena y crea la nueva cuenta de usuario. 4.2 La opción cancelar hace que el usuario abandone el registro. Si el usuario no ha guardado los datos estos no se almacenarán. S-2 Configurar Cuenta de Usuario 1. Se presenta una pantalla al usuario con toda su información distribuida en casilleros 2. El usuario podrá elegir si desea modificar sus datos, eliminar cuenta, registrar tarjeta o salir. 3. Si el usuario desea modificar sus datos estos se guardan y se actualiza la información en la base de datos. 4. Si el usuario desea eliminar su cuenta se borrará su registro de la base de datos. 5. Si el usuario desea salir se cerrará la pantalla si no ha guardado los cambios estos quedarán como la última actualización. 6. Si el usuario desea registrar su tarjeta se realizará el caso de uso Registrar tarjeta. Escenarios Claves Este caso se lleva a cabo cuando el usuario desea ingresar al sistema ya sea con su usuario y contraseña si ya posee una cuenta activa o cuando se registra por primera vez para hacer uso del sistema. Postcondiciones Para que el usuario pueda continuar con el uso de la aplicación sus datos deben haber sido registrados en la base de datos y haber llenado todos los campos de información. Información Adicional Una vez registrado el usuario deberá iniciar su sesión para iniciar con el uso de la aplicación. Caso de Uso:Registro de Validacion del Usuario Breve Descripción El sistema debe permitir validar y analizar los datos ingresados por el usuario como lo son el usuario y contraseña deben ser verificados en el registro del sistema. Flujo Básico de Eventos 1. Se presenta al usuario un panel de inicio de sesión con dos casilleros y dos botones 2. En el primer casillero ingresar su nombre de usuario 3. En el segundo casillero ingresar su contraseña 4. Click en el botón ingresar. 5. El sistema empieza valida la información proporcionada. 6. El sistema autentifica el acceso y le permite al usuario ingresar y hacer uso de los servicios de la aplicación. Flujo Alternativo 1. Si el usuario ingresa incorrectamente el usuario y contraseña, el sistema notificará que no existe es información. 2. El sistema no permitirá ingresar a su cuenta y utilizar los servicios, si su usuario es incorrecto. Subflujos 1. Cuando ingresa al sistema al momento de logear, el sistema verifica si los datos ingresados son correctos. 2. Se verifican los datos mediante una base de datos. 3. Una vez verificados, el sistema permite ingresar al usuario hacer uso de la aplicación Postcondiciones Para usar los servicios, se analizarán que los datos ingresados sean los mismos que los que se registró anteriormente en la base de datos. Información Adicional Para que su información sea validada se requiere haber registrado sus datos, en el caso de uso anteriormente mencionado. Caso de Uso: Registro de Tarjeta Breve Descripción Permite al usuario registrar su tarjeta de crédito o sus tarjetas con las cuales realizar el pago de sus reservaciones de manera remota evitando así acudir a la agencia a registrar su pago. Breve Descripción de los Actores Los principales actores de este caso de uso son el usuario que brinda la información de sus tarjetas y el sistema que permite que el usuario realice ese registro. Internamente actúa la base de datos de registro de usuarios que es en donde se almacenarán los datos de la tarjeta. Precondiciones El usuario debe tener acceso a internet. Debe tener una cuenta de usuario registrada y válida Tener la sesión de usuario activa Flujo Básico de Eventos 1. Se presenta al usuario un panel con casilleros a llenar sobre la información de la tarjeta como es: nombre de la tarjeta, institución financiera a la que pertenece, número de la tarjeta, fecha de vencimiento, monto de pago máximo. 2. Guardar 3. Salir Escenarios Claves Se ejecuta este caso de uso cuando el usuario registra toda su información por primera vez y cuando el usuario desea hacer un pago de alguna reserva que es donde necesita tener previamente registrada su tarjeta. Postcondiciones Para que el usuario pueda continuar con el uso de la aplicación sus datos deben haber sido registrados en la base de datos y haber llenado todos los campos de información. Información Adicional El usuario a través de este proceso puede registrar otra tarjeta a su mismo registro. Caso de Uso: Consulta de Información Breve Descripción Este caso de uso permite al usuario realizar todas las consultas sobre los servicios de vuelos disponibles. Ya sean estas consultas por horarios tarifas y estados de los vuelos. Breve Descripción de los Actores Los principales actores de este caso de uso es el usuario que es quien realiza las consultas y el sistema que muestra la información al usuario sobre sus consultas realizadas. Internamente encontramos a la base de datos de Reservaciones que es donde se encuentran las disponibilidades de los vuelos. Precondiciones El usuario debe tener acceso a internet. Debe estar registrado en el sistema y ser válido Tener la sesión de usuario activa Flujo Básico de Eventos 1. Se presenta una pantalla con las consultas con diferentes opciones de consultas: Horarios, Tarifas, Estados y Salir. 2. Si el usuario selecciona la opción de consulta por horarios se ejecutará el subflujo de consulta por horarios S-1 3. Si el usuario selecciona la opción de consulta por tarifas se ejecutará el subflujo de consulta por tarifas S-2 2. Si el usuario selecciona la opción de consulta por estados se ejecutará el subflujo deconsulta por estados S-3 Flujo Alternativo Se presenta una pantalla con las consultas con diferentes opciones de consultas: Horarios, Tarifas, Estados y Salir. El usuario no desea hacer consultas y selecciona la opción de salir El usuario sale del sistema. Subflujos S-1 Consulta por Horarios 1. Se presenta una pantalla con los casilleros de ciudad de origen y destino, aerolínea, consultar y salir 2. Ingresar el nombre de la ciudad desde la que se va a partir 3. Ingresar el nombre de la ciudad a llegar 4. Seleccionar el nombre de la aerolínea por la cual se desea realizar el viaje 5. Click en el botón consultar 6. Despliegue de las aerolíneas que poseen ese destino junto con sus horarios de vuelos. 7. Selección del vuelo preferido 8. Marcar opción de Reservar Vuelo 9. Guardar 10. Salir S-2 Consulta por Tarifas 1. Se presenta una pantalla con los casilleros de ciudad de origen, destino, aerolínea, costo, consultar y Salir 2. Ingresar el nombre de la ciudad desde la que se va a partir 3. Ingresar el nombre de la ciudad a llegar 4. Seleccionar el nombre de la aerolínea por la cual se desea realizar el viaje 5. Seleccionar el rango de costos 5. Click en el botón consultar 6. Despliegue de las aerolíneas que poseen el destino y su costo se encuentre dentro del rango establecido 7. Selección del vuelo preferido 8. Marcar opción de Reservar Vuelo 9. Guardar 10. Salir S-3 Consulta por Estado 1. Se presenta una pantalla con los casilleros de ciudad de origen, destino, fecha de vuelo, aerolínea, código de vuelo, consultar y salir. 2. Ingresar el nombre de la ciudad desde la que se va a partir 3. Ingresar el nombre de la ciudad a llegar 4. Ingresar la fecha de partida 5. Seleccionar el nombre de la aerolínea por la cual se desea realizar el viaje 6. Ingresar el código de vuelo que realiza esa trayectoria 5. Click en el botón consultar 6. Despliegue del estado del vuelo junto con fecha y hora de salida, fecha y hora de llegada, código del vuelo, destino, número de asientos, disponibilidad. 7. Selección del vuelo preferido 8. Marcar opción de Reservar Vuelo 9. Guardar 10. Salir Escenarios Claves Este caso se presenta cuando el usuario desea realizar una reserva y no posee conocimiento del vuelo que la lleva a ese destino y si los costos están al alcance de su presupuesto. Postcondiciones El usuario debe guardar en el código de vuelo para que no deba hacer otra consulta para hacer su reserva. Información Adicional Las consultas son el medio más óptimo para que el usuario realice sus reservas. Para el subflujo de consulta por tarifas los resultados se muestran en orden ascendente se presentarán desde el costo más bajo hasta el más alto que se encuentre en el rango fijado por el usuario. Caso de Uso: Reservaciones Breve Descripción El caso de uso de reservaciones permite al usuario crear, modificar y eliminar una reservación dentro del sistema. Actor Breve Descripción En este caso de uso interviene el usuario y el sistema como actores principales. El usuario que es quien realiza la reservación y todas las actividades dentro de este proceso y el sistema que brinda la visibilidad y el medio para que el usuario actúe con la base de datos de reservaciones que actúa internamente. Precondiciones Tener Acceso a internet Poseer una cuenta de usuario y ser válida Tener la sesión de usuario activa Flujo Básico de Eventos 1. Se presenta al usuario un panel con las opciones de crear reserva, modificar Reserva y Eliminar Reserva 2. Si el usuario desea crear una reserva se ejecuta el subflujo Crear Reserva (S-1) 3. Si el usuario desea modificar una reserva se ejecuta el subflujo Modificar Reserva (S-2) 4. Si el usuario desea eliminar una reserva se ejecuta el subflujo Eliminar Reserva (S-1) Subflujos S-1 Crear Reserva 1. Se presenta una pantalla que contiene la información de registro de la reserva junto con las opciones de crear reserva y salir. 2. El usuario debe llenar todos los campos de información como son: nombres, apellidos, número de cédula, teléfono, código de vuelo, número de personas. 3. Click en el botón crear reserva 4. Se despliega toda la información de la reserva creada. Se debe verificar la información arrojada que esté correcta 4.1 Si desea pagar en línea se selecciona la opción proceder a pagar y se ejecuta el caso de uso Pago de Reserva 5. Se crea la reserva del usuario con todo su registro en la base de datos 6. Salir S-2 Modificar Reserva 1. Se presenta una pantalla al usuario con toda su información distribuida en casilleros y las opciones de guardar cambios y cancelar 2. El usuario podrá modificar los datos directamente en los casilleros 3. No se podrá dejar casilleros en blanco 3. Si el usuario selecciona la opción guardar cambios estos datos se guardarán y se actualiza la información en la base de datos de reservaciones. 4. Si el usuario desea cancelar se cerrará la pantalla si no ha guardado los cambios estos quedarán como la última actualización. S-2 Eliminar Reserva 1. Se presenta una pantalla con los datos de la reserva registrada junto con las opciones de eliminar reserva 2. Click en el botón eliminar reserva 3. Presentación de mensaje de confirmación de eliminación de reserva 4. Eliminación de reserva en la base de Datos de Reservas Escenarios Claves Este caso se lleva a cabo cuando el usuario ha realizado una consulta sobre los vuelos según tarifas, horarios o estado y desea seleccionar para hacer su reserva. Postcondiciones El usuario debe proceder a pagar la reserva Registrar su tarjeta en caso de realizar el pago en línea. Requerimientos Especiales Para hacer una reserva el usuario debe comprobar que el vuelo aún tiene cupos disponibles Todos los datos deben ser registrados Caso de Uso: Pago de Reserva Breve Descripción El caso de uso de pago de Reserva permite al usuario al usuario proceder a pagar sus reservas de manera online sin necesidad de acudir a la agencia de viajes. Actor Breve Descripción En este caso de uso interviene el usuario y el sistema como actores principales. El usuario que es quien realiza el pago de la la reservación y todas las actividades dentro de este proceso y el sistema que brinda la visibilidad y el medio para que el usuario actúe con la base de datos de reservaciones que actúa internamente. Precondiciones Tener Acceso a internet Poseer una cuenta de usuario y ser válida Tener la sesión de usuario activa Tener la tarjeta de crédito registrada Flujo Básico de Eventos 1. Se presenta al usuario un panel con las reservaciones registradas por el usuario 2. Click en el botón proceder a pagar 3. Seleccionar la tarjeta con la cual realizar el pago 3.1 Registrar tarjeta caso de uso Registrar tarjeta 4. Escoger el tipo de pago corriente o diferido 4. Click en el botón de pagar. 5. Presentación de mensaje de confirmación de pago 6. Confirmar 7. Se actualiza el estado de pagado en el registro de la base de datos 7. Salir. Flujo Alternativo 1. Se realiza la reservación 2. El pago se lo realiza en efectivo en las oficinas de la agencia Escenarios Claves Este caso de uso se lleva a cabo cuando el usuario desea comprar el boleto y paga su reserva para realizar su viaje. Requerimientos Especiales Tener registrada su tarjeta. Información Adicional El pago de la reserva se la debe hacer con su tarjeta de crédito preferida y puede realizar el pago con tarjetas. En el caso de varias reservas el pago se lo hace por reservaciones más no por costo total. Diseño El producto a desarrollar es un sistema en que el usuario va a poder agilizar su compra, reservación, estado, horarios, etc. de un vuelo en una aerolínea, desde la comodidad de su casa o trabajo, en donde tenga acceso a internet. Los encargados de esto serán los técnicos del sistema y los administradores de la base de datos. Entorno del Usuario Los usuarios entrarán al sistema si están registrados a través de su usuario y contraseña si no se han registrado tendrán la opción de hacerlo. Después tendrán disponibles toda la información acerca de consultas, reservaciones y pago de boletos para sus vuelos a través de una interfaz gráfica, la misma que es fácil de entender para no crear conflictos de manipulación del sistema. En la consulta de vuelos se presentarán horarios, tarifas y estados de vuelo. La consulta según horarios muestra los horarios de las diferentes aerolíneas que dan servicios entre dos ciudades, la consulta según tarifas muestra los diferentes vuelos entre dos ciudades que dan prioridad a su costo y la información por estados de vuelo se utiliza principalmente para consultar si se encuentran disponibles los vuelos y si están cancelados, incluyendo información de disponibilidad de asientos y en el caso de un vuelo para el mismo día, si está a tiempo. La reservación de vuelo permite al cliente hacer una reservación para un vuelo particular, especificando la fecha y horario, bajo una tarifa establecida. Es posible reservar un itinerario compuesto de múltiples vuelos, para uno o más pasajeros, además de poder reservar asientos. El pago permite al cliente, dada una reservación de vuelo previa y una tarjeta de crédito válida, adquirir los boletos aéreos. Además de los servicios de vuelo, el usuario podrá, en cualquier momento, modificar o cancelar su propio registro, todo esto después de haber sido validado en el sistema. DIAGRAMAS UML DIAGRAMA DE CASOS DE USO DIAGRAMA DE CLASES DIAGRAMA DE OBJETOS DIAGRAMA DE COMPONENTES DIAGRAMA DE PAQUETES DIAGRAMA DE SECUENCIA DIAGRAMA DE INTERACCIÓN DIAGRAMA DE DESPLIEGUE DIAGRAMA DE ACTIVIDADES DIAGRAMA DE COMUNICACIÓN ARQUITECTURA DE LA APLICACIÓN BASE DE DATOS APLICACIÓN USUARIO PROTOTIPOS DE LA APLICACIÓN Fig 1. Inicio de Sesión de Usuario Fig 2. Pantalla de creación de nueva cuenta de usuario Fig 3. Pantalla de configuración cuenta de usuario Fig 4. Pantalla de consulta de vuelos por horarios Fig 5. Pantalla de consulta de vuelos por tarifas Fig 6. Pantalla de consulta de vuelos por estado Fig 7. Pantalla de creación de reserva de vuelos Fig 8. Pantalla de modificación de reservas Fig 9. Pantalla de eliminación de reservas Fig 10. Pantalla de pago de reservas Fig 11. Pantalla de registro de tarjeta de crédito ESTUDIO COMPARATIVO El papel que tienen las Tecnologías de Información y Comunicación (TIC) dentro de las organizaciones es, que son un elemento de éxito de cualquier negocio pues propician una mejor adaptación tecnológica de las organizaciones y dan como resultado mayor rentabilidad y productividad de las mismas. El hecho de implementar un sistema de Reservación de vuelos que se vincula con el sector turístico representa la difusión de sus servicios favoreciendo a la innovación por parte de la empresa ya que poseen una herramienta externa que abre las puertas a sus usuarios, consumidores y proveedores brindando un mejor servicio, comodidad y una interfaz amigable. Este tipo de empresas necesitan implementar un sistema tecnológico ya que posee demasiada información, y es importante hacer uso de este tipo de tecnologías específicas que permitan su recolección, almacenamiento e interpretación, y que el uso de dichas tecnologías lleguen a generar efectos tales como el mejoramiento de la calidad, creación del valor para el cliente y sobre todo un incrementos en la productividad. Las agencias de viajes deben conocer de qué forma están implementando las tecnologías por su cercana competencia, por sus clientes y sus proveedores, de igual forma es importante que conozcan, qué valor les están dando estos actores de referencia, a la tecnología que están aplicando las demás aerolíneas. Dentro de las agencias de viajes como en cualquier empresa, se han implementado sistemas informáticos de forma generalizada, dentro del sector turístico el 90% de las agencias poseen un sistema informáticos para su gestión pero, dependiendo de la categoría de la agencia de viajes será el nivel de informatización de las diferentes áreas que integren los sistemas informáticos, ya que es lógico que las agencias de viajes de mayor categoría puedan tener una mayor inversión en tecnología. Un buen sistema ayuda a los hoteles a controlar sus operaciones internas además de la automatización de sus procesos para la prestación de los servicios de viajes. CONCLUSIONES Podemos concluir que la implementación de un sistema que ayuda a la reservación compra y consulta de vuelos dentro de una empresa turística resulta una gran herramienta dentro de sus labores puesto que automatiza sus procesos, facilita al usuario el uso de sus servicios y es una innovación dentro de la empresa que le brinda una mayor ventaja frente a la competencia. Considerando la automatización, permite la optimización de los tiempos de ejecución y reducción de costos de todas las actividades dentro de una agencia turística, ya que este sistema realiza todas las funciones de ventas de boletos aéreos básicos dentro de una agencia. En el presente proyecto hemos intentado dar una visión general del papel que cumplen los sistemas de reservas onlinedentro de las empresas turísticas. Dichos sistemas tienen como finalidad, por un lado, prestar servicios de información, comunicación y distribución de productos turísticos, soportados por las últimas y más avanzadas tecnologías de la información. Y por otro lado, ofrecer un servicio de asistencia técnica personalizada en tecnologías de la información así como ofrecer valor añadido a los procesos de toma de decisiones de las compañías aéreas. RECOMENDACIONES Es necesario para la empresa tener convenios con varias instituciones financieras para que cuando el cliente registre su tarjeta no exista ningún inconveniente al realizar la transacción. BIBLIOGRAFÍA AECE (2002). “Uso de Internet en el sector Agencias de Viajes en España”, estudio realizado por la Asociación Española de Comercio Electrónico. Disponible en: http://www.aece.org/docs/INFORMEFINAL.pdf, [24/10/2002] MACÍAS, M. (1999). “Nuevas tecnologías aplicadas a la gestión turística”, Turitec 99. Disponible en: http://www.turismo.uma.es/turitec/turitec99/pdf/c3.pdf, [4/11/2002] AVANTUR (2000). “Posibilidades del Turismo en Internet”. Disponible en: http://avantur.com/espanol/documentos/download/Comercializacion%20del%20turismo%20 en%20Internet_oct-2000.pdf, [24/10/2002] DOCUMENTO REQUERIMIENTOS Proyecto: Sistema de reservación de vuelos. id Descripcion Necesidad Prioridad Tipo Riesgo 1 Realizar un sistema que permita hacer consultas y reservaciones de vuelos a través del internet. Facilitar la consulta y reservacion de boletos. Alta No funcional Alto 2 La aplicación deberá permitir a los usuarios acceder las 24 horas del días y los 365 días del año. Tener información cuando el usuario requiera. Alta No funcional Alto 3 El sistema permite realizar la compra de los boletos de forma online. Ética y Seguridad en las Transacciones Alta No funcional Alto 4 Al ingresar se presenta un mensaje de bienvenida, describiendo los servicios ofrecidos, junto con la opción para registrarse por primera vez. Fácil manejo de la aplicación. Alta Funcional Alto 5 Para acceder a los servicios, el usuario debe ingresar su login y password previamente obtenidos. Tener información actualizada, asi como privacidad de la información. Alta Funcional Alto 6 El usuario al momento de ingresar al sistema puede realizar: la consulta de vuelos, reservaciones de vuelos y pago de boletos. Tener información cuando el usuario requiera. Alta Funcional Medio 7 La consulta de vuelos se puede hacer de tres maneras: por horarios de vuelos, tarifas de vuelos y estado de vuelo. Tener información cuando el usuario requiera. Media Funcional Medio 8 Al realizar la consulta por horario, el sistema mostrará los horarios de las diferentes aerolíneas que dan servicios entre dos ciudades. Tener información cuando el usuario requiera. Media Funcional Medio 9 Al realizar la consulta por tarifas el sistema mostrará los vuelos entre dos ciudades dando prioridad su costo. Tener información cuando el usuario requiera. Media Funcional Bajo 10 Al realizar la consulta por estado, mostrará la información del vuelo incluyendo la disponibilidad de asientos y en el caso de haber un vuelo para el mismo día, ver si está a tiempo. Tener información cuando el usuario requiera. Media Funcional Bajo 11 Se debe incluir preferencias en las búsquedas como: la fecha, categoría de asiento, aerolínea y vuelos directos. Tener información cuando el usuario requiera. Media Funcional Bajo 12 Al hacer una reservación el usuario debe especificar la fecha, horario y tarifa establecida, además puede reservar un itinerario compuesto de múltiples vuelos, para uno o más pasajeros. Tener información cuando el usuario requiera. Baja Funcional Medio 13 El usuario debe contar con una tarjeta de crédito con fondos, para poder acceder a la compra de boletos. Facilitar la consulta y reservacion de boletos. Media No funcional Bajo 14 El usuario debe estar previamente registrado con un número de tarjeta de crédito válida para poder adquirir los boletos aéreos, o de lo contrario proveerla en el momento de la compra. Tener información actualizada, asi como privacidad de la información. Alta Funcional Medio 15 El usuario podrá acceder, modificar o cancelar su propio registro en cualquier momento. Tener información cuando el usuario requiera. Baja Funcional Bajo 16 El sistema se desarrollará en el Lenguaje de Programación Java a través de la plataforma NetBeans Baja No funcional Bajo IMAGEN DEL PRODUCTO