Proyecto de Grado - 2009

187
DESARROLLO DEL PORTAL WEB PARA EL PROCESO DE INSCRIPCIONES Y SEGUIMIENTOS DE PROYECTOS DE GRADO Y PRÁCTICAS PROFESIONALES, PARA EL PROGRAMA DE INGENIERÍA DE SISTEMAS DE LA CORPORACIÓN UNIVERSITARIA DEL CARIBE “CECAR” JOSÉ LUIS OVIEDO VARGAS. MARIO RAFAEL GUTIÉRREZ MENESES. LUIS MIGUEL GOMEZ ACUÑA. CORPORACION UNIVERSITARIA DEL CARIBE “CECAR” FACULTAD DE INGENIERIA PROGRAMA DE INGENIERIA DE SISTEMAS SINCELEJO 2009

description

Desarrollo del Portal Web - Cecar

Transcript of Proyecto de Grado - 2009

Page 1: Proyecto de Grado - 2009

DESARROLLO DEL PORTAL WEB PARA EL PROCESO DE INSCRIPCIONESY SEGUIMIENTOS DE PROYECTOS DE GRADO Y PRÁCTICAS

PROFESIONALES, PARA EL PROGRAMA DE INGENIERÍA DE SISTEMAS DELA CORPORACIÓN UNIVERSITARIA DEL CARIBE

“CECAR”

JOSÉ LUIS OVIEDO VARGAS.MARIO RAFAEL GUTIÉRREZ MENESES.

LUIS MIGUEL GOMEZ ACUÑA.

CORPORACION UNIVERSITARIA DEL CARIBE “CECAR”FACULTAD DE INGENIERIA

PROGRAMA DE INGENIERIA DE SISTEMASSINCELEJO 2009

Page 2: Proyecto de Grado - 2009

DESARROLLO DEL PORTAL WEB PARA EL PROCESO DE INSCRIPCIONESY SEGUIMIENTOS DE PROYECTOS DE GRADO Y PRÁCTICAS

PROFESIONALES, PARA EL PROGRAMA DE INGENIERÍA DE SISTEMAS DELA CORPORACIÓN UNIVERSITARIA DEL CARIBE

“CECAR”

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 “CECAR”FACULTAD DE INGENIERIA

PROGRAMA DE INGENIERIA DE SISTEMASSINCELEJO 2009

Page 3: Proyecto de Grado - 2009

Nota de aceptación:__________________________________

_______________________________ ___

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

__________________________________

Firma del jurado

__________________________________

Firma del jurado

Sincelejo. ___ De Septiembre del 2009

Page 4: Proyecto de Grado - 2009

CONTENIDO

TITULO DEL PROYECTO ................................ ................................ ..................... 10

INTRODUCCION ................................ ................................ ................................ ...11

LÍNEA DE INVESTIGACIÓN Y NÚCLEO DE INVESTIGACIÓN .......................... 12

1. PLANTEAMIENTO DEL PROBLEMA ................................ ............................ 13

1.1. ANTECEDENTES................................ ................................ ..................... 13

1.2. FORMULACION DEL PROBLEMA ................................ ........................... 15

2. OBJETIVOS DE LA INVESTIGACIÓN ................................ ........................... 16

2.1. OBJETIVO GENERAL ................................ ................................ ..............16

2.2. OBJETIVOS ESPECÍFICOS ................................ ................................ .....16

3. JUSTIFICACION ................................ ................................ ............................. 18

4. ALCANCES DEL PROYECTO ................................ ................................ .......20

4.1. ALCANCES ................................ ................................ .............................. 20

5. MARCO TEORICO - CONCEPTUAL................................ .............................. 22

5.1. INGENIERÍA DE SOFTWARE PARA APLICACIONES WEB.................... 22

5.2. UML: (LENGUAJE UNIFICADO DE MODELADO)................................ ....23

5.3. PHP ................................ ................................ ................................ ..........24

5.3.1. VISIÓN GENERAL ................................ ................................ .............24

5.3.2. HISTORIA ................................ ................................ .......................... 26

5.3.3. PHP 3................................ ................................ ................................ .27

5.3.4. PHP 4................................ ................................ ................................ .27

5.3.5. PHP 5................................ ................................ ................................ .27

5.3.6. PHP 6................................ ................................ ................................ .28

5.3.7. CARACTERÍSTICAS DE PHP ................................ ........................... 29

Page 5: Proyecto de Grado - 2009

5.3.8. CRONOLOGÍA ................................ ................................ ................... 33

5.3.9. APLICACIONES DESARROLLADAS CON PHP ............................... 36

5.3.10. FRAMEWORKS EN PHP ................................ ................................ ...37

5.3.11. IDES PARA PHP................................ ................................ ................38

5.4. MYSQL ................................ ................................ ................................ .....39

5.4.1. HISTORIA DEL PROYECTO MYSQL ................................ ................40

5.4.2. LENGUAJES DE PROGRAMACIÓN ................................ .................41

5.4.3. APLICACIONES................................ ................................ .................41

5.4.4. ESPECIFICACIONES ................................ ................................ ........42

5.4.5. ESTRUCTURAS ORGANIZATIVAS/ASOCIATIVAS O DE DECISIÓN

…………………………………………………………… …………………49

5.4.6. INDUSTRIA RELACIONADA ................................ ............................. 49

5.4.7. QUÉ LICENCIA UTILIZAR ................................ ................................ .50

5.4.8. ESTADO ACTUAL ................................ ................................ .............50

5.4.9. USUARIOS DESTACADOS ................................ ............................... 51

5.5. AJAX................................ ................................ ................................ .........52

5.5.1. TECNOLOGÍAS INCLUIDAS EN AJAX ................................ .............52

5.5.2. ANTECEDENTES DE AJAX ................................ .............................. 53

5.5.3. NAVEGADORES QUE PERMITEN AJAX ................................ .........55

5.5.4. NAVEGADORES QUE NO PERMITEN AJAX ................................ ...55

5.6. JQUERY ................................ ................................ ................................ ...56

5.6.1. CARACTERÍSTICAS................................ ................................ ..........57

5.6.2. USO ................................ ................................ ................................ ...57

5.6.3. JQUERY TEAM................................ ................................ ..................58

5.6.4. LICENCIA................................ ................................ ........................... 59

5.6.5. VERSIONES ................................ ................................ ...................... 60

5.7. HTML ................................ ................................ ................................ ........60

5.7.1. HISTORIA DE HTML................................ ................................ ..........61

5.7.2. MARCADO HTML ................................ ................................ ..............62

Page 6: Proyecto de Grado - 2009

5.7.3. ELEMENTOS ................................ ................................ ..................... 62

5.7.4. ATRIBUTOS................................ ................................ ....................... 64

5.7.5. NOCIONES BÁSICAS DE HTML ................................ ....................... 67

5.7.6. HISTORIA DEL ESTÁNDAR HTML ................................ ................... 69

5.7.7. ACCESIBILIDAD WEB ................................ ................................ .......70

5.8. JAVASCRIPT................................ ................................ ............................ 71

5.8.1. DÓNDE Y CÓMO INCLUIR JAVASCRIPT EN UN DOCUMENTO ....72

5.8.2. HISTORIA Y DENOMINACIÓN ................................ .......................... 73

5.8.3. VERSIONES ................................ ................................ ...................... 75

5.9. BASE DE DATOS ................................ ................................ ..................... 77

5.9.1. TIPOS DE BASES DE DATOS ................................ .......................... 78

5.9.2. MODELOS DE BASES DE DATOS ................................ ................... 80

5.9.3. GESTIÓN DE BASES DE DATOS DISTRIBUIDA ............................. 86

5.10. APACHE ................................ ................................ ................................ ...86

5.10.1. VENTAJAS................................ ................................ ......................... 87

5.10.2. MÓDULOS ................................ ................................ ......................... 88

5.10.3. USO ................................ ................................ ................................ ...89

5.10.4. CONFIGURACIÓN ................................ ................................ .............90

5.10.5. LICENCIA................................ ................................ ........................... 91

5.11. ADOBE DREAMWEAVER (DW)................................ ............................... 92

5.11.1. CARACTERÍSTICAS................................ ................................ ..........95

5.11.2. HISTORIAL DE VERSIONES ................................ ............................ 95

5.12. LENGUAJE DE PROGRAMACIÓN................................ ........................... 96

5.12.1. CONCEPTO ................................ ................................ ....................... 97

5.12.2. CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN .......98

5.12.3. SEGÚN SU NIVEL DE ABSTRACCIÓN ................................ ............98

5.12.4. SEGÚN EL PARADIGMA DE PROGRAMACIÓN ............................ 101

5.12.5. IMPLEMENTACIÓN ................................ ................................ .........104

5.13. SERVIDOR WEB ................................ ................................ .................... 106

Page 7: Proyecto de Grado - 2009

5.14. NAVEGADOR WEB................................ ................................ ................109

5.14.1. HISTORIA ................................ ................................ ........................ 110

5.14.2. FUNCIONAMIENTO DE LOS NAVEGADORES .............................. 112

5.14.3. USO ACTUAL DE NAVEGADORES WEB ................................ .......113

5.14.4. EJEMPLOS DE NAVEGADORES WEB ................................ ..........113

5.15. APLICACIÓN WEB ................................ ................................ .................115

5.15.1. INTERFAZ................................ ................................ ........................ 117

5.15.2. CONSIDERACIONES TÉCNICAS ................................ ................... 118

5.15.3. ESTRUCTURA DE LAS APLICACIONES WEB .............................. 119

5.15.4. USO EMPRESARIAL ................................ ................................ .......119

