capitulo 2. - marco teÓrico y estado del arte

19
CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

Upload: others

Post on 28-Jun-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

Page 2: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

2.1 Marco teórico

Un sistema de información informático(Ver Figura 7) es un sistema que

permite almacenar y procesar información; es el conjunto de partes

interrelacionadas: hardware, software y personal informático. El hardware

incluye computadoras o cualquier tipo de dispositivo electrónico, que consisten

en procesadores, memoria, sistemas de almacenamiento externo, etc. El software

incluye al sistema operativo, aplicaciones, siendo especialmente importante los

sistemas de gestión de bases de datos. Por último, el soporte humano incluye al

personal técnico que crean y mantienen el sistema (analistas, programadores,

operarios, etcétera) y a los usuarios que lo utilizan.[10]

El recurso humano que interactúa con el Sistema de Información, el cual está

formado por las personas que utilizan el sistema.

Un sistema de información realiza cuatro actividades básicas:

entrada, almacenamiento, procesamiento y salida de información.

Entrada de Información: Es el proceso mediante el cual el Sistema de Información

toma los datos que requiere para procesar la información.

Almacenamiento de información: El almacenamiento es una de las actividades o

capacidades más importantes que tiene una computadora, ya que a través de

esta propiedad el sistema puede recordar la información guardada en la sección o

proceso anterior.

Procesamiento de Información: Es la capacidad del SI para efectuar cálculos de

acuerdo con una secuencia de operaciones preestablecida.

Salida de Información: La salida es la capacidad de un Sistema de Información

para sacar la información procesada o bien datos de entrada al exterior. [11]

Page 3: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

2.1.1 ¿Qué es un sistema web?

En reingeniería de software se denomina sistema web a aquellas

aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través

de internet o de una intranet mediante un navegador. En otras palabras, es una

aplicación de software que se codifica en lenguaje soportado por los navegadores

web. [12]

Características

Algunas características principales que tienen los sistemas web son:[13]

Acceso desde cualquier ubicación con conexión a internet.

Utilización de redes internas.

Seguridad basada en usuarios y roles de acceso.

Disponibilidad las 24 horas.

Información actualizada constantemente.

Multiusuario

Ventajas

Entre sus singulares ventajas encontramos las siguientes:

Independencia de la Plataforma(Windows,Linux,Mac,etc)

Acceso a través de internet

Rápido, distribuido y escalable.

Tecnologías open-source sin costos de licencia

Los sistemas de información mejoran la efectividad gerencial y profesional

formando parte de la estrategia de un negocio. La nueva tecnología tiene un impacto

significativo sobre la línea de producción de una empresa garantizándole ventajas

competitivas sostenibles.[13]

Page 4: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

Estas afirmaciones se basan en la experiencia de muchos autores que se

han dedicado al estudio de la influencia que tienen los sistemas de información en

el comportamiento de la productividad gerencial, entre los que destacan Meyery

Boone (1990). Ellos mencionan un gran número de casos en los cuales los sistemas

de información contribuyeron al aumento de las ganancias en forma considerable.

Citando textualmente algunos de estos ejemplos “Una hoja electrónica ganó US. $

76 millones para una compañía de productos químicos”; “El correo electrónico llevó

un producto de telecomunicaciones al mercado dos meses antes, con un retorno

sobre inversión del 1000.[14]

Figura 7. Elementos de un sistema de información.

Fuente: Google imágenes

2.1.2 Estado del arte

Existen muchos sistemas de información hoy en día en especial softwares

desarrollados para la plataforma de escritorio, uno muy conocido es el ERP SAP(Ver

Figura 8) que un sistema muy complejo y con una infinidad de módulos que permite

adaptarse a cualquier tipo de empresa, pero esto cada vez está cambiando ya que

muchas empresas están decidiendo migrar sus sistemas de escritorio a un sistema

web por todas la facilidades que les brinda.

Page 5: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

Figura 8. Logo Sap Business One

Fuente: Google imágenes

Hay muchos sistemas de registro de visitantes y registro de actividades de

