Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se...

12
Programación Orientada a Objetos

Transcript of Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se...

Page 1: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

Programación  Orientada  a  Objetos

Page 2: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

1

Sesión No. 7 Nombre: Eventos Contextualización

Las computadoras como las conocemos hoy en día no son las únicas que

aplican los elementos de programación orientada a objetos o cualquier otro tipo

de programación, sino que cualquier aparato electrónico con uso de botones de

funciones o algún tipo de tarea en especial utilizan estos sistemas.

Para definir el uso de los sistemas y las acciones que realiza cada elemento

dentro y fuera de un dispositivo se necesita de una estructura definida de los

códigos, con la cual se indica que realiza cada dispositivo que se haya dado de

alta y se reconozca como tal.

En el caso de los eventos, se programa un objeto y al realizar una acción éste

debe cumplir con sus líneas de código, dicho de otra forma, un evento puede ser

el dar clic en el ratón de la computadora, teclear alguna letra, arrastrar

elementos por el escritorio o hacia alguna aplicación específica, dado el evento,

los sistemas internos de programación deben realizar alguna acción u omitirla,

por lo que al definir el script se debe contemplar todos los elementos de

interacción posibles, facilitando el uso de los elementos o mejorando el

rendimiento de los mismos.

Page 3: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

2

Introducción al Tema

Actualmente los sistemas operativos y las aplicaciones son muy exigentes,

requieren de un alto consumo de recursos dentro de una computadora; debido a

sus procesamientos, capacidades y programaciones se necesita de un sistema

actualizado, con buena cantidad de memoria RAM, disponibilidad de espacio en

el disco duro y una excelente gestión de los procesos y la memoria.

Para que estas aplicaciones funcionen correctamente en las computadoras se

necesita de un proceso multihilo, el cual mediante el uso del software y hardware

realiza varios procesos de información al mismo tiempo, estos procesos pueden

ser de renderizado, encapsulamiento, ejecución de alguna aplicación,

compilación de líneas de código o cualquier otro procedimiento que necesite de

más de un proceso a la vez, para esto es importante que al desarrollar una

aplicación o sistema consideremos los requerimientos de software y así

minimizar los problemas de rendimiento de la misma aplicación y de la gestión

de memoria de la computadora.

Page 4: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

3

Explicación

Eventos

¿Qué es un evento?

Dentro de la programación, podemos encontrar un segmento que se dirige a los

elementos conocidos como eventos, éstos son la base de una interfaz de

usuario que puede emplearse para desarrollar interfaces entre componentes de

software o módulos del núcleo.

La programación dirigida por eventos es un paradigma de programación en el

que la estructura y la ejecución de los programas se determinan por los sucesos

que ocurran dentro de un sistema. Cuando alguno de los eventos esperados por

el programa tienen lugar, el programa pasará a ejecutar el código del

correspondiente al evento.

Los eventos y las ejecuciones que se pueden realizar son cualquier tipo de

acción, es decir, el teclear, hacer clic, ejecutar alguna aplicación puede ser

determinado como un evento, la reacción que tendrá el código de ejecución

puede ser el iniciar la reproducción de un video, abrir un documento, señalar

alguna búsqueda o cualquier otra cosa.

Algunas de las propiedades de los eventos son las siguientes:

• Un evento puede tener varios suscriptores.

• El editor determina cuándo se produce un evento.

• Nunca se provocan eventos que no tienen suscriptores.

• Los eventos se usan para señalar acciones del usuario.

• Si un evento tiene varios suscriptores, se invocan los controladores de

eventos sincrónicamente.

• Dentro de .NET Framework, los eventos se basan en el delegado.

Page 5: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

4

En los eventos nos encontramos con varios tipos, los cuales determinan

funciones diferentes, esos son:

• Eventos secuenciales: este tipo de programación se basa en la creación

de programas a partir de un conjunto de sentencias escritas de manera

secuencial, de la cual su ejecución sigue con la misma secuencia.

• Eventos simultáneos: éstos son programas que pueden seguir de

manera simultánea y lograrse a través de mecanismos se software o

hardware.

• Eventos concurrentes: éste es un programa que tiene más de una línea

lógica de ejecución, en éste parece que las varias partes del programa se

ejecutan al mismo tiempo.

Multihilado

¿Qué es un hilo?

Un hilo puede comprenderse como un proceso, éste puede ser realizado por el

procesador, la aplicación o el hardware, los estados de un hilo son:

• Nuevo: el hilo ha sido creado pero aún no ha sido activado.

• Preparado: éste es el hilo ya activo y está a la espera de que se le asigne

la UCP.

• En ejecución: el hilo está activado y le ha sido asignada la UCP.

• Bloqueado: el hilo espera que otro elimine el bloqueo.

• Dormido: el hilo está bloqueado durante un tiempo determinado.

• Esperando: el hilo está en espera a que ocurra alguna cosa: condición,

