1. Que es UML
UML es un lenguaje de modeladode objetosindependiente del método que se implemente,
no es una metodología, método o proceso.
El objetivo de UML es la unificación de los métodos de modelado de objetos, es la
Identificación y definición de la semántica de los conceptos fundamentales, elección de una
representación gráfica cuya sintaxis sea simple.
Que es un modelo
Un modelo es una abstracción de un sistema semánticamente cerrada y el lenguaje de
modelado nos sirve para especificar, construir, visualizar y documentar ingenios software.
Objetivos de los modelos
Probar una entidad física antes de construirla
Comunicación con el cliente
Visualización
Reducción de la complejidad
Estructurar las ideas
Lenguaje de Modelado
Se necesita un lenguaje de modelado para entender y describir los sistemas complejos.
Historia de UML
Objetivos Iniciales
Unificación de métodos de la Orientacion a Objeto, centrarse en un lenguaje de modelado
estándar y no en un proceso de desarrollo estándar.
Ofrecer una semántica que permitiese modelar problemas en diferentes ámbitos.
Limitaciones de UML
Limitado soporte en el desarrollo de sistemas, es decir no soporta arquitecturas complejas y
especificaciones completas del comportamiento de un sistema.
Esta orientado a ingenieros y técnicos, mantiene difícil comunicación con los usuarios y
clientes, tiene una generación parcial del código, es sólo estructura.
UML no se puede ejecutar.
2. Visión Global de UML
UML Notation Guide
Define la sintaxis grafica de UML, el vocabulario y las reglas de UML se centran en la
representación conceptual y física de un sistema.
UML Semantics
Define la semántica de UML, conjunto de reglas que permiten asignar un significado a las
expresiones sintácticas.
UML Superestructura
Conceptos de UML
Modelo de Estructura: Capacidades de modelado como clases, objetos.
Modelo de Comportamiento: Capacidades de modelado: casos de uso, comunicación,
secuencias.
UML Infraestructura
Define los conceptos centrales, UML es un lenguaje que se define a sí mismo.
Modelado de Objetos
El término modelado expresa la descomposición en elementos simples más fáciles de
comprender, cada modelo va evolucionando durante el ciclo de desarrollo.
Modelado de objetos: son aspectos estáticos y estructurales del sistema.
Modelado dinámico: son aspectos temporales y de comportamiento del sistema.
Modelado funcional: son aspectos de transformación funcional del sistema.
Modelos de Representación
UML define varios modelos de representación:
Modelo de clases, Modelo de estados, Modelo de casos de uso, Modelo de interacción,
Modelo de realización, Modelo de despliegue.
Diagramas
Los diagramas de UML son grafos que describen los contenidos de una vista
Diagramas de comportamiento: Permiten exhibir comportamientos de un sistema o de los
procesos de las organizaciones.
3. Diagramas de interacción: Es un subconjunto de los diagramas de comportamiento que
permiten enfatizar las interacciones entre los objetos.
Diagramas de estructura: Muestran los elementos de una especificación que sean
independientes del tiempo.
Diagramas
Diagrama de clases
Muestra una colección de elementos de modelado declarativo como clases.
Diagrama de Actividades
Se utiliza para modelar lógica compleja o paralela en un sistema.
Diagrama de Secuencias
Representa una interacción.
Diagrama de Componentes
Componentes que componen una aplicación, sistema o empresa.
Diagrama de despliegue físico
Muestra cómoy dónde se desplegaráel sistema.
Diagrama de Máquinas de Estado
Cómoun elemento,muchasvecesunaclase,se puede moverentre estadosque clasificansu
comportamiento.
Diagrama de casos de uso
Un diagrama que muestralasrelacionesentre losactoresyel sujeto,esdecirel sistema.
Diagrama de Objetos
Presentalosobjetosysusrelacionesenunpuntodel tiempo.
Diagrama de Paquetes
La organizaciónde loselementosde modeladoenpaquetesylasdependenciasentre ellos.
Diagrama de Revisiónde la Interacción
La revisióndelflujode control.
Diagrama de comunicaciones
La secuenciade losmensajesse daa travésde un esquemade numeradode lasecuencia.
Diagrama de Estructura de Composición
4. Representalaestructurainternade unclasificador,comounaclase.
Diagrama de Tiempos
Mostrar el cambiode estado de un objetoalo largodel tiempo.
Elementosde Modelado
Un elementode modeladopuedeestarendiferentesdiagramas,perosiempre conel mismo
significadoysímboloasociado, puedenestaragrupadosenpaquetes
Un paquete puede contenerotrospaquetes, sinlímitedel nivel de anidamiento.
Representanlasabstraccionesdelsistemaencursode modelado.
Elementosde visualización
Son proyeccionestextualesográficasque permitenlamanipulaciónde loselementosde
modelado.
Reglas de UML
Un UML tiene que serunmodelobienformado,estese atiene atodaslasreglassemánticasy
sintácticasque le sonde aplicación.
Regla semántica: Si una clase esconcreta,todas lasoperacionesde laclase hande tenerun
métodoque laimplementaenel descriptor.
Regla sintáctica: Una clase se representaporunrectángulode líneacontinuacontres
compartimentosseparadosporlíneashorizontales.
Vistas de UML
Una vistaes un subconjuntode UML que modelaconstruccionesque representanunaspecto
de un sistema.Noesalgográfico,sinouna abstraccióncompuestade diversos diagramas.
Las vistasse puedendividirentresáreas
Clasificaciónestructural:Describe lascosas que hay enel sistemaysusrelacionesconotras
cosas.
Comportamientodinámico: Reflejael comportamientodel sistemaenel tiempo
Gestióndel modelo:Describe laorganizaciónde losmodelosenunidadesjerárquicas
5. Resumen Capitulo 6
Vista Estática
La vistaestáticaconstituye el fundamentode UML, captura laestructurade objetos.
Los elementosde lavistaestáticade unmodelosonlosconceptosque tienensignificadoen
una aplicación,incluyendoconceptosdel mundoreal yconceptoscomputacionales.
Los elementosclave de lavistaestáticasonlosclasificadores ysusrelaciones,unclasificador
esun elementode modeladoque describe cosas comoclases,interfaces,tiposde datos,casos
de uso,paquetes.
El diagramamás representativode estavistaesel diagramade clases
Clasificación
El mundoreal puede servistodesde abstracciones diferentes,laclasificaciónesunode los
mecanismosde abstracciónmásutilizados.
Conceptode clasificador
Un clasificadoresunconceptodiscretoenel modelo,que tieneidentidad,estado,
comportamientoyrelaciones.
Objeto
Objetocomocosa del mundo real, esalgotangible,visible,cualquiercosa,ocurrenciao
fenómenoque puede seridentificadoycaracterizado.
Un objetomodelaunaparte de la realidad,conel conceptode objeto,se modelala
permanenciae identidadde conceptos percibidos.
Un objetotiene estado,exhibe algúncomportamientobiendefinidoytiene unaidentidad
única.
El comportamientode unobjetoescómoactúa y reaccionaunobjeto,enfunciónde sus
cambiosde estadoy pasode mensajes.
Un objeto tiene estado, comportamiento e identidad; la estructura y el comportamiento de
objetos similares están definidos en su clase común.
Identidad
Es aquella propiedad de un objeto que lo distingue de todos los demás.
No es conveniente que los nombres de las entidades las identifiquen ya que una entidad
puede no tener un nombre único y, sin embargo, ser identificable, una entidad puede tener
más de un nombre único, también puede cambiar de nombre a lo largo del tiempo.
6. Clase
Una clase representa un concepto discreto dentro de la aplicación que se está modelando,
sirve comomolde para crear instancias o, lo que es lo mismo, objetos, el proceso de creación
de objetos se conoce como instanciación.
Una clase dicta la estructura y comportamiento de sus instancias, todos los objetos en un
sistema de objetos pertenecen a alguna clase.
Las clases tienen un nombre que las identifica
Una clase puede servistacomo: el mecanismoparacrear objetos,lafábricade objetos o como
el conjunto de todas sus instancias.
Una clase es una descripciónabstractade losdatosy del comportamientode una colección de
objetos similares.
Una clase tiene unnombre únicodentrode su contenedor,que es generalmente un paquete,
aunque puede ser también otra clase.
Clase Abstracta
El objetivo fundamental de una clase abstracta es la especialización, una clase concreta no
puede tener operaciones abstractas, pero una clase abstracta si puede tener operaciones
concretas.
Clase Parametrizada
Es un descriptor de una clase con uno o más parámetros formales sin especificar.
Para su representación, UML utiliza un rectángulo en línea discontinua superpuesto en la
esquina superior derecha de un rectángulo correspondiente a una clase.
Atributo
El tipo de un atributo puede ser simple o complejo, cada objeto de la clase tiene un valor
independiente para el atributo.
Los atributosde una clase nodeberíansermanipulablesdirectamentepor el resto de objetos.
En una clase,el valordescritoporun atributo puede ser distinto en cada objeto o compartido
por todos los objetos.
Operación
Se utilizanparaindicarlasoperacionesde unaclase,unaoperaciónesla especificación de una
transformación o consulta que puede tener un objeto
Un métodoes la implementación de una operación, especifica el algoritmo o procedimiento
que da lugar a los resultados de una operación.
7. Las declaraciones de operación son heredadas por los descendientes de la clase, si otra
declaración tiene la misma signatura coincidente, entonces se trata de la misma operación.
Una operación con alcance de clase se presenta subrayada.
Lista de Parámetros: lista de declaraciones de parámetros separadas por comas.
Dirección
In: Entrada pasada por valor.
Out: Salida, no existe valor de entrada.
Inout: Entrada que se puede modificar.
Return: Valor proporcionado por una llamada.
Nombre: nombre del parámetro.
Tipo: referencia a un clasificador, clase, tipo de datos.
Tipos de operaciones que un cliente realiza sobre un objeto
Modificador: Altera el estado de un objeto.
Selector: Accede al estado de un objeto, pero no lo altera.
Iterador: Permite acceder a todas las partes de un objeto en algún orden perfectamente
establecido.
Constructor: Crea un objeto e inicia su estado.
Destructor: Libera el estado del objeto y destruye el propio objeto.
Interfaz
Una interfaz es la descripción del comportamiento de objetos sin proporcionar su
implementación o estado.
Una o más clases pueden realizar una interfaz, de forma que cada clase implementa las
operacionesde la interfaz, una clase puede admitir muchas interfaces, cuyos efectos podrán
ser disjuntos.
Las interfacesnoposeenimplementación,unainterfazcontiene operacionesperono
atributos.
Una interfazequivaleaunaclase abstracta, sinatributosni métodos,que tiene únicamente
operacionesabstractas,todaslasoperacionesde unainterfaztienenvisibilidadpública.
8. Una interfazesuna colecciónde operacionesque se empleaparaespecificarunserviciode
una clase o de un componente,también sirveparanombraruna colecciónde operacionesy
para especificarsussignaturasyefectos.
Una interfazse centraen losefectos,noenlaestructura,de un serviciodado, noofrece una
implementaciónparaningunade susoperaciones.
Relaciones
En el dominiodel problema lasclasesnoestánaisladas,sinoque se relacionande diferentes
formas.
Un enlace esuna relaciónfísicao conceptual entre instancias.
Expresanlasconexionesentre clasificadores,losenlacesentre objetospuedenrepresentarse
entre lasrespectivasclases.
Formasde relaciónentre clases:
-AsociaciónyAgregación
-Generalización/Especialización
Las relacionesde AgregaciónyGeneralizaciónformanjerarquíasde clases ypuedenserde
variostipos:
Asociación:Descripciónde unaconexiónentre instanciasde clases.
Dependencia:Relaciónentre doselementosdel modelo.
Flujo:Relaciónentre dosversionesde unobjetoen momentossucesivos.
Generalización:Relaciónentreunadescripciónmásgeneralyuna más específicade algo,
usadopor herencia.
Realización:Relaciónentre unaespecificaciónysuimplementación
Uso: Situaciónenlaque un elementorequiere aotropara su correctofuncionamiento.
Asociación
Una asociacióndescribe lasconexionessemánticasentre objetosde diferentesclases,Una
asociaciónrelacionaunalista de doso más clasificadores,conlasrepeticionespermitidas.
Cada conexiónde unaasociaciónauna clase se llamaextremode laasociación,unaasociación
puede teneratributosporsí misma.
Asociaciónbinaria
Es la asociaciónque se produce exactamente entredosclases,se representanatravésde una
líneacontinuaque conectaambos símbolosde clase.
AsociaciónCalificada
Un calificador es un atributo o tupla de atributos de la asociación cuyos valores sirven para
partir o clasificarunconjuntode objetosasociadosmediante una asociación UML a un objeto.
9. Clase Asociación
Son asociacionesque tambiénson clases, tienen propiedades tanto de las clases como de las
asociaciones.
Se utilizancuandocada enlace debe tener sus propios valores para los atributos, operaciones
propias o sus propias referencias a objetos.
Asociaciónn-aria
Son asociacionesque se establecenentre másde dos clases, cada clase podría aparecer varias
veces desempeñando cada vez distintos roles.
Agregación
Una agregaciónes una forma de asociación que representa una relación Todo-parte entre un
agregado y las partes que los componen.
Una asociación binaria puede declararse como agregación.
En la agregación una parte puede pertenecer a más de un agregado y puede existir
independientemente del agregado.
Una clase agregada tiene múltiples partes, pero cada relación entre la clase agregada y cada
una de las partes es una asociación distinta.
La agregaciónesunaasociación,conllevalaidea de que el agregado es la suma de sus partes.
Composición
Forma de asociación de agregación con fuerte sentido de posesión.
Es una asociaciónde agregaciónconlas restriccionesadicionalesde que un objeto sólo puede
ser parte de un compuesto a la vez y que el objeto compuesto es el único responsable de la
disponibilidad de todas sus partes.
Durante la vidadel elemento compuesto, ningún otro objeto puede tener la responsabilidad
de creación o destrucción sobre las partes.
Un elemento compuesto puede añadir piezas adicionales durante su vida, siempre que lo
permitalamultiplicidad o quitar piezas y la responsabilidad de ellas sea asumida por objeto.
Los atributos son relaciones de composición entre una clase y las clases de sus atributos.
Generalización/Especialización
Es una relación de taxonomía entre un elemento general y otro más específico que es
plenamente consistente con el primer elemento y que le añade información adicional.
Una relaciónde generalizaciónesunarelacióndirigidaentre doselementosgeneralizables del
mismo tipo.
La generalización y especialización son equivalentes en cuanto al resultado: la jerarquía y
herencia establecidas.
En el caso más simple,el elemento generalizable tiene un solo padre, es posible que un hijo
pueda tener más de un padre, esto se denomina generalización múltiple.
10. Una jerarquía de generalización es un árbol de declaraciones de elementos de un modelo.
La generalización es una relación taxonómica entre elementos.
Generalización y herencia no son el mismo concepto, ya que La herencia es un mecanismo
para combinar descripciones incrementales compartidas, con objeto de formar una
descripción completa de un elemento.
La generalización múltiple se presenta cuando una subclase tiene más de una superclase.
Generalización de asociaciones
Relación de generalización entre dos asociaciones, el elemento hijo debe añadir algo a la
declaración del padre y debe definir un subconjunto del conjunto de instancias del padre.
Dependencia
Una relación entre dos elementos de forma que un cambio en un elemento, es decir el
proveedor puede afectaroproveerlainformaciónnecesariaparael otroelemento,esdecir el
cliente.
Paquete
Un paquete UML es un término que denota un mecanismo general para organizar en grupos
los elementos, los paquetes se pueden anidar.
Un sistema puede corresponderse con un único paquete de alto nivel.
Un elemento pertenece al paquete donde está definido y puede ser referenciado en otros
paquetes.
Si un paquete referencia a un elemento que pertenece a otro, existe una dependencia.
Diagrama de clases
El diagramade claseses el diagrama principal para el análisis y diseño, un diagrama de clases
presenta las clases del sistema con sus relaciones estructurales y de herencia.
La definición de clase incluye definiciones para atributos y operaciones.
Niveles de representación de los diagramas de clases
Conceptual: representa los conceptos en el dominio del problema que se está estudiando.
Especificación: refleja las interfaces de las clases, pero no su implementación.
Implementación: representa las clases tal cual aparecen en el entorno de implementación.
12. Ejemplos de UML
CajeroAutomático
Se desea diseñar el software necesario para una red bancaria provista de cajeros
automáticos, que serán compartidos por un consorcio de bancos. Cada banco dispone
de una serie de servidores, provistos de software propio, que llevan la información
sobre sus cuentas y procesa las transacciones que actúan sobre dichas cuentas.
A estos servidores están conectados las estaciones de cajero, que son propiedad del
banco y en las que operan cajeros humanos, que pueden crear cuentas e introducir
transacciones sobre ellas.
Los cajeros automáticos aceptan tarjetas de crédito, interaccionan con el usuario, se
comunican con un ordenador central para llevar a cabo las transacciones, entregan
dinero en efectivo al usuario e imprimen recibos.
El sistema llevará el registro de las transacciones efectuadas, cumplirá características
aceptables de seguridad y manejará accesos concurrentes a la misma cuenta.
El coste de desarrollo de la parte compartida del sistema se dividirá entre los bancos
que forman parte del consorcio en función del número de clientes provistos de tarjetas
de crédito.
13. Caso de Uso
Actores primarios: Cliente del Banco, Consorcio, Banco
Objetivos:
Cliente del Banco: quiere realizar una operación con el cajero automático de manera
rápida, para lo que debe validar su tarjeta y contraseña.
Consorcio: Quiere identificar correctamente el banco del cliente y mediar en la
validación de manera eficaz.
Banco: Quiere identificar correctamente la identidad de la tarjeta.
Precondiciones: El cliente tiene una cuenta en uno de los bancos del consorcio, así
como una tarjeta emitida por el mismo.
1. El cajero automático pide al cliente que inserte la tarjeta de crédito
2. El cliente inserta la tarjeta de crédito.
3. El cajero automático acepta la tarjeta de crédito y lee el número de tarjeta y el
código del banco.
4. El cajero automático pide la contraseña al cliente.
5. El cliente ingresa la contraseña.
6. El cajero automático envía el número de tarjeta, el código del banco y la
contraseña al consorcio.
7. El consorcio envía el número de tarjeta y la contraseña al banco
correspondiente.
8. El banco notifica la aceptación al consorcio.
9. El consorcio notifica la aceptación al cajero automatico.
Caso de Uso
Retirar Efectivo
Actores primarios: Cliente del Banco, Consorcio, Banco
Objetivos
Cliente del Banco: quiere retirar dinero de manera rápida, quiere que se anote la transacción
en su cuenta de manera correcta, quiere la devolución de su tarjeta y quizá un recibo de la
transacción.
Consorcio: Quiere identificar correctamente el banco del cliente y mediar en la transacción de
manera eficaz.
Banco: Quiere identificar correctamente la cuenta del cliente, y anotar la transacción.
Precondiciones: El cliente tiene una cuenta en uno de los bancos del consorcio, ha
introducido su tarjeta, y contraseña, y ésta se ha validado correctamente por el banco
correspondiente. El cliente selecciona retirar efectivo.
Garantía de éxito: El cliente obtiene su dinero, la transacción se anota.
14. 1. El cajero automático pide al cliente que teclee la cantidad.
2. El cliente teclea una cantidad.
3. El cajero automático comprueba que la cantidad está dentro de los límites.
4. El cajero automático genera una transacción y la envía al consorcio.
5. El consorcio pasa la transacción al banco.
6. El banco aprueba la transacción.
7. El banco actualiza la cuenta
8. El banco envía al consorcio la notificación de aceptación y el nuevo saldo de la
cuenta.
9. El consorcio envía al cajero automático la notificación de aceptación y el saldo
10. El cajero automático entrega el dinero al cliente.
11. El cliente toma el dinero.
12. El ATM pregunta al cliente si quiere un recibo.
13. El cliente contesta SI.
14. El ATM imprime un recibo y pide al cliente que lo tome.
15. El cliente toma el recibo.
16. El ATM pregunta al cliente si quiere hacer otra operación.
17. El cliente contesta NO.
18. El ATM expulsa la tarjeta de crédito e indica al cliente que la tome.
19. El cliente toma la tarjeta de crédito.
20. El ATM vuelve a la situación inicial.