Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. GENERALIDADES ............................................................................................1
I
2.2.2. Metodología Proceso Unificado de desarrollo de software ............................26
2.2.3. Modelo de desarrollo en V ..................................................................................37
2.3. MODELAMIENTO DE BASE DE DATOS. .......................................................41
2.3.1. Sistemas de Gestión de Bases de Datos ..................................................... 41
2.4. SERVICIOS WEB .................................................................................................49
2.4.1. XML .........................................................................................................................49
2.4.2. Modelo de los servicios web ...............................................................................50
2.4.3. Protocolos de comunicación para Servicios Web............................................53
2.4.4. WSDL .....................................................................................................................57
2.4.5. UDDI .......................................................................................................................59
2.5. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB ................62
2.5.1. Intranet ...................................................................................................................62
2.5.2. Internet ...................................................................................................................64
2.5.3. Extranet ..................................................................................................................65
2.5.4. Lenguajes de programación de aplicaciones web...........................................67
2.5.5. Arquitecturas de desarrollo de software ............................................................71
2.5.6. Frameworks ...........................................................................................................79
2.6. TECNOLOGÍAS MÓVILES DE DESARROLLO .............................................84
2.6.1. Lenguajes de Programación para aplicaciones móviles ................................88
2.7. PRUEBAS DE SOFTWARE ...............................................................................92
2.7.1. Pruebas de integración ........................................................................................92
2.7.2. Pruebas de validación y verificación..................................................................93
2.7.3. Pruebas de regresión ...........................................................................................93
3. MARCO PRÁCTICO ............................................................................................95
II
3.2.2. Modelo de Negocio Alternativo ...........................................................................98
3.2.3. Modelado de negocio alternativo en tres niveles .............................................98
3.2.4. Selección del modelo de desarrollo de software ...........................................101
3.2.5. Planificación de incrementos ............................................................................103
3.3. DISEÑO E IMPLEMENTACIÓN DE LOS MÓDULOS DE GESTIÓN DE
ESTUDIANTES, DOCENTES, MATERIAS, ESPECIALIDADES,
CURSOS Y USUARIOS ADMINISTRATIVOS ..............................................104
3.3.1. Selección Gestor de Base de datos.................................................................104
3.3.2. Selección de lenguaje de programación WEB ...............................................107
3.3.3. Selección del framework....................................................................................109
3.3.4. Análisis del primer incremento..........................................................................113
3.3.5. Diseño...................................................................................................................114
3.3.6. Codificación .........................................................................................................134
3.3.7. Pruebas ................................................................................................................147
3.4. DESARROLLO DE UNA APLICACIÓN MOVIL PARA LA GESTION DE
CALIFICACIONES ..........................................................................................................151
3.4.1. Identificación y selección de herramientas de desarrollo para la
construcción de la aplicación android. .........................................................................151
3.4.2. Definición de actividades y servicios para la aplicación Android ................151
3.4.3. Selección del lenguaje de desarrollo para la construcción de la aplicación
android. .............................................................................................................................156
3.4.4. Análisis del segundo incremento......................................................................158
3.4.5. Diseño...................................................................................................................159
3.4.6. Codificación .........................................................................................................170
3.4.7. Pruebas ................................................................................................................179
3.5. GENERACIÓN DE REPORTES DE ACUERDO A LAS NECESIDADES DEL
CASO DE ESTUDIO .......................................................................................................181
3.5.1. Análisis del tercer incremento ...........................................................................181
3.5.2. Determinación de campos necesarios para cada tipo de reporte que se
quiera para el caso de estudio ......................................................................................184
3.5.3. Elaboración del módulo de generación de reportes ......................................184
3.6. REALIZACIÓN DE PRUEBAS PARA EL SISTEMA ...................................186
3.6.1. Pruebas de conectividad ...................................................................................186
3.6.2. Pruebas de integración ......................................................................................187
III
3.7. DEMOSTRACIÓN DE LA HIPÓTESIS ...........................................................194
3.7.1. Demostración de la primera variable dependiente ........................................194
3.7.2. Demostración de la segunda variable dependiente ......................................197
3.7.3. Demostración de la variable independiente ...................................................200
3.7.4. Definición de la hipótesis ...................................................................................202
3.7.5. Calculo estadístico T ..........................................................................................203
4. ANÁLISIS DE VIABILIDAD ..............................................................................206
BIBLIOGRAFÍA ...............................................................................................................231
IV
ÍNDICE DE TABLAS
Tabla 1: Objetivos específicos y acciones .............................................................. 8
Tabla 19: Selección del lenguaje de desarrollo para la aplicación móvil ............ 156
Tabla 22: Descripción caso de uso administrar notas en la aplicación web ....... 167
V
Tabla 23: Prueba: Desarrollo de una aplicación móvil para la gestión de
calificaciones ....................................................................................................... 180
Tabla 27: Prueba de integración caso de uso administrar cargos ...................... 188
Tabla 28: Prueba de integración caso de uso administrar estudiantes. .............. 188
Tabla 29: Prueba de integración caso de uso administrar docentes. ................. 189
Tabla 30: Prueba de integración caso de uso administrar administrativos. ........ 190
Tabla 31: Prueba de integración caso de uso administrar materias. .................. 190
Tabla 32: Prueba de integración caso de uso administrar especialidades. ........ 191
Tabla 33: Prueba de integración caso de uso administrar cursos. ..................... 192
Tabla 34: Prueba de integración caso de uso administrar notas. ....................... 193
Tabla 35: Prueba de integración caso de uso obtener reportes. ........................ 193
Tabla 36: Pasos para los procesos de entrega de reportes ............................... 195
Tabla 39: Tabla comparativa de beneficios del sistema propuesto .................... 200
VI
Tabla 46: Costos de hardware y software del servidor ....................................... 211
Tabla 48: Costos de hardware y software para la aplicación móvil ................... 213
Tabla 53: Gastos estimados en el desarrollo del proyecto para la institución. ... 221
Tabla 54: Gastos estimados para el desarrollo del proyecto. ............................. 222
VII
ÍNDICE DE FIGURAS
Figura 1: Modelo Incremental ............................................................................... 23
VIII
Figura 24: Estructura Móvil Android ..................................................................... 85
Figura 32: Diagrama de casos de uso del primer incremento. ........................... 123
IX
Figura 48: Interfaz Ingresar al Sistema .............................................................. 136
Figura 49: Interfaz Menú Principal jefe de escuadrón de evaluación. ................ 137
Figura 51: Interfaz listado y registro finalizado del cargo. .................................. 138
X
Figura 72: Diagrama de casos de uso de la aplicación móvil ............................. 164
Figura 84: Interfaz del personal del escuadrón de evaluación. .......................... 175
Figura 89: Diagrama de casos de uso del tercer incremento ............................. 183
XI
Figura 96: Cantidad líneas de código aplicación móvil ....................................... 218
XII
1. GENERALIDADES
1.1. INTRODUCCIÓN
La telefonía móvil está cambiando la sociedad actual de una forma tan significativa
como lo ha hecho Internet. Esta revolución no ha hecho más que empezar, los
nuevos terminales ofrecen unas capacidades similares a un ordenador personal, lo
que permite que puedan ser utilizados para leer nuestro correo o navegar por
Internet. Pero a diferencia de un ordenador, un teléfono móvil siempre está en el
bolsillo del usuario. Esto permite un nuevo abanico de aplicaciones mucho más
cercanas al usuario. De hecho, muchos autores coinciden en que el nuevo
ordenador personal del siglo veintiuno será un terminal móvil. (Universidad
Politécnica de Valencia, 2012).
1
valiosa para tomar decisiones estratégicas para la institución, pero se dificulta la
labor de recolectar esta información debido a que esta se encuentra dispersa en
diferentes sistemas(computacionales y manuales escritos).
1.2. ANTECEDENTES
2
De acuerdo a normas de la Universidad Militar de las FF.AA. del Estado, al culminar
tres años de estudios, se obtiene el grado militar de Sargento Inicial Técnico y el
título
Los egresados del Técnico Aeronáutico Militar están formados y capacitados para
realizar trabajos de diagnóstico, reparación y mantenimiento de aeronaves, apoyo
administrativo, y efectuar operaciones de Seguridad a los medios Aeronáuticos de
la Fuerza Aérea de acuerdo a su nivel, especialidad y competencia.
Dentro del POLMILAE, se manejan lo que vienen a ser las calificaciones o notas,
estas notas se ponderan de la siguiente manera:
Los exámenes de las asignaturas que son impartidas en las distintas especialidades
del curso se califican de 0 a 100 puntos y con redondeos decimales de 1 a 5
(inmediato inferior) y 6 a 9(inmediato superior). Es responsabilidad del docente
hacer entrega de sus planillas de notas y de los exámenes escritos, calificados y
revisados previamente por los estudiantes al encargado del escuadrón de
evaluación, una vez realizado la respectiva corrección y revisión de los exámenes,
el docente elabora sus planillas y las entrega al escuadrón de evaluación académica
junto a los exámenes corregidos.
3
El encargado del escuadrón de evaluación se encarga de hacer una planilla general
en Excel de cada curso existente dentro del área académica, luego de llenar dichas
planillas debe realizar un reporte general donde figuran los promedios generales de
cada estudiante para así obtener nombres de los estudiantes más destacados en el
área académica, estos estudiantes destacados tienen opción a una beca completa
para culminar sus estudios técnicos en el exterior del País.
Estas notas al finalizar el curso son impresas y son de carácter confidencial es por
eso que el estudiante militar para conocer su rendimiento académico debe
aproximarse al departamento de escuadrón de evaluación para solicitar mediante
un formulario la impresión de sus notas.
4
En caso de que el estudiante militar haya reprobado la asignatura tiene derecho a
un examen de segunda instancia, siempre y cuando esté llevando más de 2
asignaturas en el trimestre, las fechas de estos exámenes son dadas a conocer en
el tablero de novedades previa aprobación y revisión de notas hechas por el jefe del
escuadrón de evaluación.
Para los estudiantes militares de 3er año se aplican las siguientes modalidades de
exámenes:
❖ Sub-Especialidad:
Los Estudiantes militares deben aprobar esta modalidad dando cumplimiento a los
lineamientos establecidos en el procedimiento general para la elaboración,
preparación, presentación y defensa del Proyecto de Grado Técnico, siendo la nota
mínima de aprobación de 60%.
5
1.3. PLANTEAMIENTO DEL PROBLEMA
6
1.3.2. Formulación del problema
Causa:
Efectos:
7
1.4.2. Objetivos Específicos y Acciones
8
● Seleccionar el modelo de desarrollo
de software.
Administrativos. datos.
● Elaborar diseño de interfaz.
● Diseñar los módulos para la gestión
de estudiantes, docentes, materias,
especialidades, cursos y
administrativos.
● Implementar todos los módulos
diseñados.
● Realizar Pruebas a los módulos
codificados.
9
● Identificar y seleccionar
herramientas de desarrollo para la
construcción de la aplicación
android.
● Definir actividades y servicios para la
aplicación android.
● Seleccionar el lenguaje de
programación para el desarrollo de
la aplicación móvil.
● Analizar y diseñar el módulo de
calificaciones de la aplicación web.
Desarrollar una aplicación móvil para la ● Implementar el módulo de
gestión de calificaciones. calificaciones en la aplicación web.
● Diseñar la interfaz para la aplicación
móvil.
● Seleccionar la arquitectura de
software para la aplicación móvil.
● Diseñar la arquitectura de software
para la aplicación móvil.
● Implementar módulo de gestión de
calificaciones de la aplicación móvil.
● Realizar la conexión para integrar los
módulos móvil y web.
10
Elaborar Modulo de Generación de
Reportes.
1.5. JUSTIFICACIÓN
11
recursos humanos y técnicos. Además que se utilizará software libre, lo cual no
proporcionará gastos en licencias a la institución.
1.6. ALCANCE
Las áreas sobre las cuales se ubica el siguiente trabajo son Tecnologías de la
Comunicación y Redes, Ingeniería del Software, Paradigmas de Análisis y Diseño
de Sistemas, Sistemas Operativos, Sistemas Distribuidos, Gestión de Base de
Datos, Sistemas De Desarrollo Móvil, Sistemas de Información.
12
1.7. HIPÓTESIS
Variables independientes
Variables dependientes
Variable Independiente
Variables dependientes
13
○ Riesgo de pérdida de información personal y calificaciones de
estudiantes militares.
14
1.7.4. MATRIZ DE CONSISTENCIA
Desarrollar Intranet
Corporativa con La Intranet
comunicación Corporativa con
Los procedimientos comunicación Android
manuales actuales en la Android para el
proceso de gestión para proceso de
gestión de calificaciones gestión de
del POLMILAE. de calificaciones en
el Politécnico Militar calificaciones en el
de Aeronáutica Sbtte Politécnico Militar de
José Max Ardiles Aeronáutica.
Provoca Monrroy.
Permitirá
Perdida de
información
personal de los Reducir los Tiempos
estudiantes de entrega de
Para reportes y el riesgo
militares y exceso
de tiempo en la de pérdida de
Reducir tiempos de información personal
generación de entrega de reportes,
reportes solicitados y notas de los
evitar perdida de estudiantes militares.
por los distintos información personal
miembros del de los estudiantes
escuadrón de militares.
evaluación.
15
2. MARCO TEÓRICO
2.1. TÉCNICAS DE RECOPILACIÓN DE INFORMACIÓN
En este segmento se describen los métodos y técnicas que serán utilizados para
recopilar datos sobre la situación actual del Politécnico Militar de Aeronáutica Sbtte
Jose Max Ardiles Monrroy.
2.1.1. Entrevistas
16
Para realizar las entrevistas se deben tomar en cuenta los siguientes aspectos:
TIPOS DE PREGUNTAS
Preguntas abiertas
Estas preguntas incluyen aquellas como "¿Qué piensa de poner a todos los
gerentes en una intranet?" y "Explique por favor cómo toma una decisión de
programación de producción". Considere el término abiertas. En realidad, "abiertas"
describe las opciones del entrevistado para responder. La respuesta puede ser de
dos palabras o dos párrafos.
Las ventajas de utilizar las preguntas abiertas son muchas e incluyen las siguientes
(Sampieri, 2003):
Las preguntas abiertas tienen varias ventajas. Sin embargo, también tienen muchas
desventajas:
17
a) Podrían dar como resultado muchos detalles irrelevantes.
b) Posible pérdida del control de la entrevista.
c) Permiten respuestas que podrían tomar más tiempo del debido para la cantidad útil
de información obtenida.
d) Dan la impresión de que el entrevistador es inexperto.
e) Podrían dar la impresión de que el entrevistador "anda de pesca" sin un objetivo
real en la entrevista.
Se debe considerar con cuidado las implicaciones de utilizar las preguntas abiertas
para entrevistar. Preguntas cerradas la alternativa a las preguntas abiertas se
encuentra en el otro tipo de pregunta básica (Salkind, 1999).
Preguntas cerradas
Ahorro de tiempo.
Comparar las entrevistas fácilmente.
Ir al grano.
Mantener el control durante la entrevista.
Cubrir terreno rápidamente.
Conseguir datos relevantes.
18
Sin embargo, las desventajas de utilizar preguntas cerradas son considerables.
Dichas desventajas incluyen lo siguiente:
Aburren al entrevistado.
No permiten obtener gran cantidad de detalles [debido a que el entrevistador
proporciona el marco de referencia para el entrevistado].
Olvidar las ideas principales por la razón anterior.
No ayudan a forjar una relación cercana entre el entrevistador y el entrevistado.
2.1.2. Cuestionarios
Ventajas
19
En el ambiente de sistemas es fácil capturar, concentrar y obtener
información útil a partir de las respuestas, mediante el uso de la
computadora. Incluso se puede proyectar los datos y hacer gráficas.
Hacen impersonal la aportación de respuestas, por lo tanto ayudan a obtener
información útil y confiable si se plantean bien las preguntas.
Desventajas
2.1.3. Observación
Intencionada: porque coloca las metas y los objetivos que los seres humanos
se proponen en relación con los hechos, para someterlos a una perspectiva
teleológica.
Ilustrada: porque cualquier observación para ser tal está dentro de un cuerpo
de conocimientos que permite ser tal; solo se observa desde una perspectiva
teórica.
20
Selectiva: porque necesita a cada paso discriminar aquello que interesa
conocer y separarlo del cúmulo de sensaciones que invade a cada momento.
Interpretativa: en la medida en que se trata de describir y de explicar aquello
que se observando. Al final de una observación científica se dota de algún
tipo de explicación acerca de lo que se ha captado, al colocarlo en relación
con otros datos y con otros conocimientos previos.
21
A lo largo del tiempo, una gran cantidad de métodos han sido desarrollados
diferenciándose por su fortaleza y debilidad. (Kendall, 2011).
El modelo incremental fue propuesto por Harlan Mills en el año 1980. Surgió el
enfoque incremental de desarrollo como una forma de reducir la repetición del
trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de
decisiones en los requisitos hasta adquirir experiencia con el sistema. Este modelo
se conoce también bajo las siguientes denominaciones:
22
El Modelo Incremental combina elementos del Modelo Lineal Secuencial con la
filosofía interactiva de Construcción de Prototipos. Como se muestra en la Figura 1,
el modelo incremental aplica secuencias lineales de forma escalonada mientras
progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento
del software. El primer incremento generalmente es un producto esencial
denominado núcleo.
Análisis
Diseño
Código
Prueba
23
Los primeros pasos los pueden realizar un grupo reducido de personas y en cada
incremento se añadirá personal, de ser necesario. Por otro lado los incrementos se
pueden planear para gestionar riesgos técnicos (Calero, 2010).
De este modo podemos terminar una aplicación ejecutable (primera versión) que
podrá ser entregada al cliente para que éste pueda trabajar en ella y el programador
pueda considerar las recomendaciones que el cliente efectúe para hacer mejoras
en el producto. Estas nuevas mejoras deberán esperar a ser integradas en la
siguiente versión junto con los demás requerimientos que no fueron tomados en
cuenta en la versión anterior.
Al iniciar del desarrollo, los clientes o los usuarios, identifican a grandes rasgos, las
funcionalidades que proporcionará el sistema. Se confecciona un bosquejo de
requisitos funcionales y será el cliente quien se encarga de priorizar que
funcionalidades son más importantes. Con las funcionalidades priorizadas, se
puede confeccionar un plan de incrementos, donde en cada incremento se indica
un subconjunto de funcionalidades que el sistema entregará. La asignación de
24
funcionalidades a los incrementos depende de la prioridad dada a los requisitos.
Finalizado el plan de incrementos, se puede comenzar con el primer incremento
(Sommerville, 2011).
Características:
25
Requiere de mucha planeación, tanto administrativa como técnica.
Requiere de metas claras para conocer el estado del proyecto.
Características:
Iterativo e Incremental
En el Proceso Unificado los casos de uso se utilizan para capturar los requisitos
funcionales y para definir los contenidos de las iteraciones. La idea es que cada
iteración tome un conjunto de casos de uso o escenarios y desarrolle todo el camino
a través de las distintas disciplinas: diseño, implementación, prueba, etc. El proceso
dirigido por casos de uso es el rup. Nota: en UP se está Dirigido por requisitos y
riesgos de acuerdo con el Libro UML 2 de ARLOW, Jim que menciona el tema.
Cada una de estas iteraciones se divide a su vez en una serie de disciplinas que
recuerdan a las definidas en el ciclo de vida clásico o en cascada: Análisis de
26
requisitos, Diseño, Implementación y Prueba. Aunque todas las iteraciones suelen
incluir trabajo en casi todas las disciplinas, el grado de esfuerzo dentro de cada una
de ellas varía a lo largo del proyecto.
El Proceso Unificado requiere que el equipo del proyecto se centre en identificar los
riesgos críticos en una etapa temprana del ciclo de vida. Los resultados de cada
iteración, en especial los de la fase de Elaboración deben ser seleccionados en un
orden que asegure que los riesgos principales son considerados primero.
Ventajas
Desventajas
27
fundamental de la Ingeniería de Software tras su estandarización en 1997 con el
OMG (Object Management Group o Grupo de administración de objetos).
Para este proyecto se optó por trabajar con UML en su versión 2.0, que se detallara
en el siguiente punto.
Los diagramas son los medios para ver estos bloques de construcción. Un diagrama
es una presentación grafica de un conjunto de elementos, que la mayoría de las
veces se dibuja con un grafo, conexo de nodos (elementos) y arcos (relaciones).
Los diagramas se utilizan para visualizar desde diferentes perspectivas.
Los diagramas de UML 2.0 nos permiten ver dos tipos aspectos al momento de
hacer el diseño que son los aspectos dinámicos o también llamados elementos de
comportamiento y estáticos también llamados elementos estructurales, a
continuación se muestra que diagramas pertenecen a qué tipo de elementos:
Diagramas estructurales:
Diagramas de clases.
Diagramas de componentes.
Diagramas de estructura compuesta.
28
Diagramas de objetos.
Diagramas de artefactos.
Diagramas de despliegue.
Diagramas de comportamiento:
29
Figura 2: Representación de Diagramas de casos de uso
Actor
30
Figura 3: Representación de un Actor
Diagramas de comunicación
31
comenzar en el mensaje 1.0, y seguir los mensajes desde un objeto hasta el
siguiente, sucesivamente, ver figura 4.
Diagramas de actividades
32
Figura 5: Diagrama de actividades
Diagramas de despliegue
Nodo
33
Figura 6: Diagrama de actividades
Instancia de nodo
Estereotipo de nodo
34
Figura 8: Estereotipo de un nodo
Artefacto
Figura 9: Artefacto
Asociación
35
Figura 10: Asociación de nodos
Nodo contenedor
36
Diagramas de Clases
La versión actual del método-v es el método-v xt que se terminó en febrero del 2005.
No es comparable con cmmi. Mientras que cmmi solo describe "qué" se ha hecho,
37
el método-v describe el "cómo" y el "cuándo" y "quién" es el responsable de haberlo
hecho.
El método-v es una representación gráfica del ciclo de vida del desarrollo del
sistema. Resume los pasos principales que hay que tomar en conjunción con las
correspondientes entregas de los sistemas de validación.
Calificación de instalación.
Calificación operacional.
Calificación de rendimiento.
Objetivos
38
Proporciona una guía para la planificación y realización de proyectos. Los siguientes
objetivos están destinados a ser alcanzados durante la ejecución del proyecto:
39
Figura 13: El modelo en V
El nivel 1 está orientado al “cliente”. El inicio del proyecto y el fin del proyecto
constituyen los dos extremos del ciclo. Se compone del análisis de requisitos y
especificaciones, se traduce en un documento de requisitos y especificaciones.
El nivel 3 define los componentes hardware y software del sistema final, a cuyo
conjunto se denomina arquitectura del sistema.
40
El nivel 4 es la fase de implementación, en la que se desarrollan los elementos
unitarios o módulos del programa. (Marick, 2005)
41
Figura 14: Esquema de un DBMS
Usuarios / Programadores
SISTEMA DE
BASE DE DATOS
Programas de Aplicación / Consultas
Software del
DBMS
Software para procesar Consultas /
Programas
42
Estos lenguajes estándar son:
2.3.1.1. PostgreSQL
44
Demonio postmaster: Este es el proceso principal de PostgreSQL. Es el
encargado de escuchar por un puerto/socket por conexiones entrantes de
clientes. También es el encargado de crear los procesos hijos que se
encargaran de autentificar estas peticiones, gestionar las consultas y
mandar los resultados a las aplicaciones clientes.
Ficheros de configuración: Los 3 ficheros principales de configuración
utilizados por PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf
Procesos hijos postgres: Procesos hijos que se encargan de
autentificar a los clientes, de gestionar las consultas y mandar los
resultados a las aplicaciones clientes.
PostgreSQL share buffer cache: Memoria compartida usada por
PostgreSQL para almacenar datos en caché.
Write-Ahead Log (WAL): Componente del sistema encargado de
asegurar la integridad de los datos (recuperación de tipo REDO).
Kernel disk buffer cache: Caché de disco del sistema operativo
Disco: Disco físico donde se almacenan los datos y toda la información
necesaria para que PostgreSQL funcione.
45
El motor MyISAM es instalado por defecto y carece de capacidades de
integridad relacional.
InnoDB genera mucho footprint en memoria al indizar.
El toolset empresarial tiene un costo adicional por suscripción anual.
Realizar revisiones llegar a ser una labor manual y tediosa para el DBA.
Reducida cantidad de tipos de datos.
2.3.1.2. Mysql
Es Open Source.
47
potentes sistemas gestores de bases de datos como son Oracle, PostgreSQL o
MySQL.
Soporte de transacciones.
Escalabilidad, estabilidad y seguridad.
Soporta procedimientos almacenados.
Incluye también un potente entorno gráfico de administración, que permite el
uso de comandos DDL y DML gráficamente.
Permite trabajar en modo cliente-servidor, donde la información y datos se
alojan en el servidor y los terminales o clientes de la red sólo acceden a la
información.
Además permite administrar información de otros servidores de datos.
MSSQL no maneja compresión de datos (en SQL Server 2005 y 2000, solamente
la versión 2008 Enterprise Edition incluye esta característica), por lo que ocupa
mucho espacio en disco.
48
2.4. SERVICIOS WEB
El consorcio W3C define los servicios web como sistemas software diseñados para
soportar una interacción interoperable maquina a máquina sobre una red. Los
Servicios Web suelen ser APIs Web que pueden ser accedidas dentro de una red
(principalmente Internet) y son ejecutados en el sistema que los aloja. (W3C, 2004)
2.4.1. XML
49
GeneralizedMarkupLanguage o "Estándar de Lenguaje de Marcado Generalizado"
(SGML). XML proporciona la sintaxis para el documento de marcado y proporciona
la sintaxis para declarar la estructura de los documentos.
XML y HTTP
Ambos protocolos son la base para llamar a los servicios web. Un usuario interactúa
a través de las interfaces de los servicios web mediante el envío de mensajes XML
a través de HTTP. XML y HTTP son útiles para crear y enviar mensajes porque son
ampliamente flexibles en múltiples plataformas y lenguajes. Esta interoperabilidad
permite que las aplicaciones se comuniquen utilizando diferentes lenguajes,
plataformas o middlewares que utilizan esta tecnología en común. (Wolfram, 2008)
50
Figura 16: Roles, Operaciones y Artefactos de los Servicios Web
Descripción de
los Servicios
Registro de
Servicios
Publicación
Búsqueda WSDL, UDDI
WSDL. UDDI
Enlace
Descripción de
los Servicios
Para obtener una solicitud por parte de los servicios, tres comportamientos deben
tener lugar: publicación de las descripciones de los servicios, operaciones de
51
búsqueda o hallazgo de descripciones de servicios y la vinculación o invocación de
servicios basados en la descripción del servicio, los servicios constan de los
siguientes componentes.
Publicar: Para tener acceso, una descripción del servicio tiene que ser
publicado para que el solicitante del servicio puede encontrarlo. Cuando se
publicó pueden variar dependiendo de los requisitos de la aplicación.
Buscar: En la operación de búsqueda, el solicitante del servicio recupera
una descripción de servicio directamente o consulta el registro de servicios
para el tipo de servicio requerido.
Invocar: Con el tiempo, un necesaria la invocación de los servicios ofrecidos
por los proveedores.
Los servicios web se definen a partir de las siguientes especificaciones, ver figura
17:
52
SOAP: Es un protocolo estándar que define cómo dos objetos en diferentes
procesos pueden comunicarse por medio de intercambio de datos XML.
2.4.3.1. SOAP
SOAP (Simple Object Access Protocol) es el protocolo base de los servicios web.
Este protocolo está basado en XML y no se encuentra atado a ninguna plataforma
o lenguaje de programación. A su vez, también es el protocolo más aceptado para
la mayoría de las plataformas.
53
documentos como lo es HTTP o cualquier otro protocolo de comunicación capaz de
transmitir textos. Los mensajes SOAP están compuestos por una etiqueta principal
llamado “sobre o envoltura”, que está dividido en una cabecera y en un cuerpo,
como se observa en la Figura 18. (Principios de Web Services, 2006)
54
Reglas de Codificación
SOAP define sus propias reglas de codificación, identificadas por los nombres e
espacio, pero no mandata el uso de las mismas, sino que las distintas
implementaciones del protocolo SOAP pueden definir sus propias reglas de
codificación.
2.4.3.2. XML-RPC
Es un protocolo muy simple ya que solo define unos cuantos tipos de datos y
comandos útiles, además de una descripción completa de corta extensión. La
simplicidad del XML-RPC contrasta con la mayoría de protocolos RPC que tiene
una documentación extensa y requiere considerable soporte de software para su
uso.
55
Figura 19: Arquitectura XML-RPC
2.4.3.3. REST
HTTP
URL
Representación de los recursos: XML/HTML/GIF/JPEG/…
Tipos MIME: text/xml, text/html,
56
Los objetivos de este estilo de arquitectura se listan a continuación:
2.4.4. WSDL
57
Elemento Types
Elemento message
Elemento PortType
58
Elemento Binding
Elemento Service
2.4.5. UDDI
Son directorios donde es posible publicar los servicios web, lo que permite a los
posibles usuarios obtener información referente a la invocación y ejecución de los
servicios. Los directorios UDDI ofrecen grupos de interfaces que posibilitan la
59
publicación y obtención de los recursos disponibles, cuya información es clasificada
según se desee obtener el servicio.
Archivos Descripción
Información del negocio Aquí podemos encontrar información sobre quien
publica el servicio
Información de servicio Se refiere a la descripción del tipo de servicio ofrecido
Información de enlace Se entrega la dirección para acceder al servicio
Estructura de Datos
La sección verde se almacena entre las estructuras tipo binding Template, que
describen la información técnica de acceso a un servicio Web concreto y las
estructuras tipo tModel, que describen modelos técnicos o metadatos reutilizables
que pueden representar cualquier concepto como el tipo de servicio Web, algún
protocolo usado por los servicios o un sistema de categorización. (OASIS, 2014).
60
BussinessService
BindingTemplate
Contiene las descripciones técnicas de los servicios web. Cada uno describe una
instancia de un servicio web ofrecido normalmente a través de una URL, también
describe el tipo de servicio web ofrecido utilizando modelos técnicos, parámetros de
aplicaciones específicas y diferentes configuraciones. Cada bindingTemplate está
contenido en un businessService y tiene dos atributos opcionales, uno identifica al
servicio (serviceKey) y otro al propio bindingTemplate (bindingKey).
tModel
PublisherAssertion
61
2.5. TECNOLOGÍAS DE DESARROLLO DE APLICACIONES WEB
Los "sistemas Web" o también conocido como "aplicaciones Web" son aquellos que
están creados e instalados no sobre una plataforma o sistemas operativos
(Windows, Linux). Sino que se alojan en un servidor en Internet o sobre una intranet
(red local). Su aspecto es muy similar a páginas Web que vemos normalmente, pero
en realidad los 'sistemas Web' tienen funcionalidades muy potentes que brindan
respuestas a casos particulares, los sistemas Web se pueden utilizar en cualquier
navegador Web (chrome, firefox, Internet Explorer,etc) sin importar el sistema
operativo. Para utilizar las aplicaciones Web no es necesario instalarlas en cada
computadora ya que los usuarios se conectan a un servidor donde se aloja el
sistema.
Las aplicaciones Web trabajan con bases de datos que permiten procesar y mostrar
información de forma dinámica para el usuario.
2.5.1. Intranet
62
Por tanto, no sería más que una agrupación dentro de una misma web,
especializada y restringida al público en general, de un número determinado de
personas con objetivos comunes y conocimientos y características similares. En
esta web, los/as usuarios/as podrán informarse de todo aquello que pudiera
interesarles respecto a su trabajo o interés común.
Ventajas
Desventajas
Riesgos de seguridad.
Caos potencial, en cuanto al cambio de procesos y sistemas.
Miedos o paradigmas de los altos directivos.
63
2.5.2. Internet
Podemos definir a Internet como una "red de redes", es decir, una red que no sólo
interconecta computadoras, sino que interconecta redes de computadoras entre sí.
De esta manera, Internet sirve de enlace entre redes más pequeñas y permite
ampliar su cobertura al hacerlas parte de una "red global". Esta red global tiene la
característica de que utiliza un lenguaje común que garantiza la intercomunicación
de los diferentes participantes; este lenguaje común o protocolo (un protocolo es el
lenguaje que utilizan las computadoras al compartir recursos) se conoce como
TCP/IP.
Para otros, Internet es un acrónimo del inglés INTERnational NET, que traducido al
español sería Red Mundial.
Ventajas
64
La computadora se actualiza periódicamente más fácil que si no tuviéramos
internet.
Es posible encontrar soporte técnico de toda clase sobre alguna herramienta
o proceso.
El seguimiento de la información a tiempo real es posible a través del Internet.
Es posible comprar fácilmente a otras tiendas de otros p
Y es posible compartir muchas cosas personales o conocimientos que a otro
le puede servir, y de esa manera, se vuelve bien provechoso.
Desventajas
2.5.3. Extranet
65
Una Extranet permite a éstos tener acceso limitado a la información que necesitan
de la Intranet de la empresa, con la intención de aumentar la velocidad y la eficiencia
de su relación de negocio. Estos sistemas son el siguiente elemento a incorporar
por las empresas en su transición tecnológica (después de los sitios en Internet y
las intranets), ya que permiten obtener beneficios tangibles de un sitio web. Ya no
se trata únicamente de un sitio informativo que explica la misión, historia e
infraestructura de la empresa, o expone la forma de contactar con ella, lo que
comúnmente se denomina un "sitio institucional" de la empresa, sino de un espacio
en línea donde se pueden incorporar aplicaciones y herramientas tecnológicas para
acelerar los procesos diarios de negocio. Por ejemplo, se pueden crear aplicaciones
para realizar órdenes de compra en forma automatizada, o bien crear reportes de
venta. Además, las Extranet ayudan a disminuir los costos de operación, debido a
que reducen los gastos administrativos, los de telefonía y papel.
Ventajas
Desventajas
66
2.5.4. Lenguajes de programación de aplicaciones web
Esta tecnología permite desarrollar páginas web con contenido dinámico y supone
una evolución frente a la tecnología CGI, y los Servlets. Un fichero JSP puede
contener etiquetas HTML normales, y elementos especiales para generar el
contenido dinámico.
Una página JSP es básicamente una página Web con HTML tradicional y código
Java. La extensión de fichero de una página JSP es ".jsp" en vez de ".html" o".htm",
y eso le dice al servidor que esta página requiere un manejo especial que se
conseguirá con una extensión del servidor o un plug-in.
67
Ventajas:
Desventajas:
Complejidad de aprendizaje
El hosting que precisa son más caros.
2.5.4.2. PHP
68
Ventajas:
Desventajas:
Seguridad:
69
acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor.
Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web
sea insegura por naturaleza.
PHP está diseñado específicamente para ser un lenguaje más seguro para escribir
programas CGI que Perl o C, y con la selección correcta de opciones de
configuración en tiempos de compilación y ejecución, y siguiendo algunas prácticas
correctas de programación.
2.5.4.3. ASP.NET
El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor
ASP. Creado para desarrollar web sencillas o grandes aplicaciones. Para el
desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan
con la extensión (aspx). Para su funcionamiento de las páginas se necesita tener
instalado IIS con el Framework .Net. Microsft Windows 2003 incluye este framework,
solo se necesitará instalarlo en versiones anteriores.
Ventajas:
70
Desventajas:
Los servidores pueden ejecutar tareas sencillas (caso del servidor hora día que
devuelve una respuesta) o complejas (caso del servidor ftp en el cual se deben
realizar operaciones antes de devolver una respuesta). Los servidores sencillos
71
procesan una petición a la vez (son secuenciales o interactivos), por lo que no
revisan si ha llegado otra petición antes de enviar la respuesta de la anterior.
Los más complejos trabajan con peticiones concurrentes aun cuando una sola
petición lleve mucho tiempo para ser servida (caso del servidor ftp que debe copiar
un archivo en otra máquina). Son complejos pues tienen altos requerimientos de
protección y autorización. Pueden leer archivos del sistema, mantenerse en línea y
acceder a datos protegidos y a archivos de usuarios. No puede cumplir a ciegas las
peticiones de los clientes, deben reforzar el acceso al sistema y las políticas de
protección. Los servidores por lo general tienen dos partes:
Abrir un puerto local bien conocido al cual puedan acceder los clientes.
Esperar las peticiones de los clientes.
Elegir un puerto local para las peticiones que llegan en informar al cliente del
nuevo puerto, (innecesario en la mayoría de los casos).
Iniciar un programa esclavo o proceso hijo que atienda la petición en el puerto
local, (el esclavo cuando termina de manejar una petición no se queda
esperando por otras).
Volver a la espera de peticiones mientras los esclavos, en forma concurrente,
se ocupan de las anteriores peticiones.
Ventajas:
La posibilidad de utilizar máquinas mucho más baratas que las requeridas por una
solución centralizada, basada en sistemas grandes (mainframes). Además, se
pueden utilizar componentes, tanto de hardware como de software, de varios
72
fabricantes, lo cual contribuye considerablemente a la reducción de costos y
favorece la flexibilidad en la implantación y actualización de soluciones.
Desventajas:
73
Hay que tener estrategias para el manejo de errores y para mantener la
consistencia de los datos.
El desempeño (performance), problemas de este estilo pueden presentarse
por congestión en la red, dificultad de tráfico de datos, etc.
74
primera capa se denomina capa de presentación y normalmente consiste en una
interfaz gráfica de usuario de algún tipo.
Capa de presentación
Capa de negocio
Es donde residen las funciones que se ejecutan, se reciben las peticiones del
usuario, se procesa la información y se envían las respuestas tras el proceso. Se
denomina capa de negocio o capa de lógica del negocio, porque es aquí donde se
establecen todas las reglas que deben cumplirse. Esta capa se comunica con la de
presentación, para recibir las solicitudes y presentar los resultados, y con la capa
de acceso a datos, para solicitar al gestor de base de datos almacenar o recuperar
datos de él.
75
Capa de acceso a datos
Esta capa es la encargada de almacenar los datos del sistema y de los usuarios.
Su función es almacenar y devolver datos a la capa de negocio, aunque para esto
también es necesario en algunos casos, que tengan procedimientos almacenados
y funciones dentro de la capa. En una arquitectura de tres capas, esta capa es la
única que puede acceder a los mismos. Está formada por uno o varios sistemas
gestores de bases de datos, localizados en un mismo servidor o en varios.
76
2.5.5.3. Modelo Vista Controlador
El Modelo es el objeto que representa los datos del programa. Maneja los datos y
controla todas sus transformaciones. El Modelo no tiene conocimiento específico de
los Controladores o de las Vistas, ni siquiera contiene referencias a ellos. Es el
propio sistema el que tiene encomendada la responsabilidad de mantener enlaces
entre el Modelo y sus Vistas, y notificar a las Vistas cuando cambia el Modelo.
Ventajas:
77
consistentes, reutilizables y más fácilmente mantenibles, lo que al final resulta en
un ahorro de tiempo en desarrollo en posteriores proyectos.
Desventajas:
78
Figura 23: Esquema MVC
2.5.6. Frameworks
2.5.6.1. Laravel
79
evitando el "código espagueti". Fue creado en 2011 y tiene una gran influencia de
frameworks como Ruby onRails, Sinatra y ASP.NET MVC. Laravel propone en el
desarrollo usar 'Routes with Closures', en lugar de un MVC tradicional con el objetivo
de hacer el código más claro. Aun así tiene integrado el uso de MVC tradicional.
Características
Laravel incluye una valiosa pieza de software, llamada Eloquent ORM. Este ORM
se funda en patrón active record y su funcionamiento es en extremo sencillo.
La funcionalidad interna del ORM es mapear los objetos de PHP a las tablas en la
base de datos, para el caso en que la persistencia de los datos de la aplicación es
proporcionada por una DB.
80
En Laravel es opcional el uso de Eloquent, pues también dispone de otros recursos
que nos facilitan interactuar con los datos, o específicamente la creación de
modelos.
Los Sistemas de Cache, evitan el tener que procesar el código una y otro vez en
cada petición. Para lo cual, estos sistemas generan versiones estáticas en memoria
o disco duro con archivos que corresponden a peticiones previamente procesadas.
Y con esta técnica se logra mejorar el rendimiento de la aplicación.
Ventajas
Desventajas
2.5.6.2. Phalcon
81
¿Cómo trabaja una extensión C en PHP?
Las extensiones en C se cargan una vez junto con PHP al iniciar el servicio/demonio
de PHP
Las clases y funciones proporcionadas por la extensión están listas para ser usadas
por cualquier aplicación
Ventajas
Desventajas
Hay que “instalar” el framework en el servidor web, y esto puede ser un gran
freno a la hora de desplegar la aplicación.
A la hora de utilizar el framework en tu proyecto, debes crear de forma manual
el archivo que carga los componentes de Phalcon (un archivo de
inicialización del framework, boostrap).
82
2.5.6.3. Codeigniter
También hay que destacar que CodeIgniter es más rápido que muchos otros
entornos. Incluso en una discusión sobre entornos de desarrollo con PHP,
RasmusLerdorf, el creador de PHP, expresó que le gustaba CodeIgniterporque es
rápido, ligero y parece poco un entorno.
Ventajas
83
Desventajas
En los últimos años los teléfonos móviles han experimentado una gran evolución,
desde los primeros terminales, grandes y pesados, pensados sólo para hablar por
teléfono en cualquier parte, a los últimos modelos, con los que el término “medio de
comunicación” se queda bastante pequeño.
Fue desarrollado por Android Inc., empresa que en 2005 fue comprada por Google,
aunque no fue hasta 2008 cuando se popularizó, gracias a la unión al proyecto de
Open Handset Alliance, un consorcio formado por 48 empresas de desarrollo
hardware, software y telecomunicaciones, que decidieron promocionar el software
84
libre. Pero ha sido Google quien ha publicado la mayor parte del código fuente del
sistema operativo, gracias al software Apache, que es una fundación que da soporte
a proyectos software de código abierto.
Dado que Android está basado en el núcleo de Linux, tiene acceso a sus recursos,
pudiendo gestionarlo, gracias a que se encuentra en una capa por encima del
Kernel, accediendo así a recursos como los controladores de pantalla, cámara,
memoria flash…
En la Figura 24, abajo, se muestran las capas que conforman el sistema operativo
Android:
Dentro del desarrollo de aplicaciones móviles, existen tres tipos de aplicaciones que
son: Nativas, Webs e Hibridas.
85
Nativas
Una app nativa, en principio (y solo en principio), es una aplicación que se desarrolla
directamente en el lenguaje nativo de cada terminal. Por eso, si vamos desarrollar
una App nativa tendremos que utilizar un lenguaje diferente para cada Sistema
Operativo. Los lenguajes de programación serán por tanto los siguientes:
iOS: Objective C
Android: Java
Windows: C# y Visual Basic .NET.
BlackBerry 10: C++
Obviamente todo depende del nivel y experiencia del equipo de desarrollo y de que
el código resultante de su trabajo sea el correcto, pero en principio, una App nativa
es la opción cuyo resultado es el más robusto y fluido ya que se desarrolla
directamente para integrarse en el Sistema Operativo. Si tu App surge de una buena
idea y un diseño bien trabajado a todos los niveles, la experiencia de usuario será
completa ya que su funcionamiento, rendimiento y respuesta será el más inmediato
de todas las opciones de desarrollo incluso en los diseños más complejos y
personalizados.
Híbridas
86
a las librerías del SO, pero lo cierto es que aunque de momento no se ha conseguido
igualar la respuesta y la experiencia de usuario de una App nativa, hay que
reconocer que va camino de hacerlo.
Su uso es una opción muy económica y muy interesante para llegar al mayor
número de usuarios repartidos en las diferentes plataformas y dispositivos aunque
por el momento sus limitaciones son claras.
Aplicaciones Web
Aplicación Web o Web App es precisamente eso, una web a la que se accede a
través de una URL en el navegador del dispositivo (Safari, Chrome o el que sea) y
se adapta al formato de tu pantalla para que tenga aspecto de navegación App. Los
navegadores de los móviles permiten crear un acceso directo en nuestro escritorio
de esta web, así que esa será la manera de “instalarla” (si se le puede llamar así)
en nuestro dispositivo.
En función de cómo sea nuestro proyecto tecnológico quizá solo nos interese
adaptar nuestra web a formato móvil con lo que hacer una Web App se convierte en
una solución estupenda. O quizá consideremos necesario que además de tener
nuestra App en las diferentes tiendas, tener una versión web a la que se acceda
desde un navegador, en ese caso es importante que tengas en cuenta que muchos
de los diferentes frameworks de desarrollo híbridos que existen (y también
TitaniumAppcelerator) te permitirán un desarrollo multiplataforma completo que
incluirá también la web.
87
A nivel de lenguajes de programación pues efectivamente es lo que estás
suponiendo: al ser una web deberás usar lenguajes de programación web (HTML,
CSS y Javascript).
Al igual que con todos los lenguajes de programación basados en .NET, los
programas escritos en VB .NET requieren el Framework .NET o Mono para
ejecutarse.
88
Permite usar con facilidad la plataforma de los sistemas Windows, dado que
tiene acceso prácticamente total a la API de Windows, incluidas librerías
actuales.
Es uno de los lenguajes de uso más extendido, por lo que resulta fácil
encontrar información, documentación y fuentes para los proyectos.
Fácilmente extensible mediante librerías DLL y componentes ActiveX de
otros lenguajes.
Posibilita añadir soporte para ejecución de scripts, VBScript o JScript, en las
aplicaciones mediante Microsoft Script Control.
Tiene acceso a la API multimedia de DirectX (versiones 7 y 8). También está
disponible, de forma no oficial, un componente para trabajar con OpenGL.
Existe una versión, VBA, integrada en las aplicaciones de Microsoft Office,
tanto Windows como Mac, que permite programar macros para extender y
automatizar funcionalidades en documentos, hojas de cálculo, bases de
datos (access).
Si bien permite desarrollar grandes y complejas aplicaciones, también provee
un entorno adecuado para realizar pequeños prototipos rápidos.
2.6.1.2. Java
89
Java es rápido, seguro y fiable. Desde portátiles hasta centros de datos, desde
consolas para juegos hasta súper computadoras, desde teléfonos móviles hasta
Internet, Java está en todas partes.
Lenguaje simple
Java posee una curva de aprendizaje muy rápida. Resulta relativamente sencillo
escribir applets interesantes desde el principio. Todos aquellos familiarizados con
C++ encontrarán que Java es más sencillo, ya que se han eliminado ciertas
características, como los punteros. Debido a su semejanza con C y C++, y dado
que la mayoría de la gente los conoce aunque sea de forma elemental, resulta muy
fácil aprender Java. Los programadores experimentados en C++ pueden migrar
muy rápidamente a Java y ser productivos en poco tiempo.
Orientado a objetos
Java fue diseñado como un lenguaje orientado a objetos desde el principio. Los
objetos agrupan en estructuras encapsuladas tanto sus datos como los métodos (o
funciones) que manipulan esos datos. La tendencia del futuro, a la que Java se
suma, apunta hacia la programación orientada a objetos, especialmente en
entornos cada vez más complejos y basados en red.
Distribuido
Java proporciona una colección de clases para su uso en aplicaciones de red, que
permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes
remotos, facilitando así la creación de aplicaciones distribuidas interpretado y
compilado a la vez
90
ejecutar directamente sobre cualquier máquina a la cual se hayan portado el
intérprete y el sistema de ejecución entiempo real (run-time).
Robusto
Java fue diseñado para crear software altamente fiable. Para ello proporciona
numerosas comprobaciones en compilación y en tiempo de ejecución. Sus
características de memoria liberan a los programadores de una familia entera de
errores (la aritmética de punteros), ya que se ha prescindido por completo los
punteros, y la recolección de basura elimina la necesidad de liberación explícita de
memoria.
Ventajas:
El JDK es una herramienta libre de licencias (sin costo), creada por Sun.-
Está respaldado por un gran número de proveedores.
Existe soporte dado por Sun.
Debido a que existen diferentes productos de Java, hay más de un proveedor
de servicios.
Sun saca al mercado cada 6 meses una nueva versión del JDK.
Es independiente de la plataforma de desarrollo.
Existen dentro de su librería clases gráficas como awt y swing, las cuales
permiten crear objetos gráficos comunes altamente configurables y con una
arquitectura independiente de la plataforma.
Java permite a los desarrolladores aprovechar la flexibilidad de la
Programación Orientada a Objetos en el diseño de sus aplicaciones.
El conocimiento sobre tecnología Java está en alto crecimiento en el
mercado.
Se puede acceder a bases de datos fácilmente con JDBC,
independientemente de la plataforma utilizada. O El manejo de las bases de
datos es uniforme, es decir transparente y simple.
91
Existen las herramientas CrystalReports o herramientas libres como iText
que los genera en formato pdf.o La API que utilizan estas herramientas en
Java, es la más recomendable para generar reportes en Web.
Desventajas:
Hay diferentes tipos de soporte técnico para la misma herramienta, por lo que
el análisis de la mejor opción se dificulta.
Para manejo a bajo nivel deben usarse métodos nativos, lo que limita la
portabilidad.
El diseño de interfaces gráficas con awt y swing no es simple. O Existen
herramientas como el JBuilder que permiten generar interfaces gráficas de
manera sencilla, pero tienen un costo adicional.
Puede ser que no haya JDBC para bases de datos poco comerciales.
92
software y, a veces, del plan del proyecto, en algunos de los casos se puede
combinar ambas estrategias.
Una vez que se culminó la etapa de integración se puede decir que el software está
completamente ensamblado, se ha encontrado y corregido errores de la interfaces
y se puede comenzar una serie final de prueba del software. La prueba de validación
se logra cuando la expectativas razonable del cliente se cumplen en donde incluye
la especificación de requisitos, documentos en donde se describen los atributos del
software que son visibles para el usuarios, esta información forma la base del
enfoque a la prueba de validación.
93
funcionales con respecto al comportamiento esperado del software, causados por
la realización de un cambio en el programa.
94
3. MARCO PRÁCTICO
3.1. ANÁLISIS DE LOS PROCESOS DE LA GESTIÓN ACADÉMICA
DE CALIFICACIONES Y DISEÑO DEL MODELO DE NEGOCIO
ACTUAL
Para representar de mejor manera este procedimiento, ver la figura 25 y figura 26.
95
3.1.2. Modelo de negocio actual en tres niveles
96
3.1.3. Modelado de negocio actual de actividades
Inicio
Inicio
SI
¿Existe
Registro? Hallar porcentaj es de acuerdo a:
¿Estudiante NO *Participacion en clases 10%
de 3er año? *Promedio de controles 20%
*Examen Parcial 30%
No *Examen Final 40%
Registro de estudiantes,
materias, cursos y SI
horarios
El encargado realiza el
archiv ado de planillas de
notas y examenes en el
dpto de ev aluacion
El encargado de escuadron de
El encargado de escuadron elabora
Estudiantes mas ev aluacion realiza un reporte general
un listado de los estudiantes
destacados tienen opcion con el desempeño academico de
destacados en base al reporte de
a becas todos los estudiantes dentro de la
desempeño academico
institucion
97
3.2. DISEÑO DEL MODELO DE NEGOCIO ALTERNATIVO
CONSIDERANDO LA NECESIDAD DE UNA PLATAFORMA WEB Y
MÓVIL
3.2.1. Falencias existentes en el proceso actual de gestión de calificaciones
Este modelo surge como una propuesta que permita solucionar las deficiencias
encontradas en el modelado actual y las ya mencionadas en el punto anterior, en la
figura 27 se ilustra el modelado de negocio alternativo.
98
Figura 27: Modelo de negocio alternativo en tres niveles
99
act ModeloAlternativ o
A B C
Inicio
Encargado de escuadrón Inicio
selecciona en la interfaz
la operacion que desea
Si
No ¿Salir del Sesion Finalizada
sistema?
FIN
D
3.2.4. Selección del modelo de desarrollo de software
101
acotar el tamaño de los
incrementos.
102
que hay que suficientemente
revisar efectivas
Especifica bien los El producto final
roles de los obtenido puede
distintos tipos de que no refleje
pruebas a realizar todos los
Involucra al requisitos del
usuario en las usuario.
pruebas.
El Politécnico Militar de Aeronáutica Sbtte Jose Max Ardilles no cuenta con ningún
sistema informático que le permita realizar el proceso de gestión de calificaciones,
el modelo UP funciona mejor con empresas que tienen objetivos volátiles, en este
caso no se aplica, ya que el POLMILAE tiene los objetivos claros como se ven
reflejados en el modelo de 3 niveles del negocio actual, el modelo en V suele tender
a no satisfacer todos los requisitos que el cliente requiere, y además el cliente no
ve ningún resultado sino hasta haber finalizado el proyecto, por la comparativa de
estos tres modelos, se ha optado realizar para este proyecto el modelo incremental
por su objetividad clara y entregas tempranas de pequeños avances del sistema al
cliente, esto reflejara positivamente que el proyecto va por buen camino.
Primer incremento
Segundo Incremento
103
Tercer Incremento
104
MySQL software es Un gran porcentaje de
Open Source. las utilidades de MySQL
Velocidad al realizar las no están documentadas
operaciones, lo que le Los privilegios de una
hace uno de los tabla no se eliminan
gestores con mejor automáticamente
rendimiento. cuando se borra una
Bajo costo en tabla.
requerimientos para la No es intuitivo, como
elaboración de bases otros programas
de datos, ya que (Access).
debido a su bajo
consumo puede ser
ejecutado en una
máquina con escasos
recursos sin ningún
MySQL
problema.
Baja probabilidad de
corromper datos,
incluso si los errores no
se producen en el
propio gestor, sino en el
sistema en el que está.
Su conectividad,
velocidad, y seguridad
hacen de MySQL
Server altamente
apropiado para acceder
bases de datos en
Internet.
El software MySQL usa
la licencia GPL
105
Soporte de MSSQL usa
transacciones. AddressWindowing
Escalabilidad, Extensión (AWE) para
estabilidad y seguridad. hacer el
Soporta direccionamiento de 64-
procedimientos bit. Esto le impide usar la
almacenados. administración dinámica
Incluye también un de memoria y sólo le
potente entorno gráfico permite alojar un
de administración, que máximo de 64GB de
permite el uso de memoria compartida.
comandos DDL y DML MSSQL no maneja
gráficamente. compresión de datos (en
Microsoft SQL SERVER Permite trabajar en SQL Server 2005 y
modo cliente-servidor, 2000, solamente la
donde la información y versión 2008 Enterprise
datos se alojan en el Edition incluye esta
servidor y los característica), por lo
terminales o clientes de que ocupa mucho
la red sólo acceden a la espacio en disco.
información.
Además permite
administrar información
de otros servidores de
datos.
Para este proyecto se ha optado por el gestor de base de datos MySQL ya que el
sistema necesita de un gestor que sea robusto en la cantidad de datos que puedan
soportar las tablas, SQL Server requiere de una licencia de pago y además requiere
106
de mucha memoria. Tampoco se aceptó PostgreSql debido a su reducida cantidad
de manejo de datos y no exige integridad relacional. MySQL ofrece una licencia bajo
la GNU GPL para cualquier uso, además de ser multiplataforma, permite manejar
bases de datos relacionales, flexibilidad a la hora de crear tablas y alta
compatibilidad con muchos lenguajes de programación.
107
Facilita el
mantenimiento de
grandes aplicaciones.
Incremento de
velocidad de respuesta
del servidor.
Mayor velocidad.
Mayor seguridad.
Muy fácil de aprender. Se necesita instalar un
Se caracteriza por ser servidor web.
un lenguaje muy Todo el trabajo lo
rápido. realiza el servidor y no
Soporta en cierta delega al cliente. Por
medida la orientación a tanto puede ser más
objeto. Clases y ineficiente a medida
herencia. que las solicitudes
Es un lenguaje aumenten de número.
multiplataforma: Linux, La legibilidad del
Windows, entre otros. código puede verse
Capacidad de conexión afectada al mezclar
con la mayoría de los sentencias HTML y
PHP
manejadores de base PHP.
de datos: MysSQL, La programación
PostgreSQL, Oracle, orientada a objetos es
MS SQL Server, entre aún muy deficiente
otras. para aplicaciones
Capacidad de expandir grandes.
su potencial utilizando Dificulta la
módulos. modularización.
Posee documentación Dificulta la
en su página oficial la organización por capas
cual incluye de la aplicación.
descripción y ejemplos
108
de cada una de sus
funciones.
Es libre, por lo que se
presenta como una
alternativa de fácil
acceso para todos.
Incluye gran cantidad
de funciones.
No requiere definición
de tipos de variables ni
manejo detallado del
bajo nivel.
109
La creación de
Restful APIs es más
sencilla.
Cuenta con un ORM
tan practico que se
basa en un patrón
ActiveRecord.
Los componentes Hay que “instalar” el
están libremente framework en el
acoplados. Con servidor web, y esto
Phalcon, nada está puede ser un gran
impuesto: tienes la freno a la hora de
libertad de usar todo desplegar la
el framework, o solo aplicación.
las partes que A la hora de utilizar
necesites el framework en tu
Optimizaciones de proyecto, debes
bajo nivel ayudan a crear de forma
reducir la manual el archivo
Phalcon
sobrecarga que carga los
requerida para componentes de
correr aplicaciones Phalcon (un archivo
MVC de inicialización del
Las operaciones framework,
con base de datos boostrap).
se efectúan con la
máxima eficiencia al
usar un ORM para
PHP escrito en C
Phalcon accede
directamente a las
110
estructuras internas
de PHP
optimizando
además cada
ejecución
Es muy liviano. La Pertenece a una
última versión, la empresa. La cual
1.7.2 apenas puede decidir un
supera 1Mb. día dejar de
Ofrece un gran actualizarlo, dar
rendimiento. soporte o hacerlo
Ofrece de pago.
compatibilidad con La compatibilidad
varias versiones de con tantas
PHP. versiones de PHP
Concretamente hace que no
desde la 4.3.2 a la podamos hablar de
5.3.0 un framework
CodeIgniter
Apenas requiere completamente
configuración. Orientado a
No requiere de línea Objetos.
de comandos para No trabaja con
generar las módulos por lo que
aplicaciones. separar la
No sigue una línea aplicación en éstos
de reglas estricta. requiere de plugins,
Podemos adaptarlo modificación de la
a nuestras estructura básica o
necesidades. ser muy ordenados.
111
No es una gran
librería al estilo
PEAR.
No requiere
aprender un
lenguaje de platillas.
Es opcional.
Genera SEO urls
para los
buscadores.
Tiene una
documentación
clarísima.
112
3.3.4. Análisis del primer incremento
Requerimientos funcionales
113
Debe tener una interfaz amigable.
3.3.5. Diseño
Describe la realización física de los casos de uso y crea una base al modelo de
implementación.
Diagramas de clases
Diagramas de despliegue
114
a) Diagramas de clases
115
Figura 29: Diagrama de clases
116
Diagramas de bases de datos
117
Diccionario de datos de la base de datos.
118
Apellido Paterno de la
ApellidoPaterno Cadena 45
persona.
Persona
Apellido Materno de la
ApellidoMaterno Cadena 45
persona.
Dirección domiciliar de
Direccion Cadena 45
la persona.
Número telefónico de
Telefono Entero
la persona.
Sexo de la persona
Sexo Cadena 15 (Masculino o
Femenino)
IdEspecialidad Entero Primaria Identificador de la tabla
Nombre de la
Nombre Cadena 50
Especialidad Especialidad
Nota Mínima de
NotaAprobacion Float
Aprobación
Id Entero Primaria Identificador de la tabla
Cargo
Nombre Cadena 45 Nombre del cargo.
Id Entero Primaria Identificador de la tabla
Identificar de la tabla
Persona_id Entero Foránea
Asignarcargo Persona.
Identificador de la tabla
Cargo_id Entero Foránea
Cargo
Id Entero Primaria Identificador de la tabla
Identificador de la tabla
Persona_id Entero Foránea
Persona
Identificador de la
Materia Id Entero Primaria
tabla.
119
Codmateria Cadena 10 Código de la materia.
Nombremateria Cadena 45 Nombre de la materia.
Sigla Cadena 10 Sigla de la materia
Identificador de la
Id Entero Primaria
tabla.
Gestión
Gestion Entero correspondiente al
curso (año).
Curso
Paralelo
Paralelo Cadena 50 correspondiente al
curso.
Identificador de la tabla
Especialidad_id Entero Foránea
Especialidad.
Identificador de la
Id Entero Primaria
tabla.
Identificador
Asignarmateriac Curso_id Entero Foránea perteneciente a la
urso tabla curso
Identificador
Materia_id Entero Foránea perteneciente a la
tabla materia
Identificador
Id Entero Primaria perteneciente a la
tabla.
Asignarmateriad
Clave perteneciente a
ocente Persona_id Entero Foránea
la tabla Persona
Clave perteneciente a
Materia_id Entero Foránea
la tabla Materia.
Asignarcursoest Identificador de la
Id Entero Primaria
udiante tabla.
120
Identificador de la tabla
Persona_id Entero Foránea
persona.
Identificador de la tabla
Curso_id Entero Foránea
curso.
b) Diagramas de despliegue
Los diagramas de despliegue nos permiten ver los dispositivos que interactúan entre
sí para el funcionamiento del sistema y qué tipo de información se envían unos a
otros.
Respuesta
HT T P-GET
Sol i ci tud Restful
(HT T P-POST ) Serv idor Web
IP Apache
IP
Sw itch
IP
IP
Clientes
Dispositiv os
Cliente Laptop M ov iles Android
Clientes PC
121
En la representación del diagrama de despliegue para el sistema propuesto, se
puede observar como varios dispositivos a través de una conexión de Red (Wi-fi o
Ethernet) están conectados al servidor web apache es decir mediante un protocolo
HTTP pueden acceder al servicio que proporciona este servidor que es donde se
encontrará alojado el sistema propuesto, también tienen acceso mediante un
protocolo IP/TCP al servidor de base de datos, pero no de manera directa sino
mediante la interfaz que proporcionará el sistema propuesto.
122
Figura 32: Diagrama de casos de uso del primer incremento.
uc Casos de uso del sistema
Ingresar al sistema
Administrar Cargos
Administrar
Estudiantes
Encargado de escuadron
de ev aluacion
Administrar Docentes
Administrar
Administrativ os
Administrar Materias
Administrar
Especialidades
Administrar Cursos
M odificar
«extend»
Administrar Cargos M ostrar Cargos
«extend»
Eliminar
Encargado de
escuadrón de Registrar Cargos
ev aluación
123
Descripción de caso de uso: A continuación se muestra una explicación del caso
de uso administrar estudiantes a su función y actores.
uc Administrar Estudiantes
Modificar
«extend»
Encargado de escuadrón
de ev aluación Eliminar
Registrar Estudiantes
124
Descripción de caso de uso: A continuación se muestra una explicación del caso
de uso administrar docentes a su función y actores.
Modificar
Mostrar Docentes «extend»
Encargado de Eliminar
escuadrón de
ev aluación
Registrar Docentes
125
Descripción de caso de uso: A continuación se muestra una explicación del caso
de uso administrar especialidades a su función y actores.
uc Administrar Administrativ os
Modificar
Encargado de
escuadrón de «extend»
ev aluación
Eliminar
Registrar
Administrativ o
126
Descripción de casos de uso: A continuación se muestra una explicación del caso
de uso administrar administrativos a su función y actores.
Modificar
«extend»
Eliminar
Encargado de
escuadrón de
ev aluación «i ncl ude»
«i ncl ude»
«i ncl ude»
Registrar Materias
Asignar Materia a
Mostrar Materias
Docente
asignadas a
Docentes
uc Administrar Especialidades
Modificar
«extend»
Administrar Mostrar
Especialidades Especialidades
«extend»
Eliminar
Encargado de escuadrón «include»
de ev aluación
Mostrar
«include» «include» Especialidades
asignadas a
Estudiantes
128
Descripción de caso de uso: A continuación se muestra una explicación del caso
de uso administrar cursos a su función y actores.
Mostrar Asignacion
de Cursos a
Estudiantes
Administrar Cursos «extend»
Encargado de escuadrón
de ev aluación «extend»
Mostrar asignacion
«extend» de Materias a Curso
«i ncl ude» «i ncl ude»
«i ncl ude»
Mostrar Cursos
Registrar Cursos Asignar Materias a
Curso Asignar Curso a
Estudiante
«extend»
«extend»
Modificar
Eliminar
129
Tabla 16: Descripción caso de uso Administrar Cursos
Diagramas de comunicación
130
Caso de uso Administrar Cargos
sd Administrar Cargos
sd Administrar Estudiantes
Vista Administrar
Estudiantes
0.1: Accede a la vista()
131
Caso de uso Administrar docentes
sd Administrar Docentes
Controlador
0.1: Accede a la vista()
Administrar Docentes
0.4: Acceder a la funcion() 0.5: Listado de Docentes() 0.6: Fin registro() 0.7: Docente Registrado()
Mostrar Docentes
Registro Docente
sd Administrar Administrativ os
Vista Administrar
1: Accede a la vista() Administrativ os
Mostrar Registro
Administrativ os Administrativ os
132
Caso de uso administrar materias
sd Administrar Materias
Encargado de escuadron
0.2: Cargar Parametros()
de ev aluacion
Asignar Materia a
Docente
Mostrar Asignaciones de Registro Materia
Materias a Docentes
sd Administrar Especialidades
Encargado de escuadron
de ev aluacion 0.2: Cargar Parametros()
Asignar
Especialidad a
Mostrar asignaciones de Registro de
Estudiante
especialidad a estudiante especialidad
133
Caso de uso administrar cursos
Mostrar Cursos
0.1: Accede a la vista() asignados a
Vista Administrar 0.14: Enviar Parametros() estudiantes
Cursos
Asignar Materias a
Curso
3.3.6. Codificación
Para la codificación del sistema se utilizan las anteriores etapas que son análisis y
diseño, para elaborar las interfaces e implementarlas en funcionamiento.
134
Figura 47: Diseño de la arquitectura de la aplicación web.
135
3.3.6.2. Interfaces del sistema
136
Figura 49: Interfaz Menú Principal jefe de escuadrón de evaluación.
137
Figura 51: Interfaz listado y registro finalizado del cargo.
138
Interfaz listado de estudiantes
139
Figura 54: Interfaz registro de docentes.
140
Interfaz Registrar Materias
141
Figura 57: Interfaz Mostrar Materias
142
Interfaz Mostrar Asignaciones de materias a docentes
143
Interfaz Mostrar Especialidades
144
Interfaz Mostrar Cursos
145
Interfaz Asignar materias a curso
146
Interfaz Mostrar asignaciones de materias a curso
3.3.7. Pruebas
3.3.7.1.1 Pruebas de requerimientos
147
Tabla 17: Pruebas de requerimientos al sistema
148
docentes existentes un listado con todos
en el sistema. los docentes
registrados, donde
se muestran
opciones de
modificación y
eliminación de estos.
El usuario Se recibe los datos El sistema muestra
administrador del formulario de en caso de registro,
logueado registro de modificación o
correctamente. administrativos, eliminación exitosa,
Registro de estos datos se un mensaje
Administrativos, registran en el notificando el
listado de los sistema y habilita al proceso realizado
Administrar registros de administrativo en el correctamente.
Administrativos administrativos sistema, se visualiza
existentes en el un listado con todos
sistema. los administrativos
registrados, donde
se muestran
opciones de
modificación y
eliminación de estos.
El usuario Se recibe los datos El sistema muestra
administrador del formulario de en caso de registro,
logueado registro de materias, modificación o
correctamente. estos datos se eliminación exitosa,
Registro, registran en el un mensaje
Administrar Materias modificación y sistema, se visualiza notificando el
eliminación de un listado con todas proceso realizado
materias en el las materias correctamente.
sistema. registradas, donde
se muestran
opciones de
149
modificación y
eliminación de estas.
El usuario Se recibe los datos El sistema muestra
administrador del formulario de en caso de registro,
logueado registro de modificación o
correctamente. especialidades, eliminación exitosa,
Registro, estos datos se un mensaje
modificación y registran en el notificando el
eliminación de sistema, se visualiza proceso realizado
Administrar Especialidades en el un listado con todas correctamente.
Especialidades sistema. las especialidades
registradas, donde
se muestran
opciones de
modificación y
eliminación de estas.
150
3.4. DESARROLLO DE UNA APLICACIÓN MOVIL PARA LA
GESTION DE CALIFICACIONES
151
Figura 68: Actividades de la aplicación Android
152
exactamente la
información que se
necesita
Servicios RESTful
proporcionan una
buena infraestructura
de almacenamiento
en caché a través de
HTTP método GET
(para la mayoría de
los servidores), esto
mejorará el
rendimiento, si los
datos que devuelve el
servicio Web no se
altera con frecuencia
y no son de
naturaleza dinámica.
Servicios REST son
fáciles de integrar con
los sitios web
existentes y están
expuestos a XML para
que las páginas HTML
pueden consumir la
misma con facilidad.
Casi no hay
necesidad de
refactorizar la
arquitectura de sitio
web existente. Esto
hace que los
desarrolladores sean
más productivos y
153
cómodo, ya que no
tendrán que volver a
escribir todo desde
cero y sólo hay que
añadir la
funcionalidad
existente.
El Web Services Si se desea modificar
Description Language algo en el servidor
(WSDL) contiene y esto impacta de una
describe el conjunto forma negativa en los
de normas comunes clientes ya que ellos
para definir los realizar varias
mensajes, los modificaciones al
enlaces, las código.
operaciones y la Si no se cuenta con
ubicación del servicio las herramientas
Web. WSDL es un correctas, la
tipo de contrato formal interpretación puede
para definir la interfaz tornarse demasiado
SOAP que ofrece el servicio compleja y difícil.
Web.
SOAP requiere
menos código de
plumbing code de
servicios REST, (es
decir, las
transacciones, la
seguridad, la
coordinación,
direccionamiento, la
confianza, etc) La
mayoría de las
aplicaciones en el
154
mundo real no son
simples y apoyar las
operaciones
complejas, que
requieren para
mantener el estado de
conversación y la
información
contextual. Con el
enfoque de SOAP, los
desarrolladores no
tienen que
preocuparse acerca
de cómo escribir el
código de plomería en
la capa de aplicación
a sí mismos.
Es más seguro debido
a que su
implementación
siempre o la mayoría
de las veces se hace
del lado del servidor.
Soporta varios
protocolos y
tecnologías,
incluyendo WSDL,
XSD, SOAP y WS-
Addressing.
155
servicio SOAP, además que el framework escogido para el desarrollo de la
aplicación web utiliza RESTful esto facilita la compatibilidad entre ambas
aplicaciones.
156
Permite usar con Pobre soporte para
facilidad la plataforma programación
de los sistemas orientada a objetos.
Windows, dado que Dependencia de
tiene acceso complejas y frágiles
prácticamente total a la entradas de registro
API de Windows, COM.
incluidas librerías
actuales.
Integra el diseño e
Visual Basic implementación de
formularios de
Windows.
Es uno de los
lenguajes de uso más
extendido, por lo que
resulta fácil encontrar
información,
documentación y
fuentes para los
proyectos.
El desarrollo de una aplicación móvil que sirva de presentación para los usuarios
será desarrollada bajo el lenguaje de programación Java, ya que este es un lenguaje
independiente del sistema operativo en el cual se trabaje, además que existe una
buena compatibilidad con el lenguaje utilizado para la aplicación web que es PHP.
157
3.4.4. Análisis del segundo incremento
158
Encargado de escuadrón de evaluación: Es quien se encarga de administrar
los datos personales de los estudiantes, almacena los exámenes que los
docentes entregan junto con las planillas, en el sistema se encargara de
gestionar las notas de los estudiantes.
Docente: En la institución es quien se encarga de evaluar a los estudiantes,
a ellos se les asignan materias y cursos para que estos para que estos
puedan calificar a los estudiantes, en el sistema se encargaran de registrar
notas, obtener reporte final de las notas y se les asignara una cuenta de
usuario para poder acceder tanto a la aplicación web y móvil.
3.4.5. Diseño
Describe la realización física de los casos de uso y crea una base al modelo de
implementación.
Esta etapa de diseño se divide en dos fases, que son diseño estructural y de
comportamiento.
Diagramas de clases.
Diagramas de despliegue.
a) Diagramas de clases
De acuerdo a los requisitos funcionales identificados anteriormente, se ha elaborado
el siguiente diagrama de clases del sistema, mostrado en la figura 69
159
Figura 69: Diagrama de clases
class Diagramas de clases
Persona
- Id: int
- CI: char AsignarCargo Cargo
- ApellidoPaterno: char 1 - Id: int 1 - Id: int
N
- ApellidoMaterno: char - Persona_id: int - Nombre: char
- Direccion: char 1 1 - Cargo_id: int
- Telefono: int + Registrar() : void
- Sexo: char + Registrar() : void + Buscar() : void
+ Modificar() : void
+ Registrar() : void + Eliminar() : void
+ Buscar() : void
1
1 + Modificar() : void
+ Eliminar() : void
1
1
AsignarEspecialidad
- Id: int
- Persona_id: int
- Especialidad_id: int 1 Asignarcuentausuario
+ Registrar() : void
+ Buscar() : void
+ Modificar() : void
+ Eliminar() : void
160
La figura 70 muestra el diagrama de base de datos del sistema.
b) Diagramas de despliegue
Los diagramas de despliegue nos permiten ver los dispositivos que interactúan entre
sí para el funcionamiento del sistema y qué tipo de información se envían unos a
otros.
161
En la figura 71 podemos observar como los dispositivos están conectados y que
parámetros recién o se envían.
Respuesta
HTTP-GET
Solicitud Restful
(HTTP-POST) Serv idor Web
IP Apache
IP
Sw itch
IP
IP
Clientes
Dispositiv os
Cliente Laptop Mov iles Android
Clientes PC
162
protocolo IP/TCP al servidor de base de datos, pero no de manera directa sino
mediante la interfaz que proporcionara el sistema propuesto.
En este caso tenemos a la aplicación web como servicio y a la aplicación móvil como
cliente, la aplicación móvil consumirá el servicio proporcionado por la aplicación web
a través de un servicio Restful.
163
Figura 72: Diagrama de casos de uso de la aplicación móvil
Ingresar a la
aplicacion mov il
Docente
Registrar Notas
Encargado de
escuadrón de
ev aluación
Jefe de escuadrón
de ev aluación
Gestionar Notas
«include»
«include»
Modificar
Eliminar
Registrar Notas
Encargado de escuadron
de ev aluacion
Docente
Jefe de escuadron de
ev aluacion
164
Especificación de casos de uso: A continuación se muestra una especificación
del caso de uso registrar notas de acuerdo a su función y actores.
Gestionar Notas
Jefe de escuadron de
ev aluacion
«include» «include»
Encargado de escuadron
de ev aluacion
Eliminar Modificar
165
Especificación de casos de uso: A continuación se muestra una especificación
del caso de uso gestionar notas a su función y actores.
166
Caso de uso Administrar Notas en la aplicación web
Modificar
«extend»
Administrar Notas Listar Notas
«extend»
Eliminar
Jefe de escuadrón «include»
de ev aluación
Registrar Notas
Encargado de
escuadrón de
ev aluación
167
La modificación o eliminación de estas
notas se hará a un determinado
estudiante.
Diagramas de comunicación
sd Administrar Notas
1: Accede a la vista()
1.1: Accede a la vista()
Vista Registrar
Notas
Registro de nota
168
Caso de uso gestionar notas
sd Gestionar Notas
sd Administrar Notas
1: Ingresar a la vista()
Vista Administrar 1.1: Ingresar a la vista()
Notas
169
3.4.6. Codificación
Para la codificación del sistema se utilizan las anteriores etapas que son análisis y
diseño, para elaborar las interfaces e implementarlas en funcionamiento.
Nivel de aplicación
Nivel de Presentación
170
Luego de haber diseñado el segundo incremento la arquitectura de desarrollo de
software de la aplicación web quedo de la siguiente manera:
171
Figura 81: Icono de la aplicación móvil en el dispositivo
Figura 82 se muestra la interfaz, con los cuadros de texto y el botón para ingresar
como usuario dentro del sistema.
172
Figura 82: Interfaz ingresar al sistema
Se puede observar que al ingresar el estudiante se le muestra los datos de este que
ha sido logueado en la figura 83 se ve como el usuario ha sido identificado como
estudiante y se muestra el menú correspondiente con la opción de ver notas en pdf.
173
Figura 83: Interfaz del menú del estudiante
174
Figura 84: Interfaz del personal del escuadrón de evaluación.
En esta interfaz se muestra en una lista desplegable los cursos registrados, los
estudiantes pertenecientes a ese curso y las materias que pertenecen a ese curso,
como se puede observar en la figura 85.
175
Figura 85: Interfaz de registrar notas
En esta interfaz nos muestra en una lista desplegable los cursos registrados, los
estudiantes pertenecientes a estos y la materia la cual queremos ver las notas que
se tienen registradas, como se observa en la figura 86.
176
Figura 86: Interfaz de gestionar notas
177
Figura 87: Interfaz de mostrar notas
178
Figura 88: Interfaz de modificar nota
3.4.7. Pruebas
En esta etapa se realiza pruebas de funcionalidad por casos de uso tomando los
casos de uso correspondientes al segundo incremento.
179
Tabla 23: Prueba: Desarrollo de una aplicación móvil para la gestión de
calificaciones
180
dispositivo la modificación o modificación como
móvil eliminación de las para eliminación de
Loguearse notas desde la notas.
con una aplicación móvil.
cuenta de
usuario en la
aplicación
móvil.
El sistema
recupera la
información
del curso,
estudiante y
asignatura a
gestionar.
181
Tipos de reportes identificados:
182
Figura 89: Diagrama de casos de uso del tercer incremento
uc Tercer incremento
Generar Reportes
Jefe de escuadrón de
ev aluación
Estudiante
183
Tabla 25: Descripción de caso de uso
184
En la siguiente figura se puede observar la codificación del módulo de generación
de reporte de notas.
186
Esta prueba permite verificar que la información que se intercambia entre el sistema
web y la aplicación móvil se envía y se recibe en la misma proporción.
187
Nivel 0
El nivel 0 es un caso especial en el cual el caso de uso que pertenece a este nivel
no depende de nadie, es decir es el único caso de uso independiente.
No tiene caso
Administrar
de uso Ninguno. Satisfactorio
Cargos
antecesor.
DESCRIPCIÓN
Nivel 1
Son los casos de uso que dependen del nivel 0, en el cual se administran los
estudiantes, docentes y administrativos se utilizan para ingresar al sistema y se
puede acceder a los casos de uso de acuerdo al tipo de usuario.
Registro de
Administrar Administrar Estudiante.
Satisfactorio
Estudiantes. Cargos Comprobar tipo
de usuario
188
DESCRIPCION
Registro de
Administrar Administrar Docente.
Satisfactorio
Docentes. Cargos Comprobar tipo
de usuario
DESCRIPCION
189
Tabla 30: Prueba de integración caso de uso administrar administrativos.
Registro de
Administrar Administrar Administrativo.
Satisfactorio
Administrativos. Cargos Comprobar tipo
de usuario
DESCRIPCION
Nivel 2
Este nivel depende del nivel 0 y del nivel 1, para poder administrar materias y
especialidades se debe previamente haber administrado los cargos, docentes,
administrativos y estudiantes.
Administrar
Cargos Registro de
Administrar Administrar Materias.
Satisfactorio
Materias. Estudiantes Listado de
Administrar Materias
Docentes
190
Administrar Asignación de
Administrativ materias a
os docentes.
DESCRIPCION
Administrar
Cargos Registro de
Administrar Especialidades.
Estudiantes Listado de
Administrar
Administrar Especialidades Satisfactorio
Especialidades.
Docentes Asignación de
Administrar Especialidades a
Administrativ estudiantes.
os
DESCRIPCION
191
Nivel 3
Este nivel depende del nivel 1 y del nivel 2, para poder Administrar Cursos se debe
previamente haber registrado estudiantes, docentes, especialidades,
administrativos y materias.
Administrar
Materias. Registro de
Administrar Cursos.
Especialidad Listado de
es Cursos.
Administrar Administrar Asignación de
Satisfactorio
Cursos. Estudiantes Cursos a
Administrar estudiantes.
Docentes Asignación de
Administrar materias a
Administrativ cursos.
os
DESCRIPCION
Nivel 4
Este nivel depende del nivel 3 y del nivel 1, para poder Administrar Notas se debe
previamente haber registrado cursos y administrativos.
192
Tabla 34: Prueba de integración caso de uso administrar notas.
Administrar Registro de
Administrativ Notas.
Administrar
os. Satisfactorio
Notas. Listado de Notas.
Administrar Gestión de notas.
Cursos.
DESCRIPCION
Nivel 5
Este nivel depende del nivel 41, para poder Obtener reportes se debe previamente
haber registrado las notas.
Obtener reporte
de notas por
curso.
Administrar Administrar Generar reportes
Satisfactorio
Notas. Notas. estadísticos.
193
DESCRIPCION
194
Tabla 36: Pasos para los procesos de entrega de reportes
Registrar
Nombre, CI,
Apellido
Se pide la
Proceso de paterno,
información
registro de 10 min. Apellido 1 min.
personal del
estudiantes materno,
estudiante nuevo.
Dirección,
Teléfono y
Sexo.
Se procede a Se procede a
registrar todas las registrar todas
materias que se las materias
Proceso de
encuentran en la existentes con el
registro de 30 min. 10 min.
malla curricular de formulario de
materias
la institución en registro
una hoja de excel. proporcionado
por el sistema
195
Se procede a Se procede a
registrar todos los registrar todos
cursos que existen los cursos
Proceso de en la institución en existentes así
registro de hojas de Excel 30 min mismo 10 min
cursos asignándoles a
que
especialidad
pertenecen
El docente se El Docente
encarga de realizar ingresa al
las evaluaciones módulo de
correspondientes, registro de
Registro de estas son notas,
120 min 20 min.
notas entregadas al selecciona la
encargado de materia que
escuadrón de tiene asignada y
evaluación y este procede a la
transcribe estas evaluación
196
notas a una hoja
Excel.
197
Tabla 37: Cuadro de valores para la matriz de riesgos.
PROBABILIDAD
I 1 2
RIESGO
Es necesario mencionar que para el desarrollo de la tabla tanto con sistema como
sin sistema se tomó en cuenta las tablas de matriz de riesgo anteriormente
presentadas.
Cabe resaltar que la estimación del nivel de riesgo para el sistema propuesta para
el procedimiento de evaluación académica se hace en base a experiencia del
personal que durante varias gestiones ha estado involucrado en esta actividad, ver
tabla 38.
198
Tabla 38: Matriz de riesgos
R
P P I
I MECANISMOS DE I
R R E
AMENAZA VULNERABILIDAD M RIESGO M
O CONTROL O S
P P
B B G
O
No se tiene un Al momento de
respaldo de la realizar el registro de
información los estudiantes estos
Registro de
registrada, porque 2 1 1.5 se almacenan en una 4 1 2.5
Estudiantes.
puede llegar a base de datos, la cual
dañarse los tiene opción a un
archivos manuales backup.
de los registros.
El registro en el
Registro de
Pueden llegar a sistema mantendrá
planillas de
dañarse o 2 1 1.5 seguro la información, 4 1 2.5
notas forma
extraviarse. en backup y
manual.
disponible para
cualquier momento.
Búsqueda de
Los reportes
información La búsqueda se la
brindaran información
sobre el realiza manualmente
rápida y detallada del
rendimiento y se pierde bastante 1 4 2,5 4 2 3
rendimiento
académico de tiempo en buscar la
académico de todos
los información.
los estudiantes.
estudiantes.
RIESGO
SIN SISTEMA 1.83 CON SISTEMA 2.67
TOTAL
199
Utilizando los valores para la matriz de riesgos, se realiza el cálculo de la media
del riesgo total sin sistema y con sistema
El riesgo total sin sistema se calcula por la sumatoria de los riesgos en las
vulnerabilidades sobre el número de riesgos evaluados. Y el riesgo total con
sistema se calcula de la sumatoria con sistema, por la sumatoria de los riesgos en
el mecanismo de control sobre el número de mecanismos evaluados.
El resultado nos indica que sin sistema el riesgo total es de 1.83, y con sistema
es de 2.67 y de acuerdo con la tabla 38, el análisis realizado detalla que el riesgo
total es menor con el sistema que con el riesgo total sin sistema o con el sistema
manual.
Numero
de Factores Tomados en Cuenta Como Beneficio Actual Sistema
factores
200
Numero
de Factores Tomados en Cuenta Como Beneficio Actual Sistema
factores
Teniendo como resultado del análisis de estas muestras, se concluye que el total
de beneficios por el proceso del sistema manual tiene la cantidad de 4, y con el
proceso de la herramienta la cantidad es de 9. Estos resultados se tomarán en
cuenta en el cálculo de estadístico T para realizar la aceptación o rechazo de la
hipótesis que está detallado más adelante en el documento
201
3.7.4. Definición de la hipótesis
Para la definir la hipótesis se considera el análisis de aceptación y rechazo de la
misma, haciendo referencia a un Pn que representa una probabilidad, en nuestro
caso tenemos que:
202
académica del Politécnico Militar de Aeronáutica Subtte Jose Max Ardiles
Monrroy).
Xn
P =
Q = −P
α
gl = n −
t =
P −P
∗ ∗
√ n +
n
Donde:
gl = Grado de libertad.
t = Valor estadistico para la aceptacion o rechazo de la hipotesis.
num de exitos
P =
tamano de muestra
Q = ⁄
203
num de existos
P =
tamano de muestra
Q =
α⁄ = %⁄ → , ⁄ = ,
n = => gl =
t α⁄ , − =t , , 8 = ,
Para los rangos de rechazo de la hipótesis se calcula por el valor del grado
de libertad obtenido y el valor del grado de error; se busca en la tabla y se tienen
los rangos, en este caso es de -2.3060 y 2.3060, es decir, cualquier valor dentro
de este rango demostrará que la hipótesis es nula (H0) y la aceptación (hipótesis
alternativa H1) de la hipótesis se encuentra fuera de estos rangos
P2 = 9/9 = 1 Entonces Q2 = 1 - 1 = 0
⁄ − − ⁄ − ⁄
t = = =
,
√ , +
√ ⁄ ∗ ⁄ + ∗
t =|− , |
|− , |< ,
204
Figura 94: Campana de Gauss.
Después de haber realizado el análisis del cálculo del T-Student, se puede indicar
que el valor obtenido está en el rango de la hipótesis alternativa H1, donde se tiene
P1 < P2 concluyendo que dicha hipótesis alternativa H1 indica que: “Los
procedimientos manuales usados en la actualidad para el proceso de evaluación
académica del Politécnico Militar de Aeronáutica Subtte Jose Max Ardiles Monrroy.
Tiene menores beneficios que el sistema de registro propuesto, por lo que queda
demostrado que se rechaza la hipótesis nula H0 y se acepta la alternativa H1
por tanto la herramienta propuesta es mejor que el procedimiento actual que se
tiene en la institución.
205
4. ANÁLISIS DE VIABILIDAD
4.1. VIABILIDAD TÉCNICA
Tabla 40: Requisitos de hardware para el funcionamiento del servidor del sistema.
Requerimiento Requerimiento Requerimiento
Hardware utilizado
Mínimo Disponible Ideal
Core i2
Microprocesador. Core i2 2.27Ghz. Core i7 3.0Ghz.
2.27Ghz.
BTC
Windows.
206
MiniDIM con 3
Mouse. M126 – Delux. M391 – Delux.
botones.
200 MB (libres)
Disco Duro. 350 GB. 1 Tb.
100Gb.
BTC
Windows.
MiniDIM con 3
Mouse. M126 – Delux. M391 – Delux.
botones.
207
Tabla 42: Requisitos de hardware de la aplicación móvil.
Requerimiento Requerimiento Requerimiento
Hardware utilizado
Mínimo Disponible Ideal
Qualcomm Qualcomm
Procesador Snapdragon MSM8255 dual-core de 1GHz Snapdragon 800
1 GHz 2.3 GHz
208
Tabla 43: Requisitos de elementos software para el servidor
Herramienta de
Apache versión 2.0. Apache versión 2.4.
servidor web.
MySQL Community
Manejador de Base de Edition 4.X. MySQL Enterprise
Datos. Edition 5.X
Lenguaje de
PHP 5.4 PHP 5.4 PHP 5.6
programación
209
Tabla 44: Requisitos de software para el cliente PC.
Requerimiento Requerimiento
Software Utilizado Requerimiento Mínimo
Disponible Ideal
Google Chrome
Navegador Web Internet Explorer 10 Internet Explorer 11.
versión 41.
Navegador Nativo
Navegador Web Google Chrome Google Chrome
Android
En base a los requerimientos mencionados se puede concluir que casi todos los
requerimientos mínimos existen en la institución, a excepción de unos cuantos para
el servidor, pero dado a que estos son de licencia gratuita no implican ningún costo
para la institución y por tanto no será necesario realizar una compra.
210
4.2. VIABILIDAD ECONÓMICA
Para estimar el costo de las licencias de los programas y los componentes más
relevantes del equipo para el desarrollo y la ejecución del proyecto se detallan los
siguientes costos en dólares, ver tabla 46
Requerimientos Requerimientos
Nombre Costo $us Costo $us
mínimos ideales
Disco Duro 500 GB 40 1TB 81
Microprocesador Core i2 200 Core i3 300
2.27Ghz.
Tarjeta de Video 64 MB 100 128 MB 150
Monitor 14 pulgadas 70 16 pulgadas 125
Teclado BTC compatible 10 K1890U – Delux 15
con Windows
Memoria RAM 128 MB 30 4 GB 95
MiniDIM con 3
botones
Mouse 10 M391- Delux 15
211
MySQL MySQL
Manejador de
Community 0 Enterprise 0
base de datos
Edition 4.X. Edition 5.X.
Sistema
Windows XP 60 Windows 7 80
Operativo
Lenguaje de
PHP 5.4 0 PHP 5.6 0
programación
Plataforma de
NotePad++ 0 Netbeans 8.0 0
desarrollo
Framework Laravel 4.0 0 Laravel 4.2 0
Total $us: 520 Total $us: 861
Disco Duro 45 90
Monitor 60 90
Teclado y mouse 20 30
212
Navegador 0 0
En la siguiente ver tabla 48 se muestran los análisis de costos y hardware para los
dispositivos móviles de los usuarios.
Sistema operativo. 0 0
213
formado por miembros de distintos niveles de experiencia, que trabajan sobre
un conjunto de requisitos más o menos flexibles.
3. Modelo empotrado: para proyectos caracterizados por unos requerimientos
y restricciones poco flexibles, que requieren un gran esfuerzo de innovación.
También poseen un elevado nivel de complejidad en hardware.
Modelo ai bi ai bi
214
Tabla 50: Ecuación básica del esfuerzo en COCOMO
MODO DE
ECUACIÓN BÁSICA DEL ESFUERZO
DESARROLLO
ORGÁNICO ,
Esfuerzo = EAF ∗ , ∗ KSLOC
EMPOTRADO ,
Esfuerzo = EAF ∗ ∗ KSLOC
SEMIACOPLADO ,
Esfuerzo = EAF ∗ , ∗ KSLOC
MODO DE
ECUACIÓN BÁSICA DEL ESFUERZO
DESARROLLO
ORGÁNICO , 8
Tiempo Desarrollo = , ∗ Esfuerzo
EMPOTRADO ,
Tiempo Desarollo = , ∗ Esfuerzo
SEMIACOPLADO ,
Tiempo Desarrollo = , ∗ Esfuerzo
Persona
= Esfuerzo en unidades de [ ]
mes
215
= Tiempo de duración del desarrollo en unidades de[Meses]
Fiabilidad Requerida
RELY 0,75 0,88 1 1,15 1,4 -
del Software
ATRIBUTOS DEL
PRODUCTO
Tamaño de la Base de
DATA - 0,94 1 1,08 1,16 -
Datos
Complejidad del
CPLX 0,7 0,85 1 1,15 1,3 1,65
Producto
Restricciones del
TIME - - 1 1,11 1,3 1,66
Tiempo de Ejecución
ATRIBUTOS DEL COMPUTADOR
Restricciones del
Almacenamiento STOR - - 1 1,06 1,21 1,56
Principal
Volatilidad de la
VIRT - 0,87 1 1,15 1,3 -
Máquina Virtual
Tiempo de respuesta
TURN - 0,87 1 1,07 1,15 -
del ordenador
PERSONAL
DEL
Experiencia en
AEXP 1,29 1,13 1 0,91 0,82 -
Aplicaciones
216
FACTORES DE MUY MUY EXTRA
BAJO MEDIO ALTO
COSTO BAJO ALTO ALTO
Capacidad de los
PCAP 1,42 1,17 1 0,86 0,7 -
programadores
Experiencia en
Sistema Operativo VEXP 1,21 1,1 1 0,9 - -
utilizado
Experiencia con el
Lenguaje de LEXP 1,14 1,07 1 0,95 - -
Programación
Prácticas de
programación MODP 1,24 1,1 1 0,91 0,82 -
ATRIBUTOS DEL PROYECTO
modernas
Utilización de
Herramientas de TOOL 1,24 1,1 1 0,91 0,83 -
Software
Limitaciones de
planificación del
SCED 1,23 1,08 1 1,04 1,1 -
desarrollo del
proyecto
Para determinar la cantidad total de líneas de código fuente se ha contado las líneas
de cada clase de la arquitectura MVC de la aplicación web 6048 (ver figura 95) y
217
1152 (ver figura 96) de la aplicación móvil, encontrando 7200 líneas de código en
total.
218
Para determinar el valor de la variable KSLOC se van a usar unidades de SLOC
(Líneas de código fuente), con las siguientes restricciones: Sumar las líneas de
código creadas por el personal del proyecto (no el creado por generadores de
aplicaciones). Se considera que una instrucción es una línea de código. Las
declaraciones se toman como instrucciones. Los comentarios no se cuentan como
instrucciones.
Se determina que:
�� =
KSLOC = SLOC/1000
�� = �, �
.
E = EAF ∗ . ∗ KSLOC
.
E= . ∗ . ∗ .
personas
E= . [ ]
mes
. 8
T = . ∗ Esfuerzo
. 8
T= . ∗ .
T= . [meses]
Esfuerzo
Personal =
Tiempo de desarrollo
.
Personal = = . [personas]
.
219
Ahora de calcula la “Productividad”
SLOC SLOC
PR = = = . [ ∗ mes]
Esfuerzo . Persona
Pero la situación, es que en este caso, el proyecto ha sido desarrollado por una sola
persona, así que los costos de desarrollo se calcularan considerando tal situación.
horas horas
→
dia mes
Total Horas de Trabajo = ∗ . = . [horas]
Por lo tanto, ajustando el horario de trabajo del autor del proyecto (2 horas al día),
y considerando el pago por hora de $us 3.44, se procede a calcular el costo
220
estimado del proyecto, multiplicando la cantidad de horas a trabajar en el lapso de
tiempo estimado por el pago por hora determinado:
$us
. [horas] ∗ . [ ]= . [$us]
hora
Incluyendo los costos de las herramientas tanto de Software como Hardware, que
se tiene a continuación:
221
En la tabla 54 se muestran los costos del proyecto con los requisitos mínimos e
ideales, pero dado que la institución cuenta con los requisitos mínimos en hardware
tanto para el servidor como para el cliente, y además cuentan con disposición de
dispositivos móviles con sistema operativo Android se establece los siguientes
cambios en el monto mínimo:
222
4.2.1. Análisis beneficio-costo
Para realizar el análisis de beneficio – costo del presente proyecto se emplearán los
siguientes datos:
223
Si la relación B/C es mayor que la unidad, el Proyecto es aceptable, porque
el beneficio es superior al costo.
Si la relación B/C es menor que la unidad, el proyecta debe rechazarse
porque no existe beneficio.
Si la relación B/C es igual a la unidad, es indiferente llevar adelante el
Proyecto, porque no hay beneficio ni perdidas.
Y
∑ = +i
B/C =
C
I +∑ = +i
Y = Beneficio
C = Costos
i = Tasa de interés
n= años.
Y = . − . = . Bs.
i= . %≅ .
+i = .
C = . Bs.
I = . Bs.
224
Donde reemplazando los valores en la ecuación se tiene:
B⁄
C
. . . . .
+ + + +
, , , , ,
=
. . . . .
. + + + + +
, , , , ,
B⁄ = .
C
225
1) Encargado de escuadrón.
226
3) Estudiante
4) Docente
El docente tiene la funcionalidad de poder registrar las notas de las materias que
tenga asignadas, para ello el sistema le permite:
227
5. CONCLUSIONES Y RECOMENDACIONES
5.1. CONCLUSIONES
228
El desarrollo de la aplicación móvil permite al personal de escuadrón de
evaluación realizar registro y búsqueda de calificaciones, al docente poder
registrar las notas de las materias que tenga asignadas y a los estudiantes la
visualización de sus calificaciones, esto se logró gracias a las herramientas
seleccionadas como ser el lenguaje de programación Java, el IDE Android
Studio y el servicio RESTful utilizado para la sincronización entre la aplicación
web y la aplicación móvil.
Para realizar la generación de reportes que son requeridas en la institución,
se determinó que tipos de reportes son estos y que campos precisan figurar
en los mismos, para ello se elaboró una entrevista al encargado y jefe de
escuadrón de evaluación, y se procedió a la codificación de estos.
Mediante el uso de pruebas funcionalidades se logró verificar la correcta
funcionalidad de cada caso de uso de la herramienta web y la aplicación
móvil, determinando la correctividad del sistema y su robustez ante fallas.
5.2. RECOMENDACIONES
229
Recomendaciones Funcionales
Recomendaciones a futuro
230
BIBLIOGRAFÍA
Ableson, F. (2 de Mayo de 2013). DeveloperWorks. Obtenido de Introduccion
Android: http://www.ibm.com/developerworks/ssa/library/os-android-devel/
Boehm's, B. (2007). A Spiral Model of Software Development and
Enhancement
Calero, W. (2010). Modelo Incremental.
Coporation, M. (2006).
Hernández, E. (1995). El Lenguaje de Modelado.
Kendall, K. E. (4 de Agosto de 2011). Análisis y Diseño de Sistemas. En K.
E. Kendall, Análisis y Diseño de Sistemas (pág. 120). -: -.
Kinderman. (15 de Marzo de 2014). Obtenido de http://indira-
informatica.blogspot.com/2007/09/qu-es-un-sistema-de-gestin-de-base-
de.html
Marick, B. (2005). Clarus Concept of Operations.
Microsoft Corporation. (2006). Sistemas Integrados. Microsoft® aplicada al
mundo real.
Microsoft Corporation. (2014).
Montenegro, M. (26 de Febrero de 2012). Introduccion a las tecnologias web.
Obtenido de http://dalila.sip.ucm.es/
O’Reilly. (2004). Web services for the real world.
Oracle, C. (2014). Java. Obtenido de
http://www.java.com/es/download/faq/whatis_java.xml
Pressman, R. S. (2005). Ingenieria del software, un enfoque práctico.
Salinas, D. C. (2007). Interoperabilidad e Integración de Sistemas
Informáticos de la Iglesia Católica en Chile.
Salkind, N. (1999). Métodos de investigación. Mexico.
Sampieri, H. (2003). Metodologias de la investigacion.
Sommerville, I. (2011). Ingenieria de Software. Prentice Hall.
231