La Web fue creada alrededor de 1990 por el inglés Tim Berners-Lee y el belga Robert Cailliau mientras trabajaban en el “Centro Europeo de Investigación Nuclear” en Ginebra, Suiza. Desde entonces, Berners-Lee ha jugado un papel activo guiando el desarrollo de estándares Web, tal como los lenguajes de marcado con los que se crean las páginas Web, y en los últimos años ha abogado por su visión de una Web Semántica. La Web tal y como se la conoce, ha permitido un flujo de comunicación global a una escala sin precedentes en la historia humana. Personas separadas en el tiempo y el espacio, pueden usar la Web para intercambiar, o incluso desarrollar mutuamente, sus pensamientos más íntimos, o alternativamente sus actitudes y deseos cotidianos. Experiencias emocionales, ideas políticas, cultura, idiomas musicales, negocio, arte, fotografías, literatura, etc.; muchos elementos pueden ser compartidos y diseminados digitalmente con un esfuerzo mínimo, haciendo llegar casi de forma inmediata a cualquier otro punto del planeta.
Según la definición de Roger Pressman realizada el año 2002, la ingeniería del software es una disciplina o área de la Informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad que resuelven temas de todo tipo. Esta definición permite incluir dentro de la ingeniería del software a un gran número de áreas muy diversas de la informática, desde el desarrollo de sistemas operativos a la construcción de compiladores o los nuevos desarrollos de sistemas en la Web. La aplicación de la ingeniería del software permite obtener software de modo rentable y de calidad, asegurando que los resultados se adecuan a las necesidades reales del usuario. Esta ventajosa característica de la ingeniería del software ha provocado que, cuando los sistemas evolucionaron al entorno de la hipermedia y de la Web, los grupos de investigación encaminaron sus trabajos a encontrar métodos y técnicas enmarcados dentro de la ingeniería del software que se adapten a las nuevas características de estos entornos. En el mismo contexto, una aplicación Web es un sistema informático que los usuarios utilizan accediendo a un servidor Web a través de Internet o de una intranet. Las aplicaciones Web son populares debido a la practicidad del navegador Web como cliente ligero. La facilidad para actualizar y mantener aplicaciones Web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su popularidad. Aplicaciones como los Webmails, Wikis, Weblogs, tiendas en línea y la Wikipedia son ejemplos bastante conocidos de aplicaciones Web.
Analizando las principales tendencias se puede decir que las diferencias principales que obligan a la inclusión de nuevos modelos y la adaptación de los existentes son: (1) Complejidad de la estructura hipermedia. El complejo sistema navegacional que se establece debido a la existencia de hiperenlaces e hipervínculos causa, en muchas ocasiones, que el usuario pueda llegar a perderse en el hiperespacio si el sistema no se construye basado en alguna técnica que garantice la calidad del mismo. (2) Colaboración interdisciplinaria. La gran cantidad y diversidad de roles que deben tomar parte en el desarrollo de sistemas Web complica su desarrollo en comparación con los sistemas clásicos. En roles como los que desempeñan los analistas, diseñadores gráficos, expertos en marketing, usuarios finales, etc. deben trabajar con técnicas que sean amigables para que cada uno de ellos pueda elaborar adecuadamente su trabajo. (3) Visión externa de la Web. Mientras que en los sistemas clásicos el número de usuarios finales estaba normalmente definido y cerrado o al menos controlado a un grupo de usuarios concreto, en los sistemas Web la visión cambia. El número de usuarios no es sólo ilimitado, si no que, además, es totalmente impredecible en la mayoría de los casos. Los roles de usuarios finales que interactúan con el sistema es abierto y debe adaptarse al desarrollo que pueda satisfacer las necesidades de cualquier usuario anónimo sin llegar a conocer su perfil. (4) Mantenimiento. Al ser más abiertos, los sistemas Web requieren de un mantenimiento tanto adaptativo como correctivo, más crítico que en los sistemas clásicos, con el añadido de que, además, los sistemas Web normalmente deben funcionar 24 horas al día y 7 días a la semana, lo que hace disponer de menos tiempo para las tareas de mantenimiento.
La ingeniería Web no es un clónico perfecto, pero toma prestado muchos de los conceptos y principios básicos de la ingeniería del software orientada a módulos, dando importancia a las mismas actividades técnicas y de gestión. Como elemento central se definen las aplicaciones Web como sistemas y aplicaciones basadas en Web. Al igual que cualquier disciplina, la ingeniería Web aplica un enfoque genérico que se suaviza con estrategias, tácticas y métodos especializados. El proceso de ingeniería Web comienza con una formulación del problema que pasa a resolverse con las aplicaciones Web. Se planifica el proyecto y se analizan los requisitos de la aplicación Web, posteriormente se lleva a cabo el diseño de interfaces, el diseño arquitectónico y el diseño de navegación. El sistema se implementa utilizando lenguajes y herramientas especializadas asociadas con la Web. Posteriormente se ejecutan las pruebas. Debido a que las aplicaciones Web están en constante evolución, deben de establecerse los mecanismos para el control de configuraciones, garantía de calidad y soporte continuado.
En este sentido, la ingeniería Web es multidisciplinaria y aglutina contribuciones de diferentes áreas: arquitectura de la información, ingeniería de hipermedia, ingeniería de requisitos, diseño de interfaz de usuario, usabilidad, diseño gráfico y de presentación, diseño y análisis de sistemas, ingeniería del software, ingeniería de datos, indexado y recuperación de información, testeo, modelado y simulación, despliegue de aplicaciones, operación de sistemas y gestión de proyectos. La ingeniería Web no es un clon o subconjunto de la ingeniería de software aunque ambas incluyen, como parte de su ciclo de vida, el análisis y desarrollo del software, pues a pesar de que la ingeniería Web utiliza principios de la ingeniería del software, incluye nuevos enfoques, metodologías, herramientas, técnicas, guías y patrones para cubrir los requisitos particulares asociados a las aplicaciones Web.
Los principales aspectos de la ingeniería Web incluyen, entre otros, los siguientes temas: (1) Diseño de procesos de negocio para aplicaciones Web. (2) Entornos para el desarrollo de aplicaciones Web integrados. (3) Herramientas de autor para contenido multimedia. (4) Pruebas de rendimiento de aplicaciones basadas en Web. (5) Personalización y adaptación de aplicaciones Web. (6) Modelado de procesos para aplicaciones Web. (7) Herramientas y métodos de prototipazo. (8) Control de calidad y pruebas de sistemas. (9) Ingeniería de requisitos para aplicaciones Web. (10) Aplicaciones para la Web Semántica. (11) Aplicaciones Web móviles y ubicuas. (12) Usabilidad de aplicaciones Web. (13) Accesibilidad para la Web. (14) Métricas para la Web, estimación de costos y medición. (15) Gestión de proyectos Web y gestión de riesgos. (16) Desarrollo y despliegue de servicios Web.
Desde hace años muchos grupos de investigación han encaminado sus trabajos al desarrollo de entornos metodológicos orientados hacia las aplicaciones Web en general. De esta forma metodologías como el Modelo para el Diseño de Hipermedios (HDM), el Método para el Diseño Hipermedia Orientado a Objetos (OOHDM) y otras más actuales como la Ingeniería Web basada en el Lenguaje de Modelado Unificado (UWE) trabajan en el entorno de la Ingeniería Web proponiendo métodos, técnicas y modelos que se adecuen al mismo.