Capítulo I. Marco Teórico - Justificación - Biblioteca

Página creada Cristian Múgica
 
SEGUIR LEYENDO
1

Capítulo I. Marco Teórico

   1.    Justificación
Hoy en día existe una gran diversidad de aplicaciones que corren sobre la World Wide
Web (WWW o Web), y cada una orientada a un fin en particular, el cuál depende de la
organización que se esté tratando. La flexibilidad de estas aplicaciones, es decir la facilidad
con la que se pueda responder a cambios organizacionales o del entorno, es crítica y
diferencia a las aplicaciones exitosas de las temporales y rígidas. Estos cambios son
inevitables dado que las aplicaciones responden a fenómenos humanos, de por sí volubles
en comportamiento. La frase “lo único constante es el cambio” ilustra lo dicho.

Un proyecto de desarrollo de una aplicación web debe tener en mente muchas más
consideraciones que una aplicación común. Además de realizarlo de manera correcta y
oportuna, debe tener grandes niveles de flexibilidad y de mantenimiento. Además los
plazos de entrega, modificación y puesta en marcha son muy cortos en aplicaciones de este
tipo. Es normal emprender proyectos de reducido número de meses y además que se
presenten cambios funcionales o de usabilidad que deben ser implementados en un
reducido número de semanas.

El presente trabajo intenta implementar, a manera de validación, la propuesta del Mgtr.
Guillermo Roberts Chaves en su trabajo de tesis titulado “Propuesta de una forma de
trabajo para la creación de aplicaciones web”. Dicho trabajo de tesis expone el marco
teórico por la cual uno puede crear un aplicación web que cumpla con las características de
un software de calidad pero aplicado a la World Wide Web. Este marco teórico tiene como
producto final al Modelo de 5 capas ó MD5C que detallaremos en el presente trabajo.

   2.    Problemática
El web se ha convertido poco a poco, de ser una curiosidad a ser una necesidad para las
empresas. Estas ven en el web una ventaja, ya sea únicamente como medio informativo y
de promoción, o como un frente comercial más. Actualmente existe gran diversidad de
aplicaciones en los dominios de la WWW, utilizados para distintos fines, las cuales
dependen de los objetivos que tengan la organización o empresa que las utiliza. Esta gran
variedad de aplicaciones se podrían agrupar en dos: la primera es la conectividad interna la
2

que hace referencia al flujo de información dentro de la misma empresa y la segunda la
conectividad externa en el cuál el flujo de información es entre distintas empresas.

En cualquiera de estas agrupaciones la aplicación que se desarrolle debe contar con la
información crítica de la empresa, en forma oportuna, actualizada en todo momento y que
además tenga el mismo ritmo del giro del negocio en el cual se desempeña porque es una
significativa ventaja competitiva, por ejemplo: en las negociaciones con proveedores o
clientes, externos o internos a la empresa. Es por esto que el grupo de desarrollo debe ser
consciente en definir y especificar las distintas actividades que se realizarán en la
aplicación teniendo en cuenta todos los requerimientos funcionales de la empresa así como
las posibles complicaciones que pueden surgir en el transcurso del trayecto como son: el
mantenimiento, agregar funcionalidades, cambios en la apariencia de la aplicación, entre
otros.

¿Existe alguna metodología clara que nos permita desarrollar aplicaciones web sin
complicaciones, y que, además, esté abierta al cambio futuro, tanto en tecnologías como
en necesidades?

La situación actual, es que no existe una metodología unificada y cada empresa al
enfrentarse con este problema desarrolla su propia forma de trabajo lo cuál trae como
resultado distintas metodologías que nos conllevan a serias y costosas dificultades futuras,
como el mantenimiento y cambio posterior de estas aplicaciones. Debido a esto se hace
necesario que exista una metodología que tome en cuenta las necesidades propias de las
aplicaciones Web, que si bien en funcionalidad no varían respecto a las aplicaciones
convencionales sí contienen una serie de requerimientos propios y diferentes.

    3.   Método propuesto - MD5C
Existe un método denominado Modelo de Cinco Capas (MD5C), una idea presentada en
una tesis de maestría, en la cuál expone las pautas que el desarrollador necesita o debe
considerar para el desarrollo de aplicaciones web. Este método de trabajo cumple con los
requerimientos propios de las aplicaciones Web, nos permite que las aplicaciones creadas
cumplan con los principales requerimientos del software de calidad y que los sitios web
resultantes sean de calidad, siguiendo las pautas de la Ingeniería del Web.

    4.   Modelo de cinco capas - MD5C
El modelo de cinco capas o MD5C orientado a aplicaciones Web, se basa en la misma
esencia que la Ingeniería de Software (IS), es decir, ambos nos permiten de una manera
ordenada y clara abordar el proceso de desarrollo de una aplicación convencional desde su
concepción hasta la puesta en marcha y posterior mantenimiento y actualización.

