Vous êtes sur la page 1sur 7

Tema 1.

Introduccin a la Programacin Orientada a


Objetos.
EL DESARROLLO DEL SOFTWARE. __________________________________________ 2
LA COMPLEJIDAD DEL SOFTWARE. ______________________________________________ 2
La Complejidad del dominio del problema._____________________________________ 2
La dificultad de gestionar el proceso de desarrollo. ______________________________ 3
La Flexibilidad a travs del Software. _________________________________________ 3
FACTORES QUE INTERVIENEN EN LA CALIDAD DEL SOFTWARE _____________ 4
Razones por las que la POO es tan importante. _________________________________ 4
PROGRAMACIN Y ABSTRACCIN. _________________________________________ 4
LA ABSTRACCIN __________________________________________________________ 5
PROCEDIMIENTOS ___________________________________________________________ 5
MDULOS._________________________________________________________________ 5
TIPOS ABSTRACTOS __________________________________________________________ 5
OBJETOS. __________________________________________________________________ 6
ORIENTACIN A OBJETOS. _________________________________________________ 6
ABSTRACCIN. _____________________________________________________________ 6
ENCAPSULACIN. ___________________________________________________________ 6
MODULARIDAD. ____________________________________________________________ 7
JERARQUA. ________________________________________________________________ 7
POLIMORFISMO _____________________________________________________________ 7

Javier Garrido Daz


2. I. T. I. G. POO

El concepto de Programacin Orientado a Objetos se ha hecho cada vez ms famoso en


el mundo de la programacin. Herencia, Encapsulamiento, y abstraccin son conceptos
comunes a la hora de desarrollar una aplicacin informtica.

El desarrollo del Software.


La dcada de los 90, es el periodo de mayor explosin de la Programacin
orientada a Objetos. Se suele or que la programacin orientada a objetos es lo que la
programacin estructurada fue en los aos 70-80.
En este captulo, veremos que es la programacin orientada a objetos, y porque
es tan famosa.

La Complejidad del Software.


Como norma general, todo software es complejo de desarrollar. Pero no es
complejo porque s. Esta complejidad deriva de cuatro factores principales:
-

La complejidad del dominio del problema

La dificultad de gestionar el proceso

La posible flexibilidad que pueda surgir

La Complejidad del dominio del problema.


A la hora de desarrollar un software, nos vamos a encontrar con una gran
cantidad de elementos complejos. Entre esos elementos podemos citar: gran cantidad de
requisitos, muchos de ellos de confusa consideracin, y en otras ocasiones
contradictorios. Estas dificultades aparecen bsicamente por una falta de entendimiento
entre los usuarios finales o clientes y desarrolladores, consultores, y analistas del
software. Adicionalmente, el muchos casos nos vamos a encontrar con que los usuarios
tienen ideas vagas de lo que realmente necesitan.
Por otro lado, tanto los desarrolladores, como los usuarios, tienen diferentes
perspectivas de la naturaleza del problema, y se hacen suposiciones diferentes sobre la
naturaleza de la solucin.

Javier Garrido Daz


2. I. T. I. G. POO

Otra complicacin frecuente es que los requisitos de un software cambian


constantemente durante el desarrollo del software. Esto supone que un sistema grande
tienda a evolucionar con el tiempo y el mantenimiento no est bien acuado.

La dificultad de gestionar el proceso de desarrollo.


El tamao de un programa no es una gran virtud en un sistema de software. Sin
embargo, la escritura de un gran programa requiere de gran cantidad de lneas de
cdigo, de grandes cantidades de nuevo software y reutilizacin de software ya
existente.
Hace unos aos, el software se diseaba en lenguaje ensamblador y componan
cientos de lneas, la mayora difciles de entender. En la actualidad los software se
componen de millones de lneas de cdigo. Esta caracterstica se facilita
descomponiendo las implementaciones en varios mdulos independientes. Esta cantidad
de trabajo exige el uso de un equipo de desarrolladores completo. Como norma general,
se observa que cuanto ms grande es el equipo de desarrollo, ms comunicaciones
complejas se producen entre ellos.

La Flexibilidad a travs del Software.


Los sistemas orientados a objetos, proporcionan el rendimiento, la flexibilidad y
funcionalidad requerida para implementaciones prcticas.
Con la POO se pueden aadir nuevos tipos de datos, sin modificar el cdigo
existente.

Javier Garrido Daz


2. I. T. I. G. POO

Factores que Intervienen en la calidad del Software


El desarrollo de software requiere el cumplimiento de numerosas caractersticas,
entre las que citamos:
-

Eficiencia: su capacidad para hacer un buen uso de los recursos que


manipula.

Transportabilidad: facilidad con la que un software puede ser transportado


