Vous êtes sur la page 1sur 18

METODOLOGÍA

ORIENTADA A OBJETOS

2019
INTEGRANTES:
GONZALES BOCANEGRA, José David
U N I V E R D A D N A C I O N A L
ROMERO OLIVERA, José Luis P E D R O R U I Z G A L L O
E P I C IPágina -1-
1. Introducción

Una metodología Orientada a Objetos es un proceso para producir software de una


manera organizada, usando convenciones y técnicas de notación predefinidas. Desde
que la comunidad de programación orientada a objetos tuvo la noción de incorporar el
pensamiento de que los objetos son entidades coherentes con identidad, estado y
conducta, estos objetos pueden ser organizados por sus similitudes y sus diferencias,
puestas en uso en herencia y polimorfismo, las metodologías orientadas a objetos
incorporan estos conceptos para definir sus reglas, normas, procedimientos, guías y
notaciones para alcanzar un producto de calidad que satisfaga las necesidades del
cliente.

En este documento veremos brevemente los conceptos básicos de la Metodología


Orientada a Objetos desde un punto de vista global para poder entender su “Filosofía”.

Página -2-
2. Índice

1. Introducción .............................................................................................................. 2

2. Índice ......................................................................................................................... 3

3. Historia ...................................................................................................................... 4

4. Definiciones Previas .................................................................................................. 5

4.1 Objeto ...................................................................................................................... 5

4.2 Clase ........................................................................................................................ 5

5. Paradigma Objetual ................................................................................................... 7

6. Características de los Lenguajes Orientados a Objetos ............................................. 8

6.1. Encapsulación .................................................................................................... 8

6.2. Herencia ............................................................................................................. 8

6.3. Paso de Mensajes ............................................................................................... 8

6.4. Enlace Dinámico ................................................................................................ 8

6.5. Polimorfismo ..................................................................................................... 9

7. Ventajas ................................................................................................................... 10

8. Ejemplos .................................................................................................................. 13

8.1. Comprendamos el punto de vista MOO .......................................................... 13

8.2. Aplicamos el ejemplo en lenguaje de programación Java ............................... 15

9. Conclusiones ........................................................................................................... 16

10. Mapa Mental ........................................................................................................ 17

11. Referencias .......................................................................................................... 18

Página -3-
3. Historia

En los Sistemas Orientados a Objetos tradicionalmente, primero, se hablaba sólo del


tema de Programación y posteriormente fueron tomando importancia los de Análisis y
Diseño.

La Programación orientada a objetos (POO) comienza en 1967 con Simula'67, y


continua en los 70's con el desarrollo de SmallTalk.

La clave del comienzo de la POO la tuvo el hecho de querer simular modelos de la


realidad, lo cual era, y es, bastante complicado utilizando lenguajes típicos de 3ª
generación, básicamente porque no permite un fácil y buen modelado de los objetos del
mundo real, así como de la manera de interactuar entre ellos.

En POO los mensajes reemplazan al concepto típico de función, y constituyen el


diálogo entre objetos, lo que, a fin de cuentas, es la ejecución de un programa.

Los mensajes constituyen la comunicación entre los objetos y el término Orientado a


Objetos (OO) lo introdujo SmallTalk, el cual estaba influido por Simula y el trabajo de
tesis doctoral de Alan Kay (máquina Flex). En Xerox esta máquina se llamó DynaBLos
métodos de una clase determinan el comportamiento o conducta que requiere esa clase
para que sus instancias puedan cambiar su estado interno o cuando dichas instancias son
llamadas para realizar algo por otra clase o instancia. El comportamiento es la única
manera en que las instancias pueden hacerse algo a sí mismas o tener que hacerles algo.
Los atributos se encuentran en la parte interna mientras que los métodos se encuentran
en la parte externa del objeto y estaba influida por los conceptos de clase y herencia de
Simula además de por determinadas características del lenguaje funcional Lisp.

Los primeros Lenguajes orientados a objeto (LOO) se caracterizan por tener el


