SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
82
Ingeniería
Paradigmas en la
construcción de software
Sandro Javier
Bolaños Castro
RESUMEN
Enfrentarnos con el modelamiento de la realidad
ha sido una de las tareas que desde los principios de
la humanidad hemos realizado. Las pinturas que so-
bre cavernas se han descubierto, no son más que la
expresión de lo que el hombre sentía y veía en su
entorno. Mucho después continuamos cuestionán-
donos sobre nuestra realidad y cómo representarla
de manera que se pueda tener control sobre ella. Ésta
es justo la propuesta que persigue un paradigma; es-
tructurar un conjunto de mecanismos que permitan
de manera formal organizar una realidad, sobre la
cual se puedan tomar decisiones. En este artículo, se
presentan los enfoques más importantes acerca de
cómo puede ser vista y modelada la realidad vía la
construcción de software.
Palabras claves: paradigma, mecanismos,
modelamiento de la realidad, construcción de software
ABSTRACT: PARADIGMS TOWARD
SOFTWARE CONSTRUCTION
The reality modeling has been one of the task that
since the beginning of mankind has been made. The
paintings discovered in caves are the expression of
what man felt and saw around him. Sometime after
that, we still continue asking ourselves about our reality
and how to represent it in such away that we could
master it. This is just the proposal that follows the
paradigm, to structure a set of mechanims that allow,
in a formal way, to organize the reality wich we could
make decisions about. This article presents the most
important points of view, about how reality, can be
seen and modeled towards the software construction.
Key Words: paradigm, mechanims, reality
modeling, software construction.
INTRODUCCIÓN
“Un cohete que impulsaba el Mariner, una sonda espacial
con destino a Venus, tuvo que ser destruido 290 segundos
después del lanzamiento el 22 de julio de 1962, la pérdida se
estimó entre 18 y 20 millones de dólares.
El programa de computador en tierra debió contener el si-
guiente fragmento: Si no hay contacto del radar con el cohete
entonces no corregir su trayectoria
El no fue ignorado inadvertidamente, así que el computa-
dor en tierra continuó guiando a ciegas el cohete después de
que se perdió el contacto con el radar. El cohete se extravió y
fue destruido antes de que pudiera poner en peligro vidas hu-
manas. El programa se había utilizado previamente, sin nin-
guna falla, en cuatro viajes a la luna” [1].
Problemas como éste, en los que están involucradas
grandes inversiones e incluso vidas humanas son fre-
cuentes, la pregunta es quién es el responsable? Igual
o quizá más compleja que la pregunta, es la respuesta,
sin embargo, un buen punto de partida lo constituye
la revisión del modelo de construcción de software
que se emplee. Siempre que se trate de desarrollo de
software se presenta un importante porcentaje de ries-
gos, el punto clave es administrarlos y/o en lo posible
eliminarlos. No es tarea fácil saber todas las posibles
variaciones que un problema pueda tener, y más aun
cuando se trata de solucionar un sistema altamente
probabilístico. Un ingrediente que se le suma al pro-
blema es el poder determinar con exactitud las varia-
bles implicadas y sobre las cuales lógicamente se tie-
nen que determinar mecanismos de control, es decir,
se debe tener pleno conocimiento del dominio del
problema sobre el cual se quiere ofrecer una solución.
Todas las consideraciones que se tengan en cuen-
ta para tratar de resolver el problema de desarrollar
software confiable y de calidad, convergen sin lugar
a dudas en el manejo de la complejidad que entorno
al problema existe. Desafortunadamente no se tiene
una fórmula mágica que garantice el ciento por cien-
to de efectividad, pero si propuestas que se acercan
a una solución satisfactoria. Éstas propuestas, que
las podemos reunir como modelos o paradigmas,
precisamente buscan organizar el conocimiento y así
hacerlo accesible y manejable. Un paradigma se pue-
de definir como: “un conjunto de teorías, estándares y
métodos que representan en conjunción una forma de organi-
zar el conocimiento”[2] . y es justo estos elementos cla-
ves los que se proponen en modelos como el estruc-
turado o el orientado a objetos.
I. EVOLUCIÓN DE LOS MODELOS
“Nuestra vida se desarrolla, con base en paradigmas, en
supuestos teóricos generales, en técnicas y procedimientos de
aplicación que adaptamos por criterio de una comunidad ”[2].
La apreciación de Kuhn apunta a las propuestas
que entorno al software se han desarrollado, preci-
samente ese conjunto de supuestos teóricos han sido
producto de lo que históricamente ha pasado en las
ciencias computacionales. En el sentido estricto de
la palabra, desde la propuesta de Von Neumann acer-
ca de la primera máquina, no se ha avanzado mucho,
excepto por las mejoras tecnológicas que se han he-
cho, pero fundamentalmente manteniéndose el mis-
mo modelo. Éste es el primer parámetro de referen-
A
c
a
d
e
m
i
a y desar
r
o
l
l
o
Todas las
consideraciones
que se tengan en
cuenta para
tratar de resolver
el problema de
desarrollar
software
confiable y de
calidad,
convergen sin
lugar a dudas en
el manejo de la
complejidad que
entorno al
problema existe.
83
Ingeniería
cia sobre el cual crecerían las teorías que buscan dar
una solución para el mundo real, apoyándose en una
máquina sobre la cual se esquematiza una interpreta-
ción lógica que permite organizar el conocimiento.
El planteamiento teórico realizado en un modelo,
debe mezclar la interpretación del mundo real con la
interpretación que, al nivel de la máquina, se debe
hacer del problema. Ambos enfoques deben con-
verger a una solución viable sustentada sobre un sis-
tema computacional. Dentro de los paradigmas de
desarrollo de software más importantes podemos
destacar: imperativo, funcional , de modelamiento
de datos, declarativo, orientado objetos, incluso, el
paradigma de modelamiento.
La perspectiva que se tenía del mundo y que
enmarcó el modelo imperativo, fue influenciada fun-
damentalmente por la mismas ideas que concebían
la organización como unidades funcionales y por
tanto, las abstracciones significativas, igualmente
debían ser procesos en los que entraban insumos para
ser transformados en productos. El método utiliza-
do por el paradigma imperativo fue el método es-
tructurado en el que se reflejaba la organización, cuyo
problema podía ser resuelto en una función, “proce-
so”, a la cual se le entregaban argumentos, “insumos”,
y de la cual se obtenía un resultado, “productos”. El
modelo imperativo asume una realidad de procesos
por tanto el principal énfasis es la acción, “orden”,
sobre el conjunto de variables que configuran el pro-
blema. Otra propuesta interesante es la hecha por el
modelo funcional, ésta tiene una gran influencia del
modelo imperativo, pues al igual que en éste, el cen-
tro de abstracción lo constituye la función, la cual es
tratada como valor de primera clase, y de ahí que
herede su nombre. La diferencia radical está en el
almacenamiento; mientras en el modelo imperativo
es fundamental, en el modelo funcional el almace-
namiento es implícito, eliminando los graves proble-
mas de transparencia referencial. Aunque el modelo
propone una buena alternativa a los problemas cola-
terales ocasionados al tratar con funciones; es poco
práctico en su semántica. Otro enfoque es el plan-
teado por el paradigma de modelamiento de datos,
en éste; se ofrece una solución basada fundamental-
mente en la necesidad de contar con un esquema
ágil para el manejo de información; el centro de abs-
tracción se dirige hacia los datos que reunidos cons-
tituyen entidades y que relacionados constituyen un
sistema de información. El paradigma de
modelamiento de datos o modelo relacional se apar-
ta un poco del esquema propuesto por el modelo
imperativo centrando su interés en las variables del
problema, dejando las operaciones en segundo pla-
no e incluso agrupadas dentro de un conjunto de
interés compuesto entre otras por: consultas, bús-
quedas, y almacenamientos. Otro de los enfoques
interesante lo constituye el modelo declarativo, en
éste; se organiza el conocimiento basándose en re-
glas con las que se garantizan inferencias conducen-
tes a soluciones. El modelo declarativo busca mos-
trar la realidad como una consecuencia lógica de re-
lacionar coherentemente las variables del problema.
Finalmente se tiene como modelo relevante, el orien-
tado a objetos, cuya abstracción de la realidad con-
verge al objeto como entidad dotada de operacio-
nes, información, semántica y relaciones significati-
vas dentro del dominio del problema. El paradigma
orientado a objetos emplea como método la orien-
tación a objetos en la que se busca modelar una pers-
pectiva del entorno, basada en atributos encapsulados
junto con sus comportamientos.
Cada enfoque propuesto por un paradigma enfatiza
en una filosofía que pretende describir las formas de
ver el mundo y cómo lógicamente expresarlo en una
máquina. Sin embargo, algunos ofrecen mejores
mecanismos para organizar el conocimiento y ha-
cerlo fácilmente manejable. Se debe tener presente
que un modelo no es la expresión pura de abstrac-
ción de la realidad, más bien es una conceptualiza-
ción combinada de modelos, por tanto podría ser un
referente importante tomar el modelo que ofrezca
los mecanismo que, de manera comprobada, permi-
tan controlar mejor la complejidad.
II. ¿POR QUÉ ESCOGER
ORIENTACIÓN A OBJETOS?
La orientación a objetos no es un modelo tan no-
vedoso como se pudiera pensar, las primeras ideas
sobre el modelo ya venían desde Small Talk, sin
embargo, el predominio del modelo imperativo no
lo dejó emerger con fuerza hasta los ochenta. Desde
una perspectiva histórica, la orientación a objetos
surge como resultado de un proceso de evolución
en los mecanismos de abstracción, los cuales pue-
den ser vistos como la progresión lógica que empe-
zó en la función , luego pasó por los módulos y TADs
para llegar finalmente a los objetos [3]. La función
que se constituye como el principal mecanismo de
abstracción en los modelos imperativo y funcional;
es la primera forma importante de representar la rea-
lidad, la consigna fundamental es “dividir y vencer”,
como manera de romper un procedimiento en va-
rios subprocedimientos y obtener una solución
atomizando el problema; es la edad de oro del méto-
do estructurado y del mundo de procesos. Las exi-
gencias tecnológicas hacen que la función no sea lo
suficientemente robusta como para soportar ciertos
requerimientos de modelaje comenzando a acusar
problemas como la falta de seguridad, identidad,
reusabilidad a mayor escala, y consistencia entre otros.
Aparece entonces el módulo en el cual se agrupan
datos y operaciones, con lo cual se eliminan proble-
mas, como la falta encapsulación, y se adicionan prin-
cipios, como el de seguridad, permitiendo además
establecer un espacio de nombres con visibilidad
privada y pública, que constituyen implementación
e interfaz respectivamente, pero aún faltaría algo
importante, establecer mecanismos de instanciación.
Cada enfoque
propuesto por un
paradigma
enfatiza en una
filosofía que
pretende
describir las
formas de ver el
mundo y cómo
lógicamente
expresarlo en
una máquina.
84
Ingeniería
Llegan entonces los TADs en los que se incorporan
todas las ideas y mecanismos de los módulos, intro-
duciendo la identidad producto de la instanciación y
que permite sobre ella montar conceptos como
reutilización, semántica y formalización. Finalmen-
te, surgen los objetos como medio de hacer concre-
to el planteamiento formal expresado en los TADs
y sobre los cuales se incorporarán una serie de prin-
cipios que hacen del modelo orientado a objetos,
buena elección en el momento de pensar en la cons-
trucción de software. Lee y Tepfenhart [3], propo-
nen que en la orientacion a objetos los principios
fundamentales son: encapsulación, ocultación de in-
formación, paso de mensajes, atado posterior, dele-
gación, clase - objetos, herencia - polimorfismo y
relaciones. Ver fig 1.
cual se cumple con un trabajo buscando ayuda en las
fuentes que tienen la información y en las que tienen
los servicios que puedan procesarla, es decir desde
la perspectiva del cliente el agente es quien tiene el
servicio que el cliente necesita, por tanto él delega la
tarea sin que ello implique delegar la responsabili-
dad, pues ella sigue estando en el cliente quien es
propietario de la información que será manipulada.
Éste principio es parecido a la división de tareas
manejado en otros modelos pero, dista en filosofía.
Una de las consecuencias más importantes que tra-
jeron los TADs, fue precisamente el poder hacer
concreta una abstracción, es decir poder inferir de
una clase una instancia que constituirá el objeto, cen-
tro del modelo. El hablar de objeto es hablar de iden-
tidad, es decir, la propiedad de ser un única entidad,
incluso en un mismo contexto en donde existan ob-
jetos de la misma especie, propiedad que lógicamen-
te modelos como el imperativo o funcional no po-
seen. Los objetos también pueden ser organizados
como estructuras jerárquicas de herencia, copiando
uno de los principios básicos de la naturaleza y plan-
teamiento fundamental de la teoría evolucionista de
Darwin. La taxonomía que permite organizar las es-
pecies también nos permitirá organizar nuestras abs-
tracciones de la realidad, en la que los objetos pueden
reutilizar características de sus padres, tanto estructu-
rales como de comportamiento, incluso modificarlas
y ampliarlas. Finalmente la orientación a objetos ofre-
ce el principio de las relaciones, en las que se estable-
cen las asociaciones, como relación estructural que
conecta los objetos y que permite la construcción de
modelos bien formados.
Cada uno de los principios de la orientación a ob-
jetos trae consigo mecanismos importantes para lo-
grar que la abstracción de la realidad sea, entre otras
características, coherente, flexible, escalable y segu-
ra. Otros modelos hablan de principios similares en
otras escalas, como es el caso del modelo relacional
en el cual se tienen tablas, campos y registros que
corresponderían a clases, atributos y objetos respec-
tivamente. Incluso se plantean otros esquemas en los
que no son tan identificables los principios orienta-
dos a objetos, como es el caso del modelo declarati-
vo. Pero sea cual sea el modelo se puede identificar
una estrecha relación con la orientación a objetos.
III. EL PAPEL DE LA PROGRAMACIÓN
EN LA ORIENTACIÓN A OBJETOS
Aunque un modelo busca expresar las diferentes
formas de ver la realidad, no es ajeno al esquema
computacional sobre el cual se monta y de hecho no
es ajeno a los mismos lenguajes de programación
sobre los cuales en últimas hacemos la construcción.
Ello ha hecho que dentro del mismo núcleo del pa-
radigma existan enfoques de lenguajes de programa-
ción que tratan de ajustarse a la propuesta orientada
a objetos, estas propuestas se pueden agrupar en
forma progresiva acorde al enfoque de programa-
Figura No. 1
portamientos en un módulo que divide el espacio de
nombres, en los contextos público y privado, intro-
duciéndose así, el concepto de privacidad. Es im-
portante tener presente que la encapsulación no es
propia de la orientación a objetos, el mismo modelo
imperativo, incluso el funcional, tienen encapsula-
ción a nivel de sus procedimientos, la diferencia ra-
dical está en que el objeto tiene un mayor nivel de
encapsulamiento, ya que en él se reúnen tanto ope-
raciones, como atributos. La encapsulación por sí
misma debe ser complementada con la ocultación
de información, la cual define cómo los servicios de
un objeto ponen a disposición sus métodos para que
otros objetos los utilicen, permitiendo que se hagan
las restricciones sobre lo que el objeto utiliza para sí
y lo que el objeto ofrece; además buscando al máxi-
mo que sus características estructurales no sean ac-
cedidas desde fuera a no ser que se empleen sus
interfaces controladas. Dado que la percepción de la
realidad se dirige hacia la abstracción de objetos es
necesario establecer un mecanismo que les permita
comunicarse, éste es precisamente el envío de men-
sajes, con el cual se garantiza que un objeto agente
utilice los servicios ofrecidos y que necesita de un
objeto cliente, previo cumplimiento del protocolo
exigido. Como en el paso de mensajes se exige un
origen, un destino y una información, a nivel de un
objeto en particular se asegura que sea exactamente
ese el servicio requerido y no otro, situación que otros
modelos no se garantiza. Cuando se solicita un ser-
vicio a un objeto se puede optar por definirlo con
antelación o definirlo justo en el momento del re-
querimiento, ésta posibilidad está estrechamente li-
gada con el comportamiento polimórfico que puede
tener un objeto y que garantiza una abstracción ver-
sátil. El modelo también permite utilizar delegación,
basada en el principio de burocracia perfecta en la
FUNCION
MODULO
TAD
CLASE
Los objetos
también pueden
ser organizados
como
estructuras
jerárquicas de
herencia,
copiando uno de
los principios
básicos de la
naturaleza y
planteamiento
fundamental
de la teoría
evolucionista
de Darwin.
La encapsula-
ción es uno de
los mecanismos
obtenidos por
evolución más
interesantes, éste
permite reunir
estados y com-
85
Ingeniería
ción, según Lee y Tepfenhart [3], como: programa-
ción basada en objetos, programación basada en cla-
ses, programación orientada a objetos, programación
orientada a objetos avanzados y programación orien-
tado a objetos en el límite. Ver fig 2.
la que se corrigen errores de modelos anteriores, se-
ñalando un camino de evolución de esquemas que
inicialmente fueron menos complejos y que con el
tiempo requieren absorber más mecanismos que per-
mitan hacer mejores representaciones de la realidad.
Los paradigmas tienen un ciclo de vida en el que se
desarrollan y son útiles hasta cuando se quedan cor-
tos para ofrecer una solución adecuada al problema
de organizar la complejidad. Justo en el momento en
el que un modelo no es lo suficientemente robusto
como para soportar el modelamiento de un problema
surge una crisis que exige de nuevas propuestas, éstas
generalmente son referidas a la crisis del software.
No se puede afirmar categóricamente que un mo-
delo sea mejor que otro, lo que si su puede sostener
es que un modelo sea más completo que otro, visto
desde la perspectiva de los mecanismos que un mo-
delo ofrece para permitir hacer una mejor abstrac-
ción de la realidad. Lógicamente entre más formas
de ver la realidad compile un modelo, resultará más
complejo utilizarlo.
La orientación a objetos es el modelo más amplia-
mente utilizado, por la variedad de características y
riqueza de sus mecanismos de abstracción. Sin em-
bargo no es el santo grial y de hecho que se ha teni-
do que expandir a propuestas más avanzadas como
la propuesta de componentes, patrones y arquitec-
turas que siguen teniendo su base en el modelo, pero
con conceptos más adecuados a las exigencias de las
nuevas tecnologías entre las cuales se debe destacar
las dirigidas a la web.
REFERENCIAS
[1] Ravi Sethi, Programming Languages, Concepts and Constructs.
Wilmington Delaware USA, Ed. Addison Wesley 1992.
[2] Thomas Kuhn, Estructura de las Revoluciones Científicas,
Mexico, Ed. Fondo de Cultura 1975.
[3] Richar C. Lee, William M. Tepfenhart, UML and C++: A Practical
Guide to Object Oriented Development, New Jersey, Ed. Prentice
Hall 1997, 446 p.
BIBLIOGRAFÍA
[1] Bertran Meyer, Construcción de software Orientado a objetos,
Segunda Edición, Madrid Ed. Prentice Hall 1999, 1248 p.
[2] Peter Coad y Edward Nash Yourdon, Object Oriented Analysis,
Englewood Cliffs N.J, Ed. Prentice Hall 1990.
[3] Richar C. Lee, William M. Tepfenhart, UML and C++ : A Practical
Guide to Object Oriented Development, New Jersey, Ed. Prentice
Hall 1997, 446 p.
[4] James Runbaught, Ivar Jacobson, and Grady Booch, The Unified
Modeling Language Reference Manual, USA, Ed. Addison-
Wesley Object Tecnology Series 1999, 480 p.
[5] Walker Royce, Software Project Management, USA, Ed. Addison-
Wesley Object Tecnology Series 1998, 448 p.
Sandro Javier Bolaños Castro
Ingeniero de Sistemas, Universidad Distrital. Candidato a Maestría
en Teleinformática, Universidad Distrital. Profesor Facultad de Inge-
niería, Universidad Distrital.
esquema de programación, añadiendo mecanismos
propios de las clases, como es la instanciación; el CLU
es el lenguaje representativo para este enfoque. La
programación orientada a objetos absorbe las carac-
terísticas del anterior esquema de programación, aña-
diendo mecanismos propios de la herencia y
recursión; el Small Talk es el lenguaje representativo
para este esquema. La programación orientada a ob-
jetos avanzados absorbe las características del ante-
rior esquema de programación, añadiendo caracte-
rísticas como la herencia múltiple, asociaciones,
agregaciones y comportamiento dinámico; el C++ es
el lenguaje representativo para este esquema. La pro-
gramación orientada a objetos en el límite observe las
características del anterior esquema de programación,
añadiendo el mecanismo propio del modelo declara-
tivo, las reglas; el R++ es el lenguaje representativo
para este esquema. En este último se hace la propues-
ta interesante de unir a través de un lenguaje el mode-
lo orientado a objetos y el modelo declarativo.
El poder contar con una clasificación, incluso den-
tro de la misma propuesta orientada a objetos es fun-
damental, como base de elección tecnológica en el
momento de construir los modelos que se plantean
sobre un problema. Se pierden muchos esfuerzos y
dinero si no se escoge adecuadamente una platafor-
ma y un buen modelo. Por tanto el objetivo primor-
dial es iniciar determinando los elementos concep-
tuales y tecnológicos que se requieren para sacar ade-
lante un proyecto de software.
CONCLUSIONES
Los modelos utilizados para la construcción de
software son influenciados por las tendencias que
en el medio imperen, principalmente económicas y
tecnológicas. Se aprecia además una progresión en
La programación
basada en objetos,
es una programa-
ción fundamentada
en los principios de
encapsulación y
ocultación de infor-
mación, carece de
los restantes princi-
pios de la orienta-
ción a objetos; el
Ada es lenguaje re-
presentativo para
este enfoque. La
programación ba-
sada en clases ab-
sorbe las caracte-
rísticas del anterior
Los modelos
utilizados para la
construcción de
software son
influenciados por
las tendencias
que en el medio
imperen,
principalmente
económicas y
tecnológicas.
PROGRAMACIÓN
BASADA EN OBJETOS
Encapsulación
ocultación de información
PROGRAMACIÓN
BASADA EN CLASES
Instanciación
PROGRAMACIÓN
ORIENTADA A OBJETOS
Herencia
Recursión
PROGRAMACIÓN ORIENTADA
A OBJETOS AVANZADOS
PROGRAMACIÓN ORIENTADA
A OBJETOS EN EL LÍMITE
Herencia Múltiple
Asociaciones
Agregaciones
Comportamiento dinámico
Reglas
PROGRAMACIÓN
BASADA EN OBJETOS
Encapsulación
ocultación de información
PROGRAMACIÓN
BASADA EN CLASES
Instanciación
PROGRAMACIÓN
ORIENTADA A OBJETOS
Herencia
Recursión
PROGRAMACIÓN ORIENTADA
A OBJETOS AVANZADOS
PROGRAMACIÓN ORIENTADA
A OBJETOS EN EL LÍMITE
Herencia Múltiple
Asociaciones
Agregaciones
Comportamiento dinámico
Reglas
Figura No. 2

