Vous êtes sur la page 1sur 53

Análisis y Diseño Orientado a

Objetos
Prof. Wenceslao Chávez Bedoya

1
Temario

Objeto – Mensaje
Principios del Software
Orientado a Objetos
Clases
Encapsulamiento
Polimorfismo
Agregación
 El mecanismo de
Herencia
2
Objeto
 Objeto = todo lo que nos rodea, concretos
como abstractos

 Objeto = cumple un ROL dentro de los


sistemas de la organización

 Objeto = conoce como hacer su trabajo y


recuerda su propia información

3
¿Qué es un Objeto?

Informalmente, un objeto representa una


entidad, física, conceptual o programa
 Entidad física

Truck

 Entidad conceptual
Chemical Process

 Entidad programa Linked List 4


Concepto de Objeto
 Objeto
 El termino Objeto representa una “unidad de
software” con las siguientes características:
. Identidad
. Estado (Información)
. Comportamiento
 Esta unidad de software es la representación
computacional de una entidad “Preexistente o NO”
de la realidad que deseamos modelar.

5
Concepto de Objeto
OBJETO = IDENTIDAD +

COMPORTAMIENTO +

ESTADO

6
Un Objeto Tiene Estado
 El estado de un objeto es una de las posibles
condiciones en que el objeto puede existir
 El estado normalmente cambia en el
transcurso del tiempo
 El estado de un objeto es implementado por un
conjunto de propiedades (llamadas atributos),
con los valores de las propiedades, además de
las conexiones que deben tener con otros
objetos
a + b = 10
Nombre: Joyce Clark
Nº Empleado: 567138
Fecha de Contr.: 21 de marzo 1987
Estado: Adjunto

Profesor Clark 7
Un Objeto Tiene
Comportamiento
 El comportamiento de un objeto determina cómo
éste actúa y reacciona frente a las peticiones de
otros objetos
 El comportamiento de un objeto es modelado
por un conjunto de mensajes a los que puede
responder (las operaciones que el objeto puede
realizar)

a + b = 10

Asignación del
profesor Clark
(Retorna:confirmación)
Registro del
Sistema Curso Algebra 8
101
Un Objeto tiene Identidad

 Cada objeto tiene una identidad única,


incluso si su estado es idéntico al de
otro objeto

Profesor “J Clark” Profesor “J Clark” Profesor “J Clark”


enseña Algebra enseña Algebra enseña Algebra 9
Objeto - Comportamiento
 Comportamiento (Responsabilidades)
 La totalidad de las tareas que el sistema
debe realizar son llevadas a cabo por una
enorme cantidad de Objetos cooperantes.
 Esa asignación de tareas =
responsabilidades las hacemos al momento
del diseño OO.
 Las responsabilidades de un Objeto se
“realizan” por medio de sus “métodos”.
 (método = código ejecutable)
10
Objeto - Identidad
 Identidad (identificador interno no accesible
al programador/usuario)

 Único mientras el objeto este activo =


“viva” para el resto del sistema.

 Es asignado en forma automática por el


mismo sistema

11
Objeto - Estado
 Estado (Información que el objeto conoce)
 Un objeto contiene una fracción de la
información total del sistema...
... representada en forma de:
otros objetos, o bien,

“tipos básicos o complejos” del lenguaje de


implementación.

12
Objeto - Mensaje
 Objeto - Mensaje - Objeto
 La única forma de alterar el estado interno de un objeto es
por medio del envío de un mensaje.
 Dicho mensaje se resuelve por la ejecución de un método
del objeto receptor.

EMISOR ->>> mensaje ->>> RECEPTOR


ENCAPSULAMIENTO

Comunicación exitosa => conocimiento previo del “lenguaje


del receptor”.

13
PRINCIPIOS SOFTWARE ORIENTADO A
OBJETOS

La orientación a objetos, para su modelamiento del


mundo real se basa en los siguientes principios:
Abstracción
Encapsulamiento
Principio de Información oculta
Principio cliente-servidor
Jerarquías

14
Abstracción
 Es la representación de las
características esenciales de un
objeto, así como de su
comportamiento.
 Definir una abstracción significa
describir una entidad del mundo real,
no importando lo compleja que pueda
ser, representando sus características
y comportamiento.
15
Encapsulamiento
 Mecanismo que permite unir, en una
