Академический Документы
Профессиональный Документы
Культура Документы
Puede hacerlo una sola persona Requiere: Modelado mnimo Proceso simple Herramientas simples
I. Introduccin: Modelado de SW
Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas ms sofisticadas
Herramientas
Proceso
Mltiples Sistemas
Componentes Reutilizados
Promover la Reutilizacin
Qu es UML?
UML = Unified Modeling Language Un lenguaje de propsito general para el modelado orientado a objetos. Impulsado por el Object Management Group (OMG, www.omg.org) Documento OMG Unified Modeling Language Specification UML combina notaciones provenientes desde:
Modelado Orientado a Objetos Modelado de Datos Modelado de Componentes Modelado de Flujos de Trabajo (Workflows)
Qu es UML?
El UML modela sistema mediante el uso de objetos que forman parte de l as como, las relaciones estticas o dinmicas que existen entre ellos. UML puede ser utilizado por cualquier metodologa de anlisis y diseo orientada por objetos para expresar los diseos.
Qu es UML?
UML es un Lenguaje de Modelado Unificado basado en una notacin grfica la cual permite: especificar, construir, visualizar y documentar los objetos de un sistema programado. Este lenguaje es el resultado de la unificacin de los mtodos de modelado orientados a objetos de Booch, Rumbaugh (OMT: Object Modeling Technique) y Jacobson (OOSE: Object-Oriented Software Engineering).
UML
UML es un lenguaje de modelado que sirve para visualizar, especificar , construir y documentar un sistema software. Lenguaje de modelado:
Lenguaje cuyo vocabulario y reglas se centran en la representacin conceptual y fsica de un sistema (Booch, Jacobson y Rumbaugh).
Smbolos con semntica bien definida. UML transciende al lenguaje de programacin. Modelo explcito, que facilita la comunicacin.
Especificar es equivalente a construir modelos que cumplan las condiciones de no ambigedad y completitud. UML cubre la especificacin del anlisis, diseo e implementacin de un sistema software.
Es posible hacer Ingeniera Directa corresponder con los Modelo CDIGO lenguajes de UML programacin Ingeniera Inversa (Java, C#, B.Datos, etc.).
Shlaer-Mellor
Object life cycles
UML
State Charts
Harel
Embly
Singleton classes
Wirfs-Brock Fusion
Responsabilities
Historia de UML
2001
2000 1999 1998 Nov 97
UML aprobado por el OMG
Actualizaciones de UML
UML 1.3 es una versin madura de UML a la que se le han aadido una serie de pequeas revisiones, las cuales corrigen o mejoran la especificacin base (UML 1.2). UML 1.4 incorpora ciertas modificaciones sobre el estndar en base a los comentarios recogidos de los usuarios finales y de los fabricantes de software compatible con UML. UML 2.0 promete la puesta a punto del estndar para poder integrarse con el desarrollo basado en componentes que demanda el mercado.
UML 2.0
Arquitectura: refinamiento del ncleo del estndar para que est en consonancia con el resto de estndares del mercado. Personalizacin: mejora de los mecanismos de extensibilidad y personalizacin. Componentes: mejor soporte para el desarrollo basado en componentes (CORBA, EJB, COM+). Mecanismos generales: nuevos mecanimos para el control de las versiones dentro del modelo, as como el intercambio de los metadatos del mismo con XMI (XML Metadad Interchange).
Modelos y Diagramas
Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de inters El cdigo fuente del sistema es el modelo ms detallado del sistema (y adems es ejecutable). Sin embargo, se requieren otros modelos ... Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diferentes modelos
Modelos y Diagramas
Modelo: captura una vista de un sistema del mundo real. Es una abstraccin de dicho sistema, considerando un cierto propsito. Diagrama: representacin grfica de una coleccin de elementos de modelado, a menudo dibujada como un grafo con vrtices conectados por arcos.
Organizacin de Modelos
Vista de Implementacin
Vista de Procesos
Vista de Despliegue
Diagramas de UML
Use Case Use Case Diagramas de Diagrams Diagrams Casos de Uso State State Diagramas de Diagrams Diagrams Clases
Use Case Use Case Diagramas de Diagrams Diagrams Secuencia Scenario Scenario Diagramas de Diagrams Diagrams Colaboracin
State State Diagramas de Diagrams Diagrams Objetos State State Diagramas de Diagrams Diagrams Componentes
Modelo
Diagramas de Actividad
Distribucin
utility Producto -Paginas : int +Insert() +Update() +Delete() #GetNumPaginas() : int IDataManaged
Casos de Uso
Casos de Usos
Un diagrama de Casos de Uso muestra la distintas operaciones que se esperan de una aplicacin o sistema y cmo se relaciona con su entorno (usuario u otras aplicaciones). Es una herramienta esencial para la captura de requerimientos y para la planificacin y control de un proyecto interactivo.
Casos de Usos
Los casos de Uso Se representa en el diagrama por una elipse que denota un requerimiento solucionando por el sistema. Cada caso de uso de uso es una operacin completa desarrollada por los actores y por el sistema en un dilogo. El conjunto de casos de uso representa la totalidad de operaciones desarrolladas por el sistema.
Casos de Usos
Casos de Usos
Actor: Es un usuario del sistema, que necesita o usa alguno de los casos de uso. Un usuario puede jugar ms de un rol. Un solo actor puede actuar en muchos casos de uso; recprocamente, un caso de uso puede tener varios actores. Los actores no necesitan ser humanos pueden ser sistemas externos que necesitan alguna informacin del sistema actual.
Casos de Usos
Comunica (comunicates) Entre un actor y un caso de uso, denota la participacin del actor en el caso de uso determinado.
Casos de Usos
Usa (uses): Relacin entre dos casos de uso, denota la inclusin del comportamiento de un escenario en otro. Se utiliza cuando se repite un caso de uso en dos o ms casos de uso separados. Frecuentemente no hay actor asociado con el caso de uso comn.
Casos de Usos
Extiende (extends): Relacin entre dos casos, denota cuando un caso de uso es una especializacin de otro. Se usa cuando se describe una variacin sobre el normal comportamiento.
Casos de Usos
Modelado del contexto del sistema (utilidad similar a los DFD). Modelado de los requisitos de un sistema. Modelado del proceso de test y estrs del sistema.
Diagrama de Clases
Clase Objeto Herencia Interfaz Polimorfismo de clases Clases y atributos estticos Clases y atributos finales Clases y mtodos abstractos
Diagrama de clases
Un diagrama de clases o estructura esttica muestra el conjunto de clases y objeto importantes que forman parte de un sistema, junto con las relaciones existentes entre clases y objetos. Muestra de una manera esttica la estructura de informacin del sistema y la visibilidad que tiene cada una de las clases, dada por sus relaciones con los dems en el modelo.
Diagrama de clases
Modelado del vocabulario del sistema. Modelado de colaboraciones simples. Modelado de un esquema lgico de base de datos. Modelado de un conjunto de clases de test.
Diagrama de clases
Clase: representa un conjunto de entidades que tienen en comn propiedades, operaciones, relaciones y semntica. Una clase es un constructor que define la estructura y comportamiento de una coleccin de objeto denominados instancia de la clase. En UML la clase est representada por un rectngulo con tres divisiones internas, son los elementos fundamentales del diagrama.
Diagrama de clases
Atributo: Representa una propiedad de una entidad. Cada atributo de un objeto tiene un valor que pertenece a un dominio de valores determinado. Las sintaxis de una atributo es: Visibilidad <nombre>: tipo = valor { propiedades} Donde visibilidad es uno de los siguientes: + pblico. # protegido. - privado.
Diagrama de clases
Operacin: El conjunto de operaciones que describen el comportamiento de los objetos de una clase. La sintaxis de una operacin en UML es: Visibilidad nombre (lista de parmetros): tipo que retorna { propiedades}
Diagrama de clases
Nombre de la clase
Atributos
Mtodos
Diagrama de clases
Responsabilidades: Contrato u obligacin de una clase, asignada en el momento del diseo. Clase Producto: Registrar el cdigo de la publicacin. Mantener estructura del producto plantilla.
Diagrama de clases
Tcnicas de modelado: Modelado del vocabulario de un sistema a partir de las descripciones funcionales. Modelado de la distribucin de responsabilidades en un sistema. Modelado de cosas que no son software (hardware, personas, etc). Modelado de tipos primitivos.
Diagrama de clases
Objeto: es una instancia de una clase. Se caracteriza por tener una identidad nica, un estado definido por un conjunto de valores de atributos y un comportamiento representado por sus operaciones y mtodos.
Asociacin (rol, multiplicidad, calificador): representan las relaciones entre instancias de clase. Una asociacin es una lnea que une dos o ms clases.
Diagrama de clases
Nombre: Identifica la asociacin entre los objetos, caracterizndola. Rol: Identificado como un nombre a los finales de la lnea, describe la semntica de la relacin en el sentido indicado. Cada asociacin tiene dos roles; cada rol es una direccin en la asociacin. El rol puede estar representado en el nombre de la clase.
Diagrama de clases
Multiplicidad: Describe la cardinalidad de la relacin, es decir, cuanto objetos de esa clase pueden participar en la relacin dada. Tipos:
Diagrama de clases
Dependencia: Es una relacin donde existen entidades independientes y otras dependientes, lo que implica que cambiar el elemento independiente puede requerir cambios en los dependientes. Se representa con una lnea punteada direccional, indicando el sentido de la dependencia.
Diagrama de clases
Diagrama de clases
Diagrama de clases
Asociacin Binaria: Representa una relacin sencilla entre dos clases, no muy fuerte (es decir, no se exige dependencia existencial ni encapsulamiento). Se indica como una lnea slida que une dos clases. Asociacin n-aria: Es una asociacin entre tres o ms clases. Se representa como un diamante del cual salen lneas de asociacin a las clases.
Diagrama de clases
Diagrama de clases
Dependencia existencial. El elemento dependiente desaparece al destruirse el que lo contiene y, si es de cardinalidad 1, es creado al mismo tiempo. Hay una pertenencia fuerte. Se puede decir que el objeto contenido es parte constitutiva y vital del que lo contiene.
Diagrama de clases
Los objetivos contenidos no son compartidos, esto es, no hacen parte del estado de otro objeto.
Se denota dibujando un rombo del lado de la clase que contiene a la otra en la relacin.
Diagrama de clases
Diagrama de clases
Agregacin: Relaciona una clase ya ensamblada con una clase componente. Es tambin una relacin de composicin menos fuerte (no se exige dependencia existencial) y se denota por un rombo sin rellenar en un o de los extremos.
Diagrama de clases
Diagrama de clases
Generalizacin: es un proceso de abstraccin en el cual un conjunto de clases existentes, que tienen atributos y mtodos comunes, es referido por una clase genrica a un nivel mayor de abstraccin. La relacin de generalizacin denota una relacin de herencia entre clases. Se representa dibujando un tringulo sin rellenar en el lado de la superclase. La subclase hereda todos los atributos y mensajes descritos en la superclase.
Diagrama de clases
Diagrama de clases
Refinamiento: Es una relacin que representa la especificacin completa de algo que ya ha sido especificado con cierto nivel de detalle. Por ejemplo, una clase del diseo es un refinamiento de una clase de anlisis.
Diagrama de clases
Diagrama de clases
Tcnicas de modelado: Modelado de dependencias simples. Modelado de herencia simple. Modelado de relaciones estructurales (composiciones y agregaciones). Modelado de comentarios.
Diagrama de clases
Diagrama de Interaccin
Diagrama de interaccin
Estos son modelos que describen como los grupos de objetos que colaboran en algunos ambientes. Por lo general, un diagrama de interaccin captura el comportamiento de un nico caso de uso. Hay dos tipos de diagramas de interaccin: diagramas de secuencia y diagramas de colaboracin.
Diagrama de interaccin
Un diagrama de secuencia muestra la interaccin de un conjunto de objetos de una aplicacin a travs del tiempo. Esta descripcin es importante porque puede dar detalle a los casos de uso, aclarndolos al nivel de mensajes de los objetos existentes, como tambin muestra el uso de los mensajes de las clases diseadas en el contexto de una operacin.
Diagrama de interaccin
del
diagrama
de
Objetos o actores para cada entidad. Enlaces entre los objetos. Procedimientos a invocar entre los objetos. Mensajes entre los objetos.
Diagrama de interaccin
Un objeto se representa como una lnea vertical punteada (lnea de vida), con un rectngulo de encabezado y con rectngulo a travs de la lnea principal que denotan la activacin, es decir, el perodo de tiempo en el cual el objeto se encuentra desarrollando alguna operacin. El rectngulo de encabezado contiene el nombre del objeto y el de su clase, en un formato nombreObjeto: nombreClase. El envo de mensajes entre objetos se denotan mediante una lnea slida dirigida, desde el objeto que emite el mensaje hacia el objeto que lo ejecuta.
Diagrama de interaccin
Diagrama de interaccin
Diagramas de Colaboracin:
Es una forma de representar interaccin entre los objetos, es decir, las relaciones entre ellos y la secuencia de los mensajes de las iteraciones que estn indicadas por un nmero A diferencia de los diagramas de secuencia, pueden mostrar el contexto de la operacin (cules objetos son atributos, cules temporales, etc) y ciclos en la ejecucin. Muestra como varios objetos colaboran en un solo caso de uso.
Diagrama de interaccin
Diagrama de interaccin
Tcnicas de modelado: Modelado dinmico del sistema. Implementacin de un caso de uso en concreto para cada diagrama. Modelado del flujo de control por ordenacin temporal (secuencia). Modelado del flujo de control por organizacin (colaboracin).
Diagrama de Estados
Diagrama de estados
Diagrama de Estados: Muestra el conjunto de estado por los cuales pasa un objeto durante su vida en una aplicacin junto con los cambios que permiten pasar de un estado a otro. Esta representado principalmente por los siguientes elementos:
Diagrama de estados
Diagrama de estados
Diagrama de estados
Eventos: Es una ocurrencia que puede causar la transicin de un estado a otro de un objeto. Esta, puede ser una:
Condicin que toma el de verdadero o falso. Recepcin de una seal de otro objeto en el modelo. Recepcin de un mensaje. Paso de cierto perodo de tiempo, despus de entrar al estado o de cierta hora y fecha particular.
Diagrama de estados
Diagrama de estados
Otros elementos:
Subestados. Secuenciales o no, resultan en una nueva mquina de estados. Estados de historia. Estados de historia. Permiten a un conjunto de estados o subestados de un objeto, recordar el estado que estaba activo en su ltima ejecucin. Si no existe historia, se comenzara por el estado inicial. Subestados concurrentes.
Diagrama de estados
Diagrama de estados
Tcnicas de modelado: Modelado de la vida de un objeto. Este tipo de diagramas se asocian directamente a una clase.
Diagrama de Actividades
Diagrama de Actividades
Un diagrama de actividades es un caso especial de un diagrama de estados en el cual casi todos los estados son estados de accin (identifican que accin se ejecuta al esta en l ) y casi todas las transiciones son enviadas al terminar la accin ejecutada en el estado anterior. Generalmente modelan los pasos de un algoritmo y puede dar detalle a un caso de uso, un objeto o un mensaje en un objeto.
Diagrama de Actividades
Sirven para representar transiciones internas, sin hacer mucho nfasis en transiciones o eventos externos. Los elementos que conforman el diagrama son:
Diagrama de Actividades
Estado de Accin: representa un estado con accin interna, con lo menos una transicin que indica la culminacin de la accin (por medio de un evento implcito).
Permite modular un paso dentro del algoritmo. Se representan por un rectngulo con bordes redondeados.
Diagrama de Actividades
Estado de Actividad: Estado ms general que permite su descomposicin en otro diagrama de actividades interno, de nivel ms bajo.
Diagrama de Actividades
Casos especiales:
Estado inicial. Representa el punto de entrada del diagrama de actividades. Estado final. Su existencia depende de si el diagrama es cclico. tem de decisin. Representado con un rombo, permite tomar bifurcaciones condicionales.
Diagrama de Actividades
Casos especiales:
Carriles o Swim Lanes. Permiten acotar el rea a las cuales las actividades estn asociadas (departamentos, mdulos del sistema, etc). Flujos con objetos. Hacer explcita la relacin con una entidad en concreto.
Diagrama de Actividades
Transicin: Es la relacin entre dos estados y se encuentran unidos por flechas; indicando que un objeto que est en el primer estado realizar una accin especificada y entrar en el segundo estado cuando un evento implcito ocurra y unas condiciones especificas sean satisfechas.
Diagrama de Actividades
Tipos de transiciones:
Bifurcaciones condicionales. Permiten tomar distintos caminos dentro del diagrama en funcin de una condicin o guarda. Divisin y unin. Permiten representar el paralelismo en la ejecucin de actividades.
Diagrama de Actividades
Diagrama de interaccin
Tcnicas de modelado:
Modelado de un flujo de trabajo o Workflow. Uso intensivo de estados de actividad, swim lanes y bifurcaciones condicionales. Modelado de una operacin concreta que resulta muy complicada. Uso intensivo de transiciones (simples o paralelas) y de estados de accin.
Diagrama de Componentes
Diagrama de componentes
Los diagramas de componentes describen los elementos fsicos reemplazables del sistema y sus relaciones Muestran las opciones de realizacin incluyendo cdigo fuente, binario y ejecutable
Diagrama de componentes
Los componentes representan todos los tipos de elementos software que entran en la fabricacin de aplicaciones informticas. Pueden ser simples archivos, libreras, bibliotecas cargadas dinmicamente, etc.
Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente
Diagrama de componentes
Diagrama de componentes
Tcnicas de modelado:
Modelado de ejecutables y bibliotecas. Modelado de tablas, archivos y documentos. Modelado y diseo de un API. Modelado del cdigo fuente. Planificacin de versiones ejecutables para su implementacin con Nant.
Diagrama de Despliegue
Diagrama de despliegue
Los diagramas de despliegue muestran la disposicin fsica de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos
Diagrama de despliegue
La vista de despliegue representa la disposicin de las instancias de componentes de ejecucin en instancias de nodos conectados por enlaces de comunicacin. Un nodo es un recurso de ejecucin tal como Dispositivos Procesadores Memoria Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse.
Diagrama de despliegue
Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse. Esta vista permite determinar las consecuencias de la distribucin y la asignacin de recursos.
Diagrama de despliegue
Diagrama de despliegue
Diagrama de despliegue
Tcnicas de modelado:
Paquetes en UML
Los paquetes ofrecen un mecanismo general para la organizacin de los modelos/subsistemas agrupando elementos de modelado Se representan grficamente como:
Nombre de paquete
Paquetes en UML
Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema)
Un paquete puede contener otros paquetes, sin lmite de anidamiento pero cada elemento pertenece a (est definido en) slo un paquete
Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia entre paquetes
Paquetes en UML
Todos los elementos no son necesariamente visibles desde el exterior del paquete, es decir, un paquete encapsula a la vez que agrupa El operador :: permite designar una clase definida en un contexto distinto del actual
Modelo funcional: Cuales son las funciones del sistema? Como fluyen los datos en el sistema?
Modelo dinamico: Como reaccciona el sistema a eventos externos (e internos) y cual es el flujo de eventos?
Ingenieria hacia adelante(Forward Engineering) Se comienza con un modelo antes de producir codigo Ingenieria en reversa (Reverse Engineering) Se crea un modelo a partir de algun codigo Proyectos de interfaces o re-ingenieria Ingenieria ciclica (Roundtrip Engineering) Se mueve constantemente entre ingenieria hacia adelante y en reversa. Util en proyectos que utilizan el modelo de procesos evolutivo, o cuando los requerimientos cambian frecuentemente. Se asume que a partir de UML se puede producir codigo, pero en donde se ubica UML dentro del proceso de Diseo ?.
M. de Casos de Uso del Negocio (Business Use-Case Model) M. de Objetos del Negocio (Business Object Model) M. de Casos de Uso (Use-Case Model) M. de Anlisis (Analysis Model) M. de Diseo (Design Model) M. de Despliegue (Deployment Model) M. de Datos (Data Model) M. de Implementacin (Implementation Model) M. de Pruebas (Test Model)
Modelado de Software.
Cul es el propsito de nuestros modelos? Documentar. Comunicar ideas y estudiar alternativas Tomar decisiones de anlisis/diseo que dirijan la implementacin Generar parcial o totalmente una implementacin a partir de los modelos
Pragmatismo, los modelos deben ser tiles. Principio bsico: Sencillez y Elegancia
Gestin de modelos Distintos nivel de abstraccin, expresados en diferentes modelos
Dificultades para la introduccin de notaciones y herramientas de modelado. La importancia del Proceso de Desarrollo
Resumen
UML define una notacin que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos El modelo de proceso RUP utiliza UML para el modelado.
Bibliografa
Partes de este Curso esta basado en el siguiente material: Curso de Desarrollo de Software Orientado a Objetos usando UML, del Prof. Patricio Letelier Torres, del DSIC de la Universidad Politecnica de Valencia. Transparencias del Libro: Object-Oriented Software Engineering: Using UML, Patterns, and Java, Bernd Bruegge & Allen H. Dutoit (3rd. Edition). Prentice Hall, 2009. UML www.omg.org/uml/ Martin Fowler, autor de UML Destilled (UML Gota a Gota) http://www.martinfowler.com/ Herramientas CASE Rational Rose de IBM Herramientas basadas en UML www.objectsbydesign.com/tools/umltools_byPrice.html