Introduccin a UML
David Pinelo
Marzo Abril de 2009
ndice
Introduccin a UML
Vista general Arquitectura Bloques de construccin
Modelado Estructural
Diagramas de clases Diagramas de objetos
Modelado del comportamiento
Diagramas de interaccin
Diagramas de secuencia Diagramas de colaboracin
Diagramas de actividades Diagramas de despliegue Diagramas de paquetes Diagramas de tiempos Nuevos diagramas en UML 2.0 Herramientas CASE XMI
Casos de uso
Diagramas de casos de uso
Introduccin. Objetivos
Se presentar la revision 2 del OMG (Object Management Group) de noviembre de 2007. UML: Unified Modeling Language El objetivo de UML es proporcionar a desarrolladores de software, arquitectos de sistemas e ingenieros de software de herramientas para el anlisis, diseo e implementacin de sistemas basados en software, as como modelar procesos de negocio y similares El modelado captura las partes esenciales del sistema
Introduccin. Objetivos (II)
UML es un lenguaje con un alcance muy grande y que cubre diversos conjuntos de dominios arquitectnicos en el diseo de aplicaciones. Por ello, no todas sus capacidades de modelados son necesariamente tiles en todos los dominios o aplicaciones. UML permite seleccionar slo aquellas partes del lenguaje que sean realmente tiles. El 80 por ciento de la mayora de los problemas pueden modelarse usando alrededor del 20 por ciento de UML - Grady Booch
Modelado
Busca representar los planos del software El modelado es la espina dorsal del desarrollo de software de calidad Modelo: Simplificacin de la realidad UML busca
Visualizar cmo es o queremos que sea un sistema Especificar la estructura o el comportamiento de un sistema Proporcionar plantillas que nos guen en la construccin de un sistema Documentar las decisiones que hemos adoptado
Modelado (II)
Principios bsicos del modelado
Seleccionar el modelo adecuado para cada momento, y dependiendo de qu modelo se elija se obtendrn diferentes beneficios y diferentes costes
El modelado orientado a objetos proporciona sistemas ms flexibles y readaptables. Todo modelo puede ser expresado en base a diferentes niveles de precisin Obtener modelos que representen la realidad lo ms claramente posible Un nico modelo no es suficiente
UML. Qu proporciona
Proporciona un vocabulario y las reglas para utilizarlo para as tener una representacin conceptual y fsica de un sistema Utiliza grficos y textos
Los modelos pueden ser interpretados por personas que no participaron en su diseo, sin ninguna ambigedad
UML. Vista general
Bloques de construccin
Elementos
Estructurales Comportamiento Agrupacin Anotacin
Diagramas
Clases Objetos Casos de Uso Secuencia Colaboracin Estados Componente Despliegue
Reglas
Nombres Alcance Visibilidad Integridad
Afectan
Afectan
Colaboran Relaciones
Dependencia Asociacin Generalizacin Realizacin
Mecanismos
Especificaciones Adornos Divisiones Comunes Extensibilidad
Actan
UML. Diagramas
Diagramas
Diagramas de Estructura
Diagramas de comportamiento
Diagramas de Clases
Diagramas de Componentes
Diagramas de Despliegue Diagramas de Paquetes
Diagramas de Actividad Diagramas de Interaccin
Diagramas de Estados
Diagramas de Objetos
Diagramas de Estructura Compuesta
Diagramas de Casos de uso
Diagramas de Secuencia
Diagramas de Colaboracin
Diagrama Global de Interaccin
Diagramas de Tiempos
UML. Lo imprescindible de historia
En 2000 se aprueba UML 1.4 que supone una revisin mayor. Es la habitual hoy da En 2007 se aprueba la revisin 2.0 que introducen bastantes novedades, que se estn implantando hoy da Participantes
Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson) Digital Equipment Hewlett-Packard i-Logix (David Harel) IBM ICON Computing (Desmond D'Souza) Intellicorp and James Martin & co. (James Odell) MCI Systemhouse Microsoft ObjecTime Oracle Corp. Platinium Technology Sterling Software Taskon Texas Instruments Unisys
Bloques de construccin
Elementos estructurales
Clases
Descripcin de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semntica.
Colaboracin
Cadena de responsabilidad
Interfaz
Coleccin de operaciones que especifican un servicio de una determinada clase o componente. Describe el comportamiento visible externamente de ese elemento. Puede mostrar el comportamiento completo o slo una parte del mismo. No muestra su implementacin
Casos de uso
Login de usuario
Define una interaccin y es una sociedad de roles y otros elementos que colaboran para proporcionar un comportamiento cooperativo mayor que la suma de los comportamientos de sus elementos. Tienen una dimensin tanto estructural como de comportamiento. Una misma clase puede participar en diferentes colaboraciones. Representan la implementacin de patrones que forman un sistema.
Descripcin de un conjunto de acciones que un sistema ejecuta y que produce un determinado resultado que es de inters para un actor particular. Se utiliza para organizar los aspectos del comportamiento en un modelo. Es realizado por una colaboracin.
Bloques de construccin (II)
Elementos estructurales
Clase Activa
Clase cuyos objetos tienen uno o ms procesos o hilos de ejecucin por lo y tanto pueden dar lugar a actividades de control. Es igual que una clase, excepto que sus objetos representan elementos cuyo comportamiento es concurrente con otros elementos.
Nodos
Servidor
Elemento fsico que existe en tiempo de ejecucin y representa un recurso computacional que, por lo general, dispone de algo de memoria y, con frecuencia, de capacidad de procesamiento. Un conjunto de componentes puede residir en un nodo.
Componente
Parte fsica y reemplazable de un sistema que conforma con un conjunto de interfaces y proporciona la implementacin de dicho conjunto. Representa tpicamente el empaquetamiento fsico de diferentes elementos lgicos, como clases, interfaces y colaboraciones.
Bloques de construccin (III)
Elementos estructurales
Interaccin
dibujar
Comportamiento que comprende un conjunto de mensajes intercambiados entre un conjunto de objetos, dentro de un contexto particular para conseguir un propsito especfico. Involucra otros muchos elementos, incluyendo mensajes, secuencias de accin (comportamiento invocado por un objeto) y enlaces (conexiones entre objetos)
Mquinas de estados
Waiting
Elementos de agrupacin
Paquete
Elementos de anotacin
Bloques de construccin (IV)
Relaciones
Dependencia Asociacin
0..1 Es una relacin semntica entre dos elementos en la cual un cambio a un elemento (el elemento independiente) puede afectar a la semntica del otro elemento (elemento dependiente). *
Relacin estructural que describe un conjunto de enlaces, los cuales son conexiones entre objetos. La agregacin es un tipo especial de asociacin y representa una relacin estructural entre un todo y sus partes.
Generalizacin
Realizacin
Es una relacin de especializacin / generalizacin en la cual los objetos del elemento especializado (el hijo) pueden sustituir a los objetos del elemento general (el padre). De esta forma, el hijo comparte la estructura y el comportamiento del padre.
Es una relacin semntica entre clasificadores, donde un clasificador especifica un contrato que otro clasificador garantiza que cumplir. Se pueden encontrar relaciones de realizacin en dos sitios: entre interfaces y las clases y componentes que las realizan, y entre los casos de uso y las colaboraciones que los realizan.
Arquitectura
Es el conjunto de decisiones significativas sobre
La organizacin del sistema Elementos estructurales y sus interfaces Comportamiento Composicin de los elementos estructurales y de comportamiento en subsistemas ms grandes Estilo arquitectnico
Vocabulario Funcionalidad
Ensamblado del sistema Gestin de las configuraciones
Vista de Diseo
Vista de Implementacin
Vista de los Casos de Uso
Vista de procesos
Vista de despliegue
Funcionamiento Capacidad de crecimiento Rendimiento
Topologa del sistema Distribucin
Modelado Estructural. ndice
Clases Responsabilidades Relaciones
Dependencia Generalizacin Asociacin
Interfaces
Relaciones de Realizacin
Roles Paquetes Instancias Diagramas de clases Diagramas de objetos
Modelado Estructural
Modelado: Parte del UML que se ocupa de identificar todas las partes importantes de un sistema, as como sus interacciones. Modelado estructural: Se modelan los aspectos estticos de un sistema Se utilizan clases
Nombre Atributos
Operaciones
Estereotipos
Para cada clase hay que determinar un conjunto de responsabilidades y posteriormente determinar los atributos y las operaciones necesarias para llevar a cabo las responsabilidades de la clase
Modelado Estructural (II)
Responsabilidades: Fin para el que es creada una clase. Obligaciones Es buena prctica iniciar especificando las responsabilidades de cada clase. Objetivo: Abstraer lo necesario y suficiente. No dar demasiadas responsabilidades a una sola clase ni obtener clases con muy pocas responsabilidades.
Modelado Estructural (III)
Relaciones
Manera de representar las interacciones entre clases OJO: Si se modela en exceso, se obtendrn diagramas con un alto nivel de dificultad para poder leerlos. Si se modela insuficiente, se obtendrn diagramas sin la semntica suficiente. Relacin de dependencia
Un cambio en la especificacin del elemento independiente puede afectar al otro elemento implicado en la relacin
Modelado Estructural (IV)
Relacin de Generalizacin
Se establece entre un elemento general (superclase o padre) y un caso ms especfico de ese elemento (subclase o hijo). Es el caso de la Herencia Los objetos hijos se pueden utilizar en cualquier lugar donde aparece el padre Puede modelarse herencia simple y mltiple Polimorfismo: as es como el hijo extiende la funcionalidad del padre en su mbito.
Modelado Estructural (V)
Relacin de Asociacin
Los objetos de un elemento estn conectados con los objetos de otros Puede existir relaciones recursivas (conexin con otros objetos de la misma clase) Adornos para facilitar su comprensin
Nombre: Utilizado para describir la naturaleza de la relacin Rol: Cara que una clase presenta a la clase que en encuentra en el otro extremo de la asociacin Multiplicidad: Indica cuntos objetos se pueden conectar a traes de una instancia de la asociacin Agregacin: Relacin estructural entre iguales. Sirve para modelar relaciones del tipo todo/parte Composicin: Como la agregacin simple, pero existe una fuerte relacin de pertenencia y vidas coincidentes de la parte del todo.
Modelado Estructural (VI)
Ejemplo de asociacin simple
Nombre Persona
1..* Trabaja para *
Empresa Rol
empleado
Patrn
Ejemplo de agregacin
Ejemplo de composicin
Modelado Estructural (VII)
Interfaces
Coleccin de operaciones que sirven para especificar el servicio que una clase o componente da al resto de las partes involucradas en un sistema UML las utiliza para modelar las lneas de separacin de un sistema Puede participar en relaciones de realizacin Una interfaz especifica un contrato para una clase o componente sin dictar su implementacin
Representacin 1
Representacin 2
Modelado Estructural (VIII)
Relacin de realizacin (en interfaces)
La clase que implementa garantiza que har las veces de la interfaz. Es una relacin mucho ms fuerte que la generalizacin
Roles
Una clase puede implementar varios interfaces. Un rol denota un comportamiento de una entidad en un contexto particular.
Lo habitual es utilizar la notacin en forma de crculo para denotar lneas de separacin del sistema cuando utilizamos componentes, y utilizar la notacin expandida en las relaciones de realizacin
Modelado Estructural (IX)
Paquetes
Mecanismo de propsito general para organizar elementos de modelado en grupos Se puede controlar la visibilidad de los elementos de un paquete (algunos podrn ser visibles, otros estarn ocultos) Un paquete forma un espacio de nombres.
GestinUsuarios
GestinUsuarios::Usuario
Usuario Accesos
Permisos
Los paquetes se pueden anidar, pero deben evitarse paquetes muy anidados. Dos o tres niveles de anidamiento como mximo.
Modelado Estructural (X)
Instancias
Sinnimo de objeto. Representa la manifestacin concreta de una abstraccin (clase, nodo, casos de uso, asociaciones...) Sus operaciones se denotan como
u.getPermisos()
Los valores concretos de sus atributos determinan su estado
usuario
Diagramas de clases
Diagrama que muestra un conjunto de clases, interfaces, colaboraciones y sus relaciones Usos
Modelar el vocabulario de un sistema (abstracciones que son parte del sistema y las que no lo son) Modelar colaboraciones simples
Colaboracin: Sociedad de clases, interfaces y otros elementos que colaboran para proporcionar un comportamiento cooperativo mayor que la suma de todos sus elementos.
Modelar el esquema lgico de una base de datos.
Se utilizan para visualizar los aspectos estticos de los bloques de construccin del sistema.
Diagrama de clases (II)
Uso: Colaboraciones simples. Pasos a seguir
Identificar los mecanismos que se quieren modelar
Mecanismo: Funcin o comportamiento de parte del sistema que se est modelando y que resulta de la interaccin de una sociedad de clases, interfaces y otros elementos.
Para cada elemento, identificar las clases, interfaces y otras colaboraciones que participan en esta colaboracin, as como las relaciones entre estos elementos Usar escenarios para recorrer la interaccin entre estos elementos. Se descubrirn partes del modelo que faltaban y las que son semnticamente incorrectas Dotar a estos elementos de contenido: Equilibrar el reparto de responsabilidades entre clases, y convertir las responsabilidades en atributos
Diagrama de clases (III)
Diagrama de objetos (I)
Contiene un conjunto de instancias (objetos) de los elementos encontrados en un diagrama de clases Expresa la parte esttica de una interaccin, mostrando los objetos que colaboran pero sin ninguno de los mensajes enviados entre ellos Un diagrama de objetos congela un instante del tiempo Hay quienes los consideran como un caso particular de diagrama de clases Usos
Modelar estructuras de datos estticas para as sustentar los requisitos funcionales de un sistema. Visualizar, especificar, construir y documentar la estructura de objetos, especialmente en estructuras de datos complejas. Mostrar significativamente conjuntos interesantes de objetos concretos o prototpicos
Diagramas de objetos (II)
Pasos a seguir:
Identificar el mecanismo a modelar Para cada mecanismo, identificar las clases, interfaces y otros elementos que participan en esta colaboracin, as como las relaciones entre estos elementos Considerar un escenario en el que intervenga este mecanismo. Congelar este escenario en un momento concreto y representar cada objeto que participe en el mecanismo Mostrar el estado y valores de los atributos de cada uno de esos objetos, si son necesarios para comprender el escenario Mostrar los enlaces de esos objetos, que representaran instancias de las asociaciones entre ellos
Modelado del Comportamiento. ndice
Interacciones
Enlaces Mensajes Modelado de un flujo de control Diagramas de interaccin
Modelado de flujos de control por ordenacin temporal
Diagramas de secuencia
Modelado de flujos de control por organizacin
Diagramas de colaboracin
Casos de uso
Actores Flujo de eventos Escenarios Colaboraciones Modelado del comportamiento de un elemento Diagramas de actividades
Modelado del comportamiento (I)
Se modelan los aspectos dinmicos de un sistema mediante interacciones Interaccin: Comportamiento que comprende un conjunto de mensajes intercambiados entre un conjunto de objetos dentro de un contexto para lograr un propsito Utilizada para modelar el flujo de control dentro de una operacin, una clase, un componente, un caso de uso el propio sistema Un mensaje es la especificacin de una comunicacin entre objetos que transmite informacin, con la expectativa de que se desencadenar una actividad
Modelado del comportamiento (II)
Dnde aparecen las interacciones?
En la colaboracin de objetos existentes en el contexto de un sistema o un subsistema Entre los objetos de un mismo subsistema en la implementacin de una operacin En el contexto de una clase (cmo los atributos y diferentes operaciones interaccionan entre s para dar lugar a una nueva operacin)
Los objetos que participan en una interaccin son o bien elementos concretos (objetos) o bien elementos prototpicos (clases, nodos y casos de uso Enlace: Instancia de una asociacin. Siempre que exista un enlace entre dos objetos, un objeto puede mandar un mensaje al otro
Modelado del comportamiento (III)
Mensajes: Especificacin de una comunicacin entre objetos que transmite informacin, con la expectativa de que se desencadenar alguna actividad Tipos de mensajes
Llamada: Invoca una operacin sobre un objeto Retorno: Devuelve un valor al invocador Envo: Enva una seal a un objeto Creacin Destruccin
Modelado del comportamiento (IV)
Modelado de un flujo de control: Construir una representacin grfica (a modo de diagrama de secuencias o de colaboracin) de las acciones que tienen lugar entre un conjunto de objetos. Mtodo base.
Establecer el contexto de la interaccin Establecer el escenario identificando qu objetos juegan un rol, estableciendo sus propiedades iniciales (estado = valores de sus atributos) Identificar los enlaces que conectan los objetos y que son relevantes para los flujos de mensajes que tienen lugar en la interaccin Especificar los mensajes que pasan de un objeto a otro mediante una organizacin temporal Adornar cada objeto con su estado y rol siempre que sea preciso
Diagramas de Interaccin
Representaciones grficas de escenarios que implican la interaccin de ciertos objetos interesantes y los mensajes enviados entre ellos, para modelar aspectos dinmicos. Dos formas de construirlos
Destacando la ordenacin temporal de los mensajes
Diagramas de secuencias
Destacando la relacin estructural de los objetos que interactan
Diagramas de colaboracin
Diagrama de secuencias (I)
Destaca la ordenacin temporal de los mensajes Se obtiene una representacin visual clara del flujo de control a lo largo del tiempo Caractersticas
Lnea de vida. Representa la existencia de un objeto a lo largo de un perodo de tiempo. Si se crean o destruyen objetos durante la interaccin, sus lneas de vida aparecen y desaparecen cuando reciben los mensajes estereotipados
<<create>> <<destroy>>
Foco de control. Representa el perodo de tiempo durante el cual un objeto ejecuta una accin
Diagrama de secuencias (II)
Clasificacin de mensajes
Sncronos se corresponden con llamadas a mtodos del objeto que recibe el mensaje. El objeto que enva el mensaje queda bloqueado hasta que termina la llamada. Se representan con flechas con la cabeza llena. Asncronos, estos mensajes terminan inmediatamente, y crean un nuevo hilo de ejecucin dentro de la secuencia. Se representan con flechas con la cabeza abierta.
Tambin se representa la respuesta a un mensaje con una flecha discontinua.
Diagramas de secuencias (III)
Modelado de flujos de control por ordenacin temporal
Establecer el contexto de la interaccin (sistema, subsistema, clase, caso de uso...). Tpicamente se escoge un caso de uso Establecer un escenario de la interaccin: identificar qu objetos juegan un rol. Los objetos se organizan en el diagrama de izquierda a derecha, colocando los objetos ms importantes a la izquierda y sus objetos vecinos a la derecha. Establecer la lnea de vida de cada objeto. La mayora persisten la interaccin completa. Para los que no, debe indicar explcitamente su creacin y destruccin A partir del mensaje que inicia la interaccin, hay que ir colocando los mensajes subsiguientes de arriba a abajo entre las lneas de vida, mostrando las propiedades de cada mensaje (sus parmetros, por ejemplo). Establecer si los mensajes son sncronos o asncronos Adornar cada mensaje con marca de tiempo si son necesarias restricciones de tiempo Se pueden incluir pre y poscondiciones.
Diagrama de secuencias (IV) Ejemplo
Tpicamente uno examina la descripcin de un caso de uso para determinar qu objetos son necesarios para la implementacin del escenario. Si tiene modelada la descripcin de cada caso de uso como una secuencia de varios pasos, entonces puedes "caminar sobre" esos pasos para descubrir qu objetos son necesarios para que se puedan seguir los pasos.
Diagrama de colaboracin (I)
Desde UML 2.0 tenemos el diagrama de comunicacin, versin simplificada del diagrama de colaboracin Destaca la organizacin de los objetos que participan en una interaccin Ofrece una representacin clara del flujo de control en el contexto de la organizacin estructural de los objetos que colaboran Caractersticas
Para indicar cmo se enlaza un objeto a otro, se puede asociar un estereotipo de camino al extremo ms lejano de un enlace
<<local>> <<parameter>> <<global>> <<self>>
Nmero de secuencia para indicar la ordenacin temporal de un mensaje y su anidamiento: numeracin decimal de Dewey
Diagrama de colaboracin (II)
Modelado de flujos de control por organizacin
Establecer el contexto de la interaccin Establecer un escenario de la interaccin, identificando qu objetos juegan un rol en ella. Los objetos deben organizarse en el diagrama de colaboracin como los nodos del grafo, colocando los objetos ms importantes en el centro y sus objetos vecinos en el exterior Establecer las propiedades iniciales de cada uno de estos objetos. Si los valores de los atributos, valores etiquetados, estado o rol de algn objeto cambia de forma significativa durante la interaccin, hay que colorar un objeto duplicado en el diagrama, actualizado con los nuevos valores y conectarlo con un mensaje estereotipado como become o copy Especificar los enlaces entre esos objetos, juntos con los mensajes que pueden pasarse Colocar los enlaces de asociaciones en primer lugar Colocar los dems enlaces a continuacin, y adornarlos con los estereotipos de camino adecuados (como global y local) para especificar explcitamente cmo se conectan estos objetos entre s
Diagrama de colaboracin (III)
Modelado de flujos de control por organizacin (II)
Comenzando por le mensaje que inicia la interaccin, hay que asociar cada mensaje subsiguiente al enlace apropiado, estableciendo su nmero de secuencia. Los anidamientos se representan con la numeracin decimal de Dewey Si es necesario especificar restricciones de tiempo, hay que adornar cada mensaje con una marca de tiempo Si es necesario, pueden agregarse pre y postcondiciones
Diagrama de colaboracin (IV)
Modelado del comportamiento (IV)
Casos de uso: Especifica el comportamiento de un sistema o una parte del mismo, y es una descripcin de un conjunto de secuencias de acciones, incluyendo variantes, que ejecuta un sistema para producir un resultado observable para un actor Se emplean para capturar el comportamiento deseado del sistema en desarrollo sin tener que especificar cmo se implementa ese comportamiento. Proporcionan un medio para que desarrolladores y usuarios finales del sistema lleguen a una comprensin comn del sistema. No especifican cmo se implementa: especifican un comportamiento deseado, pero no indican cmo se lleva a cabo Normalmente se evita el empleo de jergas tcnicas, prefiriendo en su lugar un lenguaje ms cercano al usuario final. En ocasiones, se utiliza a usuarios sin experiencia junto a los analistas para el desarrollo de casos de uso.
Modelado del comportamiento (V)
Un caso de uso representa un requisito funcional del sistema Actores
Los actores representan un rol que puede ser jugado por una persona, un dispositivo hardware o incluso otro sistema Se pueden representar categoras de actores ms generales Slo se pueden conectar a los casos de uso a travs de asociaciones
Variantes: Casos de uso que son versiones especializadas de otros casos de uso. Pueden aplicarse al sistema completo o partes del sistema.
Modelado del comportamiento (VI)
El comportamiento de un caso de uso se puede especificar describiendo un flujo de eventos de forma textual, lo suficientemente claro para que alguien ajeno al sistema lo entienda fcilmente Una vez especificados en modo texto se pueden especificar grficamente mediante diagramas de interaccin
Se usa un diagrama de secuencia para especificar el flujo principal de un caso de uso Variantes del diagrama de secuencia para especificar los flujos excepcionales
Modelado del comportamiento (VII)
Modelado del comportamiento (VIII)
Importancia de los casos de uso
Permite a los analistas especificar su vista externa del sistema a nivel suficiente para que los desarrolladores construyan su vista interna Proporcionan un foro comn donde desarrolladores, analistas y usuarios finales pueden intercambiar opiniones Los casos de uso proporcionan a los desarrolladores una forma de abordar y comprender un elemento Permiten que el creador de un elemento comunique su intencin sobre cmo se debera usar Sirven de base para probar cada elemento segn evoluciona durante el desarrollo
Modelado del comportamiento (IX)
Modelado del comportamiento de un elemento
Identificar los actores que interactan con el elemento Organizar los actores identificando tanto los roles ms generales como los ms especializados Considerar las formas ms importantes que tiene cada actor de interactuar con el elemento Considerar las interacciones que implican el cambio de estado del elemento o su entorno o que involucren una respuesta ante algn evento Considerar las formas excepcionales en las que cada actor puede interactuar con el elemento Organizar estos comportamientos como casos de uso
Diagramas de casos de uso (I)
Sirve para visualizar el comportamiento del sistema: Los servicios visibles externamente que proporciona el sistema en el contexto de su entorno. Usos
Modelar el contexto de un sistema Modelar los requisitos de un sistema
Diagramas de casos de uso (II)
Modelado del contexto de un sistema
Hay que identificar los actores en torno al sistema considerando los siguientes grupos
Los que requieren ayuda del sistema para llevar a cabo sus tareas Los necesarios para ejecutar las funciones del sistema Los que interactan con el hardware externo o con otros sistemas software Los que realizan funciones secundarias de administracin y mantenimiento
Organizar los actores similares en jerarquas de generalizacin / especializacin Proporcionar un estereotipo a cada uno de esos actores Introducir esos actores en un diagrama de casos de uso y especificar las vas de comunicacin con cada uno de los casos de uso del sistema
Diagramas de casos de uso (III)
Diagrama de casos de uso (IV)
Modelado de los requisitos de un sistema
Establecer el contexto del sistema, identificando los actores a su alrededor Considerar el comportamiento que cada actor espera del sistema o requiere que ste le proporcione Nombrar esos comportamientos comunes como casos de uso Factorizar el comportamiento comn en nuevos casos de uso que puedan ser utilizado por otros Adornar los casos de uso con notas que enuncien los requisitos no funcionales
Diagrama de casos de uso (V)
Diagrama de Actividades (I)
Muestra el flujo de las actividades software de alto nivel en la ejecucin de un sistema, pero sin profundizar en los detalles internos de mensajes Actividad: Ejecucin no atmica en curso, dentro de una mquina de estados. Las actividades producen finalmente alguna accin Las acciones incluyen llamadas a otras operaciones, envo de seales, creacin o destruccin de objetos o simples clculos, como la evaluacin de una expresin Los diagramas de estado contienen
Estados de actividades Estados de accin Transiciones Objetos
Especialmente til para visualizar los flujos de trabajo y los procesos de negocio
Diagrama de Actividades (II)
Estados de accin: Estados del sistema. Representan la ejecucin de una accin.
Ejemplos
Evaluar una expresin Invocar una operacin sobre un objeto Enviar una seal a un objeto Crear o destruir un objeto
No se pueden descomponer. Son atmicos (no se interrumpe su ejecucin) Su ejecucin conlleva un tiempo insignificante
Estados de actividad. Elemento compuesto cuyo flujo de control se compone de otro estado de actividad y estados de accin No son atmicos. Se pueden descomponer Su ejecucin conlleva un tiempo
Diagrama de Actividades (III)
Transiciones Bifurcaciones: Especifica caminos alternativos, elegidos segn el valor de alguna expresin booleana Divisin y Unin: Utilizadas para modelar flujos concurrentes (estas pueden ser realmente concurrentes o secuenciales pero con ilusin de concurrencia)
Diagrama de Actividades (IV)
Calles (o Swimlanes): Dividir los estados de actividad de un diagrama de actividades en grupos, donde cada uno representa la parte de la organizacin responsable de esas actividades. Cada calle representa una responsabilidad de alto nivel de una parte de actividad global de un diagrama de actividades, y cada calle puede ser implementada en ltima instancia por una o ms clases
Diagrama de Actividades (VI)
Usos:
Se usan en el contexto del sistema global, un subsistema, una operacin o una clase. Se pueden asociar diagramas de actividades a un caso de uso (se modela un escenario) y a las colaboraciones (se modelan aspectos dinmicos de una sociedad de objetos) Modelar un flujo de trabajo (se ve el sistema desde el punto de vista de los actores) Modelar una operacin (utilizado como diagrama de flujo u organigrama)
Diagrama de despliegue
Utilizados para modelar el hardware utilizado en las implementaciones de sistemas y las relaciones entre sus componentes Elementos usados
nodos (representados como un prisma) componentes (representados como una caja rectangular con dos protuberancias del lado izquierdo) asociaciones
Artefacto: un archivo, un programa, una biblioteca, o una base de datos construida o modificada en un proyecto. Estos artefactos implementan colecciones de componentes Los nodos internos indican ambientes, un concepto ms amplio que el hardware propiamente dicho, ya que un ambiente puede incluir al lenguaje de programacin, a un sistema operativo, un ordenador o un cluster de terminales
Diagrama de despliegue (II)
La mayora de las veces el modelado de la vista de despliegue implica modelar la topologa del hardware sobre el que se ejecuta el sistema. Aunque UML no es un lenguaje de especificacin hardware de propsito general, se ha diseado para modelar muchos de los aspectos hardware de un sistema a un nivel suficiente para que un ingeniero software pueda especificar la plataforma sobre la que se ejecuta el software del sistema.
Diagrama de despliegue (III)
Diagrama de paquetes
Muestra como un sistema est dividido en agrupaciones lgicas mostrando las dependencias entre esas agrupaciones
Diagrama de tiempos
Grfica de formas de onda digitales que muestra la relacin temporal entre varias seales, y cmo vara cada seal en relacin a las dems.
Nuevos diagramas en UML 2.0
Diagrama de estructura compuesta
Muestra la estructura interna de una clase y las colaboraciones que esta estructura hace posibles
Diagrama global de interacciones
Es un diagrama de comportamiento, ms precisamente, uno de los cuatro diagramas de interaccin. Muestra una cierta vista sobre los aspectos dinmicos de los sistemas modelados Algunos elementos grficos estn tomados del diagrama de actividades
Inconvenientes de UML
Problemas tpicamente achacados a UML
Carencia de una semntica precisa, lo que ha dado lugar a que la interpretacin de un modelo UML no pueda ser objetiva. No se presta con facilidad al diseo de sistemas distribuidos (cmo se modela transmisin, serializacin, persistencia, que un objeto es persistente o remoto?)
UML no es una metodologa, pero se entiende as Solucin: UML s acepta la creacin de nuestros propios componentes para este tipo de modelado
Ciclo de vida de un proyecto software
Herramientas CASE
Computer Aided Software Engineering: Ingeniera de Software Asistida por Ordenador) Aplicaciones informticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en trminos de tiempo y de dinero. Nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseo del proyecto, calculo de costes, implementacin de parte del cdigo automticamente con el diseo dado, compilacin automtica, documentacin o deteccin de errores entre otras.
Herramientas CASE. Objetivos
Mejorar la productividad en el desarrollo y mantenimiento del software Aumentar la calidad del software Reducir el tiempo y coste de desarrollo y mantenimiento de los sistemas informticos Mejorar la planificacin de un proyecto Aumentar la biblioteca de conocimiento informtico de una empresa ayudando a la bsqueda de soluciones para los requisitos Automatizar el desarrollo del software, la documentacin, la generacin de cdigo, las pruebas de errores y la gestin del proyecto Ayuda a la reutilizacin del software, portabilidad y estandarizacin de la documentacin Gestin global en todas las fases de desarrollo de software con una misma herramienta Facilitar el uso de las distintas metodologas propias de la ingeniera del software
Algunas Herramientas CASE
ArgoUML CASE Studio 2 CASEWise Eclipse - Sitio Web GNU Ferret MetaCASE Rational Rose Umbrello Microsoft Visio
XMI
XMI o XML Metadata Interchange (XML de Intercambio de Metadatos) es una especificacin para el Intercambio de Diagramas La especificacin para el intercambio de diagramas fue escrita para proveer una manera de compartir modelos UML entre diferentes herramientas de modelado