lunes, 17 de mayo de 2010

"Touchscreen user interface" Algunos GUIs son diseñados para cumplir con los rigurosos requisitos de los mercados verticales. Éstos se conocen como "GUIs de uso específico." Un ejemplo de un GUI de uso específico es el ahora familiar Touchscreen o Pantalla Táctil (pantalla que al ser tocada efectúa los comandos del mouse en el software. Es encontrado en muchos restaurantes alrededor del mundo y en tiendas de autoservicio. Primero iniciado por Gene Mosher en la computadora del ST de Atari en 1986, el uso que el específico GUI en el Touchscreen ha encabezado una revolución mundial en el uso de las computadoras a través de las industrias alimenticias y de bebidas, y en venta al por menor. Otros ejemplos de GUIs de uso específico, relacionados con el Touchscreen son los cajeros automáticos, los kioscos de información y las pantallas de monitoreo y control en los usos industriales, que emplean un sistema operativo de tiempo real (RTOS). Los teléfonos móviles y los sistemas o consolas de juego también emplean el Touchscreen. Además la domótica no es posible sin una buena interfaz de usuario, o GUI.

ANÁLISIS DEL COMPORTAMIENTO DE OBJETOS
En el análisis del comportamiento de objetos (ACO) realizamos esquemas de eventos que muestran eventos, la secuencia en que ocurren y cómo los eventos cambian el estado de los objetos.
Estados de un Objeto.
Un objeto puede existir en varios estados. Por ejemplo, un objeto reservación aérea puede ser una instancia de alguno de los siguientes tipos de objeto:
Reservación solicitada, Reservación en lista de espera, Reservación confirmada, Reservación cancelada, Reservación satisfecha ,Reservación archivada.
Eventos. En el análisis orientado a objetos el mundo se describe en términos de los objetos y sus estados, así como los eventos que modifican esos estados. Un evento produce un cambio en el estado de un objeto. Los eventos sirven como indicadores de los instantes en que ocurren los cambios de estado. Para saber de los cambios y reaccionar adecuadamente ante ellos, debemos entender y modelar los eventos.

Ciclo vital
El tiempo de vida o ciclo vital ("Lifetime") de un objeto es una propiedad de tiempo de ejecución ("Runtime"). Viene determinado por el lapso entre su creación y su destrucción. Por supuesto no puede exceder la duración de su almacenamiento.El ciclo vital comienza cuando se le asigna espacio de almacenamiento y, si no es un objeto trivial, cuando el objeto es convenientemente iniciado por su constructor. Finaliza cuando es llamado el destructor o se rehúsa la zona de almacenamiento que le había sido asignada.
El ciclo vital de los objetos automáticos y estáticos es controlado automáticamente por el compilador. En los primeros la destrucción se realiza cuando el objeto sale de ámbito. En los segundos la destrucción ocurre con las rutinas de finalización del programa. Por su parte el ciclo vital de los objetos dinámicos es controlado por el programador.
El ciclo de vida lo que impone es una estructrura de trabajo, no un paradigma de desarrollo. Nació con la idea de aportar mejores soluciones y enfoques para dirigir sistemas desarrollados en lenguaje OO. Pero estas prácticas pueden escalarse hacia otros tipos de A/D.

Vinculación: el objeto es almacenado igual en la base datos, pero se establece un vínculo con el archivo original de forma que si modificamos el objeto desde el formulario, los cambios afectarán al archivo original.
Incrustación: el objeto es almacenado en la base de datos, pero si el objeto original sufre algún cambio, en la base de datos no se reflejará el cambio.
Tanto si incrustamos como si vinculamos, el objeto debe crearse en el formulario mediante el control llamado marco de objeto. Podemos utilizar estas opciones para insertar una imagen de una persona como si fuese un campo más de la base de datos.
Eventos: Para entender la programación dirigida por eventos, podemos oponerla a lo que no es: mientras en la programación secuencial (o estructurada) es el programador el que define cuál va a ser el flujo del programa, en la programación dirigida por eventos será el propio usuario --o lo que sea que esté accionando el programa-- el que dirija el flujo del programa. En la programación dirigida por eventos, al comenzar la ejecución del programa se llevarán a cabo las inicializaciones y demás código inicial y a continuación el programa quedará bloqueado hasta que se produzca algún evento. Cuando alguno de los eventos esperados por el programa tenga lugar, el programa pasará a ejecutar el código del correspondiente administrador de evento.

Cualquier actividad que se realiza en un sistema operativo orientado a eventos se comunica entre los distintos procesos interesados a través de mensajes denominados eventos. Por ejemplo cuando se presiona el botón izquierdo del ratón sobre una ventana de aplicación, el sistema operativo subyacente notifica a la aplicación de dicho suceso para que ésta pueda responder de manera adecuada a esta situación. El código que se encarga de dar respuesta a un evento específico se conoce como procedimiento manejador de evento.

Tipos de eventos
Eventos del teclado: Ocurren cuando el usuario presiona una tecla determinada como Tabulador o una combinación de teclas como Ctrl+P.
Eventos del ratón: Ocurren cuando el usuario mueve el ratón, lo presiona una sóla vez o dos veces o arrastra el ratón a través de la pantalla.
Eventos de la aplicación: Ocurren cuando la aplicación es cargada en memoria o cuando se abre o cierra una ventana o forma. Los eventos del teclado y del ratón ocurren cuando el usuario hace algo y los eventos de programación ocurren cuando el código hace algo, por ejemplo dar la indicación de cerrar la forma actual.
Eventos. En el análisis orientado a objetos el mundo se describe en términos de los objetos y sus estados, así como los eventos que modifican esos estados. Un evento produce un cambio en el estado de un objeto. Los eventos sirven como indicadores de los instantes en que ocurren los cambios de estado. Para saber de los cambios y reaccionar adecuadamente ante ellos, debemos entender y modelar los eventos.
Sobrecarga se refiere a la posibilidad de tener dos o más funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o más funciones con el mismo nombre realizan acciones diferentes. El compilador usará una u otra dependiendo de los parámetros usados. A esto se llama también sobrecarga de funciones.
La interfaz gráfica de usuario, conocida también como GUI es un tipo de interfaz de usuario que utiliza un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Habitualmente las acciones se realizan mediante manipulación directa para facilitar la interacción del usuario con la computadora. Surge como evolución de la línea de comandos de los primeros sistemas operativos y es pieza fundamental en un entorno gráfico. Como ejemplo de interfaz gráfica de usuario podemos citar el entorno de escritorio del sistema operativo Windows, el X-Window de Linux o el de Mac OS X, Aqua. En el contexto del proceso de interacción persona-ordenador, la interfaz gráfica de usuario es el artefacto tecnológico de un sistema interactivo que posibilita, a través del uso y la representación del lenguaje visual, una interacción amigable con un sistema informático
Tipos de interfaces gráficas de usuario
PUI's y Zooming user interface Los GUIs que no son PUIs son encontrados en juegos de computadora, y los GUIs avanzados basados en realidad virtual ahora son usados con más frecuencia en las investigaciones. Muchos grupos de investigación en Norteamérica y Europa están trabajando actualmente en el interfaz de enfoque del usuario o ZUI (Zooming User Interface), que es un adelanto lógico en los GUI, mezclando 3D con 2.o ó "2D y medio objetos vectoriales de una D".
El POO no depende estrictamente del lenguaje: se puede hacer con lenguajes no clasificados como tales (por ejemplo C). Los lenguajes funcionales son de una clase un poco diferente -entre otras cosas, los lenguajes funcionales son un superconjunto de POO.

ANÁLISIS DE LA ESTRUCTURA DE OBJETOS
El análisis de la estructura de objetos (AEO) define las categorías de los objetos que percibimos y las formas en que los asociamos.
OBJETOS Y TIPOS DE OBJETOS En el análisis se trata de identificar los tipos de objeto más que los objetos individuales en un sistema. Los tipos de objetos se definen en base a la comprensión del analista de nuestro mundo. Un objeto puede categorizarse de variadas formas.
ASOCIACIONES DE OBJETOS Es importante modelar la forma como los objetos se asocian entre sí. Además es necesario identificar el significado de la asociación y la cantidad de objetos con los que un objeto dado puede y debe asociarse (cardinalidad). Representación para la Asociación entre dos Tipos de Objetos.
ANÁLISIS DEL COMPORTAMIENTO DE OBJETOS
En el análisis del comportamiento de objetos (ACO) realizamos esquemas de eventos que muestran eventos, la secuencia en que ocurren y cómo los eventos cambian el estado de los objetos.
Estados de un Objeto.
Un objeto puede existir en varios estados. Por ejemplo, un objeto reservación aérea puede ser una instancia de alguno de los siguientes tipos de objeto:
Reservación solicitada, Reservación en lista de espera, Reservación confirmada, Reservación cancelada, Reservación satisfecha ,Reservación archivada.
Tales tipos de objetos suelen percibirse como estados posibles del ciclo vital de un objeto. Sin embargo, un objeto puede tener una gran variedad de perspectivas de ciclos vitales. Por ejemplo, el mismo objeto reservación aérea también puede tener los siguientes estados relacionados con el pago:
Reservación no liquidada, Reservación con un pago de depósito, Reservación totalmente pagada, Reservación reembolsada. Así, el estado de un objeto es la colección de asociaciones que tiene un objeto.

ANALISIS DEL ENTORNO AL POO

El elemento fundamental de la OOP es el objeto. El objeto es un conjunto complejo de datos y programas que poseen estructura .El POO se basa en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. El POO expresa a un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener, reutilizar y volver a utilizar.
Un objeto es un ente que posee sus características propias (propiedades) y un conjunto de acciones que es capaz de realizar (métodos).
El objeto contiene toda la información para permitirle definirlo e identificarlo frente a otros objetos que pertenecen a otras clases, incluso frente a objetos de una misma clase, tienen valores diferenciados en sus atributos. Los objetos tienen mecanismos de interacción llamados métodos para favorecer la comunicación entre ellos. Tienen características que llevan a tratarlos individualmente, no se separan ni deben separarse del estado y el comportamiento.

Una clase es un ente abstracto que permite declarar las propiedades y los métodos de objetos similares.
Un lenguaje de programación orientado a objetos debe permitir al programador realizar definiciones de clases, y construir objetos a partir de esas clases.
El objeto no es un dato simple si no que tiene componentes estructurados, no es aislado, forma parte de una organización jerárquica o de otro tipo.
Una de las ventajas más importantes, es permitir la realización de las clases que definen un programa de forma totalmente independiente al programa donde se utilizan. Gracias a la encapsulación y el polimorfismo.
La herencia nos permite crear estructuras jerárquicas de clases donde es posible la creación de sub-clases que incluyan nuevas propiedades y atributos. Estas sub-clases admiten la definición de nuevos atributos, así como crear, modificar o inhabilitar propiedades.
Una clase es un ente abstracto que permite declarar las propiedades y los métodos de objetos similares.
Un lenguaje de programación orientado a objetos debe permitir al programador realizar definiciones de clases, y construir objetos a partir de esas clases.
El objeto no es un dato simple si no que tiene componentes estructurados, no es aislado, forma parte de una organización jerárquica o de otro tipo.
Una de las ventajas más importantes, es permitir la realización de las clases que definen un programa de forma totalmente independiente al programa donde se utilizan. Gracias a la encapsulación y el polimorfismo.
La herencia nos permite crear estructuras jerárquicas de clases donde es posible la creación de sub-clases que incluyan nuevas propiedades y atributos. Estas sub-clases admiten la definición de nuevos atributos, así como crear, modificar o inhabilitar propiedades.