Sie sind auf Seite 1von 20

1

UNIVERSIDAD LAICA ELOY ALFARO DE MANABI FACULTAD DE CIENCIAS INFORMTICAS

MATERIA: Diseo y Desarrollo de Software

NOMBRE: Silva Zamora Cindy Gabriela

PROFESOR: Ing. Marco Ayovi

TEMA: Programacin Orientada a Objetos

CURSO: 4to A

AO LECTIVO: 2012
3

Contenido
UNIVERSIDAD LAICA ELOY ALFARO DE MANABI ................................................ 3 INTRODUCCIN ................................................................................................................ 5 OBJETIVOS DE LA INVESTIGACIN .......................................................................... 6 Objetivo general ................................................................................................................ 6 Objetivos especficos ......................................................................................................... 6 Programacin Orientada a Objetos .................................................................................... 7 Origen ................................................................................................................................ 8 Conceptos fundamentales................................................................................................. 9 Caractersticas de la POO .............................................................................................. 11 CONCLUSIONES .............................................................................................................. 19 RECOMENDACIONES .................................................................................................... 19 BIBLIOGRAFA ................................................................................................................ 20

INTRODUCCIN

La programacin Orientada a objetos (POO) es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real que otros tipos de programacin. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en trminos de objetos, propiedades, mtodos y otras cosas que veremos rpidamente para aclarar conceptos y dar una pequea base que permita soltarnos un poco con este tipo de programacin. Es importante aclarar desde un principio la diferencia que existe entre programacin orientada a objetos y un lenguaje orientado a objetos. La programacin orientada a objetos es una filosofa, un modelo de programacin, con su teora y su metodologa, que conviene conocer y estudiar antes de nada. Un lenguaje orientado a objetos es un lenguaje de programacin que permite el diseo de aplicaciones orientadas a objetos.

Dicho esto, lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la filosofa (o adquiera la forma de pensar) y despus el lenguaje, porque filosofa slo hay una y lenguajes muchos. En este documento veremos brevemente los conceptos bsicos de la programacin orientada a objetos desde un punto de vista global, sin particularizar para ningn lenguaje de programacin especfico.

OBJETIVOS DE LA INVESTIGACIN

Objetivo general

Entender los conceptos bsicos y saber utilizar las tcnicas fundamentales de la programacin orientada a objetos.

Objetivos especficos

Comprender la relacin en el uso de la programacin orientada a objetos para la solucin de problemas. Conocer el lenguaje de programacin orientado a objetos y todas las herramientas que conformen su entorno de programacin. Estudiar las tcnicas de desarrollo de software, en el entorno de la construccin de sistemas de software pequeos

Programacin Orientada a Objetos

La programacin orientada a objetos es un paradigma que utiliza objetos como elementos fundamentales en la construccin de la solucin. Surge en los aos 70. Un objeto es una abstraccin de algn hecho o ente del mundo real que tiene atributos que representan sus caractersticas o propiedades y mtodos que representan su comportamiento o acciones que realizan. Todas las propiedades y mtodos comunes a los objetos se encapsulan o se agrupan en clases. Una clase es una plantilla o un prototipo para crear objetos, por eso se dice que los objetos son instancias de clases. Los objetos son entidades que tienen un determinado estado, comportamiento (mtodo) e identidad:

El estado est compuesto de datos, ser uno o varios atributos a los que se habrn asignado unos valores concretos (datos).

El comportamiento est definido por los mtodos o mensajes a los que sabe responder dicho objeto, es decir, qu operaciones se pueden realizar con l.

La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto anlogo al de identificador de una variable o una constante).

Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interaccin llamados mtodos, que favorecen la comunicacin entre ellos. Esta comunicacin favorece a su vez el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.

Los mtodos (comportamiento) y atributos (estado) estn estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de mtodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podra producir el hbito errneo de crear clases contenedoras de informacin por un lado y clases con mtodos que manejen a las primeras por el otro. De esta manera se estara realizando una programacin estructurada camuflada en un lenguaje de programacin orientado a objetos. La POO difiere de la programacin estructurada tradicional, en la que los datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programacin estructurada anima al programador a pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programacin estructurada slo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitndoles que realicen sus mtodos por s mismos.

