113
T E S I S “DESARROLLO DE FORO DE DISCUSIÓN” PARA OBTENER EL TITULO DE: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA P R E S E N T A N: TREJO GONZALEZ ARMANDO ZALETAS OLARTE HUGO MÉXICO, D.F. 2007

“DESARROLLO DE FORO DE DISCUSIÓN” T E S I S

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

T E S I S

“DESARROLLO DE FORO DE DISCUSIÓN”

PARA OBTENER EL TITULO DE: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

P R E S E N T A N: TREJO GONZALEZ ARMANDO

ZALETAS OLARTE HUGO

MÉXICO, D.F. 2007

ÍNDICE GENERAL

Desarrollo de un Foro de discusión Escolar ii

ÍNDICE

Índice de Figuras y Tablas….………………………………………...........……….. iv

Resumen…………………………………………………………..………….……… vii

Introducción………………………...……………………………………………….. viii

Objetivos………………………………….………………………………………….. x

Justificación………………………………………………………………………….. xi

Estado del arte………………………………………………………………………. xii

Metodología para el desarrollo de un sistema de cómputo……………………..… xx

CAPÍTULO 1 Aspectos necesarios para desarrollar un sitio web

1.1 Componentes físicos…………………………………….…..……...…………….

1

1.2 Componentes Lógicos…………………………………….….....………………..

3

1.3 Seguridad de un sitio web………………...……………………......……………..

5

1.4 Contexto del proyecto…………………..………………………….…………….. 9

CAPÍTULO 2 Planeación de un sistema informático

2.1 Construcción de un algoritmo…………………………………………………….

15 2.2 Construcción de una página web………………………………………………….

22

2.3 Etapas de desarrollo para la creación de un sitio web……………………………

24

CAPÍTULO 3 Selección de la plataforma tecnológica

3.1 Tipos de Lenguaje…………………………………..…………………………….

29

ÍNDICE GENERAL

Desarrollo de un Foro de discusión Escolar iii

3.1.1 Java Script……………………………………………………………………… 3.1.2 PHP……………………………………………………………………………..

30

31 3.1.3 Visual Studio .Net………………………………………………………………

32

3.2 Base de datos……………………………………………………………………..

36

CAPÍTULO 4 Estructura del proyecto

4.1 Definición del problema……………………………….…………………………

38

4.2 Análisis…………………………………………………………………………...

39

4.3 Determinación de procesos……………………………...………………………..

42

4.4 Diseño conceptual del sistema………………………….………………………...

44

4.5 Especificación de datos…………………………………….…………………….

46

4.6 Reglas de operación………………………………………………………………

52

CAPÍTULO 5 Desarrollo del “Foro de Discusión Escolar” 6.1 Base de datos…………………………………………………………………...… 55

6.2 Interfaz del usuario…………………………………………………………...…... 58 Conclusiones…………………………………………………………………………. 64 Apéndice A…………………………………………………………………………... I Glosario….…………………………………………………………………………… XX

Bibliografía…………………………………………………………………………... XXIV

ÍNDICE DE FIGURAS Y TABLAS

Desarrollo de un Foro de discusión Escolar iv

ÍNDICE DE FIGURAS Y TABLAS Fig. 1 Página que aparece en LANeros.com al ingresar……………………………….

xiv

Fig. 2 El ingreso al Foro es con previo registro……………………………………….

xiv

Fig. 3 Reglas del Foro…………………………………………………………………

xv

Fig. 4 Segunda ventana de control, ingreso de usuario y contraseña………………….

xv

Fig. 5 Menú para entrar al Foro del CECyT No. 8…………………………………….

xvi

Fig. 6 Normas del Foro………………………………………………………………..

xvii

Fig. 7 Pre registro del Foro del CECyT No. 8…………………………………………

xvii

Fig. 8 Diseño amigable del Foro del CECyT No. 8…………….……………………..

xviii

Fig. 9 Página principal del Foro de la Universidad de Yucatán…………...…………..

xviii

Fig. 10 Primera pantalla del Foro de Microbiología y Parasitología……………...…..

xix

Fig. 11 Etapas de desarrollo…………………………………………………………...

xxii

CAPÍTULO 1 Aspectos necesarios para desarrollar un sitio web

Fig. 1.1 Página de internet……………………………………………………………..

5

Fig. 1.2 Capas del modelo TCP/IP…………………………………………………….

13

CAPÍTULO 2 Planeación de un sistema informático

Fig. 2.1 Sistema de proceso de información…………………………………………..

16 Fig. 2.2 Resolución de un problema…………………………………………………...

20

CAPÍTULO 3 Selección de la plataforma tecnológica

ÍNDICE DE FIGURAS Y TABLAS

Desarrollo de un Foro de discusión Escolar v

Tabla 3.1 Visual Studio .Net………………………………………………………….. 33 Fig. 3.1 Diseño de la plataforma de datos……………………………………………..

37

CAPÍTULO 4 Estructura del proyecto

Fig. 4.1 Proceso de registro……………………………………………………………

42 Fig. 4.2 Agregar tema………………………………………………………………….

43

Fig. 4.3 Resultados de la encuesta……………………………………………………..

45

Fig. 4.4 Datos del alumno……………………………………………………………..

46

Fig. 4.5 Datos del invitado…………………………………………………………….

48

Fig. 4.6 Temas…………………………………………………………………………

49

Fig. 4.7 Subtemas……………………………………………………………………...

50

Fig. 4.8 Opciones del tema…………………………………………………………….

50

Fig. 4.9 Reglas para acceder al sistema………………………………………………..

52

Fig. 4.10 Reglas de proceso…………………………………………………………...

53

Fig. 4.11 Opciones de usuario…………………………………………………………

54

CAPÍTULO 5 Desarrollo del “Foro de Discusión Escolar”

Tabla 5.1 Datos del alumno…………………………………………………………...

55 Tabla 5.2 Datos del invitado…………………………………………………………..

56

Tabla 5.3 Datos del usuario…………………………………………………………...

56

Tabla 5.4 Datos del subtema…………………………………………………………..

56

Tabla 5.5 Opciones del subtema………………………………………………………

56

Fig. 5.1 Portada………………………………………………………………………..

58

ÍNDICE DE FIGURAS Y TABLAS

Desarrollo de un Foro de discusión Escolar vi

Fig. 5.2 Reglas de uso…………………………………………………………………

59

Fig. 5.3 Datos del tema………………………………………………………………...

59

Fig. 5.4 Datos del Usuario……………………………………………………………..

60

Fig. 5.5 Validación de usuario………………………………………………………...

61

Fig. 5.6 Sección de alumno……………………………………………………………

61

Fig. 5.7 Temas…………………………………………………………………………

62

Fig. 5.8 Página del administrador……………………………………………………...

63

ÍNDICE DE FIGURAS Y TABLAS

Desarrollo de un Foro de discusión Escolar vii

RESUMEN

Desarrollo de un Foro de discusión Escolar viii

RESUMEN

El siguiente trabajo, lleva por nombre: Desarrollo de un Foro de discusión, en el cual, explicaremos la manera de cómo analizar cualquier tipo de proceso y elaborar un sistema de cómputo esto, eligiendo entre diferentes metodologías. También trataremos de explicar por qué, en nuestro caso es más factible ocupar una metodología específica. Una vez dicho lo anterior trataremos de analizar el sistema, desde el por qué realizar un Foro de discusión hasta un análisis más profundo y tratar de puntualizar los requerimientos del Foro para satisfacer las necesidades de la comunidad de la ESIME. Como último paso se justificará y se escogerá un programa para desarrollar esta aplicación, se aprenderá a ocupar esta herramienta de desarrollo, además de realizar el código y la puesta en marcha del sistema. Cabe resaltar que nuestro trabajo no pretende ser un manual de como usar una herramienta de programación (c#), si no que, está más enfocada en la manera de cómo se debe hacer el desarrollo de un sistema de cómputo, por eso el método propuesto es solo un camino para la resolución de un problema, ya que existen diversas maneras de hacer esto, y nosotros nos enfocamos a uno en especifico tratado a lo largo del trabajo. Por esto podemos decir que la forma de analizar y programar depende bastante de la persona o personas que desarrollen el sistema. En concreto pretendemos dar al lector bases para analizar un sistema, seleccionar herramientas de desarrollo y brindarle una forma para solucionar problemas.

INTODUCCIÓN

Desarrollo de un Foro de discusión Escolar ix

INTRODUCCIÓN

Pero bien, ¿qué es un Foro de discusión montado en internet? Es un servicio automatizado en un ámbito virtual que ofrecen algunos servidores de Internet a usuarios interesados en intercambiar ideas y puntos de vista sobre diversos temas ya establecidos [David Histol - Abril de 2007].

Es un sistema muy similar al chat, pero a diferencia de éste, no es en tiempo real y los mensajes se guardan por un largo tiempo.

De manera general sus principales características son las siguientes:

Un visitante, podrá entrar al Foro seleccionado, dejar un mensaje, y podrán entrar luego otros usuarios, e ir respondiendo esos mensajes dejados previamente por otros usuarios.

De esta manera, se empiezan a relacionar los mensajes, las respuestas y opiniones de los usuarios que visitan nuestro sitio.

Nos permite establecer una comunicación verdadera con tanta gente como haya en Internet, por consiguiente tener la posibilidad de hablar con gente altamente capacitada que se encuentre en otra parte del mundo.

Básicamente podemos diferenciar dos tipos de foros de discusión:

Usenet

Los usenet son grupos de noticias, los cuales permiten al usuario, expresarse sobre algún tema así como también preguntar. Se caracterizan principalmente por ser foros de debate organizados temáticamente y jerárquicamente.

Pueden ser libres o moderados, es decir, pueden tener un administrador que se encargue de determinar, si los mensajes pueden ser incorporados o no al Foro, basándose en su contenido y relación con el tema.

Estos tipos de foros son transmitidos usando el protocolo NNTP (Network News Transfer Protocol). Lo cual es una gran diferencia con los foros web.

Puedes encontrar información de cualquier tipo, desde anécdotas de la vida social, hasta algún tratado de doctorado. Todo depende del tema relacionado con el Foro Usenet al que ingreses.

Usenet involucra universidades, agencias de gobierno, colegios, empresas de todos los giros y tamaños, enlazadas por equipos de cómputo de todos los tipos.

No hay persona o grupo que tenga autoridad completa sobre Usenet, un administrador o dueño de algún servidor tendrá autoridad sobre dicho servidor, pero no sobre los demás.

INTODUCCIÓN

Desarrollo de un Foro de discusión Escolar x

Nadie controla quien puede transferir o publicar artículos. De hecho no existe ningún grupo, organismo o corporación que lo controle.

Los foros web

Estos tipos de foros son de reciente creación y su principal característica es, como su nombre lo indica, que está en la web y para su visualización sólo se necesita de un navegador de Internet (Netscape, Internet Explorer, Opera, AOL, etc.).

Al igual que en los Usenet, los foros independientes pueden ser moderados o no moderados, lo que significa que nuestros mensajes pueden o no, ser revisados antes de introducirlos al Foro.

Otro aspecto que es importante señalar, es que cada Foro tiene una presentación propia, así como su forma de leer, publicar o responder mensajes.

Como se hace notar, los foros de discusión son una excelente herramienta para organizar debates, con el propósito de que a través de estos, logremos intercambiar ideas, resolver dudas e inquietudes.

OBJETIVOS

Desarrollo de un Foro de discusión Escolar xi

OBJETIVOS El presente trabajo mostrará, una manera de cómo desarrollar un sistema de cómputo, eligiendo una metodología de desarrollo, pasando por el análisis, diagnóstico y realización del proyecto, con la herramienta de desarrollo propuesta. El “Foro de discusión escolar” cumplirá con los siguientes objetivos:

• Proporcionar a la comunidad una vía de intercambio de ideas, necesidades y soluciones.

• Brindar una herramienta útil para el manejo de información, que estará al alcance de toda la comunidad.

• Hacer de este foro una herramienta, para el que hacer cotidiano del alumno.

OBJETIVOS PARTICULARES

• Aprender a realizar análisis de procesos e implementarlo en un sistema de cómputo. • Aprender el proceso de desarrollo de un sistema de cómputo. • Realizar la puesta en funcionamiento del mismo. • Aprender todas las herramientas necesarias para poner en funcionamiento a un

sistema de cómputo. • Aprender a usar tecnología .Net.

JUSTIFICACIÓN

Desarrollo de un Foro de discusión Escolar xii

JUSTIFICACIÓN Nos surge una duda importante, por qué existiendo diversas aplicaciones a las cuales, se podría hacer un análisis para después realizar un desarrollo de software, por qué escoger un Foro de discusión escolar, como aplicación. Respondiendo, nosotros consideramos de suma importancia que nuestro trabajo tenga un impacto y una aplicación útil, en este caso para la comunidad estudiantil, además que esta aplicación tiene muchas variantes, lo cual hará que se explote al máximo la herramienta empleada (Visual Studio), así como nuestros conocimientos y habilidades para el desarrollo de un sistema. Consideramos además, que nuestra investigación y trabajo, no quedarán como un simple análisis para el desarrollo de un sistema, si no que este esfuerzo se pondrá en marcha, lo cual es de suma importancia, en primer lugar por que la ESIME no cuenta con un Foro de discusión escolar montado en Internet y en segundo lugar, porque como se dijo anteriormente, se podrá observar como trabaja nuestro sistema, arrojándonos ideas, dudas, técnicas de estudio, puntos de vista, etcétera, todo esto con el fin de ayudar a la comunidad de la ESIME, y ¡por qué no!, a usuarios ajenos.

ANTECEDENTES (ESTADO DEL ARTE)

Desarrollo de un Foro de discusión Escolar xiii

ANTECEDENTES (ESTADO DEL ARTE)

Para abordar este tema, es importante tener un buen concepto de lo que se desea obtener, y partiendo de esta idea es bueno tener en mente, qué es un Foro, para esto partiremos de una primera definición tomada del diccionario:

“Plaza pública, en las antiguas ciudades romanas, donde se celebraban reuniones, se trataban los asuntos públicos y se celebraban juicios. Tenía una función similar a la de las ciudades griegas, el "ágora". En la actualidad se usa también para referirse a un coloquio, una reunión o un lugar en el que se debate algún tema y se puede intervenir en la discusión.|| Conversación o discusión que se desarrolla después de una actividad de interés general, una obra de teatro, cine, conferencia, panel, etc. en la que los participante, dirigidos por un moderador, expresan libremente sus opiniones e ideas. Al finalizar, el moderador hace una síntesis, se extraen conclusiones, señalando las coincidencias y las discrepancias|| Dinámica de grupo que consiste en una exposición realizada por un grupo de expertos que disertan sobre diversos aspectos de un mismo tema, el Foro remite a un período de preguntas y respuestas posteriores a la exposición, a fin de aclarar o ampliar los conceptos emitidos por los expertos.” [Diccionario Enciclopédico - Abril de 2007].

Al ver estas definiciones de lo que es un Foro, podemos decir simplemente que es una herramienta útil para aclarar dudas acerca de un tema, ya que éstas definen a un Foro como un punto de encuentro de diversas ideas para aclarar ciertas dudas o ampliar conceptos, ya sea conceptos dados por expertos, o simplemente dudas planteadas por alguien ajeno al tema, pero con cierto interés.

Partiendo ya de lo analizado, empezamos pues a tratar este tema dentro del contexto que queremos, un “Foro de Discusión Escolar” montado en Internet. Es decir dejar de lado el contacto frente a frente, para el cuestionamiento o aclaración de ciertas dudas acerca de un tema, ya que en la actualidad y dado los cambios sociológicos, las personas (en especifico, las personas con apego a la tecnología) pasan mucho tiempo frente a su computadora, es decir toda la información que se desea, esta vertida a lo largo de esta gran red de información. Por tanto, todas esta técnicas de discusión como lo son las mesas redondas, la lluvia de ideas, los debates, etc., también deben evolucionar a la par de los cambios tecnológicos, que tiene la humanidad, por esto y muchas cosas más, han sido creado los foros de discusión en Internet, pero en sí, ¿Qué es y cómo funciona un Foro, montado en Internet?

ANTECEDENTES (ESTADO DEL ARTE)

Desarrollo de un Foro de discusión Escolar xiv

Entonces, a partir de ahora tomaremos otra definición, acerca de qué es un Foro, pero acompañado de la tecnología, es decir un “Foro montado en Internet”.

“Sistema que permite discutir sobre un tema determinado. Los usuarios insertan y leen opiniones, comentarios. Los foros no son en tiempo real y, a no ser que sean específicamente borrados, los mensajes perduran para posteriores consultas.|| Grupo de debate o discusión en línea. Los servicios en línea y de tablero de anuncios ofrecen una variedad de foros, en los que los participantes con intereses comunes pueden intercambiar, leer y colocar mensajes.|| Punto de encuentro en Internet en el que un grupo de personas interesadas en un mismo tema se comunican e intercambian opiniones, preguntas, dudas.” [Diccionario Enciclopédico - Abril de 2007].

Los foros de Internet o mejor conocidos como foros de mensajes de opinión, o foros de discusión, son aplicaciones web o sistemas de Internet que brindan soporte a discusiones u opiniones en línea; son los descendientes modernos de los sistemas de noticias.

Por lo general los foros en Internet son un complemento a un sitio web, invitando a los usuarios a discutir y compartir información relevante a la temática del sitio, en una discusión libre e informal, con lo cual se llega a formar una comunidad de personas con los mismos intereses. Estas discusiones suelen ser moderadas por un coordinador quien generalmente es quien introduce el tema, formula las preguntas a discutirse, otorga turnos para opinar, es decir lleva un orden de esta discusión.

Ahora bien, nosotros para tener una idea del cómo es un Foro en Internet, y tomar ciertas ideas para desarrollar el nuestro, visitamos varios foros en Internet, dándonos cuenta que estos tienen ciertos lineamientos.

Para empezar encontramos un Foro recomendado por muchos, el cual se llama LANeros.com, y como lo establecimos anteriormente, este trata diversos temas, se enfoca más a asuntos de tecnología, como lo son celulares, computación, redes, electrónica, reparación e información de todos estos temas, etc. Como lo vemos a continuación en la Fig. 1.

ANTECEDENTES (ESTADO DEL ARTE)

Desarrollo de un Foro de discusión Escolar xv

Fig. 1 Primera página que aparece en LANeros.com al ingresar

Al ingresar por primera vez a este Foro lo que apreciamos, es que no tiene restricciones y nos permite entrar, solo que en calidad de invitado, por lo cual se tienen ciertos beneficios mas no se cuentan con privilegios. Lo que consideramos beneficios, son las facilidades para entrar a los diversos foros, con los que cuenta este, y al hacer referencia a los privilegios negados, es por que se puede leer más no se puede opinar acerca de nada.

Pero en un Foro de discusión lo importante es participar, por tanto decidimos ingresar a el ya no como un simple invitado al Foro, sino como un usuario de éste, entonces así podremos opinar en cualquier tema que tengamos afín, con los tratados ahí.

Como podemos apreciar en la Fig. 2, para ingresar como usuario hay que tener un previo registro y una contraseña.

Fig. 2 El ingreso a este Foro es con previo registro

Así nos damos cuenta que para visitar este Foro se tiene que proporcionar una serie de datos, un usuario y una contraseña, y es algo lógico ya que de las definiciones mostradas anteriormente, hay un moderador, el cual debe de llevar un orden, y con este control uno como usuario registrado, lo brinda.

ANTECEDENTES (ESTADO DEL ARTE)

Desarrollo de un Foro de discusión Escolar xvi

Fig. 3 Reglas del Foro

Ahora bien decidimos entrar como usuarios registrados, y como en todo lugar existen reglas aun en Internet, y con más razón en un Foro de discusión, en la imagen (Fig. 3) podemos apreciar algunas de las reglas impuestas en este sitio, con estas se establece que cualquier falta que uno como usuario registrado, realice en el uso de este Foro, será restringido para su futuro acceso. Es entonces que se procede a firmar el contrato de “He leído, acepto cumplir con las reglas”, pasando así a otra ventana de control.

Fig. 4 Segunda ventana de control, establecimiento de un usuario y una contraseña

ANTECEDENTES (ESTADO DEL ARTE)

Desarrollo de un Foro de discusión Escolar xvii

Al aceptar las reglas de este Foro, enseguida se despliega la pantalla anterior, la cual nos pregunta con que nombre de usuario deseamos iniciar una sesión, cada vez que ingresemos a este.

Al visitar diferentes foros de escuelas, encontramos una perteneciente a las escuelas del Politécnico (Escuelas allegadas), encontramos un Foro, que pertenece al CECyT No. 8, Narciso Bassols García, el cual desde el momento, en que se entra a la página del CECyT esta presente, como se muestra a continuación:

Fig. 5 Menú para entrar al Foro del CECyT No 8, situado en la parte derecha de dicha página.

Al entrar al Foro por medio de dicho menú se despliega la siguiente pantalla, la cual, de manera similar a las comentadas anteriormente, permiten ingresar a este como usuarios invitados, ya que si no realizamos el pre-registro, al estar navegando por esa página, se pondrán los siguientes mensajes, en la parte inferior derecha:

No puede crear mensajes. No puede responder temas. No puede editar sus mensajes. No puede borrar sus mensajes. No puede votar en encuestas.

Este Foro a diferencia del que pretendemos hacer, no hace diferencia entre alumnos o visitantes cualesquiera de la página, también la forma en como el CECyT le brindó un lugar a este Foro, es una buena forma de que los alumnos se den cuenta de que existe un sitio como ese, no hay que estar buscando página tras página para encontrarse con el, esta estructura manejada nos convendría, así se colocaría nuestro proyecto en la página principal de la ESIME, o como una opción mas del menú, pero así la comunidad de la ESIME se daría cuenta fácilmente de su existencia.

Como en el caso anterior decidimos participar en el Foro inscribiéndonos, igual que en otros foros, se despliega una página en la cual dicen las reglas, del Foro.

ANTECEDENTES (ESTADO DEL ARTE)

Desarrollo de un Foro de discusión Escolar xviii

Fig. 6 Normas del Foro

Resumiendo las reglas que se manejan, estas prohíben el uso de un vocabulario no apropiado para estar dentro de la página de una institución de educación, diciéndole al futuro usuario las penalizaciones a las que seria acreedor si incurriera en estas faltas, monitoreando siempre su IP.

Una vez aceptando estas políticas de seguridad del Foro, se despliega la siguiente pantalla, del pre registro, pidiendo nombre, contraseña y un correo electrónico.

Fig. 7 Pre registro del Foro del CECyT No. 8

Como lo hemos manejado ya una vez aceptado y habiendo llenado este registro, se puede acceder a los temas publicados en este Foro.

Cabe resaltar que este Foro, es uno de los más completos que hemos encontrado, y por tanto consideramos relevante hacer esta pequeña reseña. Este Foro también permite hacer cambios al registro hecho, ya que a menudo pasa, que el usuario después de haber realizado su registro con éxito, este simplemente se arrepiente de su nombre de usuario o de su contraseña, por ser complicada o alguna palabra de la cual ya se arrepintió, también permite ingresar a una apartado de preguntas frecuentes, lleva un orden de los usuarios registrados mostrándolos en una lista ordenada, para así llevar un control muy bueno de sus usuarios, además de muchos otros servicios que brinda a cualquier usuario registrado.

ANTECEDENTES (ESTADO DEL ARTE)

Desarrollo de un Foro de discusión Escolar xix

Fig. 8 Diseño muy amigable del Foro del CECyT No. 8

También se ingresó a otro Foro, de otra institución educativa, para tener una buena comparativa: Universidad Autónoma de Yucatán, y las diferencias se notan desde un principio, en primera el diseño ocupado por esta, resulta ser menos llamativo y menos amigable con el usuario, ya que como no se es, un usuario registrado, este Foro presenta una pantalla en la cual restringe de hacer muchas cosas como crear mensajes, responder temas, editar mensajes, entre otros. Decimos que no es amistoso ya que el pre registro de este Foro, no se encuentra a la vista, como en el ejemplo anterior y por tanto, un usuario que sólo se encuentra navegando, no se detendrá para ubicar este requisito que es el pre registro y por tanto los usuarios de este Foro no crecerán como en foros mas amigables.

Fig. 9

Página principal del Foro de la Universidad de Yucatán

Al tener estas limitantes, observamos que este Foro no tiene absolutamente nada, no hay comentarios, no hay temas, no hay mensajes. Es posible que sólo los alumnos de esa institución tengan acceso directo para llenar ese pre-registro, pero como se nota en la figura anterior por ahora no hay comentarios ni temas establecidos.

ANTECEDENTES (ESTADO DEL ARTE)

Desarrollo de un Foro de discusión Escolar xx

También ingresamos a un Foro de la UNAM (Microbiología y Parasitología) el cual, a diferencia del anterior es un Foro de discusión abierto a todo tipo de público, en una página principal, se dice que es un Foro controlado, sin especificar, que tipo de control es el que llevan.

Fig. 10 Primera pantalla del Foro de Microbiología y Parasitología

Luego de observar lo anterior, decidimos ingresar a este que a diferencia del lineamiento que tienen los demás foros de un pre registro, este solo despliega una nueva pantalla para ingresar el nuevo comentario, es aquí en donde, podría entrar el control que se estableció desde la primera página, pero no sabemos si solo se restrinja a manejo de vocabulario, o también al mal manejo de los temas.

Nos dimos cuenta que este Foro no se encuentra desordenado, pero tampoco es un Foro al cual se deba imitar.

Lo ideal, después de haber observado estos foros, es dar una semejanza al nuestro con lo ya elaborado por el CECyT No.8 ya que a nuestro parecer es uno de los mejor elaborados en la web, obviamente cada Foro tendrá que ser diferente como temas se traten en él, por tanto encontraremos semejanzas en muchos, pero jamás tendrán el mismo diseño.

METODOLOGÍA PARA DESARROLLAR EL FORO DE DISCUSIÓN

Desarrollo de un Foro de discusión Escolar xxi

METODOLOGÍA PARA DESARROLLAR EL FORO DE DISCUSIÓN

Como ya se mencionó en un principio, es de suma importancia buscar algún método adecuado para analizar el sistema. Pero antes de esto sería importante mencionar algo que se llama ciclo de vida del software que es el tiempo desde que se concibe la idea del programa hasta que el mismo se retira de funcionamiento; esto se menciona por el hecho de que el programa debe cumplir con un ciclo de vida que cumpla con nuestras expectativas, por lo tanto, es importante tener un metodología que cumpla con nuestras expectativas. Una vez mencionado lo anterior queda claro que es necesario tener una metodología para el desarrollo de un sistema de cómputo, pero no está de más explicar que es una metodología en un sistema de cómputo.

Una metodología para el desarrollo de este tipo de sistema, es un conjunto de procedimientos que permiten hacer y mantener un software, esto es, define una serie de pasos a seguir para obtener un sistema de cómputo de calidad.

Se enlistan a continuación algunas de las metodologías que existen para el desarrollo de un sistema de cómputo.

• Waterfall (en cascada): Se denomina modelo en cascada porque su característica principal es que no se comienza con un paso hasta que no se ha terminado el anterior.

El principal problema de esta aproximación, es que no podemos esperar que las especificaciones iníciales sean correctas y completas, además el usuario puede cambiar de opinión sobre una u otra característica. Los resultados no se pueden ver hasta muy avanzado el proyecto por lo que cualquier cambio debido a un error puede suponer un gran retraso además de un alto costo de desarrollo.

Como es evidente esto es sólo un modelo teórico, si el usuario cambia de opinión en algún aspecto tendremos que volver hacia atrás en el ciclo de vida.

• Prototipos: Consiste en iterar en la fase de análisis tantas veces como sea necesario, mostrando prototipos al usuario para que pueda indicarnos de forma más eficiente los requisitos del sistema. La iteración finalizará cuando el usuario de el visto bueno al prototipo.

• Evolutivo: Este modelo se diferencia del modelo por prototipos ya que en el modelo evolutivo se asume que los requisitos pueden cambiar en cualquier momento del ciclo de vida y no solo en la etapa de análisis.

METODOLOGÍA PARA DESARROLLAR EL FORO DE DISCUSIÓN

Desarrollo de un Foro de discusión Escolar xxii

• Incremental: Es una aproximación muy parecida a la evolutiva. En este modelo se desarrolla el sistema para satisfacer un subconjunto de los requisitos especificados y en posteriores versiones se incrementa el programa con nuevas funcionalidades que satisfagan más requisitos.

En el caso del modelo evolutivo se desarrollaría una nueva versión de todo el sistema, en el incremental se parte de la versión anterior sin cambios y le añadimos las nuevas funciones.

• En espiral: Toma las ventajas del modelo de desarrollo en cascada y el de prototipos añadiéndole el concepto de análisis de riesgo.

Se definen cuatro actividades:

o Planificación, en la que se recolectan los requisitos iníciales o nuevos requisitos a añadir en esta iteración.

o Análisis de riesgo; basándonos en los requisitos decidimos si somos capaces o no de desarrollar el software y se toma la decisión de continuar o no continuar.

o Ingeniería, en el que se desarrolla un prototipo basado en los requisitos obtenidos en la fase de planificación.

o Evaluación del cliente: el cliente comenta el prototipo. Si esta conforme con el se acaba el proceso, si no se añaden los nuevos requisitos en la siguiente iteración.

• Basada en transformaciones: Derivado del modelo en cascada, en el se considera que partiendo de las especificaciones y gracias a las herramientas CASE estas se transforman en diseño lógico del software, este se transforma en un diseño físico (un diseño dependiente de la tecnología) y éste en el código final.

Ahora bien como ya se mencionó cada metodología tienes sus diferentes características y a su vez cuenta con ventajas y desventajas algunos métodos tratan de tomar características positivas de algunos modelos como es el caso de modelo en espiral. Nosotros consideramos de suma importancia seguir un modelo, más que nada para tener un patrón preciso de cómo se irá trabajando con el desarrollo de nuestro Foro. Como sería difícil limitarnos a seguir al pie de la letra algunos de estos modelos ya que aunque en algunos casos sería de gran ayuda, preferimos tomarlos en cuenta y partir de estos nosotros proponer un forma de trabajo que nos ayuda en el desarrollo de nuestro sistema por lo tanto nuestro modelo a seguir es el que a continuación se muestra:

METODOLOGÍA PARA DESARROLLAR EL FORO DE DISCUSIÓN

Desarrollo de un Foro de discusión Escolar xxiii

Fig. 11

Etapas de Desarrollo

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 1

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO DE UN SITIO WEB

Antes de publicar algún sitio web en internet, las personas que deseen hacerlo deben de tener en cuenta varios aspectos como lo son:

• Seguridad o vulnerabilidad que tiene su sistema. • Velocidad de acceso que dispone. • Servicios.

Al contactar con cualquier centro proveedor de Internet éste nos informará de todas sus características técnicas: el ancho de banda que tiene, el número de usuarios, las máquinas que tiene, los sistemas de seguridad que implementa y que sistema usa para tratar la información que se desea colocar en el centro.

1.1 COMPONENTES FÍSICOS

• Tipos de línea

Existen diversas técnicas de conmutación de paquetes pero actualmente una de las formas más extendida de acceder a un servidor es por medio de una Frame Relay, que es una técnica de conmutación por paquetes, que nos servirá para enviar información. Esta técnica básicamente lo que hace es transferir a las terminales las funciones de flujo de control, corrección de errores y otras que anteriormente hacían los protocolos de comunicación como X.25. Frame Relay esta orientado a paquetes como X.25 y también transparente a los protocolos como el modo circuitos.

• Router

Estos dispositivos operan en el nivel de red y permiten la interoperabilidad entre redes diferentes, eligiendo siempre el mejor camino para enviar un paquete. El router necesario debe adaptar la información que llega por la línea, a información que la máquina pueda entender. La elección del router vendrá especificada por el protocolo que se use. Los routers son tolerantes a fallas de enlaces (y por tanto buscan rutas alternativas), también soportan el desorden y duplicidad de paquetes, los routers también minimizan la pérdida de paquetes, aunque el nivel no garantiza la entrega fiable de estos. Los routers introducen un tiempo de procesado adicional.

• Servidores

Son máquinas que tienen almacenada la información a la que se desea ingresar o publicar en Internet. Esta información está distribuida en uno ó varias computadoras. Tanto si se trata de una u otra opción, debemos tener en cuenta varios aspectos físicos, como son:

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 2

a) Memoria RAM: Una vez que se haya publicado una página en internet, esta pasará a la RAM de nuestro servidor, sí un usuario ingresa a esta, la página será cargada en RAM, y cuando otro usuario desee ingresar a la misma página, este la encontrará de una manera mucho más rápida que el usuario anterior. Por lo tanto, una buena cantidad de RAM siempre hará que nuestro servidor no tenga que hacer tantos accesos a disco duro, por lo que la velocidad de servicio aumentará. Hay que tener en cuenta que si trabajamos con páginas que se generan de forma aleatoria, (consultan a una base de datos, se forman a gusto del usuario, etcétera), diremos que la RAM no juega un factor tan importante ya que es muy difícil que una misma sea cargada de una forma continua.

