Parcial 2 · Ingeniería de Software

Análisis y Diseño
Orientado a Objetos

Guía maestra integrada: UML · RUP · Casos de Uso · BCE · FURPS+ con información extendida y ejemplos para cada concepto.

UML 2.x RUP · Kruchten Vistas 4+1 FURPS+ Estereotipos BCE

Mapa Mental

HAZ CLIC EN CUALQUIER TARJETA PARA IR A LA SECCIÓN DETALLADA

UML

UML

LENGUAJE UNIFICADO DE MODELADO

Estándar OMG para visualizar, especificar, construir y documentar artefactos software. No es una metodología — es un lenguaje con 14 tipos de diagramas.

Arquitectura 4+1 vistas
Casos de Uso · Lógica · Procesos · Implementación · Despliegue
14 tipos de diagramas
7 estructurales + 7 de comportamiento
Origen IEEE / OMG 1997
Grady Booch, Ivar Jacobson, James Rumbaugh
UC

Casos de Uso

INGENIERÍA DE REQUERIMIENTOS

Secuencias de acciones que producen un resultado de valor para un actor. Capturan requerimientos funcionales desde la perspectiva del usuario.

«include» — inclusión
Subflujo obligatorio, siempre se ejecuta. Flecha al incluido.
«extend» — extensión
Comportamiento condicional. El base es completo sin él.
Herencia de actores
Actor hijo hereda todas las asociaciones del padre.
RUP

RUP

RATIONAL UNIFIED PROCESS

Proceso iterativo, incremental y centrado en la arquitectura. 4 fases con 9 flujos de trabajo ejecutados en paralelo con diferente intensidad.

Inicio → Elaboración → Construcción → Transición
La elaboración produce la línea base de arquitectura
9 workflows paralelos
Requerimientos, Análisis, Diseño, Impl, Pruebas…
MD

Modelo de Dominio

ANÁLISIS CONCEPTUAL

Representación visual de clases conceptuales del mundo real. Sin métodos — solo atributos y relaciones. Base para el diseño de clases de software.

3 tipos de asociación
Simple · Agregación (rombo vacío) · Composición (rombo lleno)
Multiplicidad
0..1 · 1 · 1..* · 0..* y sus significados
DSS

DSS

DIAGRAMA DE SECUENCIA DEL SISTEMA

Muestra los eventos que actores externos envían al sistema tratado como caja negra. Puente entre análisis y diseño.

Caja negra
El sistema es un solo objeto :Sistema, sin mostrar internas
Sintaxis de eventos
nombreOperacion(param1, param2) — respuestas punteadas
BCE

Estereotipos BCE

BOUNDARY · CONTROL · ENTITY

Patrón arquitectónico de RUP para separar responsabilidades. Equivale a MVC. Regla estricta de comunicación entre capas.

Regla de comunicación
Actor → Boundary → Control → Entity (nunca saltar capas)
Notación gráfica
Cada estereotipo tiene símbolo UML propio en diagramas
DI

Diagramas de Interacción

DISEÑO DETALLADO

Muestran la colaboración entre objetos para ejecutar un flujo. Dos variantes: foco temporal (secuencia) vs foco estructural (comunicación).

Secuencia — temporal
Línea de vida + activación. Se lee de arriba hacia abajo.
Comunicación — estructural
Mensajes numerados obligatoriamente (1, 1.1, 1.2, 2…)
F+

FURPS+

REQUERIMIENTOS NO FUNCIONALES

Clasificación estándar para requerimientos no funcionales. Complementario a ISO 25010. El "+" agrega restricciones de diseño, interfaz y físicas.

F · U · R · P · S
Functionality · Usability · Reliability · Performance · Supportability
"+" — restricciones adicionales
Legales · Físicas · Implementación · Interfaz · Diseño

UML LENGUAJE

El Lenguaje Unificado de Modelado fue creado en 1997 por Grady Booch, Ivar Jacobson y James Rumbaugh ("los tres amigos") en Rational Software, luego estandarizado por la OMG. UML es un lenguaje, no una metodología: describe qué modelar, no cómo proceder. Versión actual: UML 2.5.1.

PURPOSE ¿Para qué sirve UML?

  • Visualizar la estructura y comportamiento de un sistema
  • Especificar requerimientos y arquitectura de forma precisa
  • Construir modelos que guíen la implementación
  • Documentar decisiones de diseño para el equipo

HISTORY Los Tres Amigos