El MD5C está orientado a crear páginas Web dinámicas creadas en el servidor, las cuales
son enviadas al cliente en HTML con el contenido que ha solicitado, basándose en una
serie de funciones y procedimientos. Este tipo tecnología constituye una gran ventaja, ya
que dispone de todos los recursos del servidor: base de datos, sistema de archivos, etc.
3

     4.1 Páginas dinámicas en servidor
Dentro de las tecnologías que se utilizan para la creación de páginas dinámicas en el
servidor tenemos el ya clásico CGI (Common Gateway Interface), pasando por lenguajes
más modernos como son el ASP (Active Server Pages de Microsoft), PHP, Java (Servlets),
JSP (Java Server Pages), entre otros muchos más.

El funcionamiento de estás páginas web dinámicas, podría resumirse de la siguiente
manera (Fig. 1.1):

   1. El cliente envía una petición HTTP al servidor (probablemente, enviando una serie
      de parámetros),
   2. El servidor web, al recibir la solicitud, la pasa al servidor de aplicaciones,
   3. El servidor de aplicaciones interpreta la solicitud, realizará los procedimientos
      necesarios – utilizando los recursos del servidor, como bases de datos y sistema de
      archivos.
   4. El servidor de aplicaciones devuelve la respuesta al servidor web, ya en formato
      HTML.
   5. El servidor Web envía esta respuesta al cliente.

                                                         2
                       1                                            Servidor
                                                                   Aplicaciones
                                                     4
                                                                        3
                                  Servidor Web
           Cliente

                           5

                                                              Bases          Sistema
                                                             de Datos           de
                                                                             Ficheros

                     Figura 1.1: Funcionamiento de las páginas dinámicas

     4.2 Metodología clásica de desarrollo y MD5C
La metodología clásica de desarrollo (SDLC) es considerada la base de las metodologías
actuales de desarrollo. Así, haciendo un paralelo con esta metodología el MD5C no
considera la fase de análisis ni la primera parte del diseño porque los procedimientos que
se utilizan en estas fases no dependen de la tecnología que se va utilizar (ver figura 1.2)
4

                              Modelo de cinco capas - MD5C

                                       Mantenimiento

                                        Implantación

                                         Desarrollo

                                           Diseño

                                           Análisis

              Figura 1.2: Fases del desarrollo clásico que corresponden al MD5C

El MD5C se centra en el desarrollo propio de las aplicaciones (fase de desarrollo), aunque
influye en las fases comprendidas desde la mitad del diseño (diseño de interfaces,
navegación, etc.) en adelante, tomando en cuenta la implantación y el mantenimiento
posterior, como se muestra en la Figura 1.2.

Por lo tanto dentro las características que definen al MD5C son:
    •    Flexibilidad: Debe ser capaz de soportar la creación de cualquier aplicación web,
         desde una página estática simple, hasta un sitio complejo con varias
         funcionalidades.
    •    Facilidad de implementación: La utilización de esta metodología no debe
         representar una carga mayor, frente a la creación de aplicaciones por el método
         tradicional.
    •    Facilidad de mantenimiento: El mantenimiento posterior que reciban las
         aplicaciones, tanto a nivel de funcionalidades como de diseño deberá ser sencillo de
         realizar.
    •    Simplicidad: La metodología no debe ser compleja desde ningún punto de vista, a
         fin de que el entendimiento, utilización y modificación de la misma, sean sencillos
         y rápidos.

        4.3 Descripción del MD5C
El MD5C separa a las aplicaciones en 5 capas, resultando en modelo de desarrollo de 5
capas, como se puede ver en la Figura 1.3. Este modelo no fuerza a la utilización de
ninguna tecnología, sólo una forma de trabajo.
5

                        Lógica

                                               Presentación

                                                                               Cliente
                        Datos

                                                         Plantillas
                                               Idioma
                          Figura 1.3: Modelo de desarrollo de 5 capas

         4.3.1 Capa Lógica
A semejanza del modelo de 3 capas clásico, esta capa abarca toda la lógica de negocios
necesaria para el correcto funcionamiento de la aplicación, toda la serie de funciones,
procedimientos, etc., que permiten que la aplicación cumpla con los objetivos para los que
fue creada.

En el caso de aplicaciones web, esta capa es almacenada en un servidor, ya sea web o de
aplicaciones, como vimos en el funcionamiento del web, donde se realizarán todos los
procesos de la aplicación, utilizando tecnologías de páginas dinámicas en servidor.

         4.3.2 Capa de Datos
Esta capa también es semejante a aquella del modelo de 3 capas. En esta se encuentran los
datos persistentes requeridos para el correcto funcionamiento de la aplicación,
normalmente almacenados en una base de datos.

De la misma manera, esta capa se encuentra del lado del servidor, pudiendo encontrarse en
un servidor especializado o compartiendo recursos con el servidor de aplicaciones y el
servidor web.

         4.3.3 Capa de plantillas
Esta capa, propia del modelo, almacena las plantillas que usaremos para presentar los datos
en las diferentes plataformas con las que interactuará el sistema. Así, aquí estarán todos los
archivos HTML necesarios para mostrar los datos en navegadores web, diferentes
plantillas WML1 para los dispositivos WAP2 (teléfonos, etc.).

