Lenguajes orientados a eventos

Anuncio
Universidad Latinoamericana de Ciencia y Tecnología
Facultad de Ingeniería
Escuela de Ingeniería Informática
Trabajo final para optar por el grado de Licenciatura en Ingeniería
de Sistemas con énfasis en Desarrollo de Software
Tema: “Los lenguajes de informática orientados a objetos y
orientados a eventos”
Sustentante: Ing. Emilio Cordero Vindas
Cédula: 1-0841-0246
Profesor: Lic. Miguel Pérez Montero
I Cuatrimestre-2008
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Tabla de Contenidos
RESUMEN......................................................................................................................................................................... 3
PALABRAS CLAVE ......................................................................................................................................................4
ABSTRACT....................................................................................................................................................................... 5
WORDS KEY..............................................................................................................................................................6
INTRODUCCIÓN.............................................................................................................................................................7
PROGRAMACIÓN ORIENTADA A OBJETOS........................................................................................................ 8
CONCEPTOS FUNDAMENTALES. ......................................................................................................................9
CARACTERÍSTICAS DE LA POO ..................................................................................................................... 10
ALGUNOS LENGUAJES ORIENTADOS A OBJETOS................................................................................... 11
LENGUAJES ORIENTADOS A EVENTOS............................................................................................................. 12
LENGUAJES ORIENTADOS A EVENTOS ...................................................................................................... 13
VENTAJAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS ......................................................... 13
VENTAJAS DE LA PROGRAMACIÓN ORIENTADA A EVENTOS ........................................................ 13
ILUSTRACIÓN Nº 01 ............................................................................................................................................. 14
DIAGRAMA QUE RESUME LAS PRINCIPALES DIFERENCIAS ENTRE AMBOS PARADIGMAS.
........................................................................................................................................................................................ 14
TENDENCIAS ACTUALES EN LAS GRANDES Y MEDIANAS EMPRESAS EN EL USO DE DE
ESTAS TECNOLOGÍAS ............................................................................................................................................... 15
REINGENIERÍA DE PROCESOS ......................................................................................................................... 15
MODELIZACIÓN DE SISTEMAS ....................................................................................................................... 17
REINGENIERÍA DE SISTEMAS .......................................................................................................................... 18
POTENCIALES BENEFICIOS DE LOS LENGUAJES ORIENTADOS A OBJETOS ............................. 18
ALGUNAS ESTADÍSTICAS A NIVEL MUNDIAL EN EL USO DE ESTOS LENGUAJES ........................ 20
TABLA DE ESTADÍSTICAS DE LOS LENGUAJES DE PROGRAMACIÓN .......................................... 21
CONCLUSIÓN ............................................................................................................................................................... 22
REFERENCIAS BIBLIOGRÁFICAS ........................................................................................................................ 23
2
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Resumen
En la actualidad, las empresas deben preocuparse no sólo de capacitar o
contratar personal competente en el área de informática; sino también de
adquirir herramientas adecuadas para un desarrollo idóneo de los sistemas
informáticos requeridos.
Razón por la cual, es necesario que se informen un poco más acerca de las
herramientas de desarrollo existentes hoy día en el mercado y a su vez, es
indispensable saber cuáles de ellas irían de acuerdo con un rápido y vertiginoso
crecimiento en el mercado de las tecnologías y la oportunidad de crecimiento con
respecto a la competencia.
Las antiguas y tradicionales formas de desarrollo, que también hoy, se
encuentran en el mercado, ofrecen poca flexibilidad y son más difíciles de acoplar
a los nuevos desafíos que exige el mercado; a diferencia de las nuevas formas de
desarrollo que permiten la reutilización de código fuente; lo cual trae como
beneficios una mejor y óptima forma de adaptarse a un mercado en constante
cambio y crecimiento, el cual le exige cada vez más a las empresas y por ende, a
sus competidores en el área de tecnologías de información.
Por todo lo anteriormente expuesto, se considera recomendable prestarle
mucha atención a los lenguajes orientados a objetos y los orientados a eventos,
ya que los primeros nos proporcionan la característica principal de abstraer la
realidad por medio de objetos; cualidad que los hace verdaderamente únicos e
irreemplazables a la hora de desarrollar sistemas.
Palabras Clave
3
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Empresas
Mercado
Herramientas de desarrollo
Tecnologías de información
Sistemas de información
Orientación a objetos
Orientación a eventos
4
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Abstract
Currently companies must not worry only for training or hire staff highly qualified
in data technologies area, but for getting adequate tools for a suitable
development in required data processing systems.
For that reason, it’s necessary to be more informed about current development
tools in market, and at the same time, it's indispensable to know which of those
tools would go according to a fast and vertiginous growth in technology markets,
and growing opportunities, with regard to competition.
Old and traditional tools of development, also found in market today, offer less
flexibility and harder to couple with new required changes in market which
doesn't happen with new development tools, which let source code reuse, which
brings benefits such us a better and optimum way to get adapted to a constantly
changing and growing market, which demands companies y competitors, more
and more each time, in data technologies area.
5
“Los lenguajes de informática orientados a objetos y orientados a eventos"
WORDS KEY
•
•
•
•
•
•
•
Companies
Market
Development tools
Technologies of information
Information systems
Oriented to objects
Oriented to events
6
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Introducción
Por la actual y urgente necesidad de muchas empresas de maximizar la
eficiencia en sus servicios, a la misma vez de un rápido y vertiginoso desarrollo
en las Tecnología de Información, es que se requiere que los procesos y
desarrollos de sistemas estén bien estructurados y con capacidad de adaptarse al
cambio constante que exige el mercado, tanto a nivel mundial como nacional.
Esto requiere contar con sistemas que les procuren a los desarrolladores, las
capacidades suficientes para desarrollar sistemas informáticos a los que puedan
dárseles un rápido y continuo mantenimiento al código.
Si bien es cierto, muchas empresas no cuentan con lenguajes de
programación fáciles de adaptar al cambio que exige un mercado tan competitivo
como el actual, en materia de Tecnología de Información, es por este motivo que
la elección de la mejor herramienta de programación es de vital importancia en el
diario crecimiento de la empresa, así también, para una mejor competitividad y
una mayor capacidad de respuesta a los clientes; quienes hoy día son la base
esencial del desarrollo de tecnologías cada vez más eficientes y eficaces.
Algo que se debe apreciar a la hora de seleccionar una herramienta de
desarrollo, es la capacidad que tenga dicha herramienta para amoldarse a
continuos cambios en la empresa o en las empresas a las que se les brinde el
desarrollo de sistemas, ya sea por la facilidad que pueda proporcionársele al
cliente en sus posibles modificaciones; como la rapidez con que se permita dar
respuesta a los usuarios. Muchas veces las empresas optan por adquirir
herramientas de bajo costo, pero esto repercute en el costo de desarrollo, como
en la confiabilidad por parte de sus clientes.
En este momento, empresas como Microsoft y Sun1, entre otras, presentan
grandes alternativas viables y de gran calidad para el desarrollo de sistemas, con
esto le brindan a las empresas la posibilidad de escoger bien entre varias
opciones la herramienta o las herramientas que mejor se ajuste a ellas en cuanto
a precio y calidad.
1
Sun Microsystems es una empresa informática de Silicon Valley, fabricante de semiconductores y software. Fue
constituida en 1982 por el alemán Andreas von Bechtolsheim y los norteamericanos Vinod Koshla, Bill Joy, Scott
McNealy y Marcel Newman. Las siglas SUN se derivan de «Stanford University Network», proyecto que se había creado
para interconectar en red las bibliotecas de la Universidad de Stanford
7
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Programación orientada a objetos
La Programación Orientada a Objetos es un paradigma de programación
que usa objetos y sus interacciones para diseñar aplicaciones y programas de
computadora.
Está basado en varias técnicas, incluyendo herencia, modularidad,
polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década
de 1990. Actualmente, son muchos los lenguajes de programación que soportan
la orientación a objetos.
El comportamiento está definido por los procedimientos o métodos con que
puede operar dicho objeto, es decir, las operaciones se pueden realizar con él.
La identidad es una propiedad de un objeto que lo diferencia del resto,
dicho con otras palabras, es su identificador. La programación orientada a objetos
expresa un programa como un conjunto de éstos, que colaboran entre ellos para
realizar tareas. Esto permite modularizar los programas, lo que genera
funcionalidades reutilizables a lo largo de las rutinas de programación, de manera
tal que se realicen “llamadas” a los mismos, sin tener que rescribir el código, con
lo que se consigue darle el toque de funcionalidad que requiere todo desarrollo de
un sistema complejo de programación.
De esta forma, un objeto contiene toda la información que permite definirlo
e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente
a objetos de una misma clase, al poder tener valores bien diferenciados en sus
atributos. A su vez, los objetos disponen de mecanismos de interacción llamados
métodos, que favorecen la comunicación entre ellos. Esta comunicación, a su vez,
favorece el cambio de estado en los propios objetos. Esta característica logra que
se traten como unidades indivisibles, en las que no se separan, ni deben
separarse el estado y el comportamiento.
Los objetos se comunican entre sí logrando mejorar las funcionalidades del
código y del producto final, dicha comunicación debe quedar implícita a la hora de
escribir el código, para que con simples rutinas se recree un proceso extenso.
Los métodos (comportamiento) y atributos (estado) están estrechamente
relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase
requiere métodos para poder tratar los atributos con los que cuenta. El
programador debe pensar en ambos conceptos, indistintamente, sin separar ni
darle mayor importancia a ninguno de ellos, pues al hacerlo podría producir el
hábito erróneo de crear clases contenedoras de información por un lado y clases
con métodos que manejen a las primeras por el otro. De esta manera, se estaría
8
“Los lenguajes de informática orientados a objetos y orientados a eventos"
realizando una programación estructurada
programación orientado a objetos.
camuflada
en
un
lenguaje
de
Esto difiere de la programación estructurada tradicional, en la que los datos
y los procedimientos están separados y sin relación, ya que lo único que se busca
es el procesamiento de unos datos de entrada para obtener otros de salida. La
programación estructurada anima al programador a pensar en términos de
procedimientos o funciones, y en segundo lugar, en las estructuras de datos que
esos procedimientos manejan. En la programación estructurada sólo se escriben
funciones que procesan datos. Por el contrario, los programadores que emplean
este nuevo paradigma, primero definen objetos para luego enviarles mensajes,
solicitándoles que realicen sus métodos por sí mismos.
Conceptos Fundamentales.
La programación orientada a objetos es una nueva forma de programar que trata
de encontrarle una solución a estos problemas. Introduce nuevos conceptos, que
superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los
siguientes (Wikipedia, abril 2008):
Objeto: Entidad provista de un conjunto de propiedades o atributos (datos) y de
comportamiento o funcionalidad (métodos). Corresponden a los objetos reales del
mundo que nos rodea o a objetos internos del sistema (del programa). Es una
instancia a una clase.
Clase: Definiciones de las propiedades y comportamiento de un tipo de objeto
concreto. La instanciación es la lectura de estas definiciones y la creación de un
objeto a partir de ellas.
Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya
ejecución se desencadena tras la recepción de un "mensaje", es lo que el objeto
puede hacer y puede producir un cambio en las propiedades del objeto, o la
generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
Evento: Un suceso en el sistema (tal como una interacción del usuario con la
máquina o un mensaje enviado por un objeto), la reacción que puede
desencadenar un objeto, es decir, la acción que genera.
Mensaje: Comunicación dirigida a un objeto, que le ordena que ejecute uno de
sus métodos con ciertos parámetros asociados al evento que lo generó.
9
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Propiedad o atributo: Contenedor de un tipo de datos asociados a un objeto (o
a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto
se define como sus características predeterminadas, y cuyo valor puede ser
alterado por la ejecución de algún método.
Estado interno: Propiedad invisible de los objetos, que puede ser únicamente
accedida y alterada por un método del objeto, y que se utiliza para indicar
distintas situaciones posibles para el objeto (o clase de objetos).
Características de la POO
Abstracción: Cada objeto en el sistema sirve como modelo de un "agente"
abstracto que puede realizar trabajo, informar y cambiar su estado, y
"comunicarse" con otros objetos en el sistema, sin revelar cómo se implementan
estas características. Los procesos, las funciones o los métodos pueden también
ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para
ampliar una abstracción.
Encapsulamiento: Significa reunir todos los elementos que puedan considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite
aumentar la cohesión de los componentes del sistema.
Principio de ocultación: Cada objeto está aislado del exterior, es un módulo
natural y cada tipo de objeto expone una interfaz a otros objetos, que especifica
cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las
propiedades de un objeto contra su modificación, ante aquellos quienes no tengan
derecho a acceder a ellas, solamente los propios métodos internos del objeto
pueden acceder a su estado. Algunos lenguajes relajan esto, permitiendo un
acceso directo a los datos internos del objeto de una manera controlada y
limitando el grado de abstracción. La aplicación entera se reduce a un agregado o
rompecabezas de objetos.
Polimorfismo: Comportamientos diferentes, asociados a objetos distintos,
pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto que se esté usando. O dicho de otro
modo, las referencias y las colecciones de objetos pueden contener objetos de
diferentes tipos y la invocación de un comportamiento en una referencia
producirá el comportamiento correcto para el tipo real del objeto referenciado.
Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama
asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios
más estáticos (en "tiempo de compilación") de polimorfismo, tales como las
plantillas y la sobrecarga de operadores de C++.
10
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Herencia: Las clases no están aisladas, sino que se relacionan entre sí, formando
una jerarquía de clasificación. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen. La herencia organiza y
facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser
definidos y creados como tipos especializados de objetos preexistentes. Estos
pueden compartir (y extender) su comportamiento sin tener que re-implementar
su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en
clases y éstas en árboles o enrejados que reflejan un comportamiento común.
Cuando un objeto hereda de más de una clase que de otra, se dice que hay
herencia múltiple; esta característica no está soportada por algunos lenguajes
(como Java y C#).
Lenguajes orientados a objetos
Algunos lenguajes orientados a objetos.
ActionScript, ActionScript 3, Ada, C++, C#, Delphi,Java, Perl (soporta herencia
múltiple), PHP (en su versión 5),PowerBuilder, Python, Smalltalk, Turbo Pascal
7,VB.NET, Visual FoxPro, XBase++, Gambas, entre otros.
Muchos de estos lenguajes de programación no son puramente orientados a
objetos, sino que son híbridos que combinan la POO con otros paradigmas,
algunos otros han ido incorporando características del paradigma de
programación orientada a objetos, para ir adaptándose a los cambios que
requiere el entorno y las nuevas técnicas de programación, para ir así
cambiándose a una nueva generación de desarrollo, lo cual está en un proceso de
maduración.
11
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Lenguajes orientados a eventos
Como ya se ha mencionado, una serie de lenguajes de programación cuentan con
características particulares en torno al manejo de estructuras internas y con
elementos de programación tradicionales, lo que hace que éstos cuenten con
poca modularidad y por ende, con poca capacidad para reutilizar código como se
puede hacer con los lenguajes orientados a objetos, por el hecho de crear
objetos, encapsular funciones, reutilizar código, realizar llamadas a rutinas y
otras características adicionales.
Los lenguajes visuales orientados al evento y con manejo de componentes dan al
usuario, que no cuenta con mucha experiencia en desarrollo, la posibilidad de
construir sus propias aplicaciones, al utilizar interfaces gráficas sobre la base de
ocurrencia de eventos.
Para soportar este tipo de desarrollo interactúan dos tipos de herramientas, una
que permite realizar diseños gráficos y un lenguaje de alto nivel que permite
codificar los eventos. Con dichas herramientas es posible desarrollar cualquier
tipo de aplicaciones basadas en el entorno.
Visual Basic es uno de los lenguajes de programación que más entusiasmo
despiertan entre los programadores de computadoras, tanto expertos como
novatos. Se tiene la posibilidad de realizar desarrollos rápidos, con grandes
aplicabilidades y de forma gráfica, motivo por el cual se tiene como predilecto
para los desarrolladores con poca experiencia, en función de la economía de
tiempo que implica dicha incursión.
“Visual Basic es un lenguaje de programación visual, también llamado lenguaje
de 4ta. Generación” (Wikipedia, 2008). Esto quiere decir que un gran número de
tareas se realizan sin escribir código, simplemente con operaciones gráficas
realizadas con el ratón sobre la pantalla.
Son eventos típicos el click sobre un botón, hacer doble click sobre el nombre de
una archivo para abrirlo, arrastrar un icono, pulsar una tecla o combinación de
teclas, elegir una opción de un menú, escribir en una caja de texto o formulario, o
simplemente mover el ratón, también encontramos los soportes a los métodos y
propiedades, que no son más que acciones en tiempo de ejecución, algunos no
son programados por el usuario, sino que son las propias del lenguaje.
La Programación Orientada a Eventos facilita el proceso de programación visual
por su practicidad al generar rápidamente algunas aplicaciones basadas en
objetos visuales.
12
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Lenguajes Orientados a Eventos
Visual Basic 6.0, SmartFlow, Visual C, entre otros.
Ventajas de la Programación Orientada a Objetos
Uniformidad. Pues la representación que los objetos llevan implica el análisis, el
diseño y la codificación de los mismos.
Comprensión. Tanto los datos que componen los objetos, como los
procedimientos que los manipulan, están agrupados en clases, que se
corresponden con las estructuras de información que el programa trata.
Flexibilidad. Al tener relacionados los procedimientos que manipulan los datos
con los datos a tratar, cualquier cambio que se realice sobre ellos quedará
reflejado automáticamente en cualquier lugar donde estos datos aparezcan.
Estabilidad. Dado que permite un tratamiento diferenciado de aquellos objetos
que permanecen constantes en el tiempo sobre aquellos que cambian con
frecuencia, faculta aislar las partes del programa que permanecen inalterables en
el tiempo.
Reusabilidad. La noción de objeto permite que programas que traten las
mismas estructuras de información reutilicen las definiciones de objetos
empleadas en otros programas e incluso los procedimientos que los manipulan.
De esta forma, el desarrollo de un programa puede llegar a ser una simple
combinación de objetos ya definidos donde éstos están relacionados de una
manera particular.
Ventajas de la Programación Orientada a Eventos
Múltiples eventos que dependen del sistema operativo y del lenguaje de
programación utilizado.
Al ejecutarse un programa así programado, se iniciará con el código
correspondiente a su ejecución y luego, éste esperará que ocurra un evento.
Cuando ocurre, se ejecutará el código correspondiente al evento que se realizó.
13
“Los lenguajes de informática orientados
rientados a objetos y orientados a eventos"
Ilustración Nº 01
Diagrama que resume las principales diferencias entre ambos
paradigmas.
Fuente: http://www.monografias.com/trabajos14/progorie/progorie.shtml
Extraída del trabajo cuyo título es “Programación
“Programación orientada a Objetos”
Objetos y en inglés
(OOP, Object Oriented Programming)
Programming), del autor Tejerina Martín
14
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Tendencias actuales en las grandes y medianas empresas en el
uso de de estas tecnologías
“Muchos de los conceptos subyacentes a la orientación a objetos existen desde
hace más de treinta años, sin embargo, la tecnología orientada a objetos es una
disciplina relativamente reciente que ha surgido como respuesta a lo que fue
llamada la “crisis del software” (Wikipedia, marzo 2008) .
La causa se encuentra en que anteriormente, con los medios de programación
tradicionales, la gestión de un gran sistema software era más difícil que mantener
otros tipos de estructuras complejas como puentes o aviones.
En cuanto a la plataforma Java, los servidores de aplicaciones basados en la
especificación EJB (“Enterprise JavaBeans”), incorporan un motor de persistencia
a través del mecanismo conocido como “entity beans”, sin embargo, éstos no son
un mecanismo de persistencia totalmente recomendable, pues no permiten
implementar algunas características de la programación orientada a objetos (por
ejemplo, herencia) y además, obligan a una forma de programar diferente a los
objetos normales de Java (POJOs, “Plain Old Java Objects”, por sus siglas en
inglés).
La plataforma .NET, por su relativa novedad, está más inmadura que la
plataforma Java. Además, al ser una plataforma propietaria es más difícil
encontrar proyectos de código abierto para ella. Por esta razón, es decir, que no
hay tanta variedad de motores de persistencia en esta plataforma es que
recientemente, Microsoft ha anunciado un motor de persistencia llamado
Objectspaces para .NET 2004. Mientras tanto, se puede usar ORM.NET, que es un
motor de persistencia comercial para .NET.
Reingeniería de Procesos
La reingeniería de procesos comerciales, BPR (Business Process Re-Engineering) y
la reingeniería comercial, BRE (Business ReEngineering) plantean nuevos desafíos
y tareas para los profesionales de Tecnologías de la Información (TI). Estos
desafíos son reflejo, a su vez, de aquellos a los que se enfrentan las empresas:
alcanzar mejoras radicales en las áreas de costos, calidad, servicio y rapidez. La
tecnología de objetos no resuelve estas tareas mediante una mejora incremental
de la forma en que se crean Sistemas de Información, sino cambiando
radicalmente su estructura.
15
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Si se descartan las viejas formas de trabajar, las posibilidades de que sean
eliminados también los Sistemas de Información subyacentes que sirven de
soporte a los procesos comerciales, son mayores. Al aumentar el número de
empresas y organizaciones que utilizan las Tecnologías de la Información como
un componente de sus productos o servicios, o como un medio de ofrecer sus
productos/servicios a sus clientes, la capacidad de realizar una reingeniería de los
Sistemas de Información se convertirá en un componente crítico de la
reingeniería BPR.
La tecnología de objetos es un enfoque dirigido a crear Sistemas de Información
con base en componentes que pueden ser extraídos de sistemas existentes y
reagrupados para producir nuevos Sistemas. Estos componentes se conocen
como objetos. Resulta interesante que este nuevo enfoque respecto a las
Tecnologías de la Información va en apoyo de muchas de las ideas que están
detrás de la reingeniería BPR. En lugar de examinar los beneficios de un enfoque
de tecnología de objetos en relación con el software, en este artículo se analizan
los beneficios y las sinergias resultantes de utilizar la tecnología de objetos en el
contexto de programas BPR y BRE.
Los Sistemas de Información tradicionales se han inclinado sobre todo por
unidades funcionales monolíticas, dando lugar a aplicaciones que son ellas
mismas monolíticas. En contraste, los sistemas orientados a objetos contienen
conjuntos de objetos en cooperación, que pueden ser empaquetados en
aplicaciones y ser compartidos por éstas. Estos objetos pueden ser grandes o
pequeños, y tan sencillos o complejos como la actividades que automatizan o
soportan.
En última instancia, los sistemas orientados a objetos desecharán el bagaje
funcional de las aplicaciones y se concentrarán en suministrar objetos con los que
los usuarios deberán interactuar en algún momento durante un proceso
comercial, ya sea para realizar algún cómputo o para extraer/manipular alguna
información. El fraccionamiento de la estructura monolítica de las aplicaciones
tendrá efectos profundos en la forma en que se definan los Sistemas de
Información, en cómo se realice su reingeniería y en cómo sean construidos. A
continuación, se analiza con más detalle cada una de estas áreas.
En Costa Rica, una institución pública como el Ministerio de Hacienda, a través de
su Dirección General de Aduanas, por medio del Departamento de Informática de
Aduanas ha puesto en marcha el exitoso producto TIC@, que es la modernización
del sistema de control aduanero existente hasta el año 2006, este producto se
vale de las tecnologías de última generación para publicar vía Web los datos más
relevantes en esta área de competencia, vemos como navieras u otros entes
pueden transmitir sus cargas vía XML, mediante una red de valor agregado
denominada VAN, la cual procesa la información transmitida y la almacena en las
respectivas tablas, interactuando con los datos del sistema, posteriormente
generando un mensaje XML de respuesta, el cual llega casi de manera inmediata
16
“Los lenguajes de informática orientados a objetos y orientados a eventos"
a su destino, lo cual agiliza definitivamente los procesos, por tanto, se tiene como
un ejemplo alentador, el uso de tecnologías orientadas a objeto en una macro
aplicación como lo es el sistema de aduanas de nuestro país, lo cual ha provocado
una verdadera revolución en cuanto a la manera de realizar los trámites de
importación y exportación a nivel nacional.
Todo esto implicó una reingeniería en los procesos y por supuesto, en los
sistemas que en su mayoría utilizaban el modo carácter para realizar las mismas
operaciones y demoraban más tiempo, por lo que merece mención importante el
esfuerzo de los visionarios para poder realizar un trabajo de alto nivel y así
aliarse de la tecnología para incrementar la productividad y mejorar la
recaudación de los impuesto provenientes de estas actividades.
Modelización de Sistemas
El cambio desde una visión funcional a una visión de proceso plantea nuevos
requerimientos en relación con la forma en que se especifican y diseñan
Sistemas. No será suficiente con descomponer funcionalmente la lógica de una
aplicación, manteniéndola separada de los datos sobre los que actúa.
Lo que se necesita es un enfoque, en la creación de modelos, que pueda ser
utilizado tanto para la conversión o mapping de procesos comerciales, para
modelizar los objetos necesarios para el soporte de esos procesos. La tarea
cambiará, desde el soporte de una función comercial, hasta soportar un flujo de
trabajo o workflow a lo largo de un proceso comercial. Los sistemas workflow
convencionales, que intentan orquestar el trabajo entre aplicaciones monolíticas y
tareas manuales, no podrán en última instancia, ofrecer la flexibilidad que
requieren las iniciativas BPR. En contraste, los Sistemas creados utilizando
objetos están fundados inherentemente en un modelo workflow explícito que
anima a los diseñadores de Sistemas a distribuir el trabajo entre múltiples objetos
que actúan en cooperación.
La tecnología de orientación a objetos ofrece técnicas de modelización que
permiten definir objetos y relacionarlos de tal manera que puedan desarrollarse
como procesos comerciales o como Sistemas de información. Como existe un
lenguaje uniforme para expresar procesos comerciales y procesos de Información
es posible establecer una relación entre ambos.
Los procesos comerciales pueden actuar interactivamente con objetos software, y
el modelo de workflow puede establecerse explícitamente de manera que muestre
los cambios entre tareas manuales y automáticas.
La utilización de técnicas de modelización para describir empresas y actividades
comerciales no es nueva, ya se han utilizado técnicas de modelización de datos
tradicionales para crear modelos de empresa, no obstante, a diferencia de los
enfoques tradicionales, las técnicas orientadas a objetos no obligan a quienes
17
“Los lenguajes de informática orientados a objetos y orientados a eventos"
crean los modelos de procesos comerciales a dividir sus modelos artificialmente
en datos y procesos, sino que los objetos contienen todos los aspectos de los
datos y de su comportamiento, y pueden utilizarse para representar entidades
comerciales estáticas, como departamentos, tareas comerciales como por
ejemplo, aprobaciones de créditos, y subprocesos como tramitación de pedidos.
Una consecuencia importante de esta aproximación de modelado uniforme es
que, con el tiempo, el ajuste entre el funcionamiento comercial y los Sistemas de
Información se mejorará. Este aspecto de reconfigurabilidad es el que está
posicionando a los proyectos BPR como una ventaja comercial progresiva, en
lugar de los puntos de revolución aislados que eran percibidos hasta ahora.
Reingeniería de Sistemas
Los cambios incrementales en los procesos comerciales quedarán reflejados en
cambios en el modelo de objeto comercial y pueden dar lugar a cambios en el
modelo de objeto de software. Los cambios radicales en los procesos comerciales
pueden dar lugar a la creación de modelos diferentes de objetos comerciales y de
software, también es posible reconstituir los modelos reutilizando objetos que
hayan sido previamente definidos y re-orquestando la forma en que actúan
interactivamente entre sí. Además, pueden introducirse nuevos objetos que
representen nuevas prácticas comerciales, y relacionarlos con objetos antiguos.
Potenciales Beneficios de los Lenguajes Orientados a Objetos
Los beneficios de la programación orientada a objetos son más que los que
pueden verse a simple vista. El énfasis en las propiedades esenciales de un
objeto, obliga desarrollador a pensar cuidadosamente qué es un objeto y qué es
lo que hace con el resultado de que el sistema es normalmente más preciso,
general y robusto que si pusiéramos el énfasis en los procedimientos y los datos
por separado.
“La reutilización de modelos de objetos existentes es de importancia crítica, la
estructuración o empaquetamiento y la gestión de toda la variedad y número de
objetos” (www.design-nation.net, noviembre, 2004). Considerar cada objeto
comercial como una tarea elemental dentro de un proceso comercial, por
ejemplo, resultaría inmanejable. Las técnicas de modelización de objetos
permiten estructurar los objetos como componentes de otros objetos
(acumulaciones) y también permiten que los objetos sean refinamientos u
optimizaciones de otros objetos. Estos dos mecanismos de estructuración hacen
posible crear y desarrollar modelos de objetos en formas que resulten más útiles
y significativas.
La acumulación o suma de objetos permite agruparlos para formar objetos
mayores, mientras que el refinamiento de los objetos hace posible la portabilidad
de modelos de objetos, ya sea entre empresas y organizaciones de un mismo
sector, o entre organizaciones de diferentes sectores. Así, un modelo de objeto
18
“Los lenguajes de informática orientados a objetos y orientados a eventos"
que representase la atención a clientes en el sector hotelero, si fuera lo
suficientemente general podría ser refinado por dos cadenas de hoteles para
introducir prácticas y conceptos comerciales específicos, o podría ser utilizado por
una organización (también con los refinamientos apropiados) en el sector de los
viajes de empresa.
Para un informático, el darle mantenimiento a los programas día a día va a ser
fácil, ya que se programan muchas clases, en vez de poner código en botones y si
se utiliza la encapsulación y el polimorfismo será más fácil hacer llamados a
objetos ya hechos y éstos a su vez, pueden modificarse e irse mejorando en el
camino. Ilustremos este aspecto con un ejemplo: si se tiene que hacer un sitio
Web, el trabajo que presenta cargarse dos campos de texto y un botón, para que
el usuario introduzca su nombre de usuario y contraseña y envíe esos datos a un
script en php en el servidor, para que éste compruebe si dicho usuario puede
visualizar el resto de la Web, esta verificación sería en pocas líneas, por lo cual es
más práctico y mejor estructurado.
19
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Algunas estadísticas a nivel mundial en el uso de estos lenguajes
Índice de TIOBE Software institución u organismo que mide la popularidad de los
lenguajes de programación, además, TIOBE Software elabora una lista mensual
haciendo cálculos mediante los resultados que arrojan motores de búsqueda
populares, como GOOGLE, MSN y YAHOO.
“Java sigue estando en primer lugar, se recuperó del descalabro que sufriera a
mediados del 2004” (WWW.TIOBE.COM, Abril 2008), por lo que en la actualidad
es uno de los lenguajes más difundidos.
•
•
•
•
•
C está actualmente de segundo.
PHP está de cuarto, sólido.
Basic subió… sigue siendo una gran alternativa.
Perl bajó a su nivel más bajo en cinco años.
C# sigue duro en el séptimo lugar.
Por allá abajo en el puesto 20 y subiendo está VB.NET.
De los datos sorprendentes es que Visual FoxPro subió muchísimo en un año y
lenguajes antiguos, como Pascal, siguen siendo populares y se usan en sus
versiones recientes.
Un dato increíble: COBOL lo siguen usando.
20
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Tabla de Estadísticas de los Lenguajes de Programación
La siguiente tabla hace una comparación entre abril del año 2007 y abril del
2008, según TIOBE2, acerca de la evolución y uso de los lenguajes de
programación más utilizados.
Tabla 1
Estadísticas TIOBE, Popularidad de Lenguajes de Programación.
Posición
Posición
Abril del 2008 Abril del 2007
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
5
4
3
6
7
8
10
11
9
14
13
12
21
17
22
18
16
31
Lenguaje de
Programación
Porcentaje Anual
de Uso
Java
C
(Visual) Basic
PHP
C++
Perl
Python
C#
Ruby
Delphi
JavaScript
D
PL/SQL
SAS
Pascal
Lisp/Scheme
FoxPro/xBase
COBOL
Ada
ColdFusion
20.529%
14.684%
11.699%
10.328%
9.945%
5.934%
4.534%
3.834%
2.855%
2.665%
2.434%
1.169%
0.608%
0.572%
0.513%
0.476%
0.459%
0.409%
0.393%
0.384%
Factor
Diferencial de
Uso
+2.17%
-0.25%
+3.42%
+1.69%
-0.77%
-0.10%
+0.72%
+0.28%
+0.06%
+0.33%
-0.70%
-0.35%
-1.28%
-1.63%
-0.06%
-0.20%
-0.09%
-0.24%
-0.29%
+0.11%
Tomado de la siguiente dirección:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
2
TIOBE es una comunidad que se encarga de medir la popularidad de los lenguajes de programación actuales basándose
mensualmente en la disponibilidad mundial de ingenieros, cursos, vendedores de software
21
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Conclusión
Se propone la toma de conciencia por parte de las empresas que
desarrollan sus propios sistemas; así como la investigación minuciosa, por parte
de las dedicadas a desarrollar sistemas a terceros, acerca de qué tipo de
herramientas de desarrollo existen en el mercado y sobre su posible potencial.
Esta recomendación se brinda para que con todos los argumentos del caso
puedan definir y adoptar nuevas y mejores herramientas, puesto que muchas de
estas empresas se dejan llevar por herramientas convencionales y que a futuro
resulten baratas, pero poco flexibles y muy difíciles de adaptar al cambio que
exige un mercado en continuo crecimiento, como lo es el mercado de las
Tecnologías de Información.
Se le presenta al lector una nueva alternativa para elegir una buena
herramienta que lo lleve al éxito de sus metas empresariales y que conlleve
proyección hacia el futuro; por medio de la comparación de dos tipos principales
de programación utilizada por las herramientas de desarrollo de sistemas más
comunes; para que pueda determinarse cuál de estos dos tipos de programación
será la que mejor le convenga, es que se presentó el muestreo de sus
características, de sus debilidades y fortalezas.
Mediante algunos gráficos comparativos se le detalló al lector cómo ha
evolucionado la programación orientada a objetos, a tal punto que hace ver a las
demás tipos de programación como si fueran herramientas obsoletas, situación
que nos pone a pensar al respecto y a reflexionar en qué posición vamos a estar
en el futuro, a nivel de empresa como y a nivel personal, como desarrolladores
que somos, si seguimos dándole crédito a metodologías de desarrollo poco
flexibles y de lento desarrollo.
22
“Los lenguajes de informática orientados a objetos y orientados a eventos"
Referencias Bibliográficas
Wiki pedía la Enciclopedia Libre. Recuperado el 3 de Marzo de 2008;
“Programación Orientada a Objetos.”
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos.
Wiki pedía la Enciclopedia Libre. Recuperado el 3 de octubre de 2007;
http://es.wikipedia.org/wiki/Programaci%C3%B3n_dirigida_por_eventos.
DICCIONARIO INFORMÁTICO.
http://www.alegsa.com.ar/Dic/programacion%20orientada%20a%20eventos.php
Pagina “Monografías”; Recuperado el 3 de Febrero de 2008;
www.monografias.com/trabajos14/progorie/progorie.shtml
Blog “design-nation.blog/es”; Públicado en Noviembre 27, 2004;
http://www.design-nation.net/es/archivos/000433.php
TIOBE Programming Community for May 2008.
“PowerShell on its way to the top 20”
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Articulo “Crisis del Software”
http://www.lacaraoscura.com/2006/03/16/tpci-tiobe-programming-communityindex/
http://es.wikipedia.org/wiki/Crisis_del_Software
Articulo “Reingenieria de Software; Reingenieria de Sistemas”;
Danielle Romero 15/04/2004.
http://www.elrinconcito.com/articulos/Reingenieria/Articulo.htm
Fundamentos del diseño y la programación orientada a objetos
Sergio M Fernández Sastre, editorial McGraw Hill
Ingeniería de software, Sommerville I, editorial Addison-Wesley
Object-Oriented Programming, Coad P . Editorial Yourdon Press.
23
Descargar