Contenu connexe

Similaire à ParadigmasEnLaConstruccionDeSoftware-4797401.pdf

Metodologías del análisis y diseño de sistemas
Metodologías del análisis y diseño de sistemasMetodologías del análisis y diseño de sistemas
Metodologías del análisis y diseño de sistemasAndoni Vasquez
 
Sistemas Suaves o Blandos
Sistemas Suaves o BlandosSistemas Suaves o Blandos
Sistemas Suaves o BlandosJhon Querevalú
 
Investigación de operaciones I
Investigación de operaciones IInvestigación de operaciones I
Investigación de operaciones ICaro Soto
 
Subtema 6.2 el sistema de actividad humana como un lenguaje de modelación
Subtema 6.2   el sistema de actividad humana como un lenguaje de modelaciónSubtema 6.2   el sistema de actividad humana como un lenguaje de modelación
Subtema 6.2 el sistema de actividad humana como un lenguaje de modelaciónJoelin Sanchez
 
EC1 F1 Act 1 introducción aspectos básicos de IO
EC1 F1 Act 1 introducción aspectos básicos de IOEC1 F1 Act 1 introducción aspectos básicos de IO
EC1 F1 Act 1 introducción aspectos básicos de IORamonArmas1
 
La metodología para sistemas blandos de peter checkland
La metodología para sistemas blandos de peter checklandLa metodología para sistemas blandos de peter checkland
La metodología para sistemas blandos de peter checklandLuis Rossi
 
