Introduccion A UML-Mvc
Introduccion A UML-Mvc
Introduccion A UML-Mvc
Diciembre de 2002
Marcela Varas
Ingeniero Civil informático
Mag. en Cs. de la Computación
Contenidos
1
1. Conceptos Básicos
Conceptos Básicos:
Dimensiones de los Sistemas
Software
Dimensión 1: Tipo de Componente
Interfaz - Lógica de Procesamiento -
Repositorio
Dimensión 2: Tipo de Comportamiento
Estático – Dinámico - Funcional
Dimensión 3: Nivel de Abstracción
Conceptual – Lógico -Físico
2
Conceptos Básicos:
Paradigma Orientación a Objetos
• Paradigma procedural ( hasta fines de los 70s)
• Tipo de Componente: Lógica de Procesamiento
• Nivel de Abstracción: Físico y Lógico
• Tipo de Comportamiento: Funcional
Conceptos Básicos:
Paradigma Orientación a Objetos
• Paradigma Orientación a Objetos (desde
principios de los 80s)
• Tipo de Componente: Todos
• Tipo de Comportamiento: Todos
• Nivel de abstracción: Todos
• Ideas Fuerza:
• Encapsulamiento (-> cohesión)
• Reuso
• Bajo Acoplamiento
• Mayor Expresividad y Naturalidad
3
2. UML
A continuación ...
2. UML: Qué es
4
Unified Modeling Language
UML: “Unificado”
5
UML: Componentes
• Vista Estática
• Vista de Casos de Uso
• Vista de Interacción
• Diagrama de Secuencia
• Diagrama de Colaboración
• Vista de la Máquina de Estados
• Vista de Actividades
• Vista Física
• Vista de la Gestión del Modelo
• Constructores de Extensibilidad
UML Estático
Vista Diagramas Conceptos Principales
6
Diagrama de Clases
7
Diagrama de Componentes
Diagrama de Despliegue
8
Vista
UMLDiagramas
Dinámico Conceptos
Principales
Diagrama de Estados
9
Diagrama de Actividades
Diagrama de Secuencia
10
Diagrama de Colaboración
UML
Gestión del Modelo
Vista Diagramas Conceptos
Principales
Extensibilidad
Vista Diagramas Conceptos
Principales
11
Vista de la Gestión del Modelo
Extensibilidad
12
3. UML Parte Estática
A continuación ...
13
Diagrama de Casos de Uso
• Modela la funcionalidad de un sistema
percibido desde el usuario externo (actor).
• Un caso de uso es una unidad de
funcionalidad coherente expresado como una
transacción entre actores y el sistema.
• Pueden describirse en varios niveles de
detalle.
• Un caso de uso se implementa como una
colaboración en la vista de interacción.
14
Diagrama de Casos de Uso:
Elementos
Relaciones
Asociación: Dependencia o Instanciación:
• Es el tipo de relación • Es una forma muy
particular de relación entre
más básica que indica la clases, en la cual una clase
invocación desde un depende de otra, es decir,
actor o caso de uso a se instancia (se crea).
otra operación (caso de
uso).
15
Diagrama de Casos de Uso: Ejemplo
Máquina Recicladora
El sistema debe :
1. Registrar el número de ítemes ingresados.
2. Imprimir un recibo cuando el usuario lo solicita, que incluye (a)
una descripción de lo depositado, (b) el valor de cada item y (c)
el total
3. El usuario/cliente presiona el botón de comienzo
4. Existe un operador que desea saber lo siguiente: (a) Cuántos
ítemes han sido retornados en el día y (b) al final de cada día,
un resumen de todo lo depositado.
5. El operador debe además poder cambiar información asociada a
ítemes y dar una alarma en el caso de que (a) un item se atore
o (b) no hay más papel.
Máquina Recicladora:
Identificación de Actores
16
Máquina Recicladora: Diagrama
Completo
Diagrama de Clases
17
Diagrama de Clases:
Elementos
Clase
• Es la unidad básica
que encapsula toda
la información de un
Tipo de Objeto (un
objeto es una
instancia de una
clase).
Diagrama de Clases:
Elementos
Atributo
• Los atributos describen a • private (-, ): Indica que el
una clase. Pueden ser atributo sólo será accesible
Públicos, Privados o desde dentro de la clase (sólo
sus métodos lo pueden
Protegidos.
acceder).
• public (+, ): Indica que el • protected (#, ): Indica que
atributo será visible tanto el atributo no será accesible
dentro como fuera de la desde fuera de la clase, pero si
clase, es decir, es accesible podrá ser accesado por
desde todos lados. métodos de la clase además de
las subclases que se deriven
(herencia)
18
Diagrama de Clases:
Elementos
Operaciones (métodos)
• Las operaciones o métodos • private (-, ): Indica que
de una clase describen la el método sólo será accesible
forma en la cual ésta desde dentro de la clase
interactúa con su entorno. (sólo otros métodos de la
Pueden ser Públicas, misma clase lo pueden
Privadas o Protegidas. acceder).
• public (+, ): Indica que el • protected (#, ): Indica
método será visible tanto que el atributo no será
dentro como fuera de la accesible desde fuera de la
clase, es decir, es accesible clase, pero si podrá ser
desde todos lados. accesado por métodos de la
clase además de las
subclases que se deriven
(herencia)
19
Relaciones entre Clases:
Dependencia (instanciación o
uso)
• Un cambio en la clase • La interpretación más
independiente frecuente es la de uso:
(Aplicación) puede una clase usa a otra
afectar a la clase como argumento de
dependiente (Ventana) una operación.
• El objeto creado no se
almacena en el objeto
que lo crea.
20
Relaciones entre Clases:
Generalización - Polimorfismo
• Una generalización da a lugar al polimorfismo
entre clases de una jerarquía de generalizaciones.
• Un objeto de una subclase puede sustituir a un objeto
de la superclase en cualquier contexto. Lo inverso no es
cierto
• Una operación de la subclase con igual signatura que
una operación de la superclase la anula y sustituye.
• El polimorfismo es muy útil en la programación.
21
Relaciones entre clases:
Asociación
• Relación estructural • Tiene multiplicidad, que
entre las clases. especifica por cada clase el
• En general es simétrica número de objetos de la clase
opuesta que se relacionan con
• Tiene un nombre, que un solo objeto de dicha clase
la describe (verbo, con a través de la asociación:
1 : uno
dirección de lectura) 0..1 : cero o uno
• Puede tener un rol que 3 : tres
describe el papel *: muchos
1..*: al menos uno
específico que una clase
2,6,7: dos, seis o siete
juega en una 2-4, 10-12 : de dos a cuatro y
asociación. de diez a doce
22
Relaciones entre Clases
Agregación y Composición
Permite modelar objetos complejos, en base a relaciones
todo –parte.
• Composición • Agregación
• Relación estática, en donde • Relación dinámica, en
el tiempo de vida del objeto donde el tiempo de vida del
incluido está condicionado objeto incluido es
por el tiempo de vida del independiente del que lo
que lo incluye. incluye.
• El Objeto base se contruye
• El objeto base utiliza al
a partir del objeto incluido,
es decir, es "parte/todo“, incluido para su
como un parámetro pasado funcionamiento, como un
“por valor”. parámetro pasado “por
referencia”.
Agregación Composición
(Por referencia) (Por valor)
23
Diagrama de Clases: Elementos
Responsabilidades
La distribución de
responsabilidades en un
sistema, se realiza
identificando un conjunto
de clases que colaboran
entre sí para llevar a cabo
algún comportamiento.
Luego hay que identificar
el conjunto de
responsabilidades para
cada clase
Diagrama de Clases
24
4. Diseño de Bases de Datos
con UML
A continuación ...
•Consideraciones Generales
•Bases de datos OO y Objeto-
Relacionales
•Consideraciones de Diseño
•Patrones
25
Consideraciones Generales
• Persistencia
• Restricciones y Reglas del Negocio
• Limitaciones de los Productos
Comerciales
• Patrones Reusables
26
Bases de Datos Orientadas a
Objetos
• Herencia
• Ciclo de vida del objeto
• Listas y punteros : no normalización
• Operaciones
• Diferentes arquitecturas. Aún no hay
estándar.
27
Bases de Datos Objeto-Relacionales:
Objetos Complejos
• Constructores de tipos
• Conjunto de
• Registro de
• Referencia
• Funciones definidas por el usuario
• Tipos de datos complejos de largo arbitrario
• Soporte SQL
28
Bases de Datos Objeto-Relacionales:
Sistema de Reglas
Consideraciones de Diseño
• OID
• Persistencia
• Definición del Comportamiento:
• Operaciones: serán métodos persistentes. Se diseñan
dejando abierta la implementación (por restricciones de
los productos comerciales)
• Triggers:Manejador de eventos. Se declaran en UML con
el estereotipo «signal» en el método.
• Procedimientos almacenados: operación que el sistema
no asocia explícitamente con una clase.
29
Restricciones y Reglas del Negocio:
Identificación
• Identidad de Objeto y Restricción de Unicidad
• Identificación implícita (OID) versus
• Identificación explicita (value based)
• Se declaran con tagged values:
• {OID}
• {alternate OID}
• Propiedades de unicidad y minimalidad
30
Restricciones y Reglas del Negocio:
Dominios
• El dominio de un atributo es el conjunto de valores
que dicho atributo mapea.
• Los dominios se declaran por extensión o intensión.
• Extensión: se declara explícitamente el conjunto de objetos
que pertenecen al dominio
• Intensión: predicado lógico.
• UMNL no especifica un modelo para dominios, sólo
tipos de datos
31
Restricciones y Reglas del Negocio:
Restricciones Complejas
• OCL: Object Constraint Language
• Lenguaje declarativo que se puede utilizar en
clases y operaciones, entre otros.
• No soportado por la herramientas.
• Se declaran utilizando notaciones en los
diagramas.
32
Patrones de Diseño
Patrones de Diseño
33
Patrón Singleton
Patrones de Diseño
• Patrones de Análisis: Es un modelo de un
problema de un dominio específico.
• Patrón party: modela personas y organizaciones y
la relación de empleo entre ellos.
• Patrón Geographic Location Pattern: Modela redes
de áreas geográficas.
• Patrón Process: modela procesos de manufactura
continuos.
• Patrón Document : modela documentos, su
estructura y usuarios.
34
Patrón Party
Patrón Document
35
Patrón Land Record
Región
Comuna
Acto
Access Management
36
Gerencia (stewardship)
5. Caso
A continuación ...
37
5. Caso
Gestión de Proyectos de
Informática
El sistema debe manejar lo siguiente:
• Unidad organizacional que solicita el proyecto
• Nombre del proyecto
• Organización del proyecto
• Planificación del proyecto (actividades, responsables, plazos,
recursos asignados)
• Control del proyecto (nivel de avance, productos
entregados)
• Se debe, además, manejar información de los recursos
humanos involucrados ( nombre, perfil, filiación ) .
El sistema debe entregar:
• Plan del proyecto
• Avance del proyecto
38
Otras cosas Interesantes
Bibliografía y Referencias:
Fundamental
39
Bibliografía y Referencias
Complementaria
• Rational www.rational.com
• Robert Muller, “Database Design For Smarties: Using
UML for Data Modeling”, Morgan Kaufmann, 1999
• Marcela Varas, “Apuntes de Modelamiento de Datos”,
asignaturas.inf.udec.cl/~moddatos/apuntes
• Luis Guerrero, “Taller de UML”, DCC, Universidad de
Chile, 2002, www.dcc.uchile.cl/~luguerre/cc61j
• Patricio Salinas, “Tutorial de UML”, DCC, Universidad
de Chile, 2000, www.dcc.uchile.cl/~psalinas/uml
Introducción a UML
Marcela Varas
Ingeniero Civil informático
Mag. en Cs. de la Computación
40