única abstracción, todas las
propiedades (caracteristicas) y
funcionalidades (comportamiento) de
una entidad.

16
Encapsulamiento
 Encapsulamiento = Información + Operaciones.

 Trata la complejidad inherente al mundo real,


encerrándola en el objeto.

 Un Objeto se compone de: ... de otros objetos, a los


que nombraremos “atributos” del objeto contenedor

 Atributos = definen una jerarquía de inclusión

 Mensaje = Consiste en un “nombre”

17
Principio de Información Oculta
 Consiste en la capacidad de proveer
la posibilidad de ocultar los detalles
de la representación interna de un
objeto y exponer solo aquellos
detalles necesarios para el resto del
sistema.
 Los otros objetos dependerán de un
comportamiento especifico y no de la
implementación interna de un objeto.
18
Principio de Información oculta

19
Principio Cliente-Servidor
 Se basa en la interacción de entre dos
Entidades: el Cliente y el Servidor. Un
Cliente hace solicitudes al Servidor
para que éste realice servicios.
 En el enfoque Orientado a Objetos
ambos, Cliente y Servidor, son Clases
u Objetos.

20
¿De quién es Cliente una Clase?
 De sus Ancestros (Usa
exclusivamente sus métodos).
 De Objetos de otras Clases (Usa
exclusivamente sus métodos).
 De si misma.

21
Jerarquías
 Una jerarquía es la que nos permite
ordenar y relacionar las abstracciones
o clases.
 Generalización/Especialización.
Generalmente conocida como
Herencia, la cual define una relación
entre clases en donde una comparte
la estructura y comportamiento de
una o mas clases.
22
CLASES
 Una clase es una descripción de un grupo
de objetos con propiedades en común
(atributos), comportamiento similar
(operaciones), la misma manera de
relacionarse entre objetos (asociaciones y
agregados) y una semántica en común

23
Ejemplo de una Clase
Clase
Curso
Estructura Comportamiento
Nombre Agregar un alumno
Ubicación Borrar un alumno
a + b = 10
Días ofrecidos Dar una lista del curso
Horas Créditos Determinar si está lleno
Horario de inicio
Horario de término

24
Clases de Objetos
 ¿Cuántas clases ve?

25
Encontrando Clases
 Una clase debe capturar una y solo una abstracción clave
 Mala abstracción: La clase estudiante que conoce la
información del estudiante y el programa del actual
semestre del estudiante
 Buena abstracción: Clases separadas para estudiantes y
programas del estudiante

Algebra 101
Historia Arte
Química
Español 101

26
Nombramiento de Clases
 El nombre de la clase debe ser el
sustantivo singular que mejor caracterice
la abstracción
 La dificultad al nombrar la clase revela una
pobre definición de la abstracción
 Los nombres deben provenir directamente
del vocabulario del dominio

27
Guía de estilo en el
nombramiento de clases
 Una guía de estilo debe dictar convenciones para el
nombramiento de clases
 Ejemplo de guía de estilo
 Las clases son nombradas usando sustantivos
singulares
 Los nombres de las clases comienzan con letra
mayúscula
 No se usa el subrayado
 Los nombres compuestos por múltiples palabras se
ponen juntos y la primera letra de cada palabra se
escribe con mayúscula
 Ejemplo: Estudiante, Profesor, SistemaDePago

28
Definiendo la Semántica de las
Clases
 Después de nombrar las clases, debe
hacerse un informe descriptivo conciso
 Concentrarse en el propósito de la clase,
no en su implementación
 El nombre y la descripción de la clase
sirven como base para un modelo de
diccionario
Fijarse en los “QUE” e ignorar los “COMO”

29
Muestra de las Entradas de un
Modelo de Diccionario
 Nombre: InformaciónDelEstudiante
 Definición de Trabajo: Información de una
persona registrada para asistir a clases
en la universidad
 Nombre: Curso
 Definición de Trabajo: Una clase ofrecida
por la universidad
Mientras más se descubre del problema, se refina la definición
de la clase y se agregan nuevas clases al modelo de diccionario
30
La Relación Entre Clases y
Objetos
 Una clase es una definición abstracta de un
