(Data Processing Framework) TESIS
Total Page:16
File Type:pdf, Size:1020Kb
INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS SECCIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN Estructura para el Procesamiento de Datos (Data Processing Framework) TESIS QUE PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN INFORMÁTICA PRESENTA JESÚS CASILLAS AGUILAR DIRECTOR DE TESIS: DR.MAURICIO J. PROCEL MORENO MÉXICO, D.F. 2016 » SIP-14 INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA DE INVESTIGACIÓN Y POSGRADO ACTA DE REVISIÓN DE TESIS En la Ciudad de México, siendo las i8-.oo horas del día 30 del mes de HAYO del 2016 se reunieron los miembros de la Comisión Revisora de Tesis, designada por el Colegio de Profesores de Estudios de Posgrado e Investigación de UPI ICSA para examinar la tesis titulada: "ESTRUCTURA PARA EL PROCESAMIENTO DE DATOS (DATA PROCESSING FRAMEWORK)". Presentada por el alumno: CASILLAS AGUILAR JESÚS Apellido paterno Apellido materno Nombre(s) Con registro: B 1 3 1 1 7 6 aspirante de: MAESTRÍA EN CIENCIAS EN INFORMÁTICA Después de intercambiar opiniones, los miembros de la Comisión manifestaron APROBAR LA DEFENSA DE LA TESIS, en virtud de que satisface los requisitos señalados por las disposiciones reglamentarias vigentes. LA COMISIÓN REVISORA Director DR. MAURICIO JORGE PROCEL MORENO ev? rtflC ó- DR. EDUARDO GUTIERREZ GONZALEZ^ DR. FAUSTINO RICARDO GARClA SOSA VAZQUEZ TORRES M. EN MGORDILLOMEJIA EL PRESIDENTE DEL COLEGIO DE P U. P.M. C.S. A. SECCIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN Je LAI. JAIME ARTURO MENESES GALVÁN INSTITUTO POLITéCNICO NACIONAL SECRETARíA DE INVESTIGACIóN Y POSGRADO CARTA CESIóN DE DERECHOS En la Ciudad de México, Distrito Federal el día 29 del mes de Junio del año 2016, el que suscribe Jesús Casillas Aguilar alumno del Programa de Maestría en Ciencias en Infor mática, con número de registro B131176, adscrito a la Sección de Estudios de Posgrado e Investigación de la UPIICSA, manifiesta que es el autor intelectual del presente trabajo de Tesis bajo la dirección del Dr. Mauricio J. Procel Moreno y cede los derechos del trabajo titulado "Estructura para el Procesamiento de Datos (Data Processing Framework*)", al Instituto Politécnico Nacional para su difusión, con fines académicos y de investigación. Los usuarios de la información no deben reproducir el contenido textual, gráficas o datos del trabajo sin el permiso expreso del autor y/o director del trabajo. Este puede ser ob tenido escribiendo a la siguiente dirección: [email protected]. Si el permiso se otorga, el usuario deberá dar el agradecimiento correspondiente y citar la fuente del mismo. Jesús Casillas Aguilar A MI MADRE Por su paciencia, respaldo constante y sabias enseñanzas. Y porque gracias a ella adquirí el gusto por la lectura. A MI PADRE Por su rectitud y generosidad que son todo un ejemplo a seguir. Y porque me enseñó a trabajar con perfeccionismo y creatividad. A MI ESPOSA Por su apoyo incondicional y dedicación para nuestra familia. Y porque es mi fuente de inspiración para seguirme superando. A MIS HIJAS Por aquellos fines de semana sin poder salir de paseo, y por aquellas noches sin tener historias antes de dormir, pues ese tiempo tenía que destinarse a “La Tesis de Papote”. Contenido Lista de Imágenes vii Lista de Cuadros ix Lista de Diagramas UML xi Lista de Programas Java xiii Lista de Configuraciones XML xv Resumen 1 Abstract 3 Introducción 5 1 Marco Teórico 7 1.1 Origen de los Lenguajes de Programación . 9 1.1.1 Máquina Diferencial . 9 1.1.2 Máquina Analítica . 11 1.1.3 La Primer Programadora . 12 1.1.4 Tarjetas Perforadas . 13 1.1.5 Enigma . 15 1.1.6 Máquina Universal . 16 1.1.7 Bombe . 18 1.1.8 ENIAC . 19 1.1.9 EDVAC y ACE . 21 1.2 Primeros Lenguajes de Alto Nivel . 23 1.2.1 Short Code . 23 1.2.2 FORTRAN . 24 1.2.3 FLOW-MATIC y COBOL . 25 1.2.4 BASIC . 26 I ii CONTENIDO 1.3 Lenguajes Estructurados . 29 1.3.1 Pascal . 30 1.3.2 C . 31 1.4 Lenguajes Modulares . 33 1.4.1 Modula y Modula-2 . 34 1.5 Lenguajes Orientados a Objetos . 35 1.5.1 Smalltalk . 36 1.5.2 C++ . 38 1.5.3 Java . 39 1.6 Programación Orientada a Objetos . 43 1.6.1 Datos y Operaciones . 43 1.6.2 Interfaz e Implementación . 44 1.6.3 Objetos . 48 1.6.4 Clases . 51 1.7 Mecanismos de Abstracción . 53 1.7.1 Encapsulación . 53 1.7.2 Polimorfismo . 54 1.7.3 Sobrecarga . 56 1.7.4 Herencia . 56 1.8 Patrones de Diseño . 61 1.8.1 Historia de los Patrones de Diseño . 62 1.8.2 Organización y Lenguaje de Patrones . 64 1.8.3 La Importancia de los Patrones . 66 1.9 Clasificación de los Patrones de Diseño . 68 1.9.1 Patrones de Diseño Creacionales . 68 1.9.2 Patrones de Diseño Estructurales . 69 1.9.3 Patrones de Diseño de Comportamiento . 70 1.10 Consideraciones de la Orientación a Objetos . 71 1.10.1 Beneficios y Objetivos . 71 1.10.2 Reutilización . 73 1.10.3 Trampas Comunes . 75 2 Diseño de Software 77 2.1 Consideraciones de Diseño . 79 2.2 Estructuras de Programación . 81 2.2.1 Meta-programación . 81 2.2.2 Reflexión de código . 82 2.3 Herramientas de Diseño . 83 CONTENIDO iii 2.3.1 Lenguaje Unificado de Modelado (UML) . 83 2.3.2 Lenguaje de Etiquetado Extensible (XML) . 85 2.4 Estructuras de Datos . 87 2.4.1 Clase Columna . 87 2.4.2 Clase Tabla . 91 2.5 Modelo de Objetos . 93 2.5.1 Clase Parámetro . 93 2.5.2 Clase Solución . 95 2.5.3 Clase Epd . 97 2.6 Modelo EPD . 99 2.7 Arquitectura de Configuración . 100 2.7.1 Arquitectura Java para Enlazado de XML (JAXB) . 102 2.7.2 Estructura Basada en Soluciones . 106 2.7.3 Parámetros de Ejecución . 108 2.8 Lógica de Procesamiento . 111 2.9 Fórmulas de Procesamiento . 113 2.9.1 Transformación de Valores . 113 2.9.2 Filtrado de Valores . 116 2.10 Desarrollo Dirigido por la Configuración (CDD) . 118 2.10.1 Herramientas requeridas . 118 2.10.2 Reglas de desarrollo . 119 2.10.3 Beneficios . 120 2.10.4 Costos . 121 2.10.5 Limitaciones y soluciones de compromiso . 121 3 Implementación 123 3.1 Lectores de Datos . 125 3.1.1 Lector CSV . 126 3.1.2 Lector SQL . 130 3.1.3 Lector TXT . 133 3.1.4 Lector XML . 137 3.2 Procesadores de Datos . 141 3.2.1 Procesador Agrupar . 142 3.2.2 Procesador Clonar . 145 3.2.3 Procesador Clonar Tabla . 148 3.2.4 Procesador Comparar . 151 3.2.5 Procesador Conciliar . 156 3.2.6 Procesador Dividir . 162 iv CONTENIDO 3.2.7 Procesador Eliminar . 165 3.2.8 Procesador Eliminar Tabla . 168 3.2.9 Procesador Equivaler . 171 3.2.10 Procesador Filtrar . 174 3.2.11 Procesador Fusionar . 177 3.2.12 Procesador Insertar . 180 3.2.13 Procesador Ordenar . 183 3.2.14 Procesador Transformar . ..