Ir al contenido principal

Calidad en aplicaciones web (Web Apps)

Calidad Aplicaciones Web
RUBIO HARO RODRIGO RODOLFO


CALIDAD PARA WEB APPS

Se suele definir como propiedades de un objeto, producto, servicio, o en realidad, casi cualquier cosa; que permite caracterizarla y valorarla con respecto a las restantes de su categoría, sector o especie. La industria del software se ha guiado de ciertos estándares para asegurar la calidad. Sin embargo, con el  crecimiento exponencial de la aplicaciones web, se han fragmentados algunos de estos aspectos para asegurar "la calidad". No es lo mismo hacer un sistema tradicional, que desarrollar una aplicación web, y por lo tanto, hemos de considerar los conceptos que mas influyen en la calidad de una aplicación web.

Las características más relevantes -usabilidad, funcionalidad, fiabilidad, eficiencia y capacidad de mantenimiento- proporcionan una base verdaderamente útil para evaluar la calidad de los sistemas basados en Web. Olsina y sus colaboradores [OSL99] han preparado un «árbol de requisitos de calidad» que identifica un conjunto de atributos que conduce a WebApps de alta calidad.

Arbol de Requisitod de Calidad en Web Apps
Árbol de requisitos de calidad (OSL 99).

Usabilidad 

Es la característica que mide la eficacia en la consulta de información de una aplicación Web para el publico al que va dirigida. Osease la facilidad de uso.

Comprensión global del sitio

Es la facilidad con la que se puede entender la estructura de la aplicación, la navegación, la lógica del negocio u organización y sus funcionalidad. 

Retroalimentación (Feedback) y Ayuda

La retroalimentación  es una herramienta enfocada a la aplicación terminada, en la interfaz de usuario final, en donde se permite a este el envió de errores, fallas o sugerencias en cuanto a la aplicación. Ha de ser considerada para posibles mantenimientos. La retroalimentación ha evolucionado a reportes de errores y fallas. Suele ir en el mismo lugar que la sección de  "Ayuda", esta permite consultar información sobre la funcionalidad, lógica o alguna característica de la aplicación web.

Características de la interfaz estética

Para mejorar comprensión global del sitio se debe de diseñar y elaborar una interfaz estética, dependiendo de la intención de la aplicación, también, se debe de considerar el usuario final, que permitirá establecer tiempos de respuesta ya que, usuarios con mayores recursos, cargaran mas rápido la aplicación web, por lo tanto podremos agregar mas contenido visual, animaciones sin preocuparnos por los tiempos de respuesta, pero si nuestro usuario final, tiene un ancho de banda muy limitado, lo mejor sera diseñar una interfaz con pocas, o ningunas animaciones. Actualmente hay herramientas que permiten identificar navegadores, por lo que podemos limitar los componentes visuales de la aplicación para determinados dispositivos o navegadores. A pesar de esto, se sigue recomendando interfaces limpias, ya que normalmente son mas rápidas en cargar y de entender.

Características especiales

Son características diseñadas para personas con características especiales, son consideradas para la accesibilidad, que enfoca a las aplicaciones web, y en general al software, en llegar cubrir a la mayoría de usuarios para los cuales esta diseñada . Ademas, en algunos países se ha comenzado un proceso de inclusión de personas con discapacidades con la red de redes. Por ejemplo, en México el 30 de abril de 2014, se publicó en el Diario Oficial de la Federación el Programa Nacional para la Igualdad y No Discriminación 2014-2018, en el cual se establece la “Estrategia 1.3. Consistente en generar y aplicar la normativa que garantice progresivamente la accesibilidad universal en el quehacer de la Administración Pública Federal (APF) junto con las siguientes líneas de acción: 1.3.4. Emitir instrumentos jurídicos para establecer progresivamente la obligatoriedad de contar con páginas web y servicios electrónicos institucionales accesibles y 1.3.10. Impulsar la emisión de normas y especificaciones técnicas obligatorias sobre accesibilidad universal en los servicios de telecomunicaciones y radiodifusión. 

La implementación de nuevas tecnologías y el desarrollo de aplicaciones web tiene que ser mas incluyente, ademas de implementar estrategias para mejorar la accesibilidad en las aplicaciones web, por lo que, en definitiva es un aspecto que debemos de tomar en cuenta para la facilitar el uso de nuestra aplicación.

El poder de la Web está en su universalidad. El acceso por cualquier persona, independientemente de la discapacidad que presente es un aspecto esencial.
Tim Berners-Lee

Funcionalidad

Básicamente es lo que una aplicación web (hablando de Ingeniería web) puede hacer.

Capacidades de Búsqueda y recuperación

Es la facilidad con la que se puede buscar y obtener la información y/o contenidos de la aplicación. Por ejemplo, para la búsqueda se debe facilitar una categorización de búsqueda, ya sea por fecha, etiquetas o categorías. 

Características de navegación y visualización

La navegación del sitio debe de ser lo mas intuitiva posible, de preferencia simple y limpia. Para la visualización de contenidos se recomienda lo mismo. Las paginas mas simples suelen ser mas fáciles de navega. 