b) Disco Duro: Debido a que toda la información que reside en disco duro, debemos tener en cuenta una velocidad de acceso, lo más elevada posible. Con un par de imágenes, un fondo que no sea liso y un texto más o menos grande nos vamos a un tamaño de una página de unos 25-35Kb. Si tenemos en cuenta que las imágenes normalmente se encuentran en directorios distintos a los documentos HTML, y que por lo general los discos duros se encuentran llenos, se recomiendan el uso de discos duros que tengan una velocidad de respuesta mayor a la de los discos duro normales (IDE).

c) Procesador: Con las páginas HTML, no se gana mucho con la velocidad del

procesador, aunque también es un factor importante. Pero si la página web que nosotros generamos se hace a partir de una consulta a una base de datos o, a parte de la página web, se generan archivos de consulta para guardar o imprimir, esto se realizará básicamente con el procesador, y cuanto más potencia se tenga (velocidad de proceso) estas se generarán de una manera más rápida.

A parte de los aspectos físicos del servidor, hay que tener en cuenta quién los gestiona. Esto es el sistema operativo. Máquinas como Silicon Graphics o Sun Microsystems son un claro exponente de potencia y fiabilidad. Pero sus sistemas operativos, sus componentes de hardware y software hacen que estos servidores sean bastantes caros. Para evitar un costo elevado de servidor, existen alternativas más económicas como son el uso de servidores fabricados por IBM, Siemens, HP, u otras marcas que ofrecen soluciones a nivel hardware que se adaptan a las que hemos citado anteriormente ya que ofrecen software o sistemas operativos más económicos.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 3

1.2 COMPONENTES LÓGICOS Servidores (Software) Cuando hablamos de servidores a nivel software nos referimos a los programas que necesitamos para que los usuarios se beneficien de los servicios que se ofrecen. Algunos de estos servicios son:

• DNS (Domain Name Server)

Conocido como servidor de dominio. Este servidor lo que hace es traducir la dirección que enviamos con formato texto, en una dirección IP. Si reconoce esa dirección, dentro del dominio, la sirve; si no, reenvía la dirección a un servidor inmediato superior que si tampoco la reconoce, actuará de la misma manera. Por lo general los usuarios prefieren asociar a un nodo un nombre simbólico en lugar de una dirección numérica, esto es www.xxxxxxx.com en vez de la dirección IP UUU.XXX.ZZZ. EL DNS se puede entender como un servicio de directorios de Internet que proporciona información acerca de la asociación entre el nombre simbólico de un nodo con su dirección IP. Otra de sus particularidades es que divide la red en dominios y subdominios a partir de una estructura arbórea que identifica por caminos, por lo que una zona será una región compuesta de uno o más dominios y subdominios gestionada por un único administrador. Cada nodo se identifica por una etiqueta o alias, de longitud inferior a 63 caracteres, y cada nombre de dominio de un nodo del servicio DNS está formado por una concatenación de etiquetas, cada una de ellas separada por un punto. EL servicio DNS se basa en una estructura cliente-servidor, donde los dominios superiores están divididos en tres grandes grupos: gestión (organización), dominios compuestos por tres caracteres (net), y dominios compuestos por dos caracteres (resto de países). Todos estos gestionados por el NIC. El DNS actúa como una base de datos distribuida donde los servidores DNS intercambian información en modo jerarquizado, los servidores son responsables de jerarquizar las zonas teniendo conocimiento de sus servidores vecinos y almacenando la información en los Resource Records.

• WWW (World Wide web) Este servicio utiliza el protocolo HTTP (Hyper Text Transfer Protocol) que está basado en la filosofía cliente-servidor y se utiliza para intercambiar documentos entre distintas computadoras. Este servidor debe soportar el HTML (Hyper Text Markup Language), que es el lenguaje usado en la realización de páginas web, para que pueda ser tratado en todas las plataformas.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 4

Estos son algunos servicios de los cuales dispone el World Wide web: a) HTTP (Hyper Text Transfer Protocol): Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente que efectúa la petición (un navegador) se lo conoce como agente del usuario. A la información transmitida se la llama recurso y se la identifica mediante un URL. Los recursos pueden ser archivos, el resultado de la ejecución de un programa, una consulta a una base de datos, la traducción automática de un documento, etcétera.

b) FTP (File Transfer Protocol): Lo utilizamos para poder intercambiar información en forma de archivos entre dos computadoras. Generalmente, los usuarios utilizan el FTP para poder poner sus páginas web en su servidor de una manera más clara, rápida y segura, ya que cada usuario normalmente tiene acceso a su directorio particular.

c) Pop3 (Post Office Control): Representa la central de correos del usuario. Una vez que se ha recibido la información de para quién es y de quién es el mensaje por parte del SMTP, actúa el Pop3.

Esto son los servicios principales e imprescindibles, pero no los únicos. Otros servicios que se pueden añadir son servidores de audio, vídeo, etc.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 5

1.3 SEGURIDAD DE UN SITIO WEB Debido a los pocos mecanismos de seguridad informática en Internet, el hecho de colocar una página web en ella trae determinados riesgos que pueden ser controlados con alguna estrategia adecuada. La información de una página web tiene tres condiciones de seguridad: operatividad, integridad y privacidad, al igual que cualquier tipo de información manejada por computadoras. Mantener estas tres condiciones de seguridad es una tarea compartida entre el dueño de la página (autor y/o responsable) y el prestador del servicio de Internet (propietario del sitio).

Aspectos críticos de una página web

Fig. 1.1 Página de internet Teniendo en cuenta algunas consideraciones: - Que la página web es puesta on-line en Internet por un proveedor del servicio de conexión a Internet. - La actualización y modificación del servicio corren por cuenta del propietario por medio de un acceso al sitio del proveedor protegido por algún tipo de sistema de seguridad (por ejemplo: un sistema de passwords). Analizamos las responsabilidades del prestador del servicio y del creador de la página en estos tres aspectos fundamentales de la seguridad: a) Operatividad La información que contenga la página debe estar siempre en condiciones operativas para quienes acceden a la misma puedan recorrerla sin problemas, sin encontrar fallas, faltas, o cualquier tipo de anomalía. Responsabilidad del encargado de la página: la información añadida o modificada por un responsable de la página debe ser colocada en ella en los formatos establecidos y verificado su correcto funcionamiento dentro de la estructura de programación.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 6

Responsabilidad del prestador del servicio: todo sistema de computadoras está expuesto a fallas de hardware, software y de tipo externo como fallas de suministro eléctrico. Para esto deberá tener un plan de soluciones y un mantenimiento preventivo. También debe garantizar que si una información es colocada en la página según las especificaciones y procedimientos acordados, ésta funcionará correctamente. Hay que considerar también que el ingreso de un intruso al sistema puede provocar daños que afecten a la operatividad. El prestador del servicio deberá tener un sistema de seguridad, por ejemplo, en barreras de protección como firewalls, proxies, etc., que impidan los accesos no autorizados. b) Integridad De nada sirve que una información esté en condiciones operativas si es incompleta o está alterada. Para que una información resulte inútil no es necesario que sea destruida, puede ser suficiente una acción tan sutil como cambiar los unos por ceros. Por lo tanto la integridad de la información que se muestra en una página web es uno de los factores más importantes de la seguridad, pues de él dependen el interés y la credibilidad de la página. La integridad de la página puede ser dañada por fallas de hardware o software, o atacada por intrusos en el sistema que toman el control sobre algún sector y modifican el contenido de las páginas. i) Responsabilidades del dueño de la página: la información que es agregada o modificada en la página debe estar en condiciones de integridad cuando llega a ella, y tratando de que se mantenga hasta que termine, pues puede ser afectada por la transmisión hasta el sitio o por algún problema de su funcionamiento o seguridad. ii) Responsabilidades del prestador del servicio: asegurar la integridad de la información que contiene una página web, en lo que atañe a accesos no autorizados al sistema. iii) Los bugs (errores estructurales) de los programas utilizados también pueden ser la puerta de entrada para los accesos no autorizados. Se debe exigir que el sistema del proveedor esté depurado de este tipo de fallas. c) Privacidad Es lógico pensar que quien quiere que una información sea privada no debe colocarla en una página web. Pero puede ocurrir que parte de la información esté reservada a usuarios registrados o que exista algún tipo de restricción. Responsabilidades del dueño de la página: el dueño de la página debe definir y separar claramente cuál es la información de dominio público y cual de acceso restringido, y manejarlas en zonas separadas en la programación de su página.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 7

Responsabilidades del prestador del servicio: el acceso restringido a parte de la información de una página debe ser sustentado por el prestador del servicio asegurando que los mecanismos de control de acceso de la página funcionen correctamente en su sistema. Cada una de las condiciones de seguridad de la información de una página web: operatividad, integridad y privacidad, tienen sus propios riesgos que actúan dentro o fuera del sistema. Para establecer una estrategia de seguridad se debe evaluar el grado de importancia de cada uno de ellos y basándose en ello, establecer normas y procedimientos necesarios para contenerlos. Uno de estos procedimientos es la encriptación, que es una técnica para ocultar datos de manera que sólo puedan ser vistos por aquellos que deben verlos. Consiste en reemplazar un mensaje enviado con un algoritmo difícil de adivinar. Los servidores seguros tratan de encriptar los datos entre el navegador y el servidor. En algún momento durante el ciclo de compras, después que los datos llegan al servidor seguro, el sistema debe desencriptar los datos. Aun si los datos son desencriptados sólo por un instante, la información podría ser interceptada por algún pirata. Crear un sistema en el que la información permanezca encriptada a lo largo del ciclo es prácticamente imposible. La configuración más segura es una que transmita la información al propietario de la empresa en formato encriptado, pase la información a una computadora que no esté en Internet y luego desencripte la información. Además si en una empresa se utiliza un mismo algoritmo para encriptar y desencriptar datos, se necesitará que alguna tercera pieza de datos desencripte el código, que seria una clave. Esto sólo funcionará si tanto la persona transmisora como la parte receptora conocen la clave. Si la persona receptora no conoce la clave, tiene que enviar la clave a esa parte, y está puede ser interceptada. Existe también, la firma digital que ofrece un método de encriptación de datos que evita tener que compartir claves para leer mensajes. Es la técnica llamada encriptación de clave pública, donde cada usuario tiene dos claves: una clave pública y una clave privada. Los algoritmos de encriptación y desencriptación son adaptados de manera que sólo la clave pública puede desencriptar los datos encriptados por la clave privada. Por consiguiente, puede transmitir con libertad la clave pública al mundo. Las ventajas de crear un sistema seguro antes de ser pirateado deben ser obvias. La prevención es la mejor medicina y esto se aplica también a la seguridad de las computadoras. Se debe mantener la seguridad de los archivos, de los datos, de tal forma que solo las personas correctas puedan verlos. Esto es crucial para los siguientes tipos de datos y archivos: contraseñas de usuarios, archivos de facturación, registros de sistema y de usuarios, información de tarjetas de créditos, información confinada de sistemas remotos, compiladores, herramientas de administración.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 8

Para proteger al sistema de diversos ataques y mantener así una buena seguridad, existen herramientas muy útiles como lo son:

• Firewalls • Wrappers • Proxies

Que ofrecen una buena línea de defensa para los propietarios de servidores web y administradores de sistemas. Los firewalls pueden ser software o hardware que protege los puertos y evita que los piratas penetren al sistema. Los firewalls permiten ingresar al sistema, sólo a ciertos nombres de dominio confiables. Los wrappers se ejecutan como una capa de software alrededor de su otro software. Un usuario que se conecta a FTP primero entraría en contacto con el wrapper, el cual luego habilitaría al FTP. El usuario no sabe que existe el wrapper y no puede detectar ninguna diferencia en el sistema. Los wrappers son interesantes porque son flexibles. Pueden actuar como firewalls y en realidad pueden rechazar usuarios con base en sus nombres de usuarios al igual que en sus nombres de dominios. Además permite crear callejones sin salida que permiten atrapar piratas. El modo proxy es un método que permite ocultar datos por medio de un re-enrutamiento de solicitudes. Es útil para usuarios que están detrás de una firewall. Los usuarios establecen una dirección proxy de su navegador para que apunte hacia su servidor web. El servidor web maneja entonces la dirección real de los datos hacia el mundo exterior. Esto reduce la dirección que el usuario está tomando cuando deja su sistema, permitiéndole al usuario enrutar los datos a través de los agujeros en sus propias firewalls. La otra ventaja es que las solicitudes pueden ser filtradas por el software del servidor. Al filtrar la información, puede restringir el contenido y rastrear el uso al igual que modificar la información en ese instante. Los servidores proxy también pueden ser dirigidos a otros servidores proxy, lo cual les permite ocultar datos en forma efectiva. Otra ventaja de los servidores proxy, es que los servicios como FTP, Telnet, Gopher, NetNews, etc., pueden ser enrutados a servidores diferentes. Esto le permite distribuir diversas cargas de servidor web a diferentes servidores físicos. Además de beneficiarse con el ocultamiento de los datos, ser reduce la carga del servidor.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 9

