uml - TecNM

72
UML M.C. Juan Carlos Olivares Rojas

Transcript of uml - TecNM

Page 1: uml - TecNM

UML

M.C. Juan Carlos Olivares Rojas

Page 2: uml - TecNM

UML• UML (Unified Modelling Language), lenguaje de

modelado unificado. Fue desarrollado en 1997 alfusionar las metodologías de Ivar Jacobson,Jame Rumbaugh y Grady Booch.

• Es un lenguaje visual, su premisa básica radicaen que una imagen vale más que 1,000 líneas decódigo

Page 3: uml - TecNM

UML• Al ser UML un lenguaje posee gramáticas y

alfabetos que definen como deben deestructurarse cada una de las palabrasválidas del lenguaje.

• Un modelo es una representación de larealidad. No sólo se modela software sinoprácticamente cualquier actividad.

Page 4: uml - TecNM

UML• Es el lenguaje estándar para modelar

proyectos de software.

• La versión más actual del lenguaje es la 2.1

• Los métodos que se fusionaron para crearUML fueron OMT (Rumbaugh), Objectory(Jaconson) y el método Booch.

Page 5: uml - TecNM

¿Por qué modelar?• Casi el 80% de los proyectos de software

fallan.

• Nadie construye una casa sin un plano.

• Actualmente existen muchas herramientasque auxilian el proceso de modelado comoVisio, ArgoUML, Rational Rose, Together,etc.

Page 6: uml - TecNM

Modelos• Los modelos deben ser más baratos que la

realidad.

• Es más fácil para una persona entender undiagrama que las líneas de código fuente deun programa.

• Los diagramas al igual que el textoconsumen tiempo.

Page 7: uml - TecNM

Modelos• Se deben construir modelos que sean

representativos para que sean útiles(imaginense hacer un documento de 100hojas que nadie va a leeer)

• UML define varios tipos de diagramas loscuales pueden ser extensibles.

Page 8: uml - TecNM

Tipos de diagramas• Los diagramas más utilizados en UML son:

• Diagramas de casos de uso• Diagramas de actividades• Diagramas de clases• Diagramas de interacción

– Diagramas de secuencia– Diagramas de colaboración

Page 9: uml - TecNM

Tipos de diagramas• Diagramas de estado• Diagramas de componentes• Otros diagramas

– Diagrama de topología del despliegue

• Los diagramas deben de reflejar lo que sepretende modelar

Page 10: uml - TecNM

Diagramas de casos de uso• Son responsables de documentar los

macrorequisitos del sistema.

• Lista de capacidades que debe brindar elsistema.

• Los elementos principales son los actores ylos casos de usos que en conjunto formanun escenarios

Page 11: uml - TecNM

Diagramas de casos de uso• Se deben establecer prioridades para las

capacidades del sistema.

• ¿Cuál es la diferencia entre un editor detextos como Notepad y Word?

• Objetivos primarios: crear, guardar eimprimir documentos de texto.

Page 12: uml - TecNM

Diagramas de caso de uso• Objetivos secundarios: guardar el archivo en

formato HTML, RTF y PDF.

• Los diagramas de uso sirven para mostrardetalles de implementación del sistema ausuarios finales.

• Los conectores asocian a los actores y loscasos de uso.

Page 13: uml - TecNM

Diagramas de caso de uso• Las líneas continuas representan una

asociación y las puntuadas dependencias.

• Si el conector tiene un triangulo hueco en lapunta representa una generalización que esuna relación de herencia.

• Los estereotipos agregan detalles a unarelación.

Page 14: uml - TecNM

Diagramas de caso de uso• Los estereotipos más utilizados son:

inclusión y de extensión.

• Muchas herramientas no impelemnat UMLal 100% existen muchos problemas decompatibilidad entre dichas herramientas.XMI es la descripción de un diagrama UMLen XML el cual utilizan varias herramientaspara exportar diagramas

Page 15: uml - TecNM

Diagramas de caso de uso• Incluir implica una dependecia de utilización

de un caso de uso.

• Las notas ayudan ha aclarar los diagramas.

• Extender da más detalle de dependecia deun caso de uso al cual se le agregan máscapacidades.

Page 16: uml - TecNM

Diagramas de caso de uso• Las notas deben ser como elementos

taquigráficos.

• Se deben incluir la siguiente documentación:párrafo que describa el caso de uso, párrafoque describa cada una de las funcionesprimarias y secundarias, entre otros.

Page 17: uml - TecNM

Diagramas de casos de uso• Se deben detallar ejemplos de la utilización

de casos de uso.