Características de la aplicación relacionadas con el dominio

El dominio es una cuestión con bastante peso en cuanto al posicionamiento en los buscadores de Internet, ya sea de la marca, empresa o producto. Para elegir el dominio se suele recomendar que sea el nombre del producto o marca, en lugar de palabras claves, sin que este sea muy extenso para facilitar a los usuarios su búsqueda y localización. Ademas de elegirá la terminación correspondiente al ámbito respecto al contenido.

  • .net
    • Se refiere a cualquier sitio web y es muy general, se puede usar para determinadas redes.
  • .com
    • Se refiere a empresas y compañías, dedicado a actividades económicas.
  • .gov (gob)
    • Se refiere a entidades gubernamentales  
  • .org
    • Se refiere a organizaciones, enfocado a instituciones. sin fines de lucro. 
  • .tv
    • Se refiere a televisión, dispuesto para actividades relacionadas con el mundo televisivo
  • .edu
    • Se refiere a educación, exclusivamente para sitios, paginas o aplicaciones con fines educativos.
  • Extensiones geográficas.
    • .mx - México
    • .eu  - Estados Unidos
    • .es  - España
    • .eu  - Unión Europea
    • .al  - Alemania
    • .ru  - Rusia
    • .it   - Italia
    • .fr   - Francia
    • .cn  - China
    • .jp  - Japón

Fiabilidad

Capacidad de un sistema para mantener su nivel de rendimiento, en condiciones establecidas y durante un periodo de tiempo determinado. Madurez, tolerancia a fallos, capacidad de recuperación.

Correcto Procesamiento de vínculos

Es el correcto re-direccionamiento de los enlaces, que se envié, al usuario, a los sitios requeridos. Cuando de suele eliminar una pagina o sección, normalmente se deben modificar varios enlaces, por lo que se debe de llevar a cabo un prueba completa de validación de enlaces para no dejar enlaces "caídos" o "rotos". 

Recuperación de errores

Es la capacidad del sistema para recuperarse ante fallos o errores, ya sea la recuperación de datos, que se vuelva a estar en linea o se recupere el control de la aplicación. La importancia radica en que la web, basada en la inmediatez, requiere de una recuperación lo mas inmediata posible.

Validación y recuperación de entrada del usuario

El seguridad de la aplicación entra en este aspecto, de suma importancia, para asignar los permisos o limitaciones a los usuarios.

Eficiencia

Relación entre el nivel de prestaciones de un sistema y el volumen de recursos utilizados en condiciones declaradas, comportamiento temporal y utilización de recursos. Es decir si consume una cantidad de recursos se espera una proporción de resultados, entre menor inversión se realice y mayor resultados, de la misma forma, se obtengan, mas nos beneficiaremos, entonces se dice que tendremos mejor eficacia. Los puntos que la determinan son:

  • Desempeño en tiempo respuesta
  • Rapidez de generación de página
  • Rapidez de generación de gráficos

Mantenibilidad

La facilidad de mantenimiento, se refiere la facilidad para realizar modificaciones especificas, así como su capacidad para ser analizado, para ser cambiado, su estabilidad y su capacidad para ser probado.
  • Facilidad de corregir
  • Adaptabilidad
  • Extensibilidad

Conclusión 

Normalmente cuando visitamos una aplicación web, o simplemente una pagina de Internet opinamos sobre lo si es buena o no, ya sea cerrando inmediatamente por el tiempo en el que tarda en cargar (eficiencia) o nos salimos por que no encontramos fácilmente los contenidos que requerimos (usabilidad). Y, aunque los puntos de vista individuales varían enormemente. por ejemplo: algunos usuarios disfrutan con gráficos llamativos, en cambio otros solo quieren un texto sencillo. debemos considerar que, la percepción de "lo bueno" por parte del usuario (y como consecuencia, la aceptación o no aceptación resultante de la aplicación web) podría ser más importante que cualquier discusión técnica sobre la calidad de la aplicación web.



Ejemplo

Vamos a analizar una aplicación web para aterrizar algunos de los conceptos.

Github web

Podemos comenzar con el dominio:
Indica que es una entidad comercial (.com). Y es un nombre corto, sencillo y es el nombre de la linea de servicios de la plataforma. 


La navegación es realmente sencilla, el problema serian los idiomas, Github solo se encuentra disponible en español. 


Github cuenta con una seccin de ayuda, que muestra los problemas (issues) mas comunes para facilitar las busqueda.

Ademas de una opcion de contacto para el reporte de fallos o errores, así como sugerencias (feedback). 


La búsqueda muestra los resultados mas populares a lo buscado, ademas ofrece filtrar la búsqueda, por categorías como lenguajes, código, comentarios, personas, y otras mas.
Los tiempos de respuesta son buenos a simple vista. 


El login se realiza con tu usuario o correo y contraseña (Seguridad-Fiabilidad)


Para mejorar la seguridad se puede habilitar la autenticación de dos pasos (Seguridad-Fiabilidad x2)