1.4 CONTEXTO DEL PROYECTO Por ultimo y antes de pasar a la parte técnica, del desarrollo de nuestro trabajo, consideramos importante definir el contexto en el cual se desenvuelve este: “Desarrollo de un Foro de discusión”, así definimos ciertos aspectos que ya se han tratado, en apartados anteriores, pero no se ha explicado con gran detalle, algunos de estos, son los siguientes:

• ¿Qué es la web?

La World Wide web consiste en ofrecer una interfaz simple para acceder a la inmensidad de los recursos de Internet. Es la forma más moderna de ofrecer información. El medio más potente. La información se ofrece en forma de páginas electrónicas. El World Wide web o WWW o W3 o simplemente web, permite saltar de un lugar a otro. Empezó a principios de 1990, en Suiza en el centro de investigación CERN (Centro de Estudios para la Investigación Nuclear) y la idea fue de Tim Berners-Lee, que se gestó observando una libreta que él usaba para añadir y mantener referencias de cómo funcionaban las computadoras en el CERN. Antes de la web, la manera de obtener los datos por la Internet era caótica: había un sinfín de maneras posibles y con ello había que conocer múltiples programas y sistemas operativos. La web introduce un concepto fundamental: la posibilidad de lectura universal, que consiste en que una vez que la información esté disponible, se pueda acceder a ella desde cualquier computadora, desde cualquier país, por cualquier persona autorizada, usando un único y simple programa. Para que esto fuese posible, se utilizan una serie de conceptos, el más conocido es el hipertexto.

• Hipertexto

Hipertexto son datos que contienen enlaces (links) a otros datos. En el lenguaje web, un documento de hipertexto no es solo algo que contiene datos, sino que además contiene enlaces a otros documentos. Esto implica que el lector se puede saltar la estructura secuencial del texto y seguir lo que más le gusta. En Hipertexto se pueden hacer enlaces en cualquier lugar, no sólo al final. Cada enlace tiene una marca que lo destaca, puede estar resaltado, subrayado o puede estar identificado por un número. El hipertexto no esta limitado a datos textuales, podemos encontrar dibujos del elemento especificado, sonido o vídeo referido al tema. Estos documentos que tienen gran variedad de datos, como sonido, vídeo, texto, en el mundo del hipertexto se llama hipermedia. El hipertexto es una herramienta potente para aprender y explicar. El texto debe ser diseñado para ser explorado libremente y así se consigue una comunicación de ideas más eficientes.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 10

• Y bien, ¿Qué es Internet?

Internet es una red de redes informáticas distribuidas por todo el mundo que intercambian información entre si mediante la familia de protocolos TCP/IP. Al contrario de lo que se piensa comúnmente, Internet no es sinónimo de World Wide web (WWW, o "la web"). Ésta es parte de Internet, siendo uno de los muchos servicios ofertados en la red Internet. La web es un sistema de información mucho más reciente, desarrollado inicialmente por Tim Berners Lee a principios de 1990. El WWW utiliza Internet como medio de transmisión. Internet ha hecho que el mundo empresarial haya replanteado sus sistemas de comunicación internos y externos y en la mayoría de los casos los ha encauzado vía Internet. Esto ha dado lugar a dos sub poblaciones dentro de Internet: intranet y extranet.

a) Intranet: Una intranet no es más que una red local que utiliza los mismos protocolos que Internet, independientemente de que esté o no conectada a Internet. Las ventajas fundamentalmente son dos: independencia de los proveedores habituales de soluciones y una única forma de trabajar que evita tener que aprender sistemas nuevos, lo que redunda en un ahorro en formación. Por otra parte, una intranet suele estar dotada de una velocidad bastante mayor que la habitual Internet. Esto posibilita una comunicación muy fluida, incluso cuando se tratase flujos de información multimedia.

b) Extranet: Una extranet no es más que la unión de dos o más intranets utilizando como puente Internet Es un sistema barato, pues sólo requiere que las intranets estén conectadas a Internet, y seguro esto es, si una determinada intranet se viene abajo, no hay problema de rutas alternativas; Internet es una auténtica telaraña mundial que casi siempre asegura una ruta completa.

Por lo anterior mencionado, nuestro Foro tendrá una amplia gama de formas para comunicarse y con un gran alcance ya que por un lado estará en Internet y a su vez podrá ser ocupado por los alumnos de manera interna en las instalaciones ya sea en la biblioteca o en la red de la escuela.

• Funcionamiento de la web

Una vez que el usuario esta conectado a Internet, tiene que instalar un programa capaz de acceder a páginas web. El programa que se usa para leer los documentos de hipertexto se llama “navegador”, "browser", "visualizador" o "cliente" y cuando seguimos un enlace decimos que estamos navegando por el web. Navegar es como llaman los usuarios de la red a moverse de página en página por todo el mundo sin salir de su casa.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 11

Mediante los Navegadores modernos podemos, acceder a hojas de calculo, base de datos, vídeo, sonido y todas las posibilidades más avanzadas. Pero el diseño de páginas debe mantener un equilibrio entre utilizar todas las capacidades y la posibilidad de ser leídas por cualquier tipo de Navegador. El visualizador nos presentará perfectamente cualquier página ".txt" generada por cualquier editor, y los links entre documentos sólo requieren un simple y sencillo comando. Y aún así podremos conseguir el tipo y tamaño de letra y colores de texto y fondo que queramos, simplemente configurando el visualizador.

• Navegadores que se utilizan

Los más conocidos son el Internet Explorer de Microsoft, Mosaic y el Netscape de Netscape Communications Corporation en Estados Unidos y otros países. Tienen capacidades diferentes y es importante cuando se crea una página web, además de un buen diseño, se debe tener en cuenta la compatibilidad, es decir, programar páginas de modo que las acepte cualquier Navegador. Conectándose a Internet, con un visualizador Netscape o Explorer, además de ver documentos HTML se puede recibir y enviar correo electrónico, recibir y enviar NEWS (noticias), visitar los servidores GOPHER (servidores de ficheros), y acceder a servidores FTP (más servidores de ficheros) tanto en entrada como en salida, todo ello con el mismo programa. También, como no, se pueden imprimir los documentos visualizados. Casi todos suelen ser “WYSIWYG” [ver glosario].

• Sistemas de Búsqueda

En la web no existe un directorio centralizado. Para acceder a una página directamente se debe conocer la dirección exacta donde se encuentra. Pero lo más habitual no es conocer esa dirección exacta, sino tener una idea del tema en el que se está interesado y sobre el que se necesite información. Existen empresas como Yahoo, Google, AltaVista, etcétera, que han creado diferentes Sistemas de Búsqueda, para evitar la navegación a la deriva. Estas consisten en un tipo de páginas web donde se puede escribir una palabra o una breve referencia que defina la búsqueda que se quiere realizar. El sistema consulta sus datos y te muestra enlaces con las páginas web que contienen la referencia escogida. Existen diferentes buscadores y cada uno de ellos ha creado su propio directorio. Unos son más completos, otros más organizados, otros son más exigentes y selectivos en su información, cada uno tiene características propias, pero todos ellos ayudan a mantener el rumbo.

• ¿Qué puede contener una Página web?

Hemos mencionado el tipo de información que puede contener una página web: texto, imagen, sonido, vídeo, e incluso, mundos 3D y animación.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 12

El usuario no se limita a buscar y encontrar la información de un modo pasivo, sin intervenir. La mayor innovación de las páginas web se traduce en una sola palabra: Interactividad. Una página web puede contener elementos que permiten una comunicación activa entre el usuario y la información, la página responderá a sus acciones.

Puede manejar el acceso y manejo a bases de datos de todo tipo. Acceso a juegos. Sistemas de Búsquedas: Encontrar las páginas que contienen información que se

necesita en los principales buscadores.

• Dominio

En el supuesto de estar buscando información sobre una empresa determinada, el primer impulso sería teclear el nombre de la empresa seguido del sufijo 'mx' ó 'COM', los más habituales. Si se realiza esta acción sólo se encontrará a la empresa en esa dirección si se dispone de dominio propio, es decir si la empresa tiene un servidor propio o ha alquilado espacio en un servidor dedicado a la gestión y mantenimiento de páginas web. Si no es así, si la empresa simplemente se encuentra situada en el dominio de otra compañía, será más difícil de localizar, ya que tendrá una dirección más complicada, difícil de encontrar y memorizar. Además, si la empresa tiene dominio propio, en el caso de que decida cambiar de compañía a la que alquile el espacio, la dirección se mantiene, ya que el dominio propio pertenece a la empresa que lo usa y puede instalarse en otro host sin problemas. Si no tiene dominio propio y decide cambiar de proveedor de Internet, su dirección de Internet cambiará y tendrá que reflejarlo en su publicidad. El dominio propio ofrece una imagen más profesional y competente. Los clientes agradecerán que se les proporcione un acceso sencillo y consistente a su información.

• URL

Localizador Uniforme de Recursos (URL; Uniform Resource Locator) es una dirección especial usada por los navegadores web, para tener acceso a información en Internet. El URL especifica la computadora en que se hospeda, el directorio, y el nombre del fichero. A través de estas direcciones o URL vamos a poder conectar los diferentes objetos (no solo texto), aunque se acceda a ellos a través de diferentes protocolos. Resumiendo se ha hecho mención que nuestra página trabajara tanto en Internet como así en intranet. También ya se menciono que no es lo miso Internet que WWW. La World Wide web del inglés, Telaraña Mundial, la web o WWW, es un sistema de hipertexto que funciona sobre Internet. Para ver la información se utiliza una aplicación llamada navegador web para extraer elementos de información llamados "documentos" o "páginas web" de los servidores web o sitios y mostrarlos en la pantalla del usuario.

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 13

También hemos mencionado en diversas ocasiones que nuestro Foro trabajara sobre WWW ocupando un protocolo de hipertexto el cual se encuentra dentro del protocolo TCP/IP. Pero ¿Qué es TCP/IP? TCP/IP: es el protocolo común utilizado por todas las computadoras conectadas a Internet, de manera que éstas puedan comunicarse entre sí. Hay que tener en cuenta que en Internet se encuentran conectadas computadoras de clases muy diferentes y con hardware y software incompatibles en muchos casos, además de todos los medios y formas posibles de conexión. Aquí se encuentra una de las grandes ventajas del TCP/IP, pues este protocolo se encargará de que la comunicación entre todos sea posible. TCP/IP es compatible con cualquier sistema operativo y con cualquier tipo de hardware. TCP/IP es un conjunto de protocolos que cubren los distintos niveles del modelo OSI. Los dos protocolos más importantes son el TCP (Transmission Control Protocol) y el IP (Internet Protocol), que son los que dan nombre al conjunto. La arquitectura del TCP/IP consta de cinco niveles o capas en las que se agrupan los protocolos, y que se relacionan con los niveles OSI de la siguiente manera:

a) Aplicación: Se corresponde con los niveles OSI de aplicación, presentación y sesión. Aquí se incluyen protocolos destinados a proporcionar servicios, tales como correo electrónico (SMTP), transferencia de ficheros (FTP), conexión remota (TELNET), HTTP (Hypertext Transfer Protocol). b) Transporte: Coincide con el nivel de transporte del modelo OSI. Los protocolos de este nivel, tales como TCP y UDP, se encargan de manejar los datos y proporcionar la fiabilidad necesaria en el transporte de los mismos. c) Internet: Es el nivel de red del modelo OSI. Incluye al protocolo IP, que se encarga de enviar los paquetes de información a sus destinos correspondientes. Es utilizado con esta finalidad por los protocolos del nivel de transporte. d) Físico: Análogo al nivel físico del OSI. e) Red: Es la interfaz de la red real. TCP/IP no especifica ningún protocolo concreto, así es que corre por las interfaces conocidas.

NIVEL DE APLICACIÓN

NIVEL DE TRANSPORTE

NIVEL DE INTERNET

NIVEL DE RED

NIVEL FÍSICO

Fig. 1.2 Capas del modelo TCP/IP

CAPÍTULO 1 ASPECTOS NECESARIOS PARA EL DESARROLLO UN SITIO WEB

Desarrollo de un Foro de discusión Escolar 14

De manera resumida la Fig. 1.2 muestra las capas de modelo TCP/IP. No se pretende entrar en detalle de este tema, ya que solo estaremos ocupando el nivel de aplicación en el desarrollo de nuestro Foro. El TCP/IP necesita funcionar sobre algún tipo de red o de medio físico que proporcione sus propios protocolos para el nivel de enlace de Internet. Por este motivo hay que tener en cuenta que los protocolos utilizados en este nivel pueden ser muy diversos y no forman parte del conjunto TCP/IP. Sin embargo, esto no debe ser problemático puesto que una de las funciones y ventajas principales del TCP/IP es proporcionar una abstracción del medio de forma que sea posible el intercambio de información entre medios diferentes y tecnologías que inicialmente son incompatibles. Para transmitir información a través de TCP/IP, ésta debe ser dividida en unidades de menor tamaño. Esto proporciona grandes ventajas en el manejo de los datos que se transfieren y, por otro lado, esto es algo común en cualquier protocolo de comunicaciones.

• Direcciones IP

Basadas en el protocolo TCP/IP el cual ofrece un servicio no orientado a conexión, es decir, que cada trama en la que se ha dividido un paquete puede ser enviada por un camino distinto y también puede llegar de forma desordenada. El control de flujo y de errores se realiza en los terminales, por lo que hace que el envío de los paquetes sea bastante rápido. Cada máquina tiene asociado un número de 32 bits, al que llamaremos dirección IP. Esta dirección se divide en dos partes: NETID y HOST ID.NETID: esta parte es asignada por el NIC (Network Information Center). Cuando la red o servidor no va a ser visto por ningún usuario externo o por ninguna red externa, no tenemos que pedir nada a este organismo. Según el tamaño que tenga la red, tendremos 8, 16 o 24 bits para poder identificarla. HOST ID: Identifica cada máquina dentro de la red, esta parte corre a cargo del redmaster (administrador de red). Cada dirección vendrá representada, por cuatro números decimales separados por un punto entre sí, 194.168.100.7, que representará el valor binario de cada campo. De esta manera podemos asegurar que cualquier dirección, que se haya hecho pública podrá ser accesible siempre y cuando se cumplan los permisos necesarios para poder acceder a ella.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 15

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

2.1 CONSTRUCCIÓN DE UN ALGORITMO

Retomaremos un poco de lo que se trato en la Metodología para el desarrollo del sistema de cómputo, ya que es muy asombroso como ha sido el avance de la disciplina informática. Antes de los años setentas no existía una distinción entre los ingenieros dedicados a la elaboración de software, respecto a los que se dedicaban al diseño de computadoras. Si se entendía de computadoras, uno se podía dedicar tanto a la ingeniería del hardware como a la del software. Pero esta situación ha cambiado mucho hasta la fecha, ya que hoy en día la mayoría de las escuelas ofrecen cursos distintos, unos para los ingenieros del hardware y otros para los ingenieros que se dedican al diseño de software. Es posible dar una gran semejanza de lo que hacemos, con la elaboración de nuestro software, respecto a la planeación que hace un ingeniero civil para con un edificio. Existen tantos detalles que parece imposible que todo encaje. Lo que hace posible la creación de un buen programa es la aplicación de los métodos de ingeniería adecuados. Sin duda, la postura más importante que se puede tomar para simplificar la creación de un gran programa es aplicar un buen método de desarrollo. Como vimos en el punto de metodología para el desarrollo de nuestro sistema de cómputo, existen diversos enfoques tales como:

• Waterfall (en cascada). • Prototipos. • Evolutivo. • Incremental. • En espiral. • Basada en transformaciones.

Explicados anteriormente.

Pero estos pueden clasificarse de una forma muy general como: descendente, ascendente y ad hoc. Con el enfoque descendente se empieza con una rutina de alto nivel y se va descendiendo hacia las rutinas de menor nivel. Con el enfoque ascendente se trabaja en la dirección opuesta; se empieza con rutinas específicas y se construye con ellas estructuras cada vez más complejas, para terminar con la rutina de mayor nivel. Con el enfoque ad hoc no se especifican métodos predeterminados.

Ahora bien para dar una solución al problema planteado (diseño de un sistema de cómputo en nuestro caso un sistema web), al menos nos debemos plantear lo siguiente:

• Definición o análisis del problema. • Diseño del algoritmo. • Transformación del algoritmo en un programa.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 16

• Ejecución y validación del programa.

Un algoritmo es un método para resolver un problema. Aunque la popularización del termino ha llegado con el advenimiento de la era informática, algoritmo proviene de Mohammed al-Khowârizmî, matemático persa que vivió durante el siglo IX y alcanzo gran reputación por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir números decimales; la traducción al latín del apellido en la palabra algorismus derivo posteriormente en algoritmo. Euclides, el gran matemático griego (del siglo IV antes de Cristo), que invento un método para encontrar el máximo común divisor de dos números, se considera con al-Khowârizmî el otro gran padre de la algoritmia (ciencia que trata de los algoritmos).

Una definición antigua de computadora es: “una máquina o aparato electrónico capaz de ejecutar operaciones repetitivas muy complejas a altas velocidades”. Si bien esta definición es acertada al apegarla al contexto actual, estas son más que una maquina de ejecutar operaciones aritméticas. De hecho, los términos procesador de datos y sistemas de procesamiento de la información se utilizan con frecuencia en lugar de computadora.

Ahora bien no es lo mismo decir información que datos, ya que al hacer mención de datos, nos referimos a la representación de algún hecho, concepto o entidad real (los datos pueden tomar diferentes formas; por ejemplo, palabras escritas o habladas, números y dibujos); mientras que al hablar de información implica el hablar de datos ya procesados y organizados.

Un sistema en general se define como un conjunto de componentes conectados e interactivos, que tienen un propósito y una unidad total. Sistema de procesamiento de la información es un sistema que transforma datos brutos en información organizada, significativa y útil.

Podemos hablar de que un sistema de proceso de información tiene tres componentes: debe de existir una entrada de datos, una salida de información, pero antes de obtener esta información un previo proceso. El proceso que puede ser bastante complicado, se puede representar por una simple caja teniendo así una entrada, y esta entrada se transforma entonces para producir una información denominada salida.

Fig. 2.1 Sistema de proceso de información

Muchos dispositivos u organismos pueden ser considerados sistemas de procesamiento de información. Un termostato que controla la temperatura de un edificio, es un sistema de procesamiento de información. Su entrada será la temperatura que hay en su entorno, su salida será la señal, que de control para que esta no exceda los límites impuestos.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 17

Los componentes para poder llevar a cabo un sistema de cómputo, descritos durante el análisis anterior son importantes para del diseño de sistemas pero también existen otros tales como:

• Flujos de datos. Movimientos de datos hacia, alrededor y desde el sistema. • Almacenes de datos. Conjunto temporales o permanentes de datos. • Procesos. Actividades para aceptar, manejar y suministrar datos e información. • Procedimientos. Métodos y rutinas para utilizar el sistema de información y lograr

con ello los resultados esperados. • Controles. Estándares y lineamientos para determinar si las actividades que están

ocurriendo en la forma anticipada o aceptada. • Funciones del personal. Las responsabilidades de todas las personas que tiene que

ver con el nuevo sistema, incluyendo los usuarios, operadores de computadora, etcétera.

El manejo del proceso de diseño significa tomar los pasos necesarios para que el desarrollo y avance del sistema, se desarrolle en forma apropiada y produzca los resultados esperados. A todo esto se le considera como información liberada o carpeta de diseño. Una carpeta de diseño considera los siguientes aspectos:

• Cuadro de despliegue. Descripciones de las entradas y salidas donde se muestra la ubicación de todo lo que aparecerá en los reportes, documentos y pantallas.

• Estructuras de registros. Descripciones de todos los datos contenidos en los archivos maestros y de transacciones así como los diagramas relacionados con las bases de datos.

• Sistemas de codificación. Descripciones de los códigos que explican o identifican tipos de clasificaciones y categorías de eventos o entidades.

• Especificaciones de los programas. Cuadros, tablas y descripciones gráfica de los módulos y componentes del software de computadora junto con la interacción entre cada una de ellos.

• Especificaciones de procedimientos. Procedimientos planificados para instalar y operar el sistema cuando este terminado.

• Plan de desarrollo. Cronogramas que indican los tiempos necesarios para el desarrollo de las actividades.

• Costo del paquete. Gastos anticipados para el desarrollo, implantación y operación de nuevos sistemas, clasificados por categorías tales como personal, equipo, comunicaciones, facilidades y suministros.

Es entonces que se tienen que decidir los siguientes aspectos, acerca del diseño de entradas de un sistema:

• Que datos se ingresan al sistema. • Que medios utilizar. • La forma en que se debe disponer o codificar los datos. • El diálogo que servirá de guía a los usuarios para dar entrada a los datos. • Validación necesaria de datos y transacciones para detectar errores.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 18

• Métodos para llevar a cabo la validación de las entradas y los pasos a seguir cuando se presentan errores.

Las decisiones de diseño para el manejo de entradas especifican la forma en que serán aceptados los datos para su procesamiento por computadora. El diseño de la entrada también incluye la especificación de los medios, por los que, tanto los usuarios finales como los operadores dan instrucciones al sistema sobre las acciones que deben emprender. Controles de entrada: El programador debe especificar los controles para evitar la entrada errónea al sistema de información. Para los campos críticos el control de la entrada implica verificar o volver a teclear. Si un campo es crítico para la verificación de una entrada y está sujeto a errores de transcripción o transposición, como un número de cuenta o el número de identificación de un empleado, en analista también podría elegir anexarle un dígito de verificación. En consecuencia, se debe decidir acerca de un algoritmo en particular de dígitos de verificación y documentarlo. Dependiendo del tipo de método empleado para la captura de datos, puede ser necesario realizar sobre la entrada varias pruebas de racionalidad. Estos controles de entrada se aplican en cuatro niveles: Campos, registros, lotes y archivos.

Controles de procesamiento: Aún cuando el programador pudiera proponer un extenso conjunto de controles de entrada para el sistema que se está desarrollando, siempre habrá algunos errores de entrada que no puedan detectarse, creando errores adicionales durante el procesamiento. Operando bajo la suposición de que ningún sistema de información está completamente libre de errores, el programador inserta en los programas de procesamiento ciertos controles del tipo de los de la entrada.

