UNIVERSIDAD DE LAS CIENCIAS INFORMÁTICAS FACULTAD 2
SISTEMA AUTOMATIZADODE GESTIÓN DE VUELO PARA EL AVIÓN IL-96-300.
Trabajo de Diploma para optar por el Título de Ingeniero en Ciencias Informáticas.
Autores: Ernesto Avila Domenech.
Yoandry Rodríguez Fernández.
Tutores: Ing. Maidelis Milanés Luque.
Ing. Leydis Esther Garzón Giro.
Ciudad de La Habana, Julio 2008.
“Año 50 de la Revolución”
Página II
"La Revolución se lleva en el corazón no en la boca para vivir de ella."
Página III
DECLARACIÓN DE AUTORÍA
Declaro que soy el único autor de este trabajo y autorizo a la Universidad de las Ciencias Informáticas a hacer uso del mismo en su beneficio.
Para que así conste firmo la presente a los ____ días del mes de del año 2008.
Yoandry Rodríguez Fernández. Ernesto Avila Domenech.
________________________ _____________________
Autor Autor
Leydis Esther Garzón Giro. Maidelis Milanés Luque.
______________________ _____________________
Tutor Tutor
Página IV
OPINIÓN DEL TUTOR DEL TRABAJO DE DIPLOMA
Título: Sistema Automatizado de Gestión de Vuelo para el Avión IL-96-300.
Autor(es): Ernesto Avila Domenech.
Yoandry Rodríguez Fernández.
Los tutores del presente Trabajo de Diploma consideran que durante su ejecución los estudiantes mostraron las cualidades que a continuación se detallan:
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
__________________________________________________________________________________________
Por todo lo anteriormente expresado considero que los estudiantes están aptos para ejercer como Ingenieros Informáticos y propongo que se le otorgue al Trabajo de Diploma la calificación de ___.
______________ ______________ ______________
Firma Firma Fecha
Yoandry:
…A mi mamá por estar siempre allí.
…A ti Nany por apoyarme.
Agradecimientos
Ernesto:
…A mis padres por existir.
...A mi hermano por ayudarme tanto en todo este tiempo.
…A mis amigos en especial Edgar por ayudarme a superar los momentos difíciles.
…A Baby por aguantarme tanto.
…A Rosita, Humberto y Susana por su gran apoyo.
…A todos los que hicieron que este día fuese posible.
Dedicatoria
Yoandry
A mis padres…
Ernesto
A mis abuelos en el cielo
y a mis padres en la tierra…
Resumen
Página VII
Resumen
La tripulación de Cubana de Aviación que opera los aviones IL-96 serie 300 tiene como principal objetivo la seguridad de sus vuelos. Actualmente están presentando algunas dificultades en los cálculos necesarios para la realización de estos, debido a la complejidad y exactitud de los cálculos para obtener el Plan de Vuelo y la Hoja de Peso y Balance. Por ello resulta de suma importancia para la tripulación la elaboración de un plan de vuelo confiable, que brinde los resultados en un breve período de tiempo, asegurando así la efectividad de los cálculos, cuya exactitud garantizaría la seguridad del vuelo. De igual forma debe tenerse en cuenta la ubicación de la carga y los pasajeros dentro del avión contemplados en la Hoja de Peso y Balance. Estos cálculos y otros que deben realizarse en muchas ocasiones manualmente por la tripulación del avión deben de estar exentos de errores humanos por lo que el principal objetivo de este trabajo es realizar un sistema que gestione la información de los vuelos del IL-96-300. El sistema desarrollado facilita estos cálculos del Plan de Vuelo y el Peso y Balance para un IL-96-300 lo que permite obtener una mayor autonomía y evita los posibles errores que pudieran cometerse en la confección manual de estos planes. Dicho sistema reportará beneficios significativos e importantes para la tripulación de estos aviones ahorrando una suma considerable de dinero al país.
Tabla de Contenidos
Página VIII
Tabla de Contenidos
RESUMEN ... VII
INTRODUCCIÓN ... 1
CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA. ... 4
INTRODUCCIÓN ... 4
1.1 ESTADO DEL ARTE ... 4
1.2 METODOLOGÍAS DE DESARROLLO DE SOFTWARE ... 5
1.3 HERRAMIENTAS ... 8
1.4 LENGUAJE DE MODELADO ... 9
1.5 PLATAFORMAS DE DESARROLLO ... 9
1.6 ENTORNO DE DESARROLLO ... 15
1.7 LENGUAJES DE PROGRAMACIÓN... 16
1.8 PROPUESTA ... 19
1.9 ESTRUCTURA DE LOS MÓDULOS ... 20
1.10 ARQUITECTURA PROPUESTA ... 20
CONCLUSIONES ... 21
CAPÍTULO 2: CARACTERÍSTICAS DEL SISTEMA. ... 22
INTRODUCCIÓN ... 22
2.1 OBJETO DE ESTUDIO ... 22
2.2 PROPUESTA DEL SISTEMA ... 24
2.3 MODELO DE NEGOCIO. ... 24
2.4 ESPECIFICACIÓN DE REQUISITOS ... 33
2.5 MODELO DE CASOS DE USO DEL SISTEMA ... 36
CONCLUSIONES ... 55
CAPÍTULO 3: ANÁLISIS Y DISEÑO DEL SISTEMA. ... 56
INTRODUCCIÓN ... 56
3.1 ANÁLISIS ... 56
3.2 DISEÑO ... 61
CONCLUSIONES ... 73
CAPÍTULO 4: IMPLEMENTACIÓN. ... 74
INTRODUCCIÓN ... 74
4.1. MODELO DE DESPLIEGUE ... 74
4.2. DIAGRAMAS DE COMPONENTES ... 75
CONCLUSIONES ... 76
CAPÍTULO 5: ESTUDIO DE FACTIBILIDAD. ... 77
INTRODUCCIÓN ... 77
5.1 PLANIFICACIÓN BASADA EN CASOS DE USO. ... 77
5.2 BENEFICIOS TANGIBLES E INTANGIBLES ... 82
5.3 ANÁLISIS DE COSTOS Y BENEFICIOS. ... 82
CONCLUSIONES ... 83
CONCLUSIONES GENERALES ... 84
RECOMENDACIONES ... 85
ANEXOS ... 86
ANEXO 1:DIAGRAMAS DE INTERACCIÓN POR REALIZACIÓN DE CU ... 86
BIBLIOGRAFÍA ... 101
GLOSARIO DE TÉRMINOS ... 102
Tabla de Figuras
Página IX
Tabla de Figuras
FIG.1:EJECUCIÓN DE UN PROGRAMA JAVA. ... 10
FIG.2:FRAMEWORK .NET ... 12
FIG.3:BIBLIOTECAS DE CLASES ... 14
FIG.4:PROCESO DE DESARROLLO DE SOFTWARE ... 6
FIG.5:ESTRUCTURA DE LOS MÓDULOS. ... 20
FIG.6:ARQUITECTURA DEL SISTEMA. ... 21
FIG.7:DIAGRAMA DE CASO DE USO DEL NEGOCIO PESO Y BALANCE ... 27
FIG.8:DIAGRAMA DE CASO DE USO DEL NEGOCIO PLAN DE VUELO. ... 27
FIG.9:DIAGRAMA DE ACTIVIDADES CUREALIZAR PESO Y BALANCE. ... 30
FIG.10:DIAGRAMA DE ACTIVIDADES CUREALIZAR PLAN DE VUELO. ... 31
FIG.11:MODELO DE OBJETOS CUREALIZAR PESO Y BALANCE. ... 32
FIG.12:MODELO DE OBJETOS CUREALIZAR PLAN DE VUELO... 32
FIG.13:DIAGRAMAS DE CASOS DE USO DEL SISTEMA PESO Y BALANCE ... 37
FIG.14:DIAGRAMAS DE CASOS DE USO DEL SISTEMA PLAN DE VUELO ... 38
FIG.15:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR GALLEY. ... 56
FIG.16:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR AVIÓN. ... 57
FIG.17:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR CREW. ... 57
FIG.18:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR HOJA DE PESO Y BALANCE. ... 58
FIG.19:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR VERSIÓN. ... 58
FIG.20:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR AEROPUERTO ... 59
FIG.21:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR PUNTO DE CONTROL. ... 59
FIG.22:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR AVIÓN. ... 60
FIG.23:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR RUTAS. ... 60
FIG.24:DIAGRAMA DE CLASES DEL ANÁLISIS CUGESTIONAR PLAN DE VUELO. ... 61
FIG.25:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR AVIÓN. ... 62
FIG.26:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR CREW. ... 63
FIG.27:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR GALLEY ... 64
FIG.28:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR HOJA PESO Y BALANCE ... 65
FIG.29:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR VERSIÓN ... 66
FIG.30:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR AEROPUERTO ... 67
FIG.31:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR AVIÓN ... 68
FIG.32:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR PUNTO DE CONTROL ... 69
FIG.33:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR RUTA ... 69
FIG.34:DIAGRAMA DE CLASES DEL DISEÑO CUGENERAR PLAN DE VUELO ... 70
FIG.35:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR CREW ... 71
FIG.36:DIAGRAMA DE CLASES DEL DISEÑO CUGESTIONAR VERSIÓN ... 72
FIG.37:MODELO DE DESPLIEGUE ... 74
FIG.38:DIAGRAMA DE COMPONENTES.PESO Y BALANCE ... 75
FIG.39:DIAGRAMA DE COMPONENTES.PLAN DE VUELO ... 76
Introducción
Página 1
Introducción
El IL-96 es un avión de pasajeros de largo alcance diseñado y empezado a fabricar en la antigua Unión Soviética, actual Rusia. Surgió en principio como una mejora del IL-86, con la agregación de un ala totalmente transformada, motores silenciosos y de bajo consumo, una cabina de vuelo mucho más moderna, con un interior preparado para albergar distintas clases. En cuanto a las prestaciones del avión, se mejoró el régimen de crucero y de ascensos, los consumos, y unas mejoras considerables en despegues y aterrizajes, además de haberle añadido aletas marginales (winglets) en los extremos de las alas, que le otorgaban unas mejores condiciones aerodinámicas.
El IL-96-300 es la variante inicial, equipada con motores Aviadvigatel (Soloviev) PS90A turbofans. Su desarrollo comenzó a mediados de los años 80. Dicho avión posee una longitud de 55,3 m y una altura de 17,5 m, pesando estando vacío unas 183 t pudiendo llegar a 250 t. Su velocidad máxima es de 82 Mach y su mayor capacidad de combustible es de 150 000 L. Puede transportar la cifra de 262 pasajeros.
El primero de ellos arribó a La Habana el 31 de diciembre del 2005 y desde entonces realiza vuelos a países del continente americano. Esto ha sido posible por una gran preparación que a hecho la tripulación asignada por la empresa de Cubana de Aviación. En la actualidad es sumamente importante para la tripulación de estos aviones realizar los cálculos de peso y balance del avión, para lograr de este modo un vuelo satisfactorio, garantizando ante todo la seguridad de los pasajeros. Hoy en día estos cálculos han de hacerse de forma manual. Las pocas tablas existentes y que son sumamente necesarias para realizar la función, han sido hechas por el propio personal de la empresa, y el número de cálculos que se necesita es excesivamente grande. Debido a esto y a que en ocasiones los cálculos se realizan en condiciones de peligro, existe la posibilidad real de introducir errores humanos, y poner en peligro la vida de los pasajeros y de la tripulación. También necesitan realizar una serie de cálculos, datos, e informes que en la actualidad son obtenidos de empresas internacionales, y en el peor de los casos hechas manualmente. Por solo citar un ejemplo, para que el avión IL-96-300 pueda realizar vuelos, se deben solicitar previamente los Planes de Vuelo a SITA (Sociedad Internacional de Telecomunicaciones Aeronáuticas, con sede en Atlanta), pagando por ello 6 dólares por cada plan de vuelo, más un valor agregado de aproximadamente 10 dólares por concepto de comunicación.
Introducción
Página 2
Otro problema que presentan es que la mayoría de los procesos que tienen lugar antes de la salida o llegada de un vuelo se hacen actualmente en los aeropuertos cubanos de forma manual, haciendo engorroso todo este trabajo que tiene como premisa fundamental la rapidez y seguridad. Todos estos aspectos motivaron la necesidad de crear un sistema que diera solución a estas dificultades.
El problema de esta investigación esta dado por el alto volumen de información que se tramita para la realización de los vuelos, y se quiere contar con un sistema automatizado que permita gestionar la información de los vuelos de forma ágil y precisa. Tomando en consideración la situación problémica anteriormente expuesta, se puede plantear como problema científico ¿Cómo mejorar la gestión de la información de los vuelos del IL-96-300?
Para dar solución a la problemática planteada el objeto de estudio lo constituyen los procesos para la gestión de vuelos. Según lo planteado el campo de acción está conformado por los procesos ejecutados en la elaboración de los cálculos del Plan de Vuelo y del Peso y Balance para el avión IL- 96-300.
Como idea a defender se plantea: si se confecciona el sistema automatizado de gestión de vuelo para el avión IL-96-300, entonces se brindará a los tripulantes del avión un sistema que posibilite un mejor servicio de gestión de vuelos.
El objetivo general es realizar un sistema que gestione la información de los vuelos del IL-96-300.
De ahí se derivan los siguientes objetivos específicos:
Realizar la gestión de la información referente al Peso y Balance del Avión IL-96-300.
Realizar la gestión de la información referente al Plan de Vuelo del Avión IL-96-300.
Para alcanzar dichos objetivos se planteó desarrollar las siguientes tareas:
Realizar entrevistas con los clientes.
Seleccionar y fundamentar la metodología y herramientas a utilizar para el desarrollo del sistema informático.
Estudiar detalladamente el proceso de gestión de la información de los vuelos del avión IL-96- 300.
Introducción
Página 3
Realizar la implementación de los módulos de Peso y Balance y Plan de Vuelo del sistema Ilyushin.
Desarrollar el documento de la investigación.
Entre los resultados esperados de este trabajo de diploma está la concepción de un sistema que gestione la información de los vuelos del IL-96-300.
El presente trabajo está dividido en cinco capítulos y un anexo, que recogen todos los temas abordados en la investigación y desarrollo del mismo, como la Fundamentación Teórica, Características del Sistema, Análisis y Diseño, Implementación y Estudio de Factibilidad del Sistema de Gestión de Vuelos del IL-96-300.
Capítulo1: Fundamentación Teórica, explica la metodología utilizada para la investigación, e incluye un estado del arte del tema tratado, a nivel internacional y nacional. Además fundamenta las tecnologías, metodologías y herramientas escogidas para el desarrollo de la solución a proponer.
Capítulo 2: Características del Sistema, describe el objeto de estudio, el problema y situación problémica, objeto de automatización, la propuesta del sistema. Además la especificación de los requisitos funcionales y no funcionales, definiéndose los casos de uso del sistema.
Capítulo 3: Análisis y Diseño del Sistema, se aborda los detalles relacionados con el análisis y diseño del sistema, representándose los diagramas de clases del análisis, los diagramas de colaboración y los diagramas de clases del diseño, con sus respectivas descripciones.
Capítulo 4: Implementación, se representan gráficamente el modelo de despliegue y los diagramas de componentes que representan la construcción del sistema propuesto.
Capítulo 5: Estudio de Factibilidad, donde se realiza la estimación de tiempo y el costo del proyecto para analizar si es viable, analizando los beneficios que proporcionará la construcción del sistema propuesto con las herramientas seleccionadas.
Capítulo 1: Fundamentación Teórica
Página 4
Capítulo 1: Fundamentación Teórica.
Introducción
En el presente capítulo se realizará un estudio del arte donde se abordarán de forma valorativa y crítica las tendencias actuales tanto a nivel internacional y nacional del sistema a construir. Se brindarán elementos de las posibles herramientas a utilizar, lenguajes de programación y metodologías que se podrán utilizar para la realización del sistema, teniendo en cuenta los sistemas que existen en la actualidad para realizar las tareas a implementar.
1.1 Estado del arte
La información necesaria para la realización de un vuelo está compuesta principalmente por el análisis de pista, el análisis del peso y balance del avión y por último la confección del plan de vuelo. Existen antecedentes de un sistema construido para la obtención del plan de vuelo para otros modelos de avión como YAK-40, YAK-42, AN-26 e IL-62. Es conocido como SAPLAV y fue construido en la Ciudad Universitaria José Antonio Echeverría (CUJAE) en el año 1993. En la actualidad no existe un único software que realice la gestión de vuelos del avión IL-96-300 a nivel nacional, sino que se cuenta con tres sistemas que de forma independiente gestionan el análisis del peso y balance, el análisis de pista y la confección del plan de vuelo respectivamente.
Sistema automatizado para la obtención del Plan de vuelo del IL-96-300.
Este sistema facilita los cálculos para la obtención del plan de vuelo de forma autónoma evitando posibles errores. Para la planificación de los vuelos el sistema utiliza las especificaciones para este tipo de avión contenidas en el Manual Básico de Operaciones y el Manual de Vuelo, además hace un análisis de los datos meteorológicos y las Cartas de tiempo, además de las Cartas de vientos y temperaturas.
Sistema de Automatización para el Análisis de pista del IL-96-300.
Este sistema es capaz de realizar los cálculos necesarios para crear los Análisis de Pista del IL-96-300 y de gestionar toda la información de los aeropuertos correspondientes a los Análisis de Pista. El
Capítulo 1: Fundamentación Teórica
Página 5
sistema además de gestionar la información referente a los aeropuertos, es capaz de realizar dos tipos de análisis de pista el análisis operativo y el análisis completo.
Sistema de automatización para el peso y Balance del IL-96-300.
El sistema es capaz de realizar la ubicación de la carga y los pasajeros en el avión, de una forma balanceada. Realizar la Hoja de Peso y Balance, dar la posibilidad de insertar un nuevo avión al llegar a Cuba con su Peso Básico Operacional e índices correspondientes y ejecutar en forma óptima el centrado del avión. Incluye además la posibilidad de realizar cambios en el Performance del avión por un usuario autorizado. Los tripulantes del avión tienen conocimiento de un sistema en forma de calculadora que permite crear el análisis de pista y permite calcular el peso y balance del avión, pero este software es exclusivo de Rusia por lo que no se pudo acceder a él para analizar su funcionamiento.
1.2 Metodologías de Desarrollo de Software
En el mundo de la informática no se para de hablar de procesos de desarrollo, buscando el modo de trabajar eficientemente para evitar catástrofes que llevan a que un gran porcentaje de proyectos se terminen sin éxito. El objetivo de un proceso de desarrollo es aumentar la calidad del software (en todas las fases por las que pasa) a través de una mayor transparencia y control sobre el proceso. Por eso es de gran interés mostrar algunas metodologías de desarrollo que se pueden utilizar para llevar a cabo un software educativo sin importar el tipo que sea.
RUP
La metodología pesada RUP, llamada así por sus siglas en inglés Rational Unified Process, es uno de los procesos más generales de los existentes actualmente, ya que en realidad está pensado para adaptarse a cualquier proyecto, y no tan solo de software. RUP se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema. Cada ciclo concluye con una versión del producto para los clientes.
Esta metodología utiliza el Lenguaje Unificado de Modelado (UML, Unified Modeling Language) para preparar todos los esquemas de un sistema de software. UML es una parte esencial del Proceso
Capítulo 1: Fundamentación Teórica
Página 6
Unificado, fueron desarrollados paralelamente por las mismas personas, haciendo que su integración sea un éxito.
Fig. 1: Proceso de Desarrollo de Software
“El Proceso Unificado es un proceso de desarrollo de Software. O sea es el conjunto de actividades necesarias para transformar los requisitos de un usuario en un sistema de software. Sin embargo, el Proceso Unificado es más que un simple proceso; es un marco de trabajo genérico que puede especializarse para una gran variedad de sistemas de software, para diferentes áreas de aplicación, diferentes tipos de organización, diferentes niveles de aptitud y diferentes tamaños de proyecto. El Proceso Unificado está basado en componentes, lo cual quiere decir que el software en construcción está formado por componentes software interconectados a través de interfaces bien definidas”
Los aspectos definitorios y a la vez que convierten en único al Proceso Unificado, se resumen en tres fases: dirigido por casos de uso, centrado en la arquitectura, e iterativo e incremental.
– Dirigido por casos de uso: Un caso de uso es el conjunto de acciones que debe realizar un sistema para dar un resultado de valor a un determinado usuario; se capta cuando se modela el proceso del negocio y se representa a través de los requerimientos. A partir de aquí todos los modelos que se obtienen, como resultado de los diferentes flujos de trabajo, representan la realización de los casos de uso.
– Centrado en la arquitectura: La arquitectura muestra la visión común del sistema completo en la que el equipo de proyecto y los usuarios deben estar de acuerdo, por lo que describe los elementos del modelo que son más importantes para su construcción, los cimientos del sistema que son necesarios como base para comprenderlo, desarrollarlo y producirlo económicamente.
– Iterativo e incremental: RUP propone que cada fase se desarrolle en iteraciones. Una iteración involucra actividades de todos los flujos de trabajo, aunque desarrolla fundamentalmente algunos más que otros. Con su culminación se obtiene un producto con un determinado nivel, que irá creciendo incrementalmente en cada iteración.
Capítulo 1: Fundamentación Teórica
Página 7
El RUP incluye cuatro etapas importantes que son: Inicio, Elaboración, Construcción y Transición, cada una de ellas compuesta de una o varias iteraciones. Estas etapas revelan que para producir una versión del producto en desarrollo se emplean todas las actividades de ingeniería pero con diferente énfasis. Además contempla flujos de trabajo de soporte que involucran actividades de planificación de recursos humanos, tecnológicos y financieros. Una particularidad de esta metodología es que, en cada ciclo de iteración, se hace exigente el uso de artefactos.
Extreme Programing (XP)
Programación Extrema (XP) es una metodología reciente en el desarrollo de software. La filosofía de XP es satisfacer al completo las necesidades del cliente, por eso lo integra como una parte más del equipo de desarrollo.
Fue creada para el desarrollo de aplicaciones donde el cliente no sabe muy bien lo que quiere, lo que provoca un cambio constante en los requisitos que debe cumplir la aplicación. Por este motivo esta metodología se adapta a las necesidades del cliente y la aplicación se va reevaluando en períodos de tiempo cortos. Está diseñada para el desarrollo de aplicaciones que requieran un grupo de programadores pequeño, donde la comunicación sea más factible que en grupos de desarrollo grandes. La comunicación es un punto importante y debe realizarse entre los programadores, los jefes de proyecto y los clientes.
La metodología se basa en:
Pruebas Unitarias: se basa en las pruebas realizadas a los principales procesos, de tal manera que adelantándose en algo hacia el futuro, se pueda hacer pruebas de las fallas que pudieran ocurrir. Es como si se adelantara a obtener los posibles errores.
Refabricación: se basa en la reutilización de código, para lo cual se crean patrones o modelos estándares, siendo más flexible al cambio.
Programación en pares: una particularidad de esta metodología es que propone la programación en pares, la cual consiste en que dos desarrolladores participen en un proyecto en una misma estación de trabajo. Cada miembro lleva a cabo la acción que el otro no está haciendo en ese momento. Es como el chofer y el copiloto: mientras uno conduce, el otro consulta el mapa.
Capítulo 1: Fundamentación Teórica
Página 8
Lo fundamental en este tipo de metodología es:
La comunicación, entre los usuarios y los desarrolladores.
La simplicidad, al desarrollar y codificar los módulos del sistema.
La retroalimentación, concreta y frecuente del equipo de desarrollo, el cliente y los usuarios finales.
1.3 Herramientas Rational Rose
Rational Rose Enterprise Edition se utiliza para la representación gráfica de los modelos que se obtienen durante el ciclo de vida de un software empleando como notación el lenguaje de modelado UML. Facilita la modelación de los procesos del negocio, captura de requisitos, análisis y diseño orientado a objetos, implementación del sistema mediante componentes y despliegue en las diferentes vistas, que son: vista de casos de uso, vista lógica, vista de componentes y vista de despliegue.
Es una herramienta compatible solamente con sistemas operativos de Microsoft que permite generar documentación y código fuente (de programas y bases de datos) a partir de los modelos para lenguajes como son: Java, C++, Ada, Visual Basic, entre otros. Además permite la ingeniería inversa (obtención de los modelos a partir del código fuente) para diferentes lenguajes, esta permite el ahorro de tiempo a los desarrolladores y disminuye las probabilidades de cometer errores.
Rational se integra con varios entornos de desarrollo, sobre todo con diversas versiones del Visual Studio. Usa un lenguaje estándar común para todo el equipo de desarrollo que facilita la comunicación.
Acelera la implementación de sistemas con la calidad requerida.
Crystal Report
Crystal Reports es una herramienta para diseño de reportes creada mucho antes del nacimiento de la tecnología .NET; gracias a ésta una de las partes más tediosas e importantes del diseño de aplicaciones, el diseño de reportes, se hace más sencilla. Crystal Reports puede ser utilizado con diferentes bases de datos, entre ellas MS Access, SQL Server, Oracle, Informix, etc.
Capítulo 1: Fundamentación Teórica
Página 9
Crystal Report 10 es la herramienta de elaboración de informes estándar para Visual Studio .NET. Esta herramienta permite crear contenidos interactivos con calidad de presentación. Mediante Crystal Report se pueden crear informes en función de las necesidades de desarrollo:
Seleccionar la opción de diseño de informe que le interese, desde informes estándar hasta cartas modelo, o crear una propia.
Mostrar gráficos en los que los usuarios puedan profundizar con el fin de ver datos detallados de los informes.
Calcular resúmenes, subtotales, y porcentajes de datos agrupados.
Dar formato al texto y rotar objetos de texto cuando se cumplan determinadas condiciones.
Crystal Report 10 posee un fácil mecanismo para exportar los informes a varios formatos como W ord y Excel, así como a formatos PDF, HTML.
1.4 Lenguaje de Modelado UML
El Lenguaje Unificado de Modelado (UML, Unified Modeling Language) es la herramienta usada en la descripción y construcción de software reconocida por la industria como un estándar. Es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y documentar artefactos de un sistema de software. Se usa para entender, diseñar, configurar, mantener y controlar la información sobre los sistemas a construir.
UML capta la información sobre la estructura estática y el comportamiento dinámico de un sistema.
Este lenguaje de modelado pretende unificar la experiencia pasada sobre técnicas de modelado e incorporar las mejores prácticas actuales en un acercamiento estándar. UML es una notación con la cual se construyen sistemas por medio de conceptos orientados a objetos. Este prescribe un conjunto de notaciones y diagramas estándares, y describe la semántica esencial de lo que estos diagramas y símbolos significan.
1.5 Plataformas de Desarrollo
Antes de analizar una plataforma se debe comenzar por definir qué se conoce por plataforma:
Capítulo 1: Fundamentación Teórica
Página 10
Una plataforma es una combinación de hardware y software usada para ejecutar aplicaciones; en su forma más simple consiste únicamente de un sistema operativo, una arquitectura, o una combinación de ambos.
Plataforma Java
Java es una tecnología orientada al desarrollo de software con el cual se puede realizar cualquier tipo de programa. Hoy en día, la tecnología Java ha cobrado mucha importancia en el ámbito de Internet gracias a su plataforma J2EE. La tecnología Java está compuesta básicamente por dos elementos: el lenguaje Java y su plataforma. Es una plataforma sólo de software y se ejecuta sobre las otras plataformas de hardware.
La plataforma Java tiene dos componentes: la máquina virtual de Java (JVM) y la Interfaz de programación de aplicaciones (Java API, Application Programming Interface). El Java API es una gran colección de componentes de software que proporcionan muchas utilidades para el programador, por ejemplo, los API’s para las interfaces gráficas. Los API’s de Java están agrupados en librerías de ciertas Clases e interfaces, estas librerías son conocidas como paquetes.
El siguiente gráfico describe un programa que se está ejecutando sobre la plataforma Java. Como se puede observar, el Java API y la máquina virtual aíslan al programa del hardware.
Fig. 2: Ejecución de un programa Java.
Plataforma .NET
La Plataforma .NET es una plataforma de desarrollo de software desarrollada por Microsoft que permite un rápido desarrollo de Aplicaciones tanto Desktop como Web, compitiendo en este ultimo caso con la plataforma Java de Sun Microsystem. Es una nueva tecnología con énfasis en
Capítulo 1: Fundamentación Teórica
Página 11
transparencia de redes, con independencia de plataforma, permitiendo un rápido desarrollo de aplicaciones, combinando la informática y las comunicaciones y ofreciendo las herramientas que se necesitan para transformar las aplicaciones Web.
.NET utiliza los Servicios Web como un medio para poder interactuar con distintas tecnologías. Permite conectar distintos sistemas operativos, dispositivos físicos, información y usuarios. Les da a los desarrolladores las herramientas y tecnologías para hacer rápidamente soluciones de negocios que involucran distintas aplicaciones, dispositivos físicos y organizaciones.
La idea central que se implementa con la plataforma .NET es la del uso de servicios con el objetivo de simplificar el desarrollo de aplicaciones Web. Más concretamente software como servicio y de cómo construir, instalar, consumir, integrar o agregar estos servicios para que puedan ser accedidos mediante Internet. La plataforma .NET permite usar Internet y su capacidad de distribución para que los usuarios accedan desde cualquier dispositivo, en cualquier sistema operativo y lugar a la funcionalidad que los Servicios Web proveen.
.NET está diseñada para que se puedan desarrollar componentes de software utilizando casi cualquier lenguaje de programación, de forma que lo que se escriba en un lenguaje pueda utilizarse desde cualquier otro de la manera más transparente posible. Esto es, en vez de estar limitados a un único lenguaje de programación, permitir cualquier lenguaje de programación, siempre y cuando se adhiera a unas normas comunes establecidas para la plataforma .NET en su conjunto.
En el corazón de .NET se encuentra el marco de trabajo .NET (.NET Framework). Este contiene dos componentes principales: Lenguaje común en tiempo de ejecución (CLR, Common Language Runtime) y la Biblioteca de Clases de Framework .NET, que incluye ADO.NET, ASP.NET y los formularios Windows Forms. Common Language Runtime es el fundamento de esta tecnología.
Capítulo 1: Fundamentación Teórica
Página 12 Fig. 3: Framework .NET
Common Language Runtime
El CLR es el motor encargado de gestionar la ejecución de las aplicaciones desarrolladas a las que ofrece numerosos servicios que simplifican su desarrollo y favorecen su fiabilidad y seguridad. Por esta razón, al código de estas aplicaciones se le suele llamar código gestionado, y al código no escrito para ser ejecutado directamente en la plataforma .NET se le suele llamar código no gestionado.
El código generado por los compiladores para la plataforma .NET no es código máquina para ningún tipo de Unidad Central de Procesos (CPU) en concreto, sino que generan código escrito en el lenguaje intermedio conocido como Lenguaje Intermedio de Microsoft (Microsoft Intermediate Language, MSIL), este es el código máquina del CLR que actúa como una máquina virtual, encargándose de ejecutar las aplicaciones diseñadas para la plataforma .NET. Es un lenguaje de un nivel de abstracción mucho más alto que el de la mayoría de los códigos máquina de las CPUs existentes, e incluye instrucciones que permiten trabajar directamente con objetos (crearlos, destruirlos, inicializarlos, llamar a métodos virtuales, etc.), tablas y excepciones (lanzarlas, capturarlas y tratarlas).
Las principales características y servicios que ofrece el CLR son:
Modelo de programación consistente: A todos los servicios y facilidades ofrecidos por el CLR se accede de la misma forma: a través de un modelo de programación orientado a objetos. En los
Capítulo 1: Fundamentación Teórica
Página 13
sistemas operativos actuales (por ejemplo, los de la familia Windows), a algunos servicios se les accede a través de llamadas a funciones globales definidas en Biblioteca de enlace dinámico (Dynamic Link Library, DLL) y a otros a través de objetos (objetos COM en el caso de la familia Windows).
Eliminación del “infierno de las DLLs”: La plataforma .NET elimina el problema conocido como
"infierno de las DLLs" que consiste en que al sustituirse versiones viejas de DLLs compartidas por versiones nuevas puede que dejen de funcionar algunas aplicaciones si las nuevas no son 100%
compatibles con las anteriores. En la plataforma .NET las versiones nuevas de las DLLs pueden coexistir con las viejas, de modo que las aplicaciones diseñadas para ejecutarse usando las viejas podrán seguir usándolas tras la instalación de las nuevas.
Ejecución multiplataforma: El CLR actúa como una máquina virtual, encargándose de ejecutar las aplicaciones diseñadas para la plataforma .NET. Es decir, toda plataforma para la que exista una versión del CLR podrá ejecutar cualquier aplicación .NET.
Integración de lenguajes: Desde cualquier lenguaje para el que exista un compilador que genere código para la plataforma .NET es posible utilizar código generado para la misma usando cualquier otro lenguaje tal y como si de código escrito usando el primero se tratase.
Gestión de memoria: El CLR incluye un recolector de basura que evita que el programador tenga que tener en cuenta cuándo ha de destruir los objetos que dejen de serle útiles.
Seguridad de tipos: El CLR incluye mecanismos que permiten asegurar que los accesos a tipos de datos siempre se realicen correctamente, para evitar que se produzcan errores difíciles de detectar por acceso a memoria no perteneciente a ningún objeto y es especialmente necesario en un entorno gestionado por un recolector de basura.
Aislamiento de procesos: El CLR asegura que desde código perteneciente a un determinado proceso no se pueda acceder a código o datos pertenecientes a otro, lo que evita errores de programación muy frecuentes e impide que unos procesos puedan atacar a otros.
Tratamiento de excepciones: En el CLR todo los errores que se puedan producir durante la ejecución de una aplicación se propagan de igual manera: mediante excepciones. Anteriormente los sistemas Windows propagaban los errores de diferentes vías, mediante códigos de error en formato Win32, mediante HRESULTs y mediante excepciones.
Soporte multihilo: El CLR es capaz de trabajar con aplicaciones divididas en múltiples hilos de ejecución que pueden ir evolucionando por separado en paralelo o intercalándose.
Capítulo 1: Fundamentación Teórica
Página 14
Distribución transparente: El CLR ofrece la infraestructura necesaria para crear objetos remotos y acceder a ellos de manera completamente transparente a su localización real, tal y como si se encontrasen en la máquina que los utiliza.
Seguridad avanzada: El CLR proporciona mecanismos para restringir la ejecución de ciertos códigos o los permisos asignados a los mismos según su procedencia o el usuario que los ejecute.
Interoperabilidad con código antiguo: El CLR incorpora los mecanismos necesarios para poder acceder desde código escrito para la plataforma .NET a código escrito previamente a la aparición de la misma y, por tanto, no preparado para ser ejecutado. Estos mecanismos permiten tanto el acceso a objetos COM como el acceso a funciones sueltas de DLLs preexistentes (como la API Win32).
Bibliotecas de clases
Para programar una aplicación se necesitan realizar acciones como manipulación de archivos, acceso a datos, conocer el estado del sistema, implementar seguridad, etc. El Framework organiza toda la funcionalidad del sistema operativo en un espacio de nombres jerárquico de forma que a la hora de programar resulta bastante sencillo encontrar lo que se necesita.
Fig. 4: Bibliotecas de Clases
Capítulo 1: Fundamentación Teórica
Página 15
Para ello, el Framework posee un sistema de tipos universal, denominado Sistema de Tipo Común (Common Type System, CTS). Este sistema permite que el programador pueda interactuar los tipos que se incluyen en el propio Framework (biblioteca de clases de .Net) con los creados por él mismo (clases). De esta forma se aprovechan las ventajas propias de la programación orientada a objetos, como la herencia de clases predefinidas para crear nuevas clases, o el polimorfismo de clases para modificar o ampliar funcionalidades de clases ya existentes.
1.6 Entorno de Desarrollo Visual Studio .NET 2005
Visual Studio .NET 2005 es un conjunto completo de herramientas de desarrollo para la construcción de aplicaciones Web ASP, servicios Web XML, aplicaciones para escritorio y aplicaciones móviles.
Visual Basic .NET, Visual C++ .NET, Visual C# .NET y Visual J# .NET utilizan el mismo entorno de desarrollo integrado (IDE), que les permite compartir herramientas y facilita la creación de soluciones en varios lenguajes.
Dichos lenguajes aprovechan las funciones de .NET Framework, que ofrece acceso a tecnologías claves para simplificar el desarrollo de aplicaciones Web ASP y servicios Web XML. Visual Studio.NET 2005 permite la creación de aplicaciones de consola, aplicaciones para Windows, archivos DLL, aplicaciones Web, XML Web Services y aplicaciones para dispositivos de bolsillo.
Visual Studio .NET 2005 es una herramienta que proporciona un entorno donde es posible crear aplicaciones avanzadas rápidamente. Algunas de estas características son:
Detección de errores automático: Es posible ahorrar muchas horas de trabajo al utilizar Visual Studio .NET para detectar los errores antes de intentar ejecutar su aplicación. Los errores potenciales se subrayan, de la misma forma que lo hacen algunos procesadores de texto mientras se escribe.
Herramientas de depuración: Visual Studio .NET 2005 mantiene sus herramientas de depuración legendarias que le permiten observar su código en acción y seguir la pista del contenido de las variables.
Capítulo 1: Fundamentación Teórica
Página 16
Diseño de formularios: Es posible crear formularios atractivos con la facilidad de arrastrar y soltar componentes de Visual Studio .NET 2005.
IntelliSense: Visual Studio .NET proporciona la finalización de sentencias de los objetos reconocidos y lista automáticamente la información sobre los parámetros de la función en útiles ToolTips.
1.7 Lenguajes de Programación Lenguaje C#
C# es un lenguaje de propósito general diseñado por Microsoft para su plataforma .NET. Sus principales creadores son Scott Wiltamuth y Anders Hejlsberg, éste último también conocido por haber sido el diseñador del lenguaje Turbo Pascal y la herramienta RAD Delphi. Aunque es posible escribir código para la plataforma .NET en muchos otros lenguajes, C# es el único que ha sido diseñado específicamente para ser utilizado en ella, por lo que programarla usando C# es mucho más sencillo e intuitivo que hacerlo con cualquiera de los otros lenguajes ya que C# carece de elementos heredados innecesarios en .NET. Por esta razón, se suele decir que C# es el lenguaje nativo de .NET. La sintaxis y estructuración de C# es muy similar a la C++, ya que la intención de Microsoft con C# es facilitar la migración de códigos escritos en estos lenguajes a C# y facilitar su aprendizaje a los desarrolladores habituados a ellos. Sin embargo, su sencillez y el alto nivel de productividad son equiparables a los de Visual Basic.
Las principales características de C# son:
Sencillez: Elimina muchos elementos que otros lenguajes incluyen y que son innecesarios. Por ejemplo:
El código escrito en C# es autocontenido, lo que significa que no necesita de ficheros adicionales al propio fuente tales como ficheros de cabecera o ficheros IDL (Lenguaje de Definición de Interfaces).
El tamaño de los tipos de datos básicos es fijo e independiente del compilador, sistema operativo o máquina para quienes se compile (no como en C++), lo que facilita la portabilidad del código.
Capítulo 1: Fundamentación Teórica
Página 17
Se eliminan elementos poco útiles de otros lenguajes, tales como macros, herencia múltiple o la necesidad de un operador diferente del punto (.) para acceder a miembros de espacios de nombres (::).
Modernidad: Incorpora en el propio lenguaje elementos que son muy útiles para el desarrollo de aplicaciones, como un tipo básico decimal que permite realizar operaciones de alta precisión con reales de 128 bits (muy útil en el mundo financiero), la inclusión de una instrucción foreach que permite recorrer colecciones con facilidad, la inclusión de un tipo básico string para representar cadenas o la distinción de un tipo bool específico para representar valores lógicos.
Orientado a objetos: Es orientado a objeto ya que no admiten ni funciones ni variables globales sino que todo el código y datos han de definirse dentro de definiciones de tipos de datos. Soporta todas las características propias del paradigma de programación orientada a objetos:
encapsulamiento, herencia y polimorfismo con la excepción de que sólo admite herencia simple de clases pero si la implementación de múltiples interfaces. En lo referente al encapsulamiento es importante señalar que aparte de los típicos modificadores public, private y protected, C# añade un cuarto modificador llamado internal, que puede combinarse con protected e indica que al elemento a cuya definición precede sólo puede accederse desde su mismo ensamblado.
Orientación a componentes: La sintaxis incluye elementos propios del diseño de componentes que otros lenguajes tienen que simular mediante construcciones más o menos complejas. Es decir, la sintaxis permite definir cómodamente propiedades (similares a campos de acceso controlado), eventos (asociación controlada de funciones de respuesta a notificaciones) o atributos (información sobre un tipo o sus miembros).
Instrucciones seguras: Para evitar errores muy comunes, se han impuesto una serie de restricciones en el uso de las instrucciones de control más comunes. Por ejemplo, toda condición ha de ser una expresión condicional y no aritmética, con lo que se evitan errores por confusión del operador de igualdad (==) con el de asignación (=); y todo caso de un switch ha de terminar en un break o goto que indique cuál es la siguiente acción a realizar, lo que evita la ejecución accidental de casos y facilita su reordenación.
Sistema de tipos unificado: A diferencia de C++, todos los tipos de datos que se definan siempre derivarán, aunque sea de manera implícita, de una clase base común llamada System.Object, por lo que dispondrán de todos los miembros definidos en ésta clase (es decir, serán “objetos”), esto también es aplicable a los tipos de datos básicos.
Capítulo 1: Fundamentación Teórica
Página 18
Extensibilidad de tipos básicos: Permite definir, a través de estructuras, tipos de datos para los que se apliquen las mismas optimizaciones que para los tipos de datos básicos. Es decir, que se puedan almacenar directamente en pila y se asignen por valor y no por referencia.
Extensibilidad de modificadores: Ofrece, a través del concepto de atributos, la posibilidad de añadir a los metadatos del módulo resultante de la compilación de cualquier fuente, información adicional a la generada por el compilador.
Eficiente: En principio, todo el código incluye numerosas restricciones para garantizar seguridad y no permite el uso de punteros. Sin embargo, y a diferencia de Java, es posible saltarse dichas restricciones manipulando objetos a través de punteros. Para ello basta marcar regiones de código como inseguras (modificador unsafe) y podrán usarse en ellas punteros de forma similar a cómo se hace en C++, lo que puede resultar vital para situaciones donde se necesite una eficiencia y velocidad de procesamiento muy grandes.
Lenguaje Java
El lenguaje Java es de alto nivel que son aquellos en los que las instrucciones o sentencias son escritas con palabras similares a las de los lenguajes humanos (mayormente en inglés). Esto facilita la escritura y comprensión del código al programador, sus características más importantes son:
Lenguaje orientado a objetos.
Java es un lenguaje sencillo.
Independiente de plataforma Brinda un gran nivel de seguridad.
Capacidad multihilo.
Gran rendimiento.
Creación de aplicaciones distribuidas.
Su robustez o lo integrado que tiene el protocolo TCP/IP lo que lo hace un lenguaje ideal para Internet.
Una de las principales características que favoreció el crecimiento y difusión del lenguaje Java es su capacidad de que el código funcione sobre cualquier plataforma de software y hardware. Esto significa que un mismo programa escrito para Linux puede ser ejecutado en Windows sin ningún problema.
Capítulo 1: Fundamentación Teórica
Página 19
Además es un lenguaje orientado a objetos que resuelve los problemas en la complejidad de los sistemas, entre otras.
De hecho, su versatilidad y eficiencia, la portabilidad de su plataforma y la seguridad que aporta, la han convertido en una opción tecnología para su aplicación a redes, de manera que hoy en día, muchos dispositivos utilizan la tecnología Java. El lenguaje de programación Java ha sido totalmente mejorado, ampliado y probado por una comunidad de muchos desarrolladores de software.
1.8 Propuesta
El sistema Ilyushin tiene como objetivo gestionar la información de los vuelos realizados por los aviones Il-96-300. Este sistema está concebido realizarse a largo plazo y el personal que trabajará en el mismo puede salir del proyecto con facilidad, por lo que se necesita tener una documentación actualizada y abundante. Además el cliente no estará cerca de los desarrolladores para la construcción del mismo; por ello se propone como metodología de desarrollo de software Rational Unified Process (RUP).
Como herramienta de desarrollo se utilizará Rational Rose pues admite el lenguaje de modelado UML, que es el lenguaje por excelencia de RUP. Ejecuta chequeo semántico de los modelos, además de que permite realizar ingeniera inversa, desarrollo multiusuario y generar documentación.
Se plantea utilizar la plataforma de desarrollo .NET pues es una potente plataforma para implementar aplicaciones de escritorio ya que utiliza mecanismos robustos, seguros y eficientes. Otro de los beneficios de .NET es su soporte a múltiples lenguajes de programación, lo cual acelera la curva de aprendizaje de los desarrolladores permitiendo que cada uno elija en base a sus gustos personales.
Además, la posibilidad de utilizar las mismas herramientas de programación y tener las mismas capacidades de acceso a la plataforma independientemente del lenguaje le proporciona una flexibilidad sin precedentes.
El lenguaje más utilizado en la plataforma .NET es el C#. Es muy poderosos debido a que es un lenguajes de alto nivel, que se beneficia y explota todas las funcionalidades que brinda el CLR, por tanto hace uso de todas las clases que componen la BCL. En consecuencia de esto se utilizará C#
para desarrollar el sistema de gestión de vuelos del IL-96-300.
Capítulo 1: Fundamentación Teórica
Página 20
1.9 Estructura de los Módulos
Dada la explicación del cliente y de la forma de trabajo del mismo se decidió dividir el sistema en varios módulos, como son: Administración, Peso y Balance y Plan de Vuelo. Este trabajo de diploma se centra específicamente en los módulos de Peso y Balance y Plan de Vuelo.
Además de los módulos anteriores se decidió crear un módulo que contenga todos los procesos repetibles en los demás, a dicho módulo se le ha llamado “Común”. Es importante destacar que la manera más sencilla de rehusar código es copiarlo total o parcialmente desde el lugar donde ya se ha implementado hasta el lugar donde se volverá a usar; pero es trabajoso mantener múltiples copias del mismo código. Por lo general, para eliminar la redundancia se deja este código en un único lugar.
Fig. 5: Estructura de los módulos.
1.10 Arquitectura Propuesta
En la aplicación se utilizó la arquitectura en capas, dichas capas se han definido lo mejor posible teniendo en cuenta las características del sistema a implementar, esto reducirá hoyos de vulnerabilidad. Este tipo de arquitectura permite la reutilización de capas, facilita la estandarización, las dependencias se limitan solo entre las capas, permitiendo el mantenimiento y soporte de la aplicación más sencillo, brinda una mayor flexibilidad debido a que se pueden agregar nuevos módulos para dotar al sistema de nuevas funcionalidades. Además posibilita aplicaciones más robustas debido al encapsulamiento. Dentro de esta arquitectura la capa intermedia (capa de Negocio) ocupa un lugar de mucha importancia en la construcción de una infraestructura de software que permitirá el crecimiento y extensibilidad de los servicios para todas las aplicaciones existentes y futuras.
A continuación se describen las capas de la arquitectura escogida:
Capítulo 1: Fundamentación Teórica
Página 21
1. La capa de Presentación: Está formada por los formularios y los controles que se encuentran en los formularios. Es la capa con la que interactúa el usuario.
2. La capa de Negocio: Está formada por las clases que se ocupan de establecer todas las reglas que deben cumplirse. Esta capa se comunica con la de Presentación, para recibir las solicitudes y mostrar los resultados. Se comunica además con la de Acceso a Datos para mediante ella almacenar o recuperar datos de un determinado gestor de base de datos.
3. La capa de Acceso a Datos: Está formada por clases que interactúan con la base de datos y que reciben solicitudes de almacenamiento o recuperación de información desde la capa de Negocio.
4. La capa Dominio: Es una capa especial que no va alineada a las tres anteriores, es más bien una capa vertical que contendrá las clases del dominio. Esto permitirá pasar como parámetros objetos, por lo que será mucho más sencilla la comunicación entre las capas.
Fig. 6: Arquitectura del sistema.
Conclusiones
En este capítulo se realizó un análisis de algunos aspectos relacionados con los sistemas de gestión de vuelos. También se estudiaron las tecnologías a utilizar a lo largo del desarrollo del sistema propuesto. Se fundamentó la elección del lenguaje de programación, la metodología de desarrollo del software a utilizar y la herramienta CASE seleccionada para la modelación tanto de los procesos del negocio como del diseño de la aplicación.
Capítulo 2: Características del Sistema
Página 22
Capítulo 2: Características del Sistema.
Introducción
En el siguiente capítulo se abordarán temas como los procesos que componen el negocio, características del sistema a implementar, con sus requisitos funcionales y no funcionales, de forma que se culminará con la conformación de la propuesta final de la aplicación. Se definirán además los actores y trabajadores, los casos de usos que serán automatizados en el sistema informático.
2.1 Objeto de estudio
Para la realización de un vuelo es necesario manejar por parte de la tripulación del avión ciertas informaciones, tales como:
Peso y Balance:
Actualmente el flujo de eventos se realiza de la siguiente forma:
El pasajero hace entrega del pasaporte y del equipaje en el mostrador al representante de tráfico, este último es el encargado de introducir los datos del pasajero y de hacer el pesaje del equipaje. Luego envía a la tripulación la cantidad total de adultos, cantidad total de niños y peso total de equipaje TTL (XPG).
El departamento de Carga y Correo es el responsable de enviar a la tripulación el peso de carga total TTL Carga, peso total de cantidad de correo y peso total de mercancías peligrosas.
El despachador hace el envío de todos estos datos a plan de vuelo, después de sus respectivos análisis, se entregará el peso total de combustible que necesita el avión.
Luego de este proceso la tripulación se encarga de realizar la hoja de Peso y Balance de forma manual, además de la distribución de la carga y los pasajeros en el avión.
Plan de vuelo:
Actualmente el flujo de eventos se realiza de la siguiente forma:
Capítulo 2: Características del Sistema
Página 23
Cuando se le asigna un vuelo a la tripulación esta requiere de un plan de vuelo para ejecutarlo, siendo el navegante el encargado de la realización del mismo. Normalmente el navegante solicita a SITA el plan de vuelo; servicio que como se ha especificado anteriormente resulta costoso para el país; sin embargo en situaciones excepcionales el navegante se ve obligado a realizarlo manualmente debido a la imposibilidad de utilizar este servicio ya sea por falta de conexión, o alguna otra razón.
En estos casos el navegante realiza los cálculos necesarios partiendo de la información meteorológica, el peso de la carga de pago y teniendo en cuenta las restricciones impuestas por los NOTAMS y las vías del Atlántico disponibles en el día (NACKTRACK). Una vez confeccionado el plan de vuelo se discute con el piloto al mando. Luego del análisis y aceptación del plan de vuelo se elabora la hoja de Autorización de Despacho con los datos de combustible necesarios para el centrado y balance del avión, la cual se envía a Operaciones ECASA.
2.1.1 Objeto de automatización
Serán objeto de automatización los procesos para la confección del plan de vuelo y todo el proceso de cálculos de peso y balance del avión IL_96 300, los análisis de gráficos de donde se obtienen los principales datos para la obtención del peso máximo del avión, la obtención de datos de tablas tabuladas entre las que se incluyen las tablas de ascenso y descenso que junto a la información propia del avión se utilizan en la confección del plan de vuelo, distribución de la carga y los pasajeros en este, de forma tal que se encuentre balaceado, obtención de la hoja de Peso y Balance.
2.1.2 Información que se maneja
Para la confección de este sistema es necesaria la información contenida en el Manual Básico de Operaciones propio del modelo IL-96-300, Manual de Vuelo, siendo oportuno además el análisis de los datos meteorológicos y la información de los vientos que se brindan en las Cartas de tiempo significativos y las Cartas de vientos y temperaturas, así como la información referente a NOTAMS y NACKTRACKS, Manual para cálculos de Peso y Balance del IL-96-300, Hojas de Peso y Balance y tablas correspondientes a este proceso, las cuales poseen información de tipo confidencial, por lo cual los detalles de dicha información no puede ser reflejada en este documento.
Capítulo 2: Características del Sistema
Página 24
2.2 Propuesta del sistema
Para acceder al sistema propuesto el usuario deberá autenticarse y de acuerdo a los permisos y privilegios que tenga accederá al módulo permitido. Una vez dentro del sistema el usuario podrá realizar solo las operaciones que se le estén permitidas.
Si el usuario es el encargado en la tripulación de realizar el peso y balance (Tripulación/PB) podrá gestionar (adicionar y modificar) los Galley, Crew, Aviones y Versiones. Podrá además realizar y eliminar los análisis de peso y balance que desee; dichos análisis podrán ser vistos por cualquier integrante de la tripulación.
Si el usuario es el encargado en la tripulación de realizar los planes de vuelo (Tripulación/PV) tendrá la posibilidad de gestionar (adicionar, modificar) un aeropuerto con la información necesaria para realizar su actividad, un punto de control, una ruta, un avión y la información referente al Crew y Versión a utilizar por los aviones, así como el PBO específico. Podrá crear también un plan de vuelo..
2.3 Modelo de Negocio.
2.3.1 Breve descripción del negocio.
Con la cantidad de pasajeros a transportar el navegante calcula el peso de equipaje según lo estipulado comercialmente (20 Kg. o 40 Kg. por pasajero), que unido a la información de la carga que debe trasladar la aeronave constituye el valor de la carga de pago. Conocida la información de las condiciones meteorológicas de los aeropuertos, el comportamiento de los vientos y las temperaturas en los diferentes niveles de vuelo y la carga de pago, el navegante confecciona el Plan de Vuelo, teniendo en cuenta las restricciones impuestas por los NOTAMS y las vías del Atlántico que estarán disponibles en el día.
Una vez confeccionado el Plan de Vuelo se discute con el piloto al mando. Luego del análisis y aceptación de este se elabora la hoja de Autorización de Despacho y se envía a Operaciones ECASA con los siguientes datos:
Imprescindibles:
- Combustible de quemada, combustible de reserva y combustible requerido.
Capítulo 2: Características del Sistema
Página 25
Otros datos posibles:
- Aeropuertos de origen y destino.
- Tipo de avión.
- Niveles de vuelo.
- Tiempos de vuelo
En el caso del Peso y Balance, luego de que los pasajeros hacen entrega del pasaporte y del equipaje en el mostrador al representante de tráfico, este es el encargado de introducir los datos del pasajero y de hacer el pesaje del equipaje. Además envía al encargado en la tripulación del análisis de peso y balance la cantidad total de adultos, cantidad total de niños y peso total de equipaje TTL (XPG).
Carga y correo es el responsable de enviar a la tripulación el peso de carga total TTL Carga, peso total de cantidad de correo y peso total de mercancías peligrosas.
El cálculo de la carga y la posición de centro de gravedad en el avión se pueden dividir en dos etapas:
1. Determinación del peso de la carga útil transportable.
2. Ubicación de la carga útil, de modo que la posición del centro de gravedad en el avión sin el combustible y durante el despegue y el aterrizaje estén en el límite permisible.
Con dichos datos, el encargado del análisis de peso y balance (Tripulación/PB) realiza la distribución de la carga y de los pasajeros en el avión, además de la Hoja de Peso y Balance.
2.3.2 Actores del Negocio
Peso y Balance
Actor Descripción
Tripulación.
Interesado en obtener la Hoja de Peso y Balance para la realización de un vuelo seguro con el menor gasto de combustible posible.
Capítulo 2: Características del Sistema
Página 26
Plan de Vuelo
Actor Descripción
Tripulación(Piloto al Mando)
Es el interesado en que se confeccione el plan de vuelo para saber como debe realizar el viaje (ruta a seguir, niveles de vuelo, aeropuerto alterno, cantidad de combustible, etc.), y como actuar ante una contingencia.
2.3.3 Trabajadores del Negocio
Peso y Balance
Trabajador Descripción
Tripulación/PB.
Realiza los cálculos necesarios para determinar el peso y el balance con el cual va a despegar el avión y luego confeccionar la hoja de Peso y Balance.
Plan de Vuelo
Trabajador Descripción
Tripulación/PV. Integrante de la Tripulación encargado de confeccionar el Plan de Vuelo.
2.3.4 Diagramas de Casos de Uso del Negocio
Peso y Balance
Capítulo 2: Características del Sistema
Página 27 Fig. 7: Diagrama de Caso de Uso del Negocio Peso y Balance
Plan de Vuelo
Fig. 8: Diagrama de Caso de Uso del Negocio Plan de Vuelo.
2.3.5 Especificaciones de Casos de Uso
Descripción del Caso de Uso: Realizar Peso y Balance
Caso de Uso: Realizar Peso y Balance Actores: Tripulación
Trabajadores: Tripulación/PB
Resumen:
Se inicia cuando existe la necesidad de realizar el vuelo por parte de la tripulación, para esta actividad es necesario el centrado del avión, por lo que se realiza la distribución de la carga y los pasajeros, de forma balanceada, además del combustible en los distintos tanques. Esto genera la Hoja de Peso y Balance, documento oficial necesario para la realización de cada vuelo.
Precondiciones: Deben existir al menos un avión, crew, versión y galley en la base de