1
DISEÑO E IMPLEMENTACION DE UN PORTAL WEB PARA EL PROCESO DE
INSCRIPCIONES Y SEGUIMIENTOS DE PROYECTOS DE INVESTIGACIÓN Y
PRÁCTICAS PROFESIONALES, PARA LA CORPORACIÓN UNIVER SITARIA
DEL CARIBE
JOSÉ LUIS OVIEDO VARGAS.
MARIO RAFAEL GUTIÉRREZ MENESES.
LUIS MIGUEL GOMEZ ACUÑA.
CORPORACION UNIVERSITARIA DEL CARIBE
FACULTAD DE INGENIERIA
PROGRAMA DE INGENIERIA DE SISTEMAS
SINCELEJO 2009
2
DISEÑO E IMPLEMENTACION DE UN PORTAL WEB PARA EL PROCESO DE
INSCRIPCIONES Y SEGUIMIENTOS DE PROYECTOS DE INVESTIGACIÓN Y
PRÁCTICAS PROFESIONALES, PARA LA CORPORACIÓN UNIVER SITARIA
DEL CARIBE
JOSÉ LUIS OVIEDO VARGAS.
MARIO RAFAEL GUTIÉRREZ MENESES.
LUIS MIGUEL GOMEZ ACUÑA.
Trabajo como requisito para optar por el título de Ingeniero de Sistemas
CORPORACION UNIVERSITARIA DEL CARIBE
FACULTAD DE INGENIERIA
PROGRAMA DE INGENIERIA DE SISTEMAS
SINCELEJO 2009
3
Nota de aceptación:
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
__________________________________
Firma del jurado
__________________________________
Firma del jurado
Sincelejo. ___ De Diciembre del 2009
4
CONTENIDO
Pág.
LISTA DE TABLAS ................................... ............................................................ 10
LISTA DE FIGURAS .................................. ........................................................... 15
TITULO DEL PROYECTO ............................... ...................................................... 17
INTRODUCCION ................................................................................................... 18
1. PLANTEAMIENTO DEL PROBLEMA ........................ .................................... 19
1.1. DESCRIPCION DEL PROBLEMA ............................................................ 19
1.2. FORMULACION DEL PROBLEMA ........................................................... 21
2. OBJETIVOS DE LA INVESTIGACIÓN ..................... ...................................... 22
2.1. OBJETIVO GENERAL .............................................................................. 22
2.2. OBJETIVOS ESPECÍFICOS ..................................................................... 22
3. JUSTIFICACION ..................................... ........................................................ 24
4. ALCANCES DEL PROYECTO ............................. .......................................... 27
4.1. ALCANCES .............................................................................................. 27
5. MARCO TEORICO - CONCEPTUAL......................... ..................................... 30
5.1. INGENIERÍA DE SOFTWARE PARA APLICACIONES WEB .................... 30
5.2. UML: (LENGUAJE UNIFICADO DE MODELADO) .................................... 34
5.3. PHP .......................................................................................................... 35
5.3.1. Visión general. ................................................................................... 36
5.3.2. Historia. .............................................................................................. 37
5.3.3. Php 3. ................................................................................................. 38
5.3.4. Php 4. ................................................................................................. 38
5
5.3.5. Php 5. ................................................................................................. 39
5.3.6. Php 6. ................................................................................................. 39
5.3.7. Características de Php. ...................................................................... 40
5.3.8. Cronología. ......................................................................................... 42
5.3.9. Aplicaciones desarrolladas con Php. .................................................. 44
5.3.10. Frameworks en Php. .......................................................................... 46
5.3.11. Ide’s para Php. ................................................................................... 46
5.4. MYSQL ..................................................................................................... 47
5.4.1. Historia del proyecto Mysql. ............................................................... 48
5.4.2. Lenguajes de programación. .............................................................. 49
5.4.3. Aplicaciones. ...................................................................................... 50
5.4.4. Especificaciones................................................................................. 51
5.4.5. Estructuras organizativas/asociativas o de decisión. ......................... 58
5.4.6. Industria relacionada. ......................................................................... 58
5.4.7. Qué licencia utilizar. ........................................................................... 59
5.4.8. Usuarios destacados. ......................................................................... 60
5.5. AJAX ......................................................................................................... 61
5.5.1. Tecnologías incluidas en ajax. ........................................................... 62
5.5.2. Antecedentes de Ajax. ....................................................................... 63
5.5.3. Navegadores que permiten Ajax. ....................................................... 64
5.5.4. Navegadores que no permiten Ajax. .................................................. 65
5.6. JQUERY ................................................................................................... 65
5.6.1. Características de Jquery. .................................................................. 66
5.6.2. Uso. .................................................................................................... 67
5.6.3. Jquery Team. ..................................................................................... 68
5.6.4. Licencia. ............................................................................................. 69
5.6.5. Versiones. .......................................................................................... 69
5.7. HTML ........................................................................................................ 70
5.7.1. Historia de Html. ................................................................................. 71
6
5.7.2. Marcado Html. .................................................................................... 71
5.7.3. Elementos. ......................................................................................... 72
5.7.4. Atributos. ............................................................................................ 74
5.7.5. Nociones básicas de Html. ................................................................. 77
5.7.6. Historia del estándar Html. ................................................................. 79
5.7.7. Accesibilidad web. .............................................................................. 81
5.8. JAVASCRIPT ............................................................................................ 81
5.8.1. Dónde y cómo incluir Javascript en un documento. ........................... 83
5.8.2. Historia y denominación. .................................................................... 84
5.8.3. Versiones. .......................................................................................... 85
5.9. BASE DE DATOS ..................................................................................... 86
5.9.1. Tipos de bases de datos. ................................................................... 87
5.9.2. Modelos de bases de datos. .............................................................. 89
5.9.3. Gestión de bases de datos distribuida. .............................................. 95
5.10. APACHE ................................................................................................... 95
5.10.1. Ventajas. ............................................................................................ 97
5.10.2. Módulos. ............................................................................................. 97
5.10.3. Uso. .................................................................................................... 98
5.10.4. Configuración. .................................................................................. 100
5.10.5. Licencia. ........................................................................................... 100
5.11. ADOBE DREAMWEAVER (DW). ............................................................ 101
5.11.1. Características. ................................................................................ 104
5.11.2. Historial de versiones. ...................................................................... 105
5.12. LENGUAJE DE PROGRAMACIÓN......................................................... 105
5.12.1. Concepto. ......................................................................................... 106
5.12.2. Clasificación de los lenguajes de programación............................... 107
5.12.3. Según su nivel de abstracción. ........................................................ 108
5.12.4. Según el paradigma de programación. ............................................ 110
5.12.5. Implementación. ............................................................................... 113
7
5.13. SERVIDOR WEB. ................................................................................... 114
5.14. NAVEGADOR WEB. ............................................................................... 117
5.14.1. Historia. ............................................................................................ 119
5.14.2. Funcionamiento de los navegadores. ............................................... 120
5.14.3. Uso actual de navegadores web. ..................................................... 121
5.14.4. Ejemplos de navegadores web. ....................................................... 122
5.15. APLICACIÓN WEB. ................................................................................ 124
5.15.1. Interfaz. ............................................................................................ 126
5.15.2. Consideraciones técnicas. ............................................................... 127
5.15.3. Estructura de las aplicaciones web. ................................................. 128
5.15.4. Uso empresarial. .............................................................................. 128
5.15.5. Lenguajes de programación de aplicaciones web. ........................... 129
5.15.6. Ejemplos de aplicaciones web. ........................................................ 130
5.16. WORLD WIDE WEB CONSORTIUM. ..................................................... 130
5.16.1. Organización de la w3c. ................................................................... 130
5.17. INTERNET. ............................................................................................. 131
5.17.1. Historia. ............................................................................................ 132
5.18. WEB 2.0. ................................................................................................. 135
5.18.1. Introducción. ..................................................................................... 136
5.18.2. Origen del término. ........................................................................... 136
5.18.3. Tecnología. ...................................................................................... 139
5.18.4. Web 2.0 buzz words. ........................................................................ 139
5.19. SERVICIOS WEB. .................................................................................. 140
5.19.1. Software de servidor. ....................................................................... 141
5.19.2. Relaciones con otros conceptos. ..................................................... 142
5.19.3. Comparación con la "web 1.0". ........................................................ 142
5.20. SISTEMAS DE INFORMACION .............................................................. 145
5.20.1. Tipos de sistemas de información .................................................... 147
5.20.1.1. Sistemas transaccionales ............................................................. 147
8
5.20.1.2. Sistemas de apoyo de las decisiones ........................................... 147
5.20.1.3. Sistemas estratégicos ................................................................... 149
5.21. SISTEMAS OPERATIVOS ...................................................................... 150
5.21.1. Clasificación de los sistemas operativos .......................................... 150
5.21.2. Ejemplos de sistema operativo ........................................................ 151
5.22. TEORIA PROTOTIPADO EVOLUTIVO .................................................. 152
5.22.1. Selección del modelo de prototipo evolutivo .................................... 153
6. MARCO LEGAL O NORMATIVO ........................... ...................................... 156
7. METODOLOGIA ....................................... .................................................... 157
7.1. TIPO DE INVESTIGACIÓN ..................................................................... 157
7.2. METODOLOGÍA DE DESARROLLO – (PROTOTIPADO EVOLUTIVO) .......... 157
7.2.1. Ventajas. .......................................................................................... 158
7.2.2. Eficacia. ............................................................................................ 158
7.2.3. Claves para el éxito en el uso del prototipado evolutivo. .................. 159
8. POBLACIÓN ......................................... ........................................................ 161
8.1. MUESTRA .............................................................................................. 161
9. FASE DE ANÁLISIS .................................. ................................................... 162
9.1. DESCRIPCIÓN DEL SISTEMA A IMPLEMENTAR ................................. 162
9.1.1. Usuarios del sistema a implementar. ............................................... 162
10. FASE DE DISEÑO ..................................................................................... 165
10.1. DEFINICIÓN DE REQUERIMIENTOS DE SOFTWARE (DRS) .............. 165
10.1.1. Requerimientos del sistema. ............................................................ 166
10.2. ESPECIFICACIÓN DE LA ARQUITECTURA DEL SISTEMA ................. 206
10.2.1. Capa de presentación. ..................................................................... 207
10.2.2. Capa de datos. ................................................................................. 209
9
11. FASE DE CONSTRUCCIÓN ..................................................................... 210
12. COPIAS DE SEGURIDAD Y RESTAURACION DE SISTEMA ..... ............ 212
13. GLOSARIO .......................................... ...................................................... 223
14. RECURSOS ............................................................................................... 231
14.1. RECURSOS FÍSICOS ............................................................................ 231
14.2. RECURSOS ECONÓMICOS ................................................................. 233
14.3. RECURSOS HUMANOS ........................................................................ 234
15. CRONOGRAMAS ....................................... ............................................... 236
16. CONCLUSIONES ...................................................................................... 238
17. REFERENTES BIBLIOGRÁFICOS ......................... .................................. 240
10
LISTA DE TABLAS
Pág.
Tabla 1. Cronología de Php. .................................................................................. 42
Tabla 2. Equipo Jquery. ......................................................................................... 68
Tabla 3. Versiones de JavaScript .......................................................................... 85
Tabla 4. Comparación Web 1.0 – Web 2.0 .......................................................... 142
Tabla 5. Actor: Administrador – Caso de uso: Validar entrada ............................ 168
Tabla 6. Actor: Administrador – Caso de uso: Gestionar Facultades ................... 168
Tabla 7. Actor: Administrador – Caso de uso: Gestionar Programas ................... 169
Tabla 8. Actor: Administrador – Caso de uso: Gestionar Estudiantes ................. 169
Tabla 9. Actor: Administrador – Caso de uso: Gestionar Departamentos ............ 170
Tabla 10. Actor: Administrador – Caso de uso: Gestionar Municipios ................. 170
Tabla 11. Actor: Administrador – Caso de uso: Gestionar Directores .................. 171
Tabla 12. Actor: Administrador – Caso de uso: Gestionar Comité de Investigación
............................................................................................................................. 171
Tabla 13. Actor: Administrador – Caso de uso: Gestionar Coordinador de Practicas
............................................................................................................................. 172
Tabla 14. Actor: Administrador – Caso de uso: Gestionar Usuarios .................... 172
Tabla 15. Actor: Estudiante – Caso de uso: Validar entrada ............................... 174
Tabla 16. Actor: Estudiante – Caso de uso: Escoger opción Proyecto de Grado 174
11
Tabla 17. Actor: Estudiante – Caso de uso: Escoger opción Práctica Profesional
............................................................................................................................. 175
Tabla 18. Actor: Estudiante – Caso de uso: Inscribir Proyecto ............................ 175
Tabla 19. Actor: Estudiante – Caso de uso: Consultar Asesoría ......................... 176
Tabla 20. Actor: Estudiante – Caso de uso: Consultar reglamento de proyectos de
grado .................................................................................................................... 176
Tabla 21. Actor: Estudiante – Caso de uso: Consultar Aprobación de Proyecto . 177
Tabla 22. Actor: Estudiante – Caso de uso: Cambiar clave ................................. 177
Tabla 23. Actor: Estudiante – Caso de uso: Inscribir Práctica Profesional .......... 178
Tabla 24. Actor: Estudiante – Caso de uso: Consultar detalle práctica profesional
............................................................................................................................. 178
Tabla 25. Actor: Estudiante – Caso de uso: Subir Plan de Acción ...................... 179
Tabla 26. Actor: Estudiante – Caso de uso: Subir Informes de Práctica .............. 179
Tabla 27. Actor: Estudiante – Caso de uso: Consultar reglamento de práctica
profesional ........................................................................................................... 180
Tabla 28. Actor: Estudiante – Caso de uso: Cambiar clave ................................. 180
Tabla 29. Actor: Director de Proyecto – Caso de uso: Validar entrada ............... 182
Tabla 30. Actor: Director de Proyecto – Caso de uso: Consultar lista de Proyectos
Asignados ............................................................................................................ 182
Tabla 31. Actor: Director de Proyecto – Caso de uso: Ver detalles del proyecto
aprobado .............................................................................................................. 183
12
Tabla 32. Actor: Director de Proyecto – Caso de uso: Validar entrada ............... 183
Tabla 33. Actor: Director de Proyecto – Caso de uso: Consultar asesoría ......... 184
Tabla 34. Actor: Director de Proyecto – Caso de uso: Consultar reglamentos de
proyectos de grado .............................................................................................. 184
Tabla 35. Actor: Director de Proyecto – Caso de uso: Cambiar clave ................ 185
Tabla 36. Actor: Comité de Investigación – Caso de uso: Validar entrada ......... 187
Tabla 37. Actor: Comité de Investigación – Caso de uso: Consultar lista de
proyectos asignados ............................................................................................ 187
Tabla 38. Actor: Comité de Investigación – Caso de uso: Ver detalles del proyecto
de grado ............................................................................................................... 188
Tabla 39. Actor: Comité de Investigación – Caso de uso: Ejecutar consulta ...... 188
Tabla 40. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por
estado .................................................................................................................. 189
Tabla 41. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por
programas ............................................................................................................ 189
Tabla 42. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por
línea de investigación .......................................................................................... 190
Tabla 43. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por
núcleo temático .................................................................................................... 190
Tabla 44. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por
fecha de creación ................................................................................................. 191
13
Tabla 45. Actor: Comité de Investigación – Caso de uso: Aprobar proyecto de
grado .................................................................................................................... 191
Tabla 46. Actor: Comité de Investigación – Caso de uso: Descargar documento
propuesta ............................................................................................................. 192
Tabla 47. Actor: Comité de Investigación – Caso de uso: Gestionar línea de
investigación ........................................................................................................ 192
Tabla 48. Actor: Comité de Investigación – Caso de uso: Gestionar núcleos
temáticos ............................................................................................................. 193
Tabla 49. Actor: Comité de Investigación – Caso de uso: Consultar reglamento de
proyectos de grado .............................................................................................. 193
Tabla 50. Actor: Comité de Investigación – Caso de uso: Cambiar clave ........... 194
Tabla 51. Actor: Coordinador de prácticas – Caso de uso: Validar entrada ....... 196
Tabla 52. Actor: Coordinador de prácticas – Caso de uso: Consultar lista de
perfiles estudiantiles ............................................................................................ 196
Tabla 53. Actor: Coordinador de prácticas – Caso de uso: Descargar perfil
estudiante ............................................................................................................ 197
Tabla 54. Actor: Coordinador de prácticas – Caso de uso: Enviar perfil estudiantil
............................................................................................................................. 197
Tabla 55. Actor: Coordinador de prácticas – Caso de uso: Enviar perfil estudiantil
............................................................................................................................. 198
Tabla 56. Actor: Coordinador de prácticas – Caso de uso: Consultar reglamento
de prácticas profesionales ................................................................................... 198
14
Tabla 57. Actor: Coordinador de prácticas – Caso de uso: Consultar plan de
acción .................................................................................................................. 199
Tabla 58. Actor: Coordinador de prácticas – Caso de uso: Consultar informes de
práctica ................................................................................................................ 199
Tabla 59. Actor: Coordinador de prácticas – Caso de uso: Gestionar empresas 200
Tabla 60. Actor: Coordinador de prácticas – Caso de uso: Gestionar Jefe
inmediato ............................................................................................................. 200
Tabla 61. Actor: Coordinador de prácticas – Caso de uso: Ver detalles de perfil
inscrito ................................................................................................................. 201
Tabla 62. Actor: Coordinador de prácticas – Caso de uso: Cambiar clave ......... 201
Tabla 63. Actor: Jefe Inmediato – Caso de uso: Validar entrada ........................ 203
Tabla 64. Actor: Jefe Inmediato – Caso de uso: Consultar lista de perfiles
estudiantiles ......................................................................................................... 203
Tabla 65. Actor: Jefe Inmediato – Caso de uso: Descargar perfil estudiantil ...... 204
Tabla 66. Actor: Jefe Inmediato – Caso de uso: Consultar reglamento de práctica
profesional ........................................................................................................... 204
Tabla 67. Actor: Jefe Inmediato – Caso de uso: Asignar tipo de labor ............... 205
Tabla 68. Actor: Jefe Inmediato – Caso de uso: Cambiar clave ......................... 205
15
LISTA DE FIGURAS
Pág.
Figura 1. Estructura general de una línea de código en el lenguaje de etiquetas
HTML. .................................................................................................................... 72
Figura 2. Un ejemplo de código HTML – Sintaxis. ................................................. 75
Figura 3. Uso de navegadores web, actualizado a Septiembre del 2008. ........... 117
Figura 4. Estimación del uso de navegadores en el período 1996-2009 ............. 119
Figura 5. Vista de Portal - Aplicativo Horde's. ..................................................... 124
Figura 6. Interfaz web – mozilla-europe.org ......................................................... 126
Figura 7. Logotipo – Web 2.0, Version – Beta ..................................................... 135
Figura 8. Características de la Web 2.0. .............................................................. 137
Figura 9. Mapa mental de la Web 2.0 .................................................................. 138
Figura 10. Palabras buzz de web 2.0 ................................................................... 140
Figura 11. Casos de uso – Actor: Administrador.................................................. 167
Figura 12. Casos de uso – Actor: Estudiante ....................................................... 173
Figura 13. Casos de uso – Actor: Director _Proyectos ........................................ 181
Figura 14. Casos de uso – Actor: Comité de Investigación ................................. 186
Figura 15. Casos de uso – Actor: Coordinador de Practicas ............................... 195
Figura 16. Casos de uso – Actor: Jefe Inmediato ................................................ 202
16
Figura 17. Arquitectura – Aplicación Web ............................................................ 206
Figura 18. Esquema creado para Aplicación Web ............................................... 208
17
TITULO DEL PROYECTO
DISEÑO E IMPLEMENTACION DE UN PORTAL WEB PARA EL PROCESO DE
INSCRIPCIONES Y SEGUIMIENTOS DE PROYECTOS DE INVESTIGACIÓN Y
PRÁCTICAS PROFESIONALES, PARA LA CORPORACIÓN UNIVERSITARIA
DEL CARIBE
18
INTRODUCCION
Actualmente, disponer de una dirección de e-mail o de acceso a la web ha dejado
de ser una excepción para convertirse en algo habitual en muchos países del
mundo. Por esta razón las empresas, instituciones y administraciones públicas
están migrando todos sus servicios y sus aplicaciones a un entorno web que
permita que sus usuarios y clientes accedan mediante Internet. A pesar del
moderado descenso en el ritmo de crecimiento, Internet está llamado a convertirse
en una especie de servicio universal de comunicaciones.
Estos aplicativos Web, establecen el proceso de investigación y documentación
vía Internet, permitiendo que los usuarios interactúen con la información,
llevándolos a adquirir una mejor visión de los distintos servicios que maneja el
portal y vincular al usuario con los mecanismos de comunicación y actualización
de la información.
Por tal razón se pretende implementar un Portal Web en la Corporación
Universitaria del Caribe, un aplicativo que logre vincular al usuario con el
desarrollo de inscripciones y seguimientos de los proyectos de investigación y
prácticas profesionales y así facilitar al usuario la rápida y segura recolección de la
información, manejando la correcta visualización de la documentación que les
ayude adquirir una mejor visión o soporte de los posibles proyectos a realizar o
llevar un control de los proyectos que se trabajan en curso, manteniendo
actualizados los bancos de datos del programa de Ingeniería de sistemas.
En el siguiente documento se podrá visualizar los procesos de inscripción y
seguimientos de los proyectos de investigación y prácticas profesionales,
almacenamiento de la información y el correcto desarrollo del aplicativo Web.
19
1. PLANTEAMIENTO DEL PROBLEMA
1.1. DESCRIPCION DEL PROBLEMA
La Corporación Universitaria del Caribe y su programa de Ingeniería de Sistemas
lleva a cabo actividades académicas de tipo evaluativas, como el escalamiento de
un pensum específico para cada programa y que son requisitos para todos los
estudiantes de la institución, que llevan como objetivo o meta, el desarrollo de
proyectos de investigación, y prácticas profesionales; para la correcta gestión de
esos procesos se deben tener en cuenta algunas acciones, como el de ceñirse a
unos reglamentos que la Institución adopta para el seguimiento y evaluación de
que cada uno de estos proyectos se realice a cabalidad.
Los proyectos de investigación deben ser inscritos por estudiantes que se
encuentren activos vigentes en el programa de ingeniería de sistemas y que se
encuentren cursando los semestres de octavo a decimo, esto regido en el
reglamento establecido para la corporación, cobijado por la ley 30 de 1992 articulo
28; los estudiantes eligen un tema con el fin de analizarlo, seleccionar un tema a
resolver y generar un planteamiento, así los estudiantes lograrán definir el título de
su proyecto que aborda la investigación a lograr. Estos proyectos deben
presentarse como propuesta ante el Comité de Investigación describiendo en ella
unos lineamientos específicos o aspectos básicos a tener en cuenta:
• Título
• Línea Y Núcleo De Investigación
• Planteamiento del problema
o Antecedentes
20
o Justificación
• Objetivos de la Investigación
o Objetivo General
o Objetivos Específicos
• Referentes Bibliográficos
Estos proyectos deben estar enfocados hacia la innovación tecnológica;
destacando que el estudiante apueste a desarrollar su creatividad en la
construcción y aplicación del conocimiento, la selección y creación de métodos,
instrumentos y conceptos, de acuerdo con las líneas de investigación y núcleos
temáticos definidos en la facultad.
En el mercado online ya existen aplicaciones web, los cuales facilitan la conexión
y visualización de muchos servicios, suministrados por entidades que conocen el
medio electrónico, su forma de comunicación y el mercado existente; tomando
como base las instituciones educativas como grandes potenciales para el
suministro de información, se visualiza que son muchas las que cuentan con estos
servicios electrónicos; conectando a los estudiantes, sus dependencias y demás
entidades con la información que es necesaria para la formación, crecimiento
personal y laboral.
Entidades como la Universidad San Buenaventura de Bogotá, La Universidad del
Norte, Fundación Universitaria San Martin y Universidad Autónoma del Caribe ya
cuentan con aplicaciones web, las cuales facilitan la interacción de la institución
con el estudiante, el suministro de la información y a su vez la actualización de sus
bancos de datos.
21
Actualmente en la institución los procesos de inscripción y seguimientos de los
proyectos de investigación y prácticas profesionales se manipulan de forma
manual, lo que hace tedioso para los docentes y personal a cargo llevar un control
eficiente en cuanto a toda la papelería en general que lleva consigo cada uno de
estos proyectos. Este tipo de situaciones, acarrean tanto a la Corporación como al
estudiante altos costos en papelería, inversión de gran cantidad de tiempo en
programación de cada una de las asesorías necesarias para el estudiante como
también en la revisión de la documentación, gestionar gran cantidad de
documentación se puede incurrir en errores humanos al momento de realizarlas, la
carga laboral por parte de los docentes siempre tiende a aumentar con cada
proyecto que se le asigne y en su mayoría la respuesta por parte de ellos nunca
es acorde con los tiempos acordados. Debido a estas dificultades, surge la
necesidad de crear una herramienta con características específicas que sea
capaz de gestionar el proceso de inscripciones y cada uno de los seguimientos
que se le hacen a los proyectos de investigación y prácticas profesionales, en
forma rápida y sin la necesidad de incurrir en la inversión de grandes cantidades
de tiempo y dinero.
1.2. FORMULACION DEL PROBLEMA
¿Logrará el desarrollo de una aplicación Web gestionar los procesos de
inscripciones y seguimientos de proyectos de investigación y prácticas
profesionales, llevados a cabo por la Facultad de Ingeniería de la Corporación
Universitaria del Caribe?
22
2. OBJETIVOS DE LA INVESTIGACIÓN
2.1. OBJETIVO GENERAL
Desarrollar una aplicación web para el apoyo a los procesos de inscripciones y
seguimiento de los proyectos de investigación y prácticas profesionales para la
Facultad de Ingeniería de la Corporación Universitaria del Caribe.
2.2. OBJETIVOS ESPECÍFICOS
• Analizar los procesos que manejan los distintos programas de la
corporación, en cuanto a inscripciones de proyectos de investigación,
prácticas profesionales y sus seguimientos respectivos.
• Identificar los requerimientos del sistema de información para construir un
modelo de datos que sea el punto de inicio del proceso de desarrollo.
• Desarrollar una aplicación web, basada en los requerimientos obtenidos
durante la fase de análisis y en el modelo de diseño construido.
• Diseñar una base de datos para el almacenamiento de la información
referente a los procesos que llevan a cabo los proyectos de investigación y
prácticas profesionales.
23
• Ejecutar cada una de las pruebas necesarias para lograr una aplicación
eficiente y confiable.
24
3. JUSTIFICACION
Aunque los inicios de Internet se remontan a los años sesenta, no ha sido hasta
los años noventa cuando, gracias a la Web, se ha extendido su uso por todo el
mundo. En estos últimos años, en efecto, la web ha evolucionado enormemente
llenándose de servicios y aplicaciones que funcionan directamente en la red y que
tienen en común su fácil accesibilidad y su carácter dinámico, abierto y
participativo. La Web 2.0 es la representación de la evolución de las aplicaciones
tradicionales hacia aplicaciones web enfocadas al usuario final. La Web 2.0 es la
transición que se ha dado de aplicaciones tradicionales hacia aplicaciones que
funcionan a través de las web enfocadas al usuario final. Se trata de aplicaciones
que generen colaboración y servicios que reemplacen las aplicaciones de
escritorio.
En el ámbito educativo a nivel nacional en Colombia son muchas las
universidades que ya han incursionado en el ámbito de la Web 2.0, como son las
aplicaciones utilizadas por: Universidad Cooperativa de Colombia, la cual maneja
un espacio virtual para la especialización en docencia universitaria, de igual forma
la Universidad EAFIT de Medellín, Universidad Tecnológica de Pereira, que cuenta
con un portal para su población estudiantil; debido a varias investigaciones
realizadas por el grupo de estudiantes de la facultad de Ingeniera, el programa de
Sistemas de la Corporación Universitaria Del Caribe se vio en la necesidad de
facilitar un aplicativo el cual almacene de manera más ágil y segura toda la
información de inscripciones y seguimientos que hace referencia a los proyectos
de investigación y prácticas profesionales como son:
• Los datos personales (nombres integrantes, titulo de su proyecto, objetivos,
entre otras) de los estudiantes que se inscriban a los proyectos de
investigación y prácticas profesionales.
25
• La información referente a los seguimientos de estos proyectos, director a
cargo, fechas de asesorías, compromisos desarrollados, observaciones.
• El suministro de la información de las prácticas profesionales (nombre del
estudiante vinculado a la empresa, nombre de la empresa, objetivos por
parte del estudiante, seguimientos de las actividades y horas trabajadas)
realizadas por los estudiantes de último semestre.
Con este proyecto se busca satisfacer las necesidades de todos los actores que
intervienen en los procesos que lleva a cabo la corporación y en especial el
programa de ingeniería de sistema, facilitando a la comunidad Cecarense la
gestión de inscripciones y seguimientos de los proyectos investigación y prácticas
profesionales.
Al desarrollar esta aplicación, los usuarios finales, como directores y estudiantes,
lograrán realizar procesos que llevaran a cabo la visualización y actualización de
la información de los proyectos de investigación y prácticas profesionales, siendo
el acceso a esta información más fácil y ágil.
En el caso de los estudiantes, estos tendrán la posibilidad de consultar e inscribir
toda la información referente a sus proyectos de investigación como también la
información de las prácticas profesionales; esto podrá realizarse desde cualquier
computador que cuente con acceso a internet.
Los directores de los proyectos de investigación también se verán beneficiados, ya
que sus labores de consulta de los proyectos vigentes y asesorías a proyectos de
investigación se realizarán de una manera más ágil y segura.
26
Estos usuarios, utilizando esta aplicación; no se verán en la necesidad de
diligenciar manualmente estos procesos de seguimientos de asesorías y podrán
mantener actualizados los bancos de datos.
A nivel económico y tecnológico, el desarrollo del Portal Web en CECAR es
posible puesto que la Corporación cuenta con la infraestructura adecuada tanto de
hardware como de software necesarios para llevarla a cabo, así como también
cuenta con una red bien estructurada que ofrece un ancho de banda apropiado
para el buen funcionamiento de este tipo de aplicaciones. Por estas razones,
CECAR no tendrá que incurrir en gastos de adquisición de equipos y tampoco de
software, ya que los que se utilizarán son de libre distribución como:.. los cuales
no acarrearán gastos en compra de licencias ni en problemas legales.
Por lo dicho anteriormente, el diseño e implementación de esta aplicación Web en
CECAR es viable y fundamental para el apoyo en el desarrollo de sus proyectos y
prácticas profesionales.
27
4. ALCANCES DEL PROYECTO
4.1. ALCANCES
La aplicación permite la inscripción de los proyecto de investigación por parte de
los estudiantes de noveno a decimo semestre tal como se establece en el
reglamento interno de la Facultad de Ingeniería, de igual manera consultar todas
las asesorías realizadas a su proyecto, visualizar los reglamentos estipulados por
el programa al que pertenece, “caso que se realizará como prueba piloto para la
Facultad de Ingeniería”, para su presentación y modificar su clave al igual que
todos los usuarios que intervienen en esta aplicación; uno de los actores
principales es el Estudiante con opción de Proyecto de Investigación: Con
respecto a la inscripción de proyectos de investigación, tienen la posibilidad de
inscribirlo, informarse sobre el estado de aprobación, consultar las asesorías
realizadas a su proyecto de investigación, los reglamentos que hay que tener en
cuenta para la presentación, artículos, documentos suministrados por el comité de
investigación respectivo y cambiar su clave de acceso a la aplicación; un segundo
actor es el Estudiante con opción de Práctica Profesional: Con respecto a la
inscripción de perfiles para prácticas profesionales, el estudiante tiene la opción de
registrar sus perfiles cargándolos en el portal para ser analizados por los
coordinadores de prácticas y luego ser enviados a las empresas que se
encuentran vinculadas con la corporación para el desarrollo de prácticas, consultar
en detalle la práctica inscrita, subir anexos de la práctica como son el plan de
acción y los informes pertinentes para el seguimiento, consultar los reglamentos
que hay que tener en cuenta para la presentación de las prácticas, tales como: los
lineamientos para prácticas y cambiar su clave de acceso a la aplicación.
28
Siguiendo con la descripción de actores involucrados en el aplicativo está el
Comité de Investigación : Grupo de usuarios finales que mediante esta aplicación
tienen la facilidad de consultar todos los proyectos inscritos por parte de los
estudiantes para ser aprobados, gestionar el registro de las líneas de investigación
así como cada uno de los núcleos temáticos adscritos a cada línea de
investigación; de igual forma tendrá acceso a consultar todos los reglamentos
estipulados para la presentación de los proyectos de investigación y cambiar su
clave de acceso a la aplicación. Otro usuario o actor es el Director de Proyecto
de Investigación: Es otro grupo de usuario final que mediante esta aplicación
tienen la facilidad de consultar los proyectos asignados a el por parte del Comité
de Investigación, quien con anterioridad evaluó y aprobó los proyectos inscritos
por parte del estudiantado, ver en detalle la información del proyecto, crear y
consultar todas las asesorías registradas a un grupo especifico de trabajo, verificar
los reglamentos estipulados para la presentación de los proyectos de investigación
y cambiar su clave de acceso a la aplicación; el Coordinador de Práctica
Profesional: Usuario final que tiene la habilidad de consultar el listado de los
perfiles inscritos por los estudiantes que aspiran a realizar la práctica profesional,
enviar la terna de estudiantes a las diferentes empresas que solicitan vinculación,
visualizar los datos de las prácticas que ingresan los jefes inmediatos, fijar la
asignación de las práctica, registrar en el aplicativo los datos necesarios para la
vinculación de nuevas empresas, así como sus jefes inmediatos y/o personal que
estará a cargo de las prácticas en una empresa determinada, realizar los
seguimientos de las prácticas que se hacen mes a mes, consultar las
evaluaciones que se hicieron a los practicantes, verificar los reglamentos que hay
que tener en cuenta para la presentación de las prácticas y cambiar su clave de
acceso a la aplicación; por último el Jefe Inmediato de Empresa: Grupo de
usuarios finales que puede consultar el listado de los perfiles de estudiantes que
aspiran a realizar la práctica profesional, enviada con anterioridad por el
Coordinador de Practicas, asignar el tipo de labor así como las funciones que este
29
desarrollara dentro de la empresa, realizar los seguimientos de las prácticas que
se hacen mes a mes, consultar las evaluaciones que se hicieron a los
practicantes, verificar los reglamentos que hay que tener en cuenta para la
presentación de las prácticas y cambiar su clave de acceso a la aplicación.
30
5. MARCO TEORICO - CONCEPTUAL
5.1. INGENIERÍA DE SOFTWARE PARA APLICACIONES WEB
Para el desarrollo de aplicaciones Web dentro de un ámbito ingenieril es necesario
utilizar diferentes tipos de herramientas para su correcto funcionamiento en el
momento de la interacción Usuario-Aplicación.
Después de tener un problema propuesto cuya solución sea el desarrollo de una
aplicación Web es conveniente el modelamiento de varios diagramas los cuales
ayudarán a identificar cada elemento, proceso o acción que debe intervenir en el
funcionamiento de la aplicación.
El diagrama de casos de uso es uno de los principales modelos que se deben
diseñar para identificar a los actores que posteriormente interactuarán con la
aplicación, con estos casos de uso mostramos las diferentes actividades que
realiza un usuario en el momento de interactuar con el aplicativo, además nos
permite identificar las interfaces que el usuario podrá visualizar junto con los
procesos que llevan a cabo la aplicación y sus respectivas entidades involucradas
en este proceso.
El diseño de una aplicación web, parte del proceso de diseño, no lo es todo; antes
de comenzar a especificar elementos visuales, es importante tener clara la
estrategia general del diseño, y esta a su vez ayuda a determinar la arquitectura
de información del sitio. Ambas deben estar claramente definidas antes de
comenzar a ver diseños visuales.
31
Para el desarrollo de un buen diseño se pueden separar esta etapa en dos fases:
1. La Idea Inicial: Definición de lo que se quiere y lo que se necesita. Hay que
partir de una idea inicial que considere los objetivos que se pretenden, las
características de los destinatarios del portal, los contenidos que se
presentarán y la forma en la que se mostrarán. También se esbozarán las
actividades (en algunos casos interactivas) que facilitaran la comprensión
de los contenidos y asegurar el logro de sus objetivos.
2. La elaboración del diseño:
Aspectos a considerar como:
- OBJETIVOS: ¿Qué se pretende? ¿Por qué se hace? Enumeración de los
objetivos (conceptuales, procedimentales y actitudinales) que se pretenden.
- DESTINATARIOS: ¿A quién va dirigido? Los espacios web deben tener
en cuenta las características personales y circunstancias sociales de los
destinatarios a los que van dirigidos (capacidades, intereses, necesidades).
- CONTENIDOS: Selección, estructuración y producción de la información
(textual, imágenes, sonidos, vídeos, enlaces a otras páginas...)
- NAVEGACIÓN: Organización del portal, hipervínculos. Elaboración del
mapa de navegación que reflejará las relaciones entre las páginas del
portal. Debe facilitar la exploración del portal de manera lógica y
transparente para los usuarios. La navegación debe estar regida por la
transparencia y la simplicidad.
32
- ENTORNO AUDIOVISUAL . Las pantallas que se mostrarán.
- ¿Cómo se presentará la información en las páginas? Composición de los
elementos (textuales, multimedia...): textos, tablas, hipervínculos, fondos,
tipografía, colores, iconos, botones, barras de herramientas, marcos..
- ACTIVIDADES E INTERACCIONES. Además de la interactividad propia
de la navegación por el portal, ¿las páginas presentarán algún tipo de
actividades interactivas?
Siguiendo con las fases que comprenden el ciclo de vida del software, la
codificación es una etapa importante puesto que el mejor diseño fácilmente puede
corromperse por alteraciones casuales o incluso bien intencionadas producidas
durante la codificación software. Los miembros del equipo de desarrollo
encargados del diseño y los encargados de escribir las líneas de código deben
estar en estrecha coordinación.
Los programadores son los que finalmente estructurarán todos los pre-
concepciones plasmadas en los diversos prototipos en las interfaces que
realmente utilizarán los usuarios. Estos, a menudo debido a los plazos de entrega
del producto, suelen ser personas que voluntaria o involuntariamente aportan sus
pre-concepciones e ideas propias al diseño de dichas interfaces y ello puede
llevarles a no seguir estrictamente las pautas o conclusiones determinadas.
Cabe destacar el papel de las disciplinas no directamente relacionadas con la
propia codificación, pues los ingenieros software y programadores suelen tener un
entrenamiento especial en la resolución de las propuestas enfocadas a la
optimización del tamaño del código y a la optimización de la velocidad de
33
ejecución descuidando los aspectos relacionados con la usabilidad y la
accesibilidad e incluso con el diseño gráfico de la interfaz.
Será importante, pues, que los programadores estén completamente
comprometidos con el seguimiento del modelo de proceso y convencidos de los
beneficios del mismo incluso si no lo entienden o no están de acuerdo en algunas
decisiones del diseño. Deben ser conscientes de que cualquier cambio debe ser
validado por usuarios y de no ser así pueden surgir dificultades difíciles de
superar.
Otro aspecto destacado en este punto será que los programadores y diseñadores
que respectivamente escribirán las líneas de código y dibujarán los elementos de
las interfaces respeten las características establecidas en el enorme trabajo
realizado en las fases precedentes. Aquí juega un papel determinante la gestión
de la configuración realizada como seguimiento del proyecto y toda la
documentación generada en las fases anteriores. Sin embargo todos los aspectos
serán nuevamente comprobados en las repetidas evaluaciones del sistema que
continuaremos haciendo en esta fase.
En la fase de pruebas de software están los procesos que permiten verificar y
revelar la calidad de un producto software. Las pruebas de software se integran
dentro de las diferentes fases del Ciclo del software dentro de la Ingeniería de
software. Así se ejecuta un programa y mediante técnicas experimentales se trata
de descubrir que errores tiene.
Para determinar el nivel de calidad se deben efectuar unas medidas o pruebas
que permitan comprobar el grado de cumplimiento respecto de las
especificaciones iníciales del sistema. Las pruebas de software, son un proceso
usado para identificar posibles fallos de implementación, calidad, o usabilidad de
un programa de computador. Básicamente es una fase en el desarrollo de
34
software consistente en probar las aplicaciones construidas. "La fase de prueba
puede probar la presencia de errores pero no la ausencia de ellos".
Una práctica común es que el proceso de pruebas de un programa sea realizado
por un grupo independiente de usuarios capacitados al finalizar su desarrollo y
antes de sacarlo al mercado. Una práctica que viene siendo muy popular es
distribuir de forma gratuita una versión no final del producto para que sean los
propios consumidores los que la prueben. En ambos casos, a la versión del
producto en pruebas y que es anterior a la versión final.
Lo que respecta a bases de datos, para realizar el diseño y la implementación, es
necesario identificar los hechos básicos sobre los cuales se fundamenta las
necesidades de información y de igual manera el personal (Usuarios y
Procedimientos). Los procesos que se llevarán a cabo en el Software, ayudarán a
diseñar las diferentes interfaces que tienen como objetivo permitir al usuario final
visualizar las diferentes pantallas que le permitirán realizar las acciones
requeridas.
La practicidad de la era tecnológica o sistematizada ha ganado una gran
importancia, de igual manera ha permitido que en muchas instituciones, por
ejemplo en las universidades o centros educativos se almacene de una manera
más rápida, confiable y segura toda la información referente a los procesos
académicos que se llevan a cabo en cada facultad, programa o dependencia.
5.2. UML: (LENGUAJE UNIFICADO DE MODELADO)
Es un lenguaje gráfico para visualizar, especificar, construir y documentar un
sistema de software. Mediante este diagrama de modelado se construyeron los
35
diagramas de casos de uso en los cuales representamos los actores que
intervienen en el uso de la aplicación con sus respectivos procesos que llevan a
cabo dentro de ella, modelos de secuencias que muestran la secuencia de los
procesos que lleva a cabo cada usuario.
5.3. PHP
Es un lenguaje de programación interpretado, diseñado originalmente para la
creación de páginas web dinámicas. Es usado principalmente en interpretación del
lado del servidor (server-side scripting) pero actualmente puede ser utilizado
desde una interfaz de línea de comandos o en la creación de otros tipos de
programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o
GTK+.
PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor
(inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente
por Rasmus Lerdorf en 1994; sin embargo la implementación principal de PHP es
producida ahora por The PHP Group y sirve como el estándar de facto para PHP
al no haber una especificación formal. Publicado bajo la PHP License, la Free
Software Foundation considera esta licencia como software libre.
36
5.3.1. Visión general.
PHP es un lenguaje interpretado de propósito general ampliamente usado y que
está diseñado especialmente para desarrollo web y puede ser incrustado dentro
de código HTML. Generalmente se ejecuta en un servidor web, tomando el código
en PHP como su entrada y creando páginas web como salida. Puede ser
desplegado en la mayoría de los servidores web y en casi todos los sistemas
operativos y plataformas sin costo alguno. PHP se encuentra instalado en más de
20 millones de sitios web y en un millón de servidores, aunque el número de sitios
en PHP ha compartido algo de su preponderante sitio con otros nuevos lenguajes
no tan poderosos desde agosto de 2005. Es también el módulo Apache más
popular entre las computadoras que utilizan Apache como servidor web. La
versión más reciente de PHP es la 5.3.0 (for Windows) del 30 de junio de 2009.
El gran parecido que posee PHP con los lenguajes más comunes de
programación estructurada, como C y Perl, permiten a la mayoría de los
programadores crear aplicaciones complejas con una curva de aprendizaje muy
corta. También les permite involucrarse con aplicaciones de contenido dinámico
sin tener que aprender todo un nuevo grupo de funciones.
Aunque todo en su diseño está orientado a facilitar la creación de página web, es
posible crear aplicaciones con una interfaz gráfica para el usuario, utilizando la
extensión PHP-Qt o PHP-GTK. También puede ser usado desde la línea de
órdenes, de la misma manera como Perl o Python pueden hacerlo, a esta versión
de PHP se la llama PHP CLI (Command Line Interface).
Cuando el cliente hace una petición al servidor para que le envíe una página web,
el servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que
37
generará el contenido de manera dinámica (por ejemplo obteniendo información
de una base de datos). El resultado es enviado por el intérprete al servidor, quien
a su vez se lo envía al cliente. Mediante extensiones es también posible la
generación de archivos PDF, Flash, así como imágenes en diferentes formatos.
Permite la conexión a diferentes tipos de servidores de bases de datos tales como
MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.
PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas
operativos, tales como UNIX (y de ese tipo, como Linux o Mac OS X) y Windows, y
puede interactuar con los servidores de web más populares ya que existe en
versión CGI, módulo para Apache, e ISAPI.
PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza
C# VB.NET como lenguajes), a ColdFusion de la compañía Adobe (antes
Macromedia), a JSP/Java de Sun Microsystems, y a CGI/Perl. Aunque su creación
y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe
además un IDE (entorno de desarrollo integrado) comercial llamado Zend Studio.
Recientemente, CodeGear (la división de lenguajes de programación de Borland)
ha sacado al mercado un entorno integrado de desarrollo para PHP, denominado
Delphi for PHP . Existe un módulo para Eclipse, uno de los IDE más populares.
5.3.2. Historia.
Fue originalmente diseñado en Perl, en base a la escritura de un grupo de CGI
binarios escritos en el lenguaje C por el programador danés-canadiense Rasmus
Lerdorf en el año 1994 para mostrar su currículum vitae y guardar ciertos datos,
38
como la cantidad de tráfico que su página web recibía. El 8 de junio de 1995 fue
publicado "Personal Home Page Tools" después de que Lerdorf lo combinara con
su propio Form Interpreter para crear PHP/FI.
5.3.3. Php 3.
Dos programadores israelíes del Technion, Zeev Suraski y Andi Gutmans,
reescribieron el analizador sintáctico (parser en inglés) en el año 1997 y crearon la
base del PHP3, cambiando el nombre del lenguaje a la forma actual.
Inmediatamente comenzaron experimentaciones públicas de PHP3 y fue
publicado oficialmente en junio del 1998.
Para 1999, Suraski y Gutmans reescribieron el código de PHP, produciendo lo que
hoy se conoce como motor Zend. También fundaron Zend Technologies en Ramat
Gan, Israel.
5.3.4. Php 4.
En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine 1.0. El
día 13 de julio de 2007 se anunció la suspensión del soporte y desarrollo de la
versión 4 de PHP, a pesar de lo anunciado se ha liberado una nueva versión con
mejoras de seguridad,la 4.4.8 publicada el 13 de enero del 2008 y posteriormente
la versión 4.4.9 publicada el 7 de agosto de 2008.
39
5.3.5. Php 5.
El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o
Zend Engine 2). La versión más reciente de PHP es la 5.3.0 (30 de junio de 2009),
que incluye todas las ventajas que provee el nuevo Zend Engine 2 como:
• Mejor soporte para la Programación Orientada a Objetos, que en
versiones anteriores era extremadamente rudimentario, con PHP Data
Objects.
• Mejoras de rendimiento.
• Mejor soporte para MySQL con extensión completamente reescrita.
• Mejor soporte a XML ( XPath, DOM, etc. ).
• Soporte nativo para SQLite.
• Soporte integrado para SOAP.
• Iteradores de datos.
• Manejo de excepciones.
5.3.6. Php 6.
Está previsto el lanzamiento en breve de la rama 6 de PHP. Cuando se lance esta
nueva versión quedarán solo dos ramas activas en desarrollo (PHP 5 y 6), pues se
abandonó el desarrollo y soporte de PHP 4 el 13 de julio de 2007.
Las diferencias que encontraremos frente a PHP 5.* son:
• Soportará Unicode;
40
• Limpieza de funcionalidades obsoletas como register_globals,
Safe_mode, etc.;
• PECL
• Mejoras en orientación a objetos
5.3.7. Características de Php.
5.3.7.1. Ventajas de Php.
• Es un lenguaje multiplataforma.
• Completamente orientado a la web.
• Capacidad de conexión con la mayoría de los motores de base de datos
que se utilizan en la actualidad, destaca su conectividad con MySQL y
PostgreSQL.
• Capacidad de expandir su potencial utilizando la enorme cantidad de
módulos (llamados ext's o extensiones).
• Posee una amplia documentación en su página oficial, entre la cual se
destaca que todas las funciones del sistema están explicadas y
ejemplificadas en un único archivo de ayuda.
• Es libre, por lo que se presenta como una alternativa de fácil acceso
para todos.
• Permite las técnicas de Programación Orientada a Objetos.
• Biblioteca nativa de funciones sumamente amplia e incluida.
41
• No requiere definición de tipos de variables aunque sus variables se
pueden evaluar también por el tipo que estén manejando en tiempo de
ejecución.
• Tiene manejo de excepciones (desde PHP5).
• Si bien PHP no obliga a quien lo usa a seguir una determinada
metodología a la hora de programar (muchos otros lenguajes tampoco lo
hacen), aun estando dirigido a alguna en particular, el programador
puede aplicar en su trabajo cualquier técnica de programación y/o
desarrollo que le permita escribir código ordenado, estructurado y
manejable. Un ejemplo de esto son los desarrollos que en PHP se han
hecho del patrón de diseño Modelo Vista Controlador (o MVC), que
permiten separar el tratamiento y acceso a los datos, la lógica de control
y la interfaz de usuario en tres componentes independientes.
5.3.7.2. Desventajas de Php.
• La ofuscación de código es la única forma de ocultar los fuentes.
• Cada cual programa a su manera y hace que sea muy difícil mantener el
código de terceras personas.
• Existen muchas versiones de PHP con incompatibilidades entre sí
• En PHP 4 es difícil depurar los errores.
• En comparación con asp, PHP consume más recursos (y por tanto es
ligeramente más lento) llamando y ejecutando una función de código
que encuentra en línea, embebido en el script. Por eso no tiene sentido
usar funciones salvo que efectivamente se vaya a utilizar esa porción de
código varias veces.
42
• Si bien PHP no obliga a quien lo usa a seguir una determinada
metodología a la hora de programar (muchos otros lenguajes tampoco lo
hacen), aun estando dirigido a alguna en particular, el programador
puede aplicar en su trabajo cualquier técnica de programación y/o
desarrollo que le permita escribir código ordenado, estructurado y
manejable. Un ejemplo de esto son los desarrollos que en PHP se han
hecho del patrón de diseño Modelo Vista Controlador (o MVC), que
permiten separar el tratamiento y acceso a los datos, la lógica de control
y la interfaz de usuario en tres componentes independientes.
• El manejo de errores no es tan sofisticado como Cold Fusion o ASP.
• No existe IDE o Debugger. Una IDE puede no ser importante para la
mayoría de los programadores
5.3.8. Cronología.
Tabla 1. Cronología de Php.
Versión Fecha Cambios más importantes
PHP 1.0 8 de junio de 1995
Oficialmente llamado "Herramientas
personales de trabajo (PHP Tools)". Es el
primer uso del nombre "PHP".
PHP
Version 2
(PHP/FI)
16 de abril de 1996
Considerado por el creador como la "más
rapida y simple herramienta" para la creación
de páginas webs dinámicas .
43
PHP 3.0 6 de junio de 1998
Desarrollo movido de una persona a muchos
desarrolladores. Zeev Suraski y Andi
Gutmans reescriben la base para esta
versión.
PHP 4.0 22 de mayo de 2000
Se añade un sistema más avanzado de
análisis de etiquetas en dos fases
análisis/ejecución llamado el motor Zend.
PHP 4.1 10 de diciembre de 2001 Introducidas las variables superglobals
($_GET, $_SESSION, etc.).
PHP 4.2 22 de abril de 2002 Se deshabilitan register_globals por defecto.
PHP 4.3 27 de diciembre de 2002 Introducido la CLI, en adición a la CGI.
PHP 4.4 11 de julio de 2005
PHP 5.0 13 de julio de 2004 Motor Zend II con un nuevo modelo de
objetos.
PHP 5.1 25 de noviembre de 2005
PHP 5.2 2 de noviembre de 2006 Habilitado el filtro de extensiones por defecto.
44
PHP 5.2.4 30 de agosto de 2007
PHP 5.2.5 8 de noviembre de 2007 Versión centrada en mejorar la estabilidad
(+60 errores solucionados).
PHP 5.2.8 8 de diciembre de 2008
PHP 5.2.9 26 de febrero de 2009 Diversas mejoras en el ámbito de la
seguridad (+50 errores solucionados).
PHP 5.3 30 de junio de 2009
namespaces, late static binding, closures,
optional garbage collection for cyclic
references, nuevas extensiones (+140
errores solucionados).
PHP 6 S/D
5.3.9. Aplicaciones desarrolladas con Php.
• Redes Sociales
o Facebook
• E-Commerce
o Magento
45
o OsCommerce
• Blogs
o WordPress
• Burning Board
• CMSformE
• Dokuwiki
• Drupal
• Gallery Project
• Mambo Open Source
• MediaWiki
• Moodle
• Phorum
• phpMyAdmin
• PHP-Nuke
• phpPgAdmin
• PhpWiki
• PmWiki
• Zikula (anteriormente llamado PostNuke)
• Smarty
• SPIP
• SugarCRM
• vBulletin
• Xaraya
• Xoops
• Joomla
• MODx
• Entre otras.
46
5.3.10. Frameworks en Php.
• Kohana
• Symfony
• Zend Framework
• Kumbia (Completamente en español)
• CakePHP
• PHP Prado
• Qcodo
• PHP4ECore
• CodeIgniter
• Yii Framework
• MfwLite
• Tomates Framework
• Rox PHP
• SSAC
• Entre otras
5.3.11. Ide’s para Php.
Algunos de los Entornos de Desarrollo Integrados, en inglés (IDE, Integrated
Development Environment), para PHP más conocidos o habituales son:
• PDT, plugin de Eclipse: GPL - (Sun).
47
• NetBeans 6.8 , libre, para linux y windows - (Con Soporte para
Symfony).
• Zend Studio: Comercial - (Zend).
• Aptana Studio: GPL, existe una versión comercial. Debe instalarse el
plugin para PHP. Está basado en Eclipse, pero posee características
que lo hacen mas deseable que el Eclipse PDT; entre ellas: auto-
completado de código, auto-identador.
• Komodo IDE: Komodo Edit, libre y gratuito, el IDE es licencia comercial -
(Mozilla).
• NuSphere PhpED: Comercial, para linux y windows.
• Quanta: GPL y gratuito, para GNU/linux con QT.
• Bluefish: GPL y gratuito, para GNU/linux con GTK.
• Geany:GPL, para linux. Sumamente liviano. Incluye autocompletado,
autoidentador, soporte para numerosos lenguages.
• phpDesigner: Comercial y Freeware, para linux y windows. Incluye
integración con el manual, autocompletado en código y viene en varios
idiomas.
• Rapid PHP: Comercial, para windows.
• AJAX PHP IDE: Entorno de desarrollo para PHP que utiliza
funcionalidad AJAX en los eventos de los formularios diseñados.
Separación de la lógica y el html.
5.4. MYSQL
Es un sistema de gestión de base de datos relacional, multihilo y multiusuario con
más de seis millones de instalaciones. MySQL AB —desde enero de 2008 una
48
subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde
abril de 2009— desarrolla MySQL como software libre en un esquema de
licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta
licencia, pero para aquellas empresas que quieran incorporarlo en productos
privativos deben comprar a la empresa una licencia específica que les permita
este uso. Está desarrollado en su mayor parte en ANSI C.
Al contrario de proyectos como Apache, donde el software es desarrollado por una
comunidad pública y el copyright del código está en poder del autor individual,
MySQL es propietario y está patrocinado por una empresa privada, que posee el
copyright de la mayor parte del código.
Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado.
Además de la venta de licencias privativas, la compañía ofrece soporte y servicios.
Para sus operaciones contratan trabajadores alrededor del mundo que colaboran
vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael
Widenius.
5.4.1. Historia del proyecto Mysql.
SQL (Lenguaje de Consulta Estructurado) fue comercializado por primera vez en
1981 por IBM, el cual fue presentado a ANSI y desde entonces ha sido
considerado como un estándar para las bases de datos relacionales. Desde 1986,
el estándar SQL ha aparecido en diferentes versiones como por ejemplo: SQL:92,
SQL:99, SQL:2003. MySQL es una idea originaria de la empresa opensource
49
MySQL AB establecida inicialmente en Suecia en 1995 y cuyos fundadores son
David Axmark, Allan Larsson, y Michael "Monty" Widenius. El objetivo que
persigue esta empresa consiste en que MySQL cumpla el estándar SQL, pero sin
sacrificar velocidad, fiabilidad o usabilidad.
Michael Widenius en la década de los 90 trató de usar mSQL para conectar las
tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL no era rápido y
flexible para sus necesidades. Esto lo llevó a crear una API SQL denominada
MySQL para bases de datos muy similar a la de mSQL pero más portable.
La procedencia del nombre de MySQL no es clara. Desde hace más de 10 años,
las herramientas han mantenido el prefijo My. También, se cree que tiene relación
con el nombre de la hija del cofundador Monty Widenius quien se llama My.
Por otro lado, el nombre del delfín de MySQL es Sakila y fue seleccionado por los
fundadores de MySQL AB en el concurso “Name the Dolphin”. Este nombre fue
enviado por Ambrose Twebaze, un desarrollador de Open source Africano,
derivado del idioma SiSwate, el idioma local de Swazilandia y corresponde al
nombre de una ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen de
Ambrose.
5.4.2. Lenguajes de programación.
Existen varias APIs que permiten, a aplicaciones escritas en diversos lenguajes de
programación, acceder a las bases de datos MySQL, incluyendo C, C++, C#,
Pascal, Delphi (via dbExpress), Eiffel, Smalltalk, Java (con una implementación
nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby,Gambas, REALbasic
50
(Mac), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una API
específica. También existe un interfaz ODBC, llamado MyODBC que permite a
cualquier lenguaje de programación que soporte ODBC comunicarse con las
bases de datos MySQL. También se puede acceder desde el sistema SAP,
lenguaje ABAP.
5.4.3. Aplicaciones.
MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en
plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por
herramientas de seguimiento de errores como Bugzilla. Su popularidad como
aplicación web está muy ligada a PHP, que a menudo aparece en combinación
con MySQL. MySQL es una base de datos muy rápida en la lectura cuando utiliza
el motor no transaccional MyISAM, pero puede provocar problemas de integridad
en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja
concurrencia en la modificación de datos y en cambio el entorno es intensivo en
lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.
51
5.4.4. Especificaciones.
5.4.4.1. Plataformas.
MySQL funciona sobre múltiples plataformas, incluyendo:
• AIX
• BSD
• FreeBSD
• HP-UX
• GNU/Linux
• Mac OS X
• NetBSD
• Novell Netware
• OpenBSD
• OS/2 Warp
• QNX
• SGI IRIX
• Solaris
• SunOS
• SCO OpenServer
• SCO UnixWare
• Tru64
• eBD
• Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP,
Windows Vista y otras versiones de Windows.
• OpenVMS (véase: www.pi-net.dyndns.org/anonymous/kits/).
52
5.4.4.2. Características de la versión 5.0.22.
• Un amplio subconjunto de ANSI SQL 99, y varias extensiones.
• Soporte a multiplataforma
• Procedimientos almacenados
• Disparadores (triggers)
• Cursores
• Vistas actualizables
• Soporte a VARCHAR
• INFORMATION_SCHEMA
• Modo Strict
• Soporte X/Open XA de transacciones distribuidas; transacción en dos
fases como parte de esto, utilizando el motor InnoDB de Oracle
• Motores de almacenamiento independientes (MyISAM para lecturas
rápidas, InnoDB para transacciones e integridad referencial)
• Transacciones con los motores de almacenamiento InnoDB, BDB Y
Cluster; puntos de recuperación (savepoints) con InnoDB
• Soporte para SSL
• Query caching
• Sub-SELECTs (o SELECTs anidados)
• Réplica con un maestro por esclavo, varios esclavos por maestro, sin
soporte automático para múltiples maestros por esclavo.
• indexing y buscando campos de texto completos usando el motor de
almacenamiento MyISAM
• Embedded database library
• Soporte completo para Unicode
• Conforme a las reglas ACID usando los motores InnoDB, BDB y Cluster
• Shared-nothing clustering through MySQL Cluster.
53
5.4.4.3. Características adicionales.
• Usa GNU Automake, Autoconf, y Libtool para portabilidad
• Uso de multihilos mediante hilos del kernel.
• Usa tablas en disco b-tree para búsquedas rápidas con compresión de
índice
• Tablas hash en memoria temporales
• El código MySQL se prueba con Purify (un detector de memoria perdida
comercial) así como con Valgrind, una herramienta GPL
• Completo soporte para operadores y funciones en cláusulas select y
where.
• Completo soporte para cláusulas group by y order by, soporte de
funciones de agrupación
• Seguridad: ofrece un sistema de contraseñas y privilegios seguro
mediante verificación basada en el host y el tráfico de contraseñas está
cifrado al conectarse a un servidor.
• Soporta gran cantidad de datos. MySQL Server tiene bases de datos de
hasta 50 millones de registros.
• Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada
índice puede consistir desde 1 hasta 16 columnas o partes de columnas.
El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).
• Los clientes se conectan al servidor MySQL usando sockets TCP/IP en
cualquier plataforma. En sistemas Windows se pueden conectar usando
named pipes y en sistemas Unix usando ficheros socket Unix.
• En MySQL 5.0, los clientes y servidores Windows se pueden conectar
usando memoria compartida.
• MySQL contiene su propio paquete de pruebas de rendimiento
proporcionado con el código fuente de la distribución de MySQL.
54
5.4.4.4. Características (versión 4.0).
Inicialmente, MySQL carecía de elementos considerados esenciales en las bases
de datos relacionales, tales como integridad referencial y transacciones. A pesar
de ello, atrajo a los desarrolladores de páginas web con contenido dinámico,
justamente por su simplicidad.
Poco a poco los elementos de los que carecía MySQL están siendo incorporados
tanto por desarrollos internos, como por desarrolladores de software libre. Entre
las características disponibles en las últimas versiones se puede destacar:
• Amplio subconjunto del lenguaje SQL. Algunas extensiones son
incluidas igualmente.
• Disponibilidad en gran cantidad de plataformas y sistemas.
• Diferentes opciones de almacenamiento según si se desea velocidad en
las operaciones o el mayor número de operaciones disponibles.
• Transacciones y claves foráneas.
• Conectividad segura.
• Replicación.
• Búsqueda e indexación de campos de texto.
MySQL es un sistema de administración de bases de datos. Una base de datos es
una colección estructurada de tablas que contienen datos. Esta puede ser desde
una simple lista de compras a una galería de pinturas o el vasto volumen de
información en una red corporativa. Para agregar, acceder a y procesar datos
guardados en un computador, usted necesita un administrador como MySQL
Server. Dado que los computadores son muy buenos manejando grandes
cantidades de información, los administradores de bases de datos juegan un papel
55
central en computación, como aplicaciones independientes o como parte de otras
aplicaciones.
MySQL es un sistema de administración relacional de bases de datos. Una base
de datos relacional archiva datos en tablas separadas en vez de colocar todos los
datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están
conectadas por relaciones definidas que hacen posible combinar datos de
diferentes tablas sobre pedido.
MySQL es software de fuente abierta. Fuente abierta significa que es posible para
cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el código
fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el
código fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General
Public License) para definir qué puede hacer y que no puede hacer con el software
en diferentes situaciones. Si usted no se ajusta al GPL o requiere introducir código
MySQL en aplicaciones comerciales, usted puede comprar una versión comercial
licenciada.
5.4.4.5. Mejoras futuras.
El mapa de ruta de MySQL 5.1 indica soporte para:
• Particionado de la base de datos
• Backup en línea para todos los motores de almacenamiento
• Replicación segura
• Restricciones a nivel de columna
• Planificación de eventos
56
• Funciones XML
5.4.4.6. Características distintivas.
10 razones para usar MySQL
- Escalabilidad y flexibilidad
- Alto rendimiento
- Alta disponibilidad
- Robusto soporte transaccional
- Fortalezas en Web y Data Warehouse
- Fuerte protección de datos
- Desarrollo de aplicaciones completo
- Facilidades de gestión
- Open Source y soporte
- Coste Total de Propiedad menor
5.4.4.7. Tipos de compilación del servidor.
Hay tres tipos de compilación del servidor MySQL:
57
• Estándar: Los binarios estándares de MySQL son los recomendados
para la mayoría de los usuarios, e incluyen el motor de almacenamiento
InnoDB.
• Max (No se trata de MaxDB, que es una cooperación con SAP): Los
binarios incluyen características adicionales que no han sido lo bastante
probadas o que normalmente no son necesarias.
• MySQL-Debug: Son binarios que han sido compilados con información
de depuración extra. No debe ser usada en sistemas en producción
porqué el código de depuración puede reducir el rendimiento.
5.4.4.8. Especificaciones del código fuente.
MySQL está escrito en una mezcla de C y C++. Hay un documento que describe
algunas de sus estructuras internas en http://dev.mysql.com/doc/internals/en/ (en
inglés).
5.4.4.9. Desarrollo del proyecto Mysql.
El desarrollo de MySQL se fundamenta en el trabajo de los desarrolladores
contratados por la empresa MySQL AB quienes se encargan de dar soporte a los
socios comerciales y usuarios de la comunidad MySQL y dar solución a los
problemas encontrados por los usuarios. Los usuarios o miembros de la
comunidad MySQL pueden reportar bugs revisando el manual en línea que
contiene las soluciones a problemas encontrados; el historial de cambios; la base
58
de datos bugs que contiene bugs reportados y solucionados y en las listas de
correo MySQL.
A través de las listas de correo los usuarios pueden enviar preguntas y éstas
serán contestadas por desarrolladores brindándoles soporte.
5.4.5. Estructuras organizativas/asociativas o de d ecisión.
La dirección y el patrocinio de los proyectos MySQL están a cargo de la empresa
MySQL AB quien posee el copyrigth del código fuente MySQL, su logo y marca
registrada. MySQL, Inc. y MySQL GmbH son ejemplos de empresas subsidiarias
de MySQL AB. Están establecidas en los Estados Unidos y Alemania
respectivamente. MySQL AB, cuenta con más de 200 empleados en más de 20
países y funcionan bajo la estrategia de teletrabajo.
5.4.6. Industria relacionada.
La industria radica en la venta de productos software y de algunos servicios
relacionados a numerosas empresas que utilizan estos productos.
MySQL AB clasifica los productos así:
• MySQL Enterprise: incluye MySQL Enterprise Server , Monitoreo de la
red MySQL, servicios de consulta y soporte de producción MySQL
59
• MySQL Cluster
• MySQL Embedded Database
• MySQL Drivers: para JDBC, ODBC y .Net
• MySQL Tools: MySQL Administrator, MySQL Query Browser, and the
MySQL Migration Toolkit
• MaxDB: MaxDB es una base de datos open source certificada para
SAP/R3
Los ingresos de esta empresa por la venta de licencias privativas de sus productos
y los servicios suma los U$12 millones.
5.4.7. Qué licencia utilizar.
Mysql efectivamente tiene dos tipos de licenciamiento para su producto, la licencia
comercial y la licencia OpenSource.
La licencia comercial según argumentan, es para una empresa que quiera hacer
un desarrollo no GPL. Aplicable en un lugar donde se venda un desarrollo
propietario y se deba instalar Mysql.
La licencia libre (que es GNU/GPL) es para los casos en donde la aplicación a
desarrollar también sea libre (ya sea GNU/GPL o alguna de las licencias
compatibles con esta).
Como dicen, ellos pueden tener este modelo mixto porque son los únicos dueños
del código de mysql, también dicen que no hay ninguna diferencia entre la versión
libre y la propietaria, solo algunas diferencia menores en las librerías de soporte,
dada la incompatibilidad de ambas licencias.
60
En cuanto al problema que hubo con PHP (ya que php tiene una licencia libre que
no es GPL y encima es incompatible con esta) es que la licencias de las librerías
del cliente mysql antes estaban con LGPL y ahora con GPL la cual no permite
realizar mesclas con licencias no compatibles, bueno para solucionar esto mysql
creó un excepción para PHP.
5.4.8. Usuarios destacados.
• Amazon.com
• Cox Communications - La cuarta televisión por cable más importante de
EEUU, tienen más de 3.600 tablas y aproximadamente dos millones de
inserciones cada hora.
• Craigslist
• CNET Networks
• Digg - Sitio de noticias.
• flickr, usa MySQL para gestionar millones de fotos y usuarios.
• Google - Para el motor de búsqueda de la aplicación AdWords.
• Joomla!, con millones de usuarios.
• phpBB, Uno de los más famosos sitios de foros, con miles de
instalaciones y con millones de usuarios.
• LiveJournal - Cerca de 300 millones de páginas servidas cada día.2
• NASA
• NetQOS, usa MySQL para la gestión de algunas de las redes más
grandes del mundo como las de Chevron, American Express y Boeing.
61
• Nokia, usa un cluster MySQL para mantener información en tiempo real
sobre usuarios de redes de móviles.
• Omniture
• Sabre, y su sistema de reserva de viajes Travelocity
• Slashdot - con cerca de 50 millones de páginas servidas cada día.
• Wikipedia, sirve más de 200 millones de consultas y 1,2 millones de
actualizaciones cada día, con picos de 11.000 consultas por segundo.
• WordPress, con cientos de blogs alojados en él.
• Yahoo! - para muchas aplicaciones críticas.
5.5. AJAX
Acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es
una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich
Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el
navegador de los usuarios mientras se mantiene la comunicación asíncrona con el
servidor en segundo plano. De esta forma es posible realizar cambios sobre las
páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad,
velocidad y usabilidad en las aplicaciones.
Ajax es el nombre que recibe el proceso de utilizar un objeto JavaScript para
intercambiar información en formato XML con el servidor sin tener que hacer
submit de un formulario o poner una URL en el navegador: el famoso
XmlHttpRequest. Eso es todo, no tiene más. Básicamente, mediante programación
JavaScript se puede crear un objeto de tipo XmlHttpRequest que realice una
62
petición a una URL determinada y encapsule el resultado en un arbol XML. Nota:
en el caso de Internet Explorer, el objeto en cuestión se llama XMLHTTP.
Ajax es una técnica válida para múltiples plataformas y utilizable en muchos
sistemas operativos y navegadores, dado que está basado en estándares abiertos
como JavaScript y Document Object Model (DOM).
5.5.1. Tecnologías incluidas en ajax.
AJAX es una combinación de cuatro tecnologías ya existentes:
• XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseño
que acompaña a la información.
• Document Object Model (DOM) accedido con un lenguaje de scripting
por parte del usuario, especialmente implementaciones ECMAScript
como JavaScript y JScript, para mostrar e interactuar dinámicamente
con la información presentada.
• El objeto XMLHttpRequest para intercambiar datos de forma asíncrona
con el servidor web. En algunos frameworks y en algunas situaciones
concretas, se usa un objeto iframe en lugar del XMLHttpRequest para
realizar dichos intercambios.
• XML es el formato usado generalmente para la transferencia de datos
solicitados al servidor, aunque cualquier formato puede funcionar,
incluyendo HTML preformateado, texto plano, JSON y hasta EBML.
Como el DHTML, LAMP o SPA, AJAX no constituye una tecnología en sí, sino que
es un término que engloba a un grupo de éstas que trabajan conjuntamente.
63
5.5.2. Antecedentes de Ajax.
A pesar de que el término «AJAX» fuese creado en 2005, la historia de las
tecnologías que permiten AJAX se remonta a una década antes con la iniciativa de
Microsoft en el desarrollo de Scripting Remoto. Sin embargo, las técnicas para la
carga asíncrona de contenidos en una página existente sin requerir recarga
completa remontan al tiempo del elemento iframe (introducido en Internet Explorer
3 en 1996) y el tipo de elemento layer (introducido en Netscape 4 en 1997,
abandonado durante las primeras etapas de desarrollo de Mozilla). Ambos tipos
de elemento tenían el atributo src que podía tomar cualquier dirección URL
externa, y cargando una página que contenga javascript que manipule la página
paterna, pueden lograrse efectos parecidos al AJAX.
El Microsoft's Remote Scripting (o MSRS, introducido en 1998) resultó un
sustituto más elegante para estas técnicas, con envío de datos a través de un
applet Java el cual se puede comunicar con el cliente usando JavaScript. Esta
técnica funcionó en ambos navegadores, Internet Explorer versión 4 y Netscape
Navigator versión 4. Microsoft la utilizó en el Outlook Web Access provisto con la
versión 2000 de Microsoft Exchange Server.
La comunidad de desarrolladores web, primero colaborando por medio del grupo
de noticias microsoft.public.scripting.remote y después usando blogs,
desarrollaron una gama de técnicas de scripting remoto para conseguir los
mismos resultados en diferentes navegadores. Los primeros ejemplos incluyen la
librería JSRS en el año 2000, la introducción a la técnica imagen/cookie en el
mismo año y la técnica JavaScript bajo demanda (JavaScript on Demand) en
2002. En ese año, se realizó una modificación por parte de la comunidad de
64
usuarios al Microsoft's Remote Scripting para reemplazar el applet Java por
XMLHttpRequest.
Frameworks de Scripting Remoto como el ARSCIF aparecieron en 2003 poco
antes de que Microsoft introdujera Callbacks en ASP. NET.
Desde que XMLHttpRequest está implementado en la mayoría de los
navegadores, raramente se usan técnicas alternativas. Sin embargo, todavía se
utilizan donde se requiere una mayor compatibilidad, una reducida
implementación, o acceso cruzado entre sitios web. Una alternativa, el Terminal
SVG (basado en SVG), emplea una conexión persistente para el intercambio
continuo entre el navegador y el servidor.
5.5.3. Navegadores que permiten Ajax.
Ha de tenerse en cuenta que ésta es una lista general, y el soporte de las
aplicaciones AJAX dependerá de las características que el navegador permita.
• Navegadores basados en Gecko como Mozilla, Mozilla Firefox,
SeaMonkey, Camino, K-Meleon,IceWeasel,Flock, Epiphany, Galeon y
Netscape versión 7.1 y superiores
• Google Chrome
• Microsoft Internet Explorer para Windows versión 5.0 y superiores, y los
navegadores basados en él
• Navegadores con el API KHTML versión 3.2 y superiores implementado,
incluyendo Konqueror versión 3.2 y superiores, Apple Safari versión 1.2
65
y superiores, y el Web Browser for S60 de Nokia tercera generación y
posteriores
• Opera versión 8.0 y superiores, incluyendo Opera Mobile Browser
versión 8.0 y superiores.
5.5.4. Navegadores que no permiten Ajax.
• Opera 7 y anteriores
• Microsoft Internet Explorer para Windows versión 4.0 y anteriores
• Safari, cualquier versión anterior a la 1.2
• Dillo
• Navegadores basados en texto como Lynx y Links
• Navegadores para incapacitados visuales (Braille)
5.6. JQUERY
Es una biblioteca o framework de Javascript, creada inicialmente por John Resig,
que permite simplificar la manera de interactuar con los documentos HTML,
manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar
interacción con la tecnología AJAX a páginas web. Fue presentada en enero de
2006 en el BarCamp NYC.
66
jQuery, al igual que otras bibliotecas, ofrece una serie de funcionalidades basadas
en Javascript que de otra manera requerirían de mucho más código. Es decir, con
las funciones propias de esta biblioteca se logran grandes resultados en menos
tiempo y espacio.
Las empresas Microsoft y Nokia anunciaron que incluirán la biblioteca en sus
plataformas. Microsoft la añadirá en su IDE Visual Studio y la usará junto con los
frameworks ASP.NET AJAX y ASP.NET MVC, mientras que Nokia los integrará
con su plataforma Web Run-Time.
5.6.1. Características de Jquery.
• Selección de elementos DOM.
• Interactividad y modificaciones del árbol DOM, incluyendo soporte para
CSS 1-3 y un plugin básico de XPath.
• Eventos.
• Manipulación de la hoja de estilos CSS.
• Efectos y animaciones.
• AJAX.
• Soporta extensiones.
• Utilidades varias como obtener información del navegador, operar con
Objetos y Arrays, función trim() (elimina los espacios en blanco del
principio y final de una cadena de caracteres), etc.
• Compatible con los navegadores Firefox 2.0+, Internet Explorer 6+,
Safari 2.0.2+ y Opera 9+.
67
5.6.2. Uso.
JQuery consiste en un único fichero JavaScript que contiene las funcionalidades
comunes de DOM, eventos, efectos y AJAX.
La característica principal de la biblioteca es que permite cambiar el contenido de
una página web sin necesidad de recargarla, mediante la manipulación del árbol
DOM y peticiones AJAX. Para ello utiliza las funciones $() o jQuery().
Función $
La forma de interactuar con la página es mediante la función $() (un alias de
jQuery()) que recibe como parámetro una expresión CSS o el nombre de una
etiqueta HTML y devuelve todos los nodos (elementos) que concuerden con la
expresión.
$("#tablaAlumnos") //Devolverá el elemento con id="tablaAlumnos"
$(".activo") //Devolverá una matriz de elementos que contenga el
estilo "activo"
Una vez obtenidos los nodos, se les puede aplicar cualquiera de las funciones que
facilita la librería.
// Una vez obtenidos todos los nodos que contenga el estilo "activo"
// se les elimina ese estilo (removeClass()) y se les aplica uno nuevo
(addClass())
68
$(".activo").removeClass("activo").addClass("desactivo");
5.6.3. Jquery Team.
Detrás de la biblioteca existe un grupo de personas divididas en 5 equipos:
Tabla 2. Equipo Jquery.
Equipos Descripción Componentes
Desarrollo
Encargado del mantenimiento del núcleo de la
biblioteca (desarrollo, testeo, documentación,
etc).
• John Resig
• Brandon Aaron
• Ariel Flesler
• Jörn Zaefferer
Evangelista Responsables de la comunicación entre los
usuarios y el resto de equipos.
• Rey Bango
• Karl Swedberg
• Cody Lindley
jQuery UI
Desarrollo y mantenimiento de jQuery UI.
• Paul Bakaus
• Richard D.
69
Worth
• Scott González
• Todd Parker
• Otros
Plugins Responsables oficiales de los plugins
desarrollados para la biblioteca.
• Yehuda Katz
• Klaus Hartl
• Mike Alsup
Diseño página
web
Responsable del diseño y mantenimiento de la
página web de jQuery.
• Scott Jehl
• Mike Hostetler
5.6.4. Licencia.
jQuery usa las licencias MIT y GPL permitiendo su uso en proyectos libres y
privativos.
5.6.5. Versiones.
El primer prototipo de jQuery, llamado Selectors in JavaScript, vio la luz el 22 de
agosto de 2005. La última versión estable es la 1.3.2 y fue lanzada el 20 de
febrero de 2009.
70
Actualmente existe la versión candidata a definitiva 1.5, lanzada el 2 de junio de
2008.
5.7. HTML
Siglas de HyperText Markup Language (Lenguaje de Marcas de Hipertexto), es
el lenguaje de marcado predominante para la construcción de páginas web. Es
usado para describir la estructura y el contenido en forma de texto, así como para
complementar el texto con objetos tales como imágenes. HTML se escribe en
forma de "etiquetas", rodeadas por corchetes angulares (<,>). HTML también
puede describir, hasta un cierto punto, la apariencia de un documento, y puede
incluir un script (por ejemplo Javascript), el cual puede afectar el comportamiento
de navegadores web y otros procesadores de HTML.
HTML también es usado para referirse al contenido del tipo de MIME text/html o
todavía más ampliamente como un término genérico para el HTML, ya sea en
forma descendida del XML (como XHTML 1.0 y posteriores) o en forma
descendida directamente de SGML (como HTML 4.01 y anteriores).
Por convención, los archivos de formato HTML usan la extensión .htm o .html.
71
5.7.1. Historia de Html.
5.7.1.1. Primeras especificaciones.
La primera descripción de HTML disponible públicamente fue un documento
llamado HTML Tags (Etiquetas HTML), publicado por primera vez en Internet por
Tim Berners-Lee en 1991. Describe 22 elementos comprendiendo el diseño inicial
y relativamente simple de HTML. Trece de estos elementos todavía existen en
HTML 4.
Berners-Lee consideraba a HTML una ampliación de SGML, pero no fue
formalmente reconocida como tal hasta la publicación de mediados de 1993, por la
IETF, de una primera proposición para una especificación de HTML: el boceto
Hypertext Markup Language de Berners-Lee y Dan Connolly, el cual incluía una
Definición de Tipo de Documento SGML para definir la gramática. El boceto expiró
luego de seis meses, pero fue notable por su reconocimiento de la etiqueta propia
del navegador Mosaic usada para insertar imágenes sin cambio de línea,
reflejando la filosofía del IETF de basar estándares en prototipos con éxito.
Similarmente, el boceto competidor de Dave Raggett HTML+ (Hypertext Markup
Format) (Formato de marcaje de hipertexto), de 1993 tardío, sugería, estandarizar
características ya implementadas tales como tablas.
5.7.2. Marcado Html.
72
HTML consiste de varios componentes vitales, incluyendo elementos y sus
atributos, tipos de datos, y la declaración de tipo de documento.
5.7.3. Elementos.
Los elementos son la estructura básica de HTML. Los elementos tienen dos
propiedades básicas: atributos y contenido. Cada atributo y contenido tiene ciertas
restricciones para que se considere válido al documento HTML. Un elemento
generalmente tiene una etiqueta de inicio (p.ej. <nombre-de-elemento>) y una
etiqueta de cierre (p.ej. </nombre-de-elemento>). Los atributos del elemento están
contenidos en la etiqueta de inicio y el contenido está ubicado entre las dos
etiquetas (p.ej. <nombre-de-elemento atributo="valor">Contenido</nombre-de-
elemento>). Algunos elementos, tales como <br>, no tienen contenido ni llevan
una etiqueta de cierre. Debajo se listan varios tipos de elementos de marcado
usados en HTML.
Figura 1. Estructura general de una línea de código en el lenguaje de etiquetas HTML.
73
El marcado estructural describe el propósito del texto. Por ejemplo,
<h2>Golf</h2> establece a "Golf" como un encabezamiento de segundo nivel, el
cual se mostraría en un navegador de una manera similar al título "Marcado
HTML" al principio de esta sección. El marcado estructural no define cómo se verá
el elemento, pero la mayoría de los navegadores web han estandarizado el
formato de los elementos. Un formato específico puede ser aplicado al texto por
medio de hojas de estilo en cascada.
El marcado presentacional describe la apariencia del texto, sin importar su
función. Por ejemplo, <b>negrita</b> indica que los navegadores web visuales
deben mostrar el texto en negrita , pero no indica qué deben hacer los
navegadores web que muestran el contenido de otra manera (por ejemplo, los que
leen el texto en voz alta). En el caso de <b>negrita</b> e <i>itálica</i>, existen
elementos que se ven de la misma manera pero tienen una naturaleza más
semántica: <strong>enfásis fuerte</strong> y <em>énfasis</em>. Es fácil ver
cómo un lector de pantalla debería interpretar estos dos elementos. Sin embargo,
son equivalentes a sus correspondientes elementos presentacionales: un lector de
pantalla no debería decir más fuerte el nombre de un libro, aunque éste esté en
itálicas en una pantalla. La mayoría del marcado presentacional ha sido
desechada con HTML 4.0, en favor de Hojas de estilo en cascada.
El marcado hipertextual se utiliza para enlazar partes del documento con otros
documentos o con otras partes del mismo documento. Para crear un enlace es
necesario utilizar la etiqueta de ancla <a> junto con el atributo href, que
establecerá la dirección URL a la que apunta el enlace.
74
5.7.4. Atributos.
La mayoría de los atributos de un elemento son pares nombre-valor, separados
por un signo de igual "=" y escritos en la etiqueta de comienzo de un elemento,
después del nombre de éste. El valor puede estar rodeado por comillas dobles o
simples, aunque ciertos tipos de valores pueden estar sin comillas en HTML (pero
no en XHTML). De todas maneras, dejar los valores sin comillas es considerado
poco seguro.
En contraste con los pares nombre-elemento, hay algunos atributos que afectan al
elemento simplemente por su presencia (tal como el atributo ismap para el
elemento img).
Códigos HTML básicos
• <html>: define el inicio del documento HTML, le indica al navegador que lo
que viene a continuación debe ser interpretado como código HTML.
• <head>: define la cabecera del documento HTML, esta cabecera suele
contener información sobre el documento que no se muestra directamente
al usuario. Como por ejemplo el título de la ventana del navegador. Dentro
de la cabecera <head> podemos encontrar:
75
Figura 2. Un ejemplo de código HTML – Sintaxis.
• <title>: define el título de la página. Por lo general, el título aparece
en la barra de título encima de la ventana
• <link>: para vincular el sitio a hojas de estilo o iconos Por
ejemplo:<link rel="stylesheet" href="/style.css" type="text/css">
• <style>: para colocar el estilo interno de la página, ya sea usando
CSS, JavaScript u otros lenguajes similares. No es necesario
colocarlo si se va a vincular a un archivo externo usando la etiqueta
<link>
• <body>: define el contenido principal o cuerpo del documento. Esta
es la parte del documento html que se muestra en el navegador;
dentro de esta etiqueta pueden definirse propiedades comunes a
toda la página, como color de fondo y márgenes. Dentro del cuerpo
<body> podemos encontrar numerosas etiquetas. A continuación se
indican algunas a modo de ejemplo:
76
• <h1> a <h6>: encabezados o títulos del documento con diferente
relevancia.
• <table>: define una tabla
• <tr>: fila de una tabla
• <td>: celda de datos de una tabla
• <a>: Hipervínculo o enlace, dentro o fuera del sitio web. Debe
definirse el parámetro de pasada por medio del atributo href.
• <div>: área de la página
• <img>: imagen. Requiere del atributo src, que indica la ruta en la que
se encuentra la imagen. Por ejemplo: <img
src="./imagenes/mifoto.jpg" />
• <li><ol><ul>: Etiquetas para listas.
• <b>: texto en negrita (Etiqueta desaprovada. Se recomienda usar la
etiqueta <strong>)
• <i>: texto en cursiva (Etiqueta desaprovada. Se recomienda usar la
etiqueta <em>)
• <s>: texto tachado (Etiqueta desaprovada. Se recomienda usar la
etiqueta <del>)
• <u>: texto subrayado
77
• La mayoría de etiquetas deben cerrarse como se abren, pero con
una barra ("/") tal como se muestra en los siguientes ejemplos:
• <table><tr><td>Contenido de una celda</td></tr></table>
• <script>Código de un script integrado en la página</script>
5.7.5. Nociones básicas de Html.
El lenguaje HTML puede ser creado y editado con cualquier editor de textos
básico, como puede ser Gedit en Linux, el Bloc de Notas de Windows, o cualquier
otro editor que admita texto sin formato como GNU Emacs, Microsoft Wordpad,
TextPad, Vim, Notepad++, entre otros.
Existen además, otros programas para la realización de sitios Web o edición de
código HTML, como por ejemplo Microsoft FrontPage, el cual tiene un formato
básico parecido al resto de los programas de Office. También existe el famoso
software de Macromedia (que adquirió la empresa Adobe) llamado Dreamweaver,
siendo uno de los más utilizados en el ámbito de diseño y programación Web.
Estos programas se les conoce como editores WYSIWYG o What You See Is
What You Get (en español: “lo que ves es lo que obtienes”). Esto significa que son
editores en los cuales se ve el resultado de lo que se está editando en tiempo real
a medida que se va desarrollando el documento. Ahora bien, esto no significa una
manera distinta de realizar sitios web, sino que una forma un tanto más simple ya
que estos programas, además de tener la opción de trabajar con la vista
preliminar, tiene su propia sección HTML la cual va generando todo el código a
medida que se va trabajando.
78
Combinar estos dos métodos resulta muy interesante, ya que de alguna manera
se ayudan entre sí. Por ejemplo; si se edita todo en HTML y de pronto se olvida
algún código o etiqueta, simplemente me dirijo al editor visual o WYSIWYG y se
continúa ahí la edición, o viceversa, ya que hay casos en que sale más rápido y
fácil escribir directamente el código de alguna característica que queramos
adherirle al sitio, que buscar la opción en el programa mismo.
Existe otro tipo de editores HTML llamados WYSIWYM (Lo que ves es lo que
quieres decir) que dan más importancia al contenido y al significado que a la
apariencia visual. Entre los objetivos que tienen estos editores es la separación del
contenido y la presentación, fundamental en el diseño Web.
HTML utiliza etiquetas o marcas, que consisten en breves instrucciones de
comienzo y final, mediante las cuales se determina la forma en la que debe
aparecer en su navegador el texto, así como también las imágenes y los demás
elementos, en la pantalla del computador.
Toda etiqueta se identifica porque está encerrada entre los signos menor que y
mayor que (<>), y algunas tienen atributos que pueden tomar algún valor. En
general las etiquetas se aplicarán de dos formas especiales:
• Se abren y se cierran, como por ejemplo: <b>negrita</b> que se vería
en su navegador web como negrita .
• No pueden abrirse y cerrarse, como <hr> que se vería en su navegador
web como una línea horizontal.
• Otras que pueden abrirse y cerrarse, como por ejemplo <p>.
• Las etiquetas básicas o mínimas son:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
79
<html lang="es">
<head>
<title>Ejemplo</title>
</head>
<body>
<p>ejemplo</p>
</body>
</html>
5.7.6. Historia del estándar Html.
En 1989 existían dos técnicas que permitían vincular documentos electrónicos, por
un lado los hipervínculos (links) y por otro lado un poderoso lenguaje de etiquetas
denominado SGML. Por entonces un usuario conocedor de ambas opciones, Tim
Berners-Lee físico nuclear del Centro Europeo para la Investigación Nuclear da a
conocer a la prensa que estaba trabajando en un sistema que permitirá acceder a
ficheros en línea, funcionando sobre redes de computadoras o máquinas
electrónicas basadas en el protocolo TCP/IP.
A principios de 1990, Tim Berners-Lee define por fin el HTML como un
subconjunto del conocido SGML y crea algo más valioso aún, el World Wide Web.
En 1991, Tim Berners-Lee crea el primer navegador de HTML que funcionaría en
modo texto y para UNIX.
Los trabajos para crear un sucesor del HTML, denominado HTML +, comenzaron
a finales de 1993. HTML+ se diseñó originalmente para ser un superconjunto del
80
HTML que permitiera evolucionar gradualmente desde el formato HTML anterior. A
la primera especificación formal de HTML+ se le dio, por lo tanto, el número de
versión 2 para distinguirla de las propuestas no oficiales previas. Los trabajos
sobre HTML+ continuaron, pero nunca se convirtió en un estándar, a pesar de ser
la base formalmente más parecida al aspecto compositivo de las especificaciones
actuales.
El borrador del estándar HTML 3.0 fue propuesto por el recién formado W3C en
marzo de 1995. Con él se introdujeron muchas nuevas capacidades, tales como
facilidades para crear tablas, hacer que el texto fluyese alrededor de las figuras y
mostrar elementos matemáticos complejos. Aunque se diseñó para ser compatible
con HTML 2.0, era demasiado complejo para ser implementado con la tecnología
de la época y, cuando el borrador del estándar expiró en septiembre de 1995, se
abandonó debido a la carencia de apoyos de los fabricantes de navegadores web.
El HTML 3.1 nunca llegó a ser propuesto oficialmente, y el estándar siguiente fue
el HTML 3.2, que abandonaba la mayoría de las nuevas características del HTML
3.0 y, a cambio, adoptaba muchos elementos desarrollados inicialmente por los
navegadores web Netscape y Mosaic. La posibilidad de trabajar con fórmulas
matemáticas que se había propuesto en el HTML 3.0 pasó a quedar integrada en
un estándar distinto llamado MathML.
El HTML 4.0 también adoptó muchos elementos específicos desarrollados
inicialmente para un navegador web concreto, pero al mismo tiempo comenzó a
limpiar el HTML señalando algunos de ellos como 'desaprobados'.
81
5.7.7. Accesibilidad web.
El diseño en HTML aparte de cumplir con las especificaciones propias del lenguaje
debe respetar unos criterios de accesibilidad web, siguiendo unas pautas, o las
normativas y leyes vigentes en los países donde se regule dicho concepto. Se
encuentra disponible y desarrollado por el W3C a través de las Pautas de
Accesibilidad al Contenido Web 1.0 WCAG, aunque muchos países tienen
especificaciones propias como España con la Norma UNE 139803.
5.8. JAVASCRIPT
Es un lenguaje de programación interpretado, es decir, que no requiere
compilación, utilizado principalmente en páginas web, con una sintaxis semejante
a la del lenguaje Java y el lenguaje C.
Al igual que Java, JavaScript es un lenguaje orientado a objetos propiamente
dicho, ya que dispone de Herencia, si bien ésta se realiza siguiendo el paradigma
de programación basada en prototipos, ya que las nuevas clases se generan
clonando las clases base (prototipos) y extendiendo su funcionalidad.
Todos los navegadores modernos interpretan el código JavaScript integrado
dentro de las páginas web. Para interactuar con una página web se provee al
lenguaje JavaScript de una implementación del DOM.
82
El lenguaje fue inventado por Brendan Eich en la empresa Netscape
Communications, que es la que desarrolló los primeros navegadores web
comerciales. Apareció por primera vez en el producto de Netscape llamado
Netscape Navigator 2.0.
Tradicionalmente, se venía utilizando en páginas web HTML, para realizar tareas y
operaciones en el marco de la aplicación únicamente cliente, sin acceso a
funciones del servidor. JavaScript se ejecuta en el agente de usuario al mismo
tiempo que las sentencias van descargándose junto con el código HTML.
Los autores inicialmente lo llamaron Mocha y más tarde LiveScript pero fue
rebautizado como JavaScript en un anuncio conjunto entre Sun Microsystems y
Netscape, el 4 de diciembre de 1995.
En 1997 los autores propusieron JavaScript para que fuera adoptado como
estándar de la European Computer Manufacturers' Association ECMA, que a
pesar de su nombre no es europeo sino internacional, con sede en Ginebra. En
junio de 1997 fue adoptado como un estándar ECMA, con el nombre de
ECMAScript. Poco después también lo fue como un estándar ISO.
JScript es la implementación de ECMAScript de Microsoft, muy similar al
JavaScript de Netscape, pero con ciertas diferencias en el modelo de objetos del
navegador que hacen a ambas versiones con frecuencia incompatibles.
Para evitar estas incompatibilidades, el World Wide Web Consortium diseñó el
estándar Document Object Model (DOM, ó Modelo de Objetos del Documento en
castellano), que incorporan Konqueror, las versiones 6 de Internet Explorer y
Netscape Navigator, Opera versión 7, y Mozilla desde su primera versión.
83
5.8.1. Dónde y cómo incluir Javascript en un docume nto.
Javascript se puede incluir en cualquier documento y es compatible con cualquier
S.O.HTML, o todo aquel que termine traduciéndose en HTML en el navegador del
cliente; ya sea PHP, ASP,JSP,SVG... Incluir código directamente en una
estructura HTML es una práctica invasiva, y no recomendada. El método correcto
que define la W3C es incluir javascript como un archivo externo, tanto por
cuestiones de accesibilidad, como practicidad y velocidad en la navegación.
Bastará con escribir en el documento HTML:
<script type="text/javascript" src="[URL]"></script>
Siendo [URL] la URL relativa o absoluta del recurso con código JavaScript, el cual
tendrá extensión js.
También es posible incluir código directamente en el documento entre los
elementos <script> y </script>, aunque no se recomienda:
<script type="text/javascript">
<!--
// código JavaScript
-->
</script>
Para validar el código en un validador HTML es necesario incluir los comentarios
HTML ‹!-- y --> para que no se interpreten los símbolos < y > como inicio y fin de
etiqueta.
84
5.8.2. Historia y denominación.
JavaScript fue desarrollado originalmente por Brendan Eich de Netscape con el
nombre de Mocha, más tarde renombrado a LiveScript, y finalmente a JavaScript.
El cambio de nombre de LiveScript a JavaScript coincidió aproximadamente con el
momento en que Netscape agregó soporte para la tecnología Java en su
navegador web Netscape Navigator. JavaScript fue presentado y desarrollado en
el navegador Netscape versión 2.0B3 en diciembre de 1995. La denominación ha
causado confusión, dando la impresión de que el lenguaje es una prolongación de
Java, y se ha caracterizado por muchos como una estratagema de marketing de
Netscape para obtener prestigio e innovar en lo que eran los nuevos lenguajes de
programación web.
Microsoft dio como nombre a su dialecto de javascript JScript para evitar
cuestiones relacionadas con el trademark. JScript fue adoptado en la versión 3.0
de Internet Explorer, liberado en agosto de 1996, e incluyó compatibilidad con el
Efecto 2000 con las funciones de fecha, a diferencia de los que se basaban en
java.util.Date en ese momento. Los dialectos pueden parecer tan similares que los
términos "JavaScript" y "JScript" a menudo se utilizan indistintamente, pero la
especificación de JScript es incompatible con la de ECMA en muchos aspectos.
Netscape presentó Javascript a Ecma para su normalización, resultando la versión
normalizada llamada ECMAScript.
85
5.8.3. Versiones.
Tabla 3. Versiones de JavaScript
Versión Fecha de
lanzamiento
Equivalencia Netscape Mozilla
Firefox
Internet
Explorer
Opera Safari
1.0 Marzo de 1996
2.0
3.0
1.1 Agosto de 1996
3.0
1.2 Junio de 1997
4.0-4.05
1.3 Octubre de 1998
Especificación ECMA-262
1st / Especificación ECMA-
262 2nd
4.06-4.7x
4.0
1.4
Netscape
Server
1.5 Noviembre de
2000
Especificación ECMA-262
3rd 6.0 1.0
5.5 (JScript
5.5),
6 (JScript
5.6),
7 (JScript
5.7),
8 (JScript
6)
6.0,
7.0,
8.0,
9.0
86
1.6 Noviembre de
2005
1.5 + Arrays extras +
Arrays y Strings genéricos
+ E4X
1.5
1.7 Octubre de 2006 1.6 + Generadores de
Python + Iteradores + let
2.0
3.x
1.8 Junio de 2008
1.7 + Generador de
expresiones + Clausuras
de expresiones
3.0
1.8.1
1.8 + actualizaciones
menores
3.5
1.9
1.8.1 + compatibilidad con
ECMAScript 5
4
5.9. BASE DE DATOS
Una base de datos o banco de datos (en inglés: database) es un conjunto de
datos pertenecientes a un mismo contexto y almacenados sistemáticamente para
su posterior uso. En este sentido, una biblioteca puede considerarse una base de
datos compuesta en su mayoría por documentos y textos impresos en papel e
indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de
campos como la informática y la electrónica, la mayoría de las bases de datos
87
están en formato digital (electrónico), que ofrece un amplio rango de soluciones al
problema de almacenar datos.
Existen unos programas denominados sistemas gestores de bases de datos,
abreviados, SGBD, que permiten almacenar y posteriormente acceder a los datos
de forma rápida y estructurada. Las propiedades de estos SGBD, así como su
utilización y administración, se estudian dentro del ámbito de la informática.
Las aplicaciones más usuales son para la gestión de empresas e instituciones
públicas. También son ampliamente utilizadas en entornos científicos con el objeto
de almacenar la información experimental.
Aunque las bases de datos pueden contener muchos tipos de datos, algunos de
ellos se encuentran protegidos por las leyes de varios países. Por ejemplo en
España, los datos personales se encuentran protegidos por la Ley Orgánica de
Protección de Datos de Carácter Personal (LOPD).
5.9.1. Tipos de bases de datos.
Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto
que se esté manejando, o la utilidad de la misma:
88
5.9.1.1. Según la variabilidad de los datos almacen ados.
Bases de datos estáticas
Éstas son bases de datos de sólo lectura, utilizadas primordialmente para
almacenar datos históricos que posteriormente se pueden utilizar para estudiar el
comportamiento de un conjunto de datos a través del tiempo, realizar
proyecciones y tomar decisiones.
Bases de datos dinámicas
Éstas son bases de datos donde la información almacenada se modifica con el
tiempo, permitiendo operaciones como actualización, borrado y adición de datos,
además de las operaciones fundamentales de consulta. Un ejemplo de esto puede
ser la base de datos utilizada en un sistema de información de una tienda de
abarrotes, una farmacia, un videoclub.
5.9.1.2. Según el contenido.
Bases de datos bibliográficas
Solo contienen un surrogante (representante) de la fuente primaria, que permite
localizarla. Un registro típico de una base de datos bibliográfica contiene
información sobre el autor, fecha de publicación, editorial, título, edición, de una
determinada publicación, etc. Puede contener un resumen o extracto de la
publicación original, pero nunca el texto completo, porque si no estaríamos en
presencia de una base de datos a texto completo (o de fuentes primarias—ver
89
más abajo). Como su nombre lo indica, el contenido son cifras o números. Por
ejemplo, una colección de resultados de análisis de laboratorio, entre otras.
Bases de datos de texto completo
Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas
las ediciones de una colección de revistas científicas.
Directorios
Un ejemplo son las guías telefónicas en formato electrónico.
Bases de datos o "bibliotecas" de información Bioló gica
Son bases de datos que almacenan diferentes tipos de información proveniente de
las ciencias de la vida o médicas. Se pueden considerar en varios subtipos:
• Aquellas que almacenan secuencias de nucleótidos o proteínas.
• Las bases de datos de rutas metabólicas
• Bases de datos de estructura, comprende los registros de datos
experimentales sobre estructuras 3D de biomoléculas
• Bases de datos clínicas
• Bases de datos bibliográficas (biológicas)
5.9.2. Modelos de bases de datos.
Además de la clasificación por la función de las bases de datos, éstas también se
pueden clasificar de acuerdo a su modelo de administración de datos.
90
Un modelo de datos es básicamente una "descripción" de algo conocido como
contenedor de datos (algo en donde se guarda la información), así como de los
métodos para almacenar y recuperar información de esos contenedores. Los
modelos de datos no son cosas físicas: son abstracciones que permiten la
implementación de un sistema eficiente de base de datos; por lo general se
refieren a algoritmos, y conceptos matemáticos.
Algunos modelos con frecuencia utilizados en las bases de datos:
5.9.2.1. Bases de datos jerárquicas.
Éstas son bases de datos que, como su nombre indica, almacenan su información
en una estructura jerárquica. En este modelo los datos se organizan en una forma
similar a un árbol (visto al revés), en donde un nodo padre de información puede
tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que
no tienen hijos se los conoce como hojas.
Las bases de datos jerárquicas son especialmente útiles en el caso de
aplicaciones que manejan un gran volumen de información y datos muy
compartidos permitiendo crear estructuras estables y de gran rendimiento.
Una de las principales limitaciones de este modelo es su incapacidad de
representar eficientemente la redundancia de datos.
91
5.9.2.2. Base de datos de red.
Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental
es la modificación del concepto de nodo: se permite que un mismo nodo tenga
varios padres (posibilidad no permitida en el modelo jerárquico).
Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una
solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad
que significa administrar la información en una base de datos de red ha significado
que sea un modelo utilizado en su mayoría por programadores más que por
usuarios finales.
5.9.2.3. Bases de datos transaccionales.
Una base de datos transaccional es un SGBD donde operaciones de escritura en
la base de datos son capaces de ser revertido si no se completó correctamente. Si
un sistema de base de datos transaccionales pierde energía eléctrica a medio
camino a través de una transacción, la transacción se completó en parte, se
vuelve la base de datos y se restaurará al estado en que se encontraba antes de
la transacción iniciada.
Una base de datos transaccional puede revertir parcialmente la operación. Una
alternativa al uso de una base de datos transaccional es utilizar operaciones
atómicas. Está orientado a procesos relacionados con la operatividad de la
empresa, sus cálculos y procesos suelen ser simples y poco sofisticados, tienen la
propiedad de ser recolectores de información.
92
5.9.2.4. Base de datos relacional.
Éste es el modelo utilizado en la actualidad para modelar problemas reales y
administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970
por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó
en consolidarse como un nuevo paradigma en los modelos de base de datos. Su
idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse
en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la
teoría de las bases de datos relacionales creadas por Edgar Frank Codd, la
mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto
es pensando en cada relación como si fuese una tabla que está compuesta por
registros (las filas de una tabla), que representarían las tuplas, y campos (las
columnas de una tabla).
En este modelo, el lugar y la forma en que se almacenen los datos no tienen
relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto
tiene la considerable ventaja de que es más fácil de entender y de utilizar para un
usuario esporádico de la base de datos. La información puede ser recuperada o
almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para
administrar la información.
El lenguaje más habitual para construir las consultas a bases de datos
relacionales es SQL, Structured Query Language o Lenguaje Estructurado de
Consultas, un estándar implementado por los principales motores o sistemas de
gestión de bases de datos relacionales.
Durante su diseño, una base de datos relacional pasa por un proceso al que se le
conoce como normalización de una base de datos.
93
Durante los años '80 (1980-1989) la aparición de dBASE produjo una revolución
en los lenguajes de programación y sistemas de administración de datos. Aunque
nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su
gestión.
5.9.2.5. Bases de datos multidimensionales.
Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como
creación de Cubos OLAP . Básicamente no se diferencian demasiado de las
bases de datos relacionales (una tabla en una base de datos relacional podría
serlo también en una base de datos multidimensional), la diferencia está más bien
a nivel conceptual; en las bases de datos multidimensionales los campos o
atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de
la tabla, o bien representan métricas que se desean estudiar.
5.9.2.6. Bases de datos orientadas a objetos.
Este modelo, bastante reciente, y propio de los modelos informáticos orientados a
objetos, trata de almacenar en la base de datos los objetos completos (estado y
comportamiento).
Una base de datos orientada a objetos es una base de datos que incorpora todos
los conceptos importantes del paradigma de objetos:
94
• Encapsulación - Propiedad que permite ocultar la información al resto de
los objetos, impidiendo así accesos incorrectos o conflictos.
• Herencia - Propiedad a través de la cual los objetos heredan
comportamiento dentro de una jerarquía de clases.
• Polimorfismo - Propiedad de una operación mediante la cual puede ser
aplicada a distintos tipos de objetos.
En bases de datos orientadas a objetos, los usuarios pueden definir operaciones
sobre los datos como parte de la definición de la base de datos. Una operación
(llamada función) se especifica en dos partes. La interfaz (o signatura) de una
operación incluye el nombre de la operación y los tipos de datos de sus
argumentos (o parámetros). La implementación (o método) de la operación se
especifica separadamente y puede modificarse sin afectar la interfaz. Los
programas de aplicación de los usuarios pueden operar sobre los datos invocando
a dichas operaciones a través de sus nombres y argumentos, sea cual sea la
forma en la que se han implementado. Esto podría denominarse independencia
entre programas y operaciones.
5.9.2.7. Bases de datos documentales.
Permiten la indexación a texto completo, y en líneas generales realizar búsquedas
más potentes. Tesaurus es un sistema de índices optimizado para este tipo de
bases de datos.
95
5.9.2.8. Bases de datos deductivas.
Un sistema de una base de datos deductiva , es un sistema de base de datos
pero con la diferencia de que permite hacer deducciones a través de inferencias.
Se basa principalmente en reglas y hechos que son almacenados en la base de
datos. También las bases de datos deductivas son llamadas base de datos
lógica , a raíz de que se basa en lógica matemática.
5.9.3. Gestión de bases de datos distribuida.
La base de datos está almacenada en varias computadoras conectadas en red.
Surgen debido a la existencia física de organismos descentralizados. Esto les da
la capacidad de unir las bases de datos de cada localidad y acceder así a distintas
universidades, sucursales de tiendas, etcétera.
5.10. APACHE
El servidor HTTP Apache es un servidor web HTTP de código abierto para
plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que
implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su
desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3,
pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf
eligió ese nombre porque quería que tuviese la connotación de algo que es firme y
enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto
96
se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su
grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado
los primeros ingenieros de internet. Además Apache consistía solamente en un
conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server
(un servidor "parcheado").
El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la
Apache Software Foundation.
Apache presenta entre otras características altamente configurables, bases de
datos de autenticación y negociado de contenido, pero fue criticado por la falta de
una interfaz gráfica que ayude en su configuración.
Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor
HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el
servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha
sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas
históricas y de uso diario proporcionadas por Netcraft).
La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan
sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin
embargo, algunas se pueden accionar remotamente en ciertas situaciones, o
explotar por los usuarios locales malévolos en las disposiciones de recibimiento
compartidas que utilizan PHP como módulo de Apache.
97
5.10.1. Ventajas.
• Modular
• Open source
• Multi-plataforma
• Extensible
• Popular (fácil conseguir ayuda/soporte)
5.10.2. Módulos.
La arquitectura del servidor Apache es muy modular. El servidor consta de una
sección core y diversos módulos que aportan mucha de la funcionalidad que
podría considerarse básica para un servidor web. Algunos de estos módulos son:
• mod_ssl - Comunicaciones Seguras vía TLS.
• mod_rewrite - reescritura de direcciones (generalmente utilizado para
transformar páginas dinámicas como php en páginas estáticas html para
así engañar a los navegantes o a los motores de búsqueda en cuanto a
cómo fueron desarrolladas estas páginas).
• mod_dav - Soporte del protocolo WebDAV (RFC 2518).
• mod_deflate - Compresión transparente con el algoritmo deflate del
contenido enviado al cliente.
• mod_auth_ldap - Permite autentificar usuarios contra un servidor LDAP.
98
• mod_proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat
de páginas dinámicas en Java (servlets y JSP).
El servidor de base puede ser extendido con la inclusión de módulos externos
entre los cuales se encuentran:
• mod_perl - Páginas dinámicas en Perl.
• mod_php - Páginas dinámicas en PHP.
• mod_python - Páginas dinámicas en Python.
• mod_rexx - Páginas dinámicas en REqXX y Object REXX.
• mod_ruby - Páginas dinámicas en Ruby.
• mod_aspdotnet - Páginas dinámicas en .NET de Microsoft (Módulo
retirado) .
• mod_mono - Páginas dinámicas en Mono
• mod_security - Filtrado a nivel de aplicación, para seguridad.
5.10.3. Uso.
Apache es usado primariamente para enviar páginas web estáticas y dinámicas en
la World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como
ambiente de implantación a Apache, o que utilizarán características propias de
este servidor web.
Apache es el componente de servidor web en la popular plataforma de
aplicaciones LAMP, junto a MySQL y los lenguajes de programación
PHP/Perl/Python (y ahora también Ruby).
99
Este servidor web es redistribuido como parte de varios paquetes propietarios de
software, incluyendo la base de datos Oracle y el IBM WebSphere application
server. Mac OS X integra apache como parte de su propio servidor web y como
soporte de su servidor de aplicaciones WebObjects. Es soportado de alguna
manera por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es
incluido con Novell NetWare 6.5, donde es el servidor web por defecto, y en
muchas distribuciones Linux.
Apache es usado para muchas otras tareas donde el contenido necesita ser
puesto a disposición en una forma segura y confiable. Un ejemplo es al momento
de compartir archivos desde una computadora personal hacia Internet. Un usuario
que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos
en la raíz de documentos de Apache, desde donde pueden ser compartidos.
Los programadores de aplicaciones web a veces utilizan una versión local de
Apache en orden de previsualizar y probar código mientras éste es desarrollado.
Microsoft Internet Information Services (IIS) es el principal competidor de Apache,
así como Sun Java System Web Server de Sun Microsystems y un anfitrión de
otras aplicaciones como Zeus Web Server. Algunos de los más grandes sitios web
del mundo están ejecutándose sobre Apache. La capa frontal (front end) del motor
de búsqueda Google está basado en una versión modificada de Apache,
denominada Google Web Server (GWS).
100
5.10.4. Configuración.
La mayor parte de la configuración se realiza en el fichero apache2.conf o
httpd.conf, según el sistema donde esté corriendo. Cualquier cambio en éste
archivo requiere reiniciar el servidor, o forzar la lectura de los archivos de
configuración nuevamente.
5.10.5. Licencia.
La licencia de software bajo la cual el software de la fundación Apache es
distribuido es una parte distintiva de la historia de Apache HTTP Server y de la
comunidad de código abierto. La Licencia Apache permite la distribución de
derivados de código abierto y cerrado a partir de su código fuente original.
La Free Software Foundation no considera a la Licencia Apache como compatible
con la versión 2 de la GNU General Public License (GPL), en la cual el software
licenciado bajo la Apache License no puede ser integrado con software distribuido
bajo la GPL:
Este es software libre pero es incompatible con la GPL. La Apache Software
License es incompatible con la GPL porque tiene un requerimiento específico que
no está incluido en la GPL: tiene ciertos casos de terminación de patentes que la
GPL no requiere. No se considera que dichos casos de terminación de patentes
son inherentemente una mala idea, pero a pesar de ello son incompatibles con la
GNU GPL.
101
Sin embargo, la versión 3 de la GPL incluye una provisión (Sección 7e) que le
permite ser compatible con licencias que tienen claúsulas de represalia de
patentes, incluyendo a la Licencia Apache.
El nombre Apache es una marca registrada y puede ser sólo utilizada con el
permiso expreso del dueño de la marca.
5.11. ADOBE DREAMWEAVER (DW).
Es una aplicación en forma de estudio (Basada por supuesto en la forma de
estudio de Adobe Flash®) pero con más parecido a un taller destinado para la
construcción y edición de sitios y aplicaciones Web basados en estándares.
Creado inicialmente por Macromedia (actualmente producido por Adobe Systems).
Es el programa de este tipo más utilizado en el sector del diseño y la
programación web, por sus funcionalidades, su integración con otras herramientas
como Adobe Flash y, recientemente, por su soporte de los estándares del World
Wide Web Consortium. Su principal competidor es Microsoft Expression Web y
tiene soporte tanto para edición de imágenes como para animación a través de su
integración con otras herramientas
Hasta la versión MX, fue duramente criticado por su escaso soporte de los
estándares de la web, ya que el código que generaba era con frecuencia sólo
válido para Internet Explorer, y no validaba como HTML estándar. Esto se ha ido
corrigiendo en las versiones recientes.
Se vende como parte de la suite Adobe Creative Suite 3 y 4
102
La gran base de este editor sobre otros es su gran poder de ampliación y
personalización del mismo, puesto que en este programa, sus rutinas (como la de
insertar un hipervinculo, una imagen o añadir un comportamiento) están hechas en
Javascript-C, lo que le ofrece una gran flexibilidad en estas materias. Esto hace
que los archivos del programa no sean instrucciones de C++ sino, rutinas de
Javascript que hace que sea un programa muy fluido, que todo ello hace, que
programadores y editores web hagan extensiones para su programa y lo ponga a
su gusto.
Las versiones originales de la aplicación se utilizaban como simples editores
WYSIWYG. Sin embargo, versiones más recientes soportan otras tecnologías web
como CSS, JavaScript y algunos Framework del lado servidor.
Dreamweaver ha tenido un gran éxito desde finales de los 90 y actualmente
mantiene el 90% del mercado de editores HTML. Esta aplicación está disponible
tanto para la platafoma MAC como para Windows, aunque también se puede
ejecutar en plataformas basadas en UNIX utilizando programas que implementan
las API's de Windows, tipo Wine.
Como editor WYSIWYG que es, Dreamweaver oculta el código HTML de cara al
usuario, haciendo posible que alguien no entendido pueda crear páginas y sitios
web fácilmente.
Algunos desarrolladores web critican esta propuesta ya que crean páginas HTML
más largas de lo que solían ser al incluir mucho código inútil, lo cual va en
detrimento de la ejecución de las páginas en el navegador web. Esto puede ser
especialmente cierto ya que la aplicación facilita en exceso el diseño de las
páginas mediante tablas. Además, algunos desarrolladores web han criticado
Dreamweaver en el pasado porque creaba código que no cumplía con los
estándares del consorcio Web (W3C).
103
No obstante, Adobe ha aumentado el soporte CSS y otras maneras de diseñar
páginas sin tablas en versiones posteriores de la aplicación.
Dreamweaver permite al usuario utilizar la mayoría de los navegadores Web
instalados en su computador para previsualizar las páginas web. También dispone
de herramientas de administración de sitios dirigidas a principiantes como, por
ejemplo, la habilidad de encontrar y reemplazar líneas de texto y código por
cualquier tipo de parámetro especificado, hasta el sitio web completo.
El panel de comportamientos también permite crear JavaScript básico sin
conocimientos de código.
Con la llegada de la versión MX, Macromedia incorporó herramientas de creación
de contenido dinámico en Dreamweaver. En lo fundamental de las herramientas
HTML WYSIWYG, también permite la conexión a Bases de Datos como MySQL y
Microsoft Access, para filtrar y mostrar el contenido utilizando tecnología de script
como, por ejemplo, ASP (Active Server Pages), ASP.NET, ColdFusion, JSP
(JavaServer Pages),PHP sin necesidad de tener experiencia previa en
programación.
Un aspecto de alta consideración de Dreamweaver es su arquitectura extensible.
Es decir, permite el uso de "Extensiones". Las extensiones, tal y como se
conocen, son pequeños programas, que cualquier desarrollador web puede
escribir (normalmente en HTML y Javascript) y que cualquiera puede descargar e
instalar, ofreciendo así funcionalidades añadidas a la aplicación. Dreamweaver
goza del apoyo de una gran comunidad de desarrolladores de extensiones que
hacen posible la disponibilidad de extensiones gratuitas y de pago para la mayoría
de las tareas de desarrollo web, que van desde simple efectos rollover hasta
completas cartas de compra.
104
También podría decirse, que para un diseño más rápido y a la vez fácil podría
complementarse con fireworks en donde podría uno diseñar un menú o para otras
creaciones de imágenes (gif web, gif websnap, gif adaptable,jpeg calidad superior,
jpeg archivo más pequeño, gif animado websnap) para un sitio web y después
exportar la imagen creada y así utilizarla como una sola, en donde ya llevara los
vínculos a un dicho sitio en especifico que uno le haya dado.(MRR - U.P.C.)
Nota : Su nombre en español significa "tejesueños o tejedor de sueños".
5.11.1. Características.
Además de sus capacidades WYSIWYG, tiene las funciones típicas de un editor
de código fuente para la web:
• Un administrador de sitios, para agrupar los archivos según el proyecto
al que pertenezcan.
• Un cliente FTP integrado, que permite subir los archivos editados
inmediatamente al sitio en Internet.
• Función de autocompletar y resaltado de la sintaxis para instrucciones
en HTML y lenguajes de programación como PHP, JSP o ASP.
105
5.11.2. Historial de versiones.
• Dreamweaver 1.0 (Lanzado en diciembre de 1997; Dreamweaver 1.2
marzo de 1998)
• Dreamweaver 2.0 (Lanzado en diciembre de 1998)
• Dreamweaver 3.0 (Lanzado en diciembre de 1999)
• Dreamweaver UltraDev 1.0 (Lanzado en junio de 2000)
• Dreamweaver 4.0 (Lanzado en diciembre de 2000)
• Dreamweaver UltraDev 4.0 (Lanzado en diciembre de 2000)
• Dreamweaver MX [Numero interno de versión: 6.0] (Lanzado en mayo
de 2002)
• Dreamweaver MX 2004 [Numero interno de versión: 7.0] (Lanzado el 10
de septiembre en 2003)
• Dreamweaver 8 (Lanzado el 13 de septiembre de 2005)
• Dreamweaver CS3 (Lanzado el 16 de abril de 2007)
• Dreamweaver CS4 (Lanzado el 23 de septiembre de 2008)
5.12. LENGUAJE DE PROGRAMACIÓN.
Con la aparición de las computadoras desaparecen las secuencias de posiciones
de llaves mecánicas que debían desconectarse para obtener una acción
determinada, una llave conectada era un 1 y una llave desconectada era un 0.
Una sucesión de llaves en cualquiera de sus dos posiciones definía una secuencia
de ceros y unos (por ejemplo: 0100011010011101...) que venía a representar una
106
instrucción o un conjunto de instrucciones (programa) para el computador (o
computador) en el que se estaba trabajando. A esta primera forma de especificar
programas para una computadora se la denomina lenguaje máquina o código
máquina.
La necesidad de recordar secuencias de programación para las acciones usuales
llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar),
SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia
de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones
se le llamó lenguaje ensamblador.
Posteriormente aparecieron diferentes lenguajes de programación, los cuales
reciben su denominación porque tienen una estructura sintáctica similar a los
lenguajes escritos por los humanos
5.12.1. Concepto.
Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y
semánticas que definen su estructura y el significado de sus elementos y
expresiones. Es utilizado para controlar el comportamiento físico y lógico de una
máquina.
Aunque muchas veces se usan los términos 'lenguaje de programación' y 'lenguaje
informático' como si fuesen sinónimos, no tiene por qué ser así, ya que los
lenguajes informáticos engloban a los lenguajes de programación y a otros más,
como, por ejemplo, el HTML (lenguaje para el marcado de páginas web que no es
propiamente un lenguaje de programación).
107
Un lenguaje de programación permite a uno o más programadores especificar de
manera precisa sobre qué datos debe operar una computadora, cómo estos datos
deben ser almacenados o transmitidos y qué acciones debe tomar bajo una
variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta
estar relativamente próximo al lenguaje humano o natural, tal como sucede con el
lenguaje Léxico. Una característica relevante de los lenguajes de programación es
precisamente que más de un programador puedan tener un conjunto común de
instrucciones que puedan ser comprendidas entre ellos para realizar la
construcción del programa de forma colaborativa.
Los procesadores usados en las computadoras son capaces de entender y actuar
según lo indican programas escritos en un lenguaje fijo llamado lenguaje de
máquina. Todo programa escrito en otro lenguaje puede ser ejecutado de dos
maneras:
• Mediante un programa que va adaptando las instrucciones conforme son
encontradas. A este proceso se lo llama interpretar y a los programas
que lo hacen se los conoce como intérpretes.
• Traduciendo este programa, al programa equivalente escrito en lenguaje
de máquina. A ese proceso se lo llama compilar y al programa traductor
se le denomina compilador.
5.12.2. Clasificación de los lenguajes de programac ión.
Los lenguajes de programación se pueden clasificar atendiendo a varios criterios:
• Según el nivel de abstracción
• Según el paradigma de programación que poseen cada uno de ellos
108
5.12.3. Según su nivel de abstracción.
5.12.3.1. Lenguajes de máquina.
Están escritos en lenguajes directamente legibles por la máquina (computadora),
ya que sus instrucciones son cadenas binarias (0 y 1). Da la posibilidad de cargar
(transferir un programa a la memoria) sin necesidad de traducción posterior lo que
supone una velocidad de ejecución superior, solo que con poca fiabilidad y
dificultad de verificar y poner a punto los programas.
5.12.3.2. Lenguajes de bajo nivel.
Los lenguajes de bajo nivel son lenguajes de programación que se acercan al
funcionamiento de una computadora. El lenguaje de más bajo nivel por excelencia
es el código máquina. A éste le sigue el lenguaje ensamblador, ya que al
programar en ensamblador se trabajan con los registros de memoria de la
computadora de forma directa.
5.12.3.3. Lenguajes de medio nivel.
Hay lenguajes de programación que son considerados por algunos expertos como
lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas
109
características que los acercan a los lenguajes de bajo nivel pero teniendo, al
mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al
humano y, por tanto, de alto nivel.
5.12.3.4. Lenguajes de alto nivel.
El lenguaje de alto nivel es aquel que se aproxima más al lenguaje natural humano
que al lenguaje binario de las computadoras, el que se conoce como lenguaje de
bajo nivel. Su función principal radica en que a partir de su desarrollo, existe la
posibilidad de que se pueda utilizar el mismo programa en distintas máquinas, es
decir que es independiente de un hardware determinado. La única condición es
que la PC tenga un programa conocido como traductor o compilador, que lo
traduce al lenguaje específico de cada máquina. Y además, al utilizar palabras del
lenguaje humano (por lo general el inglés) es más práctico y fácil de manipular
para el programador de manera que no corre tantos riesgos de equivocarse como
si es más factible de caer en el error con el binario. De esta manera, el
programador puede concentrarse más en el programa en sí que en el lenguaje y,
por otra parte, se reducen los tiempos de creación del programa, incluso en caso
de que tenga que hacer modificaciones, son mucho más fáciles de hacer. Un
punto en contra que tiene este tipo de lenguaje de tercera generación es que en la
actualidad existe gran diversidad de ellos (PASCAL, BASIC, FORTRAN, C++,
COBOL, ALGOL, entre muchos otros).
110
5.12.4. Según el paradigma de programación.
Un paradigma de programación representa un enfoque particular o filosofía para la
construcción del software. No es mejor uno que otro, sino que cada uno tiene
ventajas y desventajas. Dependiendo de la situación un paradigma resulta más
apropiado que otro.
Atendiendo al paradigma de programación, se pueden clasificar los lenguajes en :
• El paradigma imperativo o por procedimientos es considerado el más
común y está representado, por ejemplo, por el C o por BASIC.
• El paradigma funcional está representado por la familia de lenguajes
LISP (en particular Scheme), ML o Haskell.
• El paradigma lógico, un ejemplo es PROLOG.
• El paradigma orientado a objetos. Un lenguaje completamente
orientado a objetos es Smalltalk.
Nota : La representación orientada a objetos mejora la estructura de los datos y
por lo tanto se ha aplicado a diferentes paradigmas como Redes de Petri,
Imperativo Secuencial, Lógica de Predicados, Funcional, etc. No obstante, la
manipulación no queda fundamentalmente afectada y por lo tanto el paradigma
inicial tampoco a pesar de ser re-orientado a objetos.
Si bien puede seleccionarse la forma pura de estos paradigmas a la hora de
programar, en la práctica es habitual que se mezclen, dando lugar a la
programación multiparadigma.
Actualmente el paradigma de programación más usado debido a múltiples
ventajas respecto a sus anteriores, es la programación orientada a objetos.
111
5.12.4.1. Lenguajes imperativos.
Son los lenguajes que dan instrucciones a la computadora, es decir, órdenes.
5.12.4.2. Lenguajes funcionales.
Paradigma Funcional: este paradigma concibe a la computación como la
evaluación de funciones matemáticas y evita declarar y cambiar datos. En otras
palabras, hace hincapié en la aplicación de las funciones y composición entre
ellas, más que en los cambios de estados y la ejecución secuencial de comandos
(como lo hace el paradigma procedimental). Permite resolver ciertos problemas de
forma elegante y los lenguajes puramente funcionales evitan los efectos
secundarios comunes en otro tipo de programaciones.
5.12.4.3. Lenguajes lógicos.
La computación lógica direcciona métodos de procesamiento basados en el
razonamiento formal. Los objetos de tales razonamientos son "hechos" o reglas "if
then". Para computar lógicamente se utiliza un conjunto de tales estamentos para
calcular la verdad o falsedad de ese conjunto de estamentos. Un estamento es un
hecho si sus tuplas verifican una serie de operaciones.
112
Un hecho es una expresión en la que algún objeto o conjunto de objetos satisface
una relación específica. Una tupla es una lista inmutable. Una tupla no puede
modificarse de ningún modo después de su creación.
Un regla if then es un estamento que informa acerca de conjuntos de tuplas o
estamentos relacionados que pueden predecir si otras tuplas satisfacerán otras
relaciones.
Un estamento que es probado verdadero como resultado de un proceso se dice
que es una inferencia del conjunto original. Se trata por tanto de una descripción
de cómo obtener la veracidad de un estamento dado que unas reglas son
verdaderas.
La computación lógica está por tanto relacionada con la automatización de algún
conjunto de métodos de inferencia.
5.12.4.4. Lenguajes orientados a objetos.
La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es
un paradigma de programación que usa objetos y sus interacciones para diseñar
aplicaciones y programas de computadora. Está basado en varias técnicas,
incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se
popularizó a principios de la década de 1990. Actualmente son muchos los
lenguajes de programación que soportan la orientación a objetos.
113
5.12.5. Implementación.
La implementación de un lenguaje es la que provee una manera de que se ejecute
un programa para una determinada combinación de software y hardware. Existen
básicamente dos maneras de implementar un lenguaje: Compilación e
interpretación. Compilación es la traducción a un código que pueda utilizar la
máquina. Los programas traductores que pueden realizar esta operación se
llaman compiladores. Éstos, como los programas ensambladores avanzados,
pueden generar muchas líneas de código de máquina por cada proposición del
programa fuente.
Se puede también utilizar una alternativa diferente de los compiladores para
traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en
forma permanente el código objeto que se produce durante la compilación para
utilizarlo en una ejecución futura, el programador sólo carga el programa fuente en
la computadora junto con los datos que se van a procesar. A continuación, un
programa intérprete, almacenado en el sistema operativo del disco, o incluido de
manera permanente dentro de la máquina, convierte cada proposición del
programa fuente en lenguaje de máquina conforme vaya siendo necesario durante
el procesamiento de los datos. El código objeto no se graba para utilizarlo
posteriormente.
La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y
traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de
los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver a ser
interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea
más lento en tiempo de ejecución (porque se va revisando el código en tiempo de
ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar
114
compilando a cada momento el código completo). El intérprete elimina la
necesidad de realizar una compilación después de cada modificación del
programa cuando se quiere agregar funciones o corregir errores; pero es obvio
que un programa objeto compilado con antelación deberá ejecutarse con mucha
mayor rapidez que uno que se debe interpretar a cada paso durante una ejecución
del código.
5.13. SERVIDOR WEB.
Un servidor web es un programa que implementa el protocolo HTTP (HyperText
Transfer Protocol). Este protocolo pertenece a la capa de aplicación del modelo
OSI y está diseñado para transferir lo que llamamos hipertextos, páginas web o
páginas HTML (HyperText Markup Language): textos complejos con enlaces,
figuras, formularios, botones y objetos incrustados como animaciones o
reproductores de música.
Es un programa que se ejecuta continuamente en un computador (también se
emplea el término para referirse al computador que lo ejecuta), manteniéndose a
la espera de peticiones por parte de un cliente (un navegador web) y que
responde a estas peticiones adecuadamente, mediante una página web que se
exhibirá en el navegador o mostrando el respectivo mensaje si se detectó algún
error.
Instalar un servidor web en nuestro PC nos permitirá, entre otras cosas, poder
montar nuestra propia página web sin necesidad de contratar hosting, probar
nuestros desarrollos vía local o acceder a los archivos de nuestro equipo desde un
115
PC remoto (aunque para esto existen otras opciones, como utilizar un servidor
FTP). El problema de usar nuestro computador como servidor web es que
conviene tenerlo encendido permanentemente (para que esté accesible de forma
continua como la mayoría de los sitios webs), con el consiguiente coste debido al
consumo de electricidad (conviene tener en cuenta que hay alojamientos web
gratuitos, incluso sin publicidad y con interesantes funciones).
Sin embargo, el hecho de que HTTP y HTML estén íntimamente ligados no debe
dar lugar a confundir ambos términos. HTML es un lenguaje de marcas y HTTP es
un protocolo.
Un servidor web se mantiene a la espera de peticiones HTTP por parte de un
cliente HTTP que solemos conocer como navegador. El cliente realiza una petición
al servidor y éste le responde con el contenido que el cliente solicita. A modo de
ejemplo, al teclear www.google.com.co en nuestro navegador, éste realiza una
petición HTTP al servidor de dicha dirección. El servidor responde al cliente
enviando el código HTML de la página; el cliente, una vez recibido el código, lo
interpreta y lo exhibe en pantalla. Como vemos con este ejemplo, el cliente es el
encargado de interpretar el código HTML, es decir, de mostrar las fuentes, los
colores y la disposición de los textos y objetos de la página; el servidor tan sólo se
limita a transferir el código de la página sin llevar a cabo ninguna interpretación de
la misma.
Sobre el servicio web clásico podemos disponer de aplicaciones web. Éstas son
porciones de código que se ejecutan cuando se realizan ciertas peticiones o
respuestas HTTP. Hay que distinguir entre:
• Aplicaciones en el lado del cliente: el cliente web es el encargado de
ejecutarlas en la máquina del usuario. Son las aplicaciones tipo Java o
Javascript: el servidor proporciona el código de las aplicaciones al
116
cliente y éste, mediante el navegador, las ejecuta. Es necesario, por
tanto, que el cliente disponga de un navegador con capacidad para
ejecutar aplicaciones (también llamadas scripts). Comúnmente, los
navegadores permiten ejecutar aplicaciones escritas en lenguaje
javascript y java, aunque pueden añadirse más lenguajes mediante el
uso de plugins.
• Aplicaciones en el lado del servidor: el servidor web ejecuta la
aplicación; ésta, una vez ejecutada, genera cierto código HTML; el
servidor toma este código recién creado y lo envía al cliente por medio
del protocolo HTTP.
Las aplicaciones de servidor muchas veces suelen ser la mejor opción para
realizar aplicaciones web. La razón es que, al ejecutarse ésta en el servidor y no
en la máquina del cliente, éste no necesita ninguna capacidad añadida, como sí
ocurre en el caso de querer ejecutar aplicaciones javascript o java. Así pues,
cualquier cliente dotado de un navegador web básico puede utilizar este tipo de
aplicaciones.
Algunos conceptos relacionados con las aplicaciones web son:
• PHP
• ASP
• Perl
• Python/WSGI
• CGI
• .NET
• JSP (Tecnología Java )
• CF (Adobe Coldfusion)
Algunos servidores web importantes son:
117
• Apache
• IIS
• Cherokee
Otros servidores, más simples pero más rápidos, son:
• lighttpd
• thttpd
5.14. NAVEGADOR WEB.
Figura 3. Uso de navegadores web, actualizado a Septiembre del 2008.
Un navegador , navegador red o navegador web (del inglés, web browser) es un
programa que permite visualizar la información que contiene una página web (ya
118
esta se encuentra alojada en un servidor dentro de la World Wide Web o en uno
local).
El navegador interpreta el código, HTML generalmente, en el que está escrita la
página web y lo presenta en pantalla permitiendo al usuario interactuar con su
contenido y navegar hacia otros lugares de la red mediante enlaces o
hipervínculos.
La funcionalidad básica de un navegador web es permitir la visualización de
documentos de texto, posiblemente con recursos multimedia incrustados. Los
documentos pueden estar ubicados en la computadora en donde está el usuario,
pero también pueden estar en cualquier otro dispositivo que esté conectado a la
computadora del usuario o a través de Internet, y que tenga los recursos
necesarios para la transmisión de los documentos (un software servidor web).
Tales documentos, comúnmente denominados páginas web, poseen hipervínculos
que enlazan una porción de texto o una imagen a otro documento, normalmente
relacionado con el texto o la imagen.
El seguimiento de enlaces de una página a otra, ubicada en cualquier
computadora conectada a la Internet, se llama navegación; que es de donde se
origina el nombre de navegador. Por otro lado, hojeador es una traducción literal
del original en inglés, browser, aunque su uso es minoritario.
119
5.14.1. Historia.
El primer navegador, desarrollado en el CERN a finales de 1990 y principios de
1991 por Tim Berners-Lee, era bastante sofisticado y gráfico, pero sólo funcionaba
en estaciones NeXT.
El navegador Mosaic, que funcionaba inicialmente en entornos UNIX sobre X11,
fue el primero que se extendió debido a que pronto el NCSA preparó versiones
para Windows y Macintosh. Sin embargo, poco más tarde entró en el mercado
Netscape Navigator que rápidamente superó en capacidades y velocidad a
Mosaic.
El navegador Mosaic tiene la ventaja de funcionar en casi todos los UNIX, así
como en entornos Windows.
Figura 4. Estimación del uso de navegadores en el período 1996-2009
120
Internet Explorer (anteriormente Spyglass Mosaic) fue la apuesta tardía de
Microsoft para entrar en el mercado y hoy en día ha conseguido desbancar al
Netscape Navigator entre los usuarios de Windows. En los últimos años se ha
vivido una auténtica explosión del número de navegadores, que ofrecen cada vez
mayor integración con el entorno de ventanas en el que se ejecutan. Netscape
Communications Corporation liberó el código fuente de su navegador, naciendo
así el proyecto Mozilla.
Finalmente Mozilla fue reescrito desde cero tras decidirse a desarrollar y usar
como base un nuevo conjunto de widgets multiplataforma basado en XML llamado
XUL y esto hizo que tardara bastante más en aparecer de lo previsto inicialmente,
apareciendo una versión 1.0 de gran calidad y para muchísimas plataformas a la
vez el 5 de junio del 2002.
A finales de 2004 aparece en el mercado Firefox, una rama de desarrollo de
Mozilla que pretende hacerse con parte del mercado de Internet Explorer. Se trata
de un navegador más ligero que su hermano mayor.
5.14.2. Funcionamiento de los navegadores.
La comunicación entre el servidor web y el navegador se realiza mediante el
protocolo HTTP, aunque la mayoría de los hojeadores soportan otros protocolos
como FTP, Gopher, y HTTPS (una versión cifrada de HTTP basada en Secure
Socket Layer o Capa de Conexión Segura (SSL)).
La función principal del navegador es descargar documentos HTML y mostrarlos
en pantalla. En la actualidad, no solamente descargan este tipo de documentos
121
sino que muestran con el documento sus imágenes, sonidos e incluso vídeos
streaming en diferentes formatos y protocolos. Además, permiten almacenar la
información en el disco o crear marcadores (bookmarks) de las páginas más
visitadas.
Algunos de los navegadores web más populares se incluyen en lo que se
denomina una Suite. Estas Suite disponen de varios programas integrados para
leer noticias de Usenet y correo electrónico mediante los protocolos NNTP, IMAP y
POP.
Los primeros navegadores web sólo soportaban una versión muy simple de HTML.
El rápido desarrollo de los navegadores web propietarios condujo al desarrollo de
dialectos no estándares de HTML y a problemas de interoperabilidad en la web.
Los más modernos (como Amaya, Mozilla, Netscape, Opera y versiones recientes
de Internet Explorer) soportan los estándares HTML y XHTML (comenzando con
HTML 4.01, los cuales deberían visualizarse de la misma manera en todos ellos).
Los estándares web son publicados por el World Wide Web Consortium.
5.14.3. Uso actual de navegadores web.
Actualmente el navegador más utilizado en el mundo es Internet Explorer en su
versión 7, algunas empresas indican que esta ventaja se debe a que viene
integrado con Windows, detrás de éste está el navegador de Mozilla Firefox, el
cual se está popularizando cada vez más. Firefox es un competidor serio al
producto de Microsoft que ya alcanza una quinta parte de la cuota total. Luego le
sigue la versión 6 de Internet Explorer, con una cuota de poco menos de 19,21%
122
(si se juntan todas las versiones de Internet Explorer se obtendría un 67% de
cuota siendo, por lejos, la serie de navegadores más usada). Safari con más del
8% es otro navegador en rápida progresión. Existen también los navegadores,
Netscape Navigator, Opera y Chrome los cuales tienen un uso de menos del 2%
en el mercado. Además existe Konqueror del proyecto KDE en GNU/Linux, y
Epiphany el navegador oficial de Gnome.
5.14.4. Ejemplos de navegadores web.
Existe una lista detallada de navegadores, motores de renderización y otros temas
asociados en la categoría asociada.
• Amaya del W3C
• Internet Explorer y derivados:
o Avant Browser
o Maxthon
o G-Browser
o Slim Browser
o AOL Explorer
• Mozilla (Gecko) y derivados:
o Mozilla Firefox
o Iceweasel
o Beonex
o Navegador web IBM para OS/2
o Flock
o Galeon (Proyecto abandonado)
123
o Skipstone
o K-Meleon para Windows
o Camino para Mac OS X
• Konqueror (KHTML)
o Abrowse
• Basado en WebKit
o Safari
o Google Chrome
o Epiphany
• Netscape Navigator (hasta la versión 4.xx)
• Opera
• iCab
• OmniqWeb
• Dillo
• IBrowse
• AWeb
• Voyager
• Espial Escape
• HotJava
• IEs4Linux
• SpaceTime
Navegadores web basados en texto:
• Links
• Lynx
• Netrik
• w3m
124
Primeros navegadores (que ya no se están desarrollando):
• Cello
• CyberDog
• MidasWWW
• Mosaic
o Spyglass Mosaic
• ViolaWWW
• OHT-Erwise
5.15. APLICACIÓN WEB.
Figura 5. Vista de Portal - Aplicativo Horde's.
En la ingeniería software se denomina aplicación web a aquellas aplicaciones
que los usuarios pueden utilizar accediendo a un servidor web a través de Internet
o de una intranet mediante un navegador. En otras palabras, es una aplicación
software que se codifica en un lenguaje soportado por los navegadores web
125
(HTML, JavaScript, Java, asp.net, etc.) en la que se confía la ejecución al
navegador.
Las aplicaciones web son populares debido a lo práctico del navegador web como
cliente ligero, así como a la facilidad para actualizar y mantener aplicaciones web
sin distribuir e instalar software a miles de usuarios potenciales. Existen
aplicaciones como los webmails, wikis, weblogs, tiendas en línea.
Es importante mencionar que una página Web puede contener elementos que
permiten una comunicación activa entre el usuario y la información. Esto permite
que el usuario acceda a los datos de modo interactivo, gracias a que la página
responderá a cada una de sus acciones, como por ejemplo rellenar y enviar
formularios, participar en juegos diversos y acceder a gestores de base de datos
de todo tipo.
En los primeros tiempos de la computación cliente-servidor, cada aplicación tenía
su propio programa cliente que servía como interfaz de usuario que tenía que ser
instalado por separado en cada computador personal de cada usuario. El cliente
realizaba peticiones a otro programa -el servidor- que le daba respuesta. Una
mejora en el servidor, como parte de la aplicación, requería normalmente una
mejora de los clientes instalados en cada computador personal, añadiendo un
coste de soporte técnico y disminuyendo la productividad.
A diferencia de lo anterior, las aplicaciones web generan dinámicamente una serie
de páginas en un formato estándar, como HTML o XHTML, que soportan por los
navegadores web comunes. Se utilizan lenguajes interpretados en el lado del
cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de
usuario. Generalmente cada página web en particular se envía al cliente como un
documento estático, pero la secuencia de páginas ofrece al usuario una
126
experiencia interactiva. Durante la sesión, el navegador web interpreta y muestra
en pantalla las páginas, actuando como cliente para cualquier aplicación web.
5.15.1. Interfaz.
Figura 6. Interfaz web – mozilla-europe.org
Las interfaces web tienen ciertas limitaciones en las funcionalidades que se
ofrecen al usuario. Hay funcionalidades comunes en las aplicaciones de escritorio
como dibujar en la pantalla o arrastrar-y-soltar que no están soportadas por las
tecnologías web estándar. Los desarrolladores web generalmente utilizan
lenguajes interpretados o script en el lado del cliente para añadir más
funcionalidades, especialmente para ofrecer una experiencia interactiva que no
requiera recargar la página cada vez (lo que suele resultar molesto a los usuarios).
Recientemente se han desarrollado tecnologías para coordinar estos lenguajes
con tecnologías en el lado del servidor, como por ejemplo PHP.
127
Como ejemplo, AJAX, es una técnica de desarrollo web que usa una combinación
de varias tecnologías.
5.15.2. Consideraciones técnicas.
Una ventaja significativa es que las aplicaciones web deberían funcionar igual
independientemente de la versión del sistema operativo instalado en el cliente. En
vez de crear clientes para Windows, Mac OS X, GNU/Linux, y otros sistemas
operativos, la aplicación web se escribe una vez y se ejecuta igual en todas
partes. Sin embargo, hay aplicaciones inconsistentes escritas con HTML, CSS,
DOM y otras especificaciones para navegadores web que pueden causar
problemas en el desarrollo y soporte de las aplicaciones web. Adicionalmente, la
posibilidad de los usuarios de personalizar muchas de las características de la
interfaz (tamaño y color de fuentes, tipos de fuentes, inhabilitar Javascript) puede
interferir con la consistencia de la aplicación web.
Otra aproximación es utilizar Adobe Flash Player o Java applets para desarrollar
parte o toda la interfaz de usuario. Como casi todos los navegadores incluyen
soporte para estas tecnologías (usualmente por medio de plug-ins), las
aplicaciones basadas en Flash o Java pueden ser implementadas con
aproximadamente la misma facilidad. Dado que ignoran las configuraciones de los
navegadores, estas tecnologías permiten más control sobre la interfaz, aunque las
incompatibilidades entre implementaciones Flash o Java puedan crear nuevas
complicaciones. Por las similitudes con una arquitectura cliente-servidor, con un
cliente "no ligero", existen discrepancias sobre el hecho de llamar a estos sistemas
128
“aplicaciones web”; un término alternativo es “Aplicación Enriquecida de Internet” -
RIA.
5.15.3. Estructura de las aplicaciones web.
Aunque existen muchas variaciones posibles, una aplicación web está
normalmente estructurada como una aplicación de tres-capas. En su forma más
común, el navegador web ofrece la primera capa y un motor capaz de usar alguna
tecnología web dinámica (ejemplo: PHP, Java Servlets o ASP, ASP.NET, CGI,
ColdFusion, embPerl, Python (programming language) o Ruby on Rails) constituye
la capa intermedia. Por último, una base de datos constituye la tercera y última
capa.
El navegador web manda peticiones a la capa intermedia que ofrece servicios
valiéndose de consultas y actualizaciones a la base de datos y a su vez
proporciona una interfaz de usuario.
5.15.4. Uso empresarial.
Una estrategia que está emergiendo para las empresas proveedoras de software
consiste en proveer acceso vía web al software. Para aplicaciones previamente
distribuidas, como las aplicaciones de escritorio, se puede optar por desarrollar
una aplicación totalmente nueva o simplemente por adaptar la aplicación para ser
129
usada con una interfaz web. Estos últimos programas permiten al usuario pagar
una cuota mensual o anual para usar la aplicación, sin necesidad de instalarla en
el computador del usuario. Las compañías que siguen esta estrategia se
denominan Proveedores de Aplicaciones de Servicio (ASP por sus siglas en
inglés), un modelo de negocio que está atrayendo la atención de la industria del
software.
5.15.5. Lenguajes de programación de aplicaciones w eb.
Existen numerosos lenguajes de programación empleados para el desarrollo de
Aplicaciones Web, entre los que destacan:
• PHP
• ASP/ASP.NET
• Java, con sus tecnologías Java Servlets y JavaServer Pages (JSP)
• Perl
• Ruby
• Python
• HTML
• XML
ASP no es un lenguaje de programación en sí mismo, sino una arquitectura de
desarrollo web en la que se pueden usar por debajo distintos lenguajes (por
ejemplo VB.NET o C# para ASP.NET o VBScript/JScript para ASP).
130
5.15.6. Ejemplos de aplicaciones web.
• EyeOS por Equipo eyeOS. Escritorio virtual
• Flickr por Ludicorp. Administrador de fotografías.
• Gmail por Google. Correo electrónico.
• SugarCRM CRM
• Webramientas Directorio con miles de Aplicaciones Web listadas por
Categorías
5.16. WORLD WIDE WEB CONSORTIUM.
El World Wide Web Consortium , abreviado W3C, es un consorcio internacional
que produce recomendaciones para la World Wide Web. Está dirigida por Tim
Berners-Lee, el creador original de URL (Uniform Resource Locator, Localizador
Uniforme de Recursos), HTTP (HyperText Transfer Protocol, Protocolo de
Transferencia de HiperTexto) y HTML (Lenguaje de Marcado de HiperTexto) que
son las principales tecnologías sobre las que se basa la Web.
5.16.1. Organización de la w3c.
Creada el 1 de octubre de 1994 por Tim Berners-Lee en el MIT, actual sede
central del consorcio. Uniéndose posteriormente en abril de 1995 INRIA en
131
Francia, reemplazado por el ERCIM en el 2003 como el huésped europeo del
consorcio y Universidad de Keio (Shonan Fujisawa Campus) en Japón en
septiembre de 1996 como huésped asiatico. Estos organismos administran el
consorcio, el cual está integrado por:
• Miembros del W3C. A marzo de 2009 contaba con 407 miembros (lista
completa)
• Equipo W3C (W3C Team) 65 investigadores y expertos de todo el
mundo (Directorio)
• Oficinas W3C (W3C Offices). Centros regionales establecidos en
Alemania y Austria (oficina conjunta), Australia, Benelux (oficina
conjunta), China, Corea del Sur, España, Finlandia, Grecia, Hong Kong,
Hungría, India, Israel, Italia, Marruecos, Suecia y Reino Unido e Irlanda
(oficina conjunta) (Oficinas W3C.)
La oficina española del W3C, establecida en el 2003, está albergada por la
Fundación CTIC en el Parque Científico Tecnológico de Gijón (Principado de
Asturias).
5.17. INTERNET.
Internet es un conjunto descentralizado de redes de comunicación
interconectadas, que utilizan la familia de protocolos TCP/IP, garantizando que las
redes físicas heterogéneas que la componen funcionen como una red lógica única,
de alcance mundial. Sus orígenes se remontan a 1969, cuando se estableció la
132
primera conexión de computadoras, conocida como ARPANET, entre tres
universidades en California y una en Utah, Estados Unidos.
Uno de los servicios que más éxito ha tenido en Internet ha sido la World Wide
Web (WWW, o "la Web"), hasta tal punto que es habitual la confusión entre ambos
términos. La WWW es un conjunto de protocolos que permite, de forma sencilla, la
consulta remota de archivos de hipertexto. Ésta fue un desarrollo posterior (1990)
y utiliza Internet como medio de transmisión.
Existen, por tanto, muchos otros servicios y protocolos en Internet, aparte de la
Web: el envío de correo electrónico (SMTP), la transmisión de archivos (FTP y
P2P), las conversaciones en línea (IRC), la mensajería instantánea y presencia, la
transmisión de contenido y comunicación multimedia -telefonía (VoIP), televisión
(IPTV)-, los boletines electrónicos (NNTP), el acceso remoto a otras máquinas
(SSH y Telnet) o los juegos en línea.
5.17.1. Historia.
En el mes de julio de 1961 Leonard Kleinrock publicó desde el MIT el primer
documento sobre la teoría de conmutación de paquetes. Kleinrock convenció a
Lawrence Roberts de la factibilidad teórica de las comunicaciones vía paquetes en
lugar de circuitos, lo cual resultó ser un gran avance en el camino hacia el trabajo
informático en red. El otro paso fundamental fue hacer dialogar a los
computadores entre sí. Para explorar este terreno, en 1965, Roberts conectó una
computadora TX2 en Massachusetts con un Q-32 en California a través de una
133
línea telefónica conmutada de baja velocidad, creando así la primera (aunque
reducida) red de computadoras de área amplia jamás construida.
1969. La primera red interconectada nace el 21 de noviembre de 1969, cuando se
crea el primer enlace entre las universidades de UCLA y Stanford por medio de la
línea telefónica conmutada, y gracias a los trabajos y estudios anteriores de varios
científicos y organizaciones desde 1959 (ver ARPANET). El mito de que
ARPANET, la primera red, se construyó simplemente para sobrevivir a ataques
nucleares sigue siendo muy popular. Sin embargo, este no fue el único motivo. Si
bien es cierto que ARPANET fue diseñada para sobrevivir a fallos en la red, la
verdadera razón para ello era que los nodos de conmutación eran poco fiables, tal
y como se atestigua en la siguiente cita:
A raíz de un estudio de RAND, se extendió el falso rumor de que ARPANET fue
diseñada para resistir un ataque nuclear. Esto nunca fue cierto, solamente un
estudio de RAND, no relacionado con ARPANET, consideraba la guerra nuclear
en la transmisión segura de comunicaciones de voz. Sin embargo, trabajos
posteriores enfatizaron la robustez y capacidad de supervivencia de grandes
porciones de las redes subyacentes. (Inteqrnet Society, A Brief History of the
Internet)
1972. Se realizó la Primera demostración pública de ARPANET, una nueva red de
comunicaciones financiada por la DARPA que funcionaba de forma distribuida
sobre la red telefónica conmutada. El éxito de ésta nueva arquitectura sirvió para
que, en 1973, la DARPA iniciara un programa de investigación sobre posibles
técnicas para interconectar redes (orientadas al tráfico de paquetes) de distintas
clases. Para este fin, desarrollaron nuevos protocolos de comunicaciones que
permitiesen este intercambio de información de forma "transparente" para las
computadoras conectadas. De la filosofía del proyecto surgió el nombre de
134
"Internet", que se aplicó al sistema de redes interconectadas mediante los
protocolos TCP e IP.
1983. El 1 de enero, ARPANET cambió el protocolo NCP por TCP/IP. Ese mismo
año, se creó el IAB con el fin de estandarizar el protocolo TCP/IP y de
proporcionar recursos de investigación a Internet. Por otra parte, se centró la
función de asignación de identificadores en la IANA que, más tarde, delegó parte
de sus funciones en el Internet registry que, a su vez, proporciona servicios a los
DNS.
1986. La NSF comenzó el desarrollo de NSFNET que se convirtió en la principal
Red en árbol de Internet, complementada después con las redes NSINET y
ESNET, todas ellas en Estados Unidos. Paralelamente, otras redes troncales en
Europa, tanto públicas como comerciales, junto con las americanas formaban el
esqueleto básico ("backbone") de Internet.
1989. Con la integración de los protocolos OSI en la arquitectura de Internet, se
inició la tendencia actual de permitir no sólo la interconexión de redes de
estructuras dispares, sino también la de facilitar el uso de distintos protocolos de
comunicaciones.
En el CERN de Ginebra, un grupo de físicos encabezado por Tim Berners-Lee
creó el lenguaje HTML, basado en el SGML. En 1990 el mismo equipo construyó
el primer cliente Web, llamado WorldWideWeb (WWW), y el primer servidor web.
2006. El 3 de enero, Internet alcanzó los mil cien millones de usuarios. Se prevé
que en diez años, la cantidad de navegantes de la Red aumentará a 2.000
millones.
135
5.18. WEB 2.0.
Figura 7. Logotipo – Web 2.0, Version – Beta
El término Web 2.0 fue acuñado por Tim O'Reilly en 2004 para referirse a una
segunda generación en la historia del desarrollo de tecnología Web basada en
comunidades de usuarios y una gama especial de servicios, como las redes
sociales, los blogs, los wikis o las folcsonomías, que fomentan la colaboración y el
intercambio ágil de información entre los usuarios de una comunidad o red social.
La Web 2.0 es tambièn llamada web social por el enfoque colaborativo y de
construcciòn social de esta herramienta.
136
5.18.1. Introducción.
El concepto original del contexto, llamado Web 1.0 era páginas estáticas HTML
que no eran actualizadas frecuentemente. El éxito de las .com dependía de webs
más dinámicas (a veces llamadas Web 1.5) donde los CMS Sistema de gestión de
contenidos (Content Management System en inglés, abreviado CMS) servían
páginas HTML dinámicas creadas al vuelo desde una actualizada base de datos.
En ambos sentidos, el conseguir hits (visitas) y la estética visual eran
considerados como factores importantes.
Los propulsores de la aproximación a la Web 2.0 creen que el uso de la web está
orientado a la interacción y redes sociales, que pueden servir contenido que
explota los efectos de las redes, creando o no webs interactivas y visuales. Es
decir, los sitios Web 2.0 actúan más como puntos de encuentro, o webs
dependientes de usuarios, que como webs tradicionales.
5.18.2. Origen del término.
El término fue acuñado por Dale Dougherty de O'Reilly Media en una lluvia de
ideas con Craig Cline de MediaLive para desarrollar ideas para una conferencia.
Dougherty sugirió que la web estaba en un renacimiento, con reglas que
cambiaban y modelos de negocio que evolucionaban. Dougherty puso ejemplos —
"DoubleClick era la Web 1.0; Google AdSense es la Web 2.0. Ofoto es Web 1.0;
Flickr es Web 2.0." — en vez de definiciones, y reclutó a John Battelle para dar
una perspectiva empresarial, y O'Reilly Media, Battelle, y MediaLive lanzó su
137
primera conferencia sobre la Web 2.0 en Octubre del 2004. La segunda
conferencia se celebró en octubre de 2005.
Figura 8. Características de la Web 2.0.
En 2005, Tim O'Reilly definió el concepto de Web 2.0. El mapa meme mostrado
(elaborado por Markus Angermeier) resume el meme de Web 2.0, con algunos
ejemplos de servicios.q
En su conferencia, O'Reilly y Battelle resumieron los principios clave que creen
que caracterizan a las aplicaciones web 2.0: la web como plataforma; datos como
el "Intel Inside"; efectos de red conducidos por una "arquitectura de participación";
innovación y desarrolladores independientes; pequeños modelos de negocio
capaces de re-difundir servicios y contenidos; el perpetuo beta; software por
encima de un solo aparato.
138
En general, cuando mencionamos el término Web 2.0 nos referimos a una serie de
aplicaciones y páginas de Internet que utilizan la inteligencia colectiva para
proporcionar servicios interactivos en red dando al usuario el control de sus datos.
Así, podemos entender como 2.0 -"todas aquellas utilidades y servicios de
Internet que se sustentan en una base de datos, la cual puede ser modificada
por los usuarios del servicio, ya sea en su conteni do (añadiendo, cambiando
o borrando información o asociando datos a la infor mación existente), pues
bien en la forma de presentarlos, o en contenido y forma simultáneamente ."-
(Ribes, 2007)
Figura 9. Mapa mental de la Web 2.0
139
5.18.3. Tecnología.
La infraestructura de la Web 2.0 es muy compleja y va evolucionando, pero incluye
el software de servidor, redifusión de contenidos, protocolos de mensajes,
navegadores basados en estándares, y varias aplicaciones para clientes.
Una web se puede decir que está construida usando tecnología de la Web 2.0 si
se caracteriza por las siguientes técnicas:
5.18.4. Web 2.0 buzz words.
• Técnicas:
o CSS, marcado XHTML válido semánticamente y Microformatos
o Técnicas de aplicaciones ricas no intrusivas (como AJAX)
o Java Web Start
o XUL
o Redifusión/Agregación de datos en RSS/ATOM
o URLs sencillas con significado semántico
o Soporte para postear en un blog
o JCC y APIs REST o XML
o JSON
o Algunos aspectos de redes sociales
o Mashup (aplicación web híbrida)
140
• General:
o El sitio no debe actuar como un "jardín cerrado": la información
debe poderse introducir y extraer fácilmente
o Los usuarios deberían controlar su propia información
o Basada exclusivamente en la Web: los sitios Web 2.0 con más
éxito pueden ser utilizados enteramente desde un navegador.
5.19. SERVICIOS WEB.
Figura 10. Palabras buzz de web 2.0
Los protocolos de mensajes bidireccionales son uno de los elementos clave de la
infraestructura de la Web 2.0.
141
Los dos tipos más importantes son los métodos RESTful y SOAP. REST indican
un tipo de llamada a un servicio web donde el cliente transfiere el estado de todas
las transacciones. SOAP y otros métodos similares dependen del servidor para
retener la información de estado. En ambos casos, el servicio es llamado desde un
API. A veces este API está personalizado en función de las necesidades
específicas del sitio web, pero los APIs de los servicios web estándares (como por
ejemplo escribir en un blog) están también muy extendidos. Generalmente el
lenguaje común de estos servicios web es el XML, si bien puede haber
excepciones.
Recientemente, una forma híbrida conocida como Ajax ha evolucionado para
mejorar la experiencia del usuario en las aplicaciones web basadas en el
navegador. Esto puede ser usado en webs propietarias (como en Google Maps) o
en formas abiertas utilizando un API de servicios web.
5.19.1. Software de servidor.
La funcionalidad de Web 2.0 se basa en la arquitectura existente de servidor web
pero con un énfasis mayor en el software dorsal. La redifusión sólo se diferencia
nominalmente de los métodos de publicación de la gestión dinámica de contenido,
pero los servicios Web requieren normalmente un soporte de bases de datos y
flujo de trabajo mucho más robusto y llegan a parecerse mucho a la funcionalidad
de internet tradicional de un servidor de aplicaciones. El enfoque empleado hasta
ahora por los fabricantes suele ser bien un enfoque de servidor universal, el cual
agrupa la mayor parte de la funcionalidad necesaria en una única plataforma de
servidor, o bien un enfoque plugin de servidor Web con herramientas de
142
publicación tradicionales mejoradas con interfaces API y otras herramientas.
Independientemente del enfoque elegido, no se espera que el camino evolutivo
hacia la Web 2.0 se vea alterado de forma importante por estas opciones.
5.19.2. Relaciones con otros conceptos.
La web 1.0 principalmente trata lo que es el estado estático, es decir los datos que
se encuentran en esta no pueden cambiar, se encuentran fijos, no varían, no se
actualizan.
5.19.3. Comparación con la "web 1.0".
De acuerdo con Tim O'Reilly, la Web 2.0 puede ser comparada con la Web 1.0 de
esta manera:
Tabla 4. Comparación Web 1.0 – Web 2.0
Web 1.0 Web 2.0
DoubleClick Google AdSense
143
Ofoto Flickr
Terratv Youtube
Akamai BitTorrent
Mp3.com Napster
Enciclopedia Británica Wikipedia
Webs personales blogging
Evite upcoming.org y EVDB
Especulación de nombres de dominios optimización de los motores de búsqueda
Páginas vistas coste por clic
Screen scraping servicios web
Publicación Participación
Sistema de gestión de contenidos wiki
Directorios (taxonomía) etiquetas (folcsonomía)
144
Stickiness redifusión
En base a lo expuesto en la tabla anterior se describirá a continuación él porque la
aplicación se desarrollo bajo la terminología de Web 2.0.
La Web 1.0 cuando fue creada como una web estática, donde las páginas se
creaban a partir de código HTML, las cuales no se actualizaban permanentemente
debido a que era difícil por su codificación. En las páginas desarrolladas bajo el
término de Web 1.0 no hay interacción con el cliente ya que la presencia de la
web es netamente informativa y debido a esto los usuarios se convierten o son
"lectores consumidores”. Algunas de las aplicaciones o programas que se
utilizaban en el desarrollo de web 1.0 son: flash, javascript, html.
De forma contraria a lo que se explica en el párrafo anterior el desarrollo de la
aplicación para la corporación está consignado bajo el termino de Web 2.0, puesto
que estas son páginas dinámicas y de tipo colaborativa, donde los usuarios se
convierten en productores de contenido en lo que respecta a la actualización de la
información, estos publican la información que desean y realizan cambios en la
base de datos sin problema alguno, encontrando un intercambio ágil de
información entre los usuarios, ahorrándole en gran parte tiempo al simplificar el
uso del sitio con la implementación de nuevas herramientas o aplicaciones.
Algunas de las aplicaciones o programas que se utilizaban en el desarrollo de web
2.0 son: ajax, dhtml, xml, audio y video; dentro de las características más
relevantes y que se encuentran expuestas en el desarrollo de la aplicación
encontramos el manejo los estándares desarrollados por la w3c, proyectos open-
source (php, mysql), que son herramientas de libre distribución, hojas de estilo
CSS para un mejor manejo y diseño de las diferentes interfaces, la web 2.0 es una
145
herramienta multiplataforma (funciona en cualquier sistema operativo que se use),
y hace uso de un menor requerimiento de hardware.
5.20. SISTEMAS DE INFORMACION
Un sistema de información es un conjunto de elementos que interactúan entre sí
con el fin de apoyar las actividades de una empresa o negocio. El equipo
computacional: el hardware necesario para que el sistema de información pueda
operar. El recurso humano que interactúa con el Sistema de Información, el cual
está formado por las personas que utilizan el sistema. Un sistema
de información realiza cuatro actividades básicas: entrada, almacenamiento,
procesamiento y salida de información.
• Entrada de Información: Es el proceso mediante el cual el Sistema de
Información toma los datos que requiere para procesar la información. Las
entradas pueden ser manuales o automáticas. Las manuales son aquellas
que se proporcionan en forma directa por el usuario, mientras que las
automáticas son datos o información que provienen o son tomados de otros
sistemas o módulos. Esto último se denomina interfaces automáticas.
Las unidades típicas de entrada de datos a las computadoras son las
terminales, las cintas magnéticas, las unidades de diskette, los códigos de
barras, los escáner, la voz, los monitores sensibles al tacto, el teclado y
el mouse, entre otras.
• Almacenamiento de información: El almacenamiento es una de las
actividades o capacidades más importantes que tiene una computadora, ya
que a través de esta propiedad el sistema puede recordar la información
146
guardada en la sección o proceso anterior. Esta información suele ser
almacenada en estructuras de información denominadas archivos. La
unidad típica de almacenamiento son los discos magnéticos o discos duros,
los discos flexibles o diskettes y los discos compactos (CD-ROM).
• Procesamiento de Información: Es la capacidad del Sistema de
Información para efectuar cálculos de acuerdo con una secuencia
de operaciones preestablecida. Estos cálculos pueden efectuarse con datos
introducidos recientemente en el sistema o bien con datos que están
almacenados. Esta característica de los sistemas permite la transformación
de datos fuente en información que puede ser utilizada para la toma de
decisiones, lo que hace posible, entre otras cosas, que un tomador de
decisiones genere una proyección financiera a partir de los datos que
contiene un estado de resultados o un balance general de un año base.
• Salida de Información: La salida es la capacidad de un Sistema de
Información para sacar la información procesada o bien datos de entrada al
exterior. Las unidades típicas de salida son las impresoras, terminales,
diskettes, cintas magnéticas, la voz, los graficadores y los plotters, entre
otros. Es importante aclarar que la salida de un Sistema de Información
puede constituir la entrada a otro Sistema de Información o módulo. En este
caso, también existe una interfaz automática de salida. Por ejemplo, el
Sistema de Control de Clientes tiene una interfaz automática de salida con
el Sistema de Contabilidad, ya que genera las pólizas contables de los
movimientos procesales de los clientes.
147
5.20.1. Tipos de sistemas de información
5.20.1.1. Sistemas transaccionales
Las principales características son:
• A través de éstos suelen lograrse ahorros significativos de mano de obra,
debido a que automatizan tareas operativas de la organización.
• Con frecuencia son el primer tipo de Sistemas de Información que se
implanta en las organizaciones. Se empieza apoyando las tareas a nivel
operativo de la organización.
• Son intensivos en entrada y salid de información; sus cálculos y procesos
suelen ser simples y poco sofisticados.
• Tienen la propiedad de ser recolectores de información, es decir, a través
de estos sistemas se cargan las grandes bases de información para su
explotación posterior.
• Son fáciles de justificar ante la dirección general, ya que sus beneficios son
visibles y palpables.
5.20.1.2. Sistemas de apoyo de las decisiones
Las principales características de estos son:
148
• Suelen introducirse después de haber implantado los Sistemas
Transaccionales más relevantes de la empresa, ya que estos últimos
constituyen su plataforma de información.
• La información que generan sirve de apoyo a los mandos intermedios y a la
alta administración en el proceso de toma de decisiones.
• Suelen ser intensivos en cálculos y escasos en entradas y salidas de
información. Así, por ejemplo, un modelo de planeación financiera requiere
poca información de entrada, genera poca información como resultado,
pero puede realizar muchos cálculos durante su proceso.
• No suelen ahorrar mano de obra. Debido a ello, la justificación económica
para el desarrollo de estos sistemas es difícil, ya que no se conocen los
ingresos del proyecto de inversión.
• Suelen ser Sistemas de Información interactivos y amigables, con altos
estándares de diseño gráfico y visual, ya que están dirigidos al usuario final.
• Apoyan la toma de decisiones que, por su misma naturaleza son repetitivos
y de decisiones no estructuradas que no suelen repetirse. Por ejemplo, un
Sistema de Compra de Materiales que indique cuándo debe hacerse un
pedido al proveedor o un Sistema de Simulación de Negocios que apoye la
decisión de introducir un nuevo producto al mercado.
• Estos sistemas pueden ser desarrollados directamente por el usuario final
sin la participación operativa de los analistas y programadores del área
de informática.
• Este tipo de sistemas puede incluir la programación de la producción,
compra de materiales, flujo de fondos, proyecciones
financieras, modelos desimulación de negocios, modelos de inventarios,
etc.
149
5.20.1.3. Sistemas estratégicos
Sus principales características son:
• Su función primordial no es apoyar la automatización de procesos
operativos ni proporcionar información para apoyar la toma de decisiones.
• Suelen desarrollarse in house, es decir, dentro de la organización, por lo
tanto no pueden adaptarse fácilmente a paquetes disponibles en el
mercado.
• Típicamente su forma de desarrollo es a base de incrementos y a través de
su evolución dentro de la organización. Se inicia con un proceso o función
en particular y a partir de ahí se van agregando nuevas funciones o
procesos.
• Su función es lograr ventajas que los competidores no posean, tales como
ventajas en costos y servicios diferenciados con clientes y proveedores. En
este contexto, los Sistema Estratégicos son creadores de barreras de
entrada al negocio. Por ejemplo, el uso de cajeros automáticos en los
bancos en un Sistema Estratégico, ya que brinda ventaja sobre
un banco que no posee tal servicio. Si un banco nuevo decide abrir sus
puertas al público, tendrá que dar este servicio para tener un nivel similar al
de sus competidores.
• Apoyan el proceso de innovación de productos y proceso dentro de
la empresa debido a que buscan ventajas respecto a los competidores y
una forma de hacerlo en innovando o creando productos y procesos.
150
5.21. SISTEMAS OPERATIVOS
El sistema operativo es el programa (o software) más importante de un
computador. Para que funcionen los otros programas, cada computador de uso
general debe tener un sistema operativo. Los sistemas operativos realizan tareas
básicas, tales como reconocimiento de la conexión del teclado, enviar la
información a la pantalla, no perder de vista archivos y directorios en el disco, y
controlar los dispositivos periféricos tales como impresoras, escáner, etc.
En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y
poder, es como un policía de tráfico, se asegura de que los programas y usuarios
que están funcionando al mismo tiempo no interfieran entre ellos. El sistema
operativo también es responsable de la seguridad, asegurándose de que los
usuarios no autorizados no tengan acceso al sistema.
5.21.1. Clasificación de los sistemas operativos
Los sistemas operativos pueden ser clasificados de la siguiente forma:
• Multiusuario : Permite que dos o más usuarios utilicen sus programas al
mismo tiempo. Algunos sistemas operativos permiten a centenares o
millares de usuarios al mismo tiempo.
• Multiprocesador : soporta el abrir un mismo programa en más de una CPU.
• Multitarea : Permite que varios programas se ejecuten al mismo tiempo.
• Multitramo : Permite que diversas partes de un solo programa funcionen al
mismo tiempo.
151
• Tiempo Real : Responde a las entradas inmediatamente. Los sistemas
operativos como DOS y UNIX, no funcionan en tiempo real.
5.21.2. Ejemplos de sistema operativo
A continuación se detallan algunos ejemplos de sistemas operativos:
Familia Windows
• Windows 95
• Windows 98
• Windows ME
• Windows NT
• Windows 2000
• Windows 2000 server
• Windows XP
• Windows Server 2003
• Windows CE
• Windows Mobile
• Windows XP 64 bits
• Windows Vista (Longhorn)
Familia Macintosh
• Mac OS 7
152
• Mac OS 8
• Mac OS 9
• Mac OS X
Familia UNIX
• AIX
• AMIX
• GNU/Linux
• GNU / Hurd
• HP-UX
• Irix
• Minix
• System V
• Solaris
• UnixWare
5.22. TEORIA PROTOTIPADO EVOLUTIVO
El uso de prototipos se centra en la idea de ayudar a comprender los requisitos
que plantea el usuario, sobre todo si este no tiene una idea muy acabada de lo
que desea. También pueden utilizarse cuando el ingeniero de software tiene
dudas acerca de la viabilidad de la solución pensada.
Esta versión temprana de lo que será el producto, con una funcionalidad reducida,
en principio, podrá incrementarse paulatinamente a través de refinamientos
153
sucesivos de las especificaciones del sistema, evolucionando hasta llegar al
sistema final.
Al usar prototipos, las etapas del ciclo de vida clásico quedan modificadas de la
siguiente manera:
• Análisis de requisitos del sistema
• Análisis de requisitos del software
• Diseño, desarrollo e implementación del prototipo
• Prueba del prototipo.
• Refinamiento iterativo del prototipo
• Refinamiento de las especificaciones del prototipo
• Diseño e implementación del sistema final
• Explotación (u operación) y mantenimiento
Si bien el modelo de prototipos evolutivos, fácilmente modificables y ampliables es
muy usado, en muchos casos pueden usarse prototipos descartables para
esclarecer aquellos aspectos del sistema que no se comprenden bien.
5.22.1. Selección del modelo de prototipo evolutivo
Como dijo Jean Michel Lefèvre, "escribir un programa didáctico es como tener una
aventura: generalmente conocemos el punto de partida, más o menos sabemos
dónde queremos ir, pero desconocemos con exactitud lo que pasará por el
camino", lo anterior muestra la necesidad de desarrollar los programas didácticos
computarizados no de una manera rígida o cerrada que sería el caso de utilizar el
154
modelo de cascada, sino de una manera más abierta de manera tal que el cliente
pueda ir haciendo los refinamientos o las aportaciones necesarias, inclusive podría
hablarse de que aunque el producto no esté terminado, se pueda probar el primer
prototipo, además de realizar una breve evaluación, sin duda alguna que esto
mejorará el diseño del software de manera especial la parte comunicativa o
educativa. La decisión se fundamenta en la ventaja de la realización de los
cambios en etapas tempranas y la posibilidad de emisión varios prototipos
evaluables durante el desarrollo, obteniéndose de este modo paralelamente una
metodología integral también para el proceso de evaluación del programa. Lo
anterior permite que los clientes participen de una manera más abierta y directa,
involucrándose de este manera en el desarrollo del software, lo cual que
obviamente representa una gran ventaja, ya que ellos son los que conocen las
necesidades y problemáticas.
Existen otras razones genéricas que en si presenta el mismo modelo como son:
• Cuando se trata de un software a ser desarrollado por encargo, es deseable
obtener un primer esbozo de lo que será el programa tan pronto como fuera
posible a fin de satisfacer la curiosidad del usuario, y para saber realmente
qué es lo que éste quiere e incorporar sus sugerencias de cambio, si las
hubiera, lo antes posible, es decir en etapas tempranas de la construcción.
• Por otra parte, es necesario saber lo antes posible si los desarrolladores
han interpretado correctamente las especificaciones y las necesidades del
usuario.
• En muchos casos los usuarios no tienen una idea acabada de lo que
desean, por lo tanto los desarrolladores deben tomar decisiones y suponer
que es lo que el usuario quiere. Por este motivo, la emisión de los
prototipos brinda la posibilidad de efectuar refinamientos de los
requerimientos en forma sucesiva a fin de acercarse al producto deseado.
155
Al usar prototipos, las etapas del ciclo de vida clásico quedan modificadas de la
siguiente manera:
1. Factibilidad (FAC).
2. Definición de requisitos del sistema (RES).
3. Especificación de los requisitos del prototipo (REP).
4. Diseño del prototipo (DPR).
5. Diseño detallado el prototipo (DDP).
6. Desarrollo del prototipo (codificación) (DEP).
7. Implementación y prueba del prototipo (IPP).
8. Refinamiento iterativo de las especificaciones del prototipo (aumentando el
objetivo y/o el alcance).
9. Luego, se puede volver a la etapa 2 o continuar si se logró el objetivo y
alcance deseados. (RIT).
10. Diseño del sistema final (DSF).
11. Implementación del sistema final (ISF).
12. Operación y mantenimiento (OPM).
13. Retiro (si corresponde) (RET).
Si bien el modelo de prototipos evolutivos, fácilmente modificables y ampliables es
muy usado, en muchos casos pueden usarse prototipos descartables para
esclarecer aquellos aspectos del sistema que no se comprenden bien.
Existen otros aspectos a considerar como el diseño de las interfaces, que si bien
el modelo de prototipo evolutivo permite una revisión constante de mejoras y
extensiones.
156
6. MARCO LEGAL O NORMATIVO
El Software Libre, es aquel cuyo código fuente es abierto (Open Source), y no
necesariamente es un software gratuito o no comercial. Un Software Libre puede
ser diseñado para fines comerciales y ello no desnaturaliza su propósito.
Licencias utilizadas en el desarrollo del proyecto:
- GNU General Public License versión 3.
- Licencia apache 2.0
- Licencia php 3.0
- Eula (microsoft).
Distribuciones libres utilizadas en el desarrollo del proyecto.
- Php.
- Mysql con licenciamiento gnu/gpl.
- Apache.
- Mysql gui tool.
- Jquery.
- PhpMyAdmin.
157
7. METODOLOGIA
7.1. TIPO DE INVESTIGACIÓN
En el proceso de realización del proyecto anteriormente descrito se abordará un
tipo de Investigación Exploratoria , la cual nos permitirá tener un acercamiento al
problema, dado que en un principio la problemática a abordar no es conocida en
detalle.
7.2. METODOLOGÍA DE DESARROLLO – (Prototipado Evolu tivo)
En Ingeniería de software el desarrollo con modelo de prototipos que pertenece a
los modelos de desarrollo evolutivo, se inicia con la definición de los objetivos
globales para el software, luego se identifican los requisitos conocidos y las áreas
del esquema en donde es necesaria más definición. Entonces se plantea con
rapidez una iteración de construcción de prototipos y se presenta el modelado (en
forma de un diseño rápido).
El diseño rápido se centra en una representación de aquellos aspectos del
software que serán visibles para el cliente o el usuario final (por ejemplo, la
configuración de la interfaz con el usuario y el formato de los despliegues de
salida). El diseño rápido conduce a la construcción de un prototipo, el cual es
evaluado por el cliente o el usuario para una retroalimentación; gracias a ésta se
refinan los requisitos del software que se desarrollará. La iteración ocurre cuando
el prototipo se ajusta para satisfacer las necesidades del cliente.
158
Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe
hacer y el cliente vea resultados a corto plazo.
7.2.1. Ventajas.
• La construcción de prototipos evolutivos con la participación del usuario
final es la forma más sensata de desarrollar una interfaz.
• Comienza con un sistema relativamente simple que implementa los
requisitos más importantes o mejor conocidos.
• El prototipo se aumenta o cambia en cuanto se descubren nuevos
requisitos.
7.2.2. Eficacia.
• Reducción potencial de la planificación nominal Excelente
• Mejora en la visibilidad del progreso Excelente
• Posibilidad de éxito inicial Muy buena
• Posibilidad de éxito a largo plazo Excelente
Además de sus beneficios de desarrollo rápido, el prototipado evolutivo produce
muchos efectos secundarios, la mayoría de los cuales son beneficiosos. El
prototipado tiende a:
• Mejorar la confiabilidad de los usuarios finales, clientes y desarrolladores,
porque el progreso es visible.
159
• Realimentación temprana sobre la aceptación del sistema final.
• Disminución del tamaño general del código debido a los mejores diseños y
a la mayor reutilización.
• Menor tasa de defectos gracias a le mejor definición de los requerimientos.
• Curvas de esfuerzos más suaves, reduciendo el efecto del plazo límite.
7.2.3. Claves para el éxito en el uso del prototipa do evolutivo.
• Gestionar explícitamente las expectativas de los clientes y usuarios finales
relacionadas con la planificación, el presupuesto y el rendimiento.
• Limitar la interacción del usuario final con el prototipo para controlar los
requerimientos.
• Considerar el rendimiento desde el principio.
• Considerar si el prototipado evolutivo proporcionará los mayores beneficios
o si será mejor la entrega evolutiva o la entrega por etapas.
Actualmente se usa en el desarrollo de sitios Webs y en aplicaciones de comercio
electrónico.
Debido a la investigación realizada con antelación acerca del modelo de ciclo de
vida – prototipado evolutivo, se decidió por parte del grupo de desarrollo este
modelo la mejor alternativa para la ejecución del proyecto. Como se mostró
anteriormente en la conceptualización, este modelo de ciclo de vida dio las pautas
necesarias para la interacción con el cliente que en este caso es la facultad de
ingeniería de Cecar, tratando así de llegar al final del desarrollo realizando las
comprobaciones necesarias a lo largo de todo el camino para lograr un mejor
producto de software.
160
Los prototipos son precisamente el mecanismo que permite realizar estas
comprobaciones; se logró escuchar al cliente en reiteradas ocasiones para la
realimentación del proceso con la nueva información acerca de lo que se está
desarrollando, entre otras ventajas y características relevantes ya mencionadas en
las cuales el grupo de desarrollo se apoyó para poder finiquitar el proyecto.
161
8. POBLACIÓN
La población sobre la cual se trabajará en la toma de información para la
realización del proyecto, es toda aquella persona involucrada en cada uno de los
procesos de inscripción y seguimiento de los proyectos de investigación y
prácticas profesionales, tales como el administrador de la plataforma tecnológica
de CECAR, el decanos, coordinadores de prácticas, docentes de los diferentes
programas de la Facultada de Ingeniería de CECAR, entre otros, ya que son ellos
quienes conocen a fondo las problemáticas que se presentan al momento de
evaluar, aprobar y calificar los distintos proyectos de investigación y prácticas
profesionales.
8.1. MUESTRA
Para la realización de este proyecto, la muestra será el decano de la facultad de
ingeniería, coordinador del programa de ingeniera industrial, docentes,
administrador de la plataforma administrativa, estudiantes involucrados en
procesos de prácticas, entre otros.
162
9. FASE DE ANÁLISIS
9.1. DESCRIPCIÓN DEL SISTEMA A IMPLEMENTAR
9.1.1. Usuarios del sistema a implementar.
Los usuarios de un sistema de información desempeñan diferentes roles
dependiendo del conjunto de funcionalidades especificas con las que se
relacionan.
En el sistema a implementar se identifican 6 tipos de usuarios que son:
Administrador: Es la persona encargada de gestionar toda la información del
Portal; entre sus labores más destacadas están la de gestionar Facultades,
Programas, Municipios, Departamentos, Directores, Estudiantes, Comité de
Investigación, Coordinador de Prácticas Profesionales, Usuarios Finales
(Detallados a continuación). y actualización de la base de datos de la aplicación.
Estudiante: Es la persona que entra al Portal Web y está registrado como
Estudiante; este tipo de usuarios tienen la posibilidad de escoger la opción que
van a desarrollar (Proyecto de Investigación o Practicas Profesionales), en la
opción de proyectos de investigación el estudiante podrá inscribir su proyecto de
163
investigación así como consultar sus asesorías del proyecto, ver los reglamentos
estipulados por el comité, conocer el estado del proyecto (aprobado, rechazado,
etc.) y cambiar su clave; en lo que respecta a las prácticas profesionales el
estudiante de igual forma conseguirá inscribir su perfil para ser escogido por
alguna empresa, consultar su practica en detalle, ver los reglamentos que rigen las
prácticas subir al portal su plan de acción y los diferente informes.
Director de Proyectos: Es la persona que entra al Portal Web y está registrado
como Director; tienen la posibilidad de consultar su listado de proyectos
asignados, a los cuales les brindara de forma ágil la asesoría en detalle, así como
ver los reglamentos y cambiar su clave.
Comité de Investigación: Es la persona que entra al Portal Web y está registrado
con el perfil de Comité de Investigación; tienen la posibilidad de ver el listado
completo de proyectos que se encuentran en desarrollo o en cualquier estado
(aprobado, rechazado), así como gestionar la información concerniente a líneas de
investigación y núcleos temáticos, ver los reglamentos que se rigen en los
proyectos de investigación y cambiar la clave.
Coordinador de Prácticas Profesionales: Es la persona que entra al Portal Web
y está registrado con el perfil de Coordinador de Prácticas Profesionales; tienen la
posibilidad de escoger el grupo de perfiles de estudiantes que serán enviados a
las distintas empresas vinculadas con la Corporación, asignar la practicas de los
que ya fueron escogidos por la empresa, ver el reglamento que rige la práctica
profesional, ver los planes de acción e informes de práctica que los estudiantes
con anterioridad han subido al portal, consultar el listado de estudiantes que se
164
encuentran en práctica, gestionar lo concerniente a las empresas y jefes
inmediatos que se encuentran en convenios con la corporación y cambiar su
clave.
Jefe Inmediato: Es la persona que entra al Portal Web y está registrado como
Jefe; tienen la posibilidad de consultar el listado enviado con anterioridad por el
coordinador de prácticas profesionales, descargar su perfil, asignar su tipo de
labor dentro de la empresa y cambiar su clave.
165
10. FASE DE DISEÑO
El propósito de esta fase es obtener un conjunto de especificaciones que
constituirán el punto de partida para la construcción del sistema. Entre las etapas
más utilizadas para abordar el proceso de diseño se encuentran la definición de
requerimientos y la especificación de la arquitectura del sistema.
10.1. DEFINICIÓN DE REQUERIMIENTOS DE SOFTWARE (DRS)
Para realizar un buen desarrollo de software es esencial hacer una especificación
completa de los requerimientos del mismo. La definición de requerimientos facilita
la descripción de las funciones del sistema, la comprensión de su comportamiento,
la asignación de software de desarrollo y la representación del dominio de la
información que será tratada por la aplicación, así mismo suministra medios para
valorar la calidad de la aplicación una vez que se haya construido.
Los requerimientos están divididos principalmente en requerimientos del sistema
(funcional y no funcional), hardware y software.
166
10.1.1. Requerimientos del sistema.
10.1.1.1. Requerimientos funcionales.
Los requerimientos funcionales son los servicios que el sistema ofrece a cada uno
de sus tipos de usuario.
Para la representación de los servicios ofrecidos por el Portal Web, hemos
utilizado diagramas de casos de uso UML los cuales permiten especificar en forma
gráfica cuales son los tipos de usuario y que operaciones pueden realizar cada
uno de ellos. Así mismo, por cada funcionalidad se ofrecerá una plantilla de casos
de uso expandida para facilitar su descripción.
A continuación mostraremos los servicios más importantes que ofrece el Portal
Web, clasificados por tipos de usuario.
Nota: El termino “Gestionar” empleado en los diagramas de casos de uso, integra
las funcionalidades de adicionar, consultar, eliminar y modificar.
167
10.1.1.1.1. Modelamiento del sistema a implementar.
El sistema a implementar en CECAR se modela a través de los siguientes
diagramas:
Usuario administrador:
Figura 11. Casos de uso – Actor: Administrador
168
Descripción detallada de los requerimientos
Tabla 5. Actor: Administrador – Caso de uso: Validar entrada
Caso de uso Validar entrada
Actor Administrador
Resumen Ingresa sus datos como nombre de usuario y clave. El sistemahace la comparación de los datos suministrados con los del BD,autorizando o negando el ingreso al aplicativo por parte de eseactor.
Precondic iones Este actor debe estar registrado como usuario dentro de la Basede Datos
Pos condiciones Usuario validado
Excepciones Que este actor no se encuentre registrado como usuario dentrode la Base de Datos
Tabla 6. Actor: Administrador – Caso de uso: Gestionar Facultades
Caso de uso Gestionar Facultades
Actor Administrador
Resumen Ingresa los datos como nombre del Programa. El sistema hace el registro del nombre dentro de la base de datos.
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Facultad registrada con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
169
Tabla 7. Actor: Administrador – Caso de uso: Gestionar Programas
Tabla 8. Actor: Administrador – Caso de uso: Gestionar Estudiantes
Caso de uso Gestionar Programas
Actor Administrador
Resumen Ingresa los datos como nombre del Programa. El sistema hace el registro del nombre dentro de la base de datos.
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Facultad registrada con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
Caso de uso Gestionar Estudiantes
Actor Administrador
Resumen Ingresa los datos como cedula, nombre, apellido, dirección, teléfono, e-mail, tel. celular
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Estudiante registrado con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
170
Tabla 9. Actor: Administrador – Caso de uso: Gestionar Departamentos
Tabla 10. Actor: Administrador – Caso de uso: Gestionar Municipios
Caso de uso Gestionar Departamentos
Actor Administrador
Resumen Ingresa los datos como nombre del departamento
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Departamento registrado con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
Caso de uso Gestionar Municipios
Actor Administrador
Resumen Ingresa los datos como nombre del municipio y se escoge el departamento al que pertenece.
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones
Municipio registrado con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
171
Tabla 11. Actor: Administrador – Caso de uso: Gestionar Directores
Tabla 12. Actor: Administrador – Caso de uso: Gestionar Comité de Investigación
Caso de uso Gestionar Directores
Actor Administrador
Resumen Ingresa los datos como cedula, nombre, apellido, dirección, teléfono, e-mail, tel. celular, empresa, titulo y cargo.
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Director registrado con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
Caso de uso Gestionar Comité de Investigación
Actor Administrador
Resumen Ingresa los datos como cedula, nombre, apellido, dirección, teléfono, e-mail, tel. celular, empresa, titulo y cargo y se escoge la facultad de la que hace parte.
Precondiciones Deben ser solo caracteres alfanuméricos.
Pos condiciones Comité registrado con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
172
Tabla 13. Actor: Administrador – Caso de uso: Gestionar Coordinador de Practicas
Tabla 14. Actor: Administrador – Caso de uso: Gestionar Usuarios
Caso de uso Gestionar Coordinador de Practicas
Actor Administrador
Resumen Ingresa los datos como cedula, nombre, apellido, dirección, teléfono, e-mail, tel. celular, empresa, titulo y cargo, se escoge la facultad de la que hace parte y de igual forma el programa.
Preco ndiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Coordinador registrado con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
Caso de uso Gestionar Usuarios
Actor Administrador
Resumen Se escoge el tipo de usuario que se va a ingresar, se valida la cedula, se ingresa el nombre y el login que se va a usar.
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco, que la cedula y el login no estén registrados dentro de la base de datos.
Pos condiciones Usuario registrado con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
173
Usuario estudiante:
Figura 12. Casos de uso – Actor: Estudiante
174
Descripción detallada de los requerimientos
Tabla 15. Actor: Estudiante – Caso de uso: Validar entrada
Caso de uso Validar entrada Actor Estudiante Resumen Ingresa sus datos como nombre de usuario y clave. El sistema
hace la comparación de los datos suministrados con los del BD,autorizando o negando el ingreso al aplicativo por parte de eseactor.
Precondiciones Este actor debe estar registrado como usuario dentro de la Base deDatos
Pos condiciones Usuario validado
Excepciones Que este actor no se encuentre registrado como usuario dentro dela Base de Datos
Tabla 16. Actor: Estudiante – Caso de uso: Escoger opción Proyecto de Grado
Caso de uso Escoger Opción Proyecto de Grado Actor Estudiante Resumen El estudiante al momento de escoger proyecto de grado como
modalidad de desarrollo dentro del portal, podrá inscribir su proyecto y dado el caso sea de aprobación por el comité, logrará hacer seguimiento de su proyecto a través del mismo.
Precondiciones Este actor debe estar registrado como usuario dentro de la Base deDatos
Pos condiciones Escogencia permitida para desarrollar
Excepciones Que este actor no se encuentre registrado como usuario dentro dela Base de Datos
175
Tabla 17. Actor: Estudiante – Caso de uso: Escoger opción Práctica Profesional
Caso de uso Escoger Opción Práctica Profesional Actor Estudiante Resumen El estudiante al momento de escoger práctica profesional como
modalidad de desarrollo dentro del portal, podrá inscribir su perfil para participar en la selección a las diferentes empresas vinculadas a la corporación y dado el caso sea de aprobación por el comité, logrará hacer seguimiento de su proyecto a través del mismo.
Precondiciones Este actor debe estar registrado como usuario dentro de la Base deDatos
Pos condiciones Escogencia permitida para desarrollar
Excepciones Que este actor no se encuentre registrado como usuario dentro dela Base de Datos
Tabla 18. Actor: Estudiante – Caso de uso: Inscribir Proyecto
Caso de uso Inscribir Proyecto
Actor Estudiante
Resumen Ingresa los datos como titulo del proyecto, se escoge la facultad de la que hace parte y de igual forma el programa, la línea de investigación que maneja, así como los diferentes núcleos temáticos y se carga la propuesta, si hay más de un estudiante se ingresa la cedula y se valida, se ingresa el nombre del director propuesto por parte del estudiante.
Precondiciones Deben ser solo caracteres alfanuméricos, no dejar espacios en blanco, que la cedula este registrada y el programa no esté registrado dentro de la base de datos.
Pos condiciones Proyecto inscrito con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
176
Tabla 19. Actor: Estudiante – Caso de uso: Consultar Asesoría
Tabla 20. Actor: Estudiante – Caso de uso: Consultar reglamento de proyectos de grado
Caso de uso Consultar Asesoría
Actor Estudiante
Resumen El estudiante podrá ver los detalles de la asesoría que el director asignado estableció con anterioridad, como observaciones, el compromiso, el tema de la asesoría a tratar y la fecha de la próxima asesoría.
Precond iciones Deben de existir asesorías registradas a este proyecto de grado por el director asignado.
Pos condiciones Consulta de asesoría realizada.
Excepciones Que no se hayan registrado asesorías a ese proyecto en particular, o no esté aprobado aun.
Caso de uso Consultar Reglamento de Proyectos de Grado
Actor Estudiante
Resumen El estudiante podrá ver todos los reglamentos – aspectos legales que rigen la modalidad en la que se encuentra (proyecto de grado).
Precondiciones Deben existir los reglamentos actualizados dentro del sistema de la Base de Datos
Pos condiciones Reglamentos consultados con éxito.
Excepciones Que no existan los reglamentos actualizados dentro de la Base de Datos.
177
Tabla 21. Actor: Estudiante – Caso de uso: Consultar Aprobación de Proyecto
Tabla 22. Actor: Estudiante – Caso de uso: Cambiar clave
Caso de uso Consultar Aprobación De Proyecto
Actor Estudiante
Resumen El estudiante podrá ver los detalles de la aprobación de su proyecto de grado.
Precondiciones Debe de existir un proyecto de grado inscrito.
Pos condiciones Consulta de reporte de aprobación de proyecto de grado Realizada con éxito.
Excepciones Que no exista un reporte de aprobación registrado, el proyecto se encuentra en un estado de: “en espera”.
Caso de uso Cambiar clave
Actor Estudiante
Resumen Se podrá cambiar la clave por parte del usuario en el momento en que se considere pertinente, este proceso se hace directamente con la Base de Datos la cual valida que los datos ingresados son los correctos.
Precondiciones Debe de existir como usuario registrado dentro de la base de datos.
Pos condiciones Cambio de clave realizada con éxito.
Excepciones Que no exista como usuario registrado.
178
Tabla 23. Actor: Estudiante – Caso de uso: Inscribir Práctica Profesional
Tabla 24. Actor: Estudiante – Caso de uso: Consultar detalle práctica profesional
Caso de uso Inscribir Practica Profesional
Actor Estudiante
Resumen De forma rápida el estudiante escogerá la facultad a la que pertenece, el programa y carga el perfil estudiantil en el portal para ser evaluado por el coordinador de prácticas.
Precondiciones El archivo a cargar debe estar en los formatos soportados por el aplicativo.
Pos condiciones Perfil estudiantil inscrito con éxito.
Excepciones Que el archivo a cargar no esté en formato valido para el portal.
Caso de uso Consultar Detalle Práctica Profesional
Actor Estudiante
Resumen El estudiante podrá ver todos los detalles de la práctica profesional en desarrollo, como fecha inicio, fecha de finalización, horario, cargo dentro de la empresa, funciones, etc.
Precondiciones Debe de existir una práctica asignada con anterioridad por parte del coordinador de prácticas profesionales.
Pos condiciones
Consulta de práctica profesional realizada con éxito.
Excepciones Que no se haya asignado una práctica aun por parte del coordinador.
179
Tabla 25. Actor: Estudiante – Caso de uso: Subir Plan de Acción
Tabla 26. Actor: Estudiante – Caso de uso: Subir Informes de Práctica
Caso de uso Subir Plan de Acción
Actor Estudiante
Resumen En el momento en que sea necesario el estudiante podrá subir el plan de acción propuesto para la práctica, revisado con anterioridad por el jefe inmediato.
Precondiciones El archivo a cargar debe estar en los formatos soportados por el aplicativo.
Pos condiciones Plan de acción cargado con éxito.
Excepciones Que el archivo a cargar no esté en formato valido para el portal.
Caso de uso Subir Informes de Práctica
Actor Estudiante
Resumen En el momento en que sea necesario el estudiante podrá subir los distintos informes de la práctica.
Precondiciones El archivo a cargar debe estar en los formatos soportados por el aplicativo.
Pos condiciones Informes cargados con éxito.
Excepciones Que el archivo a cargar no esté en formato valido para el portal.
180
Tabla 27. Actor: Estudiante – Caso de uso: Consultar reglamento de práctica profesional
Tabla 28. Actor: Estudiante – Caso de uso: Cambiar clave
Caso de uso Consultar Reglamento de Prácticas Profesionales
Actor Estudiante
Resumen El estudiante podrá ver todos los reglamentos – aspectos legales que rigen la modalidad en la que se encuentra (práctica profesional).
Precondiciones Deben existir los reglamentos actualizados dentro del sistema de la Base de Datos
Pos condiciones
Reglamentos consultados con éxito.
Excepciones Que no existan los reglamentos actualizados dentro de la Base de Datos.
Caso de uso Cambiar clave
Actor Estudiante
Resumen Se podrá cambiar la clave por parte del usuario en el momento en que se considere pertinente, este proceso se hace directamente con la Base de Datos la cual valida que los datos ingresados son los correctos.
Precondiciones Debe de existir como usuario registrado dentro de la base de datos.
Pos condiciones
Cambio de clave realizada con éxito.
Excepciones Que no exista como usuario registrado.
181
Usuario director:
Figura 13. Casos de uso – Actor: Director _Proyectos
182
Descripción detallada de los requerimientos
Tabla 29. Actor: Director de Proyecto – Caso de uso: Validar entrada
Caso de uso Validar entrada Actor Director de Proyectos Resumen Ingresa sus datos como nombre de usuario y clave. El sistema
hace la comparación de los datos suministrados con los del BD,autorizando o negando el ingreso al aplicativo por parte de eseactor
Precondiciones Este actor debe estar registrado como usuario dentro de la Base de Datos
Pos condiciones Usuario validado
Excepciones Que este actor no se encuentre registrado como usuario dentro de la Base de Datos
Tabla 30. Actor: Director de Proyecto – Caso de uso: Consultar lista de Proyectos
Asignados
Caso de uso Consultar Lista de Proyectos Asignados
Actor Director de Proyectos
Resumen El director podrá ver todos los proyectos asignados a él para desarrollar.
Precondiciones Deben existir proyectos asignados a el por parte del comité de investigación.
Pos condiciones Consulta de proyectos asignados realizada con éxito.
Excepciones Que no se haya asignado un proyecto por parte del comité de investigación.
183
Tabla 31. Actor: Director de Proyecto – Caso de uso: Ver detalles del proyecto aprobado
Tabla 32. Actor: Director de Proyecto – Caso de uso: Validar entrada
Caso de uso Ver Detalles del Proyecto Asignado
Actor Director de Proyectos
Resumen Se mostrarán datos como el titulo del proyecto, línea de investigación, los núcleos tratados, el estado del proyecto y los integrantes inscritos en el proyecto.
Precondiciones Debe haber un proyecto asignado al director.
Pos condiciones Detalles consultados con éxito.
Excepciones Que no exista proyectos asignados.
Caso de uso Crear Asesoría
Actor Director de Proyectos
Resumen Se ingresa la información de las asesorías que se realizan a los integrantes de un grupo de trabajo, como el tema a tratar, las observaciones, el compromiso y la fecha de la próxima asesoría.
Precondiciones Debe existir una inscripción de un proyecto para asesorar y el director estar asignado a uno de ellos.
Pos condiciones Asesoría realizada con éxito.
Excepciones Que no exista el registro del proyecto o no esté asignado como director a un proyecto.
184
Tabla 33. Actor: Director de Proyecto – Caso de uso: Consultar asesoría
Tabla 34. Actor: Director de Proyecto – Caso de uso: Consultar reglamentos de proyectos
de grado
Caso de uso Consultar Asesoría
Actor Director de Proyectos
Resumen Se consultara toda la información de las asesorías realizadas a los integrantes de un proyecto de grado al cual el director está asesorando, como el tema, las observaciones y los compromisos.
Precondiciones Deben de existir asesorías registradas a este proyecto de grado por el director asignado.
Pos condiciones Consulta de asesoría de proyecto de grado realizada con éxito.
Excepciones Que no se hayan registrado asesorías a ese proyecto en particular, o no esté aprobado aun.
Caso de uso Consultar Reglamento de Proyectos de Grado
Actor Director de Proyectos
Resumen El director podrá ver todos los reglamentos – aspectos legales que rigen el Proyecto de Grado.
Precondiciones Deben existir los reglamentos actualizados dentro del sistema de la Base de Datos
Pos condiciones Reglamentos consultados con éxito.
Excepciones Que no existan los reglamentos actualizados dentro de la Base de Datos.
185
Tabla 35. Actor: Director de Proyecto – Caso de uso: Cambiar clave
Caso de uso Cambiar clave
Actor Director de Proyectos
Resumen Se podrá cambiar la clave por parte del usuario en el momento en que se considere pertinente, este proceso se hace directamente con la Base de Datos la cual valida que los datos ingresados son los correctos.
Precondiciones Debe de existir como usuario registrado dentro de la base de datos.
Pos condiciones Cambio de clave realizada con éxito.
Excepciones Que no exista como usuario registrado.
186
Usuario comité de investigación:
Figura 14. Casos de uso – Actor: Comité de Investigación
187
Descripción detallada de los requerimientos
Tabla 36. Actor: Comité de Investigación – Caso de uso: Validar entrada
Caso de uso Validar entrada Actor Comité de Investigación Resumen Ingresa sus datos como nombre de usuario y clave. El sistema
hace la comparación de los datos suministrados con los del BD,autorizando o negando el ingreso al aplicativo por parte de eseactor
Precondiciones Este actor debe estar registrado como usuario dentro de la Base deDatos.
Pos condiciones Usuario validado
Excepciones Que este actor no se encuentre registrado como usuario dentro dela Base de Datos
Tabla 37. Actor: Comité de Investigación – Caso de uso: Consultar lista de proyectos
asignados
Caso de uso Consultar Lista de Proyectos Asignados
Actor Comité de Investigación
Resumen El comité podrá ver todos los proyectos de grado y observar los diferentes estados en los que se encuentran (aprobados, rechazados, etc.).
Precondiciones Deben existir proyectos inscritos por los estudiantes.
Pos condiciones
Consulta de proyectos inscritos realizada con éxito.
Excepciones Que no se haya registrado un proyecto por parte del estudiantado.
188
Tabla 38. Actor: Comité de Investigación – Caso de uso: Ver detalles del proyecto de
grado
Tabla 39. Actor: Comité de Investigación – Caso de uso: Ejecutar consulta
Caso de uso Ver Detalles del Proyecto de Grado
Actor Comité de Investigación
Resumen Se mostrarán datos como el titulo del proyecto, línea de investigación, los núcleos tratados, el director propuesto por los estudiantes y los integrantes inscritos en el proyecto.
Precondiciones Debe haber un proyecto inscrito.
Pos condiciones Detalles consultados con éxito.
Excepciones Que no exista proyectos inscrito.
Caso de uso Ejecutar Consulta
Actor Comité de Investigación
Resumen El comité podrá ejecutar una consulta para mostrar todos los proyectos inscritos.
Precondiciones Deben existir proyectos inscritos para mostrar en la consulta.
Pos condiciones Consulta de proyectos inscritos realizada con éxito.
Excepciones Que no se haya registrado un proyecto por parte del estudiantado.
189
Tabla 40. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por estado
Tabla 41. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por
programas
Caso de uso Consultar Proyectos por Estado
Actor Comité de Investigación
Resumen El comité solo podrá ver todos los proyectos de grado por el estado en que se encuentren (aprobado, rechazado, aplazado, en sustentación, terminado).
Precondiciones Deben existir proyectos inscritos por los estudiantes.
Pos condiciones Consulta de proyectos por Estado realizada con éxito.
Excepciones Que no se haya registrado un proyecto por parte del estudiantado.
Caso de uso Consultar Proyectos por Programas
Actor Comité de Investigación
Resumen El comité solo podrá ver todos los proyectos de grado por el programa al que estén adscritos (sistemas, industrial).
Precondiciones Deben existir proyectos inscritos por los estudiantes.
Pos condiciones Consulta de proyectos por Programa realizada con éxito.
Excepciones Que no se haya registrado un proyecto por parte del estudiantado.
190
Tabla 42. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por línea de
investigación
Tabla 43. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por núcleo
temático
Caso de uso Consultar Proyectos por Líneas de Investigación
Actor Comité de Investigación
Resumen El comité solo podrá ver todos los proyectos de grado por la Línea de investigación relacionada con el proyecto inscrito (Ingeniería del Software, Producción).
Precondiciones Deben existir proyectos inscritos por los estudiantes.
Pos condiciones Consulta de proyectos por Línea de Investigación realizada con éxito.
Excepciones Que no se haya registrado un proyecto por parte del estudiantado.
Caso de uso Consultar Proyectos por Núcleo Temático
Actor Comité de Investigación
Resumen El comité solo podrá ver todos los proyectos de grado por el núcleo temático que adscritos a su línea de investigación relacionada con el proyecto inscrito (Desarrollo de aplicaciones Web).
Precondiciones Deben existir proyectos inscritos por los estudiantes.
Pos condiciones
Consulta de proyectos por Núcleo temático realizada con éxito.
Excepciones Que no se haya registrado un proyecto por parte del estudiantado.
191
Tabla 44. Actor: Comité de Investigación – Caso de uso: Consultar proyectos por fecha
de creación
Tabla 45. Actor: Comité de Investigación – Caso de uso: Aprobar proyecto de grado
Caso de uso Consultar Proyectos por Fecha de Creación
Actor Comité de Investigación
Resumen El comité solo podrá ver todos los proyectos de grado por la fecha en que el proyecto fue inscrito (Fecha de Inscripción, Fecha de Aprobación).
Precondiciones Deben existir proyectos inscritos por los estudiantes.
Pos condiciones Consulta de proyectos por Núcleo temático realizada con éxito.
Excepciones Que no se haya registrado un proyecto por parte del estudiantado.
Caso de uso Aprobar Proyecto de Grado
Actor Comité de Investigación
Resumen Se mostrarán datos como el titulo del proyecto y el director propuesto, se ingresará el comentario de aprobación por parte del comité, se escogerá el director que el comité apruebe y se le asignara un estado al proyecto (aprobado, rechazado).
Precondiciones Debe haber un proyecto inscrito.
Pos condiciones Aprobación realizada con éxito.
Excepciones Que no exista proyectos inscrito.
192
Tabla 46. Actor: Comité de Investigación – Caso de uso: Descargar documento propuesta
Tabla 47. Actor: Comité de Investigación – Caso de uso: Gestionar línea de investigación
Caso de uso Descargar Documento Propuesta
Actor Comité de Investigación
Resumen El comité tendrá la posibilidad de descargar la propuesta cargada con anterioridad por el estudiante, revisar todos los ítems, para luego ser aprobada.
Precondiciones Debe haber un archivo cargado.
Pos condiciones Descarga realizada con éxito.
Excepciones Que no exista archivos cargados.
Caso de uso Gestionar Líneas de Investigación
Actor Comité de Investigación
Resumen Ingresa los datos como nombre de la línea de investigación y la escogencia del programa a la que pertenece. El sistema hace el registro del nombre dentro de la base de datos.
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Línea de Investigación registrada con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
193
Tabla 48. Actor: Comité de Investigación – Caso de uso: Gestionar núcleos temáticos
Tabla 49. Actor: Comité de Investigación – Caso de uso: Consultar reglamento de
proyectos de grado
Caso de uso Gestionar Núcleos Temáticos
Actor Comité de Investigación
Resumen Ingresa los datos como nombre del núcleo temático y la escogencia de la línea a la que pertenece. El sistema hace el registro del nombre dentro de la base de datos.
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Línea de Investigación registrada con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
Caso de uso Consultar Reglamento de Proyectos de Grado
Actor Comité de Investigación
Resumen El director podrá ver todos los reglamentos – aspectos legales que rigen el Proyecto de Grado.
Precondiciones Deben existir los reglamentos actualizados dentro del sistema de la Base de Datos
Pos condiciones Reglamentos consultados con éxito.
Excepciones Que no existan los reglamentos actualizados dentro de la Base de Datos.
194
Tabla 50. Actor: Comité de Investigación – Caso de uso: Cambiar clave
Caso de uso Cambiar clave
Actor Comité de Investigación
Resumen Se podrá cambiar la clave por parte del usuario en el momento en que se considere pertinente, este proceso se hace directamente con la Base de Datos la cual valida que los datos ingresados son los correctos.
Precondiciones Debe de existir como usuario registrado dentro de la base de datos.
Pos condiciones Cambio de clave realizada con éxito.
Excepciones Que no exista como usuario registrado.
195
Usuario coordinador de práctica profesional:
Figura 15. Casos de uso – Actor: Coordinador de Practicas
196
Descripción detallada de los requerimientos
Tabla 51. Actor: Coordinador de prácticas – Caso de uso: Validar entrada
Caso de uso Validar entrada Actor Coordinador de Prácticas Resumen Ingresa sus datos como nombre de usuario y clave. El sistema
hace la comparación de los datos suministrados con los del BD,autorizando o negando el ingreso al aplicativo por parte de eseactor
Precondiciones Este actor debe estar registrado como usuario dentro de la Basede Datos.
Pos condiciones Usuario validado
Excepciones Que este actor no se encuentre registrado como usuario dentro de la Base de Datos
Tabla 52. Actor: Coordinador de prácticas – Caso de uso: Consultar lista de perfiles
estudiantiles
Caso de uso Consultar Lista de Perfiles Estudiantes
Actor Coordinador de Prácticas
Resumen El coordinador de prácticas podrá ver todos los perfiles de estudiantes, nombre del estudiante y fecha de inscripción del perfil y detalles para descargar.
Precondiciones Deben existir perfiles inscritos con anterioridad por parte de los estudiantes.
Pos condiciones Consulta de perfiles estudiantil realizada con éxito.
Excepciones Que no se hayan inscrito perfiles por parte de los estudiantes.
197
Tabla 53. Actor: Coordinador de prácticas – Caso de uso: Descargar perfil estudiante
Tabla 54. Actor: Coordinador de prácticas – Caso de uso: Enviar perfil estudiantil
Caso de uso Descargar Perfil Estudiante
Actor Coordinador de Prácticas
Resumen El Coordinador de Prácticas tendrá la posibilidad de descargar el perfil cargado con anterioridad por el estudiante, revisar todos los ítems, para luego ser enviado a las distintas empresas vinculadas.
Precondiciones Debe haber un archivo cargado.
Pos condiciones Descarga realizada con éxito.
Excepciones Que no exista archivos cargados.
Caso de uso Enviar Perfil Estudiantil
Actor Coordinador de Prácticas
Resumen Se mostrarán datos personales del estudiante como nombre, cedula, apellidos, se escogerá la empresa que este acorde con el perfil y se le asignara un jefe inmediato.
Precondiciones Debe haber un perfil y una empresa inscritos.
Pos condiciones Envío realizado con éxito.
Excepciones Que no exista perfiles ni empresas inscritos.
198
Tabla 55. Actor: Coordinador de prácticas – Caso de uso: Enviar perfil estudiantil
Tabla 56. Actor: Coordinador de prácticas – Caso de uso: Consultar reglamento de
prácticas profesionales
Caso de uso Asignar Práctica Profesional
Actor Coordinador de Prácticas
Resumen Se mostrarán datos como nombre del estudiante y la empresa a que fue remitido, se ingresará datos como año inicio de práctica, periodo, fecha en que se finalizo la práctica, el objetivo y el horario de la misma, para luego el estudiante pueda consultar.
Precondiciones El estudiante debe tener una empresa asociada.
Pos condiciones Asignación realizada con éxito.
Excepciones Que no exista relación del estudiante con ninguna empresa aún.
Caso de uso Consultar Reglamento de Prácticas Profesionales.
Actor Coordinador de Prácticas
Resumen El Coordinador de Prácticas podrá ver todos los reglamentos – aspectos legales que rigen las prácticas.
Precondiciones Deben existir los reglamentos actualizados dentro del sistema de la Base de Datos
Pos con diciones Reglamentos consultados con éxito.
Excepciones Que no existan los reglamentos actualizados dentro de la Base de Datos.
199
Tabla 57. Actor: Coordinador de prácticas – Caso de uso: Consultar plan de acción
Tabla 58. Actor: Coordinador de prácticas – Caso de uso: Consultar informes de práctica
Caso de uso Consultar Plan de Acción.
Actor Coordinador de Prácticas
Resumen El Coordinador de Prácticas podrá ver el listado de plan de acción cargados por cada estudiante con anterioridad.
Precondiciones Deben existir un archivo actualizado dentro del sistema de la Base de Datos
Pos condiciones Plan de acción consultado con éxito.
Excepciones Que no exista un plan de acción actualizado dentro de la Base de Datos.
Caso de uso Consultar Informes de Práctica.
Actor Coordinador de Prácticas
Resumen El Coordinador de Prácticas podrá ver el listado de informes de prácticas cargados por cada estudiante con anterioridad.
Precondiciones Deben existir un archivo actualizado dentro del sistema de la Base de Datos
Pos condiciones Informes de prácticas consultado con éxito.
Excepciones Que no exista un Informes de prácticas actualizado dentro de la Base de Datos.
200
Tabla 59. Actor: Coordinador de prácticas – Caso de uso: Gestionar empresas
Tabla 60. Actor: Coordinador de prácticas – Caso de uso: Gestionar Jefe inmediato
Caso de uso Gestionar Empresas.
Actor Coordinador de Prácticas
Resumen Ingresa los datos como nombre de la empresa, representante legal, cedula del representante, actividad que desempeña, los documentos que requiere el estudiante, se hace la escogencia del municipio al que pertenece la empresa. El sistema hace el registro de los datos dentro de la base de datos.
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Empresa registrada con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
Caso de uso Gestionar Jefe Inmediato – Práctica
Actor Coordinador de Prácticas
Resumen Ingresa los datos como cedula, nombre, apellido, dirección, teléfono, e-mail, tel. celular, empresa, titulo y cargo.
Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios en blanco.
Pos condiciones Jefe Inmediato - Práctica registrado con éxito.
Excepciones Que en los datos se ingresen valores no admitidos
201
Tabla 61. Actor: Coordinador de prácticas – Caso de uso: Ver detalles de perfil inscrito
Tabla 62. Actor: Coordinador de prácticas – Caso de uso: Cambiar clave
Caso de uso Ver Detalles de perfil inscrito
Actor Coordinador de Prácticas
Resum en Se mostrarán datos como el titulo del proyecto, línea de investigación, los núcleos tratados, el estado del proyecto y los integrantes inscritos en el proyecto.
Precondiciones Debe haber un proyecto asignado al director.
Pos condiciones Detalles consultados con éxito.
Excepciones Que no exista proyectos asignados.
Caso de uso Cambiar clave
Actor Coordinador de Prácticas
Resumen Se podrá cambiar la clave por parte del usuario en el momento en que se considere pertinente, este proceso se hace directamente con la Base de Datos la cual valida que los datos ingresados son los correctos.
Precondiciones Debe de existir como usuario registrado dentro de la base de datos.
Pos condiciones Cambio de clave realizada con éxito.
Excepciones Que no exista como usuario registrado.
202
Usuario jefe inmediato:
Figura 16. Casos de uso – Actor: Jefe Inmediato
203
Descripción detallada de los requerimientos
Tabla 63. Actor: Jefe Inmediato – Caso de uso: Validar entrada
Caso de uso Validar entrada Actor Jefe Inmediato – Práctica Resumen Ingresa sus datos como nombre de usuario y clave. El sistema
hace la comparación de los datos suministrados con los del BD, autorizando o negando el ingreso al aplicativo por parte de ese actor
Precondiciones Este actor debe estar registrado como usuario dentro de la Base de Datos.
Pos condiciones Usuario validado
Excepciones Que este actor no se encuentre registrado como usuario dentro de la Base de Datos
Tabla 64. Actor: Jefe Inmediato – Caso de uso: Consultar lista de perfiles estudiantiles
Caso de uso Consultar Lista de Perfiles Estudiantes
Actor Jefe Inmediato – Práctica
Resumen El Jefe Inmediato – Práctica de prácticas podrá ver todos los perfiles de estudiantes, nombre del estudiante, programa al que pertenece y detalles para descargar.
Precondiciones Deben existir perfiles enviados con anterioridad por parte del coordinador.
Pos condiciones Consulta de perfiles estudiantil realizada con éxito.
Excepciones Que no se hayan enviado perfiles por parte del coordinador de prácticas.
204
Tabla 65. Actor: Jefe Inmediato – Caso de uso: Descargar perfil estudiantil
Tabla 66. Actor: Jefe Inmediato – Caso de uso: Consultar reglamento de práctica
profesional
Caso de uso Descargar Perfil Estudiante
Actor Jefe Inmediato – Práctica
Resumen El Jefe Inmediato – Práctica tendrá la posibilidad de descargar el perfil enviado con anterioridad por el coordinador, revisar todos los ítems, para luego asignar el tipo de labor.
Precondiciones Debe haber un archivo cargado.
Pos condiciones Descarga realizada con éxito.
Excepciones Que no exista archivos cargados.
Caso de uso Consultar Reglamento de Prácticas Profesionales.
Actor Jefe Inmediato – Práctica
Resumen El Jefe Inmediato – Práctica podrá ver todos los reglamentos – aspectos legales que rigen las prácticas.
Precondiciones Deben existir los reglamentos actualizados dentro del sistema de la Base de Datos
Pos condiciones Reglamentos consultados con éxito.
Excepciones Que no existan los reglamentos actualizados dentro de la Base de Datos.
205
Tabla 67. Actor: Jefe Inmediato – Caso de uso: Asignar tipo de labor
Tabla 68. Actor: Jefe Inmediato – Caso de uso: Cambiar clave
Caso de us o Asignar Tipo de Labor
Actor Jefe Inmediato – Práctica
Resumen Se mostrarán datos como nombre del estudiante, cedula, apellidos, e-mail, teléfono celular, se ingresará datos como el cargo que tendrá dentro de la empresa y las funciones que desempeñará, para luego el estudiante pueda consultar.
Precondiciones Deben existir perfiles en lista para asignación.
Pos condiciones Asignación realizada con éxito.
Excepciones Que no exista ningún estudiante en la lista de asignación.
Caso de uso Cambiar clave
Actor Jefe Inmediato – Práctica
Resumen Se podrá cambiar la clave por parte del usuario en el momento en que se considere pertinente, este proceso se hace directamente con la Base de Datos la cual valida que los datos ingresados son los correctos.
Precondiciones Debe de existir como usuario registrado dentro de la base de datos.
Pos condiciones Cambio de clave realizada con éxito.
Excepciones Que no exista como usuario registrado.
206
10.2. ESPECIFICACIÓN DE LA ARQUITECTURA DEL SISTEM A
El Portal Web a desarrollar en este proyecto está basado en una arquitectura
multicapas compuesta básicamente por las siguientes capas: la capa de
presentación, la capa de lógica de negocio y la capa de datos. Cada una de las
capas que conforman El Portal posee sus propias especificaciones de diseño las
cuales están representadas a través de diferentes diagramas o modelos.
Gráficamente la arquitectura es:
Figura 17. Arquitectura – Aplicación Web
207
10.2.1. Capa de presentación.
Los servicios de presentación proporcionan la interfaz necesaria para presentar
información y reunir datos. También aseguran los servicios de negocios
necesarios para ofrecer las capacidades de transacciones requeridas e integrar al
usuario con la aplicación para ejecutar un proceso de negocios.
Los servicios de presentación generalmente son identificados con la interfaz de
usuario, y normalmente residen en un programa ejecutable localizado en la
estación de trabajo del usuario final. Aún así, existen oportunidades para
identificar servicios que residen en componentes separados.
El cliente proporciona el contexto de presentación, generalmente un browser como
Microsoft Internet Explorer o Netscape Navigator, que permite ver los datos
remotos a través de una capa de presentación HTML, o también una aplicación
desktop como por ejemplo Win32.
Mediante el uso de componentes, se separa la programación que da acceso a los
datos en las bases de datos y aplicaciones desde el diseño y otros contenidos de
la página Web. Esto ayuda a asegurar que los desarrolladores estén libres para
enfocarse en escribir su lógica de negocios en componentes sin preocuparse
acerca de cómo se muestra la salida. Recíprocamente, esto da libertad a los
diseñadores de usar herramientas familiares para modificar la interfaz.
La capa de servicios de presentación es responsable de:
• Obtener información del usuario
• Enviar la información del usuario a los servicios de negocios para su
procesamiento.
208
• Recibir los resultados del procesamiento de los servicios de negocios
• Presentar estos resultados a el usuario
Para el diseño de la GUI del Portal Web se ha creado el siguiente esquema:
Figura 18. Esquema creado para Aplicación Web
209
10.2.2. Capa de datos.
En esta parte del proyecto nos enfocaremos en cómo se administrará la
estabilidad de nuestro sistema, con el fin de desarrollar un diseño físico de la
estructura de los datos, que satisfaga todos los requisitos del sistema de
información.
El nivel de servicios de datos es responsable de:
• Almacenar datos
• Recuperar datos
• Mantener los datos
• Integridad en los datos
Los servicios de datos tienen una variedad de formas y tamaños, incluyendo los
sistemas de administración de bases de datos relacionales (SABDs) como
Microsoft SQL Server, servidores de correo electrónico como Microsoft Exchange
Server y sistemas de archivos tales como el Sistema de Archivos NTFS.
La representación de la estructura física de los datos en nuestra aplicación, es un
poco compleja de representar puesto que los objetos no se estructuran con un
diagrama de clases propiamente dicho ya que esta se encuentra inmersa en los
diferentes archivos que componen la aplicación Web
210
11. FASE DE CONSTRUCCIÓN
Cuando se plantea la construcción de un sitio Web accesible desde cero, existen
una serie de fases principales, para conseguir el resultado esperado y no llevarse
sorpresas decepcionantes. Por supuesto, esto es sólo la teoría, en la vida real no
siempre se pueden seguir los pasos al completo ya que el tiempo muchas veces
es el que manda.
Son tres fases principales:
Contenido y estructuración: En primer lugar, se debe preocupar únicamente por lo
qué se quiere transmitir a los usuarios y que estructuras son las más adecuadas
para esta información. Ahora se despreocupa de cómo serán presentados estos
elementos en el Portal Web.
Presentación: Una vez que se tienen claras las estructuras que formaran el Portal
Web, es el momento de decidir cómo va a ser la presentación visual de dichos
elementos. Es obligatorio separar el contenido de la presentación, por lo que todo
el trabajo en esta fase se hará definiendo estilos para los diferentes elementos que
hemos creado en la fase anterior.
Revisión: Una vez en esta última fase, ya se tiene construido el Portal Web, pero
es necesario una etapa de revisión de los diferentes requisitos de accesibilidad, y
si es posible que dicha revisión la lleve a cabo una persona diferente a la que ha
construido al Portal Web. Cuanto más tiempo dediquemos a la etapa de revisión
de accesibilidad mejor será el resultado obtenido.
211
En esta fase de construcción del Portal Web, se mostrarán los recursos hardware
y software que intervinieron en la realización de dicho proceso, como también los
que serán necesarios para la implementación de la aplicación en un sistema
212
12. COPIAS DE SEGURIDAD Y RESTAURACION DE
SISTEMA
Las copias de seguridad para la base de datos se realizará por medio de una
herramienta llamada MySQL Administrator, esta facilitará los procesos de
guardado de las copias.
Se dejará encargado al administrador de la plataforma de hacer las copias de
seguridad diariamente, para tener plan de contingencia en caso de pérdida de
información o caídas de sistema.
A continuación se mostrará el procedimiento para realizar las copias de
seguridad.
- Conexión con la base de datos
213
El encargado ejecutará la herramienta MySQL Administrator, ingresará unos datos
en los campos requeridos:
Server Host: Por defecto la herramienta mostrará local host ó 127.0.0.1
Port: Mostrará por defecto el puerto de conexión.
Username: Aparecerá el usuario que por defecto se configura en la instalación de
la herramienta.
Password: Se ingresará la clave que tiene en la conexión a la base de datos.
Se hace click en la opción Backup en el panel de opciones de lado izquierdo de la
herramienta;
214
Luego se hace click en el botón New Project, que se encuentra en la parte inferior
de la herramienta.
Al hacer click en este botón se habilitaran los demás campos que se encuentran
en la parte central de la herramienta.
1. Se escoge la base de datos a la cual se le va a hacer la copia de
seguridad y en el campo Project Name se le asigna el nombre con
que se va a guardar la copia de seguridad.
2. Se envía la base de datos a la ventana de contenido dándole un
click en el botón.
2 1
215
3. Se le da el nombre con el que se quiere guardar el proyecto.
4. Se le da click en el botón Execute Backup Now.
3
4
216
5. Se escoge la ruta de donde se va a guardar el proyecto o copia de
seguridad de la base de datos y se le da un click a el botón
guardar.
5
217
6. Y por ultimo esperamos a que se cree el archivo .SQL y se le da
un click a el botón Ok, para finalizar el proceso y proceder a cerrar
la herramienta
6
218
Para restaurar las copias de seguridad se mostrará a continuación el
procedimiento.
- Conexión con la base de datos
El encargado ejecutará la herramienta MySQL Administrator, ingresará unos datos
en los campos requeridos:
Server Host: Por defecto la herramienta mostrará local host ó 127.0.0.1
Port: Mostrará por defecto el puerto de conexión.
Username: Aparecerá el usuario que por defecto se configura en la instalación de
la herramienta.
Password: Se ingresará la clave que tiene en la conexión a la base de datos.
219
Se hace click en la opción Restore en el panel de opciones de lado izquierdo de la
herramienta;
Luego se hace click en el botón Open Backup File, que se encuentra en la parte
inferior de la herramienta.
220
Se escoge la ruta de donde se va a cargar el proyecto o copia de seguridad de la
base de datos, se selecciona el archivo y se le da un click a el botón abrir.
221
Cuando el archivo .SQL ya está cargado en la herramienta es solo dar un click en
el botón Start Restore, para comenzar con la restauración de la copia de
seguridad.
222
Cuando se finaliza la restauración de la base de datos mostrará una lectura en la
parte inferior del cuadro de mensajes, que dirá que el proceso finalizó
correctamente.
Por último se da un click en el botón Close y la base de datos a quedado cargada
en la herramienta lista para usar.
223
13. GLOSARIO
• OFUSCACION: es el arte de hacer tan confuso e ilegible el código fuente
de un programa, que sea casi imposible de interpretar.
• PDF (Portable Document Format): formato de documento portable, es el
formato de archivos desarrollado por Adobe Systems y creado
originalmente exclusivo con los programas Adobe Acrobat Reader de
Adobe Acrobat; El término pdf también se utiliza como formato pdf (lo cual
es redundante, aunque muy utilizado), actualmente es un formato abierto.
• DHTML (Dinamic HTML): son aplicaciones que contienen objetos y
eventos y se procesan en el lado del cliente dentro del navegador Web. Se
trata de una tecnología (o mejor, un conjunto de tecnologías) que permiten
hacer páginas web dinámicas. Suele hacer referencia a páginas que
realicen efectos o implementen interactividades en la parte del cliente. Es
decir, que el procesamiento de los efectos se realiza en el propio
navegador.
• LAMP (Linux-Apache-MySQL- PHP/Python/PERL): El término hace
referencia al sistema creado por la conjunción de esas aplicaciones libres
(de código abierto). Este grupo de aplicaciones generalmente son usados
para crear servidores web.
224
• DOM (Document Object Model): modelo de objetos de documento,
especificación que determina cómo los objetos (texto, imágenes, enlaces,
etc.) en una página web son representados, el HTML dinámico (DHTML) se
basa en el DOM para cambiar dinámicamente la apariencia de las páginas
web después de que han sido descargadas por un navegador.
• CSS (Cascading Style Sheets): hojas de estilo en cascada, que es un
lenguaje que describe la presentación de los documentos estructurados en
hojas de estilo para diferentes métodos de interpretación, es decir, describe
cómo se va a mostrar un documento en pantalla, por impresora, por voz
(cuando la información es pronunciada a través de un dispositivo de lectura)
o en dispositivos táctiles basados en Braille.
• W3C (Consorcio W3 o consorcium W3): Se refiere a una organización
apoyada por el MIT y el CERN, entre muchos más cuya meta es la
estandarización de las políticas de Internet. El Consorcio World Wide Web
(W3C) desarrolla tecnologías inter-operativas (especificaciones, líneas
maestras, software y herramientas) para guiar la red a su potencialidad
máxima a modo de foro de información, comercio, comunicación y
conocimiento colectivo.
• ASP (Active Server Page): es una tecnología de script que corre del lado
de servidor y puede ser usado para crear aplicaciones web dinámicas e
interactivas. Una página ASP es una página HTML que contienen scripts
que corren del lado del servidor que son procesados por un servidor web
225
antes de ser utilizado por el navegador. Se puede combinar ASP con XML
(Extensible Markup Language) para crear sitios Web interactivos
poderosos.
• PERL (Lenguaje Práctico para la Extracción e Inform e): es un lenguaje
de programación creado por Larry Wall en 1987, utilizado en el WWW a
través de un CGI, principalmente para realizar consultas a bases de datos
como Oracle, SQL-Server, SyBase, etc, o herramientas locales. Perl es un
lenguaje para manipular textos, archivos y procesos, proporciona una forma
fácil y legible para realizar trabajos que normalmente se realizarían en Co
en un shell. Este lenguaje nació y se ha difundido bajo el sistema operativo
UNIX, aunque existe para otras plataformas. Estructuralmente, está basado
en un estilo de bloques como los del C, y fue ampliamente adoptado por su
destreza en el procesado del texto y por no tener ninguna de las
limitaciones de los otros lenguajes de script.
• PYTHON: Lenguaje de programación desarrollado como proyecto de
código abierto y es administrado por la empresa Python software
Foundation. Fue creado por Guido van Rossum y su nombre se debe a la
afición de su creador a los humoristas británicos Monty Python. Se trata de
un lenguaje de programación en scripts, competencia directa con Perl.
Python permite dividir el programa en módulos reutilizables desde otros
programas Python.
226
• WSGI (Web Server Gateway Interface): es una interface simple y
universal entre los servidores web y las aplicaciones web o frameworks.
• CGI (Common Gateway Interface): interfaz de acceso común, es un
mecanismo estándar por la extensión de la funcionalidad del servidor web a
través de ejecuciones de programas o script sobre el mismo servidor web
en respuesta a las interrogaciones de los buscadores web.
• JSP (Java Server Page): página de Servidor Java, se refiere a un tipo
especial de páginas HTML, en las cuales se insertan pequeños programas
que corren sobre Internet (comunmente denominados scripts), se procesan
en línea para finalmente desplegar un resultado final al usuario en forma de
HTML. Por lo general dichos programas hacen consultas a bases de datos
y dependiendo del resultado que se despliegue será la información que se
muestre a cada usuario de manera individual. Los archivos de este tipo
llevan la extensión “.jsp”.
• CF (ColdFussion): Servidor de páginas webs desarrollado originalmente
por Allaire y luego por Macromedia (actualmente de Adobe Systems) que
genera de manera rápida contenido dinámico por medio de tags especiales
embebidos en código HTML, incluso su programación es mediante tags
similares al HTML. La herramienta ColdFusion puede correr en servidores
web de Windows, Linux y Solaris; trabaja en el servidor HTTP para
procesar peticiones de páginas web, ejecutando el código en el servidor.
227
• APACHE: servidor web de código abierto, su desarrollo comenzó en
febrero de 1995, por Rob McCool, en una tentativa de mejorar el servidor
existente en el NCSA. La primera versión apareció en enero de 1996, el
Apache 1.0. Hacia el 2000, el servidor Web Apache era el más extendido
en el mundo. El nombre Apache es un acrónimo de (a patchy server), un
servidor de remiendos, es decir un servidor construido con código
preexistente y piezas y parches de código. Es la auténtica «kill app» del
software libre en el ámbito de los servidores y el ejemplo de software libre
de mayor éxito, por delante incluso del kernel Linux. Desde hace años, más
del 60% de los servidores web de Internet emplean Apache. La principal
competencia de Apache es el IIS (Microsoft Internet Information Services)
de Microsoft.
• IIS (Internet Information Services): es un conjunto de servicios para
servidores usando Microsoft Windows. Es especialmente usado en
servidores web, que actualmente es el segundo más popular sistema de
servidor web (a agosto de 2007, funciona en el 35% de los servidores de
todos los sitios web), utiliza el protocolo http para la transmisión de
documentos en el world wide web. IIS incorpora varias funciones de
protección y soporta programas CGI i los servers FTP.
• CHEROKEE: Servidor HTTP Cherokee es un servidor web libre,
multiplataforma, abierto bajo la licencia GPL. Apunta a ser un servidor web
bastante rápido que también soporta las funcionalidades más comunes de
servidor. Está escrito completamente en C, es escalable y puede usarse
como un Sistema integrado.
228
• NNTP (Network News Transfer Protocol): protocolo de transferencia de
noticias de red; a veces NNTP viene utilizado como adjetivo para describir
un servidor de noticias. Para los url (Union Resource Locator), por ejemplo,
el acrónimo NNTP no vienen utilizado.
• IMAP (Internet Message Access Protocol): protocolo de red de acceso a
mensajes electrónicos almacenados en un servidor. El protocolo IMAP le
permite a los usuarios acceder a los nuevos mensajes instantáneamente en
sus PCs, ya que el correo está almacenado en la red. Con POP3 los
usuarios tendrían que descargar el email a sus computadoras o accederlo
vía web.
• POP (Post Office Protocol): protocolo de Oficina de Correos, diseñado
para permitir a sistemas de usuario individual leer correo electrónico
almacenado en un servidor. Al contrario de otros protocolos creados con
anterioridad como el SMTP, el POP no necesita una conexión permanente
a Internet, puesto que es en el momento de la conexión cuando solicita al
servidor el envío de la correspondencia almacenada en el servidor para
dicho usuario.
229
• NCSA (Centro Nacional de Aplicaciones de Supercompu tación): su
principal aportación a la tecnología de internet es el haber introducido el
navegador Mosaic, actualmente este organismo con sede en Estados
Unidos juega un papel importante en el desarrollo de tecnologías para
Internet.
• RENDERIZACION (Del inglés rendering): la renderización es el proceso
de generar una imagen (imagen en 3D o una animación en 3D) a partir de
un modelo, usando una aplicación de computadora como 3D Studio Max.
• FTP (File Transfer Protocol): Es un mecanismo que permite la
transferencia de ficheros a través de una conexión TCP/IP. Es el protocolo
utilizado en Internet para la transferencia de ficheros, desde un ordenador a
otro (situados ambos en cualquier parte del mundo). Gracias a este tipo de
conexión será posible colocar (subir - upload) ficheros a un ordenador que
no es el nuestro. Del mismo modo, es posible obtener (bajar - download)
ficheros desde un ordenador, para colocarlos en el nuestro.
• SMTP (Simple Mail Transfer Protocol): Protocolo simple de transferencia
de correo, está diseñado para transferir correo confiable y eficaz. Se utiliza
ampliamente en instalaciones gubernamentales y educación y también es el
estándar utilizado por Internet para la transferencia de correo.
230
• IRC (Internet Relay Chat): Canal de Chat de Internet. Sistema para
transmisión de texto multiusuario a través de un servidor IRC. Usado
normalmente para conversar on-line también sirve para transmitir ficheros.
• P2P (Peer to Peer): en español algo similar a "de persona a persona" o de
"igual a igual". En el P2P los que interactúan, comparten un interés
específico y no necesariamente involucra comercio.
231
14. RECURSOS
14.1. RECURSOS FÍSICOS
• Hardware
Computador personal Pentium IV
Velocidad: 3.5 GHz
Memoria RAM DDR2: 1.5 GB
Disco Duro: 80 GB
Quemador LG de 32x
Tarjeta de red: Intel(R) PRO/100 VE Network Connection
Computador personal AMD Cemprom
Velocidad: 2.5 GHz
Memoria RAM DDR: 256 MB
Disco Duro: 40 GB
Quemador LG de 52x
Tarjeta de red: Adaptador Fast Ethernet compatible VIA
Impresoras
232
HP Deskjet 656 C
EPSON LX-300+
Memorias USB
2 Kingston de 2 GB
• Papelaria e insumos
Resmas de papel tamaño carta
Lapiceros
Fotocopias
Grapadora
Tinta
Cinta para impresión
Grapas
Cd
Diskettes
233
14.2. RECURSOS ECONÓMICOS
Numero Rubro Detalle Cantidad/unidad /horas
/hora consultoría
Valor Unitario
($)
Subtotal
($)
1 Papelería
Resmas de
Papel Tamaño
carta 500 hojas
4 9.500 38.000
Fotocopias 500 80 40.000
Grapadoras 1 3.500 3.500
Cartucho Tinta
Negra 1 150.000 150.000
Cartucho Tinta
Color 1 190.000 190.000
Recargas
Cartuchos de
Tinta
2 22.000 44.000
2 Gastos
Varios Internet 20 1.500 30.000
Llamadas
telefónicas 110 min 250 37.500
Transporte 300 1.000 300.000
3 Asesorías Horas de
asesorías 50 85.000 4´250.000
Total 5´083.000
234
14.3. RECURSOS HUMANOS
Estudiantes de ingeniería de sistemas
JOSÉ LUIS OVIEDO VARGAS.
C.C. 92’547.737 SINCELEJO – SUCRE.
ESTUDIANTE INGENIRIA DE SISTEMAS
MARIO RAFAEL GUTIÉRREZ MENESES.
C.C. 1`102.799.471 SINCELEJO – SUCRE.
ESTUDIANTE INGENIRIA DE SISTEMAS
LUIS MIGUEL GOMEZ ACUÑA
C.C. 8.865.313 MAGANGUE - BOLIVAR.
ESTUDIANTE INGENIRIA DE SISTEMAS
Director
OSCAR JOSE HERNANDEZ CASTILLO.
C.C. 92’539.305 SINCELEJO – SUCRE.
TÍTULO: INGENIERO SISTEMAS
CARGO: ADMINISTRADOR DE LA PLATAFORMA TECNOLOGICA.
235
Asesor(es):
NAMUEL SOLORZANO.
TÍTULO: INGENIERO SISTEMAS
CARGO: DOCENTE DE LA FACULTAD DE INGENIERIA.
JHON JAIME MENDEZ LANDAETA
TÍTULO: INGENIERO SISTEMAS
CARGO: DOCENTE DE LA FACULTAD DE INGENIERIA.
RAFAEL MERLANO
TITULO: INGENIERO INDUSTRIAL
CARGO: DIRECTOR DEL PROGRAMA DE INGENIRIA INDUSTRIAL
236
15. CRONOGRAMAS
- Fase de Construcción
Modalidad
de
Desarrollo
Perfiles de
Usuario
MESES (SEMANAS)
Jun./Jul.
2008
Ago./Sep.
2008
Oct./Nov.
2008
Feb./Mar.
2009
Abr./May.
2009
Jun./Jul.
2009
Ago./Sep.
2009
Oct./Nov.
2009
Dic./
2009
Administrador * * * *
Proyecto de
Investigación
Estudiante * * * *
Director de
Proyectos * * * *
Comité de
Investigación * * * * * * * *
Prácticas
Profesionales
Estudiante * * * * * * * *
Coordinador de
Prácticas * * * * * * * *
Jefe de
Prácticas * * * * * *
237
- Cronograma General
MESES (SEMANAS)
Jun./Jul.
2008
Ago./Sep.
2008
Oct./Nov.
2008
Feb./Mar.
2009
Abr./May.
2009
Jun./Jul.
2009
Ago./Sep.
2009
Oct./Nov.
2009
Dic./
2009
Fase de
Análisis * * * * * * * * * *
Fase de Diseño * * * * * * * * * * * * * * * *
Fase de
Construcción * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
238
16. CONCLUSIONES
Para crear proyectos enfocados en el usuario es importante la participación del
mismo desde el inicio, desde su definición conceptual, con la experiencia de un
experto en usabilidad y luego realizando pruebas en cada fase del proyecto desde
el inicio, validando el concepto, y la funcionalidad de los servicios que se definan
antes del desarrollo, solo así lograremos el éxito del proyecto web.
• A raíz del análisis realizado a los distintos programas en cuanto a
inscripciones y seguimiento de proyectos de investigación y prácticas
profesionales, se crearon las condiciones de acceso y manipulación de la
herramienta, las cuales permitieron realizar el correcto proceso de
almacenamiento de la información por medio de una aplicación Web.
• Se diseñó la Base de Datos que permitió todos los procesos de
almacenamiento y seguridad de la información en las actividades
académicas llevadas a cabo en los desarrollos de los proyectos y prácticas
profesionales, garantizando así la integridad y consistencia de los datos.
• Al identificar la correcta operatividad del sistema gestor de Base de Datos
(Almacenamiento de la información) por medio del modelo de casos de
prueba, se logra facilitar todos los procesos de actualización, realizados por
la aplicación Web de inscripción y seguimientos.
239
• El sistema gestor de Bases de Datos, cumple con los requerimientos para
interactuar con la aplicación Web en los procesos de inscripción y
seguimientos de los proyectos.
• Se desarrolla una aplicación Web, que permite almacenar en la Base de
Datos, todas las inscripciones y seguimientos de los proyectos de
investigación y prácticas profesionales, información de los estudiantes,
directores asignados, asesorías cumplidas, evaluaciones; datos que
permiten tener una información más real del proceso o desarrollo realizado
por docentes y estudiantes de la Corporación.
240
17. REFERENTES BIBLIOGRÁFICOS
Comité De Investigación De La Facultad De La Facultad De Ingeniería De Cecar,
Documento Guía De Desarrollo Metodológico Para Los Proyectos De
Investigación de la Facultad de Ingeniería de la Corporación Universitaria Del
Caribe, Sincelejo, 2005.
Comité De Investigación De La Facultad De La Facultad De Ingeniería De Cecar,
Documento de Opciones de Grado de la Facultad de Ingeniería de la Corporación
Universitaria Del Caribe, Sincelejo, (DOGFIC V 3.13). 2007.
MCDONNELL, Steve. Desarrollo Y Gestión de Proyectos Informáticos. Madrid –
España: McGraw-Hill. Primera Edición.
COMPENDIO. Normas de INCONTEC. Tesis y otros trabajos de Grado.2008.
128 p.
http://issuu.com/josel21/docs/proyecto_grado_2009
http://www.emezeta.com/articulos/codigo-ofuscado
http://www.pergaminovirtual.com.ar/definicion/IMAP.html
http://www.masadelante.com/faqs/pdf
http://es.wikipedia.org
http://www.mastermagazine.info/termino/4598.php
http://www.desarrolloweb.com/faq/457.php
241
http://www.alegsa.com.ar/Dic/dom.php
http://www.dictionarist.com/definicion/dom
http://www.masadelante.com/faqs/css
http://www.w3c.es/
http://help.websiteos.com/websiteos_sp/definicion_de_as1.htm
http://python.org.ar/pyar/WSGI
http://www.python.com.ar/moin/WSGI
http://diccionario.babylon.com/CGI
http://www.mastermagazine.info/termino/6343.php
http://www.definicion.org/irc
http://www.todo-programacion.com.ar/archives/2005/04/lenguajes_de_al.html
http://entren.dgsca.unam.mx/introduccion/leng_alton.html
http://phedetech.wordpress.com/2006/05/24/ajax-una-definicion-sencilla/
http://fccea.unicauca.edu.co/old/tiposdesi.htm
http://www.monografias.com/trabajos7/sisinf/sisinf.shtml
http://www.somece.org.mx/simposio06/.../6_GarciaAlvarezJoseLuis.pdf
http://itesocci.gdl.iteso.mx/%7Eia27563/index.html
http://www.horde.org/webmail/screenshots
http://www.mozilla-europe.org/es/firefox/
242
http://www.scill.de/content/2006/09/21/web-20-buzz-zeitstrahl/
http://www.pangea.org/peremarques/diswguio.htm
http://sistemaspyt.blogspot.com/2008/09/caractersticas-distintivas.html
http://warp.es/mysql/productos/razones/
http://www.mysql.com/products/licensing/commercial-license.html
http://www.mysql.com/products/licensing/opensource-license.html
http://www.mysql.com/products/licensing/faq.html
http://www.slideshare.net/mmaranju/web-10-y-web-20-1354348
http://www.thehouseofblogs.com/articulo/web_20-1155.html
http://www.synmetric.cat