Verificación de racionalidad: En la codificación de los programas se especifican pruebas de racionalidad como parte de las rutinas básicas para la validación de las entradas. Bitácora de transacciones: Se utilizan para respaldo, recuperación y pruebas de auditoría contable. Este deberá incluir información acerca del lugar, el momento y la terminal de donde se originaron las transacciones, además del número de usuario. Controles de acceso a las bases de datos: Los controles de acceso a la base de datos incluyen un gran número de dispositivos y procedimientos desde puertas con cerradura y procedimientos de firma de entrada/firma de salida hasta dispositivos biométricos. Los usuarios autorizados se identifican con base en un dispositivo de control de acceso mediante geometría manual. Unos apuntadores conectan a los usuarios autorizados a la tabla de autorizaciones, la cual especifica lo que puede hacer un usuario una vez que se le ha dado acceso a ciertas relaciones o conjuntos de datos de la base de datos.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 19

Controles de salida: Una vez que se produce la salida, deberán existir ciertos controles para asegurar que esta salida no se pierda, corrompa o sea robada. Por lo general, los controles más extensos se aplican a la salida en lotes debido a que en la producción y distribución de las copias en papel está involucrado un mayor número de personas. La salida en línea por pantalla, normalmente requiere menores controles debido a la interfaz directa usuario/sistema y a controles de acceso más estrechos. Y por el contrario para muchos usuarios finales, la salida es la única razón para el desarrollo del sistema y la base sobre la que ellos evaluarán la utilidad de la aplicación. Cuando diseñan la salida, los programadores deben realizar lo siguiente:

• Determinar que información presentar. • Decidir si la información será presentada en forma visual, verbal o impresa y

seleccionar el medio de salida. • Disponer la presentación en un formato aceptable. • Decidir como distribuir la salida entre los posibles destinatarios.

A su vez el papel del administrador de la base de datos incluye las siguientes responsabilidades:

• Evaluar la conveniencia de la solicitud del programador. • Describir los métodos para interactuar con la base de datos. • Asegurar que la aplicación no pueda dañar la base de datos o que la afecte de

manera adversa a las necesidades de otros sistemas de información.

Todo lo anterior, fue para poder decir que, la serie de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema específico o clase de problemas, se denomina algoritmo. En otras palabras un algoritmo es una formula para la resolución de un problema.

Podemos dar un claro ejemplo y apegar esta definición y todo lo anterior a nuestro proyecto, ya que, en nuestro sistema de computo, existirá un usuario, el cual ingresara una serie de datos cualesquiera (entrada para nuestro sistema), y este obtendrá un resultado, (poner en pantalla de manera ordenada todo lo ingresado por el). Al usuario no le importara como es que se desplego toda esa información, o como es que fueron tratados los datos ingresados por el. El usuario obtendrá, o no, un beneficio de esto, pero el tratado de toda esa serie de datos y la salida de información será cuestión nuestra. Y para llevar a cabo ese proceso, se debe suministrar al procesador un algoritmo adecuado.

Cuando al hablar del procesador nos referimos a la computadora, el algoritmo ha de expresarse de una forma que recibe el nombre de programa. Un programa se escribe en un lenguaje de programación y a la actividad de expresar un algoritmo en forma de programa se le denomina programación.

Cada paso en el algoritmo esta expresado por medio de una instrucción en el programa. Por lo tanto, un programa consta de una secuencia de instrucciones, cada una de las cuales especifica las operaciones que debe realizar la computadora.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 20

Hay dos conceptos importantes a considerar para el tratamiento de la información mediante un sistema de cómputo, uno es el hardware (conjunto de componentes físicos de una computadora, es decir el equipo físico) y otro es el software (conjunto de programas que controlan el funcionamiento de una computadora es decir el equipo lógico).

El hardware de una computadora se compone de:

• Unidad central de proceso: Es el conjunto de circuitos electrónicos capaces de ejecutar algunos cálculos sencillos como suma o multiplicación de números. La potencia de la PC depende de la velocidad y fiabilidad que tenga la CPU (Central Processing Unit).

• Memoria central: Es aquella en la cual se almacenará la información procesada por la CPU, los programas de computadora se almacenan también en la memoria central.

• Dispositivos de almacenamiento secundario: Son todos aquellos medios o dispositivos tales como discos y cintas magnéticas, que se usan para almacenar grandes cantidades de información. Para ser procesados por la CPU, los datos se almacenan en dispositivos de almacenamiento auxiliar y luego tienen que llevarse a la memoria central.

• Dispositivos de entrada / salida (E/S): Estos dispositivos permiten al usuario comunicarse con la computadora. Un sistema de computadora puede tener diferentes dispositivos periféricos conectados a ella.

Un programador es antes que nada aquella persona encargada de resolver problemas, por lo que para poder llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático.

La resolución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto.

Fig. 2.2 Resolución de un problema

Según apreciamos en la figura anterior (Fig. 2.2), podemos deducir los pasos para la resolución de un problema:

• Diseño del algoritmo: Es la secuencia ordenada de pasos, que conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo).

• Expresar el algoritmo como un programa en un lenguaje de programación adecuado (Fase de codificación).

• Ejecución y validación del programa por la computadora.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 21

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo que sin algoritmo no puede existir un programa.

Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre el mismo.

Así podemos decir que en la programación, los algoritmos son más importantes que los lenguajes de programación o las computadoras. Un lenguaje de programación es tan solo un medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de programación como la computadora son los medios para obtener un fin: conseguir que el algoritmo se ejecute y se efectúe el proceso correspondiente. En esencia, la solución de un problema se puede expresar mediante un algoritmo.

Hasta el momento, se ha hecho un diseño algo detallado del como preparar un programa paso a paso, el programador ha especificado las entradas, las salidas, la base de datos, los controles y los procedimientos para el nuevo sistema de información. Si el nuevo sistema de información requiere hardware o software de sistemas adicionales, el programador ya se habrá ocupado de que el proceso de abastecimiento de dichos recursos esté en camino. El diseño detallado de los programas requiere concentrar los esfuerzos del programador en definir los programas que formaron el sistema de información, los módulos detallados de cada programa y las relaciones entre los módulos y los programas. Definición de programas: El objetivo de la definición de programas es la preparación de una descripción de cada programa del sistema de información. El programador podría empezar agrupando las salidas que serán producidas por el sistema de información. Luego se podría diseñar un programa para generar cada grupo de salida. Para las entradas podría seguirse un proceso similar de agrupamiento y designación, comparando tareas tales como validación y edición de la entrada. Si los datos necesitan ordenarse, entonces podría definirse otros programas de utilería. Este proceso de agrupar las entradas y las salidas y luego pensar en las transformaciones necesarias para pasar de la entrada a la salida, produce una lista de programas. Esta lista contendrá el nombre, número en clave, y una definición breve de cada programa del sistema de información. Uno de lo principales beneficios del diseño de los sistemas es la generación automática de documentación y procedimientos como un subproducto del desarrollo de trabajo en sistemas. Para cuando uno ha concluido la fase del diseño detallado de sistemas, se han completado entre muchas otras cosas, los procedimientos tanto para los programas de aplicaciones como las acciones a realizar por el usuario. Los diagramas de flujo de datos y el diseño detallado de la salida, la entrada, la base de datos, los controles y los procedimientos, proporcionan especificaciones suficientes para permitir a los programadores escribir el código.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 22

Cuando el programador de aplicaciones termina un programa, entonces se agregan detalles adicionales como el número de identificación del programa, el lenguaje de control de trabajos, los procedimientos de prueba y el listado fuente para formar un paquete completo de la documentación del programa de aplicaciones. Los programadores también identifican las actividades realizadas por el usuario. Se escriben procedimientos para guiar al usuario en sus tareas, de manera similar a los procedimientos escritos para los programas de aplicaciones.

2.2 CONSTRUCCIÓN DE PÁGINAS WEB

Anteriormente abordamos la buena planeación de un programa la construcción de este, ¿Que entrada de datos tendremos?, ¿cual será el proceso de estos para la obtención de una salida?, abordado de forma general para cualquier programa. Pero siendo específicos y para lograr el objetivo que deseamos, el desarrollo de un sistema de cómputo montado en la web, debemos tener en cuenta otros parámetros, no dejando atrás los ya mencionados, así entonces, podemos decir que para el desarrollo de un sitio web debemos considerar los siguientes aspectos:

• Un buen contenido que capte la atención del usuario

El contenido dependerá directamente de la temática que se desee obtener del web, particularmente y en nuestro caso, la temática es el desarrollo de un “Foro de discusión escolar”. La gran mayoría de los usuarios que acuden a un sitio web lo hacen en busca de información. La forma en como se presente dicha información (texto, imágenes, vídeo, audio), da lo mismo pero una página web debe aportar este tipo de contenido. Es importante tener en cuenta que WWW es un medio de comunicación distinto a los tradicionales (televisión, radio, prensa, etc.); el usuario pasa de página en página web a ritmo de clic de ratón, y generalmente pasa poco tiempo en una misma página. Por lo tanto no se debe abusar de la información textual, ya que son muy pocos los visitantes que leen completamente una página web. Siempre se ha dicho que una imagen vale más que mil palabras, y aunque una página web no es un programa de televisión, las imágenes siempre son importantes, habrá que ejemplificar esto, tal como si fuera un libro, ya que al presentar información de tipo texto, es común que un usuario pierda el interés en esta, igual que para un lector inexperto. Por el contrario si la página esta inmersa dentro de un ámbito de imágenes texto y música se hará mas amigable para cualquier usuario.

• Un buen Diseño para resaltar de las demás

No es necesario ser un gran diseñador para crear páginas web con un mínimo de sensibilidad gráfica. A veces, un diseño simple se agradece mucho más que una página web inundada de animaciones. El utilizar una tipografía determinada, unos colores adecuados, iconos, fotos, etcétera, puede convertir la experiencia de visitar una página web en algo mucho más agradable. También este diseño depende del tipo de información que tendrá esta, ya que no es lo mismo una página con un contenido infantil a una página de contenido científico.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 23

La influencia de los colores en ocasiones es importante y es necesario en ocasiones recurrir a las típicas encuestas, para saber los gustos y preferencias de los usuarios a los que esta enfocada esta página. También es importante en el aspecto del diseño de una página web, la estructuración del mismo. Facilitar la navegación mediante menús simples y concisos (ya que en ocasiones existen menús que son interminables), iconos agradables a la vista, mapas y otros elementos, esto puede evitar que más de un visitante se pierda dentro de la página. En el caso de crear una página excesivamente grande y compleja resulta de ayuda para el visitante la inclusión de mapas (esquemas con enlaces de hipertexto que representan toda la página) para no perderse. En muchas ocasiones el usuario que accesa a una página, es un usuario inexperto, por lo cual, lo dicho anteriormente resulta de gran ayuda para dar una buena impresión al usuario visitante de nuestra aplicación.

• Las imágenes contenidas en el diseño

La velocidad de acceso al web está siempre muy reñida con el diseño. (En la actualidad este problema ha sido un poco solucionado, gracias a las nuevas tecnologías de conexión a Internet, ADSL traídas por Telmex a bajo costo, pero aun así existen usuarios que se conectan a la red de redes por medio de un modem), por lo que es frecuente que se den casos en que, para embellecer un web se utilicen muchas imágenes (en formatos gif o jpeg) de gran tamaño y esto obligue a los usuarios con conexiones lentas a sufrir largas esperas hasta que la información se presente en pantalla, y eso es un riesgo porque más de dos saltarán a cualquier otra dirección Internet antes de perder su tiempo. La velocidad de la web también dependerá en gran medida de lo saturadas que estén las líneas de acceso a nuestro centro proveedor de presencia en Internet (en resumen, el servidor donde se aloja el web). Sin embargo este es un problema que se escapa del ámbito del diseño. Este problema se presenta muchas veces a creadores de sistemas independientes ya que al no estar respaldados por grandes recursos económicos o de equipo, montan el servidor en sus casas alentando por mucho la conexión a la página en cuestión.

• Elementos Interactivos

El desarrollo de una página web con elementos interactivos es de suma importancia, ya que a un usuario le interesa mucho el participar con su entorno, en este caso la aplicación web, por tanto la interactividad es fundamental para el éxito de un web. Se debe evitar la sensación “lectura de periódico” que puede causar en un visitante un web pasivo y lineal. Además la interactividad puede beneficiar a quien publica el web ya que a través de formularios podrá conocer mejor los perfiles de quienes pasan por las páginas.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 24

2.3 ETAPAS DE DESARROLLO DE UN SITIO WEB El desarrollo de un proyecto de un sitio web puede dividirse en tres etapas principales: 1. Pre-diseño. 2. Diseño. 3. Instalación y prueba. El punto de vista desde el cual se analiza el proceso de diseño no es desde la interrelación usuario-tecnología, sino como interacción humana, mediatizada por la tecnología. Es decir, entender a la web como medio de comunicación entre personas. Esto nos debe ayudar a pensar permanentemente en “el otro”, la persona invisible y desconocida para quien hacemos la página web, el usuario. De todas las palabras que utilizamos al hablar de Internet, la que más deben tener en cuenta los diseñadores es la que designa al acto de instalar un sitio, pensar en el público, pensar en cómo piensa el público. 1) Pre-diseño A la etapa de Pre-diseño o conceptualización podemos dividirla en cinco componentes para nuestro análisis. Estos componentes son: objetivos, público, contenidos, estructura y visualización. Estos interactúan entre sí y se condicionan mutuamente.

• Objetivos Este es uno de los elementos más importantes, que determina a los otros. Hay que responder a la pregunta: ¿Para qué se pública este sitio?; ¿qué quiero que suceda a raíz de la publicación de mi página web? Lo que se responda a estas cuestiones, es lo que se desea llegar a obtener, en nuestro caso queremos que el usuario pueda ingresar información y de la misma forma extraerla, para así dar forma a lo que es un Foro, un intercambio de ideas. En este momento habría que validar si las aspiraciones expresadas en los objetivos son compatibles con el funcionamiento de Internet. Por ejemplo, si bien es posible vender libros, discos, pizzas o corbatas a través de Internet, posiblemente no funcione con calzado, que necesita ser físicamente probado, así es como debemos ver las limitantes que se nos presentan y saber cual es el mejor camino para llegar al objetivo.

• Usuario Al hablar de un usuario no nos referimos a cualquier persona que recorriendo la red llegue a nuestra página, sino a aquella parte de la población a la que pretendemos llegar, y debido a la temática de este trabajo, hacemos referencia en específico a los alumnos de la ESIME

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 25

Zacatenco. Y esto esta estrechamente vinculado con los objetivos establecidos y la naturaleza del sitio que nos proponemos. Necesitamos construir una identidad de nuestro público, tratando de definir, en general sus intereses, inclinaciones, gustos, preferencias, etc., y en particular, como usuarios de Internet. Tenemos que dar una respuesta lo más concreta y específicamente posible a la pregunta “esa gente, ¿qué busca de mi página?”. Porque la web debería dar respuesta a esa pregunta. Así pues todo lo información que podamos recopilar de este publico usuario de nuestro sitio, nos servirá para darle forma, tanto en diseño como en lenguaje, ya que no es lo mismo hablar de electrónica o computación, con una persona ajena a los temas tratados, que con una persona relacionada con estos términos.

• Contenidos Se debe listar la información que se desea incluir en la web. Esta información debe ser significativa, y útil para el público. Teniendo en cuenta lo que a ellos les interesa, no lo que a nosotros nos gustaría que nos interese. Hay que apegarse de gran manera a lo propuesto desde un principio, ya que en muchos casos el usuario es engañado para que visite un sitio web, prometiendo cosas que no son realizables por esa aplicación web, y el usuario entonces no volverá a visitar nuestro sitio. También es importante hacer hincapié en dar, de forma rápida y de una manera accesible la información, no se trata de hacer textos redundantes sobre la importancia de esa información. El lenguaje utilizado para brindar la información en Internet debe ser sobrio, conciso, concreto. No funciona bien el lenguaje insinuante y ambiguo que puede ser perfecto para avisos gráficos que harían ver mal a nuestro sitio web. Al igual que pasa con los productos cuando estos tienen una mala calidad, se obtiene un desagrado con el publico, y este tendrá inconformidad, provocando que no se recomiende el producto, así futuros compradores se abstendrán de conseguir este; de igual forma un sitio web esta expuesto a tener estos golpes por parte del usuario, ya que de la presentación dada al sitio, depende la primera impresión que se le de al usuario y así este recomiende o no, el sitio para su futura visita de el y de sus amigos, usuarios futuros en potencia.

• Estructura La organización de la información es un tema clave para asegurar un buen funcionamiento de un sitio.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 26

El primer elemento organizador son las páginas. Conviene incluir en cada una de ellas una unidad de información autónoma, completa. En el caso de que el volumen sea excesivo para ello, dividir esa unidad de información en subunidades más pequeñas, coherentes, completas cada una en sí misma. Una unidad de información es un tema o un subtema. Las relaciones de las páginas entre sí configuran la estructura del sitio. A partir de la página principal o home page se vinculan mediante links el resto de las páginas. Esto es bastante sencillo de implementar en lenguaje HTML, pero es más complicado decidir de qué manera, en qué orden, con qué configuración se establecerá la cadena de vínculos. Ante todo hay que tener en cuenta que la estructura debe responder a los criterios de búsqueda. Hay que hacerse la pregunta acerca de ¿cómo se intentará encontrar esta información? Los criterios “naturales” de clasificación pueden no ser adecuados. Por ejemplo, es común que quienes venden repuestos acomoden los mismos por tipo: juntas por aquí, poleas por allí, resortes de este lado. El usuario, a su vez, necesita el repuesto para una máquina o artefacto, marca, modelo, función del repuesto que busca. Los links y la estructura del sitio tendrán que tener en cuenta estas cuestiones. El otro tema es que los usuarios reconocen las páginas de la web utilizando como guía palabras clave colocadas en botones, barras de control, gráficos mapeados, o utilizadas como marcas de hipertexto; palabras que por su significado indican o sugieren el contenido de páginas a las que derivan. Es sabido que los significados de las palabras no son unívocos, y la ambigüedad puede ser un problema. El conocimiento de la cultura y usos lingüísticos del público nos será sin duda, de gran utilidad a la hora de elegir las palabras que se titularán nuestros botones o identificarán los links de derivación a otras páginas del sitio. Hay que tener en cuenta que el usuario no tiene cómo saber la manera en que sigue la cadena de links más allá de las páginas a las que puede entrar directamente desde el lugar donde se encuentra. Que el usuario no encuentre la información buscada después de recorrer cuatro o cinco páginas encadenadas puede significar que el mismo abandone el sitio o la indeseada sensación de frustración que nos interesa evitar. Un tema relacionado a éste es el de los mecanismos de identificación y de recorrido del sitio. Estos deberían permitir al usuario saber en todo momento el lugar o zona del sitio donde se encuentra, así como desplazarse hacia cualquier otra página sin necesidad de recorrer toda la cadena en sentido inverso. Los paneles de control son una buena ayuda.

• Visualización Hay que recordar que la página a realizar debe de disponer de elementos que hagan mas atractivo al sitio, no cayendo en los extremos, ya que en ocasiones se abusa de las aplicaciones multimedia, obteniendo así un sitio con un total caos por esta falta de orden en el esquema visual, fotos en la parte superior, videos corriéndose en la parte inferior y texto en el lado derecho, haciendo imposible que el usuario disfrute de todo lo ofrecido por el sitio.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 27

Esto significa que tampoco es un espacio de lucimiento del diseñador. La estética no debe adecuarse a los gustos y preferencias de los responsables del sitio. Mas bien el público deberá de ser el instrumento para tomar las decisiones de diseño gráfico y multimedia. Además de los criterios estéticos y comunicacionales del diseño gráfico, es importante respetar los criterios técnicos específicos: Que cada página sea fácil de cargar. - La velocidad de carga de una página está en función del estado de las líneas y de la cantidad de información que contiene. Sobre el primer parámetro no hay nada que podamos hacer desde el diseño, pero sí sobre el segundo: establecer para cada página un máximo de bytes y no sobrepasarlo. - Realizar los gráficos del tamaño más chico posible. - Repetir los iconos siempre que sea posible. El browser los leerá de la memoria caché a partir de la segunda vez que deba colocarlos en la página. - Grabar cada gráfico en formato GIF y JPEG, verificar el tamaño de ambos y descartar el mayor. - Reducir la cantidad de colores de cada gráfico al mínimo indispensable. De todos modos, la mayor parte de los usuarios no pueden visualizar más de 256. - Reflexionar cuidadosamente sobre la utilización de recursos de multimedia. Que las páginas sean fáciles de leer. - Resolver el contraste texto/fondo con valores de luminosidad y no sólo de color. - Tener cuidado con las texturas del fondo: no deben tener un dibujo excesivamente nítido que perjudique la lectura. Tampoco es conveniente que sean motivos muy contrastados (contornos claros y oscuros), ya que se verán mal tanto los textos oscuros como los claros. En el caso de utilizar texturas fuertes, agrandar lo suficiente el tamaño de la tipografía. En este punto cabe resaltar que el texto no se alcanza apreciar bien si se escribe sobre alguna imagen llamativa, o si la letra es obscura y el fondo igual. - El tamaño de la tipografía debe ser adecuado para ser leído sin dificultad aun en computadoras con alta resolución de pantalla. - Es importante jerarquizar los títulos, subtítulos, manteniendo la coherencia de los estilos en todo el sitio. Para eso es una buena ayuda escribir una pequeña norma que establezca el tamaño relativo de la tipografía para cada categoría de títulos, y subtítulos, así como si éstos van centrados, alineados, etc.

CAPÍTULO 2 PLANEACIÓN DE UN SISTEMA INFORMÁTICO

Desarrollo de un Foro de discusión Escolar 28

Establecer guías visuales que permitan saber que cada página pertenece al mismo sitio. La coherencia visual ayuda en ese sentido. Un sitio en el que cada página tiene un fondo diferente, varían los iconos y cambian otros componentes de la composición visual, desconcierta al usuario, que no sabe si está en el mismo sitio o si el último link lo llevó a visitar una página diferente.

• Diseño

Cuando hablamos sobre diseño de páginas web, realmente nos referimos al HTML o Lenguaje Marcado de Hiper-Texto. El lenguaje HTML consiste en una serie de comandos que le indican al programa navegador (Ej. Internet Explorer) cómo darle formato al texto que contienen los archivos. Pero en la actualidad no es necesario ser un experto programador de este lenguaje ya que los procesadores de texto actuales son capaces de agregar parte de código para lo que queremos mostrar. El desarrollo de páginas web, consiste desde pasar un archivo de texto a formato HTML, hasta la creación de sistemas, los cuales están compuestos por varias páginas las cuales contienes diversas aplicaciones, eso si el cuidado que se tiene, es el de poder ingresar a la página desde cualquier plataforma. La tarea de diseño de páginas web convoca aspectos de diversa índole como lo son: la comunicación (humana), la programación en cualquier lenguaje orientado a la web (HTML, CGI, Java, PHP, .NET, Etc.) y diseño gráfico y multimedia. En los proyectos de sitios web no participan sólo los especialistas contratados o designados para ello. La empresa o la institución que origina la demanda tiene diversos grados de responsabilidad y compromiso con la publicación del sitio.