Origen
Los conceptos de la programacin orientada a objetos tienen origen en Simula 67, un lenguaje diseado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cmputo Noruego en Oslo. En este centro, se trabajaba en simulaciones de naves, que fueron confundidas por la explosin combinatoria de cmo las diversas cualidades de diferentes naves podan afectar unas a las otras. La idea surgi al agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamientos. Fueron refinados ms tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versin fue escrita sobre Basic) pero diseado para ser un sistema completamente dinmico en el cual los objetos se podran crear y modificar "sobre la marcha" (en tiempo de ejecucin) en lugar de tener un sistema basado en programas estticos.

La programacin orientada a objetos se fue convirtiendo en el estilo de programacin dominante a mediados de los aos ochenta, en gran parte debido a la influencia de C++, una extensin del lenguaje de programacin C. Su dominacin fue consolidada gracias al auge de las Interfaces grficas de usuario, para las cuales la programacin orientada a objetos est particularmente bien adaptada. En este caso, se habla tambin de programacin dirigida por eventos. Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, entre otros. La adicin de estas caractersticas a los lenguajes que no fueron diseados inicialmente para ellas condujo a menudo a problemas de compatibilidad y en la capacidad de mantenimiento del cdigo. Los lenguajes orientados a objetos "puros", por su parte, carecan de las caractersticas de las cuales muchos programadores haban venido a depender. Para saltar este obstculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en mtodos orientados a objetos, pero permitiendo algunas caractersticas imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparicin de Internet, y a la implementacin de la mquina virtual de Java en la mayora de navegadores. PHP en su versin 5 se ha modificado, soporta una orientacin completa a objetos, cumpliendo todas las caractersticas propias de la orientacin a objetos.

Conceptos fundamentales
La programacin orientada a objetos es una forma de programar que trata de encontrar una solucin a estos problemas. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas.

Herencia: (por ejemplo, herencia de la clase C a la clase D) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos mtodos y variables publicas declaradas en C. Los componentes registrados como 9