Booch (Booch Method), Jacobson (OOSE — Casos de Uso) y Rumbaugh (OMT) unificaron sus notaciones en 1994–1997. UML adoptó los Casos de Uso de Jacobson como artefacto central, el foco en objetos de Booch y el análisis estructural de Rumbaugh.

ARQUITECTURA 4+1 VISTAS — Philippe Kruchten, 1995

VistaAliasStakeholder principalDiagramas típicosPregunta que responde
Casos de Uso (+1)EscenariosCliente, Usuario finalCasos de Uso¿Qué hace el sistema?
LógicaDiseñoAnalista, DiseñadorClases, Secuencia, Estado¿Cómo está estructurado?
ProcesosDinámicaIntegrador de sistemasActividad, Secuencia¿Cómo se comporta en tiempo real?
ImplementaciónComponentesProgramadorComponentes, Paquetes¿Cómo se organiza el código?
DespliegueFísicaOperaciones / DevOpsDespliegue¿En qué hardware corre?

14 TIPOS DE DIAGRAMAS UML 2.x

ESTRUCTURALES (7)

  • Clases — estructura estática
  • Objetos — instancias en un momento
  • Componentes — módulos de software
  • Despliegue — hardware y software
  • Paquetes — agrupación lógica
  • Estructura compuesta — partes internas
  • Perfil — extensiones UML

COMPORTAMIENTO (7)

  • Casos de Uso — requerimientos
  • Actividad — flujo de trabajo
  • Estado — ciclo de vida
  • Secuencia — interacción temporal
  • Comunicación — interacción estructural
  • Tiempos — restricciones temporales
  • Visión general interacción

Casos de Uso REQUERIMIENTOS

Un Caso de Uso (UC) es una secuencia de acciones que el sistema realiza para producir un resultado de valor observable para un actor. Captura el qué sin entrar en el cómo. Ivar Jacobson introdujo este concepto en OOSE (1992).

ACTOR Definición y reglas

  • Rol externo al sistema (persona, software, hardware)
  • No es parte del sistema — está fuera del límite
  • Se representa como figura de palo con nombre
  • Puede haber herencia: Administrador extiende Usuario
  • Actor primario: inicia el UC · Secundario: apoya

CASO DE USO Nomenclatura

  • Elipse con nombre en verbo infinitivo
  • Ejemplo: "Registrar Venta", "Consultar Saldo"
  • Representa una meta completa del usuario
  • Vive dentro del rectángulo del sistema
  • Tiene un flujo principal + flujos alternativos
Regla de oro — «include» vs «extend» «include»: el comportamiento incluido es SIEMPRE necesario para que el caso base funcione. El caso base está INCOMPLETO sin él. La flecha va del base al incluido.

«extend»: el comportamiento extendido solo ocurre BAJO CONDICIONES ESPECÍFICAS. El caso base es FUNCIONALMENTE COMPLETO sin la extensión. La flecha va de la extensión al base.
RelaciónTipo flechaDirecciónEl base sin ella…Ejemplo
«include» Discontinua punta abierta Base → Incluido Está incompleto Pagar Pedido «include» Verificar Stock
«extend» Discontinua punta abierta Extensión → Base Es completo Aplicar Descuento «extend» Pagar Pedido
Asociación Línea sólida Actor ↔ UC Cliente — Realizar Compra
Generalización Flecha sólida punta cerrada Hijo → Padre Pagar con Tarjeta → Pagar Pedido

RUP METODOLOGÍA

El Rational Unified Process es un marco de proceso iterativo, incremental y centrado en la arquitectura. Desarrollado por Rational Software (Grady Booch, Philippe Kruchten). El esfuerzo se distribuye de forma desigual: la Elaboración define la arquitectura y es el corazón técnico del proyecto.

FASE 1
Inicio
Viabilidad, alcance, riesgos críticos, modelo de negocio inicial. Decisión go/no-go.
FASE 2
Elaboración
Línea base de arquitectura. UC de alto riesgo. Prototipos ejecutables del núcleo. ~30% del esfuerzo total.
FASE 3
Construcción
Desarrollo masivo de flujos de menor riesgo. Versiones beta funcionales.
FASE 4
Transición
Pruebas de aceptación, capacitación y despliegue en producción.

9 FLUJOS DE TRABAJO (WORKFLOWS)

CORE WORKFLOWS

  • Modelado de negocio — contexto organizacional
  • Requerimientos — UC y requerimientos no funcionales
  • Análisis y Diseño — arquitectura y colaboraciones
  • Implementación — código, componentes
  • Pruebas — casos de prueba, integración
  • Despliegue — instalación en producción

