Publicado el 14 de Enero del 2017
1.945 visualizaciones desde el 14 de Enero del 2017
2,8 MB
65 paginas
Creado hace 15a (08/10/2009)
INGENIERÍA DEL SOFTWARE I
Tema 7
Lenguaje Unificado de Modelado - UML
Univ. Cantabria – Fac. de Ciencias
Francisco Ruiz, Patricia López
Objetivos del Tema
• Presentar el estándar UML 2.
• Conocer sus principales características.
• Conocer los principales constructores del lenguaje,
así como los diversos tipos de diagramas y vistas de
modelado que incluye.
Francisco Ruiz, Patricia López - IS1
7.2
1
Contenido
• Introducción
• Objetivos
• Conceptos de Modelado
Modelos
Vistas Arquitecturales
• Modelo Conceptual
• Elementos
Estructurales
De Comportamiento
De Agrupación
De Anotación
• Relaciones
• Diagramas
Estructurales
De Comportamiento
• Reglas
• Mecanismos Comunes
Especificaciones
Adornos
Divisiones comunes
Extensibilidad
• OCL
Francisco Ruiz, Patricia López - IS1
7.3
Bibliografía
• Básica
Booch, Rumbaugh y Jacobson (2006): El Lenguaje
Unificado de Modelado. 2ª edición.
Caps. 2 y 7.
• Complementaria
Booch, Rumbaugh y Jacobson (2006): El Lenguaje
Unificado de Modelado. 2ª edición.
Caps. 4, 5 y 6.
Rumbaugh, Jacobson y Booch (2007): El Lenguaje
Unificado de Modelado. Manual de Referencia. 2ª edición.
Cap. 3.
Francisco Ruiz, Patricia López - IS1
7.4
2
Bibliografía
• Estándares UML y OCL
www.uml.org
• Webs
Múltiples enlaces e informaciones sobre UML:
http://www.cetus-links.org/oo_uml.html
Nuevas características del UML 2
http://www.epidataconsulting.com/tikiwiki/tiki-
read_article.php?articleId=31
Diagramas de UML 2 (con Visual-Paradigm)
http://www.visual-paradigm.com/VPGallery/diagrams/index.html
Francisco Ruiz, Patricia López - IS1
7.5
Introducción: Importancia del modelado
• Un modelo es una abstracción de un sistema o entidad del
mundo real.
• Una abstracción es una simplificación, que incluye sólo
aquellos detalles relevantes para algún determinado propósito
• El modelado permiten abordar la complejidad de los
sistemas
Francisco Ruiz, Patricia López - IS1
7.6
3
Representación de software mediante código
package codemodel;
public class Guitarist extends Person implements MusicPlayer {
Guitar favoriteGuitar;
public Guitarist (String name) {super(name);}
// A couple of local methods for accessing the class's properties
public void setInstrument(Instrument instrument) {
if (instrument instanceof Guitar) {
this.favoriteGuitar = (Guitar) instrument;
}else {
}
System.out.println("I'm not playing that thing!");
}
public Instrument getInstrument( ) {return this.favoriteGuitar;}
}
• Representa sólo la lógica e ignora el resto
• El ser humano lo interpreta muy lentamente
• No facilita la reutilización ni la comunicación
Francisco Ruiz, Patricia López - IS1
7.7
Representación mediante un lenguaje natural
Guitarist is a class that contains six members: one static and five non-static. Guitarist uses, and so needs an
instance of, Guitar; however, since this might be shared with other classes in its package, the Guitar instance variable,
called favoriteGuitar, is declared as default.
Five of the members within Guitarist are methods. Four are not static. One of these methods is a constructor
that takes one argument, and instances of String are called name, which removes the default constructor.
Three regular methods are then provided. The first is called setInstrument, and it takes one parameter, an
instance of Instrument called instrument, and has no return type. The second is called getInstrument and it has no
parameters, but its return type is Instrument. The final method is called play. The play method is actually enforced by
the MusicPlayer interface that the Guitarist class implements. The play method takes no parameters, and its return type
is void.
• Es ambigua y confusa
• Es lenta de interpretar
• Difícil de procesar
Francisco Ruiz, Patricia López - IS1
7.8
4
Representación mediante un lenguaje de modelado visual
• No es ambigua ni confusa (una vez conocemos la semántica
de cada elemento de modelado)
• Es fácil y rápida de interpretar
• Es fácil de procesar por herramientas
Francisco Ruiz, Patricia López - IS1
7.9
Introducción
• UML = Unified Modeling Language
• Es un lenguaje de modelado visual de propósito general orientado a
objetos.
Impulsado por el Object Management Group
www.omg.org
• Independiente de cualquier fabricante comercial
• Combina notaciones provenientes de varios tipos de modelado:
Orientado a Objetos
Datos
Componentes
Flujos de Trabajo (Workflows)
Francisco Ruiz, Patricia López - IS1
7.10
5
Introducción
Francisco Ruiz, Patricia López - IS1
7.11
Introducción
Rumbaugh
Booch
Jacobson
Odell
Shlaer-Mellor
Object life cycles
UML
Meyer
Pre- and Post-conditions
Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes
Embly
Singleton classes
Wirfs-Brock
Responsabilities
Fusion
Operation descriptions,
message numbering
Francisco Ruiz, Patricia López - IS1
7.12
6
Introducción
• Lenguaje de Modelado UML
“Lenguaje cuyo vocabulario y reglas se centran en la
representación conceptual y física de un sistema”
(Booch, Jacobson y Rumbaugh).
Estándar para escribir los planos del software.
= Notación + Reglas (Sintácticas, Semánticas)
UML ofrece vocabulario y reglas para crear y leer
modelos bien formados.
No ofrece un método.
Francisco Ruiz, Patricia López - IS1
7.13
Introducción
• UML es sólo un lenguaje
Independiente del Proceso
Pero su uso óptimo aconseja procesos dirigidos por
casos de uso, centrados en la arquitectura, iterativos e
incrementales
Proceso Unificado de Desarrollo (RUP)
Cubre las diferentes vistas de la arquitectura de un
sistema mientras evoluciona a través del ciclo de vida del
desarrollo de software
Vistas Software (estáticas, dinámicas, etc..)
Son como los distintos planos de una casa (estructura-cimientos,
albañilería, fontanería, electricidad, ...)
Francisco Ruiz, Patricia López - IS1
7.14
7
Introducción
• ¿Cuándo puede utilizarse UML?
• En sistemas software en diversos dominios:
Sistemas de información empresariales
Bancos y servicios financieros
Telecomunicaciones
Transporte
Defensa e industria aeroespacial
Comercio
Electrónica médica
Ámbito Científico
Servicios basados en Web
y también, sistemas que no son software
Francisco Ruiz, Patricia López - IS1
7.15
Introducción
• Inconvenientes de UML
No es una metodología. Además de UML, hace falta
una guía metodológica de cómo desarrollar software con
OO.
No cubre todas las necesidades de especificación de un
proyecto software.
No define los documentos textuales
Faltan ejemplos elaborados en la documentación.
Hay un cierto monopolio en torno a UML y OMG (libros,
certificaciones, etc.).
Francisco Ruiz, Patricia López - IS1
7.16
8
Introducción
• Tendencias de Futuro
Extensiones de UML
SysML - Systems Modeling Language (SysML, www.sysml.org)
Generación automática de código a partir de modelos
Model-Driven Engineering (MDE)
Extendiendo UML mediante perfiles
MARTE – Modeling and Analysis of Real-Time Embedded Systems
Entornos avanzados basados en metamodelado
Eclipse Modeling Framework (EMF)
Modelado y generación de código en dominios específicos
Domain-Specific Modeling (DSM, www.dsmforum.org)
Francisco Ruiz, Patricia López - IS1
7.17
Objetivos
• UML es un lenguaje de modelado visual que
sirve para
visualizar,
especificar,
construir y
documentar
• Sistemas
• Independientemente de la metodología de análisis
y diseño (orientada a objetos)
Francisco Ruiz, Patricia López - IS1
7.18
9
Objetivos - Visualizar
• Detrás de cada símbolo en UML hay una semántica bien definida.
Basada en un metamodelo estándar MOF-compliant.
• Trasciende a lo que puede ser representado en un lenguaje de
programación.
• Es más que un montón de símbolos gráficos
• Modelo explícito, que facilita la comunicación.
E m pleado
Nóm ina
C alc ular
U su a ri o
E m pleado
C a l cu l a r N ó m i n a
Fijo
Tem poral
Francisco Ruiz, Patricia López - IS1
7.19
Objetivos - Especificar
• Especificar es equivalente a construir modelos
precisos, no ambiguos y completos.
• UML cubre la especificación del análisis, diseño e
implementación de un sistema intensivo en
software.
Francisco Ruiz, Patricia López - IS1
7.20
10
Objetivos - Construir
• UML no es un
lenguaje de
programación visual,
pero es posible
establecer
correspondencias
entre un modelo UML
y lenguajes de
programación (Java,
C++) y bases de
datos (relacionales,
OO).
Ingeniería Directa
Modelo
UML
CÓDIGO
Ingeniería Inversa
Francisco Ruiz, Patricia López - IS1
7.21
Objetivos - Documentar
• UML cubre toda la documentación de un sistema:
Arquitectura del sistema y sus detalles (diseño)
Expresar requisitos y pruebas
Modelar las actividades de planificación y gestión
de versiones.
Importancia en el mantenimiento
Francisco Ruiz, Patricia López - IS1
7.22
11
Conceptos de Modelado
• Sistema
• Modelo
comprender mejor un sistema.
• Vista (Arquitectural)
Colección de elementos, posiblemente divididos en subsistemas,
organizados para lograr un propósito. Está descrito por un conjunto
de modelos.
Simplificación completa y autoconsistente de la realidad, creado para
Proyección de la organización y estruct
Comentarios de: INGENIERÍA DEL SOFTWARE I - Tema 7 - Lenguaje Unificado de Modelado - UML (0)
No hay comentarios