Construcción de una casa para
“Fido”
Puede hacerlo una sola persona
Requiere:
Modelado mínimo
Proceso simple
Construcción de una casa
Construida eficientemente y en un tiempo
razonable por un equipo
Requiere:
Modelado
Proceso bien definido
Construcción de una casa
¿Por qué modelamos?
El modelado es una técnica de hacer
modelos, que ofrece
Importancia de Modelar
Visualizar,
especificar
la
estructura,
proporcionan
plantillas
y
documentan
Principios del Modelado
La elección de qué modelos crear, y
dar forma a una solución.
Todo modelo puede ser expresado a
diferentes niveles de precisión.
Los mejores modelos están ligados a
la Realidad
Modelado OO
UML es un Lenguaje de Modelado
Unificado basado en una notación
gráfica la cual permite:
Especificar
Construir
Visualizar
Documentar
Características UML
Puede ser utilizado por cualquier metodología de
análisis y diseño OO para expresar los modelos de
diseño.
Este lenguaje es el resultado de la unificación de
los métodos de modelado OO de:
Booch,
Rumbaugh
(OMT:Object
Modeling
Technique)
Jacobson (OOSE:Object-Oriented Sotfware
Engineering) .
Es una herramienta que nos permitirá expresarnos
en un lenguaje común
Historia UML
Comenzó
como
el
“Método
Unificado”, con la participación de
Grady Booch y Jim Rumbaugh. Se
presentó en el
OOPSLA’95
El mismo año se unió Ivar Jacobson.
Los
“Tres Amigos” son socios en la
compañía
Rational
Software.
Historia UML
Nov ‘97
UML aprobado
por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2005?
UML 2.0
Revisiones
menores
Aspectos Novedosos
Definición
semi-formal
del Metamodelo
de UML
Mecanismos de Extensión en UML:
Stereotypes
Constraints
Tagged Values
Inconvenientes en UML
Definición del proceso de desarrollo
usando
UML.
UML
no
es
una
metodología
No cubre todas las necesidades de
especificación de un proyecto software.
Por ejemplo, no define los documentos
textuales
Ejemplos aislados
“Monopolio de conceptos, técnicas y
Perspectivas de UML
Es el lenguaje de modelado OO estándar
predominante ahora y en los próximos
años
Razones:
▪
Participación de metodólogos influyentes
▪
Participación de importantes empresas
▪
Estándar del OMG
Evidencias:
▪
Herramientas que proveen la notación
UML
▪
“Edición” de libros
Fundamento Modelo OO
Objetos
Objeto
=
unidad
atómica
que
encapsula
estado
y
comportamiento
La encapsulación en un objeto
permite una alta
cohesión
y un
bajo
acoplamiento
Un objeto puede caracterizar una
entidad física (auto) o abstracta
(ecuación matemática)
Un objeto
Fundamento Modelo OO
Objetos
Objeto
=
unidad
atómica
que
encapsula
estado
y
comportamiento
La encapsulación en un objeto
permite una alta
cohesión
y un
bajo
acoplamiento
Un objeto puede caracterizar una
Objetos …
Objeto = Nombre + Estado +
Comportamiento
El estado está representado por
los valores de los atributos
Un atributo toma un valor en un
dominio concreto
Nombre
Atributos
Atributos y Comportamientos
Atributo: son las características
o cualidades del objeto (también
se denominan propiedades)
Comportamiento:
son
las
acciones, aquello que el objeto
sabe o puede hacer
Persona
nombre
edad
Empresa
Mensajes
Los objetos revelan su utilidad en un
contexto de
comunicación con otros
objetos,
por
medio
del
paso
de
mensajes, para componer un sistema
con un comportamiento más complejo
que el suyo propio.
El envío de mensajes es la forma en
que se invoca los comportamientos de
un objeto (cada método define un
comportamiento).
Noción de Clase e Instancia
Todos los objetos naturalmente
se
agrupan
en
categorías
(clases)
Los
objetos
que
están
comprendidos
dentro
de
las
clases se denominan
instancias
Instancia persona nº 1
-nombre = SALAS
-edad=35
-empresa=IPV
Instancia persona nº 2
-nombre = FUNES
-edad=55
-empresa=VPI
Instanciación
Persona
nombre
edad
empresa
CambiarEdad
CambiarEmpresa
Actividades
1.
Identifique una clase que agrupe
todos estos objetos.
2.
Agrupe
diversos
objetos
en
Herencia
Los objetos se definen a partir de clases.
Se
puede
saber
mucho
de
un
objeto
sabiendo a qué clase pertenece.
Las clases permiten su definición a partir de
otras
clases.
Esto
permite
definir
una
jerarquía de especialización.
Una Clase definida a partir de otra, hereda
todos los atributos y métodos de su clase
ancestro.
Las clases herederas pueden sobrescribir los
atributos y los métodos heredados y pueden
añadir nuevos.
Persona
Nombre
edad
empresa
CambiarEdad
CambiarEmpresa
Asalariado
jefe
función
CambiarJefe
CambiarFunción
Instancia de persona nº 1
-nombre = RODRIGUEZ
-edad=36
-empresa=MUNI
-jefe=SANENZ
La clase tomada como patrón se
conoce como
Superclase
o
clase
padre
, mientras que la heredera se
llama
clase
hija
.
La jerarquía de herencia puede ser
todo
lo
profunda
que
sea
necesario. Una clase puede tener
Polimorfismo
El
polimorfismo
es
una
característica
de
la
OO
que
permite
redefinir
un
comportamiento
(método)
heredado por una superclase.
El polimorfismo permite usar los
mismos términos del cliente.
Elementos
Unidades básicas de construcción, cuatro tipos:
Estructurales:
Partes
estáticas
de
los
modelos, representan aspectos conceptuales o
materiales.
De comportamiento:
Partes dinámicas de
los modelos, representan comportamientos en
el tiempo y espacio.
De agrupación:
Partes organizativas de los
modelos.
Relaciones
Abstracciones que actúan de unión
entre los elementos.
Dependencia
Asociación
Generalización
Realización
Es una relación entre dos elementos, tal que un cambio en uno
puede afectar al otro.
Es una relación estructural que resume un conjunto de enlaces
que son conexiones entre objetos.
Es una relación en la que el elemento generalizado puede ser
substituido por cualquiera de los elementos hijos, ya que
comparten su estructura y comportamiento.
Diagrama de
Casos de Uso
Diagramas:
Disponen un conjunto de
elementos, que representan el modelo
desde distintas perspectivas.
UML
tiene
nueve
diagramas
fundamentales,
clasificados
en
dos
grupos, uno para modelar la estructura
estática del sistema y otro para modelar
el comportamiento dinámico.
Clasificación de
Diagramas
Estáticos o
Estructurales
Clases
Objeto
Complementos
Implementación
Dinámicos o de
Comportamiento
Colaboración
Casos de Uso
Secuencia
Actividad
Diagramas de Clases
Es el diagrama principal para el análisis y
diseño del sistema
Presenta las clases del sistema con sus
relaciones estructurales y de herencia
La definición de clase incluye definiciones
para atributos y operaciones
El modelo de casos de uso debería aportar
información
para
establecer
las
clases,
Diagramas de Objetos
Un objeto es una instancia de clase.
El símbolo es un rectángulo como en
una
clase
pero
el
nombre
está
subrayado.
El nombre de la instancia se encuentra
a la izquierda de los :, y el nombre de la
Diagramas de Casos de Uso
Es una descripción de las acciones de
un sistema desde el punto de vista del
usuario.
Es una técnica de aciertos y errores
para obtener los requerimientos del
sistema desde visión usuario.
Crear
un
sistema
que
pueda
ser
utilizado por la gente en general.
Usuario
= actor
Elipse
= caso de uso
Diagramas de Estados
En cualquier momento, un objeto se
encuentra en un estado en particular.
Una persona puede ser recién nacida,
infante, adolescente, joven o adulta. Un
elevador se moverá hacia arriba, estará
en estado de reposo o se moverá hacia
¿Cómo Utilizar UML?
Proceso
Incremental:
C
onsiste
en
sucesivas ampliaciones y mejoras de la
arquitectura, a partir de una línea básica.
Cada incremento resuelve los problemas
encontrados
en
la
versión
anterior
minimizando progresivamente los riesgos
más
significativos
para
el
éxito
del
¿Cómo Utilizar UML?
Dirigido por Casos de Uso:
Son básicos para
establecer el comportamiento deseado del
sistema,
para
verificarlo,
para
validar
su
arquitectura y para comunicarse con todas las
personas involucradas en el proyecto.
Metodología UML
El modelo a definir en base al proceso
elegido, se divide en realidad en varios
tipos de modelo o vistas, cada una
centrada en un aspecto o punto de vista
del
sistema.
En
general,
independientemente del proceso que se
emplee, se puede encontrar las siguientes
Vista de Casos de Uso
Engloba los Casos de Uso que describen el
comportamiento del sistema como lo verían los
usuarios
finales,
los
analistas
y
demás
componentes del equipo de desarrollo.
No especifica la organización del sistema.
Con UML los
aspectos estáticos
de esta vista se
pueden concretar con los diagramas de
Casos de
Uso.
Los
aspectos dinámicos
con los diagramas de
iteración (
secuencia
y
colaboración
), diagramas de
estados
y de
actividades
.
Vista de Diseño
Engloba las clases e interfaces que conforman el
vocabulario del problema y su solución.
Da soporte a los requisitos funcionales del sistema,
es decir los servicios que proporciona a los
usuarios finales.
Con UML los
aspectos estáticos
de esta vista se
pueden concretar con los diagramas de
clases
y de
objetos.
Los
aspectos dinámicos
con los diagramas de
iteración (
secuencia
y
colaboración
), diagramas de
estados
y de
actividades
.
Vista de Procesos
Engloba los hilos y procesos que forman los
mecanismos de sincronización y concurrencia
del sistema.
Da soporte al funcionamiento, capacidad de
crecimiento y rendimiento del sistema.
Con UML los
aspectos estáticos
de esta vista
se pueden concretar con los diagramas de
clases
, de
clases activas
y de
objetos
;
Los
aspectos dinámicos
con los diagramas de
iteración (
secuencia
y
colaboración
), diagramas
de
estados
y de
actividades
.
Vista de Despliegue
Engloba los nodos que forman la topología
hardware sobre el que se ejecuta el sistema.
Da soporte a la distribución, entrega e
instalación de las partes que conforman el
sistema físico.
Con UML los
aspectos estáticos
de esta
vista se pueden concretar con los diagramas
despliegue.
Los
aspectos dinámicos
con los diagramas
de
iteración
(
secuencia
y
colaboración
),
diagramas de
estados
y de
actividades
.
Vista de Implementación
Engloba los componentes y archivos empleados
para hacer posible el sistema físico.
Da soporte a la gestión de configuraciones de
las distintas versiones del sistema, a partir de
componentes y archivos.