Clase 4 conceptos poo

27

description

exlicacion de poo programacion orientada a objetos, en java es imprtante esta guia.

Transcript of Clase 4 conceptos poo

Representando objetos en UML

Un objeto es representado como un rectángulo conun nombre subrayado J Clark : Profesor

: Profesor

Objeto nombrado

Objeto sin nombrarProfesor J Clark

Abstracción

Encapsulación

Modularidad

Jerarquía

Principios de orientación a objetos

Una abstracción es un modelo que incluye losaspectos esenciales, mas importantes o distintivosde algo y que suprime o ignora los detalles menosimportantes. Una abstracción es el resultado deeliminar distinciones para enfatizar lo común.

Abstracción

Estudiante Profesor

Es la localización de características, tales como propiedades y

comportamientos, en una sola abstracción que oculta suimplementación y decisiones de diseño asociadas detrás deuna interfaz pública .

La clave de la encapsulación es la interfaz de mensajes deobjetos. La interfaz asegura que toda la comunicación con elobjeto se lleva a cabo a través de un conjunto de operacionespredefinidas. Las propiedades (atributos) que han sidoencapsuladas no pueden ser manipuladas sin utilizar la interfazprovista.

Encapsulación

Ejemplo encapsulación

TakeSabbatical()

Name: J Clark

Employee ID: 567138

HireDate: 07/25/1991

Status: Tenured

Discipline: Finance

MaxLoad:4

Professor Clark

SetMaxLoad(4)

Modularidad

Es la descomposición lógica de las cosas en grupos mas pequeños ysimples que incrementan los logros de la ingeniería de software.

Usualmente el sistema en desarrollo es demasiado complejo paraentenderlo. Para hacer ese entendimiento mas fácil, el sistema se divideen componentes mas pequeños que pueden ser desarrollados ymantenidos independientemente. El dividir un sistema grande ycomplejo en un conjunto de piezas mas pequeñas y manejables se llamamodularidad.

Es cualquier clasificación u ordenamiento deabstracciones en una estructura de árbol. Existendiferentes tipos de jerarquía: de agregación, clases,contenido, herencia, partición, especialización y tipos(Diccionario de tecnología de objetos)

La jerarquía organiza diferentes elementos en grupos ocategorías que indican su relación. Por ejemplo labotánica y zoología organizan plantas y animales enfamilias, especies y así sucesivamente. En cualquiersistema pueden haber múltiples jerarquías.

Jerarquía

Existen muchos objetos identificados en un dominio

Una clase es una descripción de un grupo de objetosque comparten los mismos atributos, operaciones ysemántica. Un objeto es una instancia de una clase

Una clase es una abstracción por que: Enfatiza características relevantes

Suprime otras características

La abstracción nos ayuda a manejar la complejidad

Clases

Una clase en una definición abstracta de un objeto

Define la estructura y comportamiento decada objeto en la clase

Sirve como una plantilla para crear objetos

Relación entre clases y objetos

Un nombre de clase debe ser el sustantivo en

singular que mejor caracteriza la abstracción

Dificultad al dar nombre a la clase puede ser indiciode una abstracción pobremente definida

Los nombres deben provenir directamente delvocabulario del dominio

Nombres de clases

Una forma de ver una clase es que esta consta de dos partes: la

interfaz y la implementación La interfaz puede verse y ser usada por otros objetos

(clientes) La implementación permanece oculta para los clientes

Ocultar los detalles de la implementación de un objeto se llamaencapsulamiento u ocultar información

El encapsulamiento ofrece dos tipos de protección. Protege: El estado interno de un objeto de corromperse por parte de

los clientes El código del cliente de cambios en la implementación del

objeto

Clases y encapsulamiento

El código del cliente puede usar la interfase para una operación El código del cliente puede aprovechar la implementación de

una operación La implementación puede cambiar para: Corregir un falla Mejorar rendimiento Reflejar un cambio de políticas

El código del cliente no se verá afectado por cambios en laimplementación, reduciendo el “efecto de onda” en el que unacorrección a una operación fuerza a una correccióncorrespondiente en una operación del cliente que a su vez causaun cambio en un cliente del cliente...

Beneficios del encapsulamiento

Relaciones entre clases

Es la relación semántica entre dos o masclasificadores que especifica conexiones entre susinstancias Una relación estructural, especificando que objetos de una

