lunes, 1 de mayo de 2017

PROGRAMACIÓN ORIENTADA A OBJETIVO

ESTA  PAGINA ES DE MI TRABAJO
https://es.slideshare.net/SILVA19_PAMELA/laboratorio-de-programacin-i
“AÑO INTERNACIONAL DEL TURISMO  SOSTENIBLE PARA EL DESARROLLO”
                                                                                       TEMA: PROGRAMACIÓN ORIENTADA A OBJETO

CURSO: LABORATORIO DE PROGRAMACIÓN I

ESPECIALIDAD: INGENIERÍA DE SISTEMAS Y TELEMATICA.

NOMBRE: GILDA  PAMELA

APELLIDO: SILVA  flores

 DOCENTE: MARCO AURELIO  PORRO  CHULLI

 CILCO: IV – A                                   AULA: 501
             BAGUA GRANDE– PERÚ
2017
                   PROGRAMACIÓN  ORIENTADA A OBJETOS
1._ CONTENIDO
·         DEFINICIÓN
La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial. Muchos de los objetos pre-diseñados de los lenguajes de programación actuales permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al usuario la creación de sus propias bibliotecas. Está basada en varias técnicas,incluyendo herenciacohesiónabstracciónpolimorfismoacoplamiento y encapsulamiento.Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

·         CONCEPTO BASÍCOS (CLASES, METODO, HERENCIA, SOBRECARGA, EVENTO, ATRIBUTOS, MESAJES, ETC.)
v  Un objeto es una encapsulación abstracta de información, junto con los métodos o procedimientos para manipularla. Un objeto contiene operaciones que definen su comportamiento y variables que definen su estado entre las llamadas a las operaciones.
v  Una clase equivale a la generalización o abstracción de un tipo específico de objetos.
v  Un mensaje representa una acción a tomar por un determinado objeto.
v  Una instancia es la concreción de una clase.
v  Un método consiste en la implementación en una clase de un protocolo de respuesta a los mensajes dirigidos a los objetos de la misma. La respuesta a tales mensajes puede incluir el envío por el método de mensajes al propio objeto y aun a otros, también como el cambio del estado interno del objeto.

©      Clase
Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella.


©      Método

Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

ü  Evento
Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto; es decir, la acción que genera.
ü  Atributos
Características que tiene la clase.

ü  Mensaje
Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros 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 características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

ü  Estado interno
Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método 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 métodos.

ü  Identificación de un objeto
Un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.


©      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 métodos y variables públicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. En el caso de los componentes registrados como "protegidos" (protected) también se heredan, pero solo para esa clase, no para futuras clases heredadas. Esto es así para mantener hegemónico el ideal de POO.

©       SOBRECARGA
Para otros usos de este término, véase Sobrecarga (desambiguación).
Sobrecarga es la capacidad de un lenguaje de programación, que permite nombrar con el mismo identificador diferentes variables u operaciones.
En programación orientada a objetos la sobrecarga se refiere a la posibilidad de tener dos o más funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o más funciones con el mismo nombre realizan acciones diferentes. El compilador usará una u otra dependiendo de los parámetros usados. A esto se llama también sobrecarga de funciones.
También existe la sobrecarga de operadores que al igual que con la sobrecarga de funciones se le da más de una implementación a un operador.
El mismo método dentro de una clase permite hacer cosas distintas en función de los parámetros.
Java no permite al programador implementar sus propios operadores sobrecargados, pero sí utilizar los predefinidos como el +. C++, por el contrario si permite hacerlo.

©      EVENTO
Los eventos son el medio como interactúa una clase con otras o con el propio usuario, se encargan de avisar que algo ha ocurrido y de manejarlo de una forma o de otra. Cada vez que escribimos con nuestro teclado, que hacemos click en un botón o un link, que cambiamos el tamaño de un objeto, estamos generando eventos. Es por ello que, cuando programamos, debemos tener en cuenta la posibilidad (no siempre necesaria, pero lo será a medida que generemos clases cada vez más complejas), tanto de manejar eventos que sólo implican a nuestra clase como de generar nuestros propios eventos, de modo que los usuarios de nuestras clases (en principio nosotros mismos) puedan decidir cómo reaccionará su código ante ellos.
El modo de manejar los eventos en P.O.O. se conoce como emisor/receptor, también llamado despachador/escuchador o simplemente dispatcher/listener.
En esta dupla, la primera parte (el emisor) se encargará de lanzar el evento, mientras la segunda se encargará de recibirlo y gestionarlo como sea necesario. La primera parte será responsabilidad nuestra (los programadores de la clase) y la segunda es responsabilidad de quien utiliza la clase (en principio, también nosotros).
Cada lenguaje tiene su propio manejador de eventos, que es el que nos permite, tanto lanzar los eventos como crear los receptores (escuchadores/listeners) que nos permitirán manejarlos. Realmente es una aplicación del patrón Observer, del que hablaremos más adelante, cuando hablemos de patrones, pero que necesariamente tocaremos en este post.
©      ATRIBUTO
Atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos 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 podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una "programación estructurada camuflada" en un lenguaje de poo.