sobre diferentes sistemas fsicos o lgicos.

Verificabilidad: Facilidad de verificacin de un software, soportar los


procedimientos de validacin y aceptar juegos de test o ensayo de
programas.

Integridad: capacidad de un software para proteger sus propios


componentes contra los procesos que no tengan derecho a acceso.

Facilidad de Uso: desde el punto de vista de la comunicacin; es decir: si


nos podemos comunicar con l, de manera sencilla.

Correccin: Que el software realice lo que exactamente est especificado.

Robustez: capacidad de los productos software de funcionar, incluso en


situaciones anmalas.

Extensibilidad: Facilidad que tienen los productos de adaptarse a cambios


de su especificacin. Conseguimos esto gracias a:
o Diseo Simple
o Descentralizacin

Reutilizacin: capacidad de los productos a poder usarlos en otro dominio


de aplicacin, en su totalidad o en parte.

Compatibilidad: facilidad de los productos/objetos a se combinados con


otros.

Razones por las que la POO es tan importante.


-

La OO es especialmente adecuada para realizar aplicaciones, sobre todo para


realizar prototipos y simulacin de programas

Los mecanismos de encapsulamiento, soportan un alto grado de reutilizacin


de cdigo, que se incrementa por el uso de la herencia.

En entorno de Bases de Datos, la OO se adjunta bien a los modelos


semnticos de datos para solucionas las limitaciones de modelos
tradicionales.

Aumento importantsimo, de nuevos lenguajes orientados a objetos.

Programacin y Abstraccin.
En general un programa no es ms que una descripcin abstracta de un
procedimiento que sucede en el mundo real. Frecuentemente un programa imita el
comportamiento de la accin humana. Otras veces lo reproduce.
Sin embargo, la relacin entre abstraccin y lenguaje de programacin es doble.
Por un lado, se utiliza el lenguaje de programacin para escribir un programa que es una
Javier Garrido Daz
2. I. T. I. G. POO

abstraccin del mundo real, y por otro, se utiliza el lenguaje de programacin para
describir el comportamiento.
En el comienzo de los lenguajes de programacin, el nico mecanismo de
abstraccin era el lenguaje ensamblador y de mquina, que daba la posibilidad de usar
reglas nemotcnicas para representar celdas de memoria. Posteriormente, los lenguajes
de programacin ofrecieron un nivel de abstraccin.

La Abstraccin
Las personas dedicadas al desarrollo de software, han tenido que luchar
continuamente con el problema de la complejidad. Para controlar esta complejidad, los
programadores han tenido que utilizar diferentes mecanismos. Entre ellos destaca la
Abstraccin. Las personas para tratar la complejidad, lo que hacemos es abstraernos de
ella. Ante la incapacidad de dominar la complejidad, y nos centramos en sus aspectos
esenciales.
Dicho de otra forma, la abstraccin es la capacidad de encapsular y asilar la
informacin del diseo y ejecucin.
La abstraccin es la clave para disear buen software. En los inicios de la
informtica, los programadores enviaban instrucciones binarias a una computadora,
manipulando interrupciones en paneles. Los nemotcnicos del lenguaje ensamblador
son abstracciones diseadas para evitar que los programadores tuvieran que recordar las
secuencias de bits.
Tras los lenguajes de programacin ensambladores aparecieron los lenguajes de
programacin de algo nivel, que supusieron un nuevo nivel de abstraccin. Permitieron
a los programadores distanciarse de las interioridades arquitectnicas especficas de una
mquina. De esta manera, se consigue escribir software para un propsito genrico.
Secuencias de sentencias de algo nivel, se pueden agrupar en procedimientos y
se invocan por una nica sentencia. La progrmaacion estructurada anima al uso de
abstracciones de control, como if-then pues permiten abstraer condiciones comunes
para cambiar la secuencia de ejecucin.

Procedimientos
Tambin conocidos como funciones, fueron los primeros mecanismos de
abstraccin que se utilizaron. Los procedimientos permiten ejecutar tareas rpidamente,
y que adems se pueden reutilizar. Por otro lado, el uso de procedimientos, ha permitido
ocultar cierta informacin. Un programador escribe un cdigo, y el resto de
programadores no necesitan saber la exactitud del funcionamiento. Slo necesitan saber
la interfaz.

Mdulos.
Un mdulo es una tcnica que proporciona la posibilidad de dividir sus datos y
procedimientos en una parte privada, slo accesible dentro del mdulo; y parte pblica,
accesible desde fuera

Tipos Abstractos
Tipo definido por el programador que puede manipularse

Javier Garrido Daz


2. I. T. I. G. POO