• Instalación y Pruebas

En esta etapa nos encargamos de la puesta en marcha, correcciones y ajustes finales. Se debe hacer que todo funcione. Debemos hacer la prueba de todos los enlaces o links, corroborar el correcto funcionamiento de todos los elementos de multimedia y del funcionamiento de formularios, e-mail, buscadores, etcétera. La transferencia de archivos a la web, se realiza a través de FTP (File Transfer Protocol), generalmente, se necesita un nombre de usuario y una clave de acceso.

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TEGNOLÓGICA

Desarrollo de un Foro de discusión Escolar 29

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TECNOLÓGICA

3.1 TIPOS DE LENGUAJES

En la selección de la plataforma tecnológica se escoge el software de desarrollo y el hardware que se va a ocupar tanto en el desarrollo como en la puesta en marcha. Consideramos importante el justificar la utilización de un software en específico ya que existe una variedad amplia de software a elegir par el desarrollo de páginas web mencionaremos tres de los más importantes y se explicará sus características. Se analizarán las siguientes herramientas de desarrollo:

Java. PHP. Visual studio.net.

Antes de comenzar a explicar las características de cada lenguaje haremos una clasificación general de los tipos de lenguaje que se usan para el diseño de páginas web.

• HTML: está en formato texto y no es un lenguaje en el sentido tradicional, sino un estructurador de texto en hipertexto y así coloca los objetos en la página con las características indicadas. Naturalmente, por esta peculiaridad, tiene un carácter estático y no interactúa con el usuario ni puede tomar decisiones sino por lo que se refiere a los formularios. Para su interpretación necesita un navegador.

• Lenguajes compilados: son lenguajes bastante complejos en los que la fuente (un File de texto con las operaciones que hay que ejecutar) se compila en código máquina y se empaqueta en un ejecutable que puede utilizarse sólo de la forma y para las operaciones para las que se ha proyectado.

• Lenguajes semi compilados: en realidad, a esta clase pertenece tan sólo Java porque es un lenguaje compilado en un formato intermedio entre los File ASCII y el File binario. Dicho formato se llama bytecode y es interpretado en el cliente por una máquina virtual llamada Java Virtual Machine. De esta manera, a la recepción, dicha máquina completa la compilación y hace que el File sea ejecutable.

• Lenguajes interpretados: son los que resultan muy similares al HTML, pero que tienen mayores potencialidades porque permiten efectuar controles y operaciones complejas. Se envían en File ASCII y, por tanto, con código en claro que el navegador interpreta y ejecuta línea por línea en modalidad runtime.

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TEGNOLÓGICA

Desarrollo de un Foro de discusión Escolar 30

