Introducción a la orientación a objetos y a UMLAIR... · Realice un diagrama con los elementos y...
Transcript of Introducción a la orientación a objetos y a UMLAIR... · Realice un diagrama con los elementos y...
Introducción a la orientación a objetos y a UML
1
El lenguaje unificado de modelado. Manual de referencia. James Rumbaugh, Ivar Jacobson, Grady Booch. Ed. Addison Wesley, 2000
El proceso unificado de desarrollo, Ivar Jacobson, Grady Booch, James Rumbaugh, Ed. Addison Wesley, 1999.
� Un objeto es, sencillamente, algo que tiene sentido en el contexto de la aplicación.
� Ejemplos en el dominio de un videoclub: Película cómica, Javier Bardem, Lo que el viento se llevó….
Todo objeto posee su propia identidad. Esto quiere decir que
Bases del paradigma OO
2
� Todo objeto posee su propia identidad. Esto quiere decir que los objetos se distinguen por su existencia inherente y no por las propiedades descriptivas que puedan tener.
� La palabra objeto puede resultar ambigua según la literatura que se utilice. En nuestro contexto, un objeto siempre será una instancia de una clase.
� Una clase (clase de objetos) describe un conjunto de objetos con propiedades (atributos) similares, relaciones comunes con otros y una semántica común.� Ejemplos en el contexto de un videoclub: Tipo de películas, Actores,
Películas….
� Los objetos y sus clases suelen aparecer como sustantivos en las descripciones de problemas.
Bases del paradigma OO
3
las descripciones de problemas.
� Todos los objetos de una clase tienen los mismo atributos y los mismos patrones de comportamiento.
� Casi todos los objetos derivan su individualidad de diferencias en sus atributos y en sus relaciones con otros.
� Dependiendo del contexto dos objetos pueden pertenecer a la misma clase o no. � Ordenador y mesa, si fuesen activos financieros pertenecerían a la misma
clase. Pero si se considera que un profesor imparte clase con un ordenador
y un alumno trabaja en una mesa, entonces serían clases diferentes.
� Representar elementos que consideren de forma conjunta los datos y el comportamiento.
� Clases como plantillas de objetos
Bases del paradigma OO
Nombre de la Película
4
� Objeto:
Nombre de laclase
atributos
operaciones
Clases
Objetos
Película
TítuloAño de Producción
Modificar Año ()Añadir Argumento ()
Titanic, 1997
� Modelar el sistema como colecciones de objetos que interactúan.
Clase BClase A
Bases del paradigma OO
5
Clase E
Clase D Clase C
¿Qué es UML?
� UML (Unified Modeling Language) - Lenguaje Unificado de Modelado.
� En ingeniería es útil representar los diseños mediante dibujos. Facilitan la comprensión general del proyecto.
� UML es un lenguaje para visualizar, especificar, construir y
6
� UML es un lenguaje para visualizar, especificar, construir y documentar los resultados de los trabajos que se obtienen durante el desarrollo del software.
� Sintáxis y semántica.
� Sintáxis: Iconos
� Semántica: Significado propio.
Vocabulario UML
Elementos Relaciones
AsociaciónDependencia
Generalización
Diagramas
Casos de usoClaseObjeto
SecuenciaColaboración
7
ColaboraciónEstadosActividad
ComponenteDespliegueEstructurales
Caso de usoClase
Clase activaInterfaz
ComponenteColaboración
Nodo
De comportamiento
InteracciónMáquina de estados
De agrupación
PaqueteModelo
SubsistemaMarco de Trabajo
De anotación
Nota
UML - Relaciones
� Asociación: Relación que especifica que los objetos de un elemento se conectan con los objetos de otro elemento.
� Nombre: “Posee”
� Rol en los extremos: Papel que desempeña “Propietario”
� Multiplicidad: rango de cardinalidades permisible que puede asumir un conjunto
8
asumir un conjunto
� Navegabilidad: La navegación en una asociación es bidireccional por defecto. Puede restringirse por algún motivo y hacerla unidireccional.
Persona CochePosee
propietario
*1..n
� Agregación: Forma especial de asociación que especifica una relación todo-parte entre el agregado (todo) y un componente (parte). Se identifica generalmente por “consta de” o “se compone de”.
UML - Relaciones
9
Ordenador
Pantalla TecladoCPU
� Composición: Tipo especial de agregación con una fuerte relación de pertenencia y vidas coincidentes de la parte con el todo.
UML - Relaciones
10
Pedido
ClienteSolicitante LíneaPedido
Portátil
Pantalla TecladoProcesador
� Generalización (herencia): relación de especialización/generalización donde los objetos del elemento especializado (hijo), pueden sustituir a los objetos del elemento general (padre). Se identifica generalmente como “es un tipo de”.
UML - Relaciones
11
Mueble
Mesa Sofá Silla
Préstamo
Hipoteca Personal
Padre
HIjos
• Un país tiene una capital.
• Un filosofo comiendo está usando un tenedor.
• Un fichero es un fichero ordinario o un fichero directorio.
UML – Relaciones (Ejercicio) Clasifique las siguientes relaciones en generalización,
agregación o asociación
12
• Los ficheros contiene registros.
• Un polígono está compuesto de un conjunto ordenado de puntos.
• Un objeto que se pueda visualizar es un objeto texto o un objeto geométrico.
• Una persona usa un lenguaje de programación en un proyecto.
• Los módems y los teclados son dispositivos de entrada/salida
• Los objetos pueden tener varios atributos
� Dependencia: Se aplican cuando se quiere representar que un elemento utiliza a otro. Hay un elemento dependiente del otro. Relación semántica donde un cambio en el elemento independiente puede afectar a la semántica del elemento dependiente.
UML - Relaciones
Elemento dependiente Elemento independiente
13
� Realización: relación semántica entre clasificadores, en la cual un clasificador especifica un contrato que otro clasificador se compromete a llevar a cabo. Es una especie de combinación entre dependencia y generalización.
Elemento dependiente Elemento independiente
Caso de uso Colaboración
� UML posee un mecanismo para poder extenderse a sí mismo. Es decir, pueden crearse nuevos elementos a partir de los existentes para adaptarse a un entorno o dominio particular, a través de la definición de estereotipos, valores calculados y restricciones.
� Estereotipo: extensión de UML que permite crear nuevos bloques de construcción a partir de los existentes pero
Extensión de UML
14
bloques de construcción a partir de los existentes pero específicos a un problema concreto. Notación: <<nombre_estereotipo>>
<<include>>
� Valor etiquetado: extensión de las propiedades de un elemento UML para ampliar su información. Notación: {etiqueta = valor}
Extensión de UML
Coche
{marca = Citroen}
15
� Restricción: Especifica condiciones para que modelo esté bien formado. Notación: {condición}
Persona
Coche
Empresa propietario
propietario
{or}
UML – Relaciones (Ejercicio)
� Realice un diagrama con los elementos y las relaciones indicadas en el siguiente texto: La universidad Rey Juan Carlos está formada por un conjunto de escuelas, donde cada una de ellas está adscrita a un campus. Cada escuela tiene diferentes departamentos, estando formado estos por un conjunto de profesores (PDI) y personal de Administración y Servicios (PAS). Los profesores imparten asignaturas, pudiendo compartir una asignatura diferentes profesores. Las escuelas ofrecen titulaciones que pueden ser de primer ciclo (grado medio), de segundo ciclo (grado) o de
16
pueden ser de primer ciclo (grado medio), de segundo ciclo (grado) o de tercer ciclo (doctorado). Cada titulación de tercer ciclo es acorde a un programa, y cada programa es propuesto por uno o varios departamentos.
� AÑADIR:� Cada departamento tiene además un director y un secretario de
departamento, siendo ambos profesores.� La URJC está formada además por el Rectorado y la Fundación URJC.
UML – Relaciones (Ejemplo)
URJC
Escuela
Campus
1..n
Titulaciones
17
Programa
Departamento
PDIPAS DirectorSecretario Asignatura1..n 1..n
1º ciclo 2º ciclo 3º ciclo
1..n
*
1..n1..n 1..1 1..1
UML – Relaciones (Ejemplo)
URJC
Escuela
Campus
1..n
RectoradoFundación
1..11..1
Titulaciones
18
Programa
Departamento
PDIPAS DirectorSecretario Asignatura1..n 1..n
1º ciclo 2º ciclo 3º ciclo
1..n
*
1..n1..n 1..1 1..1
Vocabulario UML
Elementos Relaciones
AsociaciónDependencia
Generalización
Diagramas
Casos de uso
ClaseObjeto
Secuencia
19
SecuenciaColaboración
EstadosActividad
ComponenteDespliegueEstructurales
Caso de uso
ClaseClase activa
InterfazComponenteColaboración
Nodo
De comportamiento
InteracciónMáquina de estados
De agrupación
PaqueteModelo
SubsistemaMarco de Trabajo
De anotación
Nota
o Caso de uso: Conjunto de secuencia de acciones que produce un resultado de interés para un actor.
o Actor: Persona o sistema que interacciona con el nuevo sistema a desarrollar.
UML – Casos de uso
Caso de uso
20
desarrollar.
o Para los modelos de negocio:o un actor también será cualquier persona o sistema que interviene como parte
del proceso de negocio, aunque posteriormente no sea un actor del nuevo
sistema.
o Un caso de uso (denominado en este contexto, caso de negocio) no tiene por
qué ser un caso de uso del nuevo sistema. Un caso de negocio modela una
parte del proceso de negocio.
Actor
UML – Diagrama de casos de uso
Caso de uso
Actor5
21
Actor1Caso de uso
A Actor2
Caso de usoB
Caso de usoC
<<include>>
<<extend>>
Actor4
Estructurar el diagrama de casos de uso:
o Identificar funcionalidad compartida: inclusión (Estereotipo include)o Se dice que un caso de uso A incluye un caso de uso B, cuando la secuencia
de interacciones de B están incluidas dentro de la secuencia de interacciones de
A.
o Ejemplo: Validar cliente que opera con tarjeta en un cajero automático, antes
de sacar dinero. El caso de uso SacarDinero incluye ValidarCliente.
UML – Diagramas de casos de uso
22
de sacar dinero. El caso de uso SacarDinero incluye ValidarCliente.
o Identificar funcionalidad adicional o/y opcional: extensión (Estereotipo
extend)o Un caso de uso A extiende un caso de uso B, cuando la secuencia de
interacciones de A forma parte de las interacciones de B en determinadas
circunstancias.
o Ejemplo: ImprimirJustificante en el cajero, tras realizar una transacción como
SacarDinero, es opcional. Luego ImprimirJustificante extiende SacarDinero,
cuando el cliente así lo solicite.
o Identificar otras relaciones: generalizaciones
UML – Diagramas de Actividad
o Actividad:
o Representa una actividad del proceso de negocio.
o La representación del diagrama representa un flujo de trabajo, no los estados de un objeto. Generalmente se asume que no existen eventos externos.
o Aspecto del diagrama (opción I)
23
o Aspecto del diagrama (opción I)
actividad[condición]
[condición]