5.15.5. LENGUAJES DE PROGRAMACIÓN DE APLICACIONES WEB .....120

5.15.6. EJEMPLOS DE APLICACIONES WEB ................................ ............120

5.16. WORLD WIDE WEB CONSORTIUM ................................ ...................... 121

5.16.1. ORGANIZACIÓN DE LA W3C ................................ ......................... 121

5.17. INTERNET................................ ................................ .............................. 122

5.17.1. HISTORIA ................................ ................................ ........................ 123

5.18. WEB 2.0................................ ................................ ................................ ..125

5.18.1. INTRODUCCIÓN ................................ ................................ .............126

5.18.2. ORIGEN DEL TÉRMINO................................ ................................ ..126

5.18.3. TECNOLOGÍA................................ ................................ ..................129

5.18.4. WEB 2.0 BUZZ WORDS ................................ ................................ ..129

5.19. SERVICIOS WEB ................................ ................................ ................... 130

5.19.1. SOFTWARE DE SERVIDOR ................................ ........................... 131

5.19.2. RELACIONES CON OTROS CONCEPTOS ................................ ....132

5.19.3. COMPARACIÓN CON LA "WEB 1.0" ................................ ..............132

6. MARCO LEGAL O NORMATIVO ................................ ................................ .134

7. METODOLOGIA ................................ ................................ ........................... 135

7.1. TIPO DE INVESTIGACIÓN ................................ ................................ .....135

Page 8: Proyecto de Grado - 2009

7.2. METODOLOGÍA DE DESARROLLO – (PROTOTIPADO EVOLUTIVO)..........135

7.2.1. VENTAJAS:................................ ................................ ...................... 136

7.2.2. EFICACIA:................................ ................................ ........................ 136

7.2.3. CLAVES PARA EL ÉXITO EN EL USO DEL PROTOTIPADO

EVOLUTIVO: ................................ ................................ ................................ .137

8. POBLACIÓN ................................ ................................ ................................ .137

8.1. MUESTRA ................................ ................................ .............................. 138

8.2. VARIABLES................................ ................................ ............................ 138

8.2.1. VARIABLES DEPENDIENTES. ................................ ........................ 138

8.2.2. VARIABLE INDEPENDIENTE. ................................ ......................... 138

9. FASE DE ANÁLISIS ................................ ................................ ..................... 139

9.1. DESCRIPCIÓN DEL SISTEMA A IMPLEMENTAR ................................ .139

9.1.1. USUARIOS DEL SISTEMA A IMPLEMENTAR ................................ 139

10. FASE DE DISEÑO ................................ ................................ ..................... 141

10.1. DEFINICIÓN DE REQUERIMIENTOS DE SOFTWARE (DRS) ..............141

10.1.1. REQUERIMIENTOS DEL SISTEMA ................................ ................142

10.2. ESPECIFICACIÓN DE LA ARQUITECTURA DEL SISTEMA.................173

10.2.1. CAPA DE PRESENTACIÓN ................................ ............................ 174

10.2.2. CAPA DE DATOS ................................ ................................ ............176

11. FASE DE CONSTRUCCIÓN ................................ ................................ .....177

12. RECURSOS................................ ................................ ............................... 178

12.1. RECURSOS FÍSICOS ................................ ................................ ............178

12.2. RECURSOS ECONÓMICOS ................................ ................................ .180

12.3. RECURSOS HUMANOS................................ ................................ ........181

13. CRONOGRAMA DE ACTIVIDADES ................................ ......................... 183

Page 9: Proyecto de Grado - 2009

14. CONCLUSIONES ................................ ................................ ...................... 185

15. REFERENTES BIBLIOGRÁFICOS ................................ ........................... 187

Page 10: Proyecto de Grado - 2009

TITULO DEL PROYECTO

DESARROLLO DEL PORTAL WEB PARA EL PROCESO DE INSCRIPCIONES

Y SEGUIMIENTOS DE PROYECTOS DE GRADO Y PRÁCTICAS

PROFESIONALES, PARA EL PROGRAMA DE INGENIERÍA DE SISTEMAS DE

LA CORPORACIÓN UNIVERSITARIA DEL CARIBE

“CECAR”

Page 11: Proyecto de Grado - 2009

INTRODUCCION

Actualmente, disponer de una dirección de e -mail o de acceso a la web ha dejado

de ser una excepción para con vertirse 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 Int ernet. A pesar del

moderado descenso en el ritmo de crecimiento, Internet está llamado a convertirse

en una especie de servicio universal de comunicaciones .

Page 12: Proyecto de Grado - 2009

LÍNEA DE INVESTIGACIÓN Y NÚCLEO DE INVESTIGACIÓN

LINEA DE INVESTIGACION:

- Ingeniería del software

NUCLEO TEMATICO:

- Desarrollo de Aplicaciones Web

PROFESORES PARTICIPANTES:

- Argemiro Martínez

- Namuel Solórzano

- Carlos Cohen Manrique

- John Jaime Méndez

Page 13: Proyecto de Grado - 2009

1. PLANTEAMIENTO DEL PROBLEMA

1.1. ANTECEDENTES

La Corporación Universitaria Del Caribe CECAR 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 facultad y que son requisitos

para todos los estudiantes de la institución.

Estos requisitos estipulados llevan como objetivo o meta, el desarrollo de

proyectos de grado, 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 adop ta para el seguimiento y evaluación de que

cada uno de estos proyectos se realice a cabalidad.

Los proyectos de grado 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; ellos

eligen un tema con el fin de analizarlo, seleccionar un tema a resolver y generar

un planteamiento, así los estudiantes lograran definir el titulo de su proyecto que

aborda la investigación a lograr, mejorar la calidad de vida. 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

Page 14: Proyecto de Grado - 2009

o Justificación

Objetivos de la Investigación

o Objetivo General

o Objetivos Específicos

Referentes Bibliográficos

Estos proyectos deben estar en focados para la innovación tecnológica;

destacando que el estudiante apueste a probar 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 y campos de inves tigación 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.

Si se toman 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, Javeriana, Católica Y Nacional

ya cuentan con servicios dentro de su portal web, los cuales facilitan el suministro

de la información y a su vez la actualización de sus bancos de datos.

Page 15: Proyecto de Grado - 2009

1.2. FORMULACION DEL PROBLEMA

¿Qué características debe tener el portal Web para facilitar los procesos de

inscripciones y seguimientos de proyectos de grado y prácticas profesionales,

llevados a cabo por el programa de Ingeniería de Sistemas de la Corporación

Universitaria del Caribe “CECAR”?

Page 16: Proyecto de Grado - 2009

2. OBJETIVOS DE LA INVESTIGACIÓN

2.1. OBJETIVO GENERAL

Desarrollar una herramienta web para el apoyo a los procesos de inscripciones y

seguimiento de los proyectos de grado y prácticas profesionales para el programa

de ingeniería de sistemas de la Corporación Universitaria del Caribe CECAR.

2.2. OBJETIVOS ESPECÍFICOS

Analizar el sistema actual que maneja el programa de ingeniería de

sistemas, enfatizando en su estructura y funcionamiento.

Establecer cuáles son los requisitos del sistema para dar una solución más

eficiente al problema.

Diseñar una base de datos para el almacenamiento necesario de la

información referente a los procesos que llevan a cabo los proyectos de

grado y prácticas profesionales.

Construir un modelo que permita esbozar la solución del problema y

comprenderla mejor previo a la implementación.

Desarrollar e implementar la aplicación Web, basada en los requerimientos

obtenidos durante la fase de análisis y en el modelo de diseño construido.

Page 17: Proyecto de Grado - 2009

Ejecutar cada una de las pruebas necesarias para lograr una aplicación

eficiente y confiable.

Page 18: Proyecto de Grado - 2009

3. JUSTIFICACION

El programa de Ingeniería de Sistemas de la Corporación Universitaria De l Caribe

CECAR se ve 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 grado 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 grado y

prácticas profesionales.

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 actividade s 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 grado 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

Page 19: Proyecto de Grado - 2009

la información de los proyectos de grado 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 inscri bir

toda la información referente a sus proyectos de grado como también la

información de las prácticas profesionales; esto podrá realizarse desde cualquier

ordenador que cuente con acceso a internet.

Los directores de los proyectos también se verán bene ficiados, ya que sus labores

de consulta de los proyectos vigentes y asesorías a proyectos de grado se

realizarán de una manera más ágil y segura.

Estos usuarios, utilizando esta aplicación; no se verán en la necesidad de

diligenciar manualmente estos pr ocesos 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, 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 aplica ción Web en

CECAR es viable y fundamental para el apoyo en el desarrollo de sus proyectos y

prácticas profesionales.

Page 20: Proyecto de Grado - 2009

4. ALCANCES DEL PROYECTO

4.1. ALCANCES

La aplicación permite la inscripción de los proyecto de grado por parte de los

estudiantes de noveno a decimo semestre, de igual manera consultar todas las

asesorías realizadas a su proyecto, visualizar los reglamentos estipulados por el

programa al que pertenece, para su presentación y modificar su clave al igual que

todos los usuarios que intervienen en est a aplicación.

El Estudiante Proyecto: Con respecto a la inscripción de proyectos , tienen la

facilidad de inscribir sus proyectos de grado, informarse sobre el estado de

aprobación, consultar las asesorías realizadas a su proyecto de grado, los

reglamentos que hay que tener en cuenta para la presentación, artículos ,

documento RAE y cambios de clave.

El Estudiante Práctica: Con respecto a la inscripción de perfiles para prácticas

profesionales, tienen la habilidad de registrar sus perfiles para ser analiza dos y