su personal en aplicaciones de escritorio desarrollados en java,c#,c++, etc estas

son aplicaciones grandes y robustas que permiten llevar el control de toda una

empresa u organización y en cuanto funcionalidad están muy bien, ya que realizan

los procesos requeridos, pero principales desventajas que yo veo en los software

de escritorio son la poca portabilidad de estos, las interfaces gráficas de la mayoría

de estos sitios se están quedando obsoleta y lo principal, la accesibilidad desde

cualquier lugar es casi imposible, lo cual es una desventaja competitiva para

cualquier organización a comparación de la accesibilidad que tendría una empresa

con un sistema web.(Ver Figura 9)

Figura 9. Usuario Móvil vs Usuario de Escritorio en los últimos años - Morgan Stanley

Durante mi investigación me encontré principalmente que los sistemas web

de visitas que existen en el mercado están muy bien desarrollados y tienen muchas

funcionalidades como la autenticación con credenciales, pero estos están

Page 6: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

enfocados a empresas grandes, que para el registro de personas se toma más

tiempo de lo normal por la cantidad de datos a dar de alta.

A continuación se muestra una imagen de un sistema de visitas público de la

presidencia del consejo de ministros en Perú (Ver Figura 10). Esta aplicación web

es muy parecida a lo que me encuentro desarrollando, pero la diferencia que

encuentro entre la aplicación de control de visitas y personal docente y el que

comparo enseguida es que la accesibilidad al público en general y que no se usó

un diseño responsivo para adaptarse los diferentes dispositivos móviles como lo

marca la tendencia de front-end de la tecnología web.

Figura 10. Ejemplo de sistema de visitas de la presidencia del consejo de Ministros

Fuente: http://hera.pcm.gob.pe

Page 7: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

2.1.3 Herramientas

A continuación se listan las herramientas que se utilizaron para crear el

sistema de Control de Visitas y Actividades de personal docente.

Framework CakePHP

CakePHP es un framework para el desarrollo aplicaciones web escrito

en PHP, creado sobre los conceptos de Ruby on Rails.

Historia

CakePHP empezó en 2005, cuando Ruby On Rails estaba ganando

popularidad y utiliza muchos de sus conceptos. Desde entonces la comunidad

creció y generó muchos subproyectos.

Características

CakePHP o pastelPHP es un framework o marco de trabajo que facilita el

desarrollo de aplicaciones web, utilizando el patrón de diseño MVC

(Modelo Vista Controlador). Es de código abierto y se distribuye bajo licencia MIT.

Al igual que Ruby On Rails, CakePHP facilita al usuario la interacción con la base

de datos mediante el uso de ActiveRecord. Además hace uso del patrón Modelo

Vista Controlador.

Compatible con PHP4 y PHP5

CRUD de la base de datos integrado

URLs amigables

Sistema de plantillas rápido y flexible

Ayudas para AJAX, Javascript y HTML forms

Trabaja en cualquier subdirectorio del sitio

Validación integrada

Scaffolding de las aplicaciones

Access Control Lists

Sintetización de datos

Componentes de seguridad y sesión

Page 8: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

La última versión estable de CakePHP es la 3.0.4 [15]

PHP

PHP es un lenguaje de programación de uso general de código del lado del

servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue

uno de los primeros lenguajes de programación del lado del servidor que se podían

incorporar directamente en el documento HTML en lugar de llamar a un archivo

externo que procese los datos. El código es interpretado por un servidor web con

un módulo de procesador de PHP que genera la página Web resultante. PHP ha

evolucionado por lo que ahora incluye también una interfaz de línea de

comandos que puede ser usada en aplicaciones gráficas independientes.

PHP se considera uno de los lenguajes más flexibles, potentes y de alto

rendimiento conocidos hasta el día de hoy, lo que ha atraído el interés de múltiples

sitios con gran demanda de tráfico, como Facebook, para optar por el mismo como

tecnología de servidor.

Historia

Fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el

lenguaje sigue siendo desarrollado con nuevas funciones por el grupo PHP. Este

