Fundamentos de WebApps y Principios de Ingeniería de Software
Introducción a las WebApps
Las WebApps son funciones aisladas al usuario final que integran bases de datos corporativas y aplicaciones de negocio. Según Powell, estas representan una mezcla de publicaciones, desarrollo de software, mercadotecnia y computación.
Atributos de las WebApps
- Uso intensivo de redes: Residen en una red y atienden las necesidades de una comunidad de clientes con acceso a internet o intranets.
- Concurrencia: Capacidad para gestionar un gran número de usuarios simultáneos.
- Carga impredecible: El número de usuarios fluctúa constantemente.
- Rendimiento: La velocidad de respuesta es crítica para la retención del usuario.
- Disponibilidad: Los usuarios demandan una operatividad constante (24/7).
- Orientada a los datos: Su función principal es el uso de hipermedios para brindar contenido (texto, gráficas, audio) y acceder a bases de datos externas.
- Contenido sensible: La calidad de la WebApp depende de la estética y la relevancia del contenido.
- Evolución continua: El contenido se actualiza constantemente, a diferencia del software convencional.
- Inmediatez: El tiempo de llegada al mercado suele ser muy reducido (días o semanas).
- Seguridad: Al acceder a una red, es complejo limitar el acceso, por lo que se requieren medidas estrictas en la infraestructura y la aplicación.
- Estética: La apariencia y la percepción del diseño técnico son fundamentales para el éxito.
Realidades del Desarrollo de Software en el Siglo XXI
- Comprensión del problema: Es vital entender los requerimientos antes de desarrollar, dado que el software impacta todos los aspectos de la vida.
- Diseño crucial: La complejidad actual requiere equipos multidisciplinarios y una interacción cuidadosa.
- Calidad superior: Las fallas pueden generar inconvenientes graves debido a la dependencia tecnológica.
- Mantenibilidad: Un software fácil de mantener aumenta su valor, longevidad y capacidad de adaptación.
Ingeniería de Software: Definición y Fundamentos
La Ingeniería de Software es un enfoque sistemático, disciplinado y cuantificable para el desarrollo, operación y mantenimiento de software. Se basa en una tecnología de capas con un compromiso total hacia la calidad.
Capas de la Ingeniería de Software
- Proceso: Une las capas de desarrollo y forma la base para el control de la administración de proyectos.
- Métodos: Proporcionan la experiencia técnica necesaria basada en principios de ingeniería.
- Herramientas: Apoyo automatizado para el proceso (Ingeniería de Software Asistida por Computadora - CASE).
Proceso de Software
No es una prescripción rígida, sino un marco adaptable. Se estructura en 5 actividades principales:
- Comunicación: Definición de características y funciones con el cliente.
- Planeación: Creación de un "mapa" o plan de proyecto que describe riesgos, recursos y productos.
- Modelado: Bosquejo para entender requerimientos y diseño.
- Construcción: Generación de código y pruebas para detectar errores.
- Despliegue: Entrega al cliente para evaluación y retroalimentación.
Actividades Sombrilla
Son procesos transversales que garantizan el éxito del proyecto:
- Seguimiento y control: Evaluación del progreso y toma de acciones correctivas.
- Administración de riesgos: Identificación de factores que afecten la calidad o el resultado.
- Aseguramiento de calidad: Definición y garantía de los estándares del software.
- Revisiones técnicas: Evaluación para detectar y eliminar errores.
- Medición: Verificación de que el software satisfaga las necesidades del usuario.