• Los actores pueden ser usuarios o partesdel sistema.

• En general los primeros diagramas que sedeben construir son los casos de uso

Page 18: uml - TecNM

Diagramas de caso de uso

Page 19: uml - TecNM

Diagramas de actividades• Es la versión UML de un diagrama de flujo.

• Se usan para analizar los procesos yrealizar la ingeniería de los mismos.

• Es una excelente herramienta para analizarproblemas.

Page 20: uml - TecNM

Diagramas de actividades• Son diagramas que representan las

carácterísticas de los procesos.

• Estos diagramas deben facilitar laimplementación del sistema.

• Van enfocados a los expertos del dominio(programadores y analistas)

Page 21: uml - TecNM

Diagrama de actividades• Pueden modelar procesos lineales y

paralelos.

• Los diagramas deben ser más simples quedetallados.

• Los elementos principales son: nodo inicial,flujo, actividades, conectores.

Page 22: uml - TecNM

Diagramas de actividades• Se pueden utilizar clavijas para conectar dos

nodos de acción.

• Los nodos de decisión son importantes parabifurcar el flujo de actividades.

• Los nombres y los verbos nos sirven paradeterminar las clases y los métodos.

Page 23: uml - TecNM

Diagramas de actividades• Los casos de uso son candidatos a

desarrollar diagramas de actividades.

• Las condiciones previas y posteriores semanejan con el uso de guardianes.

• Los nodos de decisión también sirven parafusionar diversos flujos en uno solo.

Page 24: uml - TecNM

Diagramas de actividades• Los carriles sirven para delimitar quien es el

responsable de una serie de actividades.

• Los carriles formalmente se llaman particiónde actividades y puede haber varios siemprey cuando no se encimen.

• Se puede modelar el tiempo a través deseñales.

Page 25: uml - TecNM

Diagrama de actividades

Page 26: uml - TecNM

Diagramas de secuencia

Page 27: uml - TecNM

Diagramas de clases• Se usan para mostrar las clases de un

sistema y las relaciones entre ellas.

• Muestran la vista estática del sistema; nodescriben los comportamientos ni la formaen como interactuan las clases del sistema.

Page 28: uml - TecNM

Diagramas de clases• Los elementos del lenguaje son unos

rectángulos denominados clases y losconectores representan las relaciones.

• Las clases pueden tener comportamientos yatributos. Lo difícil no es encontrar lasclases sino definir sus relaciones

Page 29: uml - TecNM

Diagramas de clases• Un diagrama de objetos es similar a un

diagrama de clases pero representa uncomportamiento dinámico.

• Los objetos se distinguen al subrayar elnombre de la clase.

• Las interfaces son clases abstractas puras.

Page 30: uml - TecNM

Diagramas de clases• Las interfaces se usan cuando las partes de

las cosas tienen facetas semánticamentesimilares pero no tienen genealogíarelacionada.

• Se utiliza el estereotipo interface. Los tiposde datos pueden variar dependiendo de laimplementación.

Page 31: uml - TecNM

Diagramas de clases• El símbolo + se usa para describir datos

públicos. El símbolo - para datos privados y# un dato no es ni público ni privado(protegido).

• Para acceder a datos privados y/oprotegidos se deben utilizar métodos get/set

Page 32: uml - TecNM

Diagramas de clases• Los atributos funcionan como asociación. La

multiplicidad de las relaciones esimportante.

• Si los valores superiores e inferiores de lasrelaciones son iguales (1..1) se pone un solonúmero (1).

Page 33: uml - TecNM

Diagramas de clases• Es común hablar de elementos, opcionales,

obligatorios, de un solo valor y valoresmúltiples.

• El 80% de los diagramas de clase utilizanrelaciones simples.

• Si existe una flecha en la asociación se diceque ésta es dirigida o direccional.

Page 34: uml - TecNM

Diagramas de clase• La agregación se representa con un

diamante hueco; mientras que lacomposición es un diamante relleno.

• La generalización o herencia se refiere auna relación del tipo es un.

• En una relación de herencia la clase hijohereda las carácterísticas de la clase padre.

Page 35: uml - TecNM

Diagramas de clase• Las relaciones de realización se utilizan en

interfaces para definir que la clase hijaimplementará esa interfaz. Se utiliza unalínea punteada con un diamante parecido ala herencia.

• Las relaciones de dependencia se dan entredos clases denominadas cliente yproveedor. Se representa con una líneapunteada con flecha sencilla.

Page 36: uml - TecNM

Diagramas de clase• Los paquetes tienen la apariencia de una

