PDF de programación - Orígenes de la programación orientada a objetos

Imágen de pdf Orígenes de la programación orientada a objetos

Orígenes de la programación orientada a objetosgráfica de visualizaciones

Actualizado el 19 de Abril del 2019 (Publicado el 6 de Septiembre del 2018)
1.836 visualizaciones desde el 6 de Septiembre del 2018
1,3 MB
17 paginas
Creado hace 17a (22/01/2007)
1

Orígenes de la programación

orientada a objetos

Conceptos clave

 Evolución del software
 Programación orientada

a procedimientos

 Programación orientada a objetos
 Objetos
 Clases
 Abstracción de datos
 Encapsulación
 Herencia
 Polimorfi smo
 Ligadura dinámica
 Pase de mensajes
 Lenguajes orientados a objetos
 Lenguajes basados en objetos

1.1 La crisis del software
Los avances en la tecnología del software
siguen siendo espectaculares. Se anuncian
nuevas técnicas y herramientas en una
vertiginosa sucesión. Esto ha obligado a los
ingenieros y a la industria del software a
buscar continuamente nuevos enfoques para
el diseño y el desarrollo de software, los cuales
se vuelven cada vez más críticos en aras de
la creciente complejidad de los sistemas de
software así como de la naturaleza altamente
competitiva de la industria. Estos rápidos
avances parece que han creado una situación
de crisis dentro de la industria. Es necesario
dar respuesta a las siguientes cuestiones para
afrontar esta crisis:

 ¿Cómo representar entidades de pro-
blemas de la vida real en el diseño de
sistemas?

 ¿Cómo diseñar sistemas con interfaces

abiertos?

 ¿Cómo garantizar la reusabilidad y la

extensibilidad de los módulos?

 ¿Cómo desarrollar módulos que sean

tolerantes a los cambios futuros?

BALAGURUSAMY - Programación orie1 1

1

22/12/2006 13:09:36



Programación orientada a objetos con C++

 ¿Cómo mejorar la productividad del software y disminuir el coste del software?
 ¿Cómo mejorar la calidad del software?
 ¿Cómo gestionar las planificaciones temporales?
 ¿Cómo industrializar el proceso de desarrollo de software?

Muchos productos software o bien están no terminados, o no se usan o son entregados con
errores importantes. La Figura 1.1 muestra el destino de los proyectos software de defensa
de Estados Unidos acometidos en los años setenta. Alrededor del 50% de los productos
software nunca fueron finalizados, y una tercera parte de los que fueron entregados nunca
se usaron. Es interesante anotar que sólo el 2% fueron usados tal como se entregaron sin
ninguna modificación. Esto ilustra que la industria del software tiene un récord notable-
mente malo en productos entregados.

Los cambios en los requisitos del usuario han sido siempre el problema principal. Otro
estudio (Fig. 1.2) muestra que más del 50% de los sistemas necesitaron modificaciones
debido a cambios en los requisitos de usuario y en los formatos de los datos. Esto sólo
ilustra que, en un mundo cambiante con un entorno de negocios dinámico, las solicitudes
de cambios son inevitables y por tanto los sistemas deben ser adaptables y tolerantes a
los cambios.

Estos estudios y otros informes sobre implementación de software sugieren que los
productos software deberían ser evaluados cuidadosamente para su calidad antes de que
sean entregados e implementados. Algunos de los problemas de calidad que deben ser
considerados con una evaluación crítica son:



1. Correctitud.
2. Mantenibilidad.
3. Reusabilidad.
4. Apertura e interoperabilidad.
5. Portabilidad.

Fig. 1.1 El estado de los proyectos de defensa de Estados Unidos (según datos de su gobierno)

BALAGURUSAMY - Programación orie2 2

22/12/2006 13:09:36

Orígenes de la programación orientada a objetos



Fig. 1.2 Descomposición de los costes de mantenimiento



6. Seguridad.
7. Integridad.
8. Amabilidad con el usuario.

La selección y el uso de herramientas software adecuadas ayudaría a resolver algunos

de estos problemas.

1.2 Evolución del software
Ernest Tello, un escritor de prestigio en el campo de la inteligencia artificial, comparó
la evolución de la tecnología del software con el crecimiento de un árbol. Al igual que un
árbol, la evolución del software tiene distintas fases o “capas” de crecimiento. Estas capas
se construyeron una sobre otra durante las cinco últimas décadas, como se muestra en la
Figura 1.3, en la que cada capa representa una mejora sobre las anteriores. Sin embargo,
la analogía falla si consideramos la vida de estas capas. En los sistemas software, cada
una de las capas continúa siendo funcional, mientras que en el caso de los árboles, sólo la
capa superior es funcional.

Alan Kay, uno de los promotores del paradigma orientado a objetos y el principal diseñador
de Smalltalk, dijo: “Cuando la complejidad aumenta, la arquitectura domina el material
básico”. Para construir software complejo hoy en día no basta con juntar una secuencia de
instrucciones de programación y varios conjuntos de procedimientos y módulos; necesitamos
incorporar técnicas sólidas de construcción y estructuras del programa que sean fáciles de
comprender, implementar y modificar.

