Sei sulla pagina 1di 4

Programacin Orientada a Eventos

umh1467-PV

La programacin dirigida por eventos es un paradigma mas eran secuenciales, tambin llamados Batch. Un pro-
de programacin en el que tanto la estructura como la eje- grama secuencial arranca, lee parmetros de entrada, pro-
cucin de los programas van determinados por los suce- cesa estos parmetros, y produce un resultado, todo de
sos que ocurran en el sistema, denidos por el usuario o manera lineal y sin intervencin del usuario mientras se
que ellos mismos provoquen. ejecuta.
Para entender la programacin dirigida por eventos, po- Con la aparicin y popularizacin de los PC, el software
demos oponerla a lo que no es: mientras en la programa- empez a ser demandado para usos alejados de los clsi-
cin secuencial (o estructurada) es el programador el que cos acadmicos y empresariales para los cuales era nece-
dene cul va a ser el ujo del programa, en la programa- sitado hasta entonces, y qued patente que el paradigma
cin dirigida por eventos ser el propio usuario o lo que clsico de programacin no poda responder a las nuevas
sea que est accionando el programa el que dirija el u- necesidades de interaccin con el usuario que surgieron a
jo del programa. Aunque en la programacin secuencial raz de este hecho.
puede haber intervencin de un agente externo al progra-
ma, estas intervenciones ocurrirn cuando el programa-
dor lo haya determinado, y no en cualquier momento co- 1 Deteccin de eventos
mo puede ser en el caso de la programacin dirigida por
eventos.
En contraposicin al modelo clsico, la programacin
El creador de un programa dirigido por eventos debe de- orientada a eventos permite interactuar con el usuario en
nir los eventos que manejarn su programa y las acciones cualquier momento de la ejecucin. Esto se consigue de-
que se realizarn al producirse cada uno de ellos, lo que bido a que los programas creados bajo esta arquitectu-
se conoce como el administrador de evento. Los eventos ra se componen por un bucle exterior permanente encar-
soportados estarn determinados por el lenguaje de pro- gado de recoger los eventos, y distintos procesos que se
gramacin utilizado, por el sistema operativo e incluso encargan de tratarlos. Habitualmente, este bucle externo
por eventos creados por el mismo programador. permanece oculto al programador que simplemente se en-
En la programacin dirigida por eventos, al comenzar la carga de tratar los eventos, aunque en algunos entornos de
ejecucin del programa se llevarn a cabo las inicializa- desarrollo (IDE) ser necesaria su construccin.
ciones y dems cdigo inicial y a continuacin el pro- Ejemplo de programa orientado a eventos en pseudo len-
grama quedar bloqueado hasta que se produzca algn guaje:
evento. Cuando alguno de los eventos esperados por el
While (true){ Switch (event){ case mous-
programa tenga lugar, el programa pasar a ejecutar el
se_button_down: case mouse_click: case keypressed:
cdigo del correspondiente administrador de evento. Por
case Else: } }
ejemplo, si el evento consiste en que el usuario ha hecho
clic en el botn de play de un reproductor de pelculas, se
ejecutar el cdigo del administrador de evento, que ser
el que haga que la pelcula se muestre por pantalla. 2 Problemtica
Un ejemplo claro lo tenemos en los sistemas de progra-
macin Lexico y Visual Basic, en los que a cada elemento La programacin orientada a eventos supone una compli-
del programa (objetos, controles, etctera) se le asignan cacin aadida con respecto a otros paradigmas de pro-
una serie de eventos que generar dicho elemento, como gramacin, debido a que el ujo de ejecucin del softwa-
re escapa al control del programador. En cierta manera
la pulsacin de un botn del ratn sobre l o el redibujado
del control. podramos decir que en la programacin clsica el ujo
estaba en poder del programador y era este quien deci-
La programacin dirigida por eventos es la base de lo que da el orden de ejecucin de los procesos, mientras que
llamamos interfaz de usuario, aunque puede emplearse en programacin orientada a eventos, es el usuario el que
tambin para desarrollar interfaces entre componentes de controla el ujo y decide.
Software o mdulos del ncleo.
Pongamos como ejemplo de la problemtica existente,
En los primeros tiempos de la computacin, los progra- un men con dos botones, botn 1 y botn 2. Cuando el

1
2 7 VASE TAMBIN

usuario pulsa botn 1, el programa se encarga de recoger 5.1 Web


ciertos parmetros que estn almacenados en un che-
ro y calcular algunas variables. Cuando el usuario pulsa Javascript
el botn 2, se le muestran al usuario por pantalla dichas
variables. Es sencillo darse cuenta de que la naturaleza
indeterminada de las acciones del usuario y las caracte- 5.2 Escritorio Windows
rsticas de este paradigma pueden fcilmente desembocar
en el error fatal de que se pulse el botn 2 sin previamente Visual Basic
haber sido pulsado el botn 1. Aunque esto no pasa si se
Visual C++
tienen en cuenta las propiedades de dichos botones, ha-
ciendo inaccesible la pulsacin sobre el botn 2 hasta que
previamente se haya pulsado el botn 1.
5.3 .NET Framework (Escritorio Windows y
Web)
3 GUIs / Interfaces Grcas de Visual Basic
Usuarios C#

Con la evolucin de los lenguajes orientados a eventos, J#


la interaccin del software con el usuario ha mejorado
enormemente permitiendo la aparicin de interfaces que, Lexico
aparte de ser la va de comunicacin del programa con el
usuario, son la propia apariencia del mismo. Estas inter-
faces, tambin llamadas GUI (Graphical User Interface), 5.4 Otros
han sido la herramienta imprescindible para acercar la in-
formtica a los usuarios, permitiendo en muchos casos, a AS3
principiantes utilizar de manera intuitiva y sin necesidad
de grandes conocimientos, el software que ha colaborado
a mejorar la productividad en muchas tareas. 6 Bibliotecas
Uno de los perifricos que ha cobrado mayor importancia
tras la aparicin de los programas orientados a eventos ha 6.1 C y C++
sido el ratn, gracias tambin en parte a la aparicin de los
sistemas operativos modernos con sus interfaces grcas. Qt
Estas suelen dirigir directamente al controlador interior
que va entrelazado al algoritmo. GTK+

6.2 Java
4 Herramientas visuales de desa-
rrollo AWT

Swing
Con el paso del tiempo, han ido apareciendo una nueva
generacin de herramientas que incluyen cdigo que au- SWT
tomatiza parte de las tareas ms comunes en la deteccin
y tratamiento de eventos.
6.3 Web
Destacan particularmente los entornos de programacin
visual que conjugan una herramienta de diseo grca ASP.NET (Mediante Javascript con el Modelo
para la GUI y un lenguaje de alto nivel. Entre estas herra- Code-behind)
mientas se encuentra la conocida Visual Basic, lenguaje
altamente apreciado por principiantes debido a la facili-
dad para desarrollar software en poco tiempo y con pocos
conocimientos, y denostado por tantos otros debido a su 7 Vase tambin
falta de eciencia.
Programacin estructurada

Paradigma de programacin
5 Lenguajes
Programacin lgica
3

8 Referencias
Grant Palmer: Java Event Handling, Prentice Hall,
ISBN 0-13-041802-1.
David Luckham: The Power of Events - An Intro-
duction to Complex Event Processing in Distributed
Enterprise Systems, Addison-Wesley, ISBN 0-201-
72789-7.

George S. Fishman: Discrete-Event Simulation - Mo-


deling, Programming, and Analysis, Springer, ISBN
0-387-95160-1.
Bertrand Meyer (2004): The power of abstraction,
reuse and simplicity: an object-oriented library for
event-driven design, in Festschrift in Honor of Ole-
Johan Dahl, eds. Olaf Owe et al., Springer-Verlag,
Lecture Notes in Computer Science 2635, en lnea.

Miro Samek: Practical Statecharts in C/C++: Quan-


tum Programming for Embedded Systems, CMP
Books, ISBN 1-57820-110-1.
Faison, Ted (2006). Event-Based Programming: Ta-
king Events to the Limit. Apress. ISBN 1-59059-643-9.

En espaol:

Adolfo Lozano Tello: Iniciacin a la programacin


utilizando lenguajes visuales orientados a eventos,
Ed.Bellisco Ediciones Tcnicas y Cientcas, ISBN
84-95279-49-5. ISBN 978-84-95279-49-1

9 Enlaces externos
Description from Portland Pattern Repository
4 10 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

10 Origen del texto y las imgenes, colaboradores y licencias


10.1 Texto
Programacin dirigida por eventos Fuente: https://es.wikipedia.org/wiki/Programaci%C3%B3n_dirigida_por_eventos?oldid=
87471649 Colaboradores: Moriel, Ascnder, Niqueco, RobotQuistnix, GermanX, Zimio, Djiraan, Chlewbot, CEM-bot, Jorgelrm,
Thijs!bot, Cguzmanceti, Dgilperez, Poc-oban, Myrecaba, Jmvkrecords, AchedDamiman, Ayleen, VolkovBot, SieBot, PaintBot,
Bigsus-bot, Derlis py, Farisori, Fanattiq, Varrojo, Alexbot, UA31, Diego.viola, AVBOT, MastiBot, Diegusjaimes, Arjuno3, Jamierlend,
SuperBraulio13, Manuelt15, Xqbot, Jkbw, Botarel, Viento Turquesa, RedBot, KamikazeBot, Humbefa, EmausBot, Waka Waka, Frank
sin Otra, Mega-buses, Addbot y Annimos: 56

10.2 Imgenes
Archivo:Mergefrom.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/0/0f/Mergefrom.svg Licencia: Public domain Cola-
boradores: ? Artista original: ?

10.3 Licencia del contenido


Creative Commons Attribution-Share Alike 3.0

Potrebbero piacerti anche