• No se han encontrado resultados

5.1. Desarrollo elemental de componentes

5.1.1. Definición de la metodología SCRUM

Dentro de las metodologías de desarrollo ágiles, existe la metodología SCRUM, una metodología que comenzó a tomar fuerza por los desarrolladores emprendedores gracias a su visión ligera y fácil de entender. SCRUM no es un proceso o una técnica para construir productos; en lugar de eso, es un marco de trabajo dentro del cual es posible emplear varias técnicas y procesos.

Esta metodología es basada en la teoría de control de procesos empírica o empirismo. El empirismo asegura que el conocimiento procede de la experiencia y de tomar decisiones basándose en lo que es conocido. SCRUM emplea un enfoque iterativo e incremental para optimizar la predictibilidad y el control del riesgo.

El desarrollo de los componentes seleccionados como cualquier otro desarrollo software debe partir de una previa documentación de planeación establecida, que a través de un proceso, haya un seguimiento detallado desde el requerimiento inicial hasta el producto final. Con base a la metodología establecida anteriormente para los desarrollos que son llevados a cabo en este trabajo de grado, es planteado construirse el proceso a seguir para la implementación de estos componentes. A continuación son presentados los pasos a llevar a cabo teniendo en cuenta los criterios software a partir de la metodología aquí propuesta:

1. Definición del requerimiento.

La implementación de cada componente debe interpretarse como el producto requerido por parte de un cliente a un desarrollador, por eso, debe establecerse un requerimiento concreto enfocado en las principales características del componente y sus funcionalidades. El requerimiento establece los límites de trabajo del desarrollador, es por eso que terminado el desarrollo, debe evaluarse el componente conforme a los criterios establecidos en su requerimiento.

61

2. Elección de tecnologías y herramientas.

Las tecnologías utilizadas son clasificadas según el modelo vista controlador, esta sección presenta todas las tecnologías usadas para el desarrollo de los componentes:

HTML5.

Es seleccionada la tecnología HTML con el fin de lograr el mejor alcance web en los componentes. Esta selección es sustentada a través de la documentación revisada (Musciano & Kennedy, 1996) y la comparación con otros tipos de lenguaje. A continuación son presentados los criterios de selección de dicha tecnología:

o Lograr que la información, y la forma de presentarla estén lo más separadas posible.

o Resumir, simplificar y hacer más sencillo el código utilizado.

o Un lenguaje que haga las páginas compatibles con todos los navegadores web, incluyendo los de los teléfonos móviles y otros dispositivos modernos usados en la actualidad para navegar en Internet.

o Eliminar restricciones que hagan el código más popular y asequible.

Una vez claras las razones del porqué del lenguaje HTML, es especificado también a continuación, la elección de la versión HTML5 (Pilgrim, 2010), que aunque parezca obvio usar la última versión, ésta trae algunos beneficios claros en cuanto al presente desarrollo:

o Al ser el código más sencillo y simplificado, cargan más rápido las páginas en el navegador.

o Las páginas y los elementos que contienen, son perfectamente vistos en todos los navegadores. La gran mayoría de los navegadores de los teléfonos Smartphone y las tabletas, son compatibles con HTML5.

o Los plugins, widgets y botones funcionan excelente, con más opciones que los clásicos en XHTML o que los iframes.

o Es posible insertar directamente videos en las páginas sin tener que acudir a los iframes

o usar la etiqueta object.

JAVASCRIPT.

La funcionalidad del componente es otro de los pilares fundamentales de este desarrollo, Javascript es un lenguaje de scripting precisamente enfocado en el entorno web que gracias a su dinamismo con eventos y la relación con formularios cumple los requisitos para todas las funciones solicitadas por estos componentes.

Para ser más eficientes en algunas funciones específicas, también se deciden usar las siguientes librerías de Javascript: JQuery y AJAX

PHP.

A través de PHP es implementada toda la programación por parte del servidor y organización de la navegación entre páginas. PHP le permite al desarrollador crear una comunicación con la base de datos a través de consultas. Esta tecnología será utilizada en los componentes en los que es necesario almacenar datos y donde es identicada una estructura de aplicación web.

62

Para los componentes que necesitan la gestión de bases de datos, es seleccionada la tecnología MySQL que es la más utilizada para este tipo de desarrollo por sus bases de datos relacionales, multihilo y multiusuario.

CSS3.

El último pilar fundamental es la vista, el aspecto visual de la interfaz está dirigido por CSS3 y más específicamente es elegido un framework denominado Materializecss. Muchos de los factores identificados como modificables en el aspecto de la vista, serán controlados a través de CSS3 ya sea en archivos propios de lenguaje tipo .css o a través de funciones Javascript. A continuación son presentadas las herramientas que fueron seleccionadas para llevar acabo la programación de los componentes según las tecnologías anteriormente presentadas:

Visual Code Studio.

Visual Code Studio es el editor de código seleccionado para la programación, es caracterizado por ser poderoso y ligero. Este editor soporta gran número de lenguajes de programación, tiene integrado Git para mayor productividad de trabajo y lo más importante es Open Source.

WAMPSERVER.

El servidor local que ha sido seleccionado es Wampserver debido a que ahí es posible pre visualizar los componentes como un contenido web. Esta herramienta además incluye un administrador de base de datos (phpMyAdmin) para gestionar tablas, hacer consultas y todo tipo de funciones relacionadas con bases de datos.

3. Modelo de arquitectura software

Los modelos de arquitectura permiten visualizar la organización software de los componentes. Para este trabajo son identificados 2 modelos: el primero abarca las tecnologías que no necesitan programación por parte del servidor ni almacenamiento de información, y el segundo abarca los componentes un poco más robustos que si incluyen estas características. Estos modelos pueden apreciarse en la Figura 15 y Figura 16 respectivamente.

63

Figura 16. Modelo de arquitectura software 2. 4. Diagrama de clases.

Los diagramas de clases permiten representar a cada componente como una estructura definida para su desarrollo software. Cada componente es representado con una clase la cual esta compuesta de atributos y métodos. Los atributos muestran las características visibles del componente y los métodos muestran todas aquellas acciones que el usuario puede lograr utilizando dicho componente. A continuación son presentados los diagramas de clase mencionados.