Upload
superottos
View
106
Download
2
Embed Size (px)
DESCRIPTION
exlicacion de poo programacion orientada a objetos, en java es imprtante esta guia.
Citation preview
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
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
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()
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?