operación de E/S o adquirir la propiedad de un objeto de sincronismo.

• Muerto: el hilo ha finalizado pero aun no ha sido recogido por su padre.

Cada que se crea un proceso, el sistema operativo crea un hilo primario. Para

muchos procesos éste es el único hilo necesario, un proceso puede crear otros

hilos para ayudarse en su trabajo, utilizando la capacidad completa del CPU.

Page 6: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

5

¿Qué es un multihilo?

Es cuándo el CPU de una computadora trabaja ofreciendo un máximo

rendimiento de su hardware, el uso de los sistemas multihilos permite trabajar un

número mayor de elementos al mismo tiempo o en su defecto trabajar sobre una

sola aplicación, la cual requiere de una alta capacidad de procesamiento;

algunos software que requieren de este tipo de procesamiento multihilo son los

dirigidos al diseño de elementos 3D, programas de diseño, programas de edición

de video, entre otros.

También se utiliza el procesamiento multihilo al realizar varias tareas al mismo

tiempo, ya sea trabajar sobre un documento de texto, escuchar música,

reproducir un video o cualquier grupo de elementos trabajando en conjunto.

Los hilos de procesamiento también pueden ser conocidos como thread, como

se ha mencionado anteriormente, éstos determinan el flujo de control de una

determinada estructura de datos dentro de un equipo, la diferencia que tiene con

un proceso multihilo es que dentro de una misma aplicación éstos pueden

compartir los mismos datos.

Con el uso de multihilos se mejora el rendimiento interactivo y se tiene un mejor

comportamiento del sistema en tiempo real, esto agrega una mejor estabilidad

del sistema y permite realizar varias ejecuciones simultáneamente sin correr el

riesgo de que el sistema colapse.

El utilizar un multihilo no garantiza que todo saldrá bien, esto se ve determinado

de igual manera por el sistema operativo con que se trabaje, ya que también se

consideran los elementos gráficos y de funciones disponibles dentro del sistema

para los procesos multihilos; es decir, si el sistema presenta una apariencia de

muchas ventanas, muchos elementos visibles y disponibles en primera instancia

para el usuario, lo que sucede es que varios procesos están en espera de que

estos elementos reciban algún evento.

Page 7: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

6

Para estos también se utilizan complementos adicionales en los sistemas de

cómputo, tales como el agregar más memoria RAM, mejorar el disco duro,

agregar más memoria de control de gráficos, entre otras cosas.

Los hilos de ejecución se organizan por grupos o aplicaciones, es decir, éstos no

se encuentran en todos lados en espera de cualquier evento, sino que

mantienen su propio espacio de direcciones y entorno de operaciones, los hilos

dependen de un programa padre que los administra y considera como recursos

de ejecución. Los atributos de los hilos son importantes de conocer y diferenciar

de sus estados, éstos son:

• Dirección de stack: se refiere al apuntador del stock del hilo.

• Tamaño de dirección: es la longitud del stock del hilo.

• Alcance: también conocido como scope, define quién controla la

ejecución del hilo: el proceso o núcleo del sistema operativo.

• Herencia: se heredan los parámetros de calendarización o se definen

localmente.

• Política de calendarización: define el proceso a ejecutar y en que

instante.

• Prioridad: determina la importancia que se tendrá.

Podemos decir que, a mayor capacidad y núcleos de un procesador, mayor es la

cantidad de hilos de ejecución que podremos encontrar en un sistema.

Page 8: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

7

Conclusión

Los eventos son acciones que ayudan a activar los elementos dentro de un

sistema, éstos funcionan de una manera determinada por el programador y no

pueden ser modificados por el usuario a menos que configure el sistema y las

preferencias.

El uso de multihilos es importante dentro de los nuevos sistemas operativos, ya

sea para equipos de escritorio o dispositivos móviles, éstos permiten tener un

mejor trabajo y optimizar las posibilidades de rendimiento de los medios que se

utilicen, ofreciendo así a los usuarios un número mayor de posibilidades de

trabajo.

Es importante comprender que si nuestro sistema o equipo de trabajo es viejo,

las posibilidades de trabajar con aplicaciones nuevas se ve reducida, ya que

éstas requieren de un alto poder de procesamiento y un sistema multihilos más

fuerte que ayude a mejorar la experiencia de los usuarios y completar el trabajo

de la forma en que se espera.

Los eventos y los multihilos pueden ser programados para su ejecución o

determinar mediante código la manera en que funcionarán, por tanto siempre

debemos tener en cuenta la posibilidad de personalizar nuestro trabajo y el

rendimiento que deseamos del equipo en que trabajamos.

Page 9: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

8

Para aprender más

Eventos

Dentro de los eventos podemos encontrar los “eventos secuenciales”, los cuales

constan de las siguientes características.

Éstos son una forma de programación también conocida como programación

