Ingeniería Inversa de Aplicaciones Web

Atención, abrir en una nueva ventana. PDFImprimirE-mail

Guías - Planificación Web

Usar puntuación: / 0
MaloBueno 

¿Para qué ingeniería inversa de aplicaciones web?

Cuando necesitas descubrir cómo funciona un sistema web, necesitarás hacer Ingeniería Inversa, cuyo objetivo es obtener información desde su interfaz pública (o con algún tipo de usuario registrado), con el fin de determinar cómo está hecha, qué la hace funcionar, qué tareas o actividades lleva a cabo, cómo lo hace y mediante qué pasos, etc.

Necesitas poder abstraer de una aplicación web su funcionalidad, interactividad, y comprender mediante qué acciones presta los servicios a sus usuarios.

La ingeniería inversa es una ayuda o complemento importante del análisis de requerimientos de un sistema de software (ya sea web o no) porque permite reutilizar información clave en el enfoque de un proyecto.

A continuación, detallo un proceso muy sencillo (hay cuestiones teóricas que no menciono por exceder del alcance del presente artículo, y porque pretendo enfocarme en la utilidad práctica inmediata)

Ingeniería inversa aplicada a la web - paso a paso

1- Navega por la aplicación web e identifica cada página web (según la finalidad, tipo y uso que tenga):

    a- página principal (homepage)

    b- páginas de registro, o páginas inserción/actualización de datos (registration pages, insert/updating data pages)

    c- páginas de búsqueda (search pages)

    d- páginas de resultados (search result pages)

    e- páginas de información (information pages / product pages)

    * páginas índice (index pages) de diferentes niveles

    * páginas destino (landing pages)

Anota todos los datos que encuentres en una planilla de cálculo o documento Word, vas a necesitar usar tablas para introducir los tipos de datos. No olvides que el objeto de la ingeniería inversa va a ser el poder reproducir el sistema web investigado, en una aplicación que imite y perfeccione las mejores prácticas descubiertas y analizadas.

 

2) Haz un relevamiento de las propiedades de cada documento web:

  • nombre archivo y url,
  • descripción,
  • metadatos,
  • títulos y encabezados,
  • imágenes,
  • textos,
  • formularios,
  • etc

Esto debe estar unido a los datos recogidos en el punto 1), puesto que cada documento web en el cual relevarás sus propiedades, deben caer en alguna de las categorías anteriores (página objetivo, página de resultados, página de inserción de datos, etc)

 

3) Identifica los elementos de browsing (navegación), su organización/ordenamiento/jerarquía:

  • menúes
  • breadcrumbs
  • páginas de resultados
  • paginadores

 

4) Busca o genera un arbol de navegación / mapa de sitio para determinar su estructura taxonómica (AI)

 

5) Presta especial atención a las "insert/updating data pages" (páginas donde se cargan o actualizan datos) , y las "search, result pages" puesto que estas revelan los datos que almacena y manipula el sistema en su base de datos. Esto es muy muy importante y te ayudará a diseñar tu base de datos propia.

Debe hacerse una lista para cada formulario de ingreso de datos, con los campos que se deben completar. A veces es recomendable registrarse como usuario y posteriormente ingresar a las interfaces privadas para hacer un relevamiento completo de los datos que manipula la aplicación.

Luego debes establecer relaciones de datos en la aplicación investigada para poder luego diseñar y normalizar la base de datos de la aplicación propia.

Tal vez no sepas que es "diseñar y normalizar" una base de datos, pero eso ahora no importa, lo importante es que puedas comunicarle al programador de tu aplicación qué datos debe manipular la misma. Obviamente tu propio sitio no manejará los mismos datos que la aplicación que investigas, por eso debes adecuar todos los datos relevados a tus propias necesidades y requerimientos.

 

6) Haz un análisis de los procesos que lleva a cabo la aplicación en cada acción del usuario dentro de una sesión cualquiera.

Esto te ayudará a plantear los algoritmos (funciones) que deban aplicarse al tratamiento de los datos almacenados por el sistema en su base de datos. En el Modelo Vista Controlador, esto sería definir la lógica de la aplicación: su funcionalidad, las tareas que lleva a cabo, etc.

 

Consejo final

Siempre debes adecuar los alcances de tu proyecto a tus propias posibilidades y recursos. Es útil priorizar funcionalidades cuando hagas ingeniería inversa, separándolas entre:

  • funcionalidades básicas y fundamentales (la principal prioridad)
  • funcionalidades secundarias (son menos críticas/prioritarias y pueden implementarse a futuro)

Si practicas ingeniería inversa sobre una aplicación grande, seguramente vayas a sacar muy buenas conclusiones de esa sesión, pero luego en la práctica probablemente no tendrás los recursos necesarios para reproducirla. Debes ser realista siempre.

Por ejemplo, si tu idea es montar una tienda online de venta de libros, puedes estudiar cómo está diseñada amazon.com, pero sin dudas seguramente no esté a tu alcance y posibilidades reproducir una aplicación de semejante magnitud.

Trackback(0)
Comentarios (0)Add Comment

Escribir comentario
smaller | bigger

security code
Escribe los caracteres de la imagen


busy

POTENCIADO POR: