Fundamentos de Arquitectura de Software y Metodologías Ágiles: Scrum, XP y el Modelo 4+1
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,54 KB
Introducción a la Arquitectura de Software
La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema. Define los componentes principales, sus relaciones y cómo interactúan para cumplir con los requisitos del sistema.
Ejemplos de Estilos Arquitectónicos
- Cliente-Servidor
- Arquitectura de 3 Capas
- Arquitectura Monolítica
Modelos de Vistas Arquitectónicas
A. Modelo 4+1 de Philippe Kruchten
El modelo 4+1, diseñado por Philippe Kruchten, se utiliza para describir la arquitectura de sistemas software mediante el uso de múltiples vistas concurrentes1. Las vistas describen el sistema desde el punto de vista de diferentes interesados (stakeholders), tales como usuarios finales, desarrolladores o directores de proyecto.
Las cuatro vistas principales del modelo son:
- Vista Lógica
- Vista de Desarrollo
- Vista de Proceso
- Vista Física
Además, una selección de casos de uso o escenarios se utiliza para ilustrar la arquitectura, sirviendo como una vista adicional. Por ello, el modelo se denomina 4+1 vistas1.
Principios y Metodologías de Desarrollo Ágil
B. Manifiesto Ágil
El 17 de febrero de 2001, diecisiete críticos de los modelos de mejora del desarrollo de software basados en procesos, convocados por Kent Beck (autor de Extreme Programming Explained), se reunieron en Snowbird, Utah. El objetivo era discutir técnicas y procesos para desarrollar software.
En esta reunión se acuñó el término “Métodos Ágiles” para definir a los enfoques que surgían como alternativa a las metodologías formales (como CMMI o SPICE), a las que consideraban excesivamente “pesadas” y rígidas debido a su carácter normativo y su fuerte dependencia de planificaciones detalladas previas al desarrollo.
C. Metodología Ágil
El Desarrollo Ágil de Software se refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental. Estas metodologías son imprescindibles en un entorno en el que la exposición a cambios es recurrente.
D. OPEN UP (Unified Process)
OPEN UP es un modelo de proceso que aplica enfoques interactivos e incrementales dentro de un ciclo de vida estructurado. Es apropiado para proyectos pequeños y de bajos recursos, y es aplicable a un conjunto amplio de plataformas y aplicaciones de desarrollo.
Roles y Responsabilidades en el Ciclo de Vida del Software
A continuación, se detallan diversos roles y las tareas o artefactos asociados a sus responsabilidades:
- A. Analista
- B. Arquitecto
- C. Desarrollador: Diseño, test de desarrollador, implementación, build.
- D. Líder de Proyecto: Plan de iteración, lista de elementos, plan de proyecto.
- E. Tester: Caso de prueba, script de prueba, log de prueba.
- F. Stakeholder (Interesado)
Metodologías Ágiles Específicas
E. Scrum
Scrum es un proceso en el que se aplica de manera regular un conjunto de buenas prácticas para trabajar colaborativamente en equipo y obtener el mejor resultado posible de un proyecto.
Roles de Scrum
- Scrum Master
- Product Owner
- Team (Equipo de Desarrollo)
Artefactos de Scrum
- Pila de Producto (Product Backlog)
- Pila del Sprint (Sprint Backlog)
- Sprint
- Incremento
F. XP (Extreme Programming)
XP es una metodología liviana de desarrollo de software. Es un conjunto de prácticas y reglas empleadas para desarrollar software, basada en diferentes ideas acerca de cómo enfrentar ambientes muy cambiantes.
Originada en el proyecto C3 para Chrysler, XP propone, en lugar de planificar, analizar y diseñar para el futuro distante, realizar estas actividades de forma incremental a través de todo el proceso de desarrollo.
Roles de XP
- Tester
- Cliente
- Programador
- Tracker (Seguimiento)
- Coach
- Consultor
- Jefe del Proyecto
Artefactos de XP
- Visión
- Historia de Usuario
- Cliente de Prueba
- Plan de Lanzamiento
- Metáfora
- Plan de Iteración Build