luego ser enviados a las empresas vinculadas con la corporación, 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, los reglamentos que hay que tener

en cuenta para la presentación de las prácticas, así como cambios de clave;

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 adscritos estas; de igual forma

Page 21: Proyecto de Grado - 2009

tendrá acceso a todos los reglamentos estipulados para la presentación de los

proyectos de grado y cambios de clave.

El Director de Proyecto: 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

grado y cambios de clave.

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, vincular empresas

nuevas, así como sus jefes inmediatos, 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, así como cambios de clave.

El Jefe Inmediato: 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 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, así como cambios de clave.

Page 22: Proyecto de Grado - 2009

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 , los diagramas de

casos de uso 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.

Después de encontrar y verificar los principales actores, procesos, secuencias de

procesos, entidades y atributos es mucho mas sencillo iniciar con el desarrollo de

la aplicación, para este desarrollo es necesario seguir varias teorías dentro de l as

cuales tenemos que implementar una Base de Datos, esto nos permite generar

una colección de datos interrelacionados que se pueden utilizar por uno o más

programas de aplicación.

Page 23: Proyecto de Grado - 2009

Para realizar el diseño y la implementación de una Base de Datos es necesar io

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 e n 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

diagramas de casos de uso en los cuales representamos los acto res 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.

Page 24: Proyecto de Grado - 2009

5.3. PHP

Es un lenguaje de programación interpret ado, 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 cons idera esta licencia como software libre.

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

Page 25: Proyecto de Grado - 2009

no tan poderosos desde agosto de 2005. Este mismo sitio web de Wikipedía está

desarrollado en PHP. 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

generará el contenido de manera dinámica (por ejemplo o bteniendo 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

Page 26: Proyecto de Grado - 2009

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,

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.

Page 27: Proyecto de Grado - 2009

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 sop orte 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.

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:

Page 28: Proyecto de Grado - 2009

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;

limpieza de funcionalidades obsoletas como register_globals,

safe_mode, etc.;

PECL

mejoras en orientación a objetos

etc

Page 29: Proyecto de Grado - 2009

5.3.7. CARACTERÍSTICAS DE PHP

5.3.7.1. VENTAJAS

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 ( [2]), 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 u na alternativa de fácil acceso

para todos.

Permite las técnicas de Programación Orientada a Objetos .

Biblioteca nativa de funciones sum amente amplia e incluida.

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

Page 30: Proyecto de Grado - 2009

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 (ver más

abajo Frameworks en PHP).

5.3.7.2. DESVENTAJAS

La ofuscación de código es la única forma de ocultar los fuentes.

Ejemplo de Código PHP

En el siguiente ejemplo se muestra el típico Hola Mundo, que es una simple

impresión por pantalla del mismo mensaje:

<?php

echo "Hola Mundo";

?>

El ejemplo anterior escribiría simpl emente "Hola Mundo" (sin comillas) en la

página web. Es importante recordar que todo bloque de código PHP debe estar

dentro de <?php(para abrir) y ?>(para cerrar) o simplemente de una forma más

corta <? <CÓDIGO_PHP> ?>, muy parecido a las etiquetas en ASP <%

<CÓDIGO_ASP> %>. Ahora bien, el resultado que tendríamos en el navegador

sería el siguiente:

Hola Mundo

Page 31: Proyecto de Grado - 2009

A continuación un ejemplo de envío y recepción de datos en un a misma página

con PHP:

<html>

<head>

<title>Ejemplo de uso simple en envío y recepción de parámetros con

PHP</title>

</head>

<body>

<?php

// Si existe la variable $_POST['muestra'], entonces muestra la comida

favorita

if (isset($_POST['muestra']))

{

echo 'Hola, '.$_POST['nombre'].', tu comida favorita es:'.

$_POST['comida'].'';

} else {

// Si no, muestra un formulario solicitando la comida favorita

?>

<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">

¿Cuál es tu nombre?

<input type="text" name="nombre" />

¿Cuál es tu comida favorita?

<select name="comida">

<option value="Spaguetis">Spaguetis</option>

<option value="Asado">Asado</option>

<option value="Pizza">Pizza</option>

</select>

<input type="submit" name="muestra" value="Seguir" />

Page 32: Proyecto de Grado - 2009

</form>

<?php

} //Fin del bloque else

?>

</body>

</html>

En este código es posible observar las siguientes características:

Las variables enviadas por un formulario util izando el método POST, son

recibidas en el lenguaje dentro de la matriz $_POST, lo cual facilita la

obtención de este tipo de datos. Este mismo método es utilizado por el

lenguaje para todas las fuentes de información en una aplicación web,

tales como cookies en la matriz $_COOKIES, variables de URL en

$_GET (que en formularios puede servir para guardar los datos),

variables de sesión utilizando $_SESSION, y variables del servidor y del

cliente por medio de la matriz $_SERVER.

El código PHP está incrustado dentro del HTML e interactúa con el

mismo, lo que permite diseñar la página Web en un editor común de

HTML y añadir el código dinámico dentro de las etiquetas <?php ?>.

El resultado muestra y oculta ciertas porciones del código HTML en

forma condicional.

Es posible utilizar funciones propias del lenguaje para aplicaciones Web

como htmlentitites(), que convierte los caracteres que tienen algún

significado especial en el código HTML o que podrían desplegarse

Page 33: Proyecto de Grado - 2009

erróneamente en el navegador como acentos o diéresis, en sus

equivalentes en formato HTML..

Todas las variables en PHP llevan el símbolo de dolar como prefijo

(ejemplo: $variable1, $variable2, $variable3..., $variableN), los tipos de

variable no es necesario declararlas, ya que a medida que se usan en la

aplicación el servidor reconoce de que tipo son. Para mostrar una

cadena (en inglés string) debe estar dentro de comillas dobles o simples

(ejemplo: "Hola Mundo", 'Lo que quiero mostrar'). Cabe destacar que si

se desea mostrar el símbolo " o ' debe encerrarse en el otro tipo de

comillas ("...'...", '..."...') o usarse un escape ( \', \").

Toda línea de instrucción siempre termina en un punto y coma (;), al

igual que el lenguaje C.

Para insertar un comentario de una sola línea, debe empezar por // o por

#. El resto de la línea es tratado entonces como un come ntario. Para

insertar un bloque de comentario, de una o más líneas, se utiliza la

combinación /* y */, por ejemplo: /* <COMENTARIOS> */

5.3.8. CRONOLOGÍA

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".

Page 34: Proyecto de Grado - 2009

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 .

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 Zen d.

PHP 4.1 10 de diciembre de 2001Introducidas las variables superglobals

($_GET, $_SESSION, etc.).

PHP 4.2 22 de abril de 2002Se 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

Page 35: Proyecto de Grado - 2009

objetos.

PHP 5.1 25 de noviembre de 2005

PHP 5.2 2 de noviembre de 2006Habilitado el filtro de extensiones por

defecto.

PHP 5.2.4 30 de agosto de 2007

PHP 5.2.5 8 de noviembre de 2007Versió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 2009Diversas 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

Page 36: Proyecto de Grado - 2009

5.3.9. APLICACIONES DESARROLLADAS CON PHP

Redes Sociales

o Facebook

E-Commerce

o Magento

o OsCommerce

Blogs

o WordPress

Burning Board

CMSformE

Dokuwiki

Drupal

Gallery Project

Mambo Open Source

MediaWiki (desarrollado para Wikipedia)

Moodle

Phorum

phpMyAdmin

PHP-Nuke

phpPgAdmin

PhpWiki

PmWiki

Zikula (anteriormente llamado PostNuke)

Smarty

SPIP

SugarCRM

vBulletin

Page 37: Proyecto de Grado - 2009

Xaraya

Xoops

Joomla

MODx

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

Page 38: Proyecto de Grado - 2009

5.3.11. IDES 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).

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 I DE 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.

Page 39: Proyecto de Grado - 2009

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

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 licenc ias 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.

Page 40: Proyecto de Grado - 2009

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

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.

Page 41: Proyecto de Grado - 2009

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

(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.

Page 42: Proyecto de Grado - 2009

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/ ).

Page 43: Proyecto de Grado - 2009

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; tra nsacció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

Page 44: Proyecto de Grado - 2009

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 d e

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.

Page 45: Proyecto de Grado - 2009

5.4.4.4. CARACTERÍSTICAS (VERSIÓN 4.0)

Inicialmente, MySQL carecía de elementos considerados esenciales en las b ases

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 operaci ones 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 administrado res de bases de datos juegan un papel

Page 46: Proyecto de Grado - 2009

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 sepa radas 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 co mercial

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

Page 47: Proyecto de Grado - 2009

Funciones XML

5.4.4.6. CARACTERÍSTICAS DISTINTIVAS

Las siguientes características son implementadas únicamente por MySQL:

Múltiples motores de almacenamiento (MyISAM, Merge, InnoDB, BDB,

Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole y

Example en 5.x), permitiendo al usuario escoger la que sea más

adecuada para cada tabla de la base de datos.

Agrupación de transacciones, reuniendo múltiples transacciones de

varias conexiones para incrementar el número de transacciones por

segundo.

5.4.4.7. TIPOS DE COMPILACIÓN DEL SERVIDOR

Hay tres tipos de compilación del servidor MySQL:

Estándar: Los binarios estándar 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.

Page 48: Proyecto de Grado - 2009

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

de datos bugs que contiene bugs reportados y solucio nados 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.

Page 49: Proyecto de Grado - 2009

5.4.5. ESTRUCTURAS ORGANIZATIVAS/ASOCIATIVAS O DE DECISIÓ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

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

Page 50: Proyecto de Grado - 2009

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

La licencia GNU GPL de MySQL obliga a que la distribución de cualquier producto

derivado (aplicación) se haga bajo esa misma licencia. Si un desarrollador desea

incorporar MySQL en su producto pero desea distribuirlo bajo otra licencia que no

sea la GNU GPL, puede adquirir una licencia comercial de MySQL que le permite

hacer justamente eso.

5.4.8. ESTADO ACTUAL

La serie en desarrollo de MySQL Server actualmente, es la 5.1 al cual se añaden

nuevas características en relación a la serie 5.0. La serie de producción actual de

MySQL es 5.0, cuya penúltima versión estable es la 5 .0.26 lanzada en octubre de

2006. Actualmente, se puede descargar la serie 5.0.27. La serie de producción

anterior fue la 4.1, cuya versión estable es 4.1.7 lanzada en octubre de 2004. A

estas versiones de producción sólo se arreglan problemas, es decir, y a no se

añaden nuevas características. Y a las versiones anteriores solamente se les

corrigen bugs críticos.

Page 51: Proyecto de Grado - 2009

5.4.9. 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.

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.

Page 52: Proyecto de Grado - 2009

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 una tecnología asíncrona, en el sentido de que los datos adicionales se

requieren al servidor y se cargan en segundo plano sin interferir con la

visualización ni el comportamiento de la página. JavaScript es el lenguaje

interpretado (scripting language) en el que normalmente se efectúan las funciones

de llamada de Ajax mientras que el acceso a los datos se realiza mediante

XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier

caso, no es necesario que el contenido asíncrono esté formateado en XML.

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 a biertos

como JavaScript y Document Object Model (DOM).

5.5.1. TECNOLOGÍAS INCLUIDAS EN AJAX

Page 53: Proyecto de Grado - 2009

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 tecn ología en sí,

sino que es un término que engloba a un grupo de éstas que trabajan

conjuntamente.

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 c on 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

Page 54: Proyecto de Grado - 2009

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 prime ras 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 na vegadores, 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 pri meros 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

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

Page 55: Proyecto de Grado - 2009

implementación, o acceso cruzado entre sitio s 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

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

Page 56: Proyecto de Grado - 2009

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 visuale s (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 H TML,

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.

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.

Page 57: Proyecto de Grado - 2009

5.6.1. CARACTERÍSTICAS

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+.

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 $

Page 58: Proyecto de Grado - 2009

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 ap licar 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())

$(".activo").removeClass("activo").addCl ass("desactivo");

5.6.3. JQUERY TEAM

Detrás de la biblioteca existe un grupo de personas divididas en 5 equipos:

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

Page 59: Proyecto de Grado - 2009

Jörn Zaefferer

EvangelistaResponsables 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.

Worth

Scott

González

Todd Parker

Otros5

PluginsResponsables 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

Page 60: Proyecto de Grado - 2009

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.

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.

Page 61: Proyecto de Grado - 2009

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 e lementos 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.

Page 62: Proyecto de Grado - 2009

5.7.2. MARCADO HTML

HTML consiste de varios componentes vitales, incluyendo elementos y sus

atributos, tipos de data, 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.

Estructura general de una línea de código en el lenguaje de etiquetas HTML

Page 63: Proyecto de Grado - 2009

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 navegado res 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>. E s 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 an cla <a> junto con el atributo href, que

establecerá la dirección URL a la que apunta el enlace. Por ejemplo, un enlace a

la Wikipedia sería de la forma <a href=”es.wikipedia.org”>Wikipedia</a>. También

se pueden crear enlaces sobre otros objetos, tales com o imágenes <a

href=”enlace”><img src=”imagen” /></a>.

Page 64: Proyecto de Grado - 2009

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 val or 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:

Page 65: Proyecto de Grado - 2009

Un ejemplo de código HTML con coloreado de 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:

Page 66: Proyecto de Grado - 2009

<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. Por

ejemplo: <a href="http://www.wikipedia.org">Wikipedia</a> se

representa como Wikipedia)