lenguaje forma parte del software libre publicado bajo la licencia PHP, que es

incompatible con la Licencia Pública General de GNU debido a las restricciones del

uso del término PHP.[16]

Características

Orientado al desarrollo de aplicaciones web dinámicas con acceso a

información almacenada en una base de datos.

Es considerado un lenguaje fácil de aprender, ya que en su desarrollo se

simplificaron distintas especificaciones, como es el caso de la definición de las

variables primitivas, ejemplo que se hace evidente en el uso de php arrays.

Page 9: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

El código fuente escrito en PHP es invisible al navegador web y al cliente, ya

que es el servidor el que se encarga de ejecutar el código y enviar su resultado

HTML al navegador.

Capacidad de conexión con la mayoría de los motores de base de datos que se

utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.

Capacidad de expandir su potencial utilizando módulos (llamados ext's o

extensiones).

Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.

Permite aplicar técnicas de programación orientada a objetos.

No requiere definición de tipos de variables aunque sus variables se pueden

evaluar también por el tipo que estén manejando en tiempo de ejecución.

Debido a su flexibilidad ha tenido una gran acogida como lenguaje base para las

aplicaciones WEB de manejo de contenido, y es su uso principal.[17]

Bootstrap

Figura 11. Logo Bootstrap

Fuente: http://getbootstrap.com/

Twitter Bootstrap (Ver Figura 11) es un framework o conjunto de

herramientas de software libre para diseño de sitios y aplicaciones web. Contiene

plantillas de diseño con tipografía, formularios, botones, cuadros, menús de

navegación y otros elementos de diseño basado en HTML y CSS, así como,

extensiones de JavaScript opcionales adicionales.

Page 10: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

Es el proyecto más popular en GitHub y es usado por la NASA y

la MSNBC junto a demás organizaciones.

Características

Desde la versión 2.0 también soporta diseños sensibles. Esto significa que el

diseño gráfico de la página se ajusta dinámicamente (Ver Figura 12), tomando en

cuenta las características del dispositivo usado (Computadoras, tabletas, teléfonos

móviles). [18]

Figura 12. Página food sense utilizando Bootstrap

Fuente: http://foodsense.is

JavaScript

JavaScript (abreviado comúnmente "JS") es un lenguaje de programación

interpretado, dialecto del estándar ECMAScript. Se define como orientado a

objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.

Se utiliza principalmente en su forma del lado del cliente (client-side),

implementado como parte de un navegador web permitiendo mejoras en la interfaz

de usuario y páginas web dinámicas aunque existe una forma de JavaScript

del lado del servidor (Server-side JavaScript o SSJS).

Page 11: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

JavaScript se diseñó con una sintaxis similar al C, aunque adopta nombres

y convenciones del lenguaje de programación Java. Sin embargo Java y JavaScript

no están relacionados y tienen semánticas y propósitos diferentes.

Todos los navegadores modernos interpretan el código JavaScript integrado

en las páginas web. Para interactuar con una página web se provee al lenguaje

JavaScript de una implementación del Document Object Model (DOM).

Historia

JavaScript fue desarrollado originalmente por Brendan Eich de Netscape con

el nombre de Mocha, el cual fue renombrado posteriormente a LiveScript, para

finalmente quedar como JavaScript. El cambio de nombre coincidió

aproximadamente con el momento en que Netscape agregó compatibilidad con la

tecnología Java en su navegador web Netscape Navigator en la versión 2.002 en

diciembre de 1995.[19]

Hojas de estilo en cascada (CSS)

Hoja de estilo en cascada o CSS (siglas en inglés de cascading style sheets)

es un lenguaje usado para definir y crear la presentación de un documento

estructurado escrito en HTML o XML (y por extensión en XHTML). El World Wide

Web Consortium (W3C) es el encargado de formular la especificación de las hojas

de estilo que servirán de estándar para los agentes de usuario o navegadores.

La idea que se encuentra detrás del desarrollo de CSS es separar la

estructura de un documento de su presentación.

La información de estilo puede ser definida en un documento separado o en

