24
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.

Introducción a la orientación a objetos y a UMLAIR... · Realice un diagrama con los elementos y las relaciones indicadas en el ... Clase Objeto Secuencia 19 Colaboración Estados

  • Upload
    lyngoc

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

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]

UML – Diagramas de Actividad

� Aspecto del diagrama (opción II)

Calle a Calle b Calle c

24

actividad[condición]

[condición]