<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 usa r 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

Page 67: Proyecto de Grado - 2009

La mayoría de etiquetas deben cerrarse como s e 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.

Page 68: Proyecto de Grado - 2009

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 m ismo.

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 objeti vos 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 de be

aparecer en su navegador el texto, así como también las imágenes y los demás

elementos, en la pantalla del ordenador.

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">

Page 69: Proyecto de Grado - 2009

<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á acced er 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 supe rconjunto del

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

Page 70: Proyecto de Grado - 2009

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'.

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

Page 71: Proyecto de Grado - 2009

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 c lases 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.

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

Page 72: Proyecto de Grado - 2009

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 E CMA, 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 d e Internet Explorer y

Netscape Navigator, Opera versión 7, y Mozilla desde su primera versión.

5.8.1. DÓNDE Y CÓMO INCLUIR JAVASCRIPT EN UN DOCUMENTO

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

Page 73: Proyecto de Grado - 2009

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.

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

Page 74: Proyecto de Grado - 2009

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ó c ompatibilidad 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 incompatibl e con la de ECMA en muchos aspectos.

Netscape presentó Javascript a Ecma para su normalización, resultando la versión

normalizada llamada ECMAScript.

Page 75: Proyecto de Grado - 2009

5.8.3. VERSIONES

Versión

Fecha delanzamiento

EquivalenciaNetscape

MozillaFirefox

InternetExplorer

Opera

Safari

1.0Marzo de

19962.0 3.0

1.1Agosto de

19963.0

1.2Junio de

19974.0-4.05

1.3Octubre de

1998

Especificación

ECMA-262 1st

/

Especificación

ECMA-262 2nd

4.06-4.7x 4.0

1.4Netscape

Server

Page 76: Proyecto de Grado - 2009

1.5Noviembre

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

1.6Noviembre

de 2005

1.5 + Arrays

extras +

Arrays y

Strings

genéricos +

E4X

1.5

1.7Octubre de

2006

1.6 +

Generadores

de Python +

Iteradores +

let

2.0 3.x

Page 77: Proyecto de Grado - 2009

1.8Junio de

2008

1.7 +

Generador de

expresiones +

Clausuras de

expresiones

3.0

1.8.1

1.8 +

actualizacione

s 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

Page 78: Proyecto de Grado - 2009

están en formato digital (electrónic o), 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 entorn os 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:

Page 79: Proyecto de Grado - 2009

5.9.1.1. SEGÚN LA VARIABILIDAD DE LOS DATOS ALMACENADOS

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

Page 80: Proyecto de Grado - 2009

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 revista s 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 biom olé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 dato s.

Page 81: Proyecto de Grado - 2009

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 cosa s 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.

Page 82: Proyecto de Grado - 2009

5.9.2.2. BASE DE DATOS DE RED

Éste es un modelo ligeramente disti nto 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

Son bases de datos cuyo único fin es el envío y recepción de datos a grandes

velocidades, estas bases son muy poco comunes y están dirigidas por lo general

al entorno de análisis de calidad, datos de producción e industrial, es importante

entender que su fin único es recolectar y recuperar los datos a la mayor velocidad

posible, por lo tanto la redundancia y duplicación de información no es un

problema como con las demás bases de datos, por lo general para poderlas

aprovechar al máximo permiten algún tipo de conectividad a bases de datos

relacionales.

Page 83: Proyecto de Grado - 2009

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 fund amentos 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.

Page 84: Proyecto de Grado - 2009

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 repres entan 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:

Page 85: Proyecto de Grado - 2009

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 median te 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 d os 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 inter faz. 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.

Page 86: Proyecto de Grado - 2009

5.9.2.8. BASE 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 dato s deductivas son llamadas base de datosló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 organism os 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 co mpleto. 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

Page 87: Proyecto de Grado - 2009

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 segurid ad 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 recibimien to

compartidas que utilizan PHP como módulo de Apache.

5.10.1. VENTAJAS

Modular

Page 88: Proyecto de Grado - 2009

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 pa ra

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.

mod_proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat

de páginas dinámicas en Java (servle ts y JSP).

Page 89: Proyecto de Grado - 2009

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óduloretirado).

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).

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

Page 90: Proyecto de Grado - 2009

soporte de su servidor de aplicaciones WebObjects. Es soportado de alguna

manera por Borland en las herrami entas 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 form a 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 dond e 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 d e 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). Muchos proyectos de Wikimedia también

se ejecutan sobre servidores web Apache.

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

Page 91: Proyecto de Grado - 2009

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 f undació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 consideramos que dichos casos de terminación de patentes

son inherentemente una mala idea, pero a pesar de ello son incompatibles con la

GNU GPL.

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.

Page 92: Proyecto de Grado - 2009

5.11. ADOBE DREAMWEAVER (DW)

Es una aplicación en forma de estudi o (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 Adob e 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

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.

Page 93: Proyecto de Grado - 2009

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 UNI X 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 aplica ció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).

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 ordenador 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

Page 94: Proyecto de Grado - 2009

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 c onexió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 pre via 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.

También podría decirse, que para un diseño mas 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 mas pequeño, gif animado websnap) para un sitio web y después

exportar la imagen creada y así utilizarla c omo una sola, en donde ya llevara los

vínculos a un dicho sitio en especifico que uno le haya dado.(MRR - U.P.C.)

Dato Curioso: Su nombre en español significa "tejesueños o tejedor de sueños"

Page 95: Proyecto de Grado - 2009

5.11.1. CARACTERÍSTICAS

Además de sus capacidades WYSIWYG, tiene las fu nciones 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 P qHP, JSP o ASP.

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 version: 6.0] (Lanzado en mayo

de 2002)

