UML Diseno

Click here to load reader

  • date post

    10-Jun-2015
  • Category

    Documents

  • view

    6.076
  • download

    3

Embed Size (px)

Transcript of UML Diseno

Introduccin al Paradigma Orientado a Objetos

1

Objetos

Qu es un objeto?Un objeto es un componente de software que contiene variables y mtodos y que es usado para modelar algn aspecto de la vida real. Es una abstraccin de la realidad.

Qu es una clase?Una clase es un plano o prototipo que define las variables y los mtodos comunes a todos los objetos de un cierto tipo.2

ObjetosLos objetos son representaciones (simples/complejas) (reales/imaginarias) de cosas: reloj, avin empleado, etc.

No todo puede ser considerado como un objeto, algunas cosas son simplemente caractersticas o atributos de los objetos: color, velocidad, etc.

3

Objetos

Abstraccin funcionalHay cosas que sabemos que los coches hacen pero no como lo hacen: avanzar parar girar a la dcha girar a la izda

Abstraccin de datosUn coche tiene adems ciertos atributos: color velocidad tamao etc...

4

ObjetosLos objetos encapsulan variables permitiendo acceso a ellas nicamente a travs de los mtodos Variables: Contenedores de valores Mtodos: Contenedores de funcionesNombre de la Clase ------------------------------ Atributo1 Atributo2 ------------------------------ Metodo1 Metodo2 Metodo3

Se puede permitir o restringir su acceso desde afuera Pueden ser Pblicos o Privados

Estado: representado por el contenido de sus variables Comportamiento: definido por sus mtodos

Objeto = Identidad + Estado + Comportamiento5

Identidad Oid (Object Identifier) Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes caractersticas: Constituye un identificador nico y global para cada objeto dentro del dentro sistema. Es determinado en el momento de la creacin del objeto. Es independiente de la localizacin fsica del objeto, es decir, provee completa independencia de localizacin. Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura. No cambia durante toda la vida del objeto. Adems, un oid no se reutiliza aunque el objeto deje de existir. No se tiene ningn control sobre los oids y su manipulacin resulta resulta transparente.

Sin embargo, es preciso contar con algn medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos).6

Estado El estado evoluciona con el tiempo. Algunos atributos pueden ser constantes. El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto. Las operaciones de un objeto son consecuencia de un estmulo externo representado como mensaje enviado desde otro objeto.

7

Comportamiento Los mensajes navegan por los enlaces, a priori en ambas direcciones. La unidad de comunicacin entre objetos se llama mensaje. Estado y comportamiento estn relacionados. Ejemplo: no es posible aterrizar un avin si no est volando. Est Est volando como consecuencia de haber despegado del suelo. Un estmulo causar la invocacin de una operacin, la creacin o destruccin de un objeto o la aparicin de una seal. Un mensaje es la especificacin de un estmulo.

8

Objetos En UML, un objeto se representa por un rectngulo con un nombre subrayado.

9

Objetos Ejemplo de varios objetos relacionados:

10

Objetos vs. ClasesUna clase es una entidad abstracta Es un tipo de clasificacin de cosas Define el comportamiento y atributos de un grupo de estructura y comportamientos similar

Un objeto es una instancia o variable de una clase Un objeto se distingue de otros miembros de la clase por sus atributos.

11

HerenciaPermite definir a partir de una clase, otras clases relacionadas que clase, supongan una: Especializacin de la clase dada. (Ej. la clase Automvil es una especializacin de la clase Vehculo) Generalizacin de la clase dada. (La clase vehculo es una generalizacin de la clase Automvil)

Si definimos la clase automvil a partir de la clase vehculo se dice: dice: automvil" hereda las variables y mtodos de "vehculo" automvil" extiende de "vehculo" automvil" es subclase de "vehculo" "vehculo" es superclase de automvil"12

Polimorfismo En programacin orientada a objetos, el polimorfismo se refiere a la capacidad del lenguaje de programacin de procesar objetos de manera distinta dependiendo de su tipo. El polimorfismo representa en nuestro caso la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje. Cada subclase hereda las operaciones pero tiene la posibilidad de de modificar localmente el comportamiento de estas operaciones.

13

Polimorfismo Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta.

14

Preguntas?

15

UML

16

Objetivos de UML Suministrar un lenguaje visual de modelado expresivo con el cual se pudieran crear e intercambiar modelos inteligibles. Proveer mecanismos de extensin y especializacin para ampliar los conceptos bsicos. Ser independiente de cualquier lenguaje de programacin y de cualquier proceso de desarrollo.