Diseño+de..
Diseño+de..Diseño+de..
Diseño+de..jasped
 
Dinamica de los sistemas ambientales
Dinamica de los sistemas ambientalesDinamica de los sistemas ambientales
Dinamica de los sistemas ambientalesmariarosasimonelli
 
Los sistemas de trabajo nos habla a cerca del diseño de procesos, actividades...
Los sistemas de trabajo nos habla a cerca del diseño de procesos, actividades...Los sistemas de trabajo nos habla a cerca del diseño de procesos, actividades...
Los sistemas de trabajo nos habla a cerca del diseño de procesos, actividades...Melva Edith Baeza Caballero
 
49949045 los-paradigmas-de-la-programacion
49949045 los-paradigmas-de-la-programacion49949045 los-paradigmas-de-la-programacion
49949045 los-paradigmas-de-la-programacionIvan Moreno
 
Seminario Almacenamiento Datos Hoy - 13/12/10
Seminario Almacenamiento Datos Hoy - 13/12/10Seminario Almacenamiento Datos Hoy - 13/12/10
Seminario Almacenamiento Datos Hoy - 13/12/10CAESCG.org
 

Similaire à ParadigmasEnLaConstruccionDeSoftware-4797401.pdf (20)

Metodologías del análisis y diseño de sistemas
Metodologías del análisis y diseño de sistemasMetodologías del análisis y diseño de sistemas
Metodologías del análisis y diseño de sistemas
 