cosa están conectados a objetos de otra

Las asociaciones se representan en los diagramas declases con una línea que conecta las clases asociadas

¿Qué es una asociación?

Student

<<Entity>>

Schedule

<<Entity>>

Para clarificar su significado, se le puede darnombre a una asociación

El nombre se representa como una etiqueta colocadasobre la línea de asociación en el medio entre losíconos de las clases

Usualmente un nombre de asociación es un verbo ouna frase con verbos

Nombrando asociaciones

<<entidad>>

Curso

<<controlador>>

ManejadorInscripciónmaneja

Es el número de instancias de una clase que se relaciona conuna instancia de otra clase

Para cada asociación, hay dos decisiones de multiplicidad ahacer, una para final de la asociación

Por ejemplo, en la conexión entre Persona interpretando el roldel maestro y Curso

Para cada instancia de Persona, muchos (cero o más)cursos pueden impartirse

Para cada instancia de Curso, exactamente una Persona esel maestro

¿Qué es multiplicidad?

Professor

<<Entity>>

CourseOffering

<<Entity>>

0..1 0..*

+ instructor

Indicadores de multiplicidadSin especificar

Exactamente uno 1

Cero o mas 0..*

Cero o mas *

Uno o mas 1..*

Cero o uno 0..1

Rango específico 2..4

Rango disjunto 2,4,

6

La multiplicidad responde dos preguntas:

•¿La asociación es obligatoria o es opcional?

•¿Cuál es el mínimo y máximo número de instancias que se pueden

enlazar a una instancia?

Es una forma especial de asociación que modela una

relación todo-parte entre un agregado (el todo) y suspartes

Es una relación “es parte de”

La multiplicidad se representa como en otrasasociaciones

¿Qué es agregación?

ParteTodo

0..11

Ejemplos de agregación. Una biblioteca contiene

libros, un departamento está integrado porempleados. Para modelar una agregación, elagregado (departamento) tiene una relación deagregación con sus partes (empleados).

Una relación de agregación que tiene unamultiplicidad mayor a uno para el agregado esllamada compartida (shared). Destruyendo elagregado no necesariamente se destruye a suspartes. Se utiliza cuando existe una relación fuerteentre dos clases, de manera que la misma instanciapuede participar en dos diferentes agregaciones

Agregación

Si dos objetos están firmemente unidos por una

relación todo-parte

La relación es una agregación

Si los dos objetos se consideran usualmente comoindependientes, aún cuando muchas veces seenlazan

La relación es una asociación

¿Agregación o asociación?

¿La frase “parte de” es usada para describir la relación? Una Puerta es “parte de” un Carro

¿Algunas operaciones en el todo automáticamente se aplican asus partes? Mover el Carro, Mover la Puerta

¿Se propagan algunos de los valores de los atributos del todo atodas o algunas de sus partes? El Carro es azul, la Puerta es azul

¿Existe una asimetría intrínseca en la relación donde una clasees subordinada a la otra? Una Puerta ES parte de un Carro, un Carro NO ES parte de

una Puerta

Pruebas agregación

Es una relación entre clases donde una clase

comparte la estructura y/o comportamiento de una omas clases

Define una jerarquía de abstracciones en la cual unasubclase hereda de una o mas superclases

Es una relación “es un tipo de”

Generalización

Ejemplo: herencia simple

Superclase

(Padre)

(Ancestro)

Subclases

(Hijo)

(Descendientes)

Relación de

generalización

CheckingSavings

Account

- balance

- name

- number

+ withdraw()

+ createStatement()

Ejemplo: herencia múltiple

FlyingThing Animal

HorseWolfBirdHelicopterAirplane

Herencia múltiple

Una subclase hereda los atributos, operaciones y

relaciones del padre

Una subclase puede Agregar atributos, operaciones o relaciones

adicionales

Redefinir operaciones heredadas

Los atributos, operaciones y/o relaciones semuestran al nivel aplicable mas alto en la jerarquía

¿Qué se hereda?

Ya que las relaciones de herencia no se refieren a

objetos individuales

La relación no tiene nombre

La multiplicidad no tiene sentido

Teóricamente no hay límite en el número de nivelesen las jerarquías

En la práctica, los niveles deben limitarse.Entre 3 y 5 niveles.

Consideraciones de herencia