Programación Orientada a Objetos.

13
Robles Robles Mario 1. Programación en lenguaje orientado a objetos. Vivimos en un mundo lleno de objetos: aviones, trenes, automóviles, teléfonos, libros, computadoras, etc. Sin embargo hasta hace poco, las técnicas de programación no reflejaban esto. Es muy importante destacar que cuando se hace referencia a la programación orientada a objetos, no se habla de unas cuantas características nuevas añadidas a un lenguaje de programación. La programación orientada a objetos (POO) implica una nueva forma de pensar acerca del proceso de descomposición de problemas y de desarrollo de programas que dan solución virtualmente a cualquier problema planteado y susceptible a ser resuelto mediante la implementación de software. 1.1 Desarrollo histórico de lenguaje orientado a objetos Cuando las computadoras fueron desarrolladas en la década de 1940, eran usadas por los matemáticos con propósitos militares, para calcular la trayectoria de las bombas y descifrar las ordenes y transmisiones diplomáticas del enemigo. Después de la segunda guerra mundial, aun eran utilizadas sobre todo por matemáticos para hacer cálculos. Esta realidad se reflejó en el nombre del primer lenguaje de alto nivel disponible en forma comercial en 1957. El nombre era FORTRAN, el cual era un acrónimo de FORmula TRANslation (traducción de formulas). Esta situación ha cambiado de manera considerable, sobre todo por ciertas razones. Una de las razones del desencanto por los programas orientados a procedimientos ha sido el fracaso de los lenguajes tradicionales de procedimientos para proporcionar un medio adecuado para limitar los costos del software. La POO surge en la historia como un intento para dominar la complejidad y abstracción que, de forma innata posee el software. Tradicionalmente la manera de enfrentar esta complejidad ha sido usando lo que se llama programación estructurada, que consiste en descomponer el programa en subproblemas y mas subproblemas hasta llegar a acciones muy simples y fáciles de codificar, por ejemplo, un programa que resuelve ecuaciones de segundo grado se descompone en una secuencia de acciones: primero pedir el valor de los coeficientes a. b. y c; después, calcular el valor del discriminante; y por ultimo en función del signo del discriminante calcular ninguna, una o dos raíces. Se observa que esta metodología de programación implica convertir el programa en acciones mas simples, que pueden observarse directamente como verbos como pedir, comprobar, calcular… La programación orientada a objetos es otra forma de abordar los problemas. Este nuevo método de descomposición es la descomposición en objetos.

description

Programación Orientada a Objetos.