"privados" (private) tambin se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y slo pueden ser accedidos a travs de otros mtodos pblicos. Esto es as para mantener hegemnico el ideal de OOP.

Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (mtodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.

Mtodo: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en las propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema.

Evento: Es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir como evento, a la reaccin que puede desencadenar un objeto, es decir la accin que genera.

Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener.

Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus caractersticas predeterminadas, y cuyo valor puede ser alterado por la ejecucin de algn mtodo.

Estado interno: es una variable que se declara privada, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.

Componentes de un objeto: atributos, identidad, relaciones y mtodos. Identificacin de un objeto: un objeto se representa por medio de una tabla o entidad que est compuesta por sus atributos y funciones correspondientes.

En comparacin con un lenguaje imperativo, una "variable", no es ms que un contenedor interno del atributo del objeto o de un estado interno, as como la "funcin" es un procedimiento interno del mtodo del objeto.

10

Caractersticas de la POO
Existe un acuerdo acerca de qu caractersticas contempla la "orientacin a objetos", las caractersticas siguientes son las ms importantes:

Abstraccin: denota las caractersticas esenciales de un objeto, donde se capturan sus comportamientos.Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cmo se implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin.El proceso de abstraccin permite seleccionar las caractersticas relevantes dentro de un conjunto e identificar

comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstraccin es clave en el proceso de anlisis y diseo orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultacin, principalmente porque se suelen emplear conjuntamente.

Modularidad: Se denomina Modularidad a la 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 s y de las restantes partes. Estos mdulos se pueden compilar por separado, pero tienen conexiones con otros mdulos. Al igual que la encapsulacin, los lenguajes soportan la Modularidad de diversas formas.

Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. 11

Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos.

Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecucin", esta ltima caracterstica se llama asignacin tarda o asignacin dinmica. Algunos lenguajes proporcionan medios ms estticos (en "tiempo de compilacin") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

Herencia: las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en rboles o enrejados que reflejan un comportamiento comn. Cuando un objeto hereda de ms de una clase se dice que hay herencia mltiple.

Recoleccin de basura: la recoleccin de basura o garbage collector es la tcnica por la cual el entorno de objetos se encarga de destruir automticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignacin o liberacin de memoria, ya que el entorno la asignar al crear un nuevo objeto y la liberar cuando nadie lo est usando. En la mayora de los lenguajes hbridos que se extendieron para soportar el Paradigma de Programacin Orientada a Objetos como C++ u Object Pascal, esta caracterstica no existe y la memoria debe desasignarse manualmente.

12

Ejemplo: Supongamos que se desea disear una aplicacin para controlar a todo el personal que estudia o trabaja en el Instituto Superior Pedaggico conociendo la informacin correspondiente a cada uno de ellos. Trabajadores Docentes Nombre Direccin Nmero de Identidad Sexo Fecha de Ingreso Cargo Salario Departamento Asignatura Trabajadores de Servicio Estudiantes Nombre Direccin Nmero de Identidad Sexo Fecha de Ingreso Cargo Salario rea Nombre Direccin Nmero de Identidad Sexo Ao Especialidad

Tabla #1 Inicialmente podramos pensar en declarar tres clases : TDocente, TServicio y Estudiante; pero si analizamos la informacin observamos que hay propiedades que se repiten en las tres clases como son: Nombre, Direccin, Nmero de Identidad y Sexo por lo que se pudiera declarar una clase Persona que agrupe estas propiedades comunes y as no tener que repetirlas en cada una de las clases por lo que tendramos ahora cuatro clases:

13

Pero an quedan, en las clase TDocente y TServicio propiedades comunes por lo que se pudiera declarar una clase Trabajador con las propiedades Fecha Ingreso, cargo y Salario quedando finalmente cinco clases:

De acuerdo a las clase que hemos concebido podemos decir que un Estudiante es una Persona que tiene un ao y una especialidad; un Trabajador es una Persona que tiene una fecha de ingreso, un cargo y un salario; un Trabajador docente es un Trabajador que tiene un departamento y una asignatura y un Trabajador de servicio es un Trabajador que tiene rea.
14

Los Estudiantes y los Trabajadores forman subconjuntos de las Personas. La clase Persona es la Clase Base de las clases Estudiante y Trabajador por lo que estas clases heredan las propiedades y los mtodos de la clase Persona. De manera similar los Trabajadores Docentes y los Trabajadores de Servicio son subconjuntos de los Trabajadores por lo que la clase Trabajador es Clase Base de las clases TDocente y TServicio y por tanto heredan las propiedades y los mtodos de la clase Trabajador. Luego las cinco clases seran: Clase Persona Propiedades: Nombre Direccin Nmero de Identidad Sexo Mtodos: Entrar Direccin Visualizar Nombre Visualizar Direccin Visualizar Nmero Identidad Visualizar Sexo Tabla #2 Puedes constatar que no hemos definido mtodos para Entrar nombre, Entrar nmero de identidad, ni Entrar sexo porque no tienen sentido; la persona no puede cambiar su nombre, nmero de carn de identidad, ni sexo ella misma. Nuestra persona tiene la posibilidad de cambiar de direccin y de visualizar su nombre, direccin, nmero de identidad y sexo.
15

Clase Trabajador Propiedades y mtodos de la clase Persona Propiedades: Fecha de Ingreso Cargo Salario Mtodos: Entrar Cargo Entrar Salario Visualizar Fecha de Ingreso Visualizar Cargo Visualizar Salario Tabla #3 Nuestro trabajador tiene la posibilidad de cambiar de cargo y de salario y de visualizar su cargo, salario y fecha de ingreso; pero tambin puede cambiar su direccin y visualizar su nombre, direccin, nmero de carn de identidad y sexo porque es a la vez un trabajador y una persona. Clase Estudiante Propiedades y mtodos de la clase Persona Propiedades: Ao Especialidad Mtodos: Entrar Ao Visualizar Ao Visualizar Especialidad

16

Tabla #4 Nuestro estudiante tiene la posibilidad de cambiar de ao y de visualizar el ao que cursa y su especialidad; pero tambin puede cambiar su direccin y visualizar se nombre, direccin, nmero de carn de identidad y sexo porque es a la vez un estudiante y una persona. Clase TDocente Propiedades y mtodos de la clase Trabajador Propiedades: Departamento Asignatura Mtodos: Entrar Departamento Entrar Asignatura Visualizar Departamento Visualizar Asignatura Tabla #5 Nuestro trabajador docente tiene la posibilidad de cambiar de departamento y de asignatura y de visualizar el departamento y la asignatura a la que pertenece; pero tambin puede cambiar su direccin, cargo y salario y visualizar su nombre, direccin, nmero de carn de identidad, sexo y fecha de ingreso porque es a la vez un trabajador docente y un trabajador que es a su vez una persona. Clase TServicio Propiedades y mtodos de la clase Trabajador Propiedades: rea Mtodos: Entrar rea Visualizar rea

17

Tabla #6 Nuestro trabajador de servicio tiene la posibilidad de cambiar de rea y de visualizar el rea donde trabaja; pero tambin puede cambiar su direccin, cargo y salario y visualizar su nombre, direccin, nmero de carn de identidad, sexo y fecha de ingreso porque es a la vez un trabajador de servicio y un trabajador que es a su vez una persona. Los objetos que intervienen en la solucin de este problema son las instancias de las clases TDocente, TServicio y Estudiante que se llenan con datos reales. Por ejemplo: El trabajador docente Juan, que vive en la Calle 5 # 29, con nmero de carn de identidad 57062406503, del sexo masculino, con fecha de ingreso 1/9/94, que ocupa el cargo de profesor, con salario de 620 pesos, perteneciente al departamento de Informtica, y que imparte la asignatura de Programacin. Como ya se dijo, en la programacin orientada a objetos, un programa no es ms que una coleccin de objetos interactuando entre s. Esa interaccin se produce a travs de mensajes. Un mensaje es un pedido al objeto de que ejecute uno de sus mtodos y consta del nombre del objeto y el nombre del mtodo a ejecutar. Un mensaje podra ser "Estudiante dgame su especialidad". Como se explic anteriormente, puede considerarse a un estudiante como una persona y en consecuencia solicitarle los mismos servicios que a una persona por lo que tambin podramos pedirle al estudiante que nos diga su nombre, direccin, carne de identidad y sexo. A esta posibilidad de considerar una instancia de una clase como instancia de la clase base se le conoce con el nombre de polimorfismo.

18

CONCLUSIONES

En Conclusin un proyecto de desarrollo de un Sistema de Informacin comprende varios componentes o pasos llevados a cabo durante la etapa del anlisis. Para entender cmo funciona el paradigma de la programacin orientada a objetos es necesario ver un programa como una coleccin de objetos que interactan entre s envindose mensajes y cambiando su estado durante la ejecucin. Resolver un problema bajo el paradigma de la programacin orientada a objetos implica determinar y caracterizar los diferentes objetos que intervienen en el problema, definir sus propiedades y mtodos y ponerlos a interactuar.

RECOMENDACIONES

Antes de comenzar con el desarrollo de cualquier proyecto, se conduce un estudio de Sistemas para detectar todos los detalles de la situacin actual de la empresa. Verificar peridicamente los nuevos avances tecnolgicos que tengan incidencia sobre los dispositivos de entrada y salida de un ordenador para as lograr actualizar el trabajo y poder informar sobre los nuevos avances al resto de la poblacin.

19

BIBLIOGRAFA

Joyanes Aguilar, Luis, "Programacin orientada a objetos", Madrid Osborne/ McGraw-Hill cop. 1998

Deitel y Deitel. "Como programar en Java", Mxico, PRENTICE-HALL. Quinta edicin 2004.

Froufe Quintas, Agustn., "Java 2 manual de usuario y tutorial", Madrid Ra-Ma 2000

20

Das könnte Ihnen auch gefallen