Está en la página 1de 52

Introduccin al Anlisis y Diseo Orientado a Objetos

Temario
Objeto Mensaje Principios del Software Orientado a Objetos Clases Encapsulamiento Polimorfismo Agregacin El mecanismo de Herencia

Objeto
Objeto = todo lo que nos rodea, concretos como abstractos Objeto = cumple un ROL dentro de los sistemas de la organizacin Objeto = conoce como hacer su trabajo y recuerda su propia informacin

Qu es un Objeto?

Informalmente, un objeto representa una entidad, fsica, conceptual o programa

Entidad fsica

Truck

Entidad conceptual
Chemical Process

Entidad programa
Linked List

Concepto de Objeto
Objeto

El termino Objeto representa una unidad de software con las siguientes caractersticas:
. Identidad . Estado (Informacin) . Comportamiento

Esta unidad de software es la representacin computacional de una entidad Preexistente o NO de la realidad que deseamos modelar.

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, adems de las conexiones que deben tener con otros objetos

a + b = 10

Nombre: N Empleado: Fecha de Contr.: Estado:

Joyce Clark 567138 21 de marzo 1987 Adjunto

Profesor Clark

Un Objeto Tiene Comportamiento


El comportamiento de un objeto determina cmo ste acta 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

Asignacin del profesor Clark (Retorna:confirmacin)


Registro del Sistema

Curso Algebra 101

Un Objeto tiene Identidad


Cada objeto tiene una identidad nica, incluso si su estado es idntico al de otro objeto

Profesor J Clark ensea Algebra

Profesor J Clark ensea Algebra

Profesor J Clark ensea Algebra

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 asignacin de tareas = responsabilidades las hacemos al momento del diseo OO. Las responsabilidades de un Objeto se realizan por medio de sus mtodos. (mtodo = cdigo ejecutable)

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 automtica por el mismo sistema

Objeto - Estado
Estado (Informacin que el objeto conoce) Un objeto contiene una fraccin de la informacin total del sistema... ... representada en forma de: otros objetos, o bien, tipos bsicos o complejos del lenguaje de implementacin.

Objeto - Mensaje
Objeto - Mensaje - Objeto La nica forma de alterar el estado interno de un objeto es por medio del envo de un mensaje. Dicho mensaje se resuelve por la ejecucin de un mtodo del objeto receptor. EMISOR ->>> mensaje ENCAPSULAMIENTO ->>> RECEPTOR

Comunicacin exitosa => conocimiento previo del lenguaje del receptor.

Principios de Software Orientado a Objetos


La orientacion a objetos, para su modelamiento del mundo real se basa en los siguientes principios: Abstraccin Encapsulamiento Principio de Informacin oculta Principio cliente-servidor Jerarquas

Abstraccion
Es la representacion de las caracteristicas escenciales de un objeto, asi como de su comportamiento. Definir una abstraccion significa describir una entidad del mundo real, no importando lo compleja que pueda ser, representando sus caracteristicas y comportamiento.

Encapsulamiento
Mecanismo que permite unir, en una nica abstraccin, todas las propiedades (caracteristicas) y funcionalidades (comportamiento) de una entidad.

Encapsulamiento
Encapsulamiento = Informacin + Operaciones. Trata la complejidad inherente al mundo real, encerrndola en el objeto. Un Objeto se compone de: ... de otros objetos, a los que nombraremos atributos del objeto contenedor

Atributos = definen una jerarqua de inclusin


Mensaje = Consiste en un nombre

Principio de Informacion Oculta


Consiste en la capacidad de proveer la posibilidad de ocultar los detalles de la representacion interna de un objeto y exponer solo aquellos detalles necesarios para el resto del sistema. Los otros objetos dependeran de un comportamiento especifico y no de la implementacion interna de un objeto.

Principio de Informacion oculta

Principio Cliente-Servidor
Se basa en la interaccin 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.

De quin es Cliente una Clase?


De sus Ancestros (Usa exclusivamente sus mtodos). De Objetos de otras Clases (Usa exclusivamente sus mtodos). De si misma.

Jerarquias
Una jerarquia es la que nos permite ordenar y relacionar las abstracciones o clases. Generalizacin/Especializacin. Generalmente conocida como Herencia, la cual define una relacion entre clases en donde una comparte la estructura y comportamiento de una o mas clases.