problema típico de la eficiencia, es por eso, que muchos de los LOO de hoy en día son
evoluciones Orientadas a Objetos de lenguajes de tercera generación, p.e.: Object-
Pascal, Objetive-C, C-Talk, C++, Turbo-Pascal, etc., o simplemente nuevos lenguajes,
pero muy parecidos a los "normales" de 3ª generación.

Es interesante destacar, que conforme pasa el tiempo, y más se asienta el uso de la


POO el foco de atención sobre temas relacionados con lo "Orientado a Objetos" se ha
ido trasladando del concepto de Programación a los de Diseño (DOO) y a los de
Análisis (AOO). (Gómez Ortega, 1999, pág. 104)

Página -4-
4. Definiciones Previas

4.1 Objeto

El uso de objetos en la programación está relacionado con el hecho de que el


mundo está constituido de objetos que interactúan entre sí, todo aquello que está
en la naturaleza es un objeto y cada uno está formado de otros objetos más
pequeños; pero ¿cómo definir un objeto? Un objeto es un sustantivo en singular,
si se recuerda que un sustantivo es aquello que existe: una persona, animal,
planta o cosa, entonces todo lo que se incluye en esta definición es un objeto.
(Universidad Técnica del Norte)

4.2 Clase

Consiste en la descripción de uno o más objetos del mundo real en base a una
serie de atributos y servicios.

A estos atributos se les llama también variables de instancia, mientras que a


los servicios se les llama métodos.

Se puede decir que representa al conjunto de objetos que comparten una


estructura y comportamiento comunes. (Gómez Ortega, 1999, pág. 105)

Dado que pueden existir varios objetos del mismo tipo, con las mismas
características y funcionalidades, se crean las clases, que representan los
modelos ideales de un objeto, una plantilla a partir de la cual se pueden crear
objetos que compartan esas características y funcionalidades; así, tomando en
cuenta algunos de los ejemplos de objetos mencionados anteriormente, algunas
clases serían: Clase Transacción, Clase Rectángulo, Clase Persona, Clase
Factura; esto significa que cada vez que se requiera una transacción se creará un
objeto basado en la plantilla Transacción; cuando se requiera un objeto
rectángulo se creará a partir de la plantilla Rectángulo; y así con cada uno de los
objetos, siempre que se requiera un objeto de un tipo específico con unas
características y funcionalidades se deberá crear una plantilla (clase) que será el
modelo para todos los objetos de ese tipo. Luego cada objeto será
personalizado, al recibir valores para cada uno de los atributos especificados en
su plantilla. (Universidad Técnica del Norte)

Página -5-
4.3 Atributos

Los atributos son las características individuales que diferencias a un


objeto de otro y determinan su apariencia, estado u otras cualidades. (Franco
García, 2000)

Los atributos son las características individuales que diferencian a un


objeto de otro (ambos de la misma clase) y determinan la apariencia, estado
u otras cualidades de ese objeto. Los atributos de un objeto incluyen
información sobre su estado. (Román Zamitiz)

4.4 Métodos

Los métodos de una clase determinan el comportamiento o conducta que


requiere esa clase para que sus instancias puedan cambiar su estado interno
o cuando dichas instancias son llamadas para realizar algo por otra clase o
instancia. El comportamiento es la única manera en que las instancias
pueden hacerse algo a sí mismas o tener que hacerles algo. Los atributos se
encuentran en la parte interna mientras que los métodos se encuentran en la
parte externa del objeto. (Román Zamitiz)

Página -6-
5. Paradigma Objetual

El paradigma objetual Orientado a Objetos (OO) se ha convertido en un sinónimo de


algo bueno, moderno, etc., se aplica a múltiples cosas hoy en día, entre ellas a la que a
nosotros nos interesa.

Los beneficios prometidos por la OO son básicamente dos:

 Reusabilidad: Los nuevos sistemas OO pueden ser creados utilizando otros


Sistemas Orientados a Objetos ya existentes.
 Extensibilidad: Los nuevos Sistemas Orientados a Objetos así obtenidos son
fácilmente ampliables sin tener que retocar los módulos, empleados en su
construcción. El término OO debe entenderse como algo general, y que está
íntimamente ligado a las etapas de Análisis y Diseño.

Página -7-
6. Características de los Lenguajes Orientados a Objetos