Sistemas Suaves o Blandos
Sistemas Suaves o BlandosSistemas Suaves o Blandos
Sistemas Suaves o Blandos
 
Investigación de operaciones I
Investigación de operaciones IInvestigación de operaciones I
Investigación de operaciones I
 
Metodología de los sistemas suaves
Metodología de los sistemas suavesMetodología de los sistemas suaves
Metodología de los sistemas suaves
 
Subtema 6.2 el sistema de actividad humana como un lenguaje de modelación
Subtema 6.2   el sistema de actividad humana como un lenguaje de modelaciónSubtema 6.2   el sistema de actividad humana como un lenguaje de modelación
Subtema 6.2 el sistema de actividad humana como un lenguaje de modelación
 
Modelado y metodologias para aplicaciones web
Modelado y metodologias para aplicaciones webModelado y metodologias para aplicaciones web
Modelado y metodologias para aplicaciones web
 
9 565-8016cqd
9 565-8016cqd9 565-8016cqd
9 565-8016cqd
 
toma de decisiones
toma de decisionestoma de decisiones
toma de decisiones
 
EC1 F1 Act 1 introducción aspectos básicos de IO
EC1 F1 Act 1 introducción aspectos básicos de IOEC1 F1 Act 1 introducción aspectos básicos de IO
EC1 F1 Act 1 introducción aspectos básicos de IO
 