17

Objetivos de UML Incluir los fundamentos formales para entender el lenguaje. Impulsar el desarrollo del mercado de herramientas OO. Soportar los conceptos de desarrollo de alto nivel, tales como colaboraciones, marcos (frameworks), patrones (patterns) y componentes.

18

Diagrama de Clases

19

Diagrama de Clases El propsito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar para completar su tarea en vez de objetos del sistema o de un modelo de programacin. La clase define el mbito de definicin de un conjunto de objetos. Cada objeto pertenece a una clase. Los objetos se crean por instanciacin de las clases.

20

Diagrama de Clases Cada clase se representa en un rectngulo con tres compartimientos: Nombre de la clase Atributos de la clase Operaciones de la clase

21

Diagrama de Clases: Atributos Tipo: puede llegar a depender del lenguaje de programacin a utilizar. Tipo: utilizar. Valor inicial: valor que poseer el atributo al crear un objeto. inicial: Visibilidad: est relacionado con el encapsulamiento. Visibilidad: Multiplicidad: determinar si un atributo debe estar o no, y si posee un nico valor o Multiplicidad: una lista de valores. Ordenamiento: especifica si el atributo determina alguna relacin de orden dentro de la Ordenamiento: dentro clase. Capacidad de cambio: permite definir atributos con valores constantes. cambio: Modificadores: un atributo puede ser de clase, derivado, voltil, transitorio. Modificadores: transitorio.El atributo fecha de nacimiento es pblico.

El atributo edad es derivado (puede calcularse a partir de la fecha de nacimiento), y determina una relacin de orden entre las instancias de las personas. El atributo DNI es un atributo protegido.

El atributo coloresPreferidos representa una coleccin o conjunto de valores del tipo Color22

Diagrama de Clases: AtributosVisibilidadLa encapsulamiento presenta tres ventajas bsicas: Se protegen los datos de accesos indebidos El acoplamiento entre las clases se disminuye Favorece la modularidad y el mantenimiento

Los atributos de una clase no deberan ser manipulables directamente por el resto de directamente objetos.

Niveles de encapsulamiento:(-) Privado : es el ms fuerte. Esta parte es totalmente invisible desde fuera de la clase (excepto para clases friends en terminologa C++). terminologa (~) Package : Slo es visible dentro del mismo package. (#) Los atributos/operaciones protegidos estn visibles para las clases friends y para las clases derivadas de la original. (+) Los atributos/operaciones pblicos son visibles a otras clases (cuando se trata de atributos se est transgrediendo el principio de principio encapsulamiento).23

Diagrama de Clases: AtributosMultiplicidad1 0..1 0..* 1..* * M..N El atributo debe tener un nico valor. El atributo puede o no tener un valor. El atributo puede tener varios valores o ninguno. El atributo puede tener varios valores, pero debe tener al menos uno El atributo puede tener varios valores. El atributo puede tener entre M y N valores.

Modificadores De clase o esttico: el atributo se aparece subrayado. No es necesario contar esttico: con un objeto para ejecutarlo. Derivado: es calculable a partir de otros atributos. Derivado: Transitorio: tendr valor slo durante una porcin de la ejecucin. Transitorio: Voltil: no se persiste. Voltil:

24

Diagrama de Clases: OperacionesUna operacin es un servicio que una instancia de la clase puede realizar. Tipo devuelto: puede llegar a depender del lenguaje de programacin a utilizar. devuelto: utilizar. Parmetros: adems del tipo, puede especificarse si son In, Out o InOut. Parmetros: Visibilidad: est relacionado con el encapsulamiento. Visibilidad: Modificadores: una operacin puede ser de clase, abstracta, query o constructor. Modificadores: constructor.

La operacin calcularEdad es privado y no devuelve nada.

El mtodo pblico calcularHorasTrabajadas es abstracto, las subclases de la clase Persona deber implementarlo para utilizarlo.

25

Diagrama de ClasesRelaciones entre Clases Una asociacin es una conexin estructural simple entre clases. Las instancias de las clases implicadas en una asociacin estarn probablemente comunicndose en el momento de ejecucin. Los enlaces entre de objetos pueden representarse entre las respectivas clases Formas de relacin entre clases: Asociacin y Agregacin (vista como un caso particular de asociacin) Generalizacin/Especializacin26

Diagrama de Clases: Asociacin La asociacin expresa una conexin bidireccional entre objetos. Una asociacin es una abstraccin de la relacin existente en los enlace