©      MENSAJES
Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

·         CARACTERISTICAS (ASTRACCIÓN, ENCAPSULAMIENTO, HERENCIAS, POLIMORFISMO, MODULARIDAD, ETC.)

Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características siguientes son las más importantes:
©      Abstracción
Denota las características 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 "cómo" se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño 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 todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión (diseño estructurado) de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

©      Herencia
Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. 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 común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple; siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia virtual para evitar la duplicación de datos.

©      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 invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
©      Modularidad
Se denomina "modularidad" a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.
·      POO EN VISUAL BASIC
Los objetos son el elemento central de la programación en Visual Basic. Los formularios y controles son objetos. Las bases de datos son objetos. Si ha usado Visual Basic durante algún tiempo, o si ha trabajado con los ejemplos de la documentación, ya ha programado con objetos, pero hay mucho más en lo que se refiere a objetos de lo que ha visto hasta aquí.
En los siguientes temas, verá lo fácil que resulta crear objetos propios a partir de las clases que defina, así como utilizar objetos para simplificar la creación de código y aumentar su reutilización.

·         Clases y objetos
Las palabras "clase" y "objeto" se usan con tanta frecuencia en la programación orientada a objetos que es fácil confundir los términos. En general, una class es una representación abstracta de algo, mientras que un objeto es un ejemplo utilizable de lo que representa la clase. La única excepción a esta regla la constituyen los miembros de clases compartidas, que pueden utilizarse en instancias de una clase y en variables de objeto declaradas como tipo de la clase.
·         Campos, propiedades, métodos y eventos
Las clases se componen de campos, propiedades, métodos y eventos. Los campos y propiedades representan información que contiene un objeto. Los campos se parecen a las variables ya que se pueden leer y establecer directamente. Por ejemplo, si tiene un objeto denominado "Car", podría almacenar su color en un campo denominado "Color".
Las propiedades se recuperan y establecen como los campos, pero se implementan mediante los procedimientos propiedad Get y Set, que proporcionan más control sobre la forma en que los valores se establecen o se devuelven. El nivel de direccionamiento indirecto entre el valor que se va a almacenar y los procedimientos que lo usan ayuda a aislar los datos y permite validar valores antes de asignarlos o recuperarlos.
Los métodos representan acciones que un objeto puede realizar. Por ejemplo, un objeto "Car" podría tener los métodos "StartEngine", "Drive" y "Stop". Los métodos se definen agregando procedimientos, ya sean rutinas o funciones Sub, a la clase.
Los eventos son notificaciones que un objeto recibe de, o transmite a, otros objetos o aplicaciones. Los eventos permiten a los objetos realizar acciones siempre que se produce un acontecimiento específico. Un ejemplo de evento para la clase "Car" sería un evento "Check_Engine". Puesto que Microsoft Windows es un sistema controlado por eventos, éstos pueden proceder de otros objetos, aplicaciones o entradas de usuario realizadas al hacer clic con el mouse (ratón) o al presionar teclas.
·         Encapsulación, herencia y polimorfismo
Los campos, propiedades, métodos y eventos son solamente la mitad de la ecuación de la programación orientada a objetos. Para que la programación orientada a objetos sea auténtica los objetos deben admitir tres cualidades: encapsulación, herencia y polimorfismo.
La encapsulación significa que un grupo de propiedades, métodos y otros miembros relacionados se tratan como si de una sola unidad u objeto se tratase. Los objetos pueden controlar cómo se cambian propiedades o se ejecutan métodos. Por ejemplo, un objeto puede validar valores antes de permitir cambios en la propiedad. La encapsulación, además, facilita la posibilidad de realizar cambios en la implementación pasado algún tiempo, mediante una actividad denominada ocultación de datos que permite ocultar los detalles de implementación de los objetos.
Herencia describe la posibilidad de crear nuevas clases basadas en una clase existente. La nueva clase hereda todas las propiedades, métodos y eventos de la clase base, y puede personalizarse con propiedades y métodos adicionales. Por ejemplo, puede crear una nueva clase denominada "Truck" basada en la clase "Car". La clase "Truck" hereda la propiedad "Color" de la clase "Car" y puede tener propiedades adicionales como "FourWheelDrive".
Polimorfismo significa que puede tener múltiples clases que se pueden utilizar de forma intercambiable, si bien cada clase implementa las mismas propiedades o los mismos métodos de maneras diferentes. El polimorfismo es importante en la programación orientada a objetos puesto que permite usar elementos que tienen el mismo nombre, independientemente del tipo de objeto que se esté utilizando en ese momento. Por ejemplo, dada una clase base "Car", el polimorfismo permite al programador definir diferentes métodos "StartEngine" para cualquier número de clases derivadas. El método "StartEngine" de una clase derivada denominada "DieselCar" puede ser totalmente diferente del método con el mismo nombre en la clase base. Otros procedimientos o métodos pueden usar el método "StartEngine" de las clases derivadas de la misma forma, con independencia del tipo de objeto "Car" que se esté utilizando en ese momento.
·         Sobrecarga, reemplazo y sombreado
La sobrecarga, el reemplazo y el sombreado son conceptos similares que pueden confundirse fácilmente. Aunque las tres técnicas permiten crear miembros con el mismo nombre, existen algunas diferencias importantes.
Los miembros sobrecargados se utilizan para proporcionar diferentes versiones de una propiedad o método que tienen el mismo nombre, pero que aceptan un número diferente de parámetros, o parámetros con diferentes tipos de datos.
Las propiedades y métodos reemplazados se utilizan para reemplazar una propiedad o método heredados que no son apropiados en una clase derivada. Los miembros reemplazados deben aceptar el mismo tipo de datos y número de argumentos. Las clases derivadas heredan los miembros reemplazados.
Los miembros sombreados se utilizan para reemplazar localmente un miembro que tiene un ámbito más amplio. Cualquier tipo puede sombrear cualquier otro tipo. Por ejemplo, puede declarar un propiedad que sombree un método heredado con el mismo nombre. Los miembros sombreados no se pueden heredar.
2._ RESUMEN
La POO es un paradigma surgido en los años 1970, que utiliza objetos como elementos fundamentales en la construcción de la solución. Un objeto es una abstracción de algún hecho o ente del mundo real, con atributos que representan sus características o propiedades, y métodos que emulan su comportamiento o actividad. Todas las propiedades y métodos comunes a los objetos se encapsulan o agrupan en clases. Una clase es una plantilla, un prototipo para crear objetos; en general, se dice que cada objeto es una instancia o ejemplar de una clase.
Algunos lenguajes orientados a objetos.
Simula (1967) es aceptado como el primer lenguaje que posee las características principales de un lenguaje orientado a objetos. Fue creado para hacer programas de simulación, en donde los "objetos" son la representación de la información más importante.
Smalltalk (1972 a 1980) es posiblemente el ejemplo canónico, y con el que gran parte de la teoría de la programación orientada a objetos se ha desarrollado.
Entre los lenguajes orientados a objetos se destacan los siguientes:
Muchos de estos lenguajes de programación no son puramente orientados a objetos, sino que son híbridos que combinan la POO con otros paradigmas.
Al igual que C++, otros lenguajes, como OOCOBOL, OOLisp, OOProlog y Object REXX, han sido creados añadiendo extensiones orientadas a objetos a un lenguaje de programación clásico.
Un nuevo paso en la abstracción de paradigmas de programación es la Programación Orientada a Aspectos (POA). Aunque es todavía una metodología en estado de maduración, cada vez atrae a más investigadores e incluso proyectos comerciales en todo el mundo.
Véase también:
 3._SUMMARY