Desde la invención de la computadora, se han probado muchos enfoques de programa-

ción.

Entre éstos se incluyen técnicas tales como programación modular, programación descen-
dente, programación ascendente y programación estructurada. La principal motivación de
cada una ha sido la preocupación para manipular la complejidad creciente de los programas

BALAGURUSAMY - Programación orie3 3

22/12/2006 13:09:37



Programación orientada a objetos con C++

Fig. 1.3 Capas del software de computadoras

para que éstos sean fiables y de fácil mantenimiento. Estas técnicas se hicieron populares
entre los programadores durante las dos últimas décadas.

Con la aparición de lenguajes tales como C, la programación estructurada se hizo muy
popular y fue la técnica principal de los años ochenta. La programación estructurada era
una herramienta potente que permitió a los programadores escribir programas moderada-
mente complejos con bastante facilidad. Sin embargo, cuando los programas aumentaron
más su tamaño, incluso el enfoque estructurado fracasó en mostrar los resultados deseados
en términos de programas libres de errores, fáciles de mantener y reutilizables.

La programación orientada a objetos (POO) es un enfoque para la organización y el
desarrollo de programas que intenta eliminar algunos de los escollos de los métodos de pro-
gramación convencionales al incorporar lo mejor de las características de la programación
estructurada con varios conceptos nuevos y potentes. Es una nueva forma de organizar y
desarrollar programas y no tiene nada que ver con un lenguaje particular. Sin embargo, no
todos los lenguajes son adecuados para implementar fácilmente los conceptos de la POO.

Introducción a la programación orientada a procedimientos

1.3
A la programación convencional, usando lenguajes tales como COBOL, FORTRAN y C, se
conoce comúnmente como programación orientada a procedimientos (POP). En el enfoque
orientado a procedimientos, el problema se visualiza como una secuencia de cosas a realizar
tales como leer, calcular e imprimir. Se escribe una serie de funciones para realizar estas
tareas. Se presta atención principalmente a las funciones. En la Figura 1.4 se muestra
una estructura de programa típica para la programación orientada a procedimientos. Se

BALAGURUSAMY - Programación orie4 4

22/12/2006 13:09:38

Orígenes de la programación orientada a objetos



Fig. 1.4 Estructura típica de los programas orientados a procedimientos

ha usado la técnica de descomposición jerárquica para especificar las tareas que se tienen
que completar para resolver un problema.

La programación orientada a procedimientos básicamente consiste en escribir una
lista de instrucciones (o acciones) para que las realice la computadora, y organizar estas
instrucciones en grupos denominados funciones. Normalmente usamos un diagrama de
flujo para organizar estas acciones y representar el flujo de control de una acción a otra.
Mientras nos concentramos en el desarrollo de funciones, se presta muy poca atención a
los datos que están siendo usados por varias funciones. ¿Qué le ocurre a los datos? ¿Cómo
se ven afectados por las funciones que trabajan sobre ellos?

En un programa que consta de varias funciones, muchos elementos importantes de datos
son declarados como globales de manera que pueden ser accedidos por todas las funciones.
Cada función puede tener sus propios datos locales. La Figura 1.5 muestra la relación entre
los datos y las funciones en un programa orientado a procedimientos.

Los datos globales son más vulnerables a un cambio inadvertido por parte de una función.
En un programa grande es muy difícil identificar qué dato es usado por cada función. En
el caso de que necesitemos revisar una estructura de datos externa, también necesitamos
revisar todas las funciones que acceden a tales datos. Esto proporciona una oportunidad
para que surjan los errores sin enterarnos.

Otro inconveniente serio con el enfoque orientado a procedimientos es que no modela
muy bien los problemas del mundo real. Esto es debido a que las funciones están orientadas
a la acción y no se corresponden realmente con los elementos del problema.

Algunas de las características de la programación orientada a procedimientos son:

 El énfasis se pone en hacer cosas (algoritmos).
 Los programas grandes se dividen en programas más pequeños denominados fun-

ciones.

 La mayoría de las funciones comparten datos globales.

BALAGURUSAMY - Programación orie5 5

22/12/2006 13:09:38



Programación orientada a objetos con C++

Fig. 1.5 Relaciones entre datos y funciones en programación orientada a procedimientos

 Los datos se mueven públicamente en el sistema de función en función.
 Las funciones transforman datos de una forma a otra.
 Emplea el enfoque descendente en el diseño del programa.

1.4 Paradigma de programación orientada a objetos

El principal factor que motivó la invención del enfoque orientado a objetos fue eliminar
algunos de los defectos encontrados en el enfoque orientado a proce
  • Links de descarga
http://lwp-l.com/pdf13384

Comentarios de: Orígenes de la programación orientada a objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad