Caracteristicas De Analisis Orientado A Objetos

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Caracteristicas De Analisis Orientado A Objetos as PDF for free.

More details

  • Words: 2,051
  • Pages: 7
3 CARACTERISTICAS DE OBJETOS ORIENTADOS A OBJETOS

LA ABSTRACCIÓN Significa extraer las propiedades esenciales de un objeto que lo distinguen de los demás tipos de Objetos y proporciona fronteras conceptuales definidas respecto al punto de vista del observador. Es la capacidad para encapsular y aislar la información de diseño y ejecución. La abstracción es uno de los medios más importantes, mediante el cual nos enfrentamos con la complejidad inherente al software. La abstracción es la propiedad que permite representar las características esenciales de un objeto, sin preocuparse de las restantes características (no esenciales). Abstracción es la técnica de quitarle a una idea o a un objeto todos los acompañamientos innecesarios hasta que los deja en una forma esencial y mínima. Una buena abstracción elimina todos los detalles poco importantes y le permite enfocarse y concentrarse en los detalles importantes. Una abstracción se centra en la vista externa de un objeto, de modo que sirva para separar el comportamiento esencial de un objeto de su implementación. Definir una abstracción significa describir una entidad del mundo real, no importa lo compleja que pueda ser y, a continuación, utilizar esta descripción en un programa.

http://www.mitecnologico.com/Main/AbstraccionObjetos La abstracción, una de las herramientas que más nos ayuda a la hora de solucionar un problema, es un mecanismo fundamental para la comprensión de problemas y fenómenos que poseen una gran cantidad de detalles, su idea principal consiste en manejar un problema, fenómeno, objeto, tema o idea como un concepto general, sin considerar la gran cantidad de detalles que estos puedan tener. El proceso de abstracción presenta dos aspectos complementarios. 1. Destacar los aspectos relevantes del objeto. 2. Ignorar los aspectos irrelevantes del mismo (la irrelevancia depende del nivel de abstracción, ya que si se pasa a niveles más concretos, es posible que ciertos aspectos pasen a ser relevantes). De modo general podemos decir que la abstracción permite establecer un nivel jerárquico en el estudio de los fenómenos, el cual se establece por niveles sucesivos de detalles. Generalmente, se sigue un sentido descendente de detalles, desde los niveles más generales a los niveles más concretos. Por ejemplo: los lenguajes de programación de alto nivel permiten al programador abstraerse del sin fin de detalles de los lenguajes ensambladores. Otro ejemplo, la memoria de la computadora es una estructura unidimensional formada por celdas y sin embargo trabajamos como si fuera única. La abstracción nos brinda la posibilidad de ir definiendo una serie de refinamientos sucesivos a nuestro TDA y entiéndase bien que cuando decimos refinamientos sucesivos nos estamos refiriendo a la estrategia que se utiliza para descomponer un problema en subproblemas. Conforme evoluciona el diseño de software a cada nivel de módulos se representa un refinamiento en el nivel de abstracción. Esto es, incluir detalles que fueron obviados en un nivel superior, en un nivel más bajo de la jerarquía. Veamos los diferentes tipos de abstracción que podemos encontrar en un programa:

1. Abstracción funcional: crear procedimientos y funciones e invocarlos mediante un nombre donde se destaca qué hace la función y se ignora cómo lo hace. El usuario sólo necesita conocer la especificación de la abstracción (el qué) y puede ignorar el resto de los detalles (el cómo). 2. Abstracción de datos: •

Tipo de datos: proporcionado por los leguajes de alto nivel. La representación usada es invisible al programador, al cual solo se le permite ver las operaciones predefinidas para cada tipo.



Tipos definidos: por el programador que posibilitan la definición de valores de datos más cercanos al problema que se pretende resolver.



TDA: para la definición y representación de tipos de datos (valores + operaciones), junto con sus propiedades.



Objetos: Son TDA a los que se añade propiedades de reutilización y de compartición de código.