The OOP is a paradigm that emerged in the 1970s, which uses objects as fundamental elements in the construction of the solution. An object is an abstraction of some fact or entity of the real world, with attributes that represent its characteristics or properties, and methods that emulate its behavior or activity. All properties and methods common to objects are encapsulated or grouped into classes. A class is a template, a prototype for creating objects; In general, each object is said to be an instance or instance of a class.
Some object-oriented languages.
Simula (1967) is accepted as the first language that has the main characteristics of an object-oriented language. It was created to make simulation programs, where "objects" represent the most important information.
Smalltalk (1972 to 1980) is possibly the canonical example, and with which much of the theory of object-oriented programming has been developed.
Among the object-oriented languages ​​are the following:
Many of these programming languages ​​are not purely object oriented; they are hybrids that combine OOP with other paradigms.
Like C ++, other languages, such as OOCOBOL, OOLisp, OOProlog and Object REXX, have been created by adding object-oriented extensions to a classical programming language.
A new step in the abstraction of programming paradigms is Aspect Oriented Programming (POA). Although it is still a maturing methodology, it is attracting more researchers and even commercial projects around the world.
See also:
• Object-oriented database
• Component-based software engineering.
4._RECOMENDACIONES
Elegir el entorno de Programación depende principalmente del tipo de aplicación a desarrollar.
•         Si la aplicación involucra operaciones con  base de datos, interfaces web u otras tareas de negocio, la opción ideal es Visual Basic.
•         Si tu aplicación demanda algoritmos rápidos y un diseño natural lógico, a la vez de un mantenimiento de una GUI de primera categoría, entonces el enfoque Visual Basic/COM debería ser aplicado.
•         Si usted es el programador que quiere todo bajo control entonces el enfoque API es la elección.
•         El programador debe darse cuenta que, sin embargo, todo se codifica a mano y puede llevarse más tiempo escribirla que una solución diseñada en el enfoque VB o VB/COM.
5._CONCLUSIONES
La programación orientada a objetos permite la optimización del código generado gracias a que mediante técnicas de herencia, atributos estáticos entre otros permiten, que el código sea genérico de manera que sea reutilizable.
 Mediante la técnica aprendida en el presente curso podemos establecer una solución primitiva de un problema real, tan solo con relacionarlo con objetos lógicos que serán usados para el desarrollo del software.