Ensayo common kads
Ensayo common kadsEnsayo common kads
Ensayo common kads
 
La metodología para sistemas blandos de peter checkland
La metodología para sistemas blandos de peter checklandLa metodología para sistemas blandos de peter checkland
La metodología para sistemas blandos de peter checkland
 
Diseño+de..
Diseño+de..Diseño+de..
Diseño+de..
 
Dinamica de los sistemas ambientales
Dinamica de los sistemas ambientalesDinamica de los sistemas ambientales
Dinamica de los sistemas ambientales
 
Los sistemas de trabajo nos habla a cerca del diseño de procesos, actividades...
Los sistemas de trabajo nos habla a cerca del diseño de procesos, actividades...Los sistemas de trabajo nos habla a cerca del diseño de procesos, actividades...
Los sistemas de trabajo nos habla a cerca del diseño de procesos, actividades...
 
49949045 los-paradigmas-de-la-programacion
49949045 los-paradigmas-de-la-programacion49949045 los-paradigmas-de-la-programacion
49949045 los-paradigmas-de-la-programacion
 
Metodologia OMT
Metodologia OMTMetodologia OMT
Metodologia OMT
 
Tecnicas de modelado y metodologias para aplicaciones Web
Tecnicas de modelado y metodologias para aplicaciones WebTecnicas de modelado y metodologias para aplicaciones Web
Tecnicas de modelado y metodologias para aplicaciones Web
 
Metodologia ds
Metodologia dsMetodologia ds
Metodologia ds
 
Expo
ExpoExpo
Expo
 
Seminario Almacenamiento Datos Hoy - 13/12/10
Seminario Almacenamiento Datos Hoy - 13/12/10Seminario Almacenamiento Datos Hoy - 13/12/10
Seminario Almacenamiento Datos Hoy - 13/12/10
 

Dernier

la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 

Dernier (20)

la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 