Y como es el estilo de Github, simple y bonito, nos genera paginas de control de errores, por ejemplo si no encuentra una sección que no existe, por error del usuario.
Lamentablemente analizar los errores o la facilidad de mantenimiento esta fuera de nuestras manos, pero confió en que el equipo de Github, al enfocarse en desarrollar para desarrolladores, hicieron un excelente trabajo en la elaboración de la aplicación.





  • © 2017 GitHub, Inc. Todos los derechos reservados. Referencia de imágenes sin fines de lucro.



  • Rodrigo Rubio Haro - CECyT 9
    RUBIO HARO RODRIGO RODOLFO
    INSTITUTO POLITÉCNICO NACIONAL
    CENTRO DE ESTUDIOS CIENTÍFICOS Y TECNOLÓGICOS 9
    "JUAN DE DIOS BÁTIZ"



    Referencias

    • Tabla de Extensiones de Dominio por país. 01/05/17, de Web Usable Sitio web: http://www.webusable.com/ExtensionsTable.htm
    • Dominios Genéricos. 01/05/17, de hostea.pe Sitio web: http://dominios.hostea.pe/significado-usos-nombres-dominio.php
    • Juan Carlos Medina Martínez, Lorena Alonso Guzmán, Víctor Manuel Hernández Alarcón, Claudia Mondragón Gómez. (Julio 2013). Diagramas de navegación en aplicaciones Web. VINCULOS, Vol10 Num2, 01/05/17, De revistavinculos.udistrital.edu.co Base de datos.
    • Oriol Planas.. (2015). Importancia para el posicionamiento web la elección del dominio. 01/05/17, de Encodi Sitio web: https://seo.encodi.net/dominio-y-url/importancia-posicionamiento-web-eleccion-dominio/
    • Dumas, J., Redish, J. (1994) A practical guide to usability testing Intellect Books
    • María Martínez. (2016). Accesibilidad web desde las leyes que la apoyan. 01/05/17, de HEARCOLORS Sitio web: https://www.hearcolors.com.mx/?p=articulo&id=441
    • Jennyfer Lopez. (2010). INGENIERÍA WEB. 01/05/17, de Blogger Sitio web: https://upolijenny.blogspot.mx/2010/12/ingenieria-web.html
    • JOSEFINA MARTÍNEZ GÒMEZ . (2012). APLICACIÓN DE LA INGENIERIA WEB A SITIOS WEB . UNIVERSIDAD AUTÒNOMA DE BAJA CALIFORNIA SUR: ÀREA DE CONOCIMIENTO DE CIENCIAS DEL MAR DEPARTAMENTO DE SISTEMAS COMPUTACIONALES.
    • Gerardo Padilla Enrique Villa. (2016). Ingeniería de la Confiabilidad de Software. 01/05/17, de SG Buzz Sitio web: https://sg.com.mx/revista/12/ingenieria-la-confiabilidad-software#.WQfcKdo1_tQ

    Entradas populares de este blog

    Tabla Periódica de la Web: Resumen

      Resumen. Al momento de desarrollar un proyecto, se propone la fase de resumen del proyecto en donde se recolecta la información necesaria para proceder con la planeación del proyecto. Aunque todas las etapas de desarrollo son importantes, al ser la primera, definirá en gran parte si el proyecto tiene éxito o no. Veremos el desglose de cada uno de los elementos de esta etapa. En la etapa de resumen tenemos 8 elementos. 1. Definición de Proyecto (PrD) Definir el proyecto es establecer la idea principal del proyecto, la piedra angular. En este primer elemento debemos considerar que deberá moldearse y pulirse esa idea. 2. Target (Ta) Definida la idea principal del proyecto, tenemos que delimitar lo más posible el público objetivo o target que se verá beneficiado del proyecto.  3. Objetivos (Go) Establecer objetivos específicos sobre que tendrá que realizar el sistema, estos deben de estar en función del público elegido. 4. Especificaciones Técnicas (TS) Las especificaciones Técnicas a di

    Tabla Periódica de la Web: Planeación

    Planeación. Una vez que tenemos claro que cosas se quieren llevar a cabo en nuestra webapp, diseñar un plan teniendo en cuenta nuestros objetivos, recursos, presupuesto, entre otros factores, nos permitirá desarrollar nuestro proyecto enfocado completamente a las necesidades planteadas.  Es importante integrar al equipo de desarrollo en la etapa de planeación, se fomenta el sentimiento de propiedad y usualmente se verán más comprometidos con el proyecto. Este punto se puede argumentar con el principio de los equipos autónomos de las metodologías ágiles. 1. Investigación y desarrollo de Conceptos Una vez dados los primeros requisitos del cliente, se deberá hacer una investigación, está dependerá de la complejidad de lo solicitado. Investigar y desarrollar los conceptos dados. La investigación tiene como fin que el equipo de desarrollo comience a formular propuestas para la arquitectura de la aplicación. 2. Lluvia de ideas Organizar sesiones de este tipo, permitirá al equipo de desarroll