3.1.1 JAVA SCRIPT Java script es muy fácil de aprender para quien ya conoce lenguajes similares como el C++ o Java, pero, dada su simplicidad sintáctica y su manejabilidad, no es tampoco difícil para quien se acerca por primera vez a este lenguaje. Sin embargo, esto puede ser un arma de doble filo porque la simplicidad se basa en una disponibilidad de objetos limitada, por lo que algunos procedimientos, aparentemente muy sencillos, requieren script bastante complejos. La característica principal de Java script, de hecho, es la de ser un lenguaje de scripting, pero, sobre todo, la de ser el lenguaje de scripting por excelencia y, sin lugar a dudas, el más usado. Esta particularidad conlleva una notable serie de ventajas y desventajas según el uso que se le deba dar y teniendo en cuenta la relación que se establece entre el mecanismo cliente-servidor. Para explicar con pocas palabras dicha relación, podemos decir que el servidor envía los datos al cliente y estos datos pueden llegar en dos formatos diversos: en formato texto (o ASCII) o en formato binario (o código máquina: El cliente sabe cómo comprender sólo el formato binario (es decir, la secuencia de 1 y 0), por lo que si los datos llegan en este formato son inmediatamente ejecutables (y, por desgracia, no dejan abierta la posibilidad de efectuar controles), mientras que si el formato es diverso tienen que ser interpretados y traducidos al formato binario y, por tanto, el cliente necesitará un filtro, o mejor dicho, un intérprete que sepa leer estos datos y los pueda traducir al binario. Los datos en formato texto son visibles al usuario como simples combinaciones de caracteres y de palabras y son, por tanto, fáciles de manipular, si bien requieran más tiempo para su interpretación a causa de los distintos pasos y de las transformaciones a las que deben someterse para que el cliente pueda comprenderlos: Los datos en formato binario, sin embargo, son difíciles de comprender por el usuario, pero inmediatamente ejecutables por el cliente ya que no requieren fases intermedias. Ventajas y desventajas

El lenguaje de scripting es seguro y fiable porque está en claro y hay que interpretarlo, por lo que puede ser filtrado; para el mismo Java script, la seguridad es casi total y sólo en su primera versión el CIAC (Computer Incident Advisory Committee) señaló problemas de leve entidad, entre ellos la lectura de la caché y de los sitios visitados, de la dirección e-mail y de los ARCHIVOS presentes en el disco. Sin embargo, estos fallos se corrigieron ya en las versiones de Netscape sucesivas a la 2.0.

Los script tienen capacidades limitadas, por razones de seguridad, por lo cual no es posible hacer todo con Java script, sino que es necesario usarlo conjuntamente con otros lenguajes evolucionados, posiblemente más seguros, como Java. Dicha limitación es aún más evidente si queremos operar en el hardware de la computadora, como, por ejemplo, la fijación en automático de la resolución vídeo o la impresión de un documento.

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TEGNOLÓGICA

Desarrollo de un Foro de discusión Escolar 31

Un problema importante es que el código es visible y puede ser leído por cualquiera, incluso si está protegido con las leyes del copyright.

El código Java script se ejecuta en el cliente por lo que el servidor no es solicitado más de lo debido; un script ejecutado en el servidor, sin embargo, sometería a éste a una dura prueba y los servidores de capacidades más limitadas podrían resentir de una continua solicitud por un mayor número de usuarios.

El código del script debe descargarse completamente antes de poderse ejecutar y ésta es la otra cara de la moneda de lo que hemos dicho anteriormente: si los datos que un script utiliza son muchos (por ejemplo, una recopilación de citas que se mostrara de manera casual), el tiempo que tardará en descargarse será muy largo, mientras que la interrogación de la misma base de datos en el servidor sería más rápida.

3.1.2 PHP

PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas web dinámicas, similar al ASP de Microsoft o el JSP de Sun, embebido en páginas HTML y ejecutado en el servidor.

La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas características específicas de sí mismo. La meta del lenguaje es permitir rápidamente a los desarrolladores la generación dinámica de páginas. No es un lenguaje de marcas como podría ser HTML, XML o WML. Está más cercano a Java Script o a C, para aquellos que conocen estos lenguajes.

A diferencia de Java o Java Script que se ejecutan en el navegador PHP se ejecuta en el servidor por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado es enviado al navegador. El resultado es normalmente una página HTML pero también podría ser una página WML (Wap).

Al ser PHP un lenguaje que se ejecuta en el servidor no es necesario que su navegador lo soporte, es independiente del navegador, sin embargo, para que sus páginas PHP funcionen el servidor donde están alojadas debe soportar PHP.

Al ser un lenguaje libre dispone de una gran cantidad de características que lo convierten en la herramienta ideal para la creación de páginas web dinámicas:

• Soporte para una gran cantidad de bases de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, Sybase mSQL, Informix, entre otras.

• Integración con varias bibliotecas externas, permite generar documentos en PDF (documentos de Acrobat Reader) hasta analizar código XML.

• Ofrece una solución simple y universal para las paginaciones dinámicas del web de fácil programación.

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TEGNOLÓGICA

Desarrollo de un Foro de discusión Escolar 32

• Perceptiblemente más fácil de mantener y poner al día que el código desarrollado en otros lenguajes.

• Soportado por una gran comunidad de desarrolladores, como producto de código abierto, PHP goza de la ayuda de un gran grupo de programadores, permitiendo que los fallos de funcionamiento se encuentren y reparen rápidamente.

• El código se pone al día continuamente con mejoras y extensiones de lenguaje para ampliar las capacidades de PHP.

• Con PHP se puede hacer cualquier cosa que podemos realizar con un script CGI, como el procesamiento de información en formularios, foros de discusión, manipulación de cookies y páginas dinámicas.

PHP es un potente lenguaje y el intérprete, tanto incluido en el servidor web como módulo o ejecutado como un binario CGI, puede acceder a ficheros, ejecutar comandos y abrir comunicaciones de red en el servidor. Todas estas características hacen que lo que se ejecute en el servidor web sea seguro por defecto.

PHP ha sido diseñado específicamente para ser un lenguaje más seguro para escribir programas CGI, Perl o C y con la correcta selección de las opciones de configuración de tiempo de compilación y ejecución se consigue la exacta combinación de libertad y seguridad que se necesita. Ya que existen diferentes modos de utilizar PHP, existe también una multitud de opciones de configuración que permiten controlar su funcionamiento. Una gran selección de opciones garantiza que se pueda usar PHP para diferentes aplicaciones, pero también significa que existen combinaciones de estas opciones y configuraciones del servidor que producen instalaciones inseguras.

3.1.3 VISUAL STUDIO .NET

Visual Studio .NET es una completa herramienta para generar e integrar con rapidez aplicaciones y servicios web XML, lo que mejora notablemente la productividad del programador y abre las puertas a nuevas oportunidades empresariales.

La arquitectura abierta permite a los programadores utilizar cualquier lenguaje orientado a Microsoft .NET Framework y aprovechar los conocimientos de programación actuales. Visual Studio .NET está basado en la más reciente plataforma de servidor de Microsoft Windows, lo que incorpora escalabilidad, confiabilidad y seguridad a las aplicaciones. Se han simplificado la administración y la implementación de las aplicaciones en un entorno de producción, reduciendo así los costes totales del ciclo.

Con Visual Studio 2005 pueden:

• Disfrutar un entorno de desarrollo altamente productivo con diseñadores visuales, lenguajes de programación y editores de código mejorados.

• Desarrolla y depura aplicaciones multicapa de servidor desde un mismo entorno unificado de desarrollo (Integrated Development Enviroment - IDE).

• Construye soluciones para SQL Server 2005 utilizando herramientas visuales integradas de diseño de bases de datos e informes.

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TEGNOLÓGICA

Desarrollo de un Foro de discusión Escolar 33

• Crea tus propias herramientas que extienden el IDE de Visual Studio usando el SDK de Visual Studio.

Microsoft ofrece dos opciones para los desarrolladores profesionales trabajando en solitario o en pequeños equipos, Visual Studio 2005 Professional Edition, y Visual Studio 2005 Tools para Microsoft Office System. Cada edición añade funcionalidad a las características básicas que incluye la edición Standard incluyendo herramientas para desarrollo remoto en el servidor así como depuración, desarrollo para SQL Server 2005 y un IDE completo y sin restricciones. Cada producto puede adquirirse por separado o conjuntamente como parte de una Suscripción.

Los desarrolladores profesionales disfrutarán de un acceso sin trabas al .NET Framework 2.0, el entorno robusto y plenamente funcional de la plataforma Microsoft; así como soporte para la creación de add-ins para extender el IDE de Visual Studio.

A continuación se muestra una tabla con las características de Visual studio 2005 en sus diferentes versiones:

Tabla 3.1 Visual Studio.Net

Visual Studio

2005 Professional

con Suscripción

MSDN Premium*

Visual Studio 2005

Professional con Suscripción

MSDN Professional*

Visual Studio 2005

Professional

Visual Studio 2005 Tools Para

Microsoft Office System

Soporte de lenguajes

Visual Basic, C#, C++, J#

Visual Basic, C#, C++, J#

Visual Basic, C#, C++, J#

Visual Basic, C#

Proyectos Windows

Forms

Proyectos web Proyectos para

dispositivos móviles

Soporte de 64 bits

Plantillas empresariales Diseñador de

Clases

Explorador de Servidor

Completo Completo Completo Completo

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TEGNOLÓGICA

Desarrollo de un Foro de discusión Escolar 34

Proyectos Excel, Word,

InfoPath

Modelado basado en Visio

Visual Source Safe

SQL Server Developer

Edition

Sistemas Operativos - Desarrollo y

pruebas

Servidores - Desarrollo y

pruebas

Virtual PC Access

Developer Extensions

Office, InfoPath,

OneNote, Visio, Project,

MapPoint

Como se observa Visual Studio. Net es un herramienta potente flexible y que cumple con nuestros requerimientos por lo tanto el desarrollo del Foro de discusión se realizara ocupando este programa.

Además el utilizar esta herramienta nos permitirá realizar tecnologías a la vanguardia ya que este programa es una herramienta innovadora y de gran auge; esto no quiere decir que las otras opciones no lo sean, simple y sencillamente que consideramos mas apropiado el uso de Visual Studio.Net par el desarrollo de nuestro sistema.

La plataforma tecnológica .Net de Microsoft ofrece:

Servicios web XML: Estos son servicios que ofrecen alguna funcionalidad y se pueden invocar a través de Internet.

.Net Framework: Incluye una base estándar y una biblioteca de clases para el desarrollo de nuevas aplicaciones.

Visual Studio .Net: Puede utilizar el .Net Framework y admite varios lenguajes para el desarrollo de aplicaciones (Visual Basic, C++ y C#).

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TEGNOLÓGICA

Desarrollo de un Foro de discusión Escolar 35

.Net My Services: Es un grupo de servicios que permiten el almacenaje y acceso de los usuarios a información personal.

Los servidores empresariales .Net: Este es un grupo de servidores en los que se encuentran BizTalk Server 2000, Application Center 2000, Commerce Server 2000, Host Integration Server 2000, Mobile Information Server 2001 e Internet Security and Accelearation Server 2000.

Actualmente es la tecnología .Net de Microsoft la que ofrece de manera integral todos los servicios necesarios para que los sistemas desarrollados en esta plataforma no solamente cumplan con los requisitos que hoy se necesitan, sino para estar preparados a la siguiente generación de sistemas que tendrá dentro de sus capacidades poder integrarse a otras aplicaciones.

Además de la ventaja de integración de las distintas tecnologías bajo una misma filosofía. Tenemos que las aplicaciones desarrolladas para .Net Framework no se tienen que instalar, basta copiar los archivos necesarios al directorio de la página que se desea publicar.

Como se observa las herramientas que ofrece esta Visual Studio.Net son bastantes y de gran utilidad por lo tanto hará mas fácil el desarrolló de nuestro sistema además cabe resaltar que esta herramienta a pesar de lo que se piense es barata ya que existe herramientas en internet que permiten descarga software de prueba lo cual te permite realiza aplicaciones fácil y de manera barata que es un factor sumamente importante en el desarrollo de sistemas de computo. Por todo esto consideramos que esta herramienta es la apropiada para el desarrollo nuestro Foro de Discusión Escolar.

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TEGNOLÓGICA

Desarrollo de un Foro de discusión Escolar 36

3.2 BASE DE DATOS

Una vez que se ha elegido la herramienta de desarrollo pasamos a la elección del programa que se va a ocupar para la base de datos y basándonos en la elección anterior la herramienta que se ocupará para la base de datos es SQL. A continuación se muestran sus características.

SQL Server 2005

Hoy en día las organizaciones enfrentan numerosos desafíos de datos, tales como la necesidad de tomar decisiones más rápidas y más orientadas a datos, la necesidad de aumentar la productividad y flexibilidad del personal de desarrollo y presionan para reducir los presupuestos generales de informática (IT) a la vez que escalan la infraestructura para satisfacer las exigencias cada vez mayores.

Esta solución de administración y análisis de datos de próxima generación ofrece seguridad, escalabilidad y disponibilidad mayores a las aplicaciones de datos empresariales y analíticas, a la vez que las hace más fáciles de crear, desplegar y administrar.

Con la ampliación de las ventajas de SQL Server 2000, SQL Server 2005 ofrece una solución integrada de administración y análisis de datos que ayuda a las organizaciones de cualquier magnitud a realizar lo siguiente:

• Crear, desplegar y administrar aplicaciones empresariales más seguras, escalables yconfiables.

• Maximizar la productividad de IT mediante la reducción de la complejidad y el soporte deaplicaciones de bases de datos.

• Compartir datos en múltiples plataformas, aplicaciones y dispositivos para facilitar la conexión de sistemas internos y externos.

• Controlar los costes sin sacrificar el rendimiento, la disponibilidad, la escalabilidad o laseguridad.

SQL Server 2005 potencia su infraestructura de datos en tres áreas clave: administración de datos empresariales, productividad del encargado del desarrollo e inteligencia empresarial. También abre nuevos caminos en precios y licencias accesibles, rutas de actualización a SQL Server 2005 y el sistema Microsoft Windows Server.

Plataforma de datos de SQL Server

SQL Server es una solución de datos globales, integrada y de extremo a extremo, que habilita a los usuarios en toda su organización mediante una plataforma más segura, confiable y productiva para datos empresariales y aplicaciones de BI. SQL Server 2005 provee herramientas sólidas y conocidas a los profesionales de IT, así como también a trabajadores de la información, reduciendo la complejidad de la creación, despliegue, administración y uso de aplicaciones analíticas y de datos empresariales en plataformas que van desde los dispositivos móviles hasta los sistemas de datos empresariales.

CAPÍTULO 3 SELECCIÓN DE LA PLATAFORMA TEGNOLÓGICA

Desarrollo de un Foro de discusión Escolar 37

A través de un conjunto global de características, la interoperabilidad con sistemas existentes y la automatización de tareas rutinarias, SQL Server 2005 ofrece una solución completa de datos para empresas de todos los tamaños.

La Fig. 3.1 muestra el diseño de la plataforma de datos SQL Server 2005.

Fig. 3.1 Diseño de la Plataforma de Datos SQL Server 2005

La plataforma de datos SQL Server incluye las siguientes herramientas:

Base de datos relacional. Un motor de base de datos relacional más segura, confiable, escalable y altamente disponible con mejor rendimiento y compatible para datos estructurados y sin estructura (XML).

Servicios de réplica. Réplica de datos para aplicaciones de procesamiento de datos distribuidos o móviles, alta disponibilidad de los sistemas, concurrencia escalable con almacenes de datos secundarios para soluciones de información empresarial e integración con sistemas heterogéneos, incluidas las bases de datos Oracle existentes.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 38

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

4.1 DEFINICIÓN DEL PROBLEMA Básicamente nuestro problema se basa en la realización de un Foro de discusión, el cual sea capaz de hacer que los usuarios puedan:

• Darse de alta en la página

• Proponer un tema a discutir

• Subir información.

• Buscar algún tema.

• Opinar acerca de los diversos temas.

• Comentar los temas que se muestren.

Estos temas pueden ser para resolver problemas específicos, ya sea definidos por el usuario o por el administrador que en este caso seríamos nosotros. El problema específico que se quiere resolver es proporciona a la comunidad estudiantil de la ESIME una herramienta práctica para poder consultar información sobre sus materias. Lo anterior permitirá que alumnos de semestres más avanzados puedan subir información de interés para generaciones futuras. Además consideramos que es de gran importancia que el alumno pueda resolver un problema en específico de manera cooperativa. Es decir que si al alumno se le presenta, por ejemplo un problema en el armado de un circuito éste pueda proponer un tema acerca de su duda y de esta manera poder obtener ideas para resolverlo. Otro problema al que se enfrenta un alumno es la falta de material con que se cuenta en la biblioteca y este Foro podría apoyar a los alumnos ya que si alguien tiene la información que se busca se podría decir como encontrarla o poder contribuir con su conocimiento en la materia.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 39

4.2 ANÁLISIS

El análisis comienza desde el momento en el cual se concibe la idea de realizar un sistema, en este proceso es de suma importancia obtener la mayor información posible ya que a partir de la misma se podrá plantear la mejor solución. Dentro de los diferentes factores que se tiene para el análisis tenemos los siguientes:

• Naturaleza de la empresa (En nuestro caso será de carácter escolar). • Volumen de la información que manejan. • Cual es la problemática que se ha identificado. • Por qué se quiere hacer un sistema. • ¿Ha tenido o tiene un sistema instalado? • En caso de contar con un sistema. ¿Por qué se desea cambiar?

Ahora bien el análisis cumple todos estos factores que como se ve a simple vista, hay algunos que no son de gran importancia para nosotros, pero partiremos por desglosar cada uno de estos.

• Naturaleza de la empresa

Como ya se sabe nuestro Foro de discusión se realizara para la Escuela Superior de Ingeniería Mecánica y Eléctrica unidad Zacatenco, por lo tanto nuestra empresa es una escuela por lo cual es un sistema de tipo educativo que tendrá que satisfacer necesidades tanto para alumnos, maestros y en si toda las personas que entren al Foro.

• Volumen de la información que manejan

En el volumen de la información nosotros contaremos con dos rublos:

• Información del Usuario • Información que suba el usuario

Es decir la información del usuario son los datos que nosotros necesitamos para que pueda acceder a la página. Así como algunos datos personales para su registro en la misma. Nombre, correo electrónico, algún nombre clave, etcétera. La información que suba el usuario puede ser de varios tipos:

• Comentarios • Notas • Documentos

Se podría decir que esta información es incuantificable, y dependerá mucho de los usuarios, ya que aunque se dará un espacio específico como límite para la información el usuario puede dejar cuántas veces quiera información, en este.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 40

• ¿Cual es la problemática que se ha identificado? El análisis de problema lo empezamos desde, el ver que hay en la web y que no hay, y lo que observamos fue lo siguiente:

• En la Escuela Superior de Ingeniería Mecánica y Eléctrica Zacatenco no hay un Foro de discusión lo cual es bastante grave.

• Los foros de discusión educativos que hay en Internet son bastante ineficientes

Aclarando este último punto esto es por el hecho de que no existe un orden, es decir la información no se encuentra clasificada adecuadamente, no se pueden proponer temas, entre otros factores. Una vez analizado todo lo anterior se preguntó a algunos alumnos de nuestra escuela sobre sus necesidades y las características que quisieran tuvieran un Foro de discusión. La información que obtuvimos fue la siguiente:

• Que la información estuviera clasificada por academias es decir información sobre electrónica, física etcétera.

• Poder subir información.

• Bajar información importante.

• Poder darse de alta en el sistema.

• ¿Por qué se quiere hacer un sistema?

Por la necesidad de compartir información y tener una herramienta útil y fácil ya que la mayoría de alumnos cuentan con una conexión a Internet o pueden acceder fácilmente a una, lo cual es de gran ayuda debido a que los alumnos ya no tendrán que buscar en tantos lugares para encontrar información que les sea de utilidad. Aquí cabe resaltar que no estamos excluyendo antiguos sistemas de estudio como consulta bibliográfica en una biblioteca, asesoría con algún profesor, etcétera, nosotros tratamos de dar una herramienta más, no una herramienta que sustituya a las anteriores, consideramos que en la actualidad es muy bueno para tener un conocimiento completo tener la mayor cantidad de herramientas y fuentes de información y como es de saberse hoy en día, Internet es la mas grande fuente de información existente.

• ¿Ha tenido o tiene un sistema instalado?

Como ya se mencionó con anterioridad no hay un Foro de discusión para los Alumnos de la ESIME en la actualidad se cuenta con un Foro en la página del IPN que hasta el

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 41

momento es inaccesible creemos que es por el hecho de que aun este en construcción, además de que desconocemos el enfoque que se le vaya a dar, pues no se sabe si es de tipo educativo o esta orientado más a trámites o información de las escuelas, realmente desconocemos.

• En caso de contar con un sistema. ¿Porque se desea cambiar?

Básicamente el Foro de discusión de la ESIME Zacatenco no existe y los que están en la web como el de la UNAM, en este último, la información esta poco organizada y se hablan de temas poco relevantes para estudiantes de Ingeniería de la ESIME Además un Foro específico para los alumnos de la ESIME ayudará a que se hable de temas estrictamente educativos y de temas referentes a la materias impartidas a la escuela. Una vez ya tomada en cuenta y desglosada, cada sección que compone el análisis, se obtuvo información relevante, ahora el proyecto ha tomado forma, es decir ya se pude establecer una ruta por la cual, se desarrollara el programa y agregando factores extras que nosotros consideramos importantes se llegara al buen funcionamiento de este. En este análisis sólo se tomó en cuenta a la población estudiantil de la ESIME pero no queremos que nuestro Foro sea únicamente para la comunidad politécnica queremos que se le de apertura. Es decir que personas que no estudien en la escuela accedan al Foro esto podrá enriquecer el conocimiento cabe resaltar que se tendrá que tomar otros factores en cuenta como son las reglas de uso lo cual tendrán que ser más estrictas esto con el fin de que se sigua teniendo la misma función del Foro que al principio la cual es que sea una herramienta educativa.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 42

4.3 DETERMINACIÓN DE PROCESOS

En esta parte, se crean los procesos que se seguirán, La implementación de un sistema computacional en una empresa, se realiza mediante la observación de cómo se están llevando a cabo sus procesos, cómo se implementan y si requiere alguna mejoría se pone en marcha, en nuestro caso todo dependerá de experiencias obtenidas en otros Foros escolares y en las inquietudes de la comunidad de la ESIME. En nuestro Foro se tendrán varios procesos entre los que destacan:

Registro de Usuarios. Subir y descargar información.

Por lo tanto nuestro proceso para el registro será de la siguiente manera:

Fig. 4.1 Proceso de Registro

El proceso de registro del Foro, es importante ya que permitirá tener un control del las personas que entren a la página ya que de esta manera se podrá saber quien es la persona que ha dejado la información y facilitar más la organización de la misma. Esta parte es obligatoria y no se permitirá a nadie el acceso a la misma si no se registra, cabe resaltar que no solo podrán entrar estudiantes de la ESIME si no cualquier persona que navegue en Internet, el acceso de este será con diferentes características, es decir el Alumno podrá contar con el 100% de las aplicaciones que cuente la página y el Invitado solo podrá ver la información y en algunos casos dejar comentarios.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 43

Fig. 4.2 Agregar Tema

En la figura anterior se muestra el segundo proceso, que es cuando el usuario elige un tema de los existentes o el agregar un tema dando su nombre del mismo después ingresa lo que es el subtema que básicamente es el tema en especifico del que se va a tratar, como se observó este proceso sólo lo podrán realizar los alumnos una vez que se crea el subtema se da una breve descripción del mismo para que se sepa específicamente de que tratará el tema después de esto se entra al proceso de opciones donde se puede dejar un comentario ya sea para contribuir a la información existente o para hacer alguna pregunta sobre alguna duda que se tenga sobre este tema y por ultimo cuando se sube alguna información se pedirá alguna palabra clave para cuando se quiera realiza alguna búsqueda sobre su tema sea más fácil encontrarlo. Estos procesos son básicamente como trabaja el Foro y están ligados ya que siempre para llegar al proceso de subir información es necesario haber pasada por el proceso de registro mas aun para agregar algún tema se tendrá que validar el tipo de usuario requiriendo datos del primer proceso. Ya una vez analizado los procesos que realizará el Foro se tiene que tomar en cuenta dentro del diseño el equipo que se necesitará para realizar los procesos esto a nivel de hardware aunque en este caso no lo tomaremos en cuenta ya que aunque se necesita un servidor y el equipo necesario para salir a Internet este aspecto no entra dentro de nuestro diagnóstico ya que ella se cuenta con este equipo y no se puede hacer alguna modificación alguna, además de que el equipo con el que se cuenta es suficiente y se encuentra en buenas condiciones por lo cual no será un factor importante para el funcionamiento de la página.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 44

4.4 DISEÑO CONCEPTUAL DEL SISTEMA Esta parte viene después de que ya se terminó el análisis y el diagnóstico y es la parte del flujo del trabajo que se propone básicamente se debe cumplir con los siguientes aspectos:

Estructura de datos.

Reglas de operación.

Selección de plataforma tecnológica. Cabe resaltar que en el diseño conceptual que nosotros realizamos tiene mucho que ver con la expectativas de nosotros como diseñadores de la página como de los usuarios por lo tanto en esta parte se realizó una pequeña encuesta para saber las necesidades y requisitos que necesitaba para que el Foro cumpliera con las expectativas deseadas, de esta manera se podrá saber de manera mas clara lo que se espera del Foro ya que se podría seguir un patrón de los que ya existen en Internet pero consideramos que es importante tener un Foro con las características necesarias para cumplir con lo que la comunidad de la ESIME necesita siempre cumplimento sus expectativas que tenga del mismo. El cuestionario que se formuló es el que a continuación se muestra: 1.- ¿Sabes que es un Foro de Discusión Escolar? 2.- ¿Qué tipo de información te gustaría que se tratara? 3.- ¿Cómo te gustaría que fuera el acceso al Foro es decir restringido solo para alumnos o para cualquier persona? 4-¿Cómo te gustaría que estuviera clasificada la información? 5.- ¿Te sería útil subir y descargar información? 6.- ¿Cómo te gustaría que se mostrara la información (clasificación, orden etc.)? 7.- ¿Como te gustaría que fuera el diseño de la página?

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 45

Fig. 4.3 Resultados de la Encuesta

En la Fig. 4.3 se muestra los resultados obtenidos de la encuesta el número que aparece al principio hacer referencia al número de pregunta como se observa se enlistaron solo cinco de las respuestas obtenidas ya que son las que aportan una verdadera guía de cómo se desarrollará el Foro. Básicamente la comunidad de la ESIME tiene bien definido lo que es un Foro de discusión escolar y la manera que este les puede ayudar en su vida cotidiana como estudiantes. Además de que muestran interés por que la información tenga un orden es decir este bien clasificada por semestre, por materia y por tema en específico ya que de esta manera hará más fácil el poder encontrar información además facilitará subir comentarios de temas específicos. Además que muestran interés por que el Foro se abierto a todo el publico ya que de esta manera se tendrá mayor contribución de información y también podrá servir de ayuda a otros estudiantes ajenos a esta escuela.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 46

4.5 ESPECIFICACIÓN DE DATOS Esta parte no es la especificación de la base de datos en si más bien el tipo de información, el flujo y su relación. La información del Foro estará dividida básicamente en 5 partes las cuales son:

Datos del Alumno. Datos del Invitado. Temas. Subtemas. Opciones de tema.

Esta información se dividió de esta manera, por que es importante saber que tipo de visitante es el que ingresa al Foro, es decir si es un alumno de la ESIME contará con más privilegios que un visitante externo a la escuela, que en este caso será de tipo Invitado. También se hizo de esta manera para poder llevar un mejor control de las personas que visiten al Foro. En la Fig. 4.4 se muestran los campos requeridos para un usuario de tipo Alumno.

Fig. 4.4 Datos del Alumno

Como se observa en la Fig. 4.4 se solicitan datos al alumno para acceder al Foro, tiene que ver con datos referentes a la escuela, esto es con el fin de que el usuario de tipo Alumno ingrese a una página personalizada, en una sección que sea más acorde a sus intereses. Nombre del Alumno: Hace referencia al ingreso del nombre propio junto con apellidos, esto para fines de la organización de usuarios registrados y poder así, a futuro ocupar esta

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 47

información; entonces cuando el Alumno ya esta registrado, en su próxima visita, ingresara a una página personalizada. Usuario: Será un nombre con el cual, el usuario entrará al sistema, puede ser algún sobrenombre, y aceptara solamente caracteres alfanuméricos. Contraseña: Campo brindado por el visitante, hace referencia a una serie de caracteres con los cuales el sistema brindará seguridad a la cuenta del mismo. Correo Electrónico: Dirección de correo electrónico brindada por el usuario, esto con el fin de tener un medio de comunicación entre el usuario y el sistema. Semestre: Dato identificador del semestre que se cursa. Información brindada por el usuario con el fin de llevar un buen control para la elaboración de un sistema personalizado. Boleta: Cadena de caracteres (10 dígitos). Información brindada por el usuario con el fin de llevar un buen control para la elaboración de un sistema personalizado. Carrera: Identificador de usuario del tipo alumno. Información brindada por el usuario con el fin de llevar un buen control para la elaboración de un sistema personalizado. Tipo de Usuario: No es un campo que puede llenar el usuario, ese campo será asignado de forma automática, esto se hizo con el fin de clasificar el acceso de los visitantes y así agilizar su ingreso al sistema. Sanciones: Este campo sólo podrá ser modificado por el administrador y servirá para hacer alguna penalización en caso de que no se acaten las reglas del Foro. La Fig. 4.5 Muestra los campos requeridos para un usuario de tipo Invitado.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 48

Fig. 4.5 Datos del Invitado

De forma similar, un usuario de tipo invitado, tendrá que brindar cierta información, con fines de control y organización dentro del Foro, algunos campos son repetitivos como: Nombre, contraseña, Correo Electrónico, Tipo de Usuario, Sanciones, que tienen las mismas funciones que en el caso del usuario de tipo Alumno. Nombre del Alumno: Hace referencia al ingreso del nombre propio junto con apellidos, esto para fines de la organización de usuarios registrados y poder así, a futuro ocupar esta información; entonces cuando el Alumno ya esta registrado, en su próxima visita, ingresara a una página personalizada. Usuario: Será un nombre con el cual, el usuario entrará al sistema, puede ser algún sobrenombre, y aceptara solamente caracteres alfanuméricos. Contraseña: Campo brindado por el visitante, hace referencia a una serie de caracteres con los cuales el sistema brindará seguridad a la cuenta del mismo. Correo Electrónico: Dirección de correo electrónico brindada por el usuario, esto con el fin de tener un medio de comunicación entre el usuario y el sistema. Ocupación: Dato solicitado por el hecho de que es un Foro educativo y permitirá filtrar el acceso al Foro; cabe resaltar que en un principio no será factor de importancia para acceder al Foro, pero consideramos que si dará un parámetro importante respecto al perfil del usuario invitado. Tipo de Usuario: No es un campo que puede llenar el usuario, ese campo será asignado de forma automática, esto se hizo con el fin de clasificar el acceso de los visitantes y así agilizar su ingreso al sistema.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 49

Sanciones: Este campo sólo podrá ser modificado por el administrador y servirá para hacer alguna penalización en caso de que no se acaten las reglas del Foro. Las penalizaciones consistirán en restringir el acceso a usuarios y/o borrar los comentarios realizados por el, esto por desobedecer las reglas impuestas, como puede ser ocupar el Foro para vender algún producto ó tratar temas ajenos a los educativos, básicamente las sanciones consistirán en prohibir al usuario entrar en un cierto periodo de tiempo al Foro ya sea algunos días y en caso de reincidir se le dará de baja, prohibiendo que se registre de nuevo. Como nota quisiéramos agregar que en algunos foros se permite dejar campos en blanco, en nuestro caso todos los campos solicitados son de carácter obligatorio ya que consideramos importante esta información y por esta razón no pedimos datos personales como: números telefónicos y direcciones, así el usuario tendrá confianza en brindar la información antes requerida.

Fig. 4.6 Temas

La Fig. 4.6 Muestra un diagrama de cómo se tratará a la información que el usuario de tipo Invitado o Alumno realice acerca del ingreso de temas, ya que si este desea ingresar algún tema, este llevará forzosamente un nombre, posteriormente una descripción de su contenido y para llevar un control de este, se establecerá una clave. Nombre del Tema: Campo llenado por el usuario (de tipo Invitado o Alumno). Algunos ya estarán definidos pero el usuario también podrá agregar nuevos temas. Descripción del tema: Hace referencia acerca de lo que va a tratar el tema. Puede considerarse como un breve resumen del tema tratado dentro de ese Foro y así el usuario elija (antes de ingresar a el) sí este es de su interés o no. Clave del Tema: Es un campo que asignará automáticamente el sistema, con el fin de llevar un control de temas, saber cuantos hay, si alguno de ellos se repite, saber si hay comentarios dentro de ellos, etcétera.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 50

Fig. 4.7 Subtemas

La Fig. 4.7 Muestra un diagrama de cómo se llevará el control de los subtemas. Clave del tema: Será la misma que se definió en lo datos del tema. Nombre del Subtema: Campo llenado por el usuario (de tipo Invitado o Alumno). Debido a que en algunos casos el tema general es muy amplio y este tiene que contar con un subtema (ejemplo: Tema general: Computadoras, Subtemas: Reparación, Mantenimiento, Actualización, etcétera). Clave del Subtema: Es un campo que asignará automáticamente el sistema, con el fin de llevar un control de los subtemas, saber cuantos hay, si alguno de ellos se repite, saber si hay comentarios dentro de ellos, etcétera. Al momento de generar un subtema se genera otra clave que esta ligada a la anterior (Clave del Tema).

Fig. 4.8 Opciones del Tema

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 51

La fig. 4.8 muestra el diagrama de tratamiento de información, para cuando algún usuario desea ingresar un nuevo tema al Foro. Clave del tema: Si se trata de un tema definido por el sistema, esta clave ya estará implícita dentro del manejo de esta información, de lo contrario se asignara una nueva clave de forma automática. Clave del Subtema: Si se trata de un subtema definido anteriormente, esta clave ya estará implícita dentro del manejo de esta información, de lo contrario se asignara una nueva clave de forma automática. Nombre de Usuario: Información requerida por el sistema con el fin de llevar un control en preguntas ó dudas y comentarios ó respuestas. Esta información es tomada del registro de usuarios ya sean usuarios del tipo Alumno o Invitado. Fecha: Este campo es llenado automáticamente por el sistema, al escribir un comentario en algún Foro este generara la fecha en la cual este fue escrito. Palabra Clave: Es la palabra que el usuario da a su tema, con el fin de facilitar la búsqueda de temas y subtemas (ejemplo: Palabra clave: Diodo, Tema: Electrónica). Tipo de comentario: Este pude ser de dos tipos:

Pregunta: Dudas que se tengan de algún tema propuesto por el sistema, o propuesto por algún usuario (invitado o usuario).

Repuesta: Respuesta emitida por un usuario ajeno al que publico el primer comentario, para dar una posible solución a alguna pregunta o simplemente comentar el tema.

También este campo nos servirá para poder vincular las preguntas con las respuestas esto nos servirá para que la información este bien clasificada y no estén preguntas en un lado y respuestas en otro, lo que se pretende es enlazar las preguntas de un tema en especifico con sus respuestas y comentarios.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 52

4.6 REGLAS DE OPERACIÓN Las reglas de operación del sistema las dividimos en dos:

Reglas para acceder al sistema. Reglas de proceso.

Las reglas para acceder al sistema: Se refieren a lo que debe acatar el usuario para poder acceder al Foro ya que si no las cumple en primer instancia se hará acreedor a una llamada de atención y si reincide se le podría denegar definitivamente el acceso y se le daría de baja del sistema. Las reglas de proceso: Son las referentes a las que el sistema seguirá tanto para el proceso de subir información como para la manera de guardar datos de usuarios.

Fig. 4.9 Reglas para Acceder al Sistema

La Fig. 4.9 muestra ciertos lineamientos que nuestro sistema tendrá para acceder a el, como se mencionó en un principio, estas reglas se mostrarán a la hora de querer ingresar al sistema. Consideramos de suma importancia que se cumplan al pie de la letra cada una de estos lineamientos para poder cumplir con el objetivo del Foro. Como se observa, las reglas de operación son pocas pero concisas ya que si detallamos más cada una de ellas, podrían caer en la exageración; y es común que los visitantes no lean a detalle textos de gran tamaño y por tanto es una perdida de tiempo detallarlas.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 53

Fig. 4.10 Reglas de Proceso La Fig. 4.10 muestra las reglas de proceso que seguiremos tanto a la hora de programar así como en el funcionamiento del sistema. Regla 1. Hacer que el Foro tenga orden, mantener la información clasificada por tema, esto por el hecho de facilitar la búsqueda de información y a su vez permitir que los usuarios realicen una secuencia, es decir siga la misma línea de investigación referente a un tema. Esto lo realizará el programa de manera automática, el Foro tendrá la capacidad de organizar la información de acuerdo a su tema. Regla 2. Forma por medio de la cual trataremos que los usuarios no utilicen este medio (de fines educativos) para convertirlo en un punto de encuentro. Regla 3. Consideramos importante no permitir el ingreso de comentarios repetidos ya que estos ocupan espacio en disco y además crean conflictos de lectura de la información. Regla 4. Esta regla nos resulta muy útil por que, existirán temas que no tengan comentarios ya sea por falta de interés o por cuestiones temporales (cuando los comentarios alojados en ese Foro tienen una temporalidad muy alta, ejemplo: Cuando se realiza algún evento importante se inicia un tema, pero una vez que termine el evento ya nadie opinara al respecto, ocupando un espacio innecesario en disco). Regla 5. Sera un chequeo constante por parte del administrador, con el fin de ubicar los temas tratados en este Foro, si son de tipo educativo o si pertenecen a temas ajenos.

CAPÍTULO 4 ESTRUCTURA DEL PROYECTO

Desarrollo de un Foro de discusión Escolar 54

Dentro de las reglas de proceso abordamos aspectos que el sistema tendrá, los chequeos hechos por el mismo o los realizados por el administrador, esto con el fin de brindar al usuario un Foro de calidad. La Fig. 4.11 muestra las actividades que un usuario de tipo Alumno o Invitado pueden realizar.

Fig. 4.11 Opciones de Usuario

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Desarrollo de un Foro de discusión Escolar 55

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Una vez terminado el análisis, el diagnóstico, la selección de la plataforma tecnológica y el haber estructurado ciertas variantes que tendrá este sistema, pasaremos al desarrollo del Foro creando las páginas que permitirán el funcionamiento del sistema planteado desde un principio. .

5.1 BASE DE DATOS

Recordemos que las bases de datos ya se habían definido en el capítulo 4, pero no de manera técnica, es decir no se dio a detalle cómo estarían constituidas, por tanto en este apartado abordaremos la métrica a seguir, cuanto se dejo de espacio para los campos ocupados, de que tipo son estos datos, etcétera. Comenzaremos por la definición de la tabla para la base de datos de los alumnos. Antes de comenzar quisiera recordar que en nuestro Foro de discusión se tendrán dos tipos de usuarios:

• Usuarios de tipo Alumno. • Usuarios de tipo Invitados.

Consideramos importante hacer esta división con el fin de poder dar al alumno de la ESIME mayor prioridad y ventajas, ya que el Foro esta pensado en ellos, pero también consideramos que es bueno permitir, que gente ajena a la institución acceda al Foro, esto dará una amplia gama de cometarios e información, cabe resaltar que estos usuarios a los cuales denominamos Invitados tendrán ciertas restricciones con el fin de evitar, que se desvirtúe la finalidad del Foro, que es tratar temas de importancia para alumnos de la ESIME.

Tabla 5.1 Datos de Alumno

Nombre de la columna Tipo de dato Acepta nulos • Nombre Char (50) No • Nombre de usuario Char(5) No • Contraseña Char(5) No • Correo Electrónico Char(50) No • Semestre nChar(1) No • Carrera nChar(3) No • Boleta nChar(10) No • Tipo de usuario nChar(10) No • Sanciones nChar(10) No

A continuación se muestra la tabla para la base de datos del invitado, de igual forma muestra el tipo de dato que se ocupó para guardar variables y que tamaño se reservó.

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Desarrollo de un Foro de discusión Escolar 56

Tabla 5.2 Datos del Invitado

Nombre de la columna Tipo de dato Acepta nulos • Nombre nChar (50) No • Nombre de usuario nChar(5) No • Contraseña nChar(5) No • Correo Electrónico nChar(50) No • Ocupación nChar(10) No • Tipo de usuario nChar(10) No • Sanciones nChar(10) No

Las siguientes tablas muestran los tipos de datos que se ocuparon para llevar a cabo la base de datos que contendrán a los temas y subtemas (de la misma forma que las anteriores sólo muestran el tipo de dato y su espacio reservado):

Tabla 5.3

Datos del Tema Nombre de la columna Tipo de dato Acepta nulos

• Nombre del tema nChar (30) No • Descripción del tema nChar(50) No • Clave del tema nChar(10) No

Tabla 5.4

Datos del Subtema Nombre de la columna Tipo de dato Acepta nulos

• Nombre del subtema nChar (30) No • Clave del subtema nChar(10) No • Clave del tema nChar(10) No

Tabla 5.5

Opciones del Subtema Nombre de la columna Tipo de dato Acepta nulos

• Clave del tema nChar (10) No • Clave del subtema nChar(10) No • Nombre de usuario nChar(5) No • Fecha nChar(6) No • Palabra Clave nChar(15) No • Opiniones nChar(350) No • Tipo de comentario nChar(5) No

Como se observa en las tablas aparte del nombre de la columna nos dice el tipo de dato, esto se refiere a la manera de cómo se esta definiendo este ( si es de tipo carácter, flotante, entero, etcétera) y cuanto es su valor númerico, este aparece entre parentesis y se refiere a la cantidad de caracteres que puede contener. También la tabla anterior específica si acepta nulos, esto es si permite al ausuario dejar campos en blanco; como se observa en ningun caso se permite dejar campos vacios, por que como ya se definió en capítulos anteriores los datos requerios son obligatorios para un buen control de la página.

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Desarrollo de un Foro de discusión Escolar 57

Otro factor importante que podemos mencionar, hace referencia a los nombres de usuarios, contraseñas y nombres de personas,ya que no esta pemitido el duplicado de valores, esto con el fin de no admitir que un usuario se registre varias veces y que otro tenga problemas para el acceso a la página. Esto se logra con una funcion que tiene este generador de base de datos al cual llama “Primary Key” , la cual es una funcion que compara cadenas con el fin de controlar cadenas ingresadas del mismo tipo. El código de esta conexión a la base de datos, tanto para los registros de los alumnos como de inviados, se observa en el apéndice A, donde se muestra tanto la interfaz del usuario hecha en HTML, asi como la programación para dicha conexión la cual se muestra en los apartados aspx.cs la cual se elaboro en el lenguaje c#. En el apéndice A, en la seccion de Datos del alumno asi como en Datos del invitado se observa el código el cual muestra el llenando de los campos de datos. Lo primero que hace es realizar una conexión a la base de datos, después llena cada uno de los campos requeridos, guarda esa información y cierra la conexión. Una vez que están llenos los datos y han sido enviados a esta base, manda al usuario a la portada del Foro. El llenado de los datos de registro de usuario ya sea invitado o alumno, se realiza de una forma segura tanto para el, como para el mismo Foro, esto debido a que no se podrá duplicar datos por que la base de datos cuenta con una función llamada Primary Key es decir la base de datos esta definida de tal manera que no permite que existan valores en la misma casilla que coincidan para varios usuarios. Además que el dejar espacios en blanco no esta permitido (como se muestra en el apéndice A en la sección de datos de invitado ó de alumno aspx) por que cada casilla tiene un campo de validación, esto con el fin de no permitir que el usuario ingrese valores erróneos (ejemplo: un numero de boleta con mas dígitos de los habituales trae consigo un mensaje de error). También como se muestra en el apéndice A, este sistema brinda seguridad para el manejo de los datos de usuario (alumno o invitado) ya que al abrir una conexión a la base de datos, esta inmediatamente se cierra después de su uso, lo cual permite que los datos siempre estén guardados y nunca se pueda accesar a ellos por medio de internet.

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Desarrollo de un Foro de discusión Escolar 58

5.2 INTERFAZ DEL USUARIO Una vez que ya se definieron las conexiones a la base de datos, solo queda mostrar la interfaz del usuario, es decir la parte gráfica que ve el usuario en internet. Comenzaremos por mostrar la pantalla de inicio del Foro como lo muestra la Fig. 5.1 que por ser la primera página que aparece al ejecutar el sistema llamaremos “Portada”. La Portada cuenta con dos botones:

• Usuarios Registrados: Se refiere a los usuarios que ya cuentan con un registro previo, por lo cual pasarían a la página de validación como lo muéstrala Fig. 5.5.

• Usuarios no Registrados: Son aquellos usuarios que no cuentan con un registro previo y si desean ingresar al sistema tienen que darse de alta en la base de datos.

Fig. 5.1 Portada

Cuando se ingresa por primera vez al sistema, no se cuenta con un registro por lo tanto, los visitantes que deseen hacerlo deberán oprimir el botón de Usuarios no Registrados. Una vez que sea a elegido esta opción, se pasara a la página de Reglas del Foro, como lo muestra la Fig. 5.2 en donde se explica a los usuarios, los lineamientos que tiene que seguir para poder acceder al Foro, estas reglas tendrán que ser aceptadas ya que de lo contrario no podrá entrar ala página de registro y por lo tanto le será imposible el acceso al sistema, estas reglas son las mismas que se plantearon en el capítulo 4.

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Desarrollo de un Foro de discusión Escolar 59

Fig. 5.2 Reglas de Uso

La siguiente figura (fig. 5.3) muestra la elección del tipo de usuario, se hace con el fin de mandarlo a la página que le corresponde, por que dependiendo del tipo de usuario que es, será el tipo de información que se le pedirá; por lo tanto mandará al usuario Alumno a una página y al Invitado a otra (Ver apéndice A Reglas.aspx).

Fig. 5.3 Tipo de Usuario

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Desarrollo de un Foro de discusión Escolar 60

Fig. 5.4 Datos del Usuario Una vez elegido el tipo de usuario el sistema avanzara a la siguiente página, el registro de información. La Fig. 5.4 muestra cuales son los campos que se solicitan al usuario para su registro (según se manejo en la Tabla 5.1 y de forma similar si se eligiera la opción de Invitado se piden los datos de la Tabla 5.2). Para fines prácticos solo se muestra la página que solicita los datos del Alumno (si se desea entender a fondo como es este proceso se puede ver el apéndice A en la sección de datos del Invitado o Alumno aspx). Esta página tiene textos de validación es decir, no permite dejar espacios en blanco, si el usuario deja algún campo en blanco el sistema muestra un texto indicando cual fue el error, además de contar con un foco, es decir el sistema coloca al cursor en la casilla que presenta error (ver apéndice A sección Datos Alumno/Initado.aspx). Una vez completado el registro el sistema regresara a la página de inicio (fig. 5.1 Portada) entonces se elegirá la opción de usuario registrado (ahora si se cuenta con un registro previo) y nos mandara a la página de validación como lo muestra la Fig. 5.5 en donde pedirá el nombre de usuario y contraseña que se dio en la parte de registro. Este proceso se realiza mediante una conexión a la base de datos, el sistema busca el usuario y una vez que lo encuentra compara ambos el escrito en el campo y el guardado en la base de datos, lo mismo hace con la contraseña, si estos campos coinciden permite el acceso a la sección respectiva (ver apéndice A Entrada.aspx.cs).

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Desarrollo de un Foro de discusión Escolar 61

Fig. 5.5 Validación de Usuario

Una vez que el programa validó al usuario (comprobó que el usuario este registrado y que el nombre de Usuario y Contraseña son correctos), el mismo programa tendrá la capacidad de saber que tipo de usuario es y mandarlo ala página que le corresponda, además de tener la capacidad de tener una sección para cada invitado mostrando el nombre del usuario y últimos mensajes. La Fig. 5.6 muestra la ventana que se mostrará para un usuario de tipo alumno.

Fig. 5.6 Sección de Alumno

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Desarrollo de un Foro de discusión Escolar 62

Una vez que se entró a la sección de alumno se cuenta con opciones como son: Modificación de datos: Esta opción se utiliza con el fin de poder actualizar datos (ejemplo: cuando el usuario avance de semestre ó simplemente quiera modificar su contraseña, nombre, etcétera). Materias: Se podrán agregar temas, consultar ó dejar comentarios. Ver mensajes: Con este control se verán los comentarios, dudas o sugerencias que algún usuario haya dejado en el Foro. La Fig. 5.6 muestra la página de temas, en donde se podrá agregar algún tema o comentario sobre los temas existentes, como se mencionó en la parte de análisis, se pretende que la información se encuentre de forma ordenada, por lo cual esta se encontrara clasificada de forma que si se es de ICE, ICA o IE esta página contara con las materias clasificadas por semestre. En este caso se muestra la pantalla de ICE en la opción de primer semestre.

Fig. 5.7 Temas

Por ultimo se tiene una opción de Administrador Fig. 5.7 que se encuentra restringida, la manera de entrar a esta opción es por medio de la validación Fig. 5.5, esto la hará por un nombre de usuario y contraseña única que solo sabrá el administrador, esto con el fin de llevar el control del Foro como: el poder ver cuantos usuarios se tienen, impartir sanciones a los usuarios que no acaten las reglas, también para poder dar de baja a usuarios que incurran en faltas graves. Esta opción hace bastante fácil la administración de la página ya que esto se podrá realizar desde cualquier lugar solo basta acceder a la página, sin necesidad de recurrir a los códigos fuentes (ver apéndice A sección Administrador.aspx).

CAPÍTULO 5 DESARROLLO DEL FORO DE DISCUSIÓN ESCOLAR

Desarrollo de un Foro de discusión Escolar 63

Fig. 5.8 Página del Administrador

CONCLUSIONES

Desarrollo de un Foro de discusión Escolar 64

CONCLUSIONES

Podemos decir que para desarrollar un sistema como lo es un “Foro de discusión montado en internet”, es importante realizar un análisis, ya que este es la parte fundamental del desarrollo y a partir de el se puede ir planeando el mismo. En los desarrollos de sistemas que existen en la web algunos son poco planeados, básicamente tratan de dar una buena presentación a la página sin tomar factores importantes que el usuario realmente requiera, ya que el éxito de cualquier página de internet se basa en que ésta cumpla con sus expectativas y le sea una herramienta útil. Nuestro Foro de Discusión es un sistema planeado ya que se parte de una metodología de desarrollo, la cual tiene que cumplir pasos, que van desde un simple análisis de las herramientas que se necesitan para el control de este, una planeación que requiere un sistema como el nuestro y finalmente una programación que lo pondrá en marcha. Esta programación se hizo después de una previa planeación y recopilación de información acerca de las necesidades que tienen los usuarios para así poder delimitar nuestro Foro, tanto en reglas de operación como en los alcances de este. Respecto al marco teórico que se mostro en nuestro trabajo consideramos que es suficiente para que se extienda a fondo la manera de planear un sistema cualquiera, así como explicarle al lector como funciona una pagina en internet. También de explicarle la forma de programar un sistema como este ocupando Visual Studio, plataforma potente, útil y eficaz. Para lograr que una página sea exitosa, se debe tratar de hacerla llegar a la mayor cantidad de personas posible, y para ello, debe ser desarrollada utilizando criterios de diseño que sean compatibles en todas las plataformas. Esto es importante ya que en muchas ocasiones nos damos cuenta que al querer ingresar a una página está simplemente nos despliega un error al cargar la pagina, o debido al formato que tienen estas, las imágenes muestran un recuadro con una X en lugar de la imagen. El desarrollo en esta plataforma (Visual Studio), nos da una gran ventaja sobre los demás sistemas, debido a que gran porcentaje de usuarios de internet, tienen un sistema operativo Windows desarrollado por Microsoft, misma empresa que desarrolla Visual Studio, por tanto todas aquellos usuarios que deseen ingresar a nuestro sistema, podrán hacerlo sin tener esos problemas de compatibilidad de plataforma. Los objetivos perseguidos con este trabajo han sido completados en su mayoría, este Foro aun no es montado en internet por lo cual el objetivo de brindar una herramienta de apoyo al estudiante de la ESIME aun no se cumple, pero por otro lado este trabajo nos permitió afinar las habilidades de análisis y razonamiento de programación del entorno Visual Studio por lo que ese objetivo particular sí se llevo acabo. Para terminar quisiéramos agregar que nuestro Foro será de gran ayuda para los alumnos de la ESIME ya que este proporcionará información y un medio de gran impacto a la comunidad así como permitirle al usuario ver información referente a las materias de la

CONCLUSIONES

Desarrollo de un Foro de discusión Escolar 65

escuela desde cualquier parte donde se encuentre, simplemente entrando a internet lo que le permite un fácil acceso.

APÉNDICE A

Desarrollo de un Foro de discusión Escolar I

APENDICE

Código del Foro de discusión _________________________________________________________________________

Portada .aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Portada.aspx.cs" Inherits="_1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body style="background-color: #ffffff; background-image: url(Imagenes/azul.jpg);" bgcolor="#ffffff"> <form id="form1" runat="server"> <div> </div> <table style="width: 129pt; height: 75px;"> <tr> <td style="width: 74px; height: 19px"> & asp:Image ID="Image1" runat="server" Height="121px" ImageUrl="~/Imagenes/ipn.jpg" Width="89px" style="background-color: transparent" /></td> <td style="width: 297px; height: 147px"> <asp:Label ID="Label3" runat="server" Font-Bold="True" Font-Size="XX-Large" ForeColor="Firebrick" Style="position: static" Text="INSTITUTO POLITECNICO NACIONAL" Width="609px"></asp:Label><br /> <asp:Label ID="Label4" runat="server" Font-Bold="True" Font-Size="Large" ForeColor="Green" Height="23px" Text=" Escuela superior de ingenieria mecanica y Electrica" Width="468px"></asp:Label><br /> <br /> &nbsp;&nbsp; <asp:Label ID="Label5" runat="server" Font-Bold="True" Font-Size="X-Large" ForeColor="Black" Height="32px" Style="left: 247px; position: absolute; top: 134px" Text="FORO DE DISCUSION ESCOLAR" Width="442px"></asp:Label>

APÉNDICE A

Desarrollo de un Foro de discusión Escolar II

</td> <td style="background-color: transparent; height: 19px;"> <asp:Image ID="Image2" runat="server" ImageUrl="~/Imagenes/esime.jpg" Height="120px" Width="131px"/> </td> </tr> <tr> <td style="width: 74px; height: 149px"> </td> <td style="width: 10px; height: 149px"> <asp:Label ID="Label1" runat="server" Font-Italic="True" Font-Size="Larger" Height="67px" Text="Este es un Foro de discusion escolar para los alumnos de La Escuela Superior de Ingenieria Mecanica y Electrica" Width="459px"></asp:Label></td> <td style="width: 103px; height: 149px"> </td> </tr> <tr> <td style="width: 60px; height: 114px"> <asp:LinkButton ID="LinkButton1" runat="server" BackColor="Transparent" Font-Size="Medium" ForeColor="Black" PostBackUrl="~/Entrada.aspx" Width="207px">USUARIOS REGISTRADOS</asp:LinkButton></td> <td style="width: 60px; height: 114px"> & </td> <td style="width: 60px; height: 114px"> <asp:LinkButton ID="LinkButton2" runat="server" ForeColor="Black" PostBackUrl="~/Reglas.aspx" Width="219px">USUARIOS NO REGISTRADOS</asp:LinkButton></td> </tr> </table> </form> </body> </html>

Tipo de Usuario.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TipodeUsuario.aspx.cs" Inherits="Tipo_de_usuario" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title>

APÉNDICE A

Desarrollo de un Foro de discusión Escolar III

</head> <body style="background-image: url(Imagenes/azul.jpg)"> <form id="form1" runat="server"> <div style="background-image: url(Imagenes/azul.jpg)"> <table style="width: 129px"> <tr> <td style="width: 1300px"> <asp:Image ID="Image1"runat="server" Height="108px" ImageUrl="~/Imagenes/ipn.jpg" Width="81px" </td> <td style="width: 555px"> <asp:Label ID="Label3" runat="server" Font-Bold="True" Font-Size="XX-Large" ForeColor="Firebrick" Text="INSTITUTO POLITECNICO NACIONAL" Width="600px"></asp:Label><br /> ;<br /> <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="X-Large" ForeColor="Green" Text="FORO DE DISCUSION" Width="246px"></asp:Label> </td> <td style="width: 306px"> <asp:Image ID="Image2" runat="server" ImageUrl="~/Imagenes/esime.jpg" /> </td> </tr> <tr> <td style="height: 160px"> </td> <td style="height: 160px; width: 555px;"> <asp:Label ID="Label2" runat="server" Font-Size="Large" Text="Es necesario para tu registro que escojas un tipo de usuario"></asp:Label> br /> asp:DropDownList ID="TipodeUsuario" runat="server" OnSelectedIndexChanged="TipodeUsuario_SelectedIndexChanged"> <asp:ListItem></asp:ListItem> <asp:ListItem Value="Alumno"></asp:ListItem> <asp:ListItem Value="Invitado"></asp:ListItem> </asp:DropDownList>&nbsp; <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TipodeUsuario" ErrorMessage="Elija una opcion" SetFocusOnError="True"></asp:RequiredFieldValidator></td> <td style="height: 160px">

APÉNDICE A

Desarrollo de un Foro de discusión Escolar IV

</td> </tr> <tr> <td> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Aceptar" /></td> <td style="width: 555px"> </td> <td> &nbsp;<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Regresar" /></td> </tr> </table> </div> </form> </body> </html>

Tipo de usuario aspx.cs

using System; using System.Data; using System.Configuration; using System.Collections; using System.web; using System.web.Security; using System.web.UI; using System.web.UI.WebControls; using System.web.UI.WebControls.WebParts; using System.web.UI.HtmlControls; public partial class Tipo_de_usuario : System.web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button2_Click(object sender, EventArgs e) { Server.Transfer("Portada.aspx"); } protected void Button1_Click(object sender, EventArgs e) { Server.Transfer("Reglass.aspx");

APÉNDICE A

Desarrollo de un Foro de discusión Escolar V

} protected void TipodeUsuario_SelectedIndexChanged(object sender, EventArgs e) { if (TipodeUsuario.SelectedItem.Value == "Alumno") Server.Transfer("DatosUsuario.aspx"); else Server.Transfer("DatosInvitado.aspx"); } }

Reglas.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Reglas.aspx.cs" Inherits="Reglass" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body style="background-image: url(Imagenes/azul.jpg)"> <form id="form1" runat="server"> <div> <table style="width: 933px; height: 481px"> <tr> <td style="width: 1348px; height: 47px"> <asp:Label ID="Label1" runat="server" Font-Size="Large" Text="REGLAS DE USO DEL FORO" Width="247px"></asp:Label></td> </tr> <tr> <td style="height: 72px"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; <asp:ListBox ID="ListBox1" runat="server" Font-Italic="True" Font-Overline="True" Font-Size="Small" Height="84px" style="background-color: transparent"> <asp:ListItem Value="1.-Este Foro es solo con fines educativos sin fines de lucro queda prohibido anunciar cualquier tipo de producto o servicio.">1.-Este Foro es solo con fines educativos sin fines de lucro queda prohibido anunciar cualquier tipo de producto o servicio.</asp:ListItem> <asp:ListItem Value="2.-Esta prohibido el uso de groserias o poner material obsceno en la pagina "></asp:ListItem>

APÉNDICE A

Desarrollo de un Foro de discusión Escolar VI

<asp:ListItem Value="3.-No se pude dejar comentarios ajenos a lo fines educativos "></asp:ListItem> <asp:ListItem Value="4.-Si se se hace caso omiso de las reglas del Foro se impedir&#225; acceder nuevamente al mismo"></asp:ListItem> </asp:ListBox> <br /> <br /> <asp:Label ID="Label2" runat="server" Text="Para acceder a este Foro es necesario aceptar las condiciones de uso " Width="464px"></asp:Label></td> </tr> <tr> <td> &nbsp;<br /> <br /> &nbsp;<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="No Acepto" /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Acepto" /> </td> </tr> </table> </div> </form> </body> </html>

Reglas aspx.cs

using System; using System.Data; using System.Configuration; using System.Collections; using System.web; using System.web.Security; using System.web.UI; using System.web.UI.WebControls; using System.web.UI.WebControls.WebParts; using System.web.UI.HtmlControls;

APÉNDICE A

Desarrollo de un Foro de discusión Escolar VII

public partial class Reglass : System.web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { Server.Transfer("TipodeUsuario.aspx"); } protected void Button2_Click(object sender, EventArgs e) { Server.Transfer("Portada.aspx"); } }