carpeta de archivos. Se usa pararepresentar un nivel más avanzado deabstracción. Se utilizan para organizar lasclases, generalmente representan unespacio de nombres.

• Los espacios de nombres solucionan elproblema de tener clases diferentes con elmismo nombre.

Page 37: uml - TecNM

Diagramas de clase• Algunas herramientas soportan la

documentación del modelo, pero no formaparte del estándar.

• UML tiene datos primitivos: Integer,Boolean, String y UnlimitedNatural, pero sepueden utilizar otros tipos de datos definidospor el estereotipo primitivo, solo hay quedefinir sus componentes y sus operadores.

Page 38: uml - TecNM

Diagramas de clases• Los espacios de nombre se anteponen al de la

clases con el operador de alcance: ::

• Existen dos modalidades para el desarrollo desoftware orientrado a objetos: consumo (VisualBasic) y Producción (Visual C++).

• La técnica de nombres son clases, verbos sonmétodos sólo funciona en el 20% de los casos.

Page 39: uml - TecNM

Diagramas de clases• Se recomienda realizar un análisis de

dominio ya que nos ayuda a encontrarclases frontera, de control y entidad.

• Las clases frontera interconenctanelementos del exterior con elementos delinterior. Las clases de entidad representandatos (generalmente persistentes). Lasclases de control representan interaccionesentre el sistema.

Page 40: uml - TecNM

Diagramas de clases• La refactorización y los patrones de diseño

ayudan a mejorar los diagramas de clases.

• La herencia múltiple se puede modelar enUML pero no es recomendable hacerlo. Esmejor usar la composición o herencia deinterfaces.

• El mal se encuentra en los detalles.

Page 41: uml - TecNM

Diagramas de clases

Page 42: uml - TecNM

Diagramas de clases

Page 43: uml - TecNM

Diagramas de secuencia• Muestran la parte dinámica del sistema.

• Muestran los mensajes que se envían las clasescon respecto al tiempo.

• Los diagramas de secuencia muestran un orden através del tiempo.

• Un diagrama de secuencia es más fácil de leer queuno de colaboración.

Page 44: uml - TecNM

Diagramas de secuencia• Existen muchos diagramas en UML que resultan

redundantes, ya que dicen exactamente lo mismopero en diferente forma.

• Los elementos esenciales son las líneas de vida ylos mensajes.

• La línea de vida representa un ejemplo de clase

Page 45: uml - TecNM

Diagramas de secuencia• Las líneas de vida pueden ser actores u

objetos.

• La activación de una línea de vida se hace através de un rectangulo sobre la línea devida. Un objeto puede crearse y destruirsevarias veces dentro de la ejecución de unsistema.

Page 46: uml - TecNM

Diagramas de secuencia• Los mensajes forman una parte importante

de este diagrama. Si se tiene una flechatriangular representa un mensaje síncrono,si se tiene una flecha abierta se representaun mensaje asíncrono, los mensajes deretorno se representan con flechaspunteadas, mientras que un mensajeanidado inicia y termina en la misma líneade vida.

Page 47: uml - TecNM

Diagramas de secuencia• Los marcos de interacción o fragmentos

combinados son nuevos en UML 2.0.

• Son regiones rectangulares que se usanpara organizar los diagramas de interacción.

• Los marcos de interacción más comunesson: alt, bucle, neg, opt, par, ref, regio rod

Page 48: uml - TecNM

Diagramas de secuencia• En un futuro no tan lejano, los diseños

deberán ser tan detallados como loscircuitos eléctricos.

• En algunos casos es mejor usar diagramasde colaboración, debido a la sencillez de sudiseño.

Page 49: uml - TecNM

Diagramas de secuencia

Page 50: uml - TecNM

Diagramas de secuencia

Page 51: uml - TecNM

Diagramas de interacción• También muestran la parte dinámica del sistema.

• Organizan las clases y los mensajes en formaespacial. Como no lleva ordenación del tiempo losmensajes se numeran.

• Los diagramas de secuencia e interacciòn soncomplementarios y en algunos casos no esaconsejable utilizar ambos.

Page 52: uml - TecNM

Diagramas de interacción

Page 53: uml - TecNM

Diagramas de colaboración• También se les llama diagrama de

comunicación en UML 2.0

• Los elementos son un rectángulo llamadopapel clasificador que representa losobjetos, conectores y una secuencia queindica los mensajes. En UML la secuenciase numera como 1, 1.1, 1.2, … en lugar de1, 2, 3

Page 54: uml - TecNM

Diagramas de colaboración• Un diagrama de interacción se puede pasar