Dreamweaver MX 2004 [Numero interno de version: 7.0] (Lanzado el 10

de septiembre en 2003)

Dreamweaver 8 (Lanzado el 13 de septiembre de 2005)

Page 96: Proyecto de Grado - 2009

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 o btener 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

instrucción o un conjunto de instrucciones (programa) para el ordenador (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ó "instrucci ones", 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

Page 97: Proyecto de Grado - 2009

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).

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 da tos

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:

Page 98: Proyecto de Grado - 2009

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 PROGRAMACIÓ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

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 posibilid ad 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.

Page 99: Proyecto de Grado - 2009

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 tra bajan con los registros de memoria de la

computadora de forma directa. Ejemplo:

Lenguaje ensamblador, sintaxis Intel para procesadores x86

mov eax,1 ;mueve a al registro eax el valor 1

xor ebx, ebx ;pone en 0 el registro ebx

int 80h ;llama a la interrupción 80h (80h = 128 sistema decimal)

Ejecutar ese código en sistemas UNIX o basados en él equivale a una función

exit(0) (terminar el programa retornando el valor 0)

5.12.3.3. LENGUAJES DE MEDIO NIVEL

Hay lenguajes de programación que son considerados por algunos ex pertos como

lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas

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.

Ejemplo:

/*Lenguaje C*/

Page 100: Proyecto de Grado - 2009

/*declaración de las funciones estandars de entrada y salida*/

#include <stdio.h>

int main(int argc, char **argv)

{

char *p; /*creamos un puntero a un byte*/

if(argc == 1){

printf("\nIngrese un argumento al programa\n");/*imprimimos el texto*/

return 1;

}

p = 0x30000 /*el puntero apunta a 0x30000 */

*p = argv[1][0] /*el primer caracter del primer argumento lo copiamos a la

posición 0x30000 */

return 0;

}

El ejemplo es muy simple y muestra a los punteros de C, éstos no son muy

utilizados en lenguajes de alto nivel, pero en C sí.

5.12.3.4. LENGUAJES DE ALTO NIVEL

Los lenguajes de alto nivel son normalmente fáciles de aprender porque están

formados por elementos de lenguajes naturale s, como el inglés. En BASIC, uno de

los lenguajes de alto nivel más conocidos, los comandos como "IF CONTADOR =

10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si el

CONTADOR es igual a 10. Esta forma de trabajar puede dar la sensación de que

Page 101: Proyecto de Grado - 2009

las computadoras parecen comprender un lenguaje natural; en realidad lo hacen

de una forma rígida y sistemática, sin que haya cabida, por ejemplo, para

ambigüedades o dobles sentidos. Ejemplo:

{Lenguaje Pascal}

program suma;

var x,s,r:integer; {declaración de las variables}

begin {comienzo del programa principal}

writeln('Ingrese 2 números enteros' );{imprime el texto}

readln(x,s); {lee 2 números y los coloca en las variables x y s}

r:= x + s; {suma los 2 números y coloca el resultado en r}

writeln('La suma es ',r); {imrpime el resultado}

readln;

end.{termina el programa principal}

Ese es el lenguaje Pascal, muy utilizado por principiantes al aprender a

programar.

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 u no 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 :

Page 102: Proyecto de Grado - 2009

El paradigma imperativo o por procedimien tos 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.

5.12.4.1. LENGUAJES IMPERATIVOS

Son los lenguajes que dan instrucciones a la computadora, es decir, órdenes.

Page 103: Proyecto de Grado - 2009

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 cambia r 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 tale s 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 operacione s.

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 infor ma acerca de conjuntos de tuplas o

estamentos relacionados que pueden predecir si otras tuplas satisfacerán otras

relaciones.

Page 104: Proyecto de Grado - 2009

Un estamento que es probado verdadero como resultado de un proceso se dice

que es una inferencia del conjunto original. Se trata p or 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.

5.12.5. IMPLEMENTACIÓN

La implementación de un lenguaje es la que prove e 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,

Page 105: Proyecto de Grado - 2009

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 p rogramador 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á interpr etar 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 progra ma 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

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 cad a paso durante una ejecución

del código.

Page 106: Proyecto de Grado - 2009

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 l lamamos 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 ord enador (también se

emplea el término para referirse al ordenador 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, acceder a los archivos de nuestro equipo desde un

PC remoto (aunque para esto existen otras opciones, como utilizar un servidor

FTP) o utilizar alguno de los programas basados en web tan interesantes que

están viendo la luz últimamente. El problema d e usar nuestro ordenador 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 cuen ta

que hay alojamientos web gratuitos, incluso sin publicidad y con interesantes

funciones).

Servidor web de la Wikimedia

Page 107: Proyecto de Grado - 2009

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 d e 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 soli cita. A modo de

ejemplo, al teclear www.wikipedia.org 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

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.

Page 108: Proyecto de Grado - 2009

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 en ví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 c apacidad 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 s on:

PHP

ASP

Perl

Python/WSGI

CGI

.NET

JSP (Tecnología Java )

CF (Adobe Coldfusion)

Algunos servidores web importantes son:

Apache

IIS

Cherokee

Otros servidores, más simples pero más rápidos, son:

Page 109: Proyecto de Grado - 2009

lighttpd

thttpd

5.14. NAVEGADOR WEB

El WorldWideWeb para equipos basados en NeXT, fue el primer navegador web

(1991).

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

esté está 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

Page 110: Proyecto de Grado - 2009

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 Inter net, 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, normalment e

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 traducc ión literal

del original en inglés, browser, aunque su uso es minoritario.

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. Este navegador tiene la ventaja de funcionar en casi todos los UNIX, así

como en entornos Windows.

Page 111: Proyecto de Grado - 2009

Estimación del uso en el período 1996 -2006

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 usu arios 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 Mozqilla.

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 m ercado de Internet Explorer. Se trata

de un navegador más ligero que su hermano mayor.

Page 112: Proyecto de Grado - 2009

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 sop ortan 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 sol amente descargan este tipo de documentos

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 Wor ld Wide Web Consortium.

Page 113: Proyecto de Grado - 2009

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 na vegador 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%

(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, motore s 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

Page 114: Proyecto de Grado - 2009

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)

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

Page 115: Proyecto de Grado - 2009

Navegadores web basados en texto:

Links

Lynx

Netrik

w3m

Primeros navegadores (que ya no se están desarrollando):

Cello

CyberDog

MidasWWW

Mosaic

o Spyglass Mosaic

ViolaWWW

OHT-Erwise

5.15. APLICACIÓN WEB

Page 116: Proyecto de Grado - 2009

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 ap licación

software que se codifica en un lenguaje soportado por los navegadores web

(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 y la propia

Wikipedia que son ejemplos bien conocidos de aplicaciones web.

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 ordenador 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 ordenado r 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

Page 117: Proyecto de Grado - 2009

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

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

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.

Page 118: Proyecto de Grado - 2009

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 HT ML, CSS,

DOM y otras especificaciones para navegadores web que pueden causar

problemas en el desarrollo y soporte de las aplicaciones web. Adici onalmente, 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 uti lizar Adobe Flash Player o Java applets para desarrollar

parte o toda la interfaz de usuario. Como casi todos los nave gadores 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 discrepanc ias sobre el hecho de llamar a estos sistemas

“aplicaciones web”; un término alternativo es “Aplicación Enriquecida de Internet”.

Page 119: Proyecto de Grado - 2009

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 de enmedio. Por último, una base de datos constit uye la tercera y última

capa.

El navegador web manda peticiones a la capa de enmedio 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 simpleme nte por adaptar la aplicación para ser

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 ordenador del usuario. Las compañías que siguen esta e strategia 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.

Page 120: Proyecto de Grado - 2009

5.15.5. LENGUAJES DE PROGRAMACIÓN DE APLICACIONES WEB

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 arqui tectura 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).

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

