Vous êtes sur la page 1sur 90

PROGRAMACION ORIENTADA A OBJETOS

Es

una propiedad esencial no accidental.


Se

deriva de cuatro elementos :

complejidad del dominio del problema. La dificulta de gestionar el dominio del desarrollo. La posible flexibilidad a travs del software.

Los usuarios no tienen la precisin para exponer sus ideas o necesidades acerca de su software. De acuerdo a esto los desarrolladores hacen suposiciones en lugar de tener una perspectiva real de lo que el usuario requiere .

La dificultad de gestionar el proceso de desarrollo. Es necesario descomponer el problema en centenares de mdulos independientes

LA flexibilidad a travs del software. Tenemos en cuenta otros tipos de lenguajes de programacin que facilitan el rendimiento solicitado para una implementacin.

En 1968 se dio a conocer que el software era caro poco estable y escaso. Pese a las metodologas y estructuras que ahora se utilizan los problemas de diseo aun prevalecen.

Anlisis Diseo Implementacin Depuracin Mantenimiento

Eficiencia
Transportabilidad Verificabilidad

Correccin Robustez Extensibilidad Reutilizacin Compatibilidad

Integridad
Fcil de utilizar

un programa es una descripcin abstracta de un procedimiento o fenmeno que existe o sucede en el mundo real.

Los programadores han tenido que luchar con el problema de la complejidad durante mucho tiempo desde el nacimiento de la informtica.
La abstraccin es la capacidad para aislar y encapsular la informacin, el diseo y ejecucin.

Un modelo mental es una vista simplificada de cmo funcionan las cosas de modo que se pueda interactuar con ellas.
En resumen el proceso mental de construccin de modelos es lo mismo que el diseo del software aunque este es el nico. Cuando la programacin era basada en instrucciones binarias, esta era manejada por los programadores a travs de abstracciones para evitar que tuvieran que recordar la secuencias de bits. Los procedimientos y funciones fueron unos de los primeros mecanismos de abstraccin que se utilizaron ampliamente en los lenguajes de programacin. El procedimiento proporciono la primera posibilidad de ocultacin de la informacin. Es una tcnica que proporciona la capacidad de dividir sus datos y procedimientos en una parte privada, solo accesible dentro del modulo. Los mdulos proporcionan un mtodo efectivo de ocultacin de informacin, pero no permiten realizar instalacin que es la capacidad de hacer mltiples copias en las zonas de datos.

un TAD es un tipo de dato definido por programador que se puede manipular de un modo similar a los tipos de datos definidos por el sistema para construir un tipo de dato se debe poder: 1.Exponer una definicin del tipo 2.Hacer disponible un conjunto de operaciones que se puedan manipular 3.Proteger los datas 4.Permitir instancias mltiples del tipo. Es un tipo abstracto de dato los mecanismos bsicos de orientacin a objetos: objetos, mensajes, mtodo, clases, instancias y herencia.

Se emplea desde el principio de la dcada de los setenta, un programa estructurado se construye dividiendo el programa en funciones, esta divisin permite escribir cdigo mas claro y mantener el control sobre cada funcin.

PARADIGMAS: conjunto de teoras, y mtodos que juntos representan un medio de organizacin del conocimiento. La orientacin a objetos reconsidera nuestra pensamiento sobre la computacin, sobre lo que significa realizar computacin y sobre cmo se estructura la informacin dentro de la computadora.

Jenkins y Glasgow sugieren que existen cuatro clases de estilos de programacin: 1. orientado a procedimientos (algoritmos) 2. orientado a objetos (clases y objetos) 3. orientado a lgica (expresado en clculo de predicados) 4. orientado a reglas (reglas if-then)

La OO (orientada a objetos) es especialmente adecuada para realizar determinadas aplicaciones (realizacin de prototipos y simulacin de programas) Mecanismos de encapsulacin de POO, soportan un grado alto de reutilizacin de cdigo. Interfaces de usuario grficos (por iconos) y visuales. (manipulan entrada y salida del usuario)

Conjunto de disciplinas que desarrollan y modelizan software que facilitan la construccin de sistemas complejos a partir de componentes Los conceptos y herramientas orientados a objetos son tecnologas que permiten que los problemas del mundo real sean expresado de modo fcil y natural

