Modelo de Ciclo de Vida (Cascada)
Propone un conjunto de fases que se encadenan en secuencia. El fin de cada fase representa un hito del proyecto en el que se produce la entrega de un documento completo y preciso que se revisa y, una vez aprobado, se utiliza como información de entrada para la fase siguiente. Una fase no comienza hasta que no ha terminado la anterior y, en general, no es posible la vuelta atrás o, a lo sumo, es posible retroceder a la fase anterior si se ha detectado algún problema o error en sus artefactos de salida. Se trata de un modelo muy extendido, intuitivo y fácilmente controlable que resulta especialmente adecuado para problemas bien conocidos con requisitos estables. Por el contrario, no resulta adecuado para sistemas innovadores o con requisitos imprecisos o cambiantes.
Fases
- Análisis de requisitos: Captura de requisitos de usuario y especificación de requisitos funcionales y no funcionales y reglas de dominio.
- Diseño: Propuesta de partición y organización del sistema.
- Implementación y prueba unitaria: Traducción del diseño del sistema a código fuente y prueba unitaria.
- Integración y prueba de sistema: Combinación de componentes del sistema y pruebas de integración y de sistema.
- Operación y mantenimiento: Explotación y operación del sistema. Evolución del sistema.
Entregables Principales
- Especificación del sistema software.
- Diseño de arquitectura y componentes.
- Componentes implementados.
- Sistema integrado.
Conceptos Scrum
- Product Backlog: Lista priorizada de características del sistema en forma de historias de usuario, requisitos no funcionales, solicitudes de cambio o mejora, defectos, tareas técnicas exploratorias, etc., que el equipo de desarrollo tiene pendiente de implementar. Solo hay un Product Backlog por producto en desarrollo.
- Product Owner: Responsable del Product Backlog en representación de todos los stakeholders, incluyendo el propio equipo de desarrollo.
- Grooming: Actividad en la que el Product Owner es responsable de definir, refinar, estimar y priorizar de forma dinámica el Product Backlog.
- Sprint Backlog: Lista de características del Product Backlog que un equipo va a desarrollar en un Sprint, su descomposición en las tareas técnicas necesarias para llevar a cabo la implementación y una estimación del esfuerzo necesario. Hay un Sprint Backlog por Sprint y su responsable es el equipo de desarrollo.
- Burndown chart: Cuadro, diagrama o gráfica que permite trazar el esfuerzo total y pendiente en el Sprint Backlog a lo largo del Sprint. Se actualiza diariamente por el ScrumMaster.
- Sandbox: Extensión del Product Backlog a través del cual todos los stakeholders pueden proponer historias de usuario para su aprobación por el Product Owner o realizar comentarios y anotaciones sobre historias de usuario ya presentes en el Product Backlog.
- Dashboard: Cuadro de mandos del proyecto. Contiene información general, actividades realizadas e indicadores de progreso.
Gestión de Configuración y Entregas
- Repositorio de proyecto: Almacén gestionado de artefactos de desarrollo de software con procedimientos de registro de entrada y salida de dichos artefactos.
- Baseline: Conjunto de componentes de configuración estables, revisados y acordados que sirve como base para llevar a cabo la siguiente fase en el proceso de desarrollo (e.g., entrega de un Scrum Sprint). Una baseline solo puede cambiarse siguiendo el proceso de gestión de cambios formalmente definido para el proyecto.
- Entrega (Release): Versión de un sistema (baseline) que se distribuye a usuarios fuera del ámbito del equipo de desarrollo (normalmente clientes).
Modelos y Diagramas Fundamentales
El Modelo de dominio es un diagrama que se utiliza para modelar los conceptos (clases) relevantes al analizar un problema.
Un Diagrama de secuencia de nivel de sistema (SSD) es un diagrama que se utiliza para modelar la interfaz pública de un sistema software para un escenario de un caso de uso.
El modelo de dominio se crea a partir de la descripción textual del escenario de un caso de uso. El SSD se crea a partir de la descripción de uno de los escenarios descritos en un caso de uso.
Un modelo de dominio se representa como un diagrama de clases. Un SSD se representa como un diagrama de secuencia.
Actividades TPV
- Identificación de actores.
- Definición de historias de usuario y asociación con actores.
- Definición de hecho.
- Definición de pruebas de aceptación.
- Planificación de Sprint: priorización, estimación de esfuerzo, release plan, sprint plan.
- Generación de diferentes documentos técnicos en formato PDF.
Modelo de Proceso Unificado (UP)
Modelo de proceso iterativo para el desarrollo de sistemas software basado en una sucesión de miniproyectos (iteraciones) que refinan y completan incrementalmente el sistema hasta su versión final de producción. El carácter iterativo permite la validación y realimentación cíclica y la adaptación a cambios en los requisitos. Cada iteración puede verse como un recorrido por la secuencia de actividades de un ciclo de vida en cascada. En este modelo, las actividades se denominan disciplinas. En este tipo de ciclo de vida, las fases son un conjunto de iteraciones que llevan al proyecto a un determinado hito del plan de proyecto. El número de iteraciones y fases depende del proyecto concreto, aunque el UP propone cuatro fases: Inicio, Elaboración, Construcción, Transición.
Fases y Objetivos
- Inicio: Visión general del proyecto. Aceptación del compromiso de abordar el desarrollo.
- Elaboración: Captura de los requisitos de mayor valoración de negocio o riesgo. Implementación iterativa de la arquitectura del sistema.
- Construcción: Implementación del resto del sistema. Versión (alfa) ejecutable del sistema.
- Transición: Versión (beta) ejecutable del sistema. Despliegue y puesta en operación.
Diagramas UML
- Casos de uso: Funcionalidad ofrecida por el sistema a sus usuarios (actores).
- Diagrama de despliegue: Arquitectura física del sistema.
- Diagrama de clases: Representa clases, interfaces y sus relaciones. Se ha usado para generar el modelo de dominio que representa los conceptos del problema a abordar y sus relaciones.
- Diagrama de secuencia: Representa una interacción o intercambio de mensajes entre distintos objetos. Se ha usado para documentar los escenarios de un caso de uso mediante un diagrama de secuencia de nivel de sistema (SSD).
- Diagrama de actividad: Representa el flujo de control entre actividades en una máquina de estados. Se ha usado para modelar el flujo de trabajo con solicitudes.
- Diagrama de estados: Representa una máquina de estados y las transiciones entre ellos. Se ha utilizado para modelar la navegación del sitio web.
- Diagrama de paquetes: Representa la organización lógica de distintos elementos. Se ha utilizado para modelar la arquitectura lógica del sistema.
Relaciones UML
- Dependencia (`- – ->`): Se utiliza para indicar que un elemento utiliza a otro (relación de uso). Por ejemplo, se utiliza para indicar que una clase
MiApplet
utiliza a otra claseGraphics
como argumento en una operaciónpaint
. - Asociación (`____`): Se utiliza para indicar que existe una interconexión o enlace entre los objetos representados por las abstracciones relacionadas. Por ejemplo, se utiliza para indicar que un objeto de la clase
Biblioteca
almacena objetos de la claseLibro
. - Generalización (`_____|>`) : Se utiliza para indicar que existe una relación entre una abstracción general (superclase) y una abstracción más concreta del mismo tipo (subclase). Por ejemplo, se utiliza para indicar que una clase
Elipse
es una subclase de la claseFigura
. - Realización (`- – -|>`) : Se utiliza para indicar que un elemento implementa el comportamiento que otro elemento especifica. Por ejemplo, se utiliza para indicar que una clase
ArrayList
cumplirá el contrato especificado por la interfazList
.
Artefactos de Diseño UI/UX
- Boceto (Wireframe): Contenido de la interfaz, de baja calidad.
- Maqueta (Mockup): Contenido de la interfaz, de alta calidad.
- Diagrama de contenido: Estructura de la aplicación/sitio web.
- Diagrama de estados: Flujo de navegación.
- Wireflow: Flujo de navegación.
- Prototipo: Contenido y estructura de la interfaz, elementos de flujo de navegación.