objeto
 Define la estructura y el comportamiento
de cada objeto en la clase
 Sirve como modelo para la creación de
objetos
 Los objetos pueden ser agrupados en clases
Profesor
Objetos

Profesor Smith Clase


Profesor Jones Profesor Mellon 31
Objetos: Polimorfismo
 Un sistema típico construido con “Objetos”
puede llegar a estar constituido por una
gran cantidad de ellos
 Si cada uno posee un lenguaje distinto
para comunicarse, deberíamos administrar
un diccionario demasiado extenso.
 Hay que reducir el lenguaje. Objetos
parecidos tienen que responder a los
mismos mensajes.

32
Objetos: Polimorfismo
• Es la cualidad que poseen los objetos de
“distintas especies” de “implementar” un
mismo “mensaje”, cada uno a su
conveniencia.

33
Herencia
 La herencia define una relación entre clases donde
una clase comparte la estructura y/o
comportamiento con una o más clases
 La herencia define una jerarquía de abstracciones
en que una subclase herede desde una o más
superclases
 Con la herencia unitaria, la subclase hereda
desde una única superclase
 Con la herencia múltiple, la subclase hereda
desde más de una superclase
 La herencia es una relación “es un” o “tipo de”
34
Dibujando una Herencia
Jerárquica
RegistroInformaciónUsuario
Superclase

Relación de Herencia

InformaciónEstudiante
Subclase

35
¿Qué es heredado?
 Una clase hereda de sus padres:
 Atributos
 Operaciones
 Relaciones
 Una subclase puede:
 Agregar atributos, operaciones y relaciones
adicionales
 Redefinir las operaciones heredadas (¡tenga
cuidado!)
La herencia apalanca las similaridades entre las clases 36
Heredando Atributos
 Los atributos se definen en el nivel más alto en la
jerarquía de herencia en la que son aplicados
 Las subclases de una clase heredan todos los
atributos
 Cada subclase puede añadir atributos adicionales
VehículoTerrestre
Peso
númeroLicencia
Un camión tiene tres atributos:
númeroLicencia
peso
tonelaje
Auto Camión
tonelaje 37
Heredando Operaciones
 Las operaciones son definidas en el más alto nivel
en la jerarquía de herencia en que son aplicables.
 Las subclases heredan todas las operaciones de
una clase
 Cada subclase puede aumentar o redefinir las
operaciones heredadas
VehículoTerrestre
peso
Un camión tiene tres atributos:
númeroLicencia númeroLicencia
registrar( )
peso
tonelaje
y dos operaciones:
registrar()
Auto Camión obtenerImpuestos()
tonelaje 38

obtenerImpuestos( )
Herencia

 Generalización / Especialización
 Agregación
 Asociación

39
Heredando Relaciones
 Las relaciones también son heredados y deben ser
definidas en el más alto nivel de la jerarquía de
herencia en la cual son aplicables
 Las subclases de una clase heredan todas las
relaciones
 Cada subclase puede participar en relaciones
adicionales
VehículoTerrestre Persona
peso dueño
númeroLicencia 0..* 1
Un auto es relacionado con
registrar( ) un propietario
Un camión es relacionado
con un propietario
Auto Camión Trailer Un camión también tiene un
tonelaje trailer
obtenerImpuestos( ) 40
Herencia vs. Agregación

Herencia Agregación

Palabra clave “es un” Palabra clave “tiene un”

Un objeto Relaciona objetos de distintas clases

Representado por una Representado por un diamante


flecha

41
Window y Scrollbar

Window Scrollbar

WindowWithScrollbar
Un WindowWithScrollbar “tiene un” Window
Un WindowWithScrollbar “tiene un” Scrollbar

¿Qué relación debería ser usada?

42
Window y Scrollbar (cont.)
Window

Window Scrollbar

WindowWithScrollbar Scrollbar
1 1

WindowWithScrollbar

Un WindowWithScrollbar “es un” Window


Un WindowWithScrollbar “tiene un” Scrollbar

43
Síntesis: Objetos
 “Un objeto encapsula un estado y un
comportamiento”
 Distribución de la Información -
Responsabilidad
 Objeto encapsulado => Acceso Controlado =
Integridad
 Objeto - Mensaje