Page 121: Proyecto de Grado - 2009

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 H TML (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

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,

Page 122: Proyecto de Grado - 2009

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 famil ia 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

primera conexión de computadoras, conocida como ARPAN ET, 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

Page 123: Proyecto de Grado - 2009

(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 l os ordenadores

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 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 r umor de que ARPANET fue

diseñada para resistir un ataque nuclear. Esto nunca fue cierto, solamente un

Page 124: Proyecto de Grado - 2009

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 (orient adas 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

"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 comerc iales, junto con las americanas formaban el

esqueleto básico ("backbone") de Internet.

Page 125: Proyecto de Grado - 2009

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.

5.18. WEB 2.0

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

Page 126: Proyecto de Grado - 2009

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.

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 com o 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 confer encia.

Dougherty sugirió que la web estaba en un renacimiento, con reglas que

Page 127: Proyecto de Grado - 2009

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

primera conferencia sobre la Web 2.0 en Octubre del 2004. La segunda

conferencia se celebró en octubre de 2005.

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 redifundir servicios y contenidos; el perpetuo beta; software por

encima de un solo aparato.

Page 128: Proyecto de Grado - 2009

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 modificadapor los usuarios del servicio, ya sea en su con tenido (añadiendo, cambiando

o borrando información o asociando datos a la información existente), pues

bien en la forma de presentarlos, o en contenido y forma simultáneamente ."-(Ribes, 2007)

Mapa mental de la Web 2.0

Page 129: Proyecto de Grado - 2009

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

Page 130: Proyecto de Grado - 2009

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 (apliqcación web híbrida)

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

Los protocolos de mensajes bidireccionales son uno de los elementos clave de la

infraestuctura de la Web 2.0. 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 servic ios web es el

XML, si bien puede haber excepciones.

Page 131: Proyecto de Grado - 2009

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 funcionalid ad necesaria en una única plataforma de

servidor, o bien un enfoque plugin de servidor Web con herramientas de

publicación tradicionales mejoradas con interfaces API y otras herramientas.

Independientemente del enfoque elegido, no se espera que el camino e volutivo

hacia la Web 2.0 se vea alterado de forma importante por estas opciones.

Page 132: Proyecto de Grado - 2009

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 encuentr an 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:

Web 1.0 Web 2.0

DoubleClick Google AdSense

Ofoto Flickr

Terratv Youtube

Akamai BitTorrent

mp3.com Napster

Page 133: Proyecto de Grado - 2009

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)

stickiness redifusión

Page 134: Proyecto de Grado - 2009

6. MARCO LEGAL O NORMATIVO

Colombia cuenta con una legislación que regula y establece de manera imperativa

las políticas de uso y empleo del Software Libre en sus sistemas de información, al

interior de las entidades e instituciones del Estado, esta legislación busca regular y

obtener un control sobre los sistemas de información evitando depender d e

proveedores únicos.

Este proyecto está amparado por el Decreto 1360 de 1989 el cual en su artículo

primero define como software libre al programa licenciado por su autor para

ofrecer a sus usuarios la libertad de ejecutar el programa para cualquier propósito,

estudiar la manera de opera el programa y mejora del programa al igual que las

distribuciones de las mismas. Todas estas definiciones implican que la licencia del

software no incluya ninguna restricción al número de usuarios que pueden

ejecutarlo.

Para la realización de este proyecto no se incurrirá en asuntos legales de

licenciamiento de software ya que todas las herramientas utilizada s están regidas

bajo licencias Open-Source.

Page 135: Proyecto de Grado - 2009

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 conoci da en

detalle.

7.2. METODOLOGÍA DE DESARROLLO – (Prototipado Evolutivo)

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 n ecesidades del cliente. Esto permite que

al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente

vea resultados a corto plazo.

Page 136: Proyecto de Grado - 2009

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 evol utivo produce

muchos efectos secundarios, la mayoría de los cuales son beneficiosos. El

prototipado tiende a:

Mejorar la moral de los usuarios finales, clientes y desarrolladores, porque

el progreso es visible.

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.

Page 137: Proyecto de Grado - 2009

Curvas de esfuerzos más suaves, reduciendo el efecto del plazo límite.

7.2.3. CLAVES PARA EL ÉXITO EN EL USO DEL PROTOTIPADOEVOLUTIVO:

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 c on 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.

8. POBLACIÓN

La población sobre la cual se trabajará en la toma de información para la

realización del proyecto, son el administrador de la plataforma tecnológica de

CECAR, los decanos y profesores de las diferentes facultades de la CECAR, 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 grado y

prácticas profesionales.

Page 138: Proyecto de Grado - 2009

Cabe destacar que la población a la cual está dirigida la aplicación es la

Corporación Universitaria del Caribe - CECAR.

8.1. MUESTRA

Para la realización de este proyecto, la muestra será la misma población, ya que

esta no es muy numerosa y puede ser abarcada en totalidad para su estudio.

8.2. VARIABLES

8.2.1. VARIABLES DEPENDIENTES.

• Velocidad de respuesta en tiempo real.

• Velocidad de procesamiento de la información.

• Información actualizada y veraz.

8.2.2. VARIABLE INDEPENDIENTE.

• Portal Web, que gestionara de forma ágil el proceso de

actualización del Banco de Datos de la Corporación, el cual

administra la información referente a los históricos de los proyectos

de grado y prácticas profesionales.

Page 139: Proyecto de Grado - 2009

9. FASE DE ANÁLISIS

9.1. DESCRIPCIÓN DEL SISTEMA A IMPLEMENTAR

9.1.1. USUARIOS DEL SISTEMA A IMPL EMENTAR

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 de que se encarga 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 Practicas, Usu arios (Detallados a continuación) y

mantenimiento 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 Grado o Practicas Profesionales), en la opción de

proyectos de grado el estudiante podrá inscribir se proyecto de grado así como

consultar sus asesorías del proyecto, ver los reglamentos estipulados por el

Page 140: Proyecto de Grado - 2009

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 reglament os 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

como Comité; tienen la posibilidad de ver el listado completo de proyectos que se

encuentran en desarrollo o en cualquier estado (aprobado, rechazado), así como

gestionar lo que respecta a líneas de investigación y núcleos temáticos, ver los

reglamentos que se rigen en los proyectos de grado y cambiar la clave.

Coordinador de Practicas: Es la persona que entra al Portal Web y está

registrado como Coordinador; 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 encu entran 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.

Page 141: Proyecto de Grado - 2009

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.

10. FASE DE DISEÑO

El propósito de esta fase es obtener un conjunto de espe cificaciones 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

requisitos de software 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 siste ma, 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.

Page 142: Proyecto de Grado - 2009

Los requerimientos están divididos principalmente en requerimientos del sistema

(funcional y no funcional), hardware y software.

10.1.1. REQUERIMIENTOS DEL SISTEMA

10.1.1.1. REQUERIMIENTOS FUNCIONALES

Los requerimientos funcionales son los servicios que el s istema 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 ope raciones 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.

Page 143: Proyecto de Grado - 2009

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:

Page 144: Proyecto de Grado - 2009

Descripción detallada de los requerimientos

Caso de uso ValidarActor AdministradorResumen 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 dentrode la Base de Datos

Caso de uso Gestionar FacultadesActor AdministradorResumen 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 enblanco.

Pos condiciones Facultad registrada con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Page 145: Proyecto de Grado - 2009

Caso de uso Gestionar ProgramasActor AdministradorResumen 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 enblanco.

Pos condiciones Facultad registrada con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Caso de uso Gestionar EstudiantesActor AdministradorResumen 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 enblanco.

Pos condiciones Estudiante registrado con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Caso de uso Gestionar DepartamentosActor AdministradorResumen Ingresa los datos como nombre del departamento

Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios enblanco.

Pos condiciones Departamento registrado con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Page 146: Proyecto de Grado - 2009

Caso de uso Gestionar MunicipiosActor AdministradorResumen 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 enblanco.

Pos condiciones Municipio registrado con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Caso de uso Gestionar DirectoresActor AdministradorResumen 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 enblanco.

Pos condiciones Director registrado con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Caso de uso Gestionar Comité de InvestigaciónActor AdministradorResumen Ingresa los datos como cedula, nombre, apellido, dirección,

teléfono, e-mail, tel. celular, empresa, titulo y cargo y se escoge lafacultad 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

Page 147: Proyecto de Grado - 2009

Caso de uso Gestionar Coordinador de PracticasActor AdministradorResumen Ingresa los datos como cedula, nombre , apellido, dirección,

teléfono, e-mail, tel. celular, empresa, titulo y cargo, se escoge lafacultad de la que hace parte y de igual forma el programa.

Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios enblanco.

Pos condiciones Coordinador registrado con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Caso de uso Gestionar UsuariosActor AdministradorResumen 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 enblanco, que la cedula y el login no estén registrados dentro de labase de datos.

Pos condiciones Usuario registrado con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Page 148: Proyecto de Grado - 2009

Usuario estudiante:

Page 149: Proyecto de Grado - 2009

Descripción detallada de los requerimientos

Caso de uso ValidarActor EstudianteResumen 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

Caso de uso Escoger Opción Proyecto de GradoActor EstudianteResumen El estudiante al momento de escoger proyecto de grado como

modalidad de desarrollo dentro del portal, podrá inscribir suproyecto 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

Page 150: Proyecto de Grado - 2009

Caso de uso Escoger Opción Práctica ProfesionalActor EstudianteResumen El estudiante al momento de escoger prá ctica profesional como

modalidad de desarrollo dentro del portal, podrá inscribir su perfilpara participar en la selección a las diferentes empresas vinculadasa 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

Caso de uso Inscribir ProyectoActor EstudianteResumen 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 deinvestigación que maneja, así como los diferentes núcleostemáticos y se carga la propuesta, si hay más de un estudiante seingresa la cedula y se valida, se ingresa el nombre del directorpropuesto por parte del estudiante.

Precondiciones Deben ser solo caracteres alfanuméricos, no dejar espacios enblanco, 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

Page 151: Proyecto de Grado - 2009

Caso de uso Consultar AsesoríaActor EstudianteResumen El estudiante podrá ver los detalles de la asesoría que el director

asignado estableció con anterioridad, como observaciones, elcompromiso, el tema de la asesoría a tratar y la fecha de la próximaasesoría.

Precondiciones Deben de existir asesorías registradas a este proyecto de gradopor 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 GradoActor EstudianteResumen 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 delsistema de la Base de Datos

Pos condiciones Reglamentos consultados con éxito.

Excepciones Que no existan los reglamentos actualizados dentro de laBase de Datos.

Caso de uso Consultar Aprobación De ProyectoActor EstudianteResumen 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 gradoRealizada con éxito.

Excepciones Que no exista un reporte de aprobación registrado, el proyecto seencuentra en un estado de: “en espera”.

Page 152: Proyecto de Grado - 2009

Caso de uso Cambiar claveActor EstudianteResumen Se podrá cambiar la clave por parte del usuario en el momento en

que se considere pertinente, este proceso se hace directamentecon la Base de Datos la cual valida que los datos ingresados sonlos correctos.

Precondiciones Debe de existir como usuario registrado dentro de la base dedatos.

Pos condiciones Cambio de clave realizada con éxito.

Excepciones Que no exista como usuario registrado.

Caso de uso Inscribir Practica ProfesionalActor EstudianteResumen De forma rápida el estudiante escogerá la facultad a la que

pertenece, el programa y carga el perfil estudiantil en el p ortal paraser evaluado por el coordinador de prácticas.

Precondiciones El archivo a cargar debe estar en los formatos soportados por elaplicativo.

Pos condiciones Perfil estudiantil inscrito con éxito.

Excepciones Que el archivo a cargar no esté en fo rmato valido para el portal.

Caso de uso Consultar Detalle Práctica ProfesionalActor EstudianteResumen 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 delcoordinador 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 delcoordinador.

Page 153: Proyecto de Grado - 2009

Caso de uso Subir Plan de AcciónActor EstudianteResumen En el momento en que sea necesario el estudiante podrá subir el

plan de acción propuesto para la práctica, revisado con anteriorid adpor el jefe inmediato.

Precondiciones El archivo a cargar debe estar en los formatos soportados por elaplicativo.

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ácticaActor EstudianteResumen 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 sop ortados por elaplicativo.

Pos condiciones Informes cargados con éxito.

Excepciones Que el archivo a cargar no esté en formato valido para el portal.

Caso de uso Consultar Reglamento de Prácticas ProfesionalesActor EstudianteResumen El estudiante podrá ver todos los reglamentos – aspectos legales

que rigen la modalidad en la que se encuentra (prácticaprofesional).

Precondiciones Deben existir los reglamentos actualizados dentro delsistema de la Base de Datos

Pos condiciones Reglamentos consultados con éxito.

Excepciones Que no existan los reglamentos actualizados dentro de laBase de Datos.

Page 154: Proyecto de Grado - 2009

Usuario director:

Caso de uso Cambiar claveActor EstudianteResumen Se podrá cambiar la clave por parte del usuario en el momento en

que se considere pertinente, este proceso se hace directamentecon la Base de Datos la cual valida que los datos ingresados sonlos 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.

Page 155: Proyecto de Grado - 2009

Descripción detallada de los requerimientos

Caso de uso ValidarActor Director de ProyectosResumen 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 laBase de Datos

Pos condiciones Usuario validado

Excepciones Que este actor no se encuentre registrado como usuariodentro de la Base de Datos

Caso de uso Consultar Lista de Proyectos AsignadosActor Director de ProyectosResumen El director podrá ver todos los proyectos asignados a él para

desarrollar.

Precondiciones Deben existir proyectos asignados a el por parte del comité deinvestigación.

Pos condiciones Consulta de proyectos asignados realizada con éxito.

Excepciones Que no se haya asignado un proyecto por parte del comi té deinvestigación.

Page 156: Proyecto de Grado - 2009

Caso de uso Ver Detalles del Proyecto AsignadoActor Director de ProyectosResumen Se mostrarán datos como el titulo del proyecto, línea de

investigación, los núcleos tratados, el estado del proyecto y losintegrantes 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íaActor Director de ProyectosResumen 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, lasobservaciones, el compromiso y la fecha de la próxima asesoría.

Precondiciones Debe existir una inscripción de un proyecto para asesorar y eldirector 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 comodirector a un proyecto.

Caso de uso Consultar AsesoríaActor Director de ProyectosResumen 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 gradopor 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.

Page 157: Proyecto de Grado - 2009

Caso de uso Consultar Reglamento de Proyectos de GradoActor Director de ProyectosResumen El director podrá ver todos los reglamentos – aspectos legales que

rigen el Proyecto de Grado.

Precondiciones Deben existir los reglamentos actualizados dentro delsistema de la Base de Datos

Pos condiciones Reglamentos consultados con éxito.

Excepciones Que no existan los reglamentos actualizados dentro de laBase de Datos.

Caso de uso Cambiar claveActor Director de ProyectosResumen Se podrá cambiar la clave por parte del usuario en el momento en

que se considere pertinente, este proceso se hace directamentecon la Base de Datos la cual valida que los datos ingresados sonlos correctos.

Precondiciones Debe de existir como usuario registrado dentro de la base dedatos.

Pos condiciones Cambio de clave realizada con éxito.

Excepciones Que no exista como usuario registrado.

Page 158: Proyecto de Grado - 2009

Usuario comité de investigación:

Descripción detallada de los requerimientos

Caso de uso ValidarActor Comité de InvestigaciónResumen 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

Page 159: Proyecto de Grado - 2009

Caso de uso Consultar Lista de Proyectos As ignadosActor Comité de InvestigaciónResumen 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.

Caso de uso Ver Detalles del Proyecto de GradoActor Comité de InvestigaciónResumen Se mostrarán datos como el titulo del proyecto, línea de

investigación, los núcleos tratados, el director propuesto por losestudiantes 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 ConsultaActor Comité de InvestigaciónResumen 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.

Page 160: Proyecto de Grado - 2009

Caso de uso Consultar Proyectos por EstadoActor Comité de InvestigaciónResumen El comité solo podrá ver todos los proyectos de grado por el estado

en que se encuentren (aprobado, rechazado, aplazado, ensustentació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 ProgramasActor Comité de InvestigaciónResumen 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.

Caso de uso Consultar Proyectos por Líneas de InvestigaciónActor Comité de InvestigaciónResumen El comité solo podrá ver todos los proyectos de grado por la Línea

de investigación relacionada con el proyecto inscrito ( Ingeniería delSoftware, 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.

Page 161: Proyecto de Grado - 2009

Caso de uso Consultar Proyectos por Núcleo TemáticoActor Comité de InvestigaciónResumen El comité solo podrá ver todos los proyectos de grado por el núcleo

temático que adscritos a su línea de investi gación relacionada conel 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.

Caso de uso Consultar Proyectos por Fecha de CreaciónActor Comité de InvestigaciónResumen El comité solo podrá ver todos los proyectos de grado por la fecha

en que el proyecto fue inscrito (Fecha de Inscripción, Fecha deAprobació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 GradoActor Comité de InvestigaciónResumen Se mostrarán datos como el titulo del proyecto y el director

propuesto, se ingresará el comentario de aprobación por parte delcomité, se escogerá el director que e l comité apruebe y se leasignara 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.

Page 162: Proyecto de Grado - 2009

Caso de uso Descargar Documento PropuestaActor Comité de InvestigaciónResumen El comité tendrá la posibilidad de descargar la propuesta cargada

con anterioridad por el estudiante, revisar todos los ítems, paraluego 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ónActor Comité de InvestigaciónResumen Ingresa los datos como nombre de la línea de investigación y la

escogencia del programa a la que pertenece. El sistema hace elregistro del nombre dentro de la base de datos.

Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios enblanco.

Pos condiciones Línea de Investigación registrada con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Caso de uso Gestionar Núcleos TemáticosActor Comité de InvestigaciónResumen 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 delnombre dentro de la base de datos.

Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios enblanco.

Pos condiciones Línea de Investigación registrada con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Page 163: Proyecto de Grado - 2009

Caso de uso Consultar Reglamento de Proyectos de GradoActor Comité de InvestigaciónResumen El director podrá ver todos los reglamentos – aspectos legales que

rigen el Proyecto de Grado.

Precondiciones Deben existir los reglamentos actualizados dentro delsistema de la Base de Datos

Pos condiciones Reglamentos consultados con éxito.

Excepciones Que no existan los reglamentos actualizados dentro de laBase de Datos.

Caso de uso Cambiar claveActor Comité de InvestigaciónResumen Se podrá cambiar la clave por parte del usuario en el momento en

que se considere pertinente, este proceso se hace directamentecon la Base de Datos la cual valida que los datos ingresados sonlos correctos.

Precondiciones Debe de existir como usuario registrado dentro de la base dedatos.

Pos condiciones Cambio de clave realizada con éxito.

Excepciones Que no exista como usuario registrado.

Page 164: Proyecto de Grado - 2009

Usuario coordinador de práctica profesional:

Page 165: Proyecto de Grado - 2009

Descripción detallada de los requerimientos

Caso de uso ValidarActor Coordinador de PrácticasResumen 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 usuariodentro de la Base de Datos

Caso de uso Consultar Lista de Perfiles EstudiantesActor Coordinador de PrácticasResumen El coordinador de prácticas podrá ver todos los perfiles de

estudiantes, nombre del estudiante y fecha de inscripción delperfil y detalles para descargar.

Precondiciones Deben existir perfiles inscritos con anterioridad por parte de losestudiantes.

Pos condiciones Consulta de perfiles estudiantil realizada con éxito.

Excepciones Que no se hayan inscrito perfiles por parte de los estudiantes.

Page 166: Proyecto de Grado - 2009

Caso de uso Descargar Perfil EstudianteActor Coordinador de PrácticasResumen 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 di stintas 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 EstudiantilActor Coordinador de PrácticasResumen Se mostrarán datos personales del estudiante como nombre,

cedula, apellidos, se escogerá la empresa que este acorde con elperfil 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.

Caso de uso Asignar Práctica ProfesionalActor Coordinador de PrácticasResumen 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 horariode la misma, para luego el estudiante pueda consultar.

Precondiciones El estudiante debe tener una empresa asociad a.

Pos condiciones Asignación realizada con éxito.

Excepciones Que no exista relación del estudiante con ninguna empresa aún.

Page 167: Proyecto de Grado - 2009

Caso de uso Consultar Reglamento de Prácticas Profesionales.Actor Coordinador de PrácticasResumen El Coordinador de Práct icas podrá ver todos los reglamentos –

aspectos legales que rigen las prácticas.

Precondiciones Deben existir los reglamentos actualizados dentro del sistema dela Base de Datos

Pos condiciones Reglamentos consultados con éxito.

Excepciones Que no existan los reglamentos actualizados dentro de laBase de Datos.

Caso de uso Consultar Plan de Acción.Actor Coordinador de PrácticasResumen 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 Basede Datos

Pos condiciones Plan de acción consultado con éxito.

Excepciones Que no exista un plan de acción actualizado dentro de la Base deDatos.

Caso de uso Consultar Informes de Práctica.Actor Coordinador de PrácticasResumen 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 Basede Datos

Pos condiciones Informes de prácticas consultado con éxito.

Excepciones Que no exista un Informes de prácticas actualizado dentro de laBase de Datos.

Page 168: Proyecto de Grado - 2009

Caso de uso Gestionar Empresas.Actor Coordinador de PrácticasResumen Ingresa los datos como nombre de la empresa, representante legal,

cedula del representante, actividad que desempeña, losdocumentos que requiere el estudiante, se hace la escogencia delmunicipio al que pertenece la empresa. El sistema hace el registrode los datos dentro de la base de datos.

Precondiciones Deben ser solo caracteres alfanuméricos y no dejar espacios enblanco.

Pos condiciones Empresa registrada con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Caso de uso Gestionar Jefe Inmediato – PrácticaActor Coordinador de PrácticasResumen 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 enblanco.

Pos condiciones Jefe Inmediato - Práctica registrado con éxito.

Excepciones Que en los datos se ingresen valores no admitidos

Caso de uso Cambiar claveActor Coordinador de PrácticasResumen Se podrá cambiar la clave por parte del usuario en el momento en

que se considere pertinente, este proceso se hace directamentecon la Base de Datos la cual valida que los datos ingresados sonlos correctos.

Precondiciones Debe de existir como usuario registrado dentro de la base dedatos.

Pos condiciones Cambio de clave realizada con éxito.

Excepciones Que no exista como usuario registrado.

Page 169: Proyecto de Grado - 2009

Usuario jefe inmediato:

Page 170: Proyecto de Grado - 2009

Descripción detallada de los requerimientos

Caso de uso ValidarActor Jefe Inmediato – PrácticaResumen 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 dela Base de Datos

Caso de uso Consultar Lista de Perfiles EstudiantesActor Jefe Inmediato – PrácticaResumen El Jefe Inmediato – Práctica de prácticas podrá ver todos los

perfiles de estudiantes, nombre del estudiante, programa al quepertenece y detalles para descargar.

Precondiciones Deben existir perfiles enviados con anterioridad por parte delcoordinador.

Pos condiciones Consulta de perfiles estudiantil realizada con éxito.

Excepciones Que no se hayan enviado perfiles por parte del coordinador deprácticas.

Page 171: Proyecto de Grado - 2009

Caso de uso Descargar Perfil EstudianteActor Jefe Inmediato – PrácticaResumen 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ácticaResumen El Jefe Inmediato – Práctica podrá ver todos los reglamentos –

aspectos legales que rigen las prácticas.

Precondiciones Deben existir los reglamentos actualizados dentro delsistema de la Base de Datos

Pos condiciones Reglamentos consultados con éxito.

Excepciones Que no existan los reglamentos actualizados dentro de laBase de Datos.

Caso de uso Asignar Tipo de LaborActor Jefe Inmediato – PrácticaResumen Se mostrarán datos como nombre del estudiante, cedula, apellidos,

e-mail, teléfono celular, se ingresará datos como el cargo quetendrá 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.

Page 172: Proyecto de Grado - 2009

Caso de uso Cambiar claveActor Jefe Inmediato – PrácticaResumen Se podrá cambiar la clave por parte del usuario en el momento en

que se considere pertinente, este proceso se hace directamentecon la Base de Datos la cual valida que los datos ingresados sonlos correctos.

Precondiciones Debe de existir como usuario registrado dentro de la base dedatos.

Pos condiciones Cambio de clave realizada con éxito.

Excepciones Que no exista como usuario registrado.

Page 173: Proyecto de Grado - 2009

10.2. ESPECIFICACIÓN DE LA ARQUITECTURA DEL SISTEMA

El Portal Web a desarrollar en este proyecto está basado en una arquitectura

multicapas compuesta básicamente por las siguientes capas: l a 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:

Page 174: Proyecto de Grado - 2009

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 reque ridas 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 perm ite ver los datos

remotos a través de una capa de presentación HTML, O también una aplicación

WIN32 como ser los formularios de Visual Basic.

Mediante el uso de componentes, se separa la programación que da acceso a los

datos en las bases de datos y aplica ciones 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.

Page 175: Proyecto de Grado - 2009

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 hemos creado el siguiente esquema:

Page 176: Proyecto de Grado - 2009

10.2.2. CAPA DE DATOS

En esta parte del proyecto no s 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 qu e 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

Page 177: Proyecto de Grado - 2009

11. FASE DE CONSTRUCCIÓN

Cuando se plantea la construcción de un sitio Web accesible desd e cero, existen

una serie de fases principales, para conseguir el resultado esperado y no llevar se

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 vec es

es el que manda.

Son tres fases principales:

Contenido y estructuración: En primer lugar, se debe inquietar ú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 y maquetación : Una vez que tenemos 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. Siempre hay que

evitar la maquetación con tablas .

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 t iempo dediquemos a la etapa de revisión

de accesibilidad mejor será el resultado obtenido.

Page 178: Proyecto de Grado - 2009

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

12. RECURSOS

12.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

Page 179: Proyecto de Grado - 2009

Quemador LG de 52x

Tarjeta de red: Adaptador Fast Ethernet compatible VIA

Impresoras

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

Page 180: Proyecto de Grado - 2009

12.2. RECURSOS ECONÓMICOS

Numero RecursoCantidad/

unidadValor Unitario Subtotal

1Resmas de papel tamaño

carta de 500 hojas4 $ 8.500 $ 34.000

2 Fotocopias 500 80 40.000

3 Grapadora 1 3.500 3.500

4 Cartucho de tinta negra 1 150.000 150.000

5 Cartucho de tinta a color 1 190.000 190.000

6Recargas cartucho de

tinta negra2 22.000 44.000

7 Transporte 300 1.000 30.000

8 Fluido eléctrico 810 KWH 239 193.590

9 Internet 20 horas 1.500 30.000

10 Asesorías 5 10.000 50.000

11 Llamadas telefónicas 110 min. 250 37.500

Total $ 802.590

Page 181: Proyecto de Grado - 2009

12.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 SISTE MAS

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 TECNOLOGIC A.

Page 182: Proyecto de Grado - 2009

Asesor(es):

NAMUEL SOLORZANO.

C.C. 92´555.606

TÍTULO: INGENIERO SISTEMAS

CARGO: DOCENTE DE LA FACULTAD DE INGENIERIA.

JHON JAIME MENDEZ LANDAETA

C.C.

TÍTULO: INGENIERO SISTEMAS

CARGO: DOCENTE DE LA FACULTAD DE INGENIERIA.

RAFAEL MERLANO

C.C

TITULO: INGENIERO INDUSTRIAL

CARGO: DIRECTOR DEL PROGRAMA DE INGENIRIA INDUSTRIAL

Page 183: Proyecto de Grado - 2009

13. CRONOGRAMA DE ACTIVIDADES

ACTIVIDADES MESES (SEMANAS)

Junio Julio Agosto Septiembre Octubre Noviembre

Analizar el sistema actual

que maneja el programa de

ingeniería de sistemas,

enfatizando en su estructura

y funcionamiento.

* * * * * *

Establecer cuáles son los

requisitos del sistema para

dar una solución más

eficiente al problema.

* * * *

Diseñar una base de datos

para el almacenamiento

necesario de la información

referente a los procesos

* * * *

Page 184: Proyecto de Grado - 2009

que llevan a cabo los

proyectos de grado y

prácticas profesionales.

Construir un modelo que

permita esbozar la solución

del problema y

comprenderla mejor previo

a la implementación.

Desarrollar e implementar la

aplicación Web, basada en

los requerimientos

obtenidos durante la fase de

análisis y en el modelo de

diseño construido.

Ejecutar cada una de las

pruebas necesarias para

lograr una aplicación

eficiente y confiable.

Page 185: Proyecto de Grado - 2009

14. CONCLUSIONES

En conclusión, 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 al sistema actual de inscripciones y seguimiento

de proyectos, se crearon las condiciones de acceso y manipulación de la

herramienta, las cuales permitieron reali zar el correcto proceso de

almacenamiento de la información por medio de una aplicación Web.

Se diseño la Base de Datos que permite 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.

Page 186: Proyecto de Grado - 2009

El sistema gestor de Bases de Datos, cumple con los requerimientos para

interactuar con la aplicación Web en los procesos d e 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 grado 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.

Page 187: Proyecto de Grado - 2009

15. REFERENTES BIBLIOGRÁFICOS

COMITÉ DE INVESTIGACIÓN DE LA FACULTAD DE LA FACULTAD DE

INGERNIERIA DE CECAR, Documento Guía De Desarrollo Metodológico Para

Los Proyectos De Grado de la Facultad de Ingeniería de la Corporación

Universitaria Del Caribe - CECAR, Sincelejo, 2005.

COMITÉ DE INVESTIGACIÓN DE LA FACULTAD DE LA FACULTAD DE

INGERNIERIA DE CECAR, Documento de Opciones de Grado de la Facultad de

Ingeniería de la Corporación Universitaria Del Caribe – CECAR, Sincelejo,

(DOGFIC V 3.13). 2007.

McDonnell, Steve. Desarrollo Y Gestión de Proyectos Informáticos. Madrid –

España: McGraw-Hill. Primera Edición.

Web - Bibliografía

http://es.wikipedia.org/wiki/Desarrollo_web

http://issuu.com/josel21/docs/