HTTP://ES.WIKIPEDIA.ORG/WIKI/TIPO_DE_DATO_ABSTRACTOHERENCIA 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. HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/

HERENCIA La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se denomina subclases) proviene del hecho de que la subclase (la nueva clase creada) contiene las atributos y métodos de la clase primaria. La principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la subclase, que luego se aplican a los atributos y métodos heredados. Esta particularidad permite crear una estructura jerárquica de clases cada vez más especializada. La gran ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase existente. Como resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que puede especializarse a voluntad (la compañía que vende estas clases tiende a proteger las datos miembro usando la encapsulación). HTTP://ES.KIOSKEA.NET/CONTENTS/POO/HERITAGE.PHP3

el propósito principal de la herencia es el de organizar mejor las clases que componen una determinada realidad, y poder agruparlas en función de atributos y comportamientos comunes a la vez que cada una se especializa según sus particularidades. Cabe aclarar además que hay dos tipos de herencias: –

herencia simple: una clase derivada puede heredar sólo de una clase base (los lenguajes .net soportan este tipo de herencia)



herencia múltiple: una clase derivada puede heredar de una o más clases base (c++ es un ejemplo de lenguaje que soporta este tipo de herencia).

HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/

ENCAPSULAMIENTO El concepto de encapsulación La encapsulación es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.

Ocultación de datos El usuario de una clase en particular no necesita saber cómo están estructurados los datos dentro de ese objeto, es decir, un usuario no necesita conocer la implementación Al evitar que el usuario modifique los atributos directamente y forzándolo a utilizar funciones definidas para modificarlos (llamadas interfaces), se garantiza la integridad de los datos (por ejemplo, uno puede asegurarse de que el tipo de datos suministrados cumple con nuestras expectativas bien que los se encuentran dentro del periodo de tiempo esperado). La encapsulación define los niveles de acceso para elementos de esa clase. Estos niveles de acceso definen los derechos de acceso para los datos, permitiéndonos el acceso a datos a través de un método de esa clase en particular, desde una clase heredada o incluso desde cualquier otra clase. Existen tres niveles de acceso: •

público: funciones de toda clase pueden acceder a los datos o métodos de una clase que se define con el nivel de acceso público. Este es el nivel de protección de datos más bajo



protegido: el acceso a los datos está restringido a las funciones de clases heredadas, es decir, las funciones miembro de esa clase y todas las subclases



privado: el acceso a los datos está restringido a los métodos de esa clase en particular. Este es nivel más alto de protección de datos HTTP://ES.KIOSKEA.NET/CONTENTS/POO/ENCAPSUL.PHP3 Otro de los pilares de la orientación a objetos es el encapsulamiento. para entender este principio veamos un ejemplo práctico: Como todos ustedes se imaginarán, no es necesario ser mecánico de automóviles para poder manejar uno. Si el comprender cómo es el funcionamiento interno del motor, la dirección, los frenos, los cilindros, etc. fuera requisito para poder manejar un automóvil, serían muchos menos los conductores certificados y sería mucho más difícil aprender a manejar. es más, si a cualquier automotriz se le ocurriera cambiar el funcionamiento interno de alguna de estas cosas, probablemente todos los conductores tendrían que volver a aprender cómo funciona el nuevo componente interno para poder seguir manejando sin problemas. Por suerte esto no es así, ya que la complejidad interna del funcionamiento de un automóvil está escondida de los conductores (usuarios). Para poder interactuar con el automóvil, éste nos expone una interfaz sencilla y definida, que no cambia nunca por más que cambien internamente el funcionamiento de sus componentes. Esta interfaz está compuesta por el volante, los pedales, la palanca de cambios, el asiento, etc. de esta forma decimos que el automóvil ha encapsulado su complejidad interna. HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/

POLIMORFISMO Definición de polimorfismo La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes. Este es uno de los conceptos esenciales de una programación orientada a objetos. Así como la herencia está relacionada con las clases y su jerarquía, el polimorfismo se relaciona con los métodos HTTP://ES.KIOSKEA.NET/CONTENTS/POO/POLYMORP.PHP3 Es la propiedad que tienen los objetos de permitir invocar genéricamente un comportamiento (método) cuya implementación será delegada al objeto correspondiente recién en tiempo de ejecución El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es así POLIMORFISMO – EJEMPLO • • •