SUPPORT WORKFLOWS

  • Gestión de configuración y cambios
  • Gestión del proyecto — planificación, riesgos
  • Entorno — herramientas, procesos del equipo
Principio clave de RUP RUP no prescribe un único proceso — es un framework configurable. Cada organización adapta qué artefactos producir, qué workflows activar y con qué intensidad. Un proyecto pequeño puede omitir el workflow de "Modelado de negocio" sin problemas.

Modelo de Dominio ANÁLISIS

Representación visual de las clases conceptuales del dominio del problema. Es un artefacto de análisis, no de diseño: no hay métodos, no hay código — solo sustantivos del mundo real con sus atributos y relaciones. Es la base para construir el Diagrama de Clases de Diseño.

PROHIBIDO Lo que NO va aquí

  • Métodos / operaciones de las clases
  • Clases de software (Controller, DAO, Service…)
  • Tipos de dato Java/C# (String, int)
  • Detalles de implementación de base de datos

PERMITIDO Contenido válido

  • Clases conceptuales: Libro, Cliente, Préstamo
  • Atributos: isbn, fechaDevolucion, nombre
  • Asociaciones con nombre de relación (verbo)
  • Multiplicidad en cada extremo de la relación
  • Asociaciones de herencia cuando existe generalización real

TIPOS DE ASOCIACIÓN

TipoNotación UMLSignificadoEjemplo
Asociación simpleLínea sólidaRelación entre igualesEmpleado — Proyecto
AgregaciónRombo vacío en el "todo"Todo/Parte, parte puede existir solaDepartamento ◇— Empleado
ComposiciónRombo relleno en el "todo"Parte no puede existir sin el todoPedido ◆— LineaPedido
GeneralizaciónFlecha punta cerrada vacíaHerencia conceptual (es-un)Perro → Animal

MULTIPLICIDADES COMUNES

NotaciónSignificadoEjemplo en español
1Exactamente unoUn empleado tiene exactamente 1 número de seguridad social
0..1Cero o uno (opcional)Un empleado puede tener 0 o 1 auto de empresa
1..*Uno o más (al menos uno)Un pedido tiene 1 o más líneas de pedido
0..* ó *Cero o más (cualquiera)Un cliente puede tener 0 o más pedidos
m..nEntre m y nUn equipo tiene entre 3 y 12 miembros

DSS PUENTE ANÁLISIS-DISEÑO

El Diagrama de Secuencia del Sistema muestra las interacciones de los actores con el sistema sin revelar la estructura interna. Es el primer paso para identificar las operaciones del sistema a partir de los Casos de Uso.

REGLA Caja negra

El sistema aparece como un único objeto :Sistema. No se muestran clases internas, ni la división BCE. Eso ocurre en el Diagrama de Secuencia de Diseño posterior.

SINTAXIS Nombrado de eventos

  • Nombre en camelCase como operación
  • Parámetros relevantes entre paréntesis
  • Ejemplo: introducirArticulo(idProducto, cantidad)
  • Retornos con línea punteada y nombre descriptivo
  • Bucles y condiciones con fragmentos combinados [loop] [alt]
Elementos del DSS Línea de vida: línea vertical discontinua que representa la existencia de un participante (actor o sistema) a lo largo del tiempo.
Activación: rectángulo estrecho sobre la línea de vida que indica que el objeto está ejecutando una operación en ese instante.
Eje temporal: de arriba hacia abajo — el orden vertical es el orden cronológico de los eventos.
Fragmentos combinados: recuadros con etiqueta [alt], [loop], [opt] para modelar condicionales y ciclos.

Estereotipos BCE ARQUITECTURA

El patrón Boundary-Control-Entity de RUP separa responsabilidades en tres capas bien definidas. Es la aplicación del principio MVC a nivel de clases de análisis/diseño. La regla de comunicación es estricta y obligatoria.

Boundary
≡ View / UI
Interacción con actores externos o sistemas externos. Formularios, pantallas, APIs externas, reportes.
Control
≡ Controller
Lógica de coordinación y flujo de la aplicación. Orquesta boundary y entity. No almacena datos persistentes.
Entity
≡ Model
Información persistente y lógica de negocio pura. Clases del modelo de dominio promovidas a clases de diseño.
EstereotipoSímbolo UMLResponsabilidadesEjemplosComunicación permitida
Boundary Círculo con línea a la izquierda Entrada/salida con actores, presentación, validación superficial LoginForm, ReporteVentas, APIREST Habla con: Control (solo)
Control Círculo con flecha circular arriba Flujo de caso de uso, decisiones de negocio, coordinación GestorPedido, ControladorLogin Habla con: Boundary y Entity
Entity Círculo con línea abajo Datos persistentes, reglas de negocio puras, validaciones de dominio Pedido, Cliente, Producto Habla con: Entity (solo)
Regla de comunicación BCE — NUNCA violar Actor solo habla con Boundary · Boundary solo habla con Control · Control habla con Boundary y Entity · Entity solo habla con Entity.