1
 Wireless Markup Language -- WML (Lenguaje de Marcado para Telefonía Inalámbrica) Lenguaje en el
que se escriben las páginas que aparecen en las pantallas de los teléfonos móviles y los asistentes
personales digitales (PDAs) dotados de tecnología WAP
6

La función principal de esta capa consiste en almacenar de una manera organizada todas
aquellas plantillas (o templates) que usaremos para mostrar los datos. Básicamente se trata
de un repositorio que contiene todas estas plantillas.

Las características propias de esta capa permiten que sean los encargados del diseño los
que modifiquen las plantillas, siguiendo una serie de reglas básicas, que se explicarán en la
puesta en marcha de esta capa.

          4.3.4 Capa de idiomas
Esta capa es semejante a la anterior, pero almacena las diferentes configuraciones de
idioma para las plantillas. Así, esta capa podría ser una base de datos, en la que se
especifican las traducciones para cada uno de los idiomas que soportará nuestra aplicación.
Se considera por separado a la base de datos, a efectos de clarificar el funcionamiento de
esta.

          4.3.5 Capa de presentación
Esta es la capa más importante del modelo, pues es ésta la que permite la presentación de
los datos creados por la capa lógica, hacia el cliente, utilizando para esto los templates de
la capa de plantillas y las diferentes traducciones de la capa de idiomas.

En este modelo, esta capa si está completamente separada e independiente de la lógica.

Básicamente, el funcionamiento de esta capa podría resumirse en los siguientes pasos:

    1. Obtener los datos de la capa lógica.
    2. Cargar y procesar la plantilla que corresponde, de la capa de plantillas.
    3. Cargar las traducciones que corresponden, de la capa de idiomas.
    4. Procesar la plantilla, haciendo cambios en función del idioma
    5. Combinar los datos de la capa lógica con la plantilla
    6. Enviar los resultados al cliente.

    5.    Evaluación del MD5C
MD5C es un método que nos permite crear aplicaciones Web de calidad. Para la
evaluación de este método se utilizan los fundamentos o características de la Ingeniería de
software que se describen en la siguiente tabla.

2
  Wireless Application Protocol -- WAP (Protocolo de Aplicación de Telefonía Inalámbrica) Protocolo
que permite a los usuarios de teléfonos móviles el acceso a servidores web especializados, visualizando la
información en el visor del teléfono
7

         Característica
                                  Esta característica depende de la aplicación en sí, y en
Corrección
                                  nuestro modelo, estaría cubierta por la capa de lógica.
                                  Esta característica también depende de la capa lógica,
                                  aunque debemos tener en cuenta que la conexión a través
Robustez
                                  de Internet es, por definición, insegura, por lo que deben
                                  tomarse las medidas respectivas.
                                  El modelo propuesto permite lograr la adición de nuevas
                                  funcionalidades sin mayor complicación: la programación
                                  modular y la separación de la capa de presentación hacen
                                  que esta modificación sea sencilla.
                                  El modelo presentado separa completamente el diseño de la
Extensibilidad
                                  aplicación (capa de plantillas) de la lógica de la aplicación,
                Descentralización
                                  por lo que el diseño podrá ser abordado por los expertos en
                                  el tema.
                Simplicidad de    La separación de capas permite que los expertos en cada
                diseño            tema trabajen de manera paralela e independiente.
                                  La propuesta implica la separación completa de las capas
                                  de presentación, plantillas e idioma, y dada la flexibilidad y
Reusabilidad
                                  generalidad de estas, pueden ser reutilizadas en varias
                                  aplicaciones.
                                  Existe sólo una capa lógica que envía resultados a la capa
                                  de presentación, que a su vez, podrá presentarlos en
                                  diferentes y variadas plataformas e idiomas, repercutiendo
Eficiencia
                                  positivamente en este aspecto. Como aspecto negativo en
                                  este factor, encontramos que se pueden procesar datos que
                                  no serán presentados al usuario.
                                  La capa de plantillas definirá la forma de utilizar la
Facilidad de uso                  aplicación. En caso se vea que esta está muy compleja,
                                  podrá ser cambiada sin mayores esfuerzos.
                                  La funcionalidad general de la aplicación está definida en
Funcionalidad
                                  la capa lógica, como vimos.
                                  Por definición, las aplicaciones web son centralizadas en el
                                  servidor web. La transportabilidad en este caso podría verse
                                  desde dos frentes: cambio de servidores, y clientes. En el
Transportabilidad                 primer caso, depende de la implementación de las capas.
                                  En el segundo, de la utilización de páginas dinámicas en
                                  cliente, pues si utiliza solo paginas en servidor, la
                                  transportabilidad en varias plataformas está garantizada.
                                  Las aplicaciones web requieren un despliegue en corto
                                  tiempo. La característica de reusabilidad de las nuevas
Oportunidad
                                  capas propuestas tienen un gran aporte en la rapidez de
                                  despliegue.
También puede leer