dirigida por eventos, consta de un paradigma de programación, éste es en

cuanto a su estructura de ejecución y la de programación y éstos van

determinados por los sucesos que ocurran en el sistema.

La sintaxis básica de definición de un evento consiste en definirlo como cualquier

otro campo con la única peculiaridad de que se le ha de anteponer la palabra

“event” al nombre de su tipo. Su sintaxis es la siguiente:

<modificadores>event<tipoDelegado><nombreEvento>;

Para el uso de eventos, existen restricciones de uso, éstas se ven definidas por

un sistema externo al tipo donde se han definido y éstos no son delegados sino

que el objeto delegado es el campo privado que internamente define el

compilador.

El modo de manejar estos eventos dentro de la programación se conoce como

emisor/receptor o despachador/escuchador.

Cada lenguaje utiliza un manejador de eventos diferente, por lo que permite

lanzar los eventos y crear los receptores que permiten el manejo de estos. Cada

evento es determinado por el programador y el lenguaje en que se desarrolla,

gracias a la gran variedad de sistemas y compatibilidad que se tiene entre éstos,

se pueden desarrollar eventos dentro de una plataforma y ser traducidos por otra.

Page 10: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

9

Multihilado

Los hilos corren en el mismo proceso, con esto tienen que acceder a cualquiera

de los recursos como las variables globales, manejadores, etc. Cada hilo tiene

su stack o pila, por tanto las variables locales de cada hilo son privadas, también

tienen la posibilidad de trabajar con grupos de registros privados, todo el manejo

de los hilos se realiza de manera interna por el sistema operativo.

Los hilos se pueden dividir en varias categorías, las cuales son las siguientes:

• Hilo de interface de usuario: éste crea su propia ventana y recibe

mensajes de la misma, tiene la capacidad de responder al usuario a

través de su propia ventana. Este hilo funciona por medio de la regla del

Mutex de Win16, el que permite sólo un hilo de interface de usuario en el

núcleo de usuario y gdi de 16 bit.

• Hilo obrero: este tipo de elemento no crea ninguna ventana, así que no

puede recibir ningún mensaje de ventana.

Pare tener un funcionamiento correcto entre los hilos de ejecución que estén

disponibles o funcionando en ese momento, se crean métodos de comunicación

entre ellos para tener un mejor control de las actividades, éstos son;

• Usar variables globales.

• Mensajes del sistema operativo.

• Eventos.

Los hilos comparten recursos de proceso, estos incluyen variables globales, por

lo que los hilos pueden usar este tipo de variables y lograr una comunicación

entre sí. La creación de multihilos puede ser definida por el usuario mediante el

uso de código, en el cual determina la posibilidad de aplicación de éstos dentro

de un software determinado, no siempre se realiza, ya que los sistemas

operativos controlan estos para un mejor rendimiento del equipo.

Page 11: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

10

Actividad de Aprendizaje

Instrucciones

Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta

sesión, ahora tendrás que realizar una actividad en la cual a través de una

ilustración indiques 10 eventos posibles para trabajar en un equipo de cómputo,

debes incluir una breve descripción de éstos.

Puedes realizarlo en cualquier programa, al final tendrás que guardarlo como

una imagen JPG, con la finalidad de subirlo a la plataforma de la asignatura.

Page 12: Programación+OrientadaaObjetos - UNID...• Eventos secuenciales: este tipo de programación se basa en la creación de programas a partir de un conjunto de sentencias escritas de

PROGRAMACIÓN  ORIENTADA  A  OBJETOS

11

Bibliografía

• González J. (2006) Eventos. Consultado en:

http://www.devjoker.com/contenidos/catss/160/Eventos.aspx

• Iczelion´s. (s.f.) Programación multihilo. Consultado en:

http://www.angelfire.com/rnb/byte/tut15_es.html

• Microsoft. (2013) Eventos (Guía de programación de C#). Consultado en:

http://msdn.microsoft.com/es-es/library/awbftdfh.aspx

• s/a. (2010) Eventos en la programación Orientada a Objetos. Consultado

en: http://www.cristalab.com/programacion-orientada-objetos/eventos/

• s/a. (2013) Manejo de técnicas de programación. Consultado en:

http://manejodetecnicasdeprogramacionn.blogspot.mx/2013/04/programac

ion-dirigida-por-eventos-y.html

• s/a. (s.f.) Programación dirigida por eventos y control, eventos

secuenciales, multitarea y concurrente. Consultado en:

http://jmcc2.blogspot.mx/

• s/a. (s.f.) Tópicos selectos de programación. Consultado en:

http://topicos-selectosdeprogramacion-itiz.blogspot.mx/p/unidad-3-

programacion-concurrente.html

• Vázquez O., Hernández P., Sánchez L. (s.f.) Hilos y Multihilos.

Consultado en: http://capitulo-14.blogspot.mx/