Beruflich Dokumente
Kultur Dokumente
Objetivo
Describir el Paradigma de Orientacin a Objetos incluyendo los conceptos relacionados al anlisis, diseo y programacin
Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos
Paradigmas de Programacin
Hay para todos los gustos
Estructurados (C, Pascal, Basic, etc.) Funcionales (CAML) Declarativos (Prolog) Orientados a Objetos (C#, VB.NET, Smalltalk, Java) Orientados a Aspectos Hbridos (Lisp, Visual Basic) Incomprensibles....
Cada enfoque tiene sus ventajas y desventajas Cada uno es ms apropiado para ciertas cosas
Evolucin de la POO
Pensar en Objetos .
Se parece ms al mundo real Permite representar modelos complejos Muy apropiada para aplicaciones de negocios Las empresas ahora s aceptan la OO Las nuevas plataformas de desarrollo la han adoptado (Java / .NET)
Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos
Qu es un Objeto?
Informalmente, un objeto representa una entidad del mundo real Entidades Fsicas
Entidades Conceptuales
(Ej.: Proceso Qumico, Transaccin Bancaria) (Ej.: Lista Enlazada, Interfaz Grfica)
Entidades de Software
Qu es un Objeto?
Definicin Formal (Rumbaugh):
Un objeto es un concepto, abstraccin o cosa con un significado y lmites claros en el problema en cuestin
Qu es una Clase?
Una clase es una descripcin de un grupo de objetos con:
Propiedades en comn (atributos) Comportamiento similar (operaciones) La misma forma de relacionarse con otros objetos (relaciones) Una semntica en comn (significan lo mismo) Enfatiza las caractersticas relevantes Suprime otras caractersticas (simplificacin)
Objetos y Clases
Una clase es una definicin abstracta de un objeto
Define la estructura y el comportamiento compartidos por los objetos Sirve como modelo para la creacin de objetos
Nombre Ubicacin Das Ofrecidos Horario de Inicio Horario de Trmino Agregar un Alumno Borrar un Alumno Entregar un Listado del Curso Determinar si est Completo
Comportamiento (Mtodos)
Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Pilares de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos
Encapsulamiento
Poder separar la interfaz de una clase de su implementacin, o dicho en otras palabras: no es necesario conocer los detalles de cmo estn implementadas las propiedades para poder utilizarlas. Los objetos funcionan a modo de caja negra en la que estn empaquetados los datos y las instrucciones para su manipulacin, de las que conocemos solo lo necesario para utilizarla.
Modificadores de Acceso
Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o mtodos) de una clase
Publico: Cualquier clase puede ver los miembros pblicos de otra clase Privado: Slo la clase puede ver sus propios miembros privados
Mensajes
El modelado de objetos no slo tiene en consideracin los objetos de un sistema, sino tambin sus interrelaciones. Mensaje
Los objetos interactan envindose mensajes unos a otros. Tras la recepcin de un mensaje el objeto actuar. La accin puede ser el envo de otros mensajes, el cambio de su estado, o la ejecucin de cualquier otra tarea que se requiera que haga el objeto.
Mensajes
Cuando un objeto A necesita que el objeto B ejecute alguno de sus mtodos, el objeto A le manda un mensaje al objeto B.
Al recibir el mensaje del objeto A, el objeto B ejecutar el mtodo adecuado para el mensaje recibido.
Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Pilares de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos
Qu es UML?
UML es un lenguaje visual para especificar, construir y documentar sistemas (OMG - Object Management Group) Unified (UNIFICADO):
El aporte de muchos mtodos y notaciones Independiente de implementaciones, plataformas y lenguajes Los modelos son utilizados en todas las ingenieras Si hay gente, requieren comunicarse. Si se tienen que comunicar, se tienen que entender. Para entenderse necesitan un lenguaje comn
Modeling (MODELADO):
Language (LENGUAJE):
UML no es Metodologa!
La primera seccin contiene el nombre de la clase La segunda seccin muestra la estructura (atributos) La tercera seccin muestra el comportamiento (operaciones)
Curso -nombre -ubicacion -dias -inicio -fin +AgregarAlumno() +BorrarAlumno() +GenerarListadoCurso() +EstaCompleto()
Los miembros pblicos se denotan con el signo + Los miembros privados se denotan con el signo
Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Pilares de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos
Abstraccin
Relaciones
Herencia
Encapsulamiento
Abstraccin
Ignorancia Selectiva
La abstraccin nos ayuda a trabajar con cosas complejas Se enfoca en lo importante Ignora lo que no es importante (simplifica)
Encapsulamiento
Principio que establece que los atributos propios de un objeto no deben ser visibles desde otros objetos
Permite abstraer al resto del mundo de la complejidad de la implementacin interna Permite exponer el estado del objeto slo a travs del comportamiento que le hayamos definido mediante miembros pblicos Por qu es til?
Relaciones
Todo sistema abarca muchas clases y objetos Los objetos contribuyen en el comportamiento de un sistema colaborando entre si
Relaciones de Asociacin
Una asociacin es una conexin entre dos clases que representa una comunicacin
Una asociacin puede tener nombre La comunicacin puede ser tanto uni como bidireccional (por defecto) La multiplicidad es el nmero de instancias que participan en una asociacin
Una Persona es Duea de un Vehculo Un Vehculo Pertenece a una Persona
Persona -dueo Vehiculo
Ejemplo:
Relaciones de Agregacin
La agregacin es una forma especial de asociacin donde un todo se relaciona con sus partes
Tambin se conoce como una parte de o una relacin de contencin Una Puerta es una parte de un Vehculo El Vehculo es azul, la Puerta es Azul Mover el Vehculo implica mover la Puerta
Vehiculo -color +Mover() Puerta
Ejemplo:
Herencia
Clase Base
Es una relacin entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch) Cada clase que hereda de otra posee:
Los atributos de la clase base adems de los propios Soporta todos o algunos de los mtodos de la clase base
Automvil
Avin
Herencia
Herencia Es-Un: herencia real, donde la subclase es un tipo especfico de la superclase
Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos
Interfaces (1/3)
Recurso de diseo soportado por los lenguajes orientados a objetos que permite definir comportamiento Permite que clases que no estn estrechamente relacionadas entre s deban tener el mismo comportamiento La implementacin de una interfaz es un contrato que obliga a la clase a implementar todos los mtodos definidos en la interfaz
Interfaces (2/3)
Vehiculo
Aereo
Acuatico
Terrestre
Avin
Barco
Automvil
Interfaces (3/3)
Se crean las interfaces que definen comportamiento Hidroavin deber definir los comportamientos de cada una de las interfaces que implemente
interface Acuatico +Navegar() interface Aereo +Volar()
Hidroavion
Polimorfismo
Es la propiedad que tienen los objetos de permitir invocar genricamente un comportamiento (mtodo) cuya implementacin ser delegada al objeto correspondiente recin en tiempo de ejecucin El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es as
Polimorfismo - Ejemplo
La definicin del mtodo reside en la clase base La implementacin del mtodo reside en la clase derivada La invocacin es resuelta al momento de ejecucin
Transporte Avanzar Frenar
Transporte
Avanzar Frenar
Transporte Avanzar Frenar Transporte Avanzar Frenar
Reutilizacin
La programacin orientada a objeto proporciona el marco idneo para la reutilizacin de las clases. Los conceptos de encapsulamiento y herencia son las bases que facilitan la reutilizacin. Un programador puede utilizar una clase existente y sin modificarla, aadirle nuevas caractersticas y datos. Esta operacin se consigue derivando una clase a partir de la clase base existente, la nueva clase hereda las propiedades de la antigua, pero se pueden aadir nuevas propiedades
2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.