el mismo documento HTML. En este último caso podrían definirse estilos generales

con el elemento «style» o en cada etiqueta particular mediante el atributo

«style».[20]

Page 12: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

A continuación se muestra un ejemplo sencillo de cómo realizar un botón con

CSS. (Ver Figura 13)

Figura 13. Ejemplo de botón con efecto hover hecho con css3

HTML

HTML, siglas de HyperText Markup Language (Ver Figura 14) («lenguaje de

marcas de hipertexto»), hace referencia al lenguaje de marcado para la elaboración

de páginas web. Es un estándar que sirve de referencia para la elaboración de

páginas web en sus diferentes versiones, define una estructura básica y un código

(denominado código HTML) para la definición de contenido de una página web,

como texto, imágenes, videos, entre otros. Es un estándar a cargo de la W3C,

organización dedicada a la estandarización de casi todas las tecnologías ligadas a

la web, sobre todo en lo referente a su escritura e interpretación. Se considera el

lenguaje web más importante siendo su invención crucial en la aparición, desarrollo

Page 13: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

y expansión de la World Wide Web. Es el estándar que se ha impuesto en la

visualización de páginas web y es el que todos los navegadores actuales han

adoptado.

Figura 14. Logo Html5

Fuente: Google imágenes

El lenguaje HTML basa su filosofía de desarrollo en la diferenciación. Para

añadir un elemento externo a la página (imagen, vídeo, script, entre otros.), este no

se incrusta directamente en el código de la página, sino que se hace una referencia

a la ubicación de dicho elemento mediante texto. De este modo, la página web

contiene sólo texto mientras que recae en el navegador web (interpretador del

código) la tarea de unir todos los elementos y visualizar la página final. Al ser un

estándar, HTML busca ser un lenguaje que permita que cualquier página web

escrita en una determinada versión, pueda ser interpretada de la misma forma

(estándar) por cualquier navegador web actualizado.[21]

En la figura siguiente se muestra un ejemplo básico de la sintaxis de HTML

(Ver Figura 15)

Page 14: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

Figura 15. Ejemplo básico de estructura de html5

Fuente: Google imágenes

MySQL

MySQL (Ver figura 16) es un sistema de gestión de bases de

datos relacional, multihilo y multiusuario con más de seis millones de instalaciones.

MySQL AB desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su

vez de Oracle Corporation desde abril de 2009 desarrolla MySQL como software

libre en un esquema de licenciamiento dual.

Figura 16. Logo Mysql

Fuente: Oracle

Page 15: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con

esta licencia, pero para aquellas empresas que quieran incorporarlo en

productos privativos deben comprar a la empresa una licencia específica que les

permita este uso. Está desarrollado en su mayor parte en ANSI C.

Al contrario de proyectos como Apache, donde el software es desarrollado

por una comunidad pública y los derechos de autor del código están en poder del

autor individual, MySQL es patrocinado por una empresa privada, que posee el

copyright de la mayor parte del código. Esto es lo que posibilita el esquema de

licenciamiento anteriormente mencionado. Además de la venta de licencias

privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan

trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue

fundado por David Axmark, Allan Larsson y Michael Widenius.[22]

Servidor HTTP Apache

El servidor HTTP Apache es un servidor web HTTP(Ver Figura 17) de código

abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft

Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de

sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código

del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su

nombre se debe a que alguien quería que tuviese la connotación de algo que es

firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que

pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación

de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían

creado los primeros ingenieros de internet. Además Apache consistía solamente en

un conjunto de parches a aplicar al servidor de NCSA. En inglés, a patchy server (un

servidor "parcheado") suena igual que Apache Server.

Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor

HTTP más usado. Jugó un papel fundamental en el desarrollo fundamental de la

World Wide Web y alcanzó su máxima cuota de mercado en 2005 siendo el servidor

Page 16: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un

descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de

uso diario proporcionadas por Netcraft). En 2009 se convirtió en el primer servidor

web que alojó más de 100 millones de sitios web. [23]