6.1.Encapsulación

Normalmente, se admite como encapsulación a la posibilidad de agrupar bajo


una misma entidad los datos y las funciones, o métodos, que trabajan con esos
datos. Aunque otros autores llaman a esto abstracción. (Gómez Ortega, 1999,
pág. 106)

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. (CCM, 2017)

6.2.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 subclase) 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. (CCM, 2017)

6.3.Paso de Mensajes

En orientación al objeto, el cómputo de un sistema evoluciona conforme a


mensajes. Los objetos de un sistema manipulan otros objetos enviándoles
mensajes solicitando que realicen acciones específicas. Estos mensajes invocan a
funciones miembro apropiadas de las clases de objetos. Si una función miembro
deseada no se encuentra en la clase inmediata al objeto, entonces se buscan las
funciones miembro en la clase base de ese objeto, y así sucesivamente.
(galeon.com)

6.4.Enlace Dinámico

El enlace dinámico es un mecanismo por el cual se escoge, en tiempo de


ejecución, el método que responderá a un determinado mensaje. Es útil cuando

Página -8-
este no puede ser determinado de forma estática, es decir, en tiempo de
compilación.

Esta característica de la programación orientada a objetos permite definir varias


implementaciones usando la misma interfaz, por tanto, el enlace Dinámico
constituye un tipo de polimorfismo. (Wikipedia, 2019)

6.5.Polimorfismo

El término proviene del griego polimorphos (poly = muchas, morphos =


formas).

En lenguaje de programación el término se aplica a:

Objetos: Objetos polimórficos, vistos estos como variables o como argumentos


de funciones, los cuales pueden contener valores de distinto tipo a lo largo de la
ejecución de un programa. (Gómez Ortega, 1999, pág. 109)

Página -9-
7. Ventajas

 Reutilización. Las clases están diseñadas para que se reutilicen en muchos


sistemas. Para maximizar la reutilización, las clases se construyen de manera
que se puedan adaptar a los otros sistemas. Un objetivo fundamental de las
técnicas orientadas a objetos es lograr la reutilización masiva al construir el
software.

 Estabilidad. Las clases diseñadas para una reutilización repetida se vuelven


estables, de la misma manera que los microprocesadores y otros chips se
hacen estables.

 El diseñador piensa en términos del comportamiento de objetos y no en


detalles de bajo nivel. El encapsulamiento oculta los detalles y hace que las
clases complejas sean fáciles de utilizar.

 Se construyen clases cada vez más complejas. Se construyen clases a partir


de otras clases, las cuales a su vez se integran mediante clases. Esto permite
construir componentes de software complejos, que a su vez se convierten en
bloques de construcción de software más complejo.

 Calidad. Los diseños suelen tener mayor calidad, puesto que se integran a
partir de componentes probados, que han sido verificados y pulidos varias
veces.

 Un diseño más rápido. Las aplicaciones se crean a partir de componentes


ya existentes. Muchos de los componentes están construidos de modo que se
pueden adaptar para un diseño particular.

 Integridad. Las estructuras de datos (los objetos) sólo se pueden utilizar con
métodos específicos. Esto tiene particular importancia en los sistemas
cliente-servidor y los sistemas distribuidos, en los que usuarios desconocidos
podrían intentar el acceso al sistema.

Página -10-
 Mantenimiento más sencillo. El programador encargado del mantenimiento
cambia un método de clase a la vez. Cada clase efectúa sus funciones
independientemente de las demás.

 Una interfaz de pantalla sugestiva para el usuario. Hay que utilizar una
interfaz de usuario gráfica de modo que el usuario apunte a iconos o
elementos de un menú desplegado, relacionados con los objetos. En
determinadas ocasiones, el usuario puede ver un objeto en la pantalla. Ver y
apuntar es más fácil que recordar y escribir.

 Independencia del diseño. Las clases están diseñadas para ser


independientes del ambiente de plataformas, hardware y software. Utilizan
solicitudes y respuestas con formato estándar. Esto les permite ser utilizadas
en múltiples sistemas operativos, controladores de bases de datos,
controladores de red, interfaces de usuario gráficas, etc. El creador del
software no tiene que preocuparse por el ambiente o esperar a que éste se
especifique.

 Interacción. El software de varios proveedores puede funcionar como