Objetos.
Un objeto es sencillamente un tipo abstracto de datos al que se le aaden
importantes innovaciones en comparicin de cdigo y reutilizacin. Los mecanismos
bsicos de orientacin a objetos son: objetos, mensajes/mtodos, clases/instancias, y
herencia.
Lo ms importante de todo es la comunicacin de objetos mediante paso de
mensajes. Adems, se aade la idea de la herencia y el polimorfismo.

Orientacin a Objetos.
Se puede definir como el conjunto de disciplinas que desarrollan y modelizan
software que facilitan la construccin de sistemas complejos a partir de componentes.
Los conceptos y herramientas OO son tecnologas que permiten que los
problemas del mundo real sean expresados de modo fcil y natural. Los cuatro
elementos ms importantes de este modelo son:
-

Abstraccin

Encapsulacin

Modularidad

Jerarqua.

Polimorfismo

Abstraccin.
Como se ha comentado anteriormente, la abstraccin es uno de los elementos
ms importantes de la OO, que nos permite representar las caractersticas esenciales de
un objeto sin preocuparse de las restantes.
Se centra en la vista externa del objeto, sin centrarnos en su implementacin.
Definir una abstraccion significa describir una entidad del mundo real, no
importa lo compleja que pueda ser.
El elemento clave de la POO es la clase. Una clase se puede definir como la
descripcin abstracta de un grupo de objetos, cada uno de los cuales se diferencia por su
estado especifico y por la posibilidad de hacer una serie de operaciones. Por ejemplo,
una pluma estilogrfica es un objeto que tiene un estado (llena de tinta o vaca) y sobre
la cual se pueden realizar algunas operaciones (escribir, poner la tapa, llenar tinta)

Encapsulacin.
Es la propiedad que permite asegurar que el contenido de la informacin de un
objeeto est oculta al mundo exterior: el objeto A no sabe lo que hace el B y viceversa.
La encapsulacin, en esencia, es el proceso de ocultar los secretos de un objeto
La encapsulacin permite la divisin de un programa en mdulos. Estos
mdulos se implementan mediante clases, de forma que una clase representa la
encapsulacin de una abstraccin. En la prctica, esto quiere decir, que una clase debe
tener dos partes: un interfaz, y una implementacin. El interfaz slo muestra su vista
externa y la implementacin contiene la representacin de esa abstraccin.

Javier Garrido Daz


2. I. T. I. G. POO

Modularidad.
Es la propiedad que permite subdividr una aplicacin en partes ms pequeas, de
tal forma que cada parte debe ser lo ms independiente posible del resto de las partes
Modularidad, propiedad de un sistema que permite su descomposicin en un
conjunto de mdulos cohesivos y debilmente acoplados.

Jerarqua.
Es una propiedad que permite una ordenacin de las abstracciones.
Nos vamos a encontrar con dos tipos de jerarquas:
-

Generalizacin / especializacin: que se conoce como la herencia, en donde


una clase comparte la estructura o comportamiento definido de otra

Agregacin: que es el concepto que permite el agrupamiento de estructuras


relacionadas. Es decir: un camin est compuesto por ruedas, motor,
chasiscomo consecuencia, camin es una agregacin de ruedas, motor

Polimorfismo
Caracterstica de que una entidad, tome diferentes formas. Permite referirse a
objetos de clases diferentes mediante el mismo elemento de programa para realizar la
misma funcin de diferentes formas.
Por ejemplo, cuando se describe la clase mamferos se puede observar que la
operacin comer es una operacin bsica de la vida de los mamferos. Por otra parte,
una vaca que pasta en el prado, o una persona que come un caramelo, o un len que
devora a su presa, son diferentes formas que realizan los mamferos para realizar la
misma accin: comer.
El polimorfismo, implica la posibilidad de tomar un objeto de un tipo
(mamfero) e indicarle que ejecute la accin de comer. Esta accin se ejecutar de
diferente manera segn sea el objeto mamfero al que se le aplica.
El polimorfismo requiere ligadura tarda o postergada y esto slo de aplica a los
lenguajes de programacin orientados a objetos. Los lenguajes no orientados a objetos
soportan ligadura temprana o anterior; esto significa que el compilador genera una
llamada a un nombre especfico de funcin y el enlazador o linker resuelve la llamada a
la direccin del cdigo que se ha de ejecutar. En la POO, el programa no puede
determinar la direccin del cdigo hasta la ejecucin; para resolver este concepto, los
lenguajes OO, usan el concepto de la ligadura tarda. Cuando se enva un mensaje a un
objeto, el cdigo que se llama, no se determina hasta el momento de la ejecucin. El
compilador solamente, asegura que la funcin existe y realiza la verificacin de tipos de
los argumentos y el valor de retorno

Javier Garrido Daz


2. I. T. I. G. POO

Vous aimerez peut-être aussi