LA DEFINICIÓN DEL MÉTODO RESIDE EN LA CLASE BASE LA IMPLEMENTACIÓN DEL MÉTODO RESIDE EN LA CLASE DERIVADA LA INVOCACIÓN ES RESUELTA AL MOMENTO DE EJECUCIÓN

HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/

RELACIONES Todo sistema abarca muchas clases y objetos Los objetos contribuyen en el comportamiento de un sistema colaborando entre si  la colaboración se logra a través de las relaciones Existen dos tipos principales de relaciones  asociación  agregación RELACIONES DE ASOCIACIÓN Una asociación es una conexión entre dos clases que representa una comunicación  una asociación puede tener nombre  la comunicación puede ser tanto uní como bi-direccional (por defecto)  la multiplicidad es el número de instancias que participan en una asociación Ejemplo:  una persona es dueña de un vehículo  un vehículo pertenece a una persona

Persona

-dueño

Vehiculo

RELACIONES DE AGREGACIÓN La agregación es una forma especial de asociación donde un todo se relaciona con sus partes  también se conoce como “una parte de” o una relación de contención Ejemplo:  una puerta es una parte de un vehículo  el vehículo es azul, la puerta es azul  mover el vehículo implica mover la puerta

Vehiculo

Puerta

-color +Mover()

HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/ MULTIPLICIDAD Limita el número de objetos relacionados, los diagramas de objetos lo indican mediante símbolos al final de la línea de asociación, subestimar la multiplicidad puede evitar la flexibilidad de una aplicación, una subestimación de la misma impone gastos adicionales extraordinarios.

Http://Www.Monografias.Com/Trabajos5/Softobj/Softobj.Shtml

CLASES La forma más sencilla de entender el concepto de clase es si la vemos como una agrupación de objetos con características similares. Por ejemplo, un auto ES UN tipo particular de vehículo motorizado, con lo cual dentro de su comportamiento podemos encontrar “arrancar” y “frenar”, entre otros. Ahora bien, una motocicleta también ES UN vehículo motorizado, y tiene dentro de su comportamiento “arrancar” y “frenar”. El conjunto de atributos también es compartido entre una motocicleta y un automóvil, aunque sus valores no coincidan necesariamente. Por ejemplo, ambos tienen el atributo “cantidad de ruedas”, sólo que el auto tiene 4 y la motocicleta 2. HTTP://WWW.MSLATAM.COM/LATAM/MSDN/COMUNIDAD/DCE2005/

El concepto de clases Una clase es la estructura de un objeto, es decir, la definición de todos los elementos de que está hecho un objeto. Un objeto es, por lo tanto, el "resultado" de una clase. En realidad, un objeto es una instancia de una clase, por lo que se pueden intercambiar los términos objeto o instancia (o incluso evento). Una clase se compone de dos partes:



Atributos (denominados, por lo general, datos miembros): esto es, los datos que se refieren



al estado del objeto Métodos (denominados, por lo general, funciones miembros): son funciones que pueden aplicarse a objetos

Si tenemos una clase llamada auto, los objetos Peugeot y Renault serán instancias de esa clase. También puede haber otros objetos Peugeot 406, diferenciados por su número de modelo. Asimismo, dos instancias de una clase pueden tener los mismos atributos, pero considerarse objetos distintos independientes. En un contexto real: dos camisas pueden ser idénticas, pero no obstante, también ser diferentes de alguna manera. Sin embargo, si las mezclamos es imposible distinguir una de la otra.

Http://Es.Kioskea.Net/Contents/Poo/Classe-Instance.Php3

Relación de composición La composiciónpermite expresar una relación de tipo “esta compuesto por” •

Por ejemplo , un segmento está compuesto por dos puntos: origen y extremo

Related Documents