Datos del Alumno .aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DatosUsuario.aspx.cs" Inherits="Datos_Usuario" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Datos del Usuario</title> <script language="javascript" type="text/javascript"> // <!CDATA[ function Reset1_onclick() { } // ]]> </script> </head> <body > <form id="form1" runat="server"> <div style="background-color: transparent; background-image: url(Imagenes/134_1920x1200.jpg);"> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ForoConnectionString2 %>" SelectCommand="SELECT insert* FROM [Invitado]"> </asp:SqlDataSource> <br />

APÉNDICE A

Desarrollo de un Foro de discusión Escolar VIII

<br /> <br /> <asp:Label ID="Label1" runat="server" Font-Size="Large" Text="DATOS DEL USUARIO" Width="211px"></asp:Label> <table> <tr> <td style="width: 186px; height: 35px"> <asp:Label ID="Label2" runat="server" Text="Nombre"></asp:Label></td> <td style="width: 448px; height: 35px"> <asp:TextBox ID="Nombre" runat="server" Width="440px"></asp:TextBox></td> <td style="width: 409px; height: 35px"> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="Nombre" ErrorMessage="Es necesario dar tu Nombre" SetFocusOnError="True"></asp:RequiredFieldValidator></td> </tr> <tr> <td style="width: 186px; height: 37px"> <asp:Label ID="Label3" runat="server" Text="Semetre"></asp:Label></td> <td style="width: 448px; height: 37px"> <asp:DropDownList ID="Semestre" runat="server"> <asp:ListItem Value="1">1 Semetre</asp:ListItem> <asp:ListItem Value="2">2 Semetre</asp:ListItem> <asp:ListItem Value="3">3 Semetre</asp:ListItem> <asp:ListItem Value="4">4 Semetre</asp:ListItem> <asp:ListItem Value="5">5 Semetre</asp:ListItem> <asp:ListItem Value="6">6 Semetre</asp:ListItem> <asp:ListItem Value="7">7 Semetre </asp:ListItem> <asp:ListItem Value="8">8 Semetre</asp:ListItem> <asp:ListItem Value="9">9Semetre</asp:ListItem> </asp:DropDownList></td> <td style="width: 409px; height: 37px"> </td> </tr> <tr> <td style="width: 186px; height: 38px"> <asp:Label ID="Label4" runat="server" Text="Carrera"></asp:Label></td> <td style="width: 448px; height: 38px"> <asp:DropDownList ID="Carrera" runat="server"> <asp:ListItem>ICE</asp:ListItem> <asp:ListItem>ICA</asp:ListItem> <asp:ListItem>IE</asp:ListItem> </asp:DropDownList></td> <td style="width: 409px; height: 38px"> </td>

APÉNDICE A

Desarrollo de un Foro de discusión Escolar IX

</tr> <tr> <td style="width: 186px; height: 38px"> <asp:Label ID="Label8" runat="server" Text="Boleta"></asp:Label></td> <td style="width: 448px; height: 38px"> <asp:TextBox ID="Boleta" runat="server" Width="93px"></asp:TextBox></td> <td style="width: 409px; height: 38px"> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="Boleta" ErrorMessage="La boleta es un valor numerico" SetFocusOnError="True"></asp:RequiredFieldValidator></td> </tr> <tr> <td style="width: 186px; height: 37px"> <asp:Label ID="Label5" runat="server" Text="Correo Electronico"></asp:Label></td> <td style="width: 448px; height: 37px"> <asp:TextBox ID="CorreoElectronico" runat="server" Width="306px"></asp:TextBox></td> <td style="width: 409px; height: 37px"> </td> </tr> <tr> <td style="width: 186px; height: 37px"> <asp:Label ID="Label7" runat="server" Text="Nombre de usuario"></asp:Label></td> <td style="width: 448px; height: 37px"> <asp:TextBox ID="Usuario" runat="server"></asp:TextBox></td> <td style="width: 409px; height: 37px"> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="Usuario" ErrorMessage="Es necesario dar tu Nombre de Uuario" SetFocusOnError="True"></asp:RequiredFieldValidator></td> </tr> <tr> <td style="width: 186px; height: 37px"> <asp:Label ID="Label6" runat="server" Text="Contraseña"></asp:Label></td> <td style="width: 448px; height: 37px"> <asp:TextBox ID="ClaveUsuario" runat="server" TextMode="Password"></asp:TextBox></td> <td style="width: 409px; height: 37px"> </td> </tr> <tr> <td style="width: 186px; height: 37px">