Transcript of Programación Orientada a Objetos.

  • Robles Robles Mario1. Programacin en lenguaje orientado a objetos.

    Vivimos en un mundo lleno de objetos: aviones, trenes, automviles, telfonos, libros, computadoras, etc. Sin embargo hasta hace poco, las tcnicas de programacin no reflejaban esto.

    Es muy importante destacar que cuando se hace referencia a la programacin orientada a objetos, no se habla de unas cuantas caractersticas nuevas aadidas a un lenguaje de programacin. La programacin orientada a objetos (POO) implica una nueva forma de pensar acerca del proceso de descomposicin de problemas y de desarrollo de programas que dan solucin virtualmente a cualquier problema planteado y susceptible a ser resuelto mediante la implementacin de software.

    1.1 Desarrollo histrico de lenguaje orientado a objetos

    Cuando las computadoras fueron desarrolladas en la dcada de 1940, eran usadas por los matemticos con propsitos militares, para calcular la trayectoria de las bombas y descifrar las ordenes y transmisiones diplomticas del enemigo. Despus de la segunda guerra mundial, aun eran utilizadas sobre todo por matemticos para hacer clculos. Esta realidad se reflej en el nombre del primer lenguaje de alto nivel disponible en forma comercial en 1957. El nombre era FORTRAN, el cual era un acrnimo de FORmula TRANslation (traduccin de formulas).

    Esta situacin ha cambiado de manera considerable, sobre todo por ciertas razones. Una de las razones del desencanto por los programas orientados a procedimientos ha sido el fracaso de los lenguajes tradicionales de procedimientos para proporcionar un medio adecuado para limitar los costos del software.

    La POO surge en la historia como un intento para dominar la complejidad y abstraccin que, de forma innata posee el software. Tradicionalmente la manera de enfrentar esta complejidad ha sido usando lo que se llama programacin estructurada, que consiste en descomponer el programa en subproblemas y mas subproblemas hasta llegar a acciones muy simples y fciles de codificar, por ejemplo, un programa que resuelve ecuaciones de segundo grado se descompone en una secuencia de acciones: primero pedir el valor de los coeficientes a. b. y c; despus, calcular el valor del discriminante; y por ultimo en funcin del signo del discriminante calcular ninguna, una o dos races. Se observa que esta metodologa de programacin implica convertir el programa en acciones mas simples, que pueden observarse directamente como verbos como pedir, comprobar, calcular

    La programacin orientada a objetos es otra forma de abordar los problemas. Este nuevo mtodo de descomposicin es la descomposicin en objetos.

  • Robles Robles MarioDentro de la filosofa de la POO no es primario el qu hay que hacer en el problema, sino en cual es el escenario real del mismo, y se intenta simular ese escenario en el programa.

    Los lenguajes de programacin tradicionales no orientados a objetos como C o Basic basan su funcionamiento en el concepto de procedimiento o funcin, que es simplemente un conjunto de instrucciones que operan sobre argumentos y producen un resultado. De este modo un programa estructurado no es mas que una sucesin de llamadas a funciones, ya sean estas del sistema operativo o proporcionadas por el propio lenguaje, o desarrolladas por el mismo usuario. En el caso de los lenguajes orientados a objetos como es el caso de C++ y Java, el elemento bsico no es la funcin, sino un elemento denominado precisamente objeto.

    Un objeto es una representacin en un programa de un concepto, y contiene toda la informacin necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.

    Con este nuevo enfoque, la POO es una nueva forma de pensar, una manera distinta de enfocar los problemas. Ah radica la dificultad de aprender un lenguaje totalmente orientado a objetos, como es Java o C++, sin conocer previamente los pilares de la programacin orientada a objetos.

    1.2 Clases y objetos

    Es fundamental para la orientacin a objetos el concepto de un tipo de datos abstracto, el cual es definido por el programador. La construccin en un tipo de datos se basa tanto en variables como en funciones; las variables proporcionan el medio para crear configuraciones de datos nuevas y las funciones proporcionan el medio para ejecutar operaciones en estas estructuras.

    La programacin orientada a objetos es otra forma de abordar los problemas. Este nuevo mtodo de descomposicin es la descomposicin en objetos. Dentro de la filosofa de la POO no es primario el qu hay que hacer en el problema, sino en cual es el escenario real del mismo, y se intenta simular ese escenario en el programa.

    Si se analiza cmo se plantea un problema cualquiera en la realidad, se observa que lo que hay en la realidad son identidades (otro nombre que se podra usar para describir lo que se llama objetos). Estas entidades u objetos poseen un conjunto de propiedades o atributos, y un conjunto de mtodos, mediante los cuales muestran su comportamiento. Y no solo eso, a medida que se avanza en la POO, se puede descubrir poco a poco, todo un conjunto de interpelaciones entre las entidades, guiadas por el intercambio de mensajes: los objetos del programa responden a estos mensajes mediante la ejecucin de ciertas acciones.

  • Robles Robles MarioUna forma de ejemplificar lo anterior es mediante la siguiente situacin:

    [Un domingo por la tarde estn en casa una madre y su hijo viendo la televisin, y de repente la madre siente un fuerte dolor de cabeza; como es natural, lo primero que hace el hijo es tratar de encontrar una caja de aspirinas.]

    Esta situacin no extraa para toda persona puede ser analizada en clave de objetos: el objeto hijo ha recibido un mensaje procedente del objeto madre. El objeto hijo responde al mensaje o evento ocurrido mediante una accin: buscar aspirinas. La madre no tiene que decirle al hijo donde debe buscar, es responsabilidad del hijo resolver el problema como considere mas oportuno. Al objeto madre le basta con haber emitido un mensaje.

    [El hijo no encuentra aspirinas en el botiqun y decide acudir a la farmacia para comprar aspirinas. En la farmacia es atendido por una persona que le pregunta qu desea, a lo que el hijo responde: una caja de aspirinas, por favor. La farmacutica desaparece para regresar al poco tiempo con una caja de aspirinas en la mano. El hijo paga el importe, se despide y vuelve a su casa. All le da un comprimido a su madre, la cual al cabo de un rato comienza a experimentar una notable mejora hasta la completa desaparicin del dolor de cabeza.]

    El hijo como responsable de un cometido, sabe lo que debe hacer hasta conseguir una aspirina. Para ello entra en relacin con un nuevo objeto, la farmacutica, quien responde al mensaje o evento de peticin del objeto hijo con la bsqueda de la aspirina. El objeto farmacutica es ahora el responsable de la bsqueda de la aspirina. El objeto farmacutica lanza un mensaje al objeto hijo solicitando el pago del importe, y el objeto hijo responde a tal evento con la accin de pagar.

    Es evidente ahora en esta situacin la existencia de objetos que se diferenciaban de los dems por un conjunto de caractersticas o propiedades, y por un conjunto de acciones que realizaban en respuesta a unos eventos que se originaban en otros objetos o en el entorno. Tambin es claro que aunque todos los objetos tienen propiedades distintas como el color del cabello, el grado de simpata o el peso, todos tienen un conjunto de atributos en comn por ser ejemplos de una entidad superior llamada ser humano. A este patrn de objetos (en nuestro caso ser humano lo llamaremos clase).

    Con este ejemplo se explica que los objetos son instancias o casos concretos de las clases, que no son mas que plantillas que definen las variables y los mtodos comunes a todos los objetos de un cierto tipo. La clase ser humano tendr entre sus muchas variables miembro o variables que la componen: color de cabello, color de ojos, estatura, peso, fecha de nacimiento, etc. A partir de una clase se podrn generar todos los objetos que se deseen especificando valores particulares para cada una de las variables definida por la clase. As encontraremos el objeto farmacutica, cuyo color

  • Robles Robles Mariode cabello es rubio, color de ojos azul, estatura 175 cm, peso 50Kg, y as sucesivamente.

    Formalmente un objeto no es mas que un conjunto de variables (o datos) y mtodos (o funciones) relacionados entre si. Los objetos en programacin se usan para modelar objetos o entidades del mundo real. Un objeto es, por tanto, la representacin en un programa de un concepto y contiene toda la informacin necesaria: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.

    Normalmente en el mundo real existen varios objetos de un mismo tipo, o como diremos enseguida, de una misma clase. Por ejemplo, mi bicicleta es una de las muchas bicicletas que existen en el mundo. Usando la terminologa de la POO, diremos que mi bicicleta es una instancia de la clase de objetos conocida como bicicletas. Todas las bicicletas tienen algunos estados o atributos (color, marcha actual, cadencia actual, dos ruedas) y algunos mtodos (cambiar de marcha, frenar) en comn. Sin embargo, el estado particular de cada bicicleta es independiente del estado de las dems bicicletas. La particularizaron de estos atributos puede ser diferente. Es decir, una bicicleta podra ser azul y otra roja pero ambas tienen el comn el hecho de tener una variable color. De ese modo podemos definir una plantilla de variables y mtodos para todas las bicicletas. Las plantillas para crear objetos son denominadas clases.

    Una clase es una plantilla que define las variables y los mtodos que son comunes para todos los objetos de un cierto tipo

    En el ejemplo, la clase bicicleta definira variables miembro comunes a todas las bicicletas, como la marcha actual, la cadencia actual, etc. Esta clase tambin debe declarar e implementar los mtodos o funciones miembro que permiten al ciclista cambiar de marcha, frenar y cambiar la cadencia de pedaleo.

    1.3 Mtodos.

    Los atributos del objeto (estado) y lo que el objeto puede hacer (comportamiento) estn expresados por las variables y los mtodos que componen el objeto respectivamente. Por ejemplo, un objeto que modelase una bicicleta en el mundo real tendra variables que indicaran el estado actual de la bicicleta: su velocidad es de 20km/h, su cadencia de pedaleo 90rpm y su marcha actual es la 5a. Estas variables se conocen formalmente como variables instancia o variables miembro porque contienen el estado de un objeto bicicleta particular y, en POO, un objeto particular se denomina instancia.

    Ademas de estas variables el objeto bicicleta podra tener mtodos para frenar, cambiar la cadencia de pedaleo y cambiar de marcha (la bicicleta no tendra que tener un mtodo para cambiar su velocidad pues esta es funcin de la cadencia de pedaleo, la marcha en la que est y de si los frenos estn

  • Robles Robles Mariosiendo utilizados o no, entre otros muchos factores). Estos mtodos se denominan formalmente mtodos instancia o mtodos miembro, ya que cambia el estado de una instancia u objeto bicicleta particular. La siguiente figura muestra una bicicleta modelada como un objeto.

    El diagrama del objeto bicicleta muestra las variables objeto en el ncleo o centro del objeto y los mtodos rodeando el ncleo y protegindolo de otros objetos del programa. Este hecho de empaquetar o proteger las variables miembro con los mtodos miembro se denomina encapsulamiento. Este dibujo conceptual que muestra el ncleo de variables miembro del objeto protegido por una membrana protectora de mtodos o funciones miembro es la representacin ideal de un objeto y es el ideal que los programadores de objetos suelen buscar. Sin embargo a menudo, por razones practicas es posible que un objeto desee exponer alguna de sus variables miembro, o proteger otras de sus propios mtodos o funciones miembro. Por ejemplo Java permite establecer 4 niveles de proteccin de las variables y de las funciones miembro para casos como este. Los niveles de proteccin determinan que objetos y clases pueden acceder a que variables o a que mtodos.

    De cualquier forma, el hecho de encapsular las variables y las funciones miembro relacionadas proporciona dos importantes beneficios a los programadores de aplicaciones:

    Capacidad de crear mdulos: El cdigo fuente de un objeto puede escribirse y mantenerse independientemente del cdigo fuente del resto de los objetos. De esta forma, un objeto puede pasarse fatuamente de una parte a otra del programa. Podemos dejar nuestra bicicleta a un amigo y sta seguir funcionando.

    Cambiar Marcha

    Frenar

    Cambiar Cadencia

    20 km/h

    90 rpm

    5a marcha

    Bicicleta modelada como objeto:

    Atributos: Velocidad Cadencia Marcha

    Metodos: Cambiar Marcha Frenar Cambiar cadencia

  • Robles Robles MarioProteccin de informacin: Un objeto tendr una interfaz publica perfectamente definida que otros objetos podrn usar para comunicarse con el. De esta forma, los objetos pueden mantener informacin privada y pueden cambiar el modo de operar de sus funciones miembros sin que esto afecte a otros objetos que usen estas funciones miembro. Es decir, no necesitamos entender como funciona el mecanismo de cambio de marcha para hacer uso de el.

    1.3 Mensajes.

    Normalmente un nico objeto por si solo no es muy til. En general, un objeto aparece como un componente mas de un programa o una aplicacin que contiene otros muchos objetos. Es precisamente haciendo uso de esta interaccin como programadores consiguen una funcionalidad de mayor orden y modelar comportamientos mucho mas complejos. Una bicicleta (a partir de ahora se puede particularizar) colgada de un gancho en el garaje no es mas que una estructura de aleacin de titanio y un poco de goma. Por si sola, la bicicleta (por poner una bicicleta en concreto) es incapaz de desarrollar ninguna actividad. La bicicleta es realmente til encanto que otro objeto (una persona) interacta con ella (pedalea).

    Los objetos de un programa interactuar y se comunican entre ellos por medio de mensajes. Cuando un objeto A quiere que otro objeto B ejecute una de sus funciones miembro (mtodos de B), el objeto A manda un mensaje al objeto B. En ocasiones, el objeto que recibe el mensaje necesita mas informacin para saber exactamente lo que tiene que hacer; por ejemplo, cuando se desea cambiar la marcha de una bicicleta, se debe indicar la marcha a la que se quiere cambiar. Esta informacin se pasa junto con el mensaje en forma de parmetro.

    La siguiente figura muestra las tres partes que componen un mensaje:

    1.- El objeto al cual se manda el mensaje (La Bicicleta)

    2.- El mtodo o funcin miembro que debe ejecutar (Cambiar de Marcha)

    3.- Los parmetros que necesita ese mtodo (Marcha)

    Estas tres partes del mensaje (objeto destinatario, mtodo y parmetros) son suficiente informacin para que el objeto que recibe el mensaje ejecute el mtodo o la funcin miembro solicitada. Los mensajes proporcionan dos ventajas importantes:

    1.- El comportamiento de un objeto esta completamente determinado (a excepcin del acceso directo a variables miembro publicas) por sus mtodos, as que los mensajes representan todas las posibles interacciones que pueden realizarse entre objetos.

  • Robles Robles Mario2.- Los objetos no necesitan formar parte del mismo proceso, ni siquiera residir en un mismo ordenador para mandarse mensajes entre ellos (y de esta manera interactuar).

    1.4 Herencia.

    Una vez que hemos visto el concepto de clase y de objeto, estamos en condiciones de introducir otra de las caractersticas bsicas de la programacin orientada a objetos: el uso de la herencia.

    El mecanismo de herencia permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automticamente todo su comportamiento, pero ademas pueden introducir caractersticas particulares propias que las diferencian.

    Como se ha visto, los objetos se definen a partir de clases. Con el mero hecho de conocer a que clase pertenece un objeto, ya se sabe bastante sobre el. Puede que no sepamos lo que es la espada, pero si nos dicen que es una bicicleta, ya sabremos que tiene dos ruedas, manillar, pedales

    La POO va mas all, permitiendo definir clases a partir de otras clases ya construidas. Por ejemplo, las bicicletas de montaa, las de carretera y los tndems son todos, en definitiva, bicicletas. En trminos de POO, son subclases o clases derivadas de la clase bicicleta. Anlogamente, la clase bicicleta es la clase base o superase de las bicicletas de montaa, las de carretera y los tndems.

    Cada subclase hereda los estados (en forma de declaracin de variables) de la superase de la cual deriva. Las bicicletas de montaa, las de carretera y los tndems comparten algunos estados: cadencia, velocidad ademas, cada subclase hereda los mtodos de su superclase.

    Las bicicletas de montaa, las de carretera y los tndems comparten algunos comportamientos: frenar y cambiar la cadencia de pedaleo, por ejemplo.

    Sin embargo, las clases derivadas no se encuentran limitadas por los estados y sus comportamientos que heredan de su superclase. Muy al contrario, estas subclases pueden aadir variables y mtodos a aquellas que han heredado. Los tandeos tienen dos asientos y dos manillares; algunas bicicletas de montaa tienen una catalina adicional con un conjunto de marchas con relaciones de transmisin mucho mas cortas. Las clases derivadas pueden incluso sobreescribir los mtodos heredados y proporcionar implementaciones mas especializadas para esos mtodos. Por ejemplo, si nuestra bicicleta de montaa tuviera una catalina extra, podramos sobreescribir el mtodo CambiarDeMarcha para poder usas esas nuevas marchas.

    Ademas, no estamos limitados a un nico nivel de herencia. El rbol de herencias o jerarqua de clases puede ser tan extenso como necesitemos. Los

  • Robles Robles Mariomtodos y las variables miembro se heredaran hacia abajo a travs de todos los niveles de la jerarqua. Normalmente, cuanto mas abajo esta una clase en la jerarqua de clases, mas especializado es su comportamiento. En nuestro ejemplo, podramos hacer que la clase bicicleta derivase de una superclase de vehculos.

    La capacidad para crear clases nuevas a partir de otras existentes es la motivacin y poder subyacente detrs de las tcnicas de programacin orientadas a clases y a objetos. Hacer esto facilita reutilizar el cdigo existente en formas nuevas sin necesidad de volver a hacer los procesos de prueba y validacin. Permite a los diseadores de una clase ponerla a disposicin de otros para adiciones y extensiones sin renunciar al control sobre las caractersticas existentes de la clase.

    La herencia es la capacidad de derivar una clase a partir de otra. La clase inicial usada como base para la clase derivada se conoce como base, padre o superclase. La clase derivada se conoce como derivada, hija o subclase, y esto proporciona las siguientes ventajas:

    1.- Las clases derivadas o subclases proporcionan comportamientos especializados a partir de los elementos comunes que hereda de la clase base. A travs del mecanismo de herencia los programadores pueden reutilizar el cdigo de la superclase tantas veces como sea necesario.

    2.- Los programadores pueden implementar las llamadas superases abstractas, que definen comportamientos genricos. Las clases abstractas definen e implementan parcialmente comportamientos, pero en gran parte de estos comportamientos no se definen ni se implementan totalmente. De esta forma, otros programadores pueden hacer uso de estas superases detallando esos comportamientos con subclases especializadas. El propsito de una clase abstracta es servir de modelo base para la creacin de otras clases derivadas, pero cuya implementacin depende de las caractersticas particulares de cada una de ellas. Un ejemplo de clase abstracta podra ser en nuestro caso la clase vehculos. Esta clase seria una clase base genrica, a partir de la cual podramos ir creando todo tipo de clases derivadas.

    1.4 Polimorfismo.

    Construir una clase a partir de otra se logra usando una capacidad llamada herencia. Relacionada con esta capacidad hay una caracterstica igual de importante llamada polimorfismo. El polimorfismo proporciona la capacidad de redefinir la forma en que operan las funciones miembro de clases relacionadas basada en el objeto de la clase al que se esta haciendo referencia. De hecho, para que un lenguaje de programacin sea clasificado como un lenguaje orientado a objetos debe proporcionar las caractersticas de clases, herencia y polimorfismo. El polimorfismo permite que el mismo nombre de funcin invoque una respuesta en objetos de una clase base y otra respuesta en objetos de una clase derivada.

  • Robles Robles Mario2. Programacin Visual

    Por mucho tiempo los desarrolladores de software han hecho su trabajo usando lenguajes textuales de programacin, pero eso est cambiando. La programacin visual es una alternativa de programacin que mejora la produccin de aplicaciones de software.

    El concepto de programacin visual es un poco confuso, ya que actualmente se le considera programacin visual a los lenguajes de programacin textual que tienen una interfaz grfica para poder visualizar lo que uno est desarrollando. El concepto programacin visual de igual forma se usa para denotar una metodologa de programacin, en la cual por medio de iconos se permite ir creando programas sin tener un lenguaje textual detrs.

    La programacin visual se refiere al desarrollo de software donde las notaciones grficas y los componentes de software manipulables interactivamente son usados principalmente para definir y componer programas.

    La programacin visual se define comnmente como el uso de expresiones visuales (tales como grficos, animacin o iconos) en el proceso de la programacin, pueden ser utilizadas para formar la sintaxis de los nuevos lenguajes de programacin visuales que conducen a los nuevos paradigmas tales como programacin por la demostracin, o pueden ser utilizados en la presentaciones grficas del comportamiento o de la estructura del programa.

    El objetivo de la programacin visual es mejorar la comprensin de los programas y simplificar la programacin en si. Mas all, la programacin visual deber fomentar a los usuarios finales a construir sus propios programas, que de otra forma deben ser escritos por programadores profesionales.

    2.1 Paradigma de la programacin visual

    La programacin visual ofrece el potencial de mejorar la habilidad de los usuarios (mas que de los programadores profesionales) para comunicar y resolver problemas, mediante el uso de medios grficos. Para lograr esto se requiere que se entornos de desarrollo amigables y fciles de utilizar por los usuarios programadores.

    2.2 Lenguajes de programacin visual y orientada a eventos

    La programacin visual se basa en el uso de lenguajes visuales, los cuales se definen de la siguiente manera:

  • Robles Robles MarioUn lenguaje de programacin que usa una representacin visual (tal como grficos, dibujos, animaciones o iconos, parcial o completamente).

    Un lenguaje visual manipula informacin visual o soporta interaccin visual, o permite programar con expresiones visuales.

    Un lenguaje visual es un conjunto de arreglos espaciales de smbolos de texto y grficos con una interpretacin semntica que es usada para comunicar acciones en un ambiente.

    Los lenguajes de programacin visual son lenguajes donde se usan tcnicas visuales para expresar relaciones o transformaciones en la informacin.

    Como el nombre lo indica, una gran parte de la programacin visual se realiza visualmente. Esto significa que durante el tiempo de diseo, el programador tiene la capacidad de ver la forma en que el programa se ver al ejecutarse. Esta es una gran ventaja sobre otros lenguajes de programacin debido a que se tiene la posibilidad de cambiar y experimentar con el diseo hasta que se est satisfecho con los colores, proporciones e imgenes que se incluyan en el programa.

    Los lenguajes visuales y orientados a eventos dan al usuario que no cuenta con mucha experiencia en desarrollo, pa posibilidad de construir sus propias aplicaciones utilizando interfaces grficas sobre la base de ocurrencia de eventos. Para soportar este tipo de desarrollo, interactan dos tipos de herramientas, una que permite realizar diseos grficos y, un lenguaje de alto novel 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 programacin visual y con enfoque orientado a eventos que mas entusiasmo despiertan entre los programadores de computadoras, tanto expertos como novatos. En el caso de los programadores expertos por la facilidad con la que se desarrollan aplicaciones complejas en poqusimo tiempo (comparado con lo que cuesta programar en visual C++, por ejemplo). En el caso de los programadores novatos por el hecho de ver de lo que son capaces a los pocos minutos de empezar su aprendizaje. El precio que hay que pagar por utilizar Visual Basic es una menor velocidad o eficiencia en las aplicaciones.

    Visual Basic es un lenguaje de programacin visual, tambin llamado lenguaje de cuarta generacin. Esto quiere decir que un gran numero de tareas se realizan sin escribir cdigo, simplemente con operaciones grficas realizadas con el ratn sobre la pantalla.

    Visual Basic tambin se basa en objetos, aunque no es orientado a objetos como Visual C++. La diferencia esta en que Visual Basic utiliza objetos con propiedades y mtodos, pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderos lenguajes orientados a objetos como Java y C++.

  • Robles Robles MarioLos programas orientados a eventos son programas tpicos de Windows, como Word, Excel, PowerPoint y otros. Cuando uno de estos programas ha iniciado, lo nico que hace es quedarse a la espera de las acciones del usuario, que en este caso son llamadas a eventos. El usuario dice si quiere abrir y modificar un dichero existente, o bien comenzar a crear un fichero desde el principio. Estos programas pasan la mayor parte del tiempo esperando las acciones del usuario (eventos) y respondiendo a ellas. Las acciones que el usuario puede realizar en un momento determinado son variadsimas, y exigen un tipo especial de programacin: la programacin orientada a eventos. Este tipo de programacin es sensiblemente mas complicada que la secuencial, pero con los lenguajes visuales de hoy, se hace mas sencilla y agradable.

    Ya se ha dicho que las acciones del usuario sobre el programa se llaman eventos. Son eventos tpicos el click sobre un botn, el hacer doble click sobre el nombre de un fichero para abrirlo, el arrastrar un icono, el pulsar una tecla o combinacin de teclas, el elegir una opcin de un men, el escribir en una caja de texto, o simplemente mover el ratn.

    Ademas de los eventos, la mayor parte de los objetos, como los formularios y los controles, son suministrados con propiedades y mtodos. Una propiedad es una signaron que describe algo sobre un objeto como un formulario. Los mtodos son funciones que tambin son llamadas desde programa, pero a diferencia de los procedimientos no son programadas por el usuario, sino que vienen ya pre-programadas con el lenguaje. Los mtodos realizan tareas tpicas, previsibles y comunes para todas las aplicaciones. De ah que vengan con el lenguaje y que se libere al usuario de la tarea de programarlos. Cada tipo de objeto o de control tiene sus propios mtodos.

    En general solo pueden ser ejecutados en tiempos de ejecucin no en tiempo de diseo. Algunos ejemplos de mtodos de formularios son el mtodo MOVE, que mueve un formulario en un espacio de dos dimensiones en la pantalla, y el mtodo ZORDER que sita el formulario delante o detrs de otras ventanas.

    Los mtodos son invocados dando nombres al objeto y cuyo mtodo se esta llamando, listando el operador punto (.) y despus listando el nombre del mtodo. Como cualquier rutina los mtodos pueden incorporar argumentos.

    2.3 Diseo de interfaces visuales

    Human-Computer Interaction. Es as como se denomina al estudio de cmo los humanos interactan con los sistemas computarizados. Muchas disciplinas contribuyen a esta rama de estudio y desarrollo, incluyendo las ciencias de la computacin, psicologa, ergonoma, ingeniera, diseo grfico, y un largo y eclctico etctera. Cuando la gente interacta con los sistemas computarizados, lo hacen por medio de lo que se denomina Interfaz Visual o Interfaz de Usuario (GUI) esto es la parte de un sistema computacional con el cual el usuario interactuar para emprender sus

  • Robles Robles Marioacciones y alcanzar sus metas en trminos de manejo de informacin, o creacin de contenidos mediante software.

    Las interfaces grficas son el principal elemento que el usuario percibe en los programas diseados usualmente mediante la metodologa de programacin orientada a eventos. La interfaz visual o interfaz de usuario es un conjunto de elementos a travs de los cuales un usuario interacta con un ordenador, concretamente con un programa de computadora, y la informacin que el software manipula o los contenidos que este crea.

    El ser humano al interactuar con los objetos que le rodean, tiene unas expectativas de como stos deben comportarse, basado en experiencias anteriores con ellos. Debido a que el usuario tiene su propia forma de ver las cosas, y espera de ellas un comportamiento predecible, es importante hacer uso de metforas que permitan crear interfaces visuales buenas, en trminos de usabilidad y capacidad de intuicin por parte del usuario para el manejo de la interfaz.

    La usabilidad se define en la parte 11 del estndar USO 9241 como la medida en la que un producto puede ser usado por usuarios especficos para alcanzar metas especificas con efectividad, eficiencia y satisfaccin en un contexto de uso especifico. Efectividad es la precisin e integridad con la que usuarios especficos pueden alcanzar metas en ambientes particulares. Por otro lado, la eficiencia se define como una medida en funcin de la cantidad de recursos gastados y la precisin e integridad de las metas alcanzadas. La satisfaccin es la comodidad y y aceptabilidad del sistema de trabajo para sus usuarios y otra gente afectada por su uso.

    Una interfaz de usuario que es efectiva en un contexto, puede no ser igualmente efectiva en otro. Como diseadores de interfaces visuales, los programadores deben considerar el contexto en el que el sistema ser usado. Las interfaces visuales tienen tanta importancia, que impactan directamente en la productividad de la gente que usa los programas. Por ejemplo los usuarios que disfrutan de usar un sistema son mas productivos, en trminos de que mejora la usabilidad, y la efectividad de los mismos al usar un sistema cuya interfaz visual es agradable y eficiente.

    2.4 Aplicaciones

    Una aplicacin es simplemente un programa informtico creado para llevar a cabo o facilitar una tarea especifica en un dispositivo informtico que puede ser un ordenador, o un dispositivo mvil. Cabe destacar que aunque todas las aplicaciones son programas, no todos los programas son aplicaciones. Existe multitud de software, pero solo se le denomina as a aquel que ha sido creado con un fin determinado, para realizar tareas concretas. No se considerar una aplicacin por ejemplo un sistema operativo, ni una suite; pues su propsito es general.

  • Robles Robles MarioLas aplicaciones nacen de alguna necesidad concreta de los usuarios, y tambin pueden responder a necesidades ldicas o laborales. Se suele decir que para cada problema hay una solucin, y en informtica para cada problema hay una aplicacin.

    Naturalmente, el campo de las aplicaciones es tan extenso, y las funciones tan dispares, que se han creado numerosas clasificaciones, segn varios criterios. As, por ejemplo, dependiendo del uso que se le vaya a dar, podemos tener aplicaciones profesionales o personales. Tambin podemos hablar de aplicaciones para Windows, Linux, Android, Apple, PC, mvil, segn el sistema operativo o la plataforma que vayamos a usar. Segn su finalidad, pueden ser de entretenimiento, de negocios, empresariales, de sonido, grficas, de edicin, web, didcticas... e incluso segn la rama de las ciencias en el que se usen podemos decir que hay aplicaciones de ingeniera, de telecomunicaciones, matemticas... y un largo etctera.

    Referencias:

    C++ Para Ingeniera y Ciencias, Segunda Edicin.

    Gary J. Bronson.

    Programming for Humans: A New Paradigm for Domain-Specific Languages.

    University Of Cambridge.

    Introduccin a la Programacin Orientada a Objetos.

    Luis R. Izquierdo.

    Principles of Software Driven User Interface Design for Business and Industrial Applications.

    Robert Japenga.