CLASES
Una clase es una descripcin de un grupo de objetos con propiedades en comn (atributos), comportamiento similar (operaciones), la misma manera de relacionarse entre objetos (asociaciones y agregados) y una semntica en comn

Ejemplo de una Clase


Clase Curso
Estructura Nombre Ubicacin Das ofrecidos Horas Crditos Horario de inicio Horario de trmino Comportamiento Agregar un alumno Borrar un alumno Dar una lista del curso Determinar si est lleno

a + b = 10

Clases de Objetos
Cuntas clases ve?

Encontrando Clases
Una clase debe capturar una y solo una abstraccin clave Mala abstraccin: La clase estudiante que conoce la informacin del estudiante y el programa del actual semestre del estudiante Buena abstraccin: Clases separadas para estudiantes y programas del estudiante

Algebra 101 Historia Arte Qumica Espaol 101

Nombramiento de Clases

El nombre de la clase debe ser el sustantivo singular que mejor caracterice la abstraccin La dificultad al nombrar la clase revela una pobre definicin de la abstraccin Los nombres deben provenir directamente del vocabulario del dominio

Gua de estilo en el nombramiento de clases

Una gua de estilo debe dictar convenciones para el nombramiento de clases Ejemplo de gua de estilo

Las clases son nombradas usando sustantivos singulares Los nombres de las clases comienzan con letra mayscula No se usa el subrayado

Los nombres compuestos por mltiples palabras se ponen juntos y la primera letra de cada palabra se escribe con mayscula
Ejemplo: Estudiante, Profesor, SistemaDePago

Definiendo la Semntica de las Clases


Despus de nombrar las clases, debe hacerse un informe descriptivo conciso Concentrarse en el propsito de la clase, no en su implementacin El nombre y la descripcin de la clase sirven como base para un modelo de diccionario

Fijarse en los QUE e ignorar los COMO

Muestra de las Entradas de un Modelo de Diccionario


Nombre: InformacinDelEstudiante Definicin de Trabajo: Informacin de una persona registrada para asistir a clases en la universidad Nombre: Curso Definicin de Trabajo: Una clase ofrecida por la universidad

Mientras ms se descubre del problema, se refina la definicin de la clase y se agregan nuevas clases al modelo de diccionario

La Relacin Entre Clases y Objetos


Una clase es una definicin abstracta de un objeto Define la estructura y el comportamiento de cada objeto en la clase Sirve como modelo para la creacin de objetos Los objetos pueden ser agrupados en clases

Profesor
Objetos
Profesor Smith Profesor Jones Profesor Mellon

Clase

Objetos: Polimorfismo
Un sistema tpico construido con Objetos puede llegar a estar constituido por una gran cantidad de ellos Si cada uno posee un lenguaje distinto para comunicarse, deberamos administrar un diccionario demasiado extenso. Hay que reducir el lenguaje. Objetos parecidos tienen que responder a los mismos mensajes.

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

Herencia

La herencia define una relacin entre clases donde una clase comparte la estructura y/o comportamiento con una o ms clases La herencia define una jerarqua de abstracciones en que una subclase herede desde una o ms superclases Con la herencia unitaria, la subclase hereda desde una nica superclase Con la herencia mltiple, la subclase hereda desde ms de una superclase La herencia es una relacin es un o tipo de

Dibujando una Herencia Jerrquica

RegistroInformacinUsuario Superclase

Relacin de Herencia

InformacinEstudiante Subclase

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

Heredando Atributos
Los atributos se definen en el nivel ms alto en la jerarqua de herencia en la que son aplicados Las subclases de una clase heredan todos los atributos Cada subclase puede aadir atributos adicionales

VehculoTerrestre Peso nmeroLicencia

Auto

Camin tonelaje

Un camin tiene tres atributos: nmeroLicencia peso tonelaje

Heredando Operaciones
Las operaciones son definidas en el ms alto nivel en la jerarqua de herencia en que son aplicables. Las subclases heredan todas las operaciones de una clase Cada subclase puede aumentar o redefinir las operaciones heredadas

VehculoTerrestre peso nmeroLicencia registrar( )

Auto

Camin tonelaje obtenerImpuestos( )

Un camin tiene tres atributos: nmeroLicencia peso tonelaje y dos operaciones: registrar() obtenerImpuestos()