Es uno de los medios con el cual nos enfrentamos con la complejidad inherente al software.

Propiedad que permite asegurar que el contenido de la informacin de un objeto est oculta al mundo exterior El objeto A no conoce lo que hace le objeto B, y viceversa.

Propiedad que permite subdividir una aplicacin en partes ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicacin en si y de las restantes partes.

Propiedad que permite una ordenacin de las abstracciones. Las dos jerarquas mas importantes de un sistema complejo son: Estructura de clase y Estructura de objetos

Propiedad que indica, literalmente, la posibilidad de que una entidad tome muchas formas. Permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizarla misma operacin de diferentes formas, segn sea el objeto que se referencia en ese momento

El modelo objeto ideal no slo tiene las propiedades anteriormente citadas, existes las siguientes: Concurrencia Persistencia Genericidad Manejo de excepciones

La programacin orientada a objetos proporciona un mecanismo para construir componentes de software reutilizables que pueden ser interconectados entre si y de esta forma lograr grandes proyectos de software.

REGLAS DE MODULARIDAD UNIDADES MODULARES

Divisin de un sistema grande en mdulos ms pequeos y a la vez manejables, no siempre esta divisin es garanta de un sistema bien garantizado. Como la propiedad de un sistema que ha sido descompuesto en un conjunto de mdulos cohesivos y dbilmente acoplados.

El

acoplamiento es una medida del grado de interdependencia entre mdulos. El objetivo es minimizar el acoplamiento entre mdulos, es decir, minimizar su interdependencia, de modo que un mdulo sea afectado lo menos posible por la estructura de otro mdulo.

Sin embargo, dado que un sistema debe realizar un conjunto de funciones o tareas de un modo organizado, no puede constar de un conjunto de mdulos totalmente desacoplados. Como define Booch, un sistema modular dbilmente acoplado facilita: La sustitucin de un mdulo por otro, de modo que slo unos pocos mdulos sern afectados por el cambio El seguimiento de un error y el aislamiento del mdulo defectuoso que produce ese error.

Describe la naturaleza de las interacciones dentro de un mdulo software. Un mdulo cohesivo solo hace (idealmente) una cosa.

Cada lenguaje de programacin incorpora una coleccin de tipos de datos fundamentales, que incluyen normalmente enteros, reales, carcter, etc. La mayora de los lenguajes tratan las variables y constantes de un programa como instancias de un tipo de dato.

Los lenguajes de programacin son herramientas mediante los cuales diseadores de lenguajes pueden implementar los modelos abstractos. La abstraccin ofrecida por los lenguajes de programacin se pueden dividir en dos categoras: Abstraccin de datos (perteneciente a los datos). Abstraccin de control (perteneciente a las estructuras de control).

Describe el orden en que se ejecutan las sentencias o grupos de sentencias (unidades de programa). Las unidades de programa se utilizan como bloques bsicos.

Los subprogramas constituyen una herramienta potente de abstraccin, ya que durante su implementacin el programador describe como funcionan los subprogramas. Las abstracciones y estructuras de control se clasifican en estructuras de control a nivel de sentencia y a nivel de unidades

Se basa en la utilizacin de procedimientos o funciones sin preocuparse de cmo se implementan. Esto es posible si conocemos que hace el procedimiento, la sntesis y semntica.

Es la tcnica de programacin que permite inventar o definir nuevos tipos de datos (tipos de datos definidos por el usuario) adecuados a la aplicacin que se desea realizar. La abstraccin de datos es una tcnica muy potente que permite disear programas mas cortos, legibles y flexibles.

Los tipos de datos son abstracciones y el proceso de construir nuevos tipos se llama abstracciones de datos. Los nuevos tipos de datos definidos por el usuario se llaman Tipos Abstractos de Datos y proporcionan un mecanismo adicional mediante el cual se realiza una separacin clara entre el interfaz y la implementacin del tipo de dato.

Un tipo abstracto de dato consta de: 1. la representacin: eleccin de las estructuras de datos. 2. las operaciones: eleccin de los algoritmos.