Podemos dar a conocer de una forma sencilla los mecanismos que se usan en este nivel de programación, a personas que deseen una explicación rápida y sencilla de lo que es la programación orientada a objetos.
Tenemos los conocimientos necesarios como para enfrentar un problema real y desarrollo en otro lenguaje de programación, pues concedimos la idea de que el lenguaje C es la base de la programación.
Al trabajar con la programación orientada a objetos sea esta desarrollada en otras plataformas de programación o en lenguaje C, sabemos las formas de lograr un mejor rendimiento del equipo a controlar y aplicar soluciones sencillas, de manera que sea fácilmente digeribles para el usuario y/o destinatario del trabajo final.

6._APRECIACIÓN EL EQUIPO
Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos problemas. Para conseguir que los esfuerzos de los programadores puedan ser utilizados por otras personas se creó la POO. Que es una serie de normas de realizar las cosas de manera que otras personas puedan utilizarlas y adelantar su trabajo, de manera que consigamos que el código se pueda reutilizar.
La POO no es difícil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede ser diferente según el programador. Aunque podamos hacer los programas de formas distintas, no todas ellas son correctas, lo difícil no es programar orientado a objetos sino programar bien. Programar bien es importante porque así nos podemos aprovechar de todas las ventajas de la POO.



7._GLOSARIO DE TÉRMINOS
  • *      POA: Programación Orientada a Aspectos.
  • *      ABSTRACTION: La abstracción de métodos se define separando el uso de un método sin conocer como está implementado ese método.
  • *      Acoplamiento: Medida del grado en el que un objeto o componente depende de otro.

8._BIBLIOGRAFIA O LINKOGRAFÍA
  • http://www.forosdelweb.com/f68/conceptos-para-aprender-programacion-orientada-objeto-php-1101321/
  • https://poogg.jimdo.com/conclusiones/
  • https://sophia.javeriana.edu.co/~acarrillo/POO/Material/CursoPOOConceptosOO-

parteI.pdf
  • https://algonzalezpoo.wordpress.com/herencia/

1 comentario:

  1. Agregar IMAGENES y VIDEOS sobrev el TEMA. Planear debidamente las RECOMENDACIONES y CONCLUSIONES. Definir al menos 10 términos en su glosario. Gracias por su aporte. Saludos

    ResponderEliminar