Red de “Objetos Cooperantes” = Sistema
 Red de “Objetos Cooperantes Polimórficos” =
Sistema con valor agregado ( Reusable, +
Mantenible, ...)
44
Caso de Estudio
Registración de estudiantes y profesores a
cursos. (1/4)
 El nuevo sistema deberá permitir a los estudiantes a
seleccionar cuatro (4) cursos ofrecidos para el semestre
actual. Además, cada estudiante puede seleccionar dos
(2) cursos alternativos, para el caso de que algún curso
seleccionado este cerrado a la inscripción (por cupo
limitado) o bien por haber sido cancelado.
 Un curso ofrecido no puede tener mas de diez (10)
estudiantes registrados ni menos de tres (3). Si se
registran diez estudiantes a un curso, este se cierra, y si
se registran tres o menos, se cancela la oferta de ese
curso. 45
Caso de Estudio

Registración de estudiantes y profesores a


cursos. (2/4)
 Al comienzo de cada semestre los estudiantes pueden
solicitar el catalogo con la lista de cursos disponibles
(oferta) para el semestre en curso.
 La información sobre cada curso, como profesor,
departamento y prerrequisitos serán incluidos para
asistir a los estudiantes a tomar una decisión en base a
dicha información.

46
Caso de Estudio

Registración de estudiantes y profesores a


cursos. (3/4)
 Una vez que el proceso de registración haya sido
terminado para un estudiante, el sistema de
registración deberá informar al sistema de cobros,
para registrar el pago del estudiante.
 Los profesores deberán acceder al sistema en
forma "on-line" para indicar cuales cursos dictarán
en el semestre actual. También necesitaran
consultar cuales estudiantes están registrados en
los cursos que ellos dictan.
47
Caso de Estudio

Registración de estudiantes y profesores a cursos.


(4/4)
 Para cada semestre, existe un periodo de
tiempo en el cual los estudiantes pueden
cambiar su calendario de cursos. Los
estudiantes deberán poder acceder al sistema
durante este periodo para agregarse o borrarse
de los cursos ofrecidos.

48
Caso de Estudio
 Actores:
 Estudiante
 Sistema de cobro
 Caso de Uso:
 Registrar Cursos

49
Caso de Estudio

Objetos principales
 Estudiante
un estudiante deberá poder responder a:
Identificación (nombre y apellido)
Código de alumno
Calendario del semestre actual (materias a las que esta anotado)
Cursos en los que esta registrado en el semestre actual
un estudiante posee: (en variables de instancia)
Nombre y apellido
Código de alumno
Calendario
(recordar que se acceden a las variables de instancia solo a través de
los métodos correspondientes. = encapsulamiento)
50
Caso de Estudio

Objetos principales
 Curso Disponible:
un curso deberá poder responder a:
código de identificación
cantidad de alumnos registrados
estado (cerrado, abierto, cancelado)
datos del profesor que dicta el curso
datos del departamento
un curso posee: (en variables de instancia)
un código de identificación
un estado
nombre y apellido del profesor que dicta el curso
51
Caso de Estudio

Objetos principales - Clasificación


 El objeto “estudiante” deberá comunicarse con el objeto “curso”
para registrarse en el mismo. En términos del paradigma de objetos
decimos que el objeto “estudiante” le envía un mensaje al objeto
“curso”.

 Este mecanismo se repite para todos los estudiantes que deseen


registrarse a uno o mas cursos. Como la lógica asociada a la
resolución del mensaje “registrarse a un curso” es la misma para
todos los objetos “curso”, esta lógica (método) residirá en un solo
lugar, y estará disponible para todos los objetos de la “especie”
curso. También definiremos allí las variables de instancia que tienen
en común todos los objetos curso. 52
Caso de Estudio
Objetos principales - Clasificación
 Llegamos así a uno de los conceptos fundamentales en el paradigma de Objetos.
Clasificación en “Especie” de objetos con comportamiento común.

En síntesis:
 identificamos a los objetos de nuestro problema, luego ...
 les asignamos responsabilidades (comportamiento)
 los clasificamos por especies (teniendo en cuenta el
comportamiento en común que poseen)

El concepto de “Especie” se corresponde con el de “Clase”

53

Vous aimerez peut-être aussi