Está en la página 1de 21

Instituto Politcnico Nacional

Escuela Superior de Cmputo


Departamento de Ciencias e Ingeniera de la Computacin Academia de Algoritmia y Programacin

Programacin orientada a objetos


Snchez Garca Luz Mara
Mxico, D.F. Agosto 2011

Unidad I. Fundamentos
1.1 Antecedentes. 1.2 Modelo orientado a objetos. 1.2.1 Principio de abstraccin. 1.2.2 Principio de modularidad. 1.2.3 Principio de jerarqua. 1.2.4 Principio de tipificacin.

Modelo Orientado a objetos

Fundamentos del modelo de objetos


Los mtodos de diseo estructurado surgieron para guiar a los desarrolladores a construir sistemas complejos a partir de algoritmos como bloques fundamentales de construccin.
Anlogamente, los orientados a objetos han surgido para ayudar a los desarrolladores a explotar la potencia expresiva de los lenguajes de programacin basados en objetos utilizando clases y objetos como bloque bsicos de construccin.

Fundamentos del modelo de objetos


Un objeto tiene una cierta integridad que no puede ser violada, es decir, un objeto solo puede cambiar de estado, tener un comportamiento, manipular ese comportamiento o interactuar con otros objetos, dicho de otro modo, existen invariantes que caracterizan un objeto y su comportamiento.

Fundamentos del modelo de objetos


El termino \objeto "surgi a principios de los 70's para manejar la complejidad inherente en los sistemas de software, de tal forma que los objetos representaban componentes de un sistema descompuesto modularmente o bien en unidades modulares de representacin del conocimiento.

Fundamentos del modelo de objetos


Existen 3 principales factores que contribuyeron a la evolucin de los conceptos orientados a objetos:
Los avances en las arquitecturas de computadoras. Avances en los lenguajes de programacin. Avances en la metodologa de la programacin.

Fundamentos del modelo de objetos


El primero en identificar formalmente la importancia de componer sistemas en capas de abstraccin fue Edsger Dijkstra, posteriormente David Lorge Parnas introdujo la idea de ocultacin de la informacin y despus varios investigadores fueron pioneros en el desarrollo de mecanismos de tipos de datos abstractos, finalmente Hoare contribuyo con su propuesta con una teora de tipos y subclases.

Fundamentos del modelo de objetos


Finalmente la programacin orientada a objetos se podr ver como: un mtodo de implementacin en el que los programas se organizan en colecciones cooperativas de objetos, donde cada uno representa una instancia de una clase, y cuyas clase son, todas ellas, miembros de una jerarqua de clases unidas por relaciones de herencia.

Fundamentos del modelo de objetos


Hay tres partes importantes en esta definicin:
1. Utiliza objetos y no algoritmos como bloques lgicos de construccin. 2. Cada objeto es una instancia de alguna clase. 3. Las clases estn relacionadas con otras clases por relaciones de herencia.

Fundamentos del modelo de objetos


Cardelli y Wegner dicen que cierto lenguaje es orientado a objetos si y solo si satisface: Soporta objetos que son abstracciones de datos con una interfaz de operaciones con nombre y un estado local oculto. Los objetos tienen un tipo asociado (clase). Las clases pueden heredar atributos de superclases.

Diseo orientado a objetos


El diseo orientado a objetos es un mtodo de diseo que abarca el proceso de descomposicin orientada a objetos y una notacin para describir los modelos lgico y fsico, as como los modelos esttico y dinmico del sistema.

Diseo orientado a objetos


Hay dos partes importantes en esta definicin: 1 Se da lugar a una descomposicin orientada a objetos. 2 Utiliza diferentes notaciones para expresar diferentes modelos de diseo lgico (estructura de clases y objetos) y fsico (arquitectura de mdulos y procesos)

Anlisis orientado a objetos


Enfatiza la construccin de modelos del mundo real, utilizando una visin del mundo orientado a objetos.
Es decir: El anlisis orientado a objetos es un mtodo de anlisis que examina los requisitos desde la perspectiva de las clases y objetos que se encuentran en el vocabulario del dominio del problema.

Programacin Orientada a objetos


Permite descomponer mas fcilmente un problema en subgrupos de partes relacionadas del problema. Entonces, utilizando el lenguaje se pueden traducir estos subgrupos a unidades autocontenidas llamadas objetos.

Caractersticas del Modelo objeto


1. Modularizacin: descomponer la aplicacin en partes ms pequeas. 2. Abstraccin. 3. Encapsulacin: ocultacin de informacin. 4.Jerarquizacin: relaciones de herencia o generalizacin (es_un) y relaciones de contenido o agregacin (tiene_un). 5. Polimorfismo: capacidad de referirse a objetos de clases distintas en una jerarqua utilizando el mismo elemento de programa para realizar la misma operacin, pero de formas distintas.

Caractersticas deseables en el Modelo objeto


Concurrencia. Persistencia: un objeto puede seguir existiendo tras desaparecer su antecesor. Genericidad (unidades genricas de programacin). Manejo de excepciones.

Clase Conceptos Objeto

Evento Componentes Herencia Atributos Mtodos

Mensaje

POO
Abstraccin

Caractersticas
Ocultacin

Encapsulamiento

Polimorfismo

Recoleccin de basura

Programacin estructurada vs orientada a objetos


La programacin estructurada se basa en formas de control bien definidas, bloques de cdigo, subrutinas independientes que soportan recursividad y variables locales. La esencia de la programacin estructurada es la reduccin de un programa a sus elementos constitutivos.

Programacin estructurada vs orientada a objetos


La POO permite descomponer un problema en subgrupos relacionados. Cada subgrupo pasa a ser un objeto auto contenido que incluye sus comportamientos y datos que describen a ese objeto.
Los lenguajes Orientado a Objetos comparten las siguientes caractersticas: Abstraccin. Encapsulamiento Polimorfismo Herencia

Propiedades de la POO

También podría gustarte