ParadigmasEnLaConstruccionDeSoftware-4797401.pdf

  • 1. 82 Ingeniería Paradigmas en la construcción de software Sandro Javier Bolaños Castro RESUMEN Enfrentarnos con el modelamiento de la realidad ha sido una de las tareas que desde los principios de la humanidad hemos realizado. Las pinturas que so- bre cavernas se han descubierto, no son más que la expresión de lo que el hombre sentía y veía en su entorno. Mucho después continuamos cuestionán- donos sobre nuestra realidad y cómo representarla de manera que se pueda tener control sobre ella. Ésta es justo la propuesta que persigue un paradigma; es- tructurar un conjunto de mecanismos que permitan de manera formal organizar una realidad, sobre la cual se puedan tomar decisiones. En este artículo, se presentan los enfoques más importantes acerca de cómo puede ser vista y modelada la realidad vía la construcción de software. Palabras claves: paradigma, mecanismos, modelamiento de la realidad, construcción de software ABSTRACT: PARADIGMS TOWARD SOFTWARE CONSTRUCTION The reality modeling has been one of the task that since the beginning of mankind has been made. The paintings discovered in caves are the expression of what man felt and saw around him. Sometime after that, we still continue asking ourselves about our reality and how to represent it in such away that we could master it. This is just the proposal that follows the paradigm, to structure a set of mechanims that allow, in a formal way, to organize the reality wich we could make decisions about. This article presents the most important points of view, about how reality, can be seen and modeled towards the software construction. Key Words: paradigm, mechanims, reality modeling, software construction. INTRODUCCIÓN “Un cohete que impulsaba el Mariner, una sonda espacial con destino a Venus, tuvo que ser destruido 290 segundos después del lanzamiento el 22 de julio de 1962, la pérdida se estimó entre 18 y 20 millones de dólares. El programa de computador en tierra debió contener el si- guiente fragmento: Si no hay contacto del radar con el cohete entonces no corregir su trayectoria El no fue ignorado inadvertidamente, así que el computa- dor en tierra continuó guiando a ciegas el cohete después de que se perdió el contacto con el radar. El cohete se extravió y fue destruido antes de que pudiera poner en peligro vidas hu- manas. El programa se había utilizado previamente, sin nin- guna falla, en cuatro viajes a la luna” [1]. Problemas como éste, en los que están involucradas grandes inversiones e incluso vidas humanas son fre- cuentes, la pregunta es quién es el responsable? Igual o quizá más compleja que la pregunta, es la respuesta, sin embargo, un buen punto de partida lo constituye la revisión del modelo de construcción de software que se emplee. Siempre que se trate de desarrollo de software se presenta un importante porcentaje de ries- gos, el punto clave es administrarlos y/o en lo posible eliminarlos. No es tarea fácil saber todas las posibles variaciones que un problema pueda tener, y más aun cuando se trata de solucionar un sistema altamente probabilístico. Un ingrediente que se le suma al pro- blema es el poder determinar con exactitud las varia- bles implicadas y sobre las cuales lógicamente se tie- nen que determinar mecanismos de control, es decir, se debe tener pleno conocimiento del dominio del problema sobre el cual se quiere ofrecer una solución. Todas las consideraciones que se tengan en cuen- ta para tratar de resolver el problema de desarrollar software confiable y de calidad, convergen sin lugar a dudas en el manejo de la complejidad que entorno al problema existe. Desafortunadamente no se tiene una fórmula mágica que garantice el ciento por cien- to de efectividad, pero si propuestas que se acercan a una solución satisfactoria. Éstas propuestas, que las podemos reunir como modelos o paradigmas, precisamente buscan organizar el conocimiento y así hacerlo accesible y manejable. Un paradigma se pue- de definir como: “un conjunto de teorías, estándares y métodos que representan en conjunción una forma de organi- zar el conocimiento”[2] . y es justo estos elementos cla- ves los que se proponen en modelos como el estruc- turado o el orientado a objetos. I. EVOLUCIÓN DE LOS MODELOS “Nuestra vida se desarrolla, con base en paradigmas, en supuestos teóricos generales, en técnicas y procedimientos de aplicación que adaptamos por criterio de una comunidad ”[2]. La apreciación de Kuhn apunta a las propuestas que entorno al software se han desarrollado, preci- samente ese conjunto de supuestos teóricos han sido producto de lo que históricamente ha pasado en las ciencias computacionales. En el sentido estricto de la palabra, desde la propuesta de Von Neumann acer- ca de la primera máquina, no se ha avanzado mucho, excepto por las mejoras tecnológicas que se han he- cho, pero fundamentalmente manteniéndose el mis- mo modelo. Éste es el primer parámetro de referen- A c a d e m i a y desar r o l l o Todas las consideraciones que se tengan en cuenta para tratar de resolver el problema de desarrollar software confiable y de calidad, convergen sin lugar a dudas en el manejo de la complejidad que entorno al problema existe.
  • 2. 83 Ingeniería cia sobre el cual crecerían las teorías que buscan dar una solución para el mundo real, apoyándose en una máquina sobre la cual se esquematiza una interpreta- ción lógica que permite organizar el conocimiento. El planteamiento teórico realizado en un modelo, debe mezclar la interpretación del mundo real con la interpretación que, al nivel de la máquina, se debe hacer del problema. Ambos enfoques deben con- verger a una solución viable sustentada sobre un sis- tema computacional. Dentro de los paradigmas de desarrollo de software más importantes podemos destacar: imperativo, funcional , de modelamiento de datos, declarativo, orientado objetos, incluso, el paradigma de modelamiento. La perspectiva que se tenía del mundo y que enmarcó el modelo imperativo, fue influenciada fun- damentalmente por la mismas ideas que concebían la organización como unidades funcionales y por tanto, las abstracciones significativas, igualmente debían ser procesos en los que entraban insumos para ser transformados en productos. El método utiliza- do por el paradigma imperativo fue el método es- tructurado en el que se reflejaba la organización, cuyo problema podía ser resuelto en una función, “proce- so”, a la cual se le entregaban argumentos, “insumos”, y de la cual se obtenía un resultado, “productos”. El modelo imperativo asume una realidad de procesos por tanto el principal énfasis es la acción, “orden”, sobre el conjunto de variables que configuran el pro- blema. Otra propuesta interesante es la hecha por el modelo funcional, ésta tiene una gran influencia del modelo imperativo, pues al igual que en éste, el cen- tro de abstracción lo constituye la función, la cual es tratada como valor de primera clase, y de ahí que herede su nombre. La diferencia radical está en el almacenamiento; mientras en el modelo imperativo es fundamental, en el modelo funcional el almace- namiento es implícito, eliminando los graves proble- mas de transparencia referencial. Aunque el modelo propone una buena alternativa a los problemas cola- terales ocasionados al tratar con funciones; es poco práctico en su semántica. Otro enfoque es el plan- teado por el paradigma de modelamiento de datos, en éste; se ofrece una solución basada fundamental- mente en la necesidad de contar con un esquema ágil para el manejo de información; el centro de abs- tracción se dirige hacia los datos que reunidos cons- tituyen entidades y que relacionados constituyen un sistema de información. El paradigma de modelamiento de datos o modelo relacional se apar- ta un poco del esquema propuesto por el modelo imperativo centrando su interés en las variables del problema, dejando las operaciones en segundo pla- no e incluso agrupadas dentro de un conjunto de interés compuesto entre otras por: consultas, bús- quedas, y almacenamientos. Otro de los enfoques interesante lo constituye el modelo declarativo, en éste; se organiza el conocimiento basándose en re- glas con las que se garantizan inferencias conducen- tes a soluciones. El modelo declarativo busca mos- trar la realidad como una consecuencia lógica de re- lacionar coherentemente las variables del problema. Finalmente se tiene como modelo relevante, el orien- tado a objetos, cuya abstracción de la realidad con- verge al objeto como entidad dotada de operacio- nes, información, semántica y relaciones significati- vas dentro del dominio del problema. El paradigma orientado a objetos emplea como método la orien- tación a objetos en la que se busca modelar una pers- pectiva del entorno, basada en atributos encapsulados junto con sus comportamientos. Cada enfoque propuesto por un paradigma enfatiza en una filosofía que pretende describir las formas de ver el mundo y cómo lógicamente expresarlo en una máquina. Sin embargo, algunos ofrecen mejores mecanismos para organizar el conocimiento y ha- cerlo fácilmente manejable. Se debe tener presente que un modelo no es la expresión pura de abstrac- ción de la realidad, más bien es una conceptualiza- ción combinada de modelos, por tanto podría ser un referente importante tomar el modelo que ofrezca los mecanismo que, de manera comprobada, permi- tan controlar mejor la complejidad. II. ¿POR QUÉ ESCOGER ORIENTACIÓN A OBJETOS? La orientación a objetos no es un modelo tan no- vedoso como se pudiera pensar, las primeras ideas sobre el modelo ya venían desde Small Talk, sin embargo, el predominio del modelo imperativo no lo dejó emerger con fuerza hasta los ochenta. Desde una perspectiva histórica, la orientación a objetos surge como resultado de un proceso de evolución en los mecanismos de abstracción, los cuales pue- den ser vistos como la progresión lógica que empe- zó en la función , luego pasó por los módulos y TADs para llegar finalmente a los objetos [3]. La función que se constituye como el principal mecanismo de abstracción en los modelos imperativo y funcional; es la primera forma importante de representar la rea- lidad, la consigna fundamental es “dividir y vencer”, como manera de romper un procedimiento en va- rios subprocedimientos y obtener una solución atomizando el problema; es la edad de oro del méto- do estructurado y del mundo de procesos. Las exi- gencias tecnológicas hacen que la función no sea lo suficientemente robusta como para soportar ciertos requerimientos de modelaje comenzando a acusar problemas como la falta de seguridad, identidad, reusabilidad a mayor escala, y consistencia entre otros. Aparece entonces el módulo en el cual se agrupan datos y operaciones, con lo cual se eliminan proble- mas, como la falta encapsulación, y se adicionan prin- cipios, como el de seguridad, permitiendo además establecer un espacio de nombres con visibilidad privada y pública, que constituyen implementación e interfaz respectivamente, pero aún faltaría algo importante, establecer mecanismos de instanciación. Cada enfoque propuesto por un paradigma enfatiza en una filosofía que pretende describir las formas de ver el mundo y cómo lógicamente expresarlo en una máquina.
  • 3. 84 Ingeniería Llegan entonces los TADs en los que se incorporan todas las ideas y mecanismos de los módulos, intro- duciendo la identidad producto de la instanciación y que permite sobre ella montar conceptos como reutilización, semántica y formalización. Finalmen- te, surgen los objetos como medio de hacer concre- to el planteamiento formal expresado en los TADs y sobre los cuales se incorporarán una serie de prin- cipios que hacen del modelo orientado a objetos, buena elección en el momento de pensar en la cons- trucción de software. Lee y Tepfenhart [3], propo- nen que en la orientacion a objetos los principios fundamentales son: encapsulación, ocultación de in- formación, paso de mensajes, atado posterior, dele- gación, clase - objetos, herencia - polimorfismo y relaciones. Ver fig 1. cual se cumple con un trabajo buscando ayuda en las fuentes que tienen la información y en las que tienen los servicios que puedan procesarla, es decir desde la perspectiva del cliente el agente es quien tiene el servicio que el cliente necesita, por tanto él delega la tarea sin que ello implique delegar la responsabili- dad, pues ella sigue estando en el cliente quien es propietario de la información que será manipulada. Éste principio es parecido a la división de tareas manejado en otros modelos pero, dista en filosofía. Una de las consecuencias más importantes que tra- jeron los TADs, fue precisamente el poder hacer concreta una abstracción, es decir poder inferir de una clase una instancia que constituirá el objeto, cen- tro del modelo. El hablar de objeto es hablar de iden- tidad, es decir, la propiedad de ser un única entidad, incluso en un mismo contexto en donde existan ob- jetos de la misma especie, propiedad que lógicamen- te modelos como el imperativo o funcional no po- seen. Los objetos también pueden ser organizados como estructuras jerárquicas de herencia, copiando uno de los principios básicos de la naturaleza y plan- teamiento fundamental de la teoría evolucionista de Darwin. La taxonomía que permite organizar las es- pecies también nos permitirá organizar nuestras abs- tracciones de la realidad, en la que los objetos pueden reutilizar características de sus padres, tanto estructu- rales como de comportamiento, incluso modificarlas y ampliarlas. Finalmente la orientación a objetos ofre- ce el principio de las relaciones, en las que se estable- cen las asociaciones, como relación estructural que conecta los objetos y que permite la construcción de modelos bien formados. Cada uno de los principios de la orientación a ob- jetos trae consigo mecanismos importantes para lo- grar que la abstracción de la realidad sea, entre otras características, coherente, flexible, escalable y segu- ra. Otros modelos hablan de principios similares en otras escalas, como es el caso del modelo relacional en el cual se tienen tablas, campos y registros que corresponderían a clases, atributos y objetos respec- tivamente. Incluso se plantean otros esquemas en los que no son tan identificables los principios orienta- dos a objetos, como es el caso del modelo declarati- vo. Pero sea cual sea el modelo se puede identificar una estrecha relación con la orientación a objetos. III. EL PAPEL DE LA PROGRAMACIÓN EN LA ORIENTACIÓN A OBJETOS Aunque un modelo busca expresar las diferentes formas de ver la realidad, no es ajeno al esquema computacional sobre el cual se monta y de hecho no es ajeno a los mismos lenguajes de programación sobre los cuales en últimas hacemos la construcción. Ello ha hecho que dentro del mismo núcleo del pa- radigma existan enfoques de lenguajes de programa- ción que tratan de ajustarse a la propuesta orientada a objetos, estas propuestas se pueden agrupar en forma progresiva acorde al enfoque de programa- Figura No. 1 portamientos en un módulo que divide el espacio de nombres, en los contextos público y privado, intro- duciéndose así, el concepto de privacidad. Es im- portante tener presente que la encapsulación no es propia de la orientación a objetos, el mismo modelo imperativo, incluso el funcional, tienen encapsula- ción a nivel de sus procedimientos, la diferencia ra- dical está en que el objeto tiene un mayor nivel de encapsulamiento, ya que en él se reúnen tanto ope- raciones, como atributos. La encapsulación por sí misma debe ser complementada con la ocultación de información, la cual define cómo los servicios de un objeto ponen a disposición sus métodos para que otros objetos los utilicen, permitiendo que se hagan las restricciones sobre lo que el objeto utiliza para sí y lo que el objeto ofrece; además buscando al máxi- mo que sus características estructurales no sean ac- cedidas desde fuera a no ser que se empleen sus interfaces controladas. Dado que la percepción de la realidad se dirige hacia la abstracción de objetos es necesario establecer un mecanismo que les permita comunicarse, éste es precisamente el envío de men- sajes, con el cual se garantiza que un objeto agente utilice los servicios ofrecidos y que necesita de un objeto cliente, previo cumplimiento del protocolo exigido. Como en el paso de mensajes se exige un origen, un destino y una información, a nivel de un objeto en particular se asegura que sea exactamente ese el servicio requerido y no otro, situación que otros modelos no se garantiza. Cuando se solicita un ser- vicio a un objeto se puede optar por definirlo con antelación o definirlo justo en el momento del re- querimiento, ésta posibilidad está estrechamente li- gada con el comportamiento polimórfico que puede tener un objeto y que garantiza una abstracción ver- sátil. El modelo también permite utilizar delegación, basada en el principio de burocracia perfecta en la FUNCION MODULO TAD CLASE Los objetos también pueden ser organizados como estructuras jerárquicas de herencia, copiando uno de los principios básicos de la naturaleza y planteamiento fundamental de la teoría evolucionista de Darwin. La encapsula- ción es uno de los mecanismos obtenidos por evolución más interesantes, éste permite reunir estados y com-
  • 4. 85 Ingeniería ción, según Lee y Tepfenhart [3], como: programa- ción basada en objetos, programación basada en cla- ses, programación orientada a objetos, programación orientada a objetos avanzados y programación orien- tado a objetos en el límite. Ver fig 2. la que se corrigen errores de modelos anteriores, se- ñalando un camino de evolución de esquemas que inicialmente fueron menos complejos y que con el tiempo requieren absorber más mecanismos que per- mitan hacer mejores representaciones de la realidad. Los paradigmas tienen un ciclo de vida en el que se desarrollan y son útiles hasta cuando se quedan cor- tos para ofrecer una solución adecuada al problema de organizar la complejidad. Justo en el momento en el que un modelo no es lo suficientemente robusto como para soportar el modelamiento de un problema surge una crisis que exige de nuevas propuestas, éstas generalmente son referidas a la crisis del software. No se puede afirmar categóricamente que un mo- delo sea mejor que otro, lo que si su puede sostener es que un modelo sea más completo que otro, visto desde la perspectiva de los mecanismos que un mo- delo ofrece para permitir hacer una mejor abstrac- ción de la realidad. Lógicamente entre más formas de ver la realidad compile un modelo, resultará más complejo utilizarlo. La orientación a objetos es el modelo más amplia- mente utilizado, por la variedad de características y riqueza de sus mecanismos de abstracción. Sin em- bargo no es el santo grial y de hecho que se ha teni- do que expandir a propuestas más avanzadas como la propuesta de componentes, patrones y arquitec- turas que siguen teniendo su base en el modelo, pero con conceptos más adecuados a las exigencias de las nuevas tecnologías entre las cuales se debe destacar las dirigidas a la web. REFERENCIAS [1] Ravi Sethi, Programming Languages, Concepts and Constructs. Wilmington Delaware USA, Ed. Addison Wesley 1992. [2] Thomas Kuhn, Estructura de las Revoluciones Científicas, Mexico, Ed. Fondo de Cultura 1975. [3] Richar C. Lee, William M. Tepfenhart, UML and C++: A Practical Guide to Object Oriented Development, New Jersey, Ed. Prentice Hall 1997, 446 p. BIBLIOGRAFÍA [1] Bertran Meyer, Construcción de software Orientado a objetos, Segunda Edición, Madrid Ed. Prentice Hall 1999, 1248 p. [2] Peter Coad y Edward Nash Yourdon, Object Oriented Analysis, Englewood Cliffs N.J, Ed. Prentice Hall 1990. [3] Richar C. Lee, William M. Tepfenhart, UML and C++ : A Practical Guide to Object Oriented Development, New Jersey, Ed. Prentice Hall 1997, 446 p. [4] James Runbaught, Ivar Jacobson, and Grady Booch, The Unified Modeling Language Reference Manual, USA, Ed. Addison- Wesley Object Tecnology Series 1999, 480 p. [5] Walker Royce, Software Project Management, USA, Ed. Addison- Wesley Object Tecnology Series 1998, 448 p. Sandro Javier Bolaños Castro Ingeniero de Sistemas, Universidad Distrital. Candidato a Maestría en Teleinformática, Universidad Distrital. Profesor Facultad de Inge- niería, Universidad Distrital. esquema de programación, añadiendo mecanismos propios de las clases, como es la instanciación; el CLU es el lenguaje representativo para este enfoque. La programación orientada a objetos absorbe las carac- terísticas del anterior esquema de programación, aña- diendo mecanismos propios de la herencia y recursión; el Small Talk es el lenguaje representativo para este esquema. La programación orientada a ob- jetos avanzados absorbe las características del ante- rior esquema de programación, añadiendo caracte- rísticas como la herencia múltiple, asociaciones, agregaciones y comportamiento dinámico; el C++ es el lenguaje representativo para este esquema. La pro- gramación orientada a objetos en el límite observe las características del anterior esquema de programación, añadiendo el mecanismo propio del modelo declara- tivo, las reglas; el R++ es el lenguaje representativo para este esquema. En este último se hace la propues- ta interesante de unir a través de un lenguaje el mode- lo orientado a objetos y el modelo declarativo. El poder contar con una clasificación, incluso den- tro de la misma propuesta orientada a objetos es fun- damental, como base de elección tecnológica en el momento de construir los modelos que se plantean sobre un problema. Se pierden muchos esfuerzos y dinero si no se escoge adecuadamente una platafor- ma y un buen modelo. Por tanto el objetivo primor- dial es iniciar determinando los elementos concep- tuales y tecnológicos que se requieren para sacar ade- lante un proyecto de software. CONCLUSIONES Los modelos utilizados para la construcción de software son influenciados por las tendencias que en el medio imperen, principalmente económicas y tecnológicas. Se aprecia además una progresión en La programación basada en objetos, es una programa- ción fundamentada en los principios de encapsulación y ocultación de infor- mación, carece de los restantes princi- pios de la orienta- ción a objetos; el Ada es lenguaje re- presentativo para este enfoque. La programación ba- sada en clases ab- sorbe las caracte- rísticas del anterior Los modelos utilizados para la construcción de software son influenciados por las tendencias que en el medio imperen, principalmente económicas y tecnológicas. PROGRAMACIÓN BASADA EN OBJETOS Encapsulación ocultación de información PROGRAMACIÓN BASADA EN CLASES Instanciación PROGRAMACIÓN ORIENTADA A OBJETOS Herencia Recursión PROGRAMACIÓN ORIENTADA A OBJETOS AVANZADOS PROGRAMACIÓN ORIENTADA A OBJETOS EN EL LÍMITE Herencia Múltiple Asociaciones Agregaciones Comportamiento dinámico Reglas PROGRAMACIÓN BASADA EN OBJETOS Encapsulación ocultación de información PROGRAMACIÓN BASADA EN CLASES Instanciación PROGRAMACIÓN ORIENTADA A OBJETOS Herencia Recursión PROGRAMACIÓN ORIENTADA A OBJETOS AVANZADOS PROGRAMACIÓN ORIENTADA A OBJETOS EN EL LÍMITE Herencia Múltiple Asociaciones Agregaciones Comportamiento dinámico Reglas Figura No. 2