Un TAD (tipo abstracto de datos) se compone de estructuras de datos y los procedimientos que manipulan esas estructuras de datos. TAD = representacin (datos) + operaciones (funciones y procedimientos) Las operaciones desde un enfoque orientado a objetos se suelen denominar mtodos. La estructura de un tipo abstracto de dato (clase), desde un punto de vista global, se compone de interfaz y de la implementacin

Las estructuras de datos reales elegidas para almacenar la representacin de un tipo abstracto de datos son invisibles a los usuarios. Los algoritmos utilizados para implementar cada una de las operaciones de los TAD estn encapsulados dentro de los propios TAD La caracterstica de ocultacin de la informacin del TAD significa que los objetos tienen interfaces pblicos. Sin embargo, las representaciones e implementaciones de esos interfases son privadas

Los TAD proporcionan varios beneficios al programador como los siguientes: Permite una mejor conceptualizacin y modelamiento del mundo real. mejora la representacin y facilita la comprensin. Clarifica los objetos basados en estructuras y comportamiento comunes. Mejora la robustez del sistema. Mejora el rendimiento Separa la implementacin de la especificacin. Permite la extensibilidad del sistema

Cuando se escribe un programa para resolver un problema, con el enfoque tradicional se pasa directamente de la realidad a una implementacin en el lenguaje de programacin. Con los TAD se establece un nivel intermedio, donde se quiere moderar lo esencial de la realidad sin comprometerse con detalles de implementacin. De hecho, es posible consideras diferentes implantaciones.

Se hace por medio de funciones, con ayuda de la sentencia return. C no es capaz de realizar verificaciones de tipos durante el proceso de compilacin separada. No existe en C ninguna estructura para encapsular datos y funciones en una sola entidad.

como C no soporta el tipo de dato clase la implementacin del TAD se realiza mediante typedef, los datos con struct y la implementacin de las operaciones con un conjunto de funciones.

La abstraccin define el dominio y estructura de los datos junto con la coleccin o conjunto de operaciones que acceden a los datos. Permite al diseador centrarse en como se usan los datos en el sistema para resolver el problema sin tener que preocuparse de cmo se representan y tratan los datos en la memoria de la computadora

Una clase se define como una estructura en C (struc), con la diferencia de que puede contener tres secciones: publica, privada y protegida, y que pude definirse con las palabras reservadas struc y class.

Las clases pueden incluir otras funciones miembro con igual nombre que la clase y que se denomina: constructores y destructores. La implementacin de la clase se puede declarar dentro de una definicin de la clase.

La clase pila se define en el archivo de cabecera pila.h, para que este pueda ser utilizado por otros programas. Las funciones que manipulan la pila son: meter, sacar, cima y vaca. Si estas operaciones se desean que estn disponibles a los usuarios de la pila, entonces se deben definir como publicas (mediante la palabra reservada public)

La implementacin de un tipo abstractos de datos es oculta. En la mayora de los lenguajes de programacin orientados a objetos, los tipos abstractos de datos se implementan mediante clases

La programacin Orientada a objetos (POO) es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real. Grady Booch, autor del mtodo de diseo orientado a objetos, define la POO como:

Un mtodo de implementacin en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase, y cuyas clases son todas miembros de una jerarqua de clases unidas mediante relaciones de herencia. 3 importantes partes en la definicin de la POO Utiliza objetos, no algortmicos Cada objeto es una instancia de una clase Las clases se relacionan unas con otras.

Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organizacin. Un objeto no es un dato simple, sino que contiene en su interior cierto nmero de componentes bien estructurados.

el objeto retiene cierta informacin y conoce como realizar ciertas operaciones. La encapsulacin de operaciones es muy importante ya que esta permite incluir en una sola entidad la informacin y las operaciones que operan sobre esa informacin

Los mtodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarn incorporados en forma de programas (cdigo) que el objeto es capaz de ejecutar y que tambin pone a disposicin de sus descendientes a travs de la herencia.

Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos mtodos. Los mtodos son como funciones que estn asociadas a un objeto. Los procedimientos y funciones denominados mtodos o funciones miembro, determinan como actan los objetos cuando reciben un mensaje. Un mensaje es la accin que hace un objeto. Un mtodo es el procedimiento que se invoca para actuar sobre un objeto un mtodo especifica como se ejecuta un mensaje.

Una clase es la descripcin de un conjunto de objetos; consta de mtodos y datos que resumen caractersticas comunes de un conjunto de objetos. Una clase es la declaracin de un tipo de objeto Las clases son declaraciones de objetos, tambin se podran definir como abstracciones de objetos. Cada vez que se construye un objeto a partir de una clase se esta creando lo que es una instancia de esa clase lo que quiere decir que un objeto no es mas que una instancia de una clase.

Un objeto es una abstraccin de cosas (entidades) dentro de el mundo real, tales que: 1. Todas las cosas del mundo real dentro de un conjunto tiene las mismas caractersticas. 2. Todas las instancias siguen las mismas reglas.

El objeto consta de Estado (atributos). Operaciones o comportamiento (mtodos invocados por mensajes).

La identificacin de objetos se tiene examinando la descripcin del problema (anlisis gramatical) y localizando los nombres o clusulas nominales. Una vez identificados los objetos es preciso identificar los atributos y las separaciones que actan sobre ellos. Los atributos describen la abstraccin de caractersticas individuales que poseen todos los objetos

Los objetos son entidades que existen en el tiempo; por ello deben ser creados o instanciados (a travs de otros objetos). Estas operaciones se hace a travs de operaciones especiales llamadas constructores en C++ o inicializadores.

Una variable es una instancia de un tipo; al igual que un objeto es una instancia de una clase; sin embargo, una clase es mas expresiva que un tipo.

Un objeto es un simple elemento, no importa lo complejo que pueda ser. Los objetos tienen las siguientes caractersticas:

1.Se agrupan en tipos llamados clases 2.Tiene datos internos que definen su estado actual 3.Soportan ocultacin de datos 4.Pueden heredar propiedades de otros objetos 5.Pueden comunicarse con otros objetos pasando mensajes 6.Tiene mtodos que definen su comportamiento

Una propiedad importante de los objetos es que almacenan informacin de su estado en forma de datos internos. A veces se denominan a las variables que representan a los objetos variables de estado.

Cuando se utiliza un objetos no necesitamos conocer todos los detalles de la implementacin. Esta practica de limitacin del acceso a cierta informacin interna se llama ocultacin de datos. C++ soporta las caractersticas de ocultacin de datos con las palabras reservadas public, private y protected.

La estructura interna de un objeto consta de dos componentes bsicos:

1.Atributos 2.Mtodos (operaciones o servicios)

Describen el estado del objeto; consta de dos partes: * Nombre del atributo Valor del atributo Los objetos simples pueden constar de tipos primitivos como enteros, carcter, reales, boolean o tipos simples definidos por el usuario. Los objetos compuestos pueden constar de pilas, conjuntos, listas, etc.

Describen el comportamiento asociado a un objeto. Representen las acciones que pueden realizarse por un objeto o sobre un objeto. Cada mtodo tiene un nombre y un cuerpo que realiza la accin o comportamiento asociado con el nombre del mtodo.

Descripcin abstracta de un grupo de objetos cada uno de los cuales se diferencia por un estado especifico y es capaz de realizar una serie de operaciones. Las clases son una descripcin abstracta de un grupo de objetos que comparten caractersticas (atributos) y operaciones (mtodos). Las propiedades de una clase deben ser significativas dentro del entorno de la aplicacin, es decir deben ayudarnos en la identificacin clara y unvoca de cada uno de los objetos.

Una clase se puede considerar como la extensin de un registro. al igual que una clase, una tabla define los nombres y los tipos de datos de la informacin que contenga. Una clase ser un mdulo y un tipo. Como mdulo la clase encapsula los recursos que ofrece a otras clases (sus clientes). Como tipo describe un conjunto de objetos o instancias que existen en tiempo de ejecucin.

Si deseramos una clasificacin de frutas, las propiedades asociadas a cada una seran: color, tamao, sabor ( cido, dulce), jugosidad, vitaminas que brindan, entre otras. Estas caractersticas identifican claramente cada grupo de frutas. Si la aplicacin es armar una canasta de frutas se tendr en cuenta aspecto concordante (obviamente no pondremos un banano en ella pues con las otras frutas se aplastara), durabilidad, tamao, etc. A la hora de pensar en las caractersticas tal vez logremos obtener demasiadas, as que trataremos de poner las ms significativas para realizar todas las operaciones que requiera la aplicacin.

Los objetos ocupan espacio en memoria, y en consecuencia existen en el tiempo, y debern crearse. Dos operaciones comunes en cualquier clase son: Constructor: una operacin que crea un objeto y / o analiza su estado. Destructor: una operacin que libera el estado de un objeto y / o destruye el propio objeto.

Permite a los objetos ser construidos a partir de otros objetos. Es decir, la capacidad de un objeto para utilizar las estructuras de datos. El objetivo final es la reutilizabilidad o reutilizacin del cdigo ya desarrollado. La herencia supone una clase base y una jerarqua de clases que contienen las clases derivadas de la clase base. La herencia nos permite crear estructuras jerrquicas de clases donde es posible la creacin de sub-clases que incluyan nuevas propiedades y atributos. Estas sub-clases admiten la definicin de nuevos atributos, as como crear, modificar o inhabilitar propiedades.

Existen dos mecanismos de herencia utilizados comnmente en POO: herencia simple y herencia mltiple. Herencia simple. Un objeto puede heredar datos y mtodos de una nica clase, as como aadir o quitar comportamientos de la clase base. Herencia mltiple: es la propiedad de una clase de adquirir datos y mtodos de ms de una clase. Esta caracterstica suele ser comn a la mayora de los lenguajes OOP, aunque introduce un problema al existir la posibilidad de que el objeto sucesor herede el mismo atributo, aunque con distinto tipo y valor, de mas de un predecesor. Alguno de los lenguajes de programacin solucionan este problema de forma automtica, aunque los ms populares generan un error en el tiempo de compilacin. Recomendamos que se examinen con cuidado las clases para evitar en lo posible estos errores.

Permite actuar como un depsito de mtodos y atributos compartidos para las subclases de nivel inferior. Las clases abstractas no tienen instancias directamente. Se utilizan para agrupar otras clases y capturar informacin que es comn al grupo. La clase abstracta puede incluir mtodos implementados y no implementados o abstractos, miembros dato constantes y otros no constantes.

Es una propiedad que describe una caracterstica adecuada que utiliza el mismo nombre de operacin para representar operaciones similares que se comportan de modo diferente cuando se aplican a clases diferentes.

En lenguajes de programacin estructurados o convencionales soportan sobrecarga para algunas de las operaciones de tipos de datos dentro de las cuales estn: enteros reales caracteres

en los lenguajes orientados a objetos se soportan estas operaciones y adems las estructuras de datos ya que hacen disponible la sobrecarga para cualquier tipo de objeto.

los lenguajes de programacin orientada a objetos tiene la capacidad de poder ejecutar ligadura tarda (dinmica), al contrario que los lenguajes imperativos que emplean ligadura (temprana).

la ligadura esttica permite un tiempo de ejecucin mas rpido que la ligadura dinmica que necesita resolver estos enlaces en tiempos de ejecucin , sin embargo en la ligadura esttica se ha de especificar en tiempo de compilacin las operaciones exactas a que responder una invocacin del mtodo especifica as como conocer sus tipos.

Una de las caractersticas fundamentales de la OOP es el polimorfismo, que es la posibilidad de construir varios mtodos con el mismo nombre, pero con relacin a la clase a la que pertenece cada uno, con comportamientos diferentes. Esto conlleva la habilidad de enviar un mismo mensaje a objetos de clases diferentes. Es la habilidad de crear programas que son independientes de la forma de los objetos que manipulan.

El polimorfismo es una nueva caracterstica aportada por la OOP. Esta propiedad indica la posibilidad de definir varias operaciones con el mismo nombre, diferencindolas nicamente en los parmetros de entrada. Dependiendo del objeto que se introduzca como parmetro de entrada, se elegir automticamente cual de las operaciones se va a realizar.

El polimorfismo y la encapsulacin de datos estn ntimamente ligados y nos permiten un mayor grado de mantenibilidad y reusabilidad que los lenguajes tradicionales

Vous aimerez peut-être aussi