a código. Los objetos son instancias declases y los mensajes son métodos, loscuales se codifican en la clase del receptorno del llamador.

• En diagramas donde existen muchosmensajes se necesitan de más notas parapoder explicar el diagrama.

Page 55: uml - TecNM

Diagramas de estado• Muestra el estado cambiante de un objeto.

• UML es un lenguaje relativamente sencilloya que utilizando poco vocabulario se puederealizar la mayoría del modeloa de unsistema.

Page 56: uml - TecNM

Diagramas de estado• Sirven para representar máquinas de

estados (e.g. autómatas).

• Son ideales para representar procesos dered y de tiempo real.

• La creación de diagramas de interfacesgráficas de usuarios no es parte delestándar UML.

Page 57: uml - TecNM

Diagramas de estado• Los diagramas de estado y actividades

comparten mucha de la simbología por loque se les suele confundir con frecuencia.

• Los estados son activos cuando se ejecutansu actividad de entrada. Se vuelveninactivos después de ejecutar su actividadde salida

Page 58: uml - TecNM

Diagramas de estado• Las actividades comunes son algo que

sucede de manera instantánea; mientrasque una actividad inicia con el prefijo“hacer/” es una actividad de hacer.

• Un estado simple no está dividido enregiones. En un estado compuesto cadaregión representa una subactividad.

Page 59: uml - TecNM

Diagramas de estado• Las transacciones son líneas dirigidas que

conectan estados. Pueden ocurrir en base aalgún mecanismo de disparo.

• Las máquinas de estado de protocolo seutilizan para describir interfaces.

Page 60: uml - TecNM

Diagramas de estado

Page 61: uml - TecNM

Diagramas de componentes• Muestra los subsistemas del producto final.

• No es un diagrama ampliamente utilizado enUML.

• Existen dos métodos para el diseño basadoen componentes: diseño componetes-interfaz (arriba abajo) y a partir de clases.

Page 62: uml - TecNM

Diagramas de componentes• El símbolo de componente cambió en UML

2.0 a un diagrama más simple.

• Se utiliza generalmente para modelarsistemas muy grandes.

• Sistemas basados en red y distribuidospueden modelarse bien con este diagrama.

Page 63: uml - TecNM

Diagrama de componentes

Page 64: uml - TecNM

Preguntas frecuentes• ¿Cuántos diagramas debo crear? No existe

una respuesta específica.

• ¿Debo hacer diagramas de todo tipo? No,sólo se deben utilizar los diagramas quemejor reflejen el modelado de laproblemática

Page 65: uml - TecNM

Preguntas frecuentes• ¿Qué tan grande debe de ser un diagrama?

Entre más grande sea un diagrama mayores la confusión. Se deben realizar diagramsbien detallados, pero no detallados.

• ¿Cuánto texto debe complementar elmodelo? Entre menos texto mejor, soncomo los comentarios del código fuente:pocos pero claros

Page 66: uml - TecNM

RUP• Rational Unified Process, Proceso unificado

de desarrollo.

• Se debe utilizar UML con una metodologíade desarrollo de procesos.

• Ni los lenguajes de programación ni UMLson los que guían el proceso de desarrollode software

Page 67: uml - TecNM

Análisis y Diseño• UML permite realizar análisis y diseño de

sistemas orientados a objetos, pero no selimita exclusivamente a esta metodología.

• Los modelos como UML no puedenvalidarse a través de una herramienta comoel código.

Page 68: uml - TecNM

Modelado de software• El modelado de software es algo

relativamente nuevo. Algunasrecomendaciones para el modelado desoftware son:

• No tenga a los programadores esperandolos modelos.

• Trabajar de una macrovista a una microvista.

Page 69: uml - TecNM

Modelado de software• Se debe documentar en forma económica.

• Si es obvio no se debe de modelar.

• Hacer hincapié en la especialización.

• Utilice patrones de diseño.

• Refactorice.

Page 70: uml - TecNM

Diagrama de despliegue• Se utiliza para modelar la forma en como

lucirá el sistema cuando se ponga en uso.

• Los nodos representan componentes físicosque pueden ser computadoras, sistemasoperativos, entornos, servidores, etc.

• Ayudan al proceso de instalación de unsistema

Page 71: uml - TecNM

Diagrama de despliegue• Los artefactos son las cosas que se están

desplegando. Usan el estereotipo artefacto ypueden ser achivos exe, dll, HTML, .jar,scripts, etc.

• Dentro de cada nodo se suele describiralgunas carácterísticas propias.

Page 72: uml - TecNM

¿Preguntas?