Un Actor nunca va directamente a Entity. Un Boundary nunca va directamente a Entity. Un Entity nunca inicia comunicación con Control o Boundary.

Diagramas de Interacción DISEÑO

Los diagramas de interacción muestran cómo colaboran los objetos para completar un caso de uso. Existen dos variantes que muestran la misma información desde diferente perspectiva: temporal (secuencia) y estructural (comunicación).

SECUENCIA Foco temporal

  • Objetos en columnas, tiempo avanza hacia abajo
  • Línea de vida: línea vertical discontinua por objeto
  • Activación: rectángulo estrecho sobre línea de vida
  • Mensajes: flechas horizontales de izquierda a derecha
  • Retorno: línea punteada (opcional pero recomendable)
  • Fragmentos: [alt], [loop], [opt], [par] para flujos complejos
  • Mensajes síncronos: flecha rellena · Asíncronos: flecha abierta

COMUNICACIÓN Foco estructural

  • Objetos ubicados libremente en el espacio 2D
  • Sin eje de tiempo vertical
  • Mensajes DEBEN ir numerados: 1, 1.1, 1.1.1, 2…
  • La numeración jerarquizada indica anidamiento de llamadas
  • Flecha de dirección en cada mensaje con número
  • Más compacto para mostrar relaciones entre objetos
  • Menos claro para mostrar el orden temporal exacto
¿Cuándo usar cada uno? Usa el Diagrama de Secuencia cuando necesitas mostrar claramente el orden cronológico de los mensajes y la duración de las activaciones — ideal para documentar el flujo de un caso de uso paso a paso.

Usa el Diagrama de Comunicación cuando quieres enfatizar qué objetos están conectados entre sí y cuántos mensajes intercambian — ideal para validar la arquitectura de objetos y detectar acoplamiento excesivo.
CaracterísticaSecuenciaComunicación
Eje de tiempoSí — vertical, top-downNo — orden por numeración
NumeraciónOpcional (posición implica orden)Obligatoria (1, 1.1, 2…)
Énfasis¿Cuándo? — temporal¿Quién? — estructural
Fragmentos combinadosSí [alt] [loop] [opt]Condiciones en etiqueta del mensaje
Claridad para buclesAltaMedia
CompacidadMedia — crece verticalmenteAlta — todo en 2D

FURPS+ NO FUNCIONALES

Clasificación estándar de requerimientos no funcionales propuesta por Grady Booch. Complementa a los Casos de Uso (que capturan funcionales). El símbolo "+" agrega categorías adicionales como restricciones de diseño, implementación, interfaz y físicas. Es compatible con ISO 25010.

LetraCategoríaSubcategoríasEjemplo concreto
F Functionality Capacidades, Seguridad, Interoperabilidad "El sistema debe soportar autenticación OAuth 2.0"
U Usability Factores humanos, Documentación, Consistencia UI "Un usuario nuevo debe completar su registro en menos de 3 minutos"
R Reliability Frecuencia de fallos (MTBF), Recuperabilidad, Disponibilidad "El sistema debe tener disponibilidad del 99.9% mensual"
P Performance Velocidad de respuesta, Throughput, Uso de CPU/Memoria "La consulta de catálogo debe responder en < 2 segundos con 500 usuarios concurrentes"
S Supportability Mantenibilidad, Configurabilidad, Testabilidad "Nuevas reglas de descuento deben ser configurables sin recompilar"
+ Restricciones adicionales Diseño, Implementación, Interfaz, Físicas, Legales "Debe cumplir con la Ley Federal de Protección de Datos de México (LFPDPPP)"

ISO 25010 Equivalencias

  • Functionality → Adecuación funcional
  • Usability → Usabilidad
  • Reliability → Fiabilidad
  • Performance → Eficiencia de desempeño
  • Supportability → Mantenibilidad + Portabilidad

RESTRICCIONES "+" Tipos

  • Diseño: "usar arquitectura MVC"
  • Implementación: "desarrollar en Java 17"
  • Interfaz: "integrarse con SAP vía REST"
  • Físicas: "ejecutarse en hardware de 4GB RAM"
  • Legales: "cumplir GDPR / LFPDPPP"