Introducción a la Ingeniería de Software y la Ingeniería Web
Introducción a la Ingeniería de Software
Definición de Proceso
Un proceso puede definirse como un conjunto de fases, actividades, acciones y tareas que se ejecutan cuando va a crearse algún producto del trabajo.
Niveles de un Proceso
- Fase: Una actividad busca lograr un objetivo amplio (por ejemplo, comunicación con el cliente).
- Actividad: Una actividad busca lograr un subobjetivo amplio dentro de una fase (por ejemplo, «análisis del negocio»).
- Acción: Una acción es un conjunto de tareas que producen un producto importante del trabajo (por ejemplo, un modelo del diseño de la arquitectura).
- Tarea: Una tarea se centra en un objetivo pequeño, pero bien definido (por ejemplo, realizar la tarea de una «prueba unitaria» que produce un resultado tangible).
Fundamentos de la Ingeniería de Software
La ingeniería de software está formada por un proceso, un conjunto de métodos (prácticas) y un arreglo de herramientas que permite a los profesionales elaborar software de cómputo de alta calidad. El fundamento en el que se apoya la ingeniería de software es el compromiso con la calidad.
El fundamento para la ingeniería de software es la capa proceso. El proceso de ingeniería de software es el aglutinante que une las capas de la tecnología y permite el desarrollo racional y oportuno del software de cómputo.
El proceso define un conjunto de fases, actividades, productos, roles, etc., para el desarrollo de software. El proceso de software forma la base para el control de la administración de proyectos de software y establece el contexto en el que se aplican métodos técnicos y se generan productos del trabajo.
Introducción a la Ingeniería Web
Procesos en Ingeniería Web
Los modelos de procesos IWeb (Ingeniería Web) adoptan la filosofía ágil del desarrollo de software. El desarrollo ágil enfatiza un enfoque de desarrollo riguroso que incorpora rápidos ciclos de desarrollo.
Aun cuando los rápidos ciclos de tiempo dominan la reflexión acerca del desarrollo, se debe:
- Desarrollar un diseño.
- La implementación debe proceder en una forma incremental.
- Se debe iniciar un enfoque organizado de prueba.
Fase de Comunicación con el Cliente
La primera fase, «Comunicación con el Cliente», implica dos productos:
- Análisis del negocio.
- Formulación de la webapp.
Pasos para la Formulación
Contestar tres preguntas. Luego, con base en estas respuestas, agregar metas específicas de dos tipos:
- Definir perfiles de usuario.
- Afirmación del ámbito.
Afirmación del Ámbito
Esta afirmación del ámbito se escribe en términos generales pero de manera concisa. Notas importantes acerca de las metas, que no se hayan incluido en la información de los pasos anteriores. Notas generales acerca del contexto de aplicación del ámbito de uso de la aplicación web. Restricciones generales importantes. Formas de entrada de datos. Interacciones con otros sistemas o con bases de datos. Dependencias entre sistemas relacionados: ej. de dónde recibe información o a cuáles sistemas alimenta con sus datos de salida.
Desarrollo Ágil en Ingeniería Web
Dichas actividades del marco de trabajo (definición general del ciclo de vida de desarrollo de software) se deben definir dentro de un proceso que:
- Adopte el cambio.
- Aliente la creatividad y la independencia del equipo de desarrollo.
- Construya sistemas que utilicen pequeños equipos de desarrollo.
- Subraye el desarrollo evolutivo o incremental mediante el uso de cortos ciclos de desarrollo.
Asegurando con esto la agilidad del proceso.
Métodos en Ingeniería de Software e Ingeniería Web
Métodos en Ingeniería de Software
Los métodos de la ingeniería de software proporcionan la experiencia técnica para elaborar software. Incluyen un conjunto amplio de métodos, como métodos de comunicación, métodos de análisis de los requerimientos, métodos de modelación del diseño, métodos de construcción del programa, métodos de pruebas y métodos de soporte. Los métodos de la ingeniería de software se basan en un conjunto de principios fundamentales que gobiernan cada área de la tecnología e incluyen actividades de modelación y otras técnicas descriptivas.
Adaptación para Ingeniería Web
La variante respecto al concepto anterior, adaptando hacia Ingeniería Web, es que «El panorama de los métodos IWeb abarca un conjunto de labores técnicas que permiten al ingeniero Web comprender, caracterizar y luego construir una WebApp de alta calidad.
Categorías de Métodos IWeb
- Métodos de comunicación: Hacen referencia a cómo realizar la comunicación entre los interesados (stakeholders). Las técnicas de comunicación son particularmente importantes durante la recolección de requisitos y siempre que sea evaluado un incremento en la WebApp.
- Métodos de análisis de requisitos: Proporcionan una base para comprender el contenido que entregará una WebApp, la funcionalidad que proporcionará al usuario final y los modos de interacción que cada clase de usuario requerirá mientras ocurra la navegación por medio de la WebApp.
- Método de diseño: Proporcionan una base para comprender el contenido que entregará una WebApp, la funcionalidad que proporcionará al usuario final y los modos de interacción que cada clase de usuario requerirá mientras ocurra la navegación por medio de la WebApp.
- Métodos de prueba: Incorporan revisiones técnicas formales, tanto del contenido y el modelo de diseño como de una amplia variedad de pruebas que abordan conflictos a nivel de componentes y arquitectura.
Herramientas en Ingeniería de Software e Ingeniería Web
Herramientas en Ingeniería de Software
Las herramientas de la ingeniería de software proporcionan un apoyo automatizado o semiautomatizado para el proceso y los métodos. Cuando se integran las herramientas de modo que la información creada pueda ser utilizada por otra, queda establecido un sistema llamado ingeniería de software asistido por computadora (herramientas CASE) que apoya el desarrollo de software.
Herramientas en Ingeniería Web
Dichas tecnologías abarcan un amplio conjunto de descripción de contenido y lenguajes de modelación (por ejemplo, HTML, VRML, XML), lenguajes de programación (por ejemplo, Java), recursos de desarrollo basados en componentes (por ejemplo, CORBA, COM, ActiveX, .NET), navegadores, herramientas multimedia, herramientas de autoría de sitio, herramientas de conectividad de bases de datos, herramientas de seguridad, servidores y utilidades de servidor, y herramientas de administración y análisis de sitio.