conjunto. Un proveedor utiliza clases de otros. Existe una forma estándar de
localizar clases e interactuar con ellas. El software desarrollado de manera
independiente en lugares ajenos debe poder funcionar en forma conjunta y
aparecer como una sola unidad ante el usuario.

 Computación Cliente-Servidor. En los sistemas cliente-servidor, las clases


en el software cliente deben enviar solicitudes a las clases en el software
servidor y recibir respuestas. Una clase servidor puede ser utilizada por
clientes diferentes. Estos clientes sólo pueden tener acceso a los datos del
servidor a través de los métodos de la clase. Por lo tanto los datos están
protegidos contra su corrupción.

 Computación de distribución masiva. Las redes a nivel mundial utilizarán


directorios de software de objetos accesibles. El diseño orientado a objetos
es la clave para la computación de distribución masiva. Las clases de una
máquina interactúan con las de algún otro lugar sin saber donde residen tales

Página -11-
clases. Ellas reciben y envían mensajes orientados a objetos en formato
estándar.

 Mayor nivel de automatización de las bases de datos. Las estructuras de


datos (los objetos) en las bases de datos orientadas a objetos están ligadas a
métodos que llevan a cabo acciones automáticas. Una base de datos OO
tiene integrada una inteligencia, en forma de métodos, en tanto que una base
de datos relacional básica carece de ello.

 Migración. Las aplicaciones ya existentes, sean orientadas a objetos o no,


pueden preservarse si se ajustan a un contenedor orientado a objetos, de
modo que la comunicación con ella sea a través de mensajes estándar
orientados a objetos.

 Mejores herramientas CASE. Las herramientas CASE (Computer Aided


Software Engineering, Ingeniería de Software Asistida por Computadora)
utilizarán las técnicas gráficas para el diseño de las clases y de la interacción
entre ellas, para el uso de los objetos existentes adaptados a nuevas
aplicaciones. Las herramientas deben facilitar el modelado en términos de
eventos, formas de activación, estados de objetos, etc. Las herramientas OO
del CASE deben generar un código tan pronto se definan las clases y
permitir al diseñador utilizar y probar los métodos recién creados. Las
herramientas se deben diseñar de manera que apoyen el máximo de
creatividad y una continua afinación del diseño durante la construcción.

(Quintanilla, Peña, Montes, & Núñez, 2015)

Página -12-
8. Ejemplos

8.1.Comprendamos el punto de vista MOO

Silla es una instancia o miembro de una clase de objetos mucho mayor que
denominamos mueble. Esta clase tiene asociados un conjunto de atributos
genéricos, por ejemplo:

 Precio.
 Dimensiones.
 Peso.
 Situación.
 Color.

entre muchos atributos posibles.

Estos atributos se aplican estemos hablando de una mesa, de un sofá, una silla,
etc., y dado que una silla es una instancia o miembro de la clase mueble, hereda
todos los atributos definidos en la clase. La figura 1 muestra la correspondencia
entre clase y objeto donde vemos cómo el objeto hereda todos los atributos
definidos de la clase.

CLASE: MUEBLES OBJETO: Silla


Coste Coste
Dimensiones Dimensiones
Peso Peso
Situación Situación
Color Color

Figura 1: Correspondencia entre clase y objeto

Una vez que se ha definido la clase, se pueden crear instancias de esa clase,
por ejemplo, el nuevo objeto Mesa (aparece en la figura 2), que es miembro de la
clase Mueble y hereda todos los atributos del mueble.

Cada objeto de la clase mueble puede ser manipulado de muchas formas.


Puede ser vendido y comprado, modificado (quitar una pata o pintarlo de rojo) o
movido de un sitio a otro. Cada uno de esos métodos u operaciones modifican
uno o más atributos del objeto. Por ejemplo, si el atributo situación es realmente
un elemento de datos compuesto que está definido como:

Página -13-
Situación = Edificio + piso + habitación.

Entonces, una operación denominada Mover modificará uno o más de esos