APÉNDICE A

Desarrollo de un Foro de discusión Escolar X

<asp:Label ID="Label9" runat="server" Text="Confirma Contraseña"></asp:Label></td> <td style="width: 448px; height: 37px"> <asp:TextBox ID="ComparaContraseña" runat="server" TextMode="Password"></asp:TextBox></td> <td style="width: 409px; height: 37px"> <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="ClaveUsuario" ControlToValidate="ComparaContraseña" ErrorMessage="La contraseña no coincide"></asp:CompareValidator></td> </tr> <tr> <td style="width: 186px; height: 146px"> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="Enviar" /> &nbsp; </td> <td style="width: 448px; height: 146px; background-color: transparent;"> <asp:TextBox ID="Mensajes" runat="server" Width="317px" OnTextChanged="Mensajes_TextChanged"></asp:TextBox></td> <td style="width: 409px; height: 146px"> <input id="Reset1" type="reset" value="Eliminar" onclick="return Reset1_onclick()" /></td> </tr> </table> <br /> <br /> </div> </form> </body> </html>

Datos del Alumno aspx.cs

using System; using System.Data; using System.Configuration; using System.Collections; using System.web; using System.web.Security; using System.web.UI; using System.web.UI.WebControls; using System.web.UI.WebControls.WebParts; using System.web.UI.HtmlControls; using System.Data.SqlClient;

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XI

public partial class Datos_Usuario : System.web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click1(object sender, EventArgs e) { SqlConnection conexion = new SqlConnection(SqlDataSource1.ConnectionString.ToString()); SqlCommand cmd = new SqlCommand("insert into Usuarios (Usuario,Nombre,Password,CorreoElectronico,Carrera,Semestre,Boleta,TipoUsuario) values (@Usuario,@Nombre,@Password,@CorreoElectronico,@Carrera,@Semestre,@Boleta,'Alumno')", conexion); cmd.Parameters.AddWithValue("@Usuario", Usuario.Text); cmd.Parameters.AddWithValue("@Nombre", Nombre.Text); cmd.Parameters.AddWithValue("@Password", ClaveUsuario.Text); cmd.Parameters.AddWithValue("@CorreoElectronico", CorreoElectronico.Text); cmd.Parameters.AddWithValue("@Carrera", Carrera.Text); cmd.Parameters.AddWithValue("@Semestre", Semestre.SelectedItem.Value.ToString()); cmd.Parameters.AddWithValue("@Boleta", Boleta.Text); cmd.Connection.Open(); try { cmd.ExecuteNonQuery(); Mensajes.Text = "Agregado"; } catch (SqlException exc) { Mensajes.Text = exc.Message.ToString(); } cmd.Connection.Close(); Server.Transfer("portada.aspx"); } protected void Mensajes_TextChanged(object sender, EventArgs e) { }}

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XII

Datos del Invitado aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DatosInvitado.aspx.cs" Inherits="DatosInvitado" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> &nbsp;<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ForoConnectionString2 %>" SelectCommand="SELECT * FROM [Invitado]"></asp:SqlDataSource> <table> <tr> <td style="width: 186px; height: 35px"> <asp:Label ID="Label2" runat="server" Text="Nombre"></asp:Label></td> <td style="width: 448px; height: 35px"> <asp:TextBox ID="Nombre" runat="server" Width="440px"></asp:TextBox></td> <td style="width: 409px; height: 35px"> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="Nombre" ErrorMessage="Es necesario dar tu Nombre" SetFocusOnError="True"></asp:RequiredFieldValidator></td> </tr> <tr> <td style="width: 186px; height: 35px"> <asp:Label ID="Label3" runat="server" Text="Ocupacion"></asp:Label></td> <td style="width: 448px; height: 35px"> <asp:TextBox ID="Ocupacion" runat="server" Width="440px"></asp:TextBox></td> <td style="width: 409px; height: 35px"> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="Ocupacion" ErrorMessage="Es necesario que des tu Ocupacion" SetFocusOnError="True"></asp:RequiredFieldValidator></td> </tr> <tr> <td style="width: 186px; height: 37px"> <asp:Label ID="Label5" runat="server" Text="Correo Electronico"></asp:Label></td> <td style="width: 448px; height: 37px">

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XIII

<asp:TextBox ID="CorreoElectronico" runat="server" Width="306px"></asp:TextBox></td> <td style="width: 409px; height: 37px"> </td> </tr> <tr> <td style="width: 186px; height: 37px"> <asp:Label ID="Label7" runat="server" Text="Nombre de usuario"></asp:Label></td> <td style="width: 448px; height: 37px"> <asp:TextBox ID="Usuario" runat="server"></asp:TextBox></td> <td style="width: 409px; height: 37px"> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="Usuario" ErrorMessage="Es necesario dar tu Nombre de Uuario" SetFocusOnError="True"></asp:RequiredFieldValidator></td> </tr> <tr> <td style="width: 186px; height: 37px"> <asp:Label ID="Label6" runat="server" Text="Clave del Usuario"></asp:Label> </td> <td style="width: 448px; height: 37px"> &nbsp;<asp:TextBox ID="ClaveUsuario" runat="server" TextMode="Password"></asp:TextBox></td> </tr> <tr> <td style="width: 186px; height: 37px"> <asp:Label ID="Label4" runat="server" Text="Vuelve a escribir contraseña"></asp:Label></td> <td style="width: 448px; height: 37px"> <asp:TextBox ID="ValidacionContraseña" runat="server" TextMode="Password"></asp:TextBox> </td> <td style="width: 409px; height: 37px"> <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="ClaveUsuario" ControlToValidate="ValidacionContraseña" ErrorMessage="Las contraseñas no coinciden"></asp:CompareValidator></td> </tr> <tr> <td style="width: 186px; height: 146px"> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Enviar" />&nbsp; </td> <td style="width: 448px; height: 146px; background-color: transparent">

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XIV

<asp:TextBox ID="Mensaje" runat="server" Width="350px"></asp:TextBox></td> <td style="width: 409px; height: 146px"> <input id="Reset1" type="reset" value="Eliminar" /></td> </tr> </table> </div> </form> </body> </html>

Datos del Invitado aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.web; using System.web.Security; using System.web.UI; using System.web.UI.WebControls; using System.web.UI.WebControls.WebParts; using System.web.UI.HtmlControls; using System.Data.SqlClient; public partial class DatosInvitado : System.web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { SqlConnection conexion = new SqlConnection(SqlDataSource1.ConnectionString.ToString()); SqlCommand cmd = new SqlCommand("insert into Invitado (Nombre,Ocupacion,CorreoElectronico,Usuario,Password,TipoUsuario) values (@Nombre,@Ocupacion,@CorreoElectronico,@Usuario,@Password,'Invitado')", conexion); cmd.Parameters.AddWithValue("@Usuario", Usuario.Text); cmd.Parameters.AddWithValue("@Nombre", Nombre.Text); cmd.Parameters.AddWithValue("@Password", ClaveUsuario.Text); cmd.Parameters.AddWithValue("@CorreoElectronico", CorreoElectronico.Text); cmd.Parameters.AddWithValue("@Ocupacion", Ocupacion.Text); cmd.Connection.Open(); try

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XV

{ cmd.ExecuteNonQuery(); Mensaje.Text = "Agregado"; } catch (SqlException exc) { Mensaje.Text = exc.Message.ToString(); } cmd.Connection.Close(); Server.Transfer("portada.aspx"); } }

Entrada.aspx

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Entrada.aspx.cs" Inherits="hoja2" Title="Untitled Page" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> &nbsp; &nbsp;&nbsp;<asp:Login ID="Entrada" runat="server" Height="127px" Width="246px" BackColor="#FFFFC0" BorderColor="#FFDFAD" BorderPadding="4" BorderStyle="Groove" BorderWidth="1px" FailureText="Contraseña invalida" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#333333" LoginButtonText="Entrar" OnAuthenticate="Entrada_Authenticate" PasswordLabelText="contraseña" TextLayout="TextOnTop" TitleText="Bienvenido al sistema" UserNameLabelText="Usuario" RememberMeText="Recordar la proxima vez." DestinationPageUrl="~/Tema.aspx"> <TitleTextStyle BackColor="#990000" Font-Bold="True" Font-Size="0.9em" ForeColor="White" /> <InstructionTextStyle Font-Italic="True" ForeColor="Black" /> <TextBoxStyle Font-Size="0.8em" /> <LoginButtonStyle BackColor="White" BorderColor="#CC9966" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#990000" /> </asp:Login> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ForoConnectionString2 %>" SelectCommand="SELECT * FROM [Invitado]" ></asp:SqlDataSource>

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XVI

Master page de Entrada.aspx

</asp:Content> <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body style="background-image: url(Imagenes/134_1920x1200.jpg)" > <form id="form1" runat="server"> <div> &nbsp; <table style="width: 933px; height: 403px"> <tr> <td style="width: 144px"> &nbsp;<asp:Image ID="Image1" runat="server" ImageUrl="~/Imagenes/ipn.jpg" Height="140px" Width="120px" ToolTip="IPN" /> </td> <td style="text-align: left"> <asp:Label ID="Label3" runat="server" Font-Bold="True" Font-Size="XX-Large" ForeColor="Firebrick" Style="position: static" Text="INSTITUTO POLITECNICO NACIONAL" Width="609px"></asp:Label> <asp:Label ID="Label4" runat="server" Font-Bold="True" Font-Size="Large" ForeColor="Green" Height="23px" Text=" Escuela superior de ingenieria mecanica y Electrica" Width="457px"></asp:Label> <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="X-Large" ForeColor="Black" Height="32px" Style="left: 297px; position: absolute; top: 139px" Text="FORO DE DISCUSION ESCOLAR" Width="442px"></asp:Label> </td> <td> <asp:Image ID="Image2" runat="server" ImageUrl="~/Imagenes/esime.jpg" /> </td> </tr> <tr> <td style="width: 144px; height: 359px;">

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XVII

&nbsp;&nbsp;&nbsp; </td> <td style="width: 539px; height: 359px;"> <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> </asp:contentplaceholder> </td> <td style="height: 359px; width: 172px;"> </td> </tr> <tr> <td style="width: 144px; height: 31px;"> </td> <td style="width: 539px; height: 31px;"> </td> <td style="height: 31px; width: 172px;"> </td> </tr> </table> </div> </form> </body> </html>

Entrada.aspx.cs

using System; using System.Data; using System.Configuration; using System.Collections; using System.web; using System.web.Security; using System.web.UI; using System.web.UI.WebControls; using System.web.UI.WebControls.WebParts; using System.web.UI.HtmlControls; using System.Data; using System.Data.SqlClient; public partial class hoja2 : System.web.UI.Page { protected void Entrada_Authenticate(object sender, AuthenticateEventArgs e) { string Password = "", Tipo = "",Nombre = ""; if (Entrada.UserName == "***" && Entrada.Password == "**") Server.Transfer("Administrador.aspx");

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XVIII

else { SqlConnection conexion = new SqlConnection(SqlDataSource1.ConnectionString.ToString()); SqlCommand cmd = new SqlCommand(string.Format("select password,TipoUsuario,Nombre from Usuarios where Usuario = '{0}' ", Entrada.UserName), conexion); cmd.Connection.Open(); SqlDataReader Busca; Busca = cmd.ExecuteReader(); if (Busca.Read()) { if (!Busca.IsDBNull(0)) { Password = Busca.GetString(0); Tipo = Busca.GetString(1); Nombre = Busca.GetString(2); } } cmd.Connection.Close(); if (Entrada.Password.Trim() == Password.Trim()) { string Pagina = string.Format("Alumnos.aspx?Nombre={0}",Nombre); Server.Transfer(Pagina.ToString()); } else { SqlConnection conexion1 = new SqlConnection(SqlDataSource1.ConnectionString.ToString()); SqlCommand cmd1 = new SqlCommand(string.Format("select password,TipoUsuario,Nombre from Invitado where Usuario = '{0}' ", Entrada.UserName), conexion); cmd1.Connection.Open(); SqlDataReader Busca1; Busca1 = cmd1.ExecuteReader(); if (Busca1.Read()) { if (!Busca1.IsDBNull(0)) { Password = Busca1.GetString(0); Tipo = Busca1.GetString(1); Nombre = Busca1.GetString(2); } } cmd.Connection.Close();

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XIX

if (Entrada.Password.Trim() == Password.Trim()) { string Pagina = string.Format("Invitado.aspx?Nombre={0}",Nombre); Server.Transfer(Pagina.ToString()); } } } } protected void Page_Load(object sender, EventArgs e) { }

}

Administrador.aspx.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Administrador.aspx.cs" Inherits="Administrador" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body > <form id="form1" runat="server"> <table style="width: 320px"> <tr> <td style="width: 50px"> <asp:Image ID="Image1" runat="server" ImageUrl="~/Imagenes/ipn.jpg"/></td> <td style="width: 424px"> <asp:Label ID="Label3" runat="server" Font-Bold="True" Font-Size="X-Large" ForeColor="Maroon" Height="19px" Style="direction: ltr" Text="INTITUTO POLITECNICO NACIONAL" Width="431px"></asp:Label><br /> <br /> <asp:Label ID="Label4" runat="server" Font-Bold="True" Font-Size="Large" ForeColor="Green" Height="23px" Text=" Escuela superior de ingenieria mecanica y Electrica" Width="460px"></asp:Label><br /> <asp:Label ID="Label2" runat="server" Font-Bold="True" Font-Size="X-Large" ForeColor="Black"

APÉNDICE A

Desarrollo de un Foro de discusión Escolar XX

Height="32px" Text="FORO DE DISCUSION ESCOLAR" Width="397px"></asp:Label></td> <td style="width: 172px"> <asp:Image ID="Image2" runat="server" ImageUrl="~/Imagenes/esime.jpg" /></td> </tr> <tr> <td style="width: 50px; height: 50px;"> </td> <td style="width: 424px"> <asp:TextBox ID="TextBox1" runat="server" Font-Italic="True" Font-Size="Medium" Width="114px">Datos Alumnos</asp:TextBox></td> </tr> </table> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" Width="959px"> <Columns> <asp:BoundField DataField="Usuario" HeaderText="Usuario" SortExpression="Usuario" /> <asp:BoundField DataField="Nombre" HeaderText="Nombre" SortExpression="Nombre" /> <asp:BoundField DataField="Password" HeaderText="Password" SortExpression="Password" /> <asp:BoundField DataField="CorreoElectronico" HeaderText="CorreoElectronico" SortExpression="CorreoElectronico" /> <asp:BoundField DataField="Semestre" HeaderText="Semestre" SortExpression="Semestre" /> <asp:BoundField DataField="Carrera" HeaderText="Carrera" SortExpression="Carrera" /> <asp:BoundField DataField="TipoUsuario" HeaderText="TipoUsuario" SortExpression="TipoUsuario" /> <asp:BoundField DataField="Boleta" HeaderText="Boleta" SortExpression="Boleta" /> <asp:BoundField DataField="Sanciones" HeaderText="Sanciones" SortExpression="Sanciones" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ForoConnectionString2 %>" SelectCommand="SELECT * FROM [Usuarios]"></asp:SqlDataSource> </form> </body>

</html>

GLOSARIO

Desarrollo de un Foro de discusión Escolar XXI

GLOSARIO Ancho de Banda: La cantidad de información que puede ser transmitida a la vez a través d un canal de comunicación. Base de datos (database) Una colección de datos organizados que se pueden consultar. Bugs Errores estructurales de programas. CERN El laboratorio Europeo de Física de Partículas en Ginebra, Suiza; el grupo que inventó la World Wide web. Ciberespacio Un término para la realidad virtual inmersa, a veces usado para referirse a Internet. Cliente A veces usado como un navegador; otras veces esto significa una computadora que hace contacto con el host. Columna vertebral (backbone) Las líneas primarias de telecomunicaciones de alta velocidad que conectan a los principales proveedores de servicios de Internet. Correo electrónico (e-mail) mensajes personales enviados entre usuarios para obtener acceso a información privada. Dirección IP (IP Adress) Una dirección numérica compuesta de cuatro números de 8 bits que identifica en forma única a una computadora de una red. DNS Servidor de Nombre de Dominio; un sistema que puede resolver una dirección IP con un nombre. Encriptación (encryption) Acto de proteger un archivo legible. Firewall Una barrera de seguridad que ayuda a limitar los accesos no autorizados a un sistema de computadoras. Firma digital (digital signature) Un mecanismo de seguridad usado para verificar la identidad de un individuo por medio de una clave de encriptación pública al igual que una privada. FTP Protocolo de transferencia de archivos (Transferer File Protocol); un protocolo para transferir archivos hacia y desde computadoras remotas. GIF Formato de Intercambio de Gráficos (Grafhics Interchange Format); un formato de archivo para imágenes que fue elaborado por CompuServe. Gopher: Servicio de Internet, precursor de la WWW, que muestra la información en forma jerárquica, como en un directorio.

GLOSARIO

Desarrollo de un Foro de discusión Escolar XXII

GUI Interfaz Gráfica de Usuario (Graphical User Interface); una pantalla gráfica que permite al usuario interactuar con la computadora. Hipervínculo (hyperlink) Un elemento de HTML que, cuando se hace clic en él, permite que las personas pasen a otros documentos, imágenes, sonidos o películas. Host Un sistema de computadora que puede ser contactado por otros sistemas de computadoras. HTML Lenguaje de Marcado de Hipertexto (HyperText Markup Languaje); el lenguaje de programación de WWW. HTTP Protocolo de Transporte de Hipertexto (HyperText Transport Protocol); la norma de Internet que permiten que se combinen entre sí texto, imágenes, sonidos y vídeo en un solo documento en web. EL HTTP también permite la vinculación de documentos y componentes de documentos. Icono Un gráfico pequeño que representa una función o acción. Interactivo Que permite a los usuarios cambiar el curso de los acontecimientos con base en sus propias decisiones respecto a las reglas de cualquier cosa con la que se esté interactuando. Internet Un sistema de redes formado por computadoras y usuarios con alcance mundial. Internet Explorer Un navegador de web creado por Microsoft. IRC Pláticas de relevos de Internet , es un tipo de Foro NetNews. Un Foro para conversar en tiempo real. Java Lenguaje de programación, similar al C++, que extiende las capacidades de web. JPEG Grupo Unido de Expertos en Fotografía(Join Photografhic Experts Group). Formato de archivo usado para imágenes compridas que usa un índice más alto de compresión y más colores que GIF mailto Método basado en web para enviar correo electrónico. Módem Modulador – Demodulador; dispositivo de comunicaciones para redes de computadoras. Mosaic Primer navegador de la NCSA, inventado para utilizar la World Wide web. Navegador (browser) Un programa que permite tener acceso a World Wide web. Navegar Usar Internet o World Wide web.

GLOSARIO

Desarrollo de un Foro de discusión Escolar XXIII

NetNews es un servicio de Internet donde las personas que comparten intereses comunes pueden hablar sobre temas favoritos en un un Foro abierto. Netscape Popular navegador WWW que en la actualidad ofrece muchas características HTML importantes. Pirata Un pirata de software, un pirata warez, alguien que roba programas para computadora. Por lo general los piratas venden o distribuyen los programas que roban. Plataforma El tipo de computadora o sistema operativo que se está usando. Por ejemplo, Apple, PC o Unix. Proveedor de servicios Internet compañía u organización que proporciona acceso a Internet. TCP/IP Protocolo de Control de Transmisión/Protocolo Internet (Transmission Control Protocol/ Internet Protocol); el estándar de las comunicaciones en Internet. Telnet Programa de software que permite enlazarse con computadoras remotas. UNIX Popular sistema operativo para computadoras. Importante en especial para las computadoras más grandes que son usadas como servidores de Internet. URL Localizador Uniforme de Recursos (Uniform Resource Locator ); el medio para localizar una página de inicio de web. Virus Programa que infecta a otros programas y computadoras, lo que da como resultado alguna clase de mal funcionamiento. VRML Lenguaje de Modelado de Realidad Virtual(Virtual Reality Modeling Languaje); un protocolo de gráficos tridimensionales para web. Wais Servidor de Información de Área Amplia; es una base de datos sólo de texto; es un sistema de recuperación de información distribuido. World Wide web Organización de archivos en Internet. WWW World Wide web; otras abreviaturas populares incluyen web y W3. WYSIWYG (What You See Is What You Get), es decir, "lo que ve es lo que obtiene". La metodología de los programas de Windows (Mac y otros, en realidad), consistente en que el resultado final una vez impreso, se vea desde el comienzo en la pantalla de la computadora, en contraposición a lo que sucede con los programas para DOS, por ejemplo.

BIBLIOGRAFÍA

Desarrollo de un Foro de discusión Escolar XXIV

BIBLIOGRAFÍA LIBROS: JOHN SHARP, JON JAGGER Microsoft Visual C#.Net Primera Edición Mc Graw Hill 2002 Impreso en España HERBERT SCHILDT C Manual De Referencia Tercera Edición Mcgraw-Hill 1996 Impreso En México No De Págs.: 785 LUIS JOYANES AGUILAR Fundamentos De Programación Algoritmos Y Estructuras De Datos Segunda Edición Mcgraw-Hill 1996 Impreso En Colombia No De Págs. 714 DAVID COOK Y DEBORAH SELLERS Inicie Su Negocio En web. Primera Edición Prentice-Hall Hispanoamericana, S.A. 1996 Impreso en Mexico ALFONSO GAZO CERVERO,PEDRO JOSÉ CLEMENTE MARTÍN,JOSÉ MARÍA ONTIVERO CHAMIZO Manual Imprescindible De Dreamweaver 4 Germán Galeano Gil Editorial Anaya 2001 JUAN MANUEL CORDERO VALLE, JOSÉ MARIANO GONZÁLEZ ROMANO Diseño En La web Primera Edición Mcgraw-Hill 2001 Impreso en España

BIBLIOGRAFÍA

Desarrollo de un Foro de discusión Escolar XXV

ARMANDO GARZÓN GALINDO Diccionario Enciclopédico ©Copyright Programa Educativo Visual S.A. De C.V. Encas 1992, México, Panamá, Colombia, España. REVISTAS: PC PLUS COMPU MAGAZINE En internet: http://davidhistol010.blogspot.com/feeds/posts/default http://www.iac.es/galeria/westend/node1.htm http://www.ocea.es/forem/guiahtml.htm http://www.microsoft.com/ http://www.manual-java.com/manualjava/caracteristicas-java.html http://www.linuxcentro.net/linux/staticpages/index.php?page=CaracteristicasPHP