sintesis

uml

Códigos disponibles en git

¿Por qué?

Evitar ambigüedades en la comunicación
manualMal
pptMal
  • la misma persona interpreta lo mismo del mismo diagrama pasado el tiempo, una servilleta con un garabato sin estandarizar, …​

  • distintas personas interpretan lo mismo del mismo diagrama, transparencias / diapositivas / …​ muy bonitas sin estandarizar, …​

¿Qué?

Lenguaje Unificado de Modelado

  • Unified Model Language

  • lenguaje estándar de modelado para visualizar, especificar, construir y documentar artefactos de un sistema software

    • Propuesto por la metodología RUP: Proceso Unificado de Rational (Rational Unified Process)

    • Dirigido por Object Management Group, OMG

  • Lenguaje:

    • Cada símbolo, léxico (como las palabras correctas del castellano)

    • relacionado, sintaxis (como la gramática de secuencias correctas) con otros símbolos en un diagrama, grafo / jerarquía (que forman una sentencia)

    • que tiene un significado estándar semática (significado que se interpreta por la secuencia correcta de palabras correctas)

¿Para qué?

  • Propuestas del sistema software: Requisitos y Arquitectura del Software

    • Estándar para describir los planos de un sistema, incluyendo cosas conceptuales como procesos de negocio y funciones de sistemas tanto como cosas concretas como sentencias de lenguajes de programación, esquemas de bases de datos y componentes software reutilizables

  • No es el objetivo ( … aplicación robusta flexible y escalable …​, es un medio para:

    • Comunicarse con los clientes

    • Comunicarse entre desarrolladores

    • Usar herramientas de generación automática de código/documentación

  • No incluye:

    • Plantillas de todos los artefactos (p.e. documentos de requisitos, …​)

    • Normas de calidad (análisis y diseño orientado a objetos)

    • Métricas de calidad del software, de resistencia al cambio, …​

    • Gestión de proyecto y configuración (p.e. planificación, estimación de costes, …​)

¿Cómo?

Herramientas CASE (computer aided software engineering)
  • para modelado de software con gestión de repositorios, trazabilidad, generación de informes, …​

    • Basadas en la edición (iconos, formularios, …​ con clicks de ratón) de cada elemento del diagrama y sus relaciones, responsabilizandose de la disposición de los elementos en la visualización!!!

starUML

enterpriseArchitecture

magicDraw

Vista Vista Estática Vista Dinámica
  • proyección de un modelo que se ve desde una perspectiva o un punto de vista dado y que omite entidades que no son relevantes desde esa perspectiva

  • apariencia de un sistema que enfatiza su estructura.

  • apariencia de un sistema que enfatiza su comportamiento.

  • Mi casa desde el punto de vista de dimensiones, sistema de calefacción, apariencia, …​

  • organización de la UPM, …​

  • proceso para la obtención de un título de postrgrado, …​

Diagrama Diagrama estructural Diagrama dinámico
  • presentación gráfica de un conjunto de elementos, que la mayoría de las veces se dibuja como un grafo conexo de nodos (elementos) y arcos (relaciones)

  • muestra los aspectos estáticos de un sistema representando el esqueleto relativamente estable

  • muestra los aspectos dinámicos de un sistema tales como sus partes mutables

  • Planos de un edificio para su venta, acuerdo con el cliente, y construcción, acuerdo con la cuadrilla

  • planta, alzado, … de un edificio, maqueta3D, …​

  • plano de aguas de un edificio, salidas de incendios, …​

DiagramaDiagramas

Diagramas Estructurales

Diagrama de Objetos, poco usados Diagrama de Clases
  • "Foto" (estática) de entidades de la "realidad"

    • Objetos con valores de atributos

    • Enlaces entre objetos paralelo a las relaciones entre sus clases

    • ejemplos?!?

  • "Foto" (estática) de clases de entidades de la "realidad"

    • Clases, interfaces, …​

    • Relaciones de herencia, composición, agregación, dependencia, …​

    • ejemplos?!?

DiagramaObjetos
DiagramaBases
Diagrama de Despliegue Diagrama de Componentes
  • "Foto" (estática) de hardware

    • Componentes Hardware

    • Enlaces entre Componentes Hardware

    • ejemplos?!?

  • "Foto" (estática) de software

    • Componentes Software

    • Enlaces entre Componentes Software

    • ejemplos?!?

DiagramaDespliegue
DiagramaComponentes
Diagrama de Paquetes
  • "Foto estática" de agrupaciones de clasificadores

    • Objetos, Clases, Nodos, Componentes, Actores y Casos de Uso

    • Dependencia entre paquetes (algún clasificador de un paquete está relacionado con otro del otro paquete)

DiagramaPaquetes

Diagramas de Comportamiento

Teorema de la Programación Estructurada
console.log("Accion inicial");
do {
  console.log("Accion0");
  if (Math.random() < 0.33) {
    console.log("Action1");
  } else if (Math.random() < 0.66) {
    console.log("Action2");
  } else{
    console.log("Action3");
  }
  console.log("Accion4");
} while (Math.random() < 0.5);
console.log("Accion final");
let state = 0;
do {
  switch (state) {
    case 0:
      console.log("Accion inicial");
      state = 1;
      break;
    case 1:
      console.log("Accion0");
      if (Math.random() < 0.33) {
        state = 2;
      } else if (Math.random() < 0.66) {
        state = 3;
      } else {
        state = 4;
      }
      break;
    case 2:
      console.log("Action1");
      state = 5;
      break;
    case 3:
      console.log("Action2");
      state = 5;
      break;
    case 4:
      console.log("Action3");
      state = 5;
      break;
    case 5:
      console.log("Accion4");
      if (Math.random() < 0.5){
        state = 1;
      } else {
        console.log("Accion final");
        state = 6;
      }
      break;
  }
} while (state != 6);
  • se basa en estas transformaciones anteriores

  • toda función computable puede ser implementada en un lenguaje de programación que combine sólo tres estructuras lógicas, llamadas estructuras de control de flujo de ejecución:

    • Secuencia: ejecución de una instrucción tras otra.

    • Selección, aternativa: ejecución de una de dos instrucciones (o conjuntos), según el valor de una variable booleana.

    • Iteración, ciclo o bucle: ejecución de una instrucción (o conjunto) mientras una variable booleana sea 'verdadera'.

  • erradica la necesidad de la sentencia GOTO

Diagrama de Actividad, poco usados Diagrama de Estados
  • "Video" (dinámica) con secuencia de acciones destacadas

    • Acciones y condiciones

    • Flujo de Control de Ejecución

  • "Video" (dinámica) con secuencia de acciones no destacadas, destacando los estados intermedios

    • Estados, acciones y condiciones

    • Transición de Estados con Acciones

DiagramaActividad svg
DiagramaEstdos
Diagrama de Secuencia, poco usados Diagrama de Colaboración/Comunicación
  • "Video" (dinámica) con secuencia de acciones entre distintos colaboradores

    • Participantes: actor, objetos, componente software, hardware, …​

    • Mensajes entre Participantes ordenados secuencialmente, bloques (if, while, do/while, …​)

  • "Foto movida" (estática) sin secuencia de acciones entre colaboradores

    • Participantes: actor, objetos, componente software, hardware, …​

    • Mensajes entre Participantes colaboradores

DiagramaSecuencia
communicationDiagram
DiagramaColaboracion
Diagrama de Casos de Uso
  • "Foto de tipos de conversaciones" (dinámica?!?) sin secuencia de acciones entre actor y el sistema informático

    • Casos de Uso y Actores

    • Enlaces entre Actores y Casos de Uso y entre Casos de Uso (herencia, extend e include)

DiagramaCasosUso

Síntesis

sintesis

Bibliografía

Obra, Autor y Edición Portada Obra, Autor y Edición Portada
  • The Unified Modeling Language User Guide

    • Booch, Jacobson, Rumbaugh

    • Pearson Education; (2005)

height32

  • UML Distilled. A Brief Guide to the Standard Object Modeling Language

    • Fowler, Scott

    • Addison-Wesley; (2003)

height32

Ponente

  • Luis Fernández Muñoz

setillo

  • Doctor en Inteligencia Artificial por la UPM

  • Ingeniero en Informática por la UMA

  • Diplomado en Informática por la UPM

  • Profesor Titular de ETSISI de la UPM