elementos de datos que componen el atributo situación. Más operaciones válidas
serán las siguientes, comprar, vender, pesar, etc.

Todas las operaciones para la clase Mueble son heredadas por todas las
instancias de la clase.

La figura 2 muestra el esquema que resultaría:

CLASE: MUEBLES OBJETO: Silla


Coste Coste
Dimensiones Dimensiones
Peso Peso
Situación Situación
Color Color
COMPRAR COMPRAR
VENDER VENDER
PESAR PESAR
MOVER MOVER

OBJETO: Mesa
Coste
Dimensiones
Peso
Situación
Color
COMPRAR
VENDER
PESAR
MOVER

Figura 2: Herencia de atributos y operaciones

Los objetos heredan todos los atributos y operaciones de la clase.

(Gómez Ortega, 1999, págs. 109 - 111)

Página -14-
8.2.Aplicamos el ejemplo en lenguaje de programación Java

Figura 3: Ejemplo en NetBeans IDE 8.2

Página -15-
9. Conclusiones

La Metodología Orientada a Objetos permite la optimización de los elementos


generados gracias a que, mediante técnicas como herencia, atributos estáticos entre
otros permiten que los elementos sean genéricos de manera que sea reutilizable.

Las metodologías Orientadas a Objetos es algo totalmente distinto a la programación


estructurada y se tiene que romper cualquier esquema y enseñanza previa si deseamos
incursionar en lenguajes y documentación Orientada a Objetos.

Página -16-
10. Mapa Mental

Página -17-
11. Referencias

CCM. (13 de julio de 2017). Enciclopedia:ccm.net. Recuperado el 16 de mayo de 2019, de


ccm.net: https://es.ccm.net/contents/411-poo-herencia

CCM. (7 de noviembre de 2017). Enciclopedia:ccm.net. Recuperado el 16 de mayo de 2019, de


ccm.net: https://es.ccm.net/contents/410-poo-encapsulacion-de-datos

Franco García, A. (enero de 2000). Curso de Lenguaje Java: Gipuzkoako Campusa - UPV/EHU.
Recuperado el 16 de mayo de 2019, de Gipuzkoako Campusa - UPV/EHU.

galeon.com. (s.f.). galeon.com. Recuperado el 16 de mayo de 2019, de galeon.com:


http://candyluna.galeon.com/index.html

Gómez Ortega, J. (1999). Generación Automática de Componentes Software a partir de


Modelos Conceptuales Orientados a Objetos. Alicante: Publicaciones de la Universidad
de Alicante.

Quintanilla, A., Peña, L., Montes, E., & Núñez, J. (2015). Academia.edu. Recuperado el 16 de
mayo de 2019, de Academia.edu:
https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.academia.edu%2F15943563%
2FQue_es_la_Metodolog%25C3%25ADa_orientada_a_objetos_-
_Introducci%25C3%25B3n_a_UML%3Ffbclid%3DIwAR3ZvH5yaUFMx-q5X8YOLV-
wDb99qdI-qXEsyYclC_Lrm5bX6EtzCu7nl9U&h=AT1UWfPOM2lKl0K5hbv9CIgH

Román Zamitiz, C. (s.f.). Carlos:DIE. Recuperado el 16 de mayo de 2019, de DIE Sitio Web:
https://www.messenger.com/t/jose.romeroolivera

Universidad Técnica del Norte. (s.f.). UniPortal Web UNT. Recuperado el 16 de mayo de 2019,
de UniPortal Web UNT: http://www.utn.edu.ec/reduca/programacion/poo/clase.html

Universidad Técnica del Norte. (s.f.). UniPortal Web UNT. Recuperado el 16 de mayo de 2019,
de UniPortal Web UNT:
http://www.utn.edu.ec/reduca/programacion/poo/objeto.html

Wikipedia. (15 de enero de 2019). Artículo: Wikipedia. Recuperado el 16 de mayo de 2019, de


Wikipedia:
https://es.wikipedia.org/wiki/Enlace_din%C3%A1mico_(programaci%C3%B3n_orienta
da_a_objetos)

Página -18-

Vous aimerez peut-être aussi