Herencia

Generalizacin / Especializacin Agregacin Asociacin

Heredando Relaciones
Las relaciones tambin son heredados y deben ser definidas en el ms alto nivel de la jerarqua de herencia en la cual son aplicables Las subclases de una clase heredan todas las relaciones Cada subclase puede participar en relaciones adicionales

VehculoTerrestre peso nmeroLicencia 0..*


registrar( )

dueo 1

Persona

Auto

Trailer Camin tonelaje obtenerImpuestos( )

Un auto es relacionado con un propietario Un camin es relacionado con un propietario Un camin tambin tiene un trailer

Herencia vs. Agregacin

Herencia
Palabra clave es un

Agregacin
Palabra clave tiene un

Un objeto

Relaciona objetos de distintas clases

Representado por una flecha

Representado por un diamante

Window y Scrollbar

Window

Scrollbar

WindowWithScrollbar

Un WindowWithScrollbar tiene un Window Un WindowWithScrollbar tiene un Scrollbar Qu relacin debera ser usada?

Window y Scrollbar (cont.)


Window

Window

Scrollbar

WindowWithScrollbar
1 1

Scroll bar

WindowWithScrollbar

Un WindowWithScrollbar es un Window Un WindowWithScrollbar tiene un Scrollbar

Sntesis: Objetos

Un objeto encapsula un estado y un comportamiento Distribucin de la Informacin - Responsabilidad Objeto encapsulado => Acceso Controlado = Integridad Objeto - Mensaje Red de Objetos Cooperantes = Sistema Red de Objetos Cooperantes Polimrficos = Sistema con valor agregado ( Reusable, + Mantenible, ...)

Caso de Estudio
Registracin 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. Adems, cada estudiante puede seleccionar dos (2) cursos alternativos, para el caso de que algn curso seleccionado este cerrado a la inscripcin (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.

Caso de Estudio

Registracin 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 informacin sobre cada curso, como profesor, departamento y prerrequisitos sern incluidos para asistir a los estudiantes a tomar una decisin en base a dicha informacin.

Caso de Estudio

Registracin de estudiantes y profesores a cursos. (3/4) Una vez que el proceso de registracin haya sido terminado para un estudiante, el sistema de registracin deber informar al sistema de cobros, para registrar el pago del estudiante. Los profesores debern acceder al sistema en forma "on-line" para indicar cuales cursos dictarn en el semestre actual. Tambin necesitaran consultar cuales estudiantes estn registrados en los cursos que ellos dictan.

Caso de Estudio

Registracin 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 debern poder acceder al sistema durante este periodo para agregarse o borrarse de los cursos ofrecidos.

Caso de Estudio
Actores: Estudiante Sistema de cobro Caso de Uso: Registrar Cursos

Caso de Estudio
Objetos principales
Estudiante un estudiante deber poder responder a:
Identificacin (nombre y apellido) Cdigo 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 Cdigo de alumno Calendario
(recordar que se acceden a las variables de instancia solo a travs de los mtodos correspondientes. = encapsulamiento)

Caso de Estudio
Objetos principales Curso Disponible: un curso deber poder responder a: cdigo de identificacin 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 cdigo de identificacin un estado nombre y apellido del profesor que dicta el curso

Caso de Estudio

Objetos principales - Clasificacin


El objeto estudiante deber comunicarse con el objeto curso para registrarse en el mismo. En trminos del paradigma de objetos decimos que el objeto estudiante le enva un mensaje al objeto curso.

Este mecanismo se repite para todos los estudiantes que deseen registrarse a uno o mas cursos. Como la lgica asociada a la resolucin del mensaje registrarse a un curso es la misma para todos los objetos curso, esta lgica (mtodo) residir en un solo lugar, y estar disponible para todos los objetos de la especie curso. Tambin definiremos all las variables de instancia que tienen en comn todos los objetos curso.

Caso de Estudio
Objetos principales - Clasificacin Llegamos as a uno de los conceptos fundamentales en el paradigma de Objetos. Clasificacin en Especie de objetos con comportamiento comn. En sntesis: identificamos a los objetos de nuestro problema, luego ... les asignamos responsabilidades (comportamiento) los clasificamos por especies (teniendo en cuenta el comportamiento en comn que poseen)

El concepto de Especie se corresponde con el de Clase

También podría gustarte