Figura 17. Función del protocolo HTTP

Fuente: Google imágenes

AJAX

Figura 18. Logo Ajax

Fuente: Google imágenes

AJAX(Ver Figura 18), acrónimo

de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una

técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet

Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en

el navegador de los usuarios mientras se mantiene la comunicación asíncrona con

el servidor en segundo plano. De esta forma es posible realizar cambios sobre las

páginas sin necesidad de recargarlas, mejorando la interactividad, velocidad

y usabilidad en las aplicaciones.

Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales

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

Page 17: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

visualización ni el comportamiento de la página, aunque existe la posibilidad de

configurar las peticiones como síncronas de tal forma que la interactividad de la

página se detiene hasta la espera de la respuesta por parte del servidor.

JavaScript es el lenguaje interpretado (scripting language) en el que

normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso

a los datos se realiza mediante XMLHttpRequest, objeto disponible en los

navegadores actuales. En cualquier caso, no es necesario que el contenido

asíncrono esté formateado en XML.[24]

jQuery UI

Figura 19. Logo jQuery UI

Fuente: Google imágenes

jQuery UI (Ver Figura 19)es una biblioteca de componentes para

el framework jQuery que le añaden un conjunto de plug-ins, widgets y efectos

visuales para la creación de aplicaciones web. Cada componente o módulo se

desarrolla de acuerdo a la filosofía de jQuery (find something, manipulate it:

encuentra algo, manipúlalo).

Widgets

Es un conjunto completo de controles UI. Cada control tiene un conjunto de

opciones configurables y se les pueden aplicar estilos CSS.

Accordion: Menú con efecto acordeón.

Autocomplete: Caja con autocompletado.

Page 18: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

Button: Botón.

Dialog: Ventanas con contenido.

Slider: Elemento para elegir en un rango de valores.

Tabs: Pestañas.

Datepicker: Calendario gráfico.

Progressbar: Barra de progreso.[25]

XAMPP

Figura 20. Logo Xampp, PHP, Apache, Mysql

Fuente: Google imágenes

XAMPP es un servidor independiente de plataforma, software libre, que

consiste principalmente en el sistema de gestión de bases de datos MySQL, el

servidor web Apache y los intérpretes para lenguajes de script: PHP y Perl. El

nombre proviene del acrónimo de X (para cualquiera de los diferentes sistemas

operativos), Apache, MySQL, PHP, Perl.(Ver Figura 20)

El programa está liberado bajo la licencia GNU y actúa como un servidor web

libre, fácil de usar y capaz de interpretar páginas dinámicas. Actualmente XAMPP

está disponible para Microsoft Windows, GNU/Linux, Solaris y Mac OS X.

Características y requisitos

XAMPP solamente requiere descargar y ejecutar un archivo ZIP, tar , exe o

fkl, con unas pequeñas configuraciones en alguno de sus componentes que el

servidor Web necesitará. XAMPP se actualiza regularmente para incorporar las

últimas versiones de Apache/MySQL/PHP y Perl. También incluye otros módulos

Page 19: CAPITULO 2. - MARCO TEÓRICO Y ESTADO DEL ARTE

como OpenSSL y phpMyAdmin. Para instalar XAMPP se requiere solamente una

pequeña fracción del tiempo necesario para descargar y configurar los programas

por separado. Puede encontrarse tanto en versión completa, así como en una

versión más ligera que es portátil.[26]

Sublime Text

Figura 21. Logo Sublime Text

Fuente: http://www.sublimetext.com

Sublime Text (Ver Figura 21) es un editor de texto y editor de código

fuente está escrito en C++ y Python para los plugins. Desarrollado originalmente

como una extensión de Vim, con el tiempo fue creando una identidad propia, por

esto aún conserva un modo de edición tipo vi llamado Vintage mode.

Se distribuye de forma gratuita, sin embargo no es software libre o de código

abierto, se puede obtener una licencia para su uso ilimitado, pero el no disponer de

ésta no genera ninguna limitación más allá de una alerta cada cierto tiempo.[27]