Documente Academic
Documente Profesional
Documente Cultură
MODULO
DISEÑO Y REALIZACION
DE SERVICIOS DE
PRESENTACION EN
ENTORNOS GRAFICOS
INDICE
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
UNIDAD 1:
Programación orientada a objetos en C++ y Windows
UNIDAD 2:
Programación Orientada a objetos en Visual Basic
UNIDAD 3:
Técnicas Profesionales avanzadas
UNIDAD 4
Introducción a los sistemas multimedia
UNIDAD 5
El sonido
UNIDAD 6
Las imágenes
UNIDAD 7
Hipertexto
UNIDAD 8
Sistemas Autor
UNIDAD 9
Interfaces gráficas estándar
UNIDAD 10
Diseño de pantallas para servicios multimedia
INTRODUCCIÓN
objetos similares. La clase automóvil describe las características comunes de todos los
automóviles: sus atributos y su comportamiento. Los atributos o propiedades se refieren
a la marca o fabricante, el color, las dimensiones, si tienen dos, tres, cuatro o más
puertas, la potencia, si utiliza como combustible la gasolina o gasoil, etc. El
comportamiento se refiere a la posibilidad de desplazarse por una carretera, frenar,
acelerar, cambiar de marcha, girar, etc.
Una clase es por tanto una plantilla implementada en software que describe un conjunto
de objetos con atributos y comportamiento similares.
Una instancia u objeto de una clase es una representación concreta y específica de una
clase y que reside en la memoria del ordenador.
OBJETIVOS
Diseñar y realizar servicios de presentación que faciliten la explotación de aplicaciones
1.5. Diseñar plantillas de carácter genérico con el fin de uniformar los servicios de
presentación y el estilo interfaz de una organización.
1.16. Establecer relaciones entre las distintas tablas de una Base de Datos.
ESTRUCTURA DE CONTENIDOS
Para alcanzar los objetivos descritos anteriormente, realizaremos la división del curso en
los temas más abajo expuestos, pudiendo modificarse la estructura en función de las
necesidades que aparezcan durante el curso.
Para llevar a la práctica todos los objetivos se han dispuesto desde el Departamento de
Informática del Centro Santa María de los Apóstoles, que el lenguaje de programación
utilizado sea Visual Basic. Los motivos son sencillos y muy claros: A pesar de que no
es un lenguaje puramente orientado a objetos, conserva todas las propiedades de este
tipo de lenguajes pero permitiendo la creación de aplicaciones en un tiempo mínimo,
debido a la facilidad de aprendizaje y a la facilidad de manejo del compilador. Por si
fuera poco es uno de los lenguajes mas utilidades en todo el mundo (hasta el 2001 según
revistas del mundillo el más utilizado) al que solamente le ha empezado ha hacer
sombra lenguajes para el desarrollo de aplicaciones en Internet como JAVA. Teniendo
en cuenta que solo tenemos dos trimestres parece adecuado pensar que para asimilar los
conceptos de forma rápida, desde el departamento creemos que es el lenguaje más
acertado.
METODOLOGÍA y RECURSOS
Par obtener los objetivos expuestos y realizar los temas, se utiliza un entorno de
desarrollo flexible, fácil y a la vez potente como es Visual Basic, y un entorno
puramente orientado a objetos y de reciente aparición Visual Basic .NET, además como
herramientas complementarias para el desarrollo WEB se utilizaran los programas de
Macromedia Dreamweaber y Flash.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Se realizará una exposición teórica de cada uno de los temas, compaginando dicha
explicación con ejercicios teóricos o prácticos, estos últimos se harán sobre el ordenador
comprobándose así su correcto funcionamiento.
Como complemento a las exposiciones teóricas dispondrán de apuntes, fotocopias y
libros que favorecerán la comprensión de la metería del modulo, así como el acceso a
Internet para la obtención de manuales y puestas en común con otros desarrolladores.
CRITERIO DE EVALUACION
UNIDAD N° 1
LENGUAJE DE PROGRAMACIÓN
Introducción
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
el término de Programación Orientada a Objetos indica más una forma de diseño y una
metodología de desarrollo de software que un lenguaje de programación, ya que en
realidad se puede aplicar el Diseño Orientado a Objetos (En inglés abreviado OOD,
Object Oriented Design), a cualquier tipo de lenguaje de programación.
Básicamente la OOP permite a los programadores escribir software, de forma que esté
organizado en la misma manera que el problema que trata de modernizar. Los lenguajes
de programación convencionales son poco más que una lista de acciones a realizar sobre
un conjunto de datos en una determinada secuencia. Si en algún punto del programa
modificamos la estructura de los datos o la acción realizada sobre ellos, el programa
cambia.
Para quienes no están familiarizados con la programación estructurada se dice que una
de las bases de esta escuela de programación parte del diseño arriba – abajo. En esta
forma de diseño se descomponen los requerimientos del programa paso a paso, hasta
llegar a un nivel que permite expresarlos mediante procedimientos y funciones. La OOP
estructura los datos en objetos que pueden almacenar, manipular y combinar
información.
OBJETOS (1)
Los objetos son entidades que se pueden distinguir de manera clara y definida, ejemplos
de un objeto pueden ser una persona, un libro, un botón de orden.
o Eventos: Todos los objetos se relacionan con el mundo que los rodea,
esto significa que ningún objeto está aislado y siempre recibe el influjo
de otros objetos. Los eventos son los estímulos que un objeto ejerce
sobre otro
Estado de un objeto:
Clases: (2)
Herencia:
Un objeto es heredero de otro cuando posee todas sus propiedades y todos sus métodos
y reconoce todos sus eventos, aunque pueda disfrutar de propiedades, métodos y
eventos adicionales. Se define la herencia como la característica que tienen los objetos
de derivarse unos de otros. Por otra parte la herencia supone una clase base y una
jerarquía de clases que contienen las clases derivadas de la clase base, así las clases
derivadas pueden heredar las propiedades y métodos de una clase base, añadiendo sus
propios métodos y propiedades, incluso cambiar aquellos elementos de la clase base que
necesiten sean diferentes.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Introduce, por tanto, una posibilidad de refinamiento sucesivo del concepto de clase.
Nos permite definir una clase principal y, a través de sucesivas aproximaciones,
cualquier característica de los objetos. A partir de ahora definiremos como sub-clases
todas aquellas clases obtenidas mediante refinamiento de una (o varias) clases
principales.
Asociemos a este tipo básico una clase cuyos atributos representen las piezas que
componen el coche. Las sub-clases aportarán sus propios atributos (en el caso de
vehículos con aire acondicionado, todos aquellas piezas que lo componen), permitiendo
la definición de todos los posibles modelos.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Además, es posible que una sub-clase herede atributos y propiedades de más de una
clase. Este proceso se denomina herencia múltiple y lo veremos con más detalle en
capítulos posteriores.
La herencia es, sin duda alguna, una de las propiedades más importantes de la OOP, ya
que permite, a través de la definición de una clase básica, ir añadiendo propiedades a
medida que sean necesarias y, además, en el sub-conjunto de objetos que sea preciso.
La herencia permite que los objetos puedan compartir datos y comportamientos a través
de las diferentes sub-clases, sin incurrir en redundancia. Más importante que el ahorro
de código, es la claridad que aporta al identificar que las distintas operaciones sobre los
objetos es en realidad una misma cosa.
Tipos de Herencia:
o Herencia Simple: En esta jerarquía cada clase tiene como máximo una
sola superclase. La herencia simple permite que una clase herede las
propiedades y métodos de su superclase en una cadena jerárquica.
o Herencia múltiple: Una malla o retícula consta de clases, cada una de las
cuales pueden tener dos o más superclases inmediatas. Una herencia
múltiple es aquella en la que cada clase puede heredar las propiedades y
métodos de cualquier número de clases.
Encapsulamiento:
Un objeto está separado del medio que lo rodea por algún tipo de envoltura. Esta
separación es la que determina la unidad del objeto, es decir, lo convierte en algo
independiente. La envoltura oculta los detalles relacionados con la construcción interior
del objeto, esto significa que sólo conocemos del objeto aquello que es revelado por sus
métodos. Se llama encapsulamiento a la propiedad que tienen los objetos de ocultar
detalles internos, así se permite asegurar que el contenido de la información de un
objeto este oculta al mundo exterior (Por ejemplo un objeto A no conoce lo que hace un
objeto B y viceversa). Por otra parte el programador que construye un objeto tiene
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
El mensaje es esencialmente una orden que se envía a un objeto para indicarle que
realice alguna acción. También se define mensaje como la información completa que un
objeto emisor transmite hacia un objeto receptor.
Un mensaje contiene tres elementos: el objeto receptor, el tipo de evento y los datos
necesarios para el receptor.
Mensaje
Cuando se produce un evento, el objeto receptor sabe cuál es el objeto emisor, qué
evento se produjo y el valor de los datos asociados con dicho evento.
Polimorfismo: (3)
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
El polimorfismo es una nueva característica aportada por la OOP. Esta propiedad indica
la posibilidad de definir varias operaciones con el mismo nombre, diferenciándolas
únicamente en los parámetros de entrada. Dependiendo del objeto que se introduzca
como parámetro de entrada, se elegirá automáticamente cual de las operaciones se va a
realizar.
Ya está habituado al operador <<suma>> que está presente en todos los lenguajes de
programación. Sin embargo, los operadores <<suma de fracciones>> y <<suma de
números complejos>> no existen en casi ningún lenguaje de programación.
Los lenguajes OOP permiten definir un operador <<suma>> tal que reconozca que tipo
de objeto se le está aplicando, a través de operaciones de objetos. Previamente deberá
definir la fracción y el número complejo como una clase y la operación suma como una
operación de una clase.
¿Alguna de estas dos opciones es verdaderamente una suma? Es decir ¿Cumple las
propiedades conmutativa, asociativa, de elemento neutro, etc.? ¿Qué ocurre si sumo dos
bases de datos con estructuras distintas?
Una de las características que hacen a los objetos ser muy potentes es que pueden
contener otros objetos. Los objetos que contienen otros objetos se denominan objetos
compuestos. Esta característica ofrece dos ventajas importantes:
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
14. Constructor:
Los constructores son métodos o funciones que existen dentro de todos los objetos, y
que se activan solamente en el momento de la creación del objeto. Los constructores
sirven para definir los valores iníciales de las propiedades del objeto. También se dice
que un constructor es una operación que crea un objeto y/o inicializa su estado.
15. Destructor:
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.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
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 estos están relacionados de una manera particular.
Cualidad que nos indica que partes del programa (en este caso objetos) pueden ser
reutilizados en la confección de otros programas. Ello implica que los objetos definidos
en un programa pueden ser extraídos del mismo e implantados en otro sin tener que
realizar modificaciones importantes en el código del objeto. El objeto final es que el
programador construya una librería de objetos que le permita realizar programas
basándose en la técnica de cortar y pegar. Esta extrae (corta) código de otras
aplicaciones ya realizadas y las implementa (pega) en la aplicación a realizar donde, tras
algunos retoques, la nueva aplicación estará lista para funcionar. Como podrá observar
el concepto de reusabilidad, permite reducir el tiempo de realización, ganando en
claridad, mantenibilidad y productividad.
La encapsulación de datos se muestra como una herramienta poderosa que nos permite
ganar en tiempo de desarrollo y claridad, con el único coste adicional de definir con
precisión las entradas y salida de nuestras operaciones.
Interna: La información que necesita el objeto para operar y que es innecesaria para los
demás objetos de la aplicación. Estos atributos se denominada privados y tienen como
marco de aplicación únicamente a las operaciones asociadas al objeto.
Externa La que necesitan el resto de los objetos para interactuar con el objeto que
definimos. Estas propiedades se denominan públicas y corresponde a la información que
necesitan conocer los restantes objetos de la aplicación respecto del objeto definido para
poder operar.
Podemos imaginarla encapsulación como introducir el objeto dentro de una caja negra
donde existen dos ranuras denominadas entrada y salida. Si introducimos datos por la
entrada automáticamente obtendrá un resultado en la salida. No necesita conocer ningún
detalle del funcionamiento interno de la caja.
El término encapsulación indica l capacidad que tienen los objetos de construir una
cápsula a su alrededor, ocultando la información que contienen (aquélla que es
necesaria para su funcionamiento interno, pero innecesaria para los demás objetos) a las
otras clases que componen la aplicación.
contiene y define todo lo que necesita para poder funcionar, es fácil utilizarlo en los más
variados tipos de aplicaciones. Si aseguramos, depurando las propiedades y las
operaciones dentro de la clase que el objeto función bien dentro de una aplicación, con
una correcta encapsulación el objeto podrá funcionar en cualquier otra.
Otra de las ventajas de la encapsulación es que, al definir el objeto como una caja negra
con entradas y salida asociadas, en cualquier momento podemos cambiar el contenido
de las operaciones del objeto, de manera que no afecte al funcionamiento general del
programa.
Mantenibilidad
Cualidad que indica que un programa o sistema debe ser fácilmente modificable. Es
decir que los cambios en las condiciones externas (como la definición de una nueva
variable) implicarán modificaciones pequeñas en el programa / sistema. El concepto de
mantenibilidad implica que un programa, al igual que un ser vivo debe ser capaz de
adaptarse a un medio ambiente siempre cambiante.
Conclusión.
Construcción de clases
Tal como hemos definido con anterioridad, una clase de objeto describe a un grupo de
objetos con similares:
Propiedades (atributos)
Comportamientos (operaciones)
Relaciones con otros objetos
La abreviatura clase es utilizada en lugar de clase de objetos. Los objetos difieren en los
valores asociados a sus atributos definidos dentro de la clase. Cada objeto <<conoce>>
cuál es su clase. La mayoría de los lenguajes orientados a objetos pueden determinar a
que clase pertenece un objeto durante la ejecución del programa.
Para ello examine la aplicación e identifique las distintas estructuras de datos, algunos
tips a tener en cuenta son los siguientes:
Los objetos software pueden imitar el mundo real, modelizando las propiedades
de los objetos a través de variables Cualquier propiedad de un objeto puede ser
identificada dentro del objeto correspondiente a través de variables.
Los objetos no se han de corresponder siempre con objetos físicos, sino que
también pueden ser entidades que se utilizan dentro de la construcción del
programa.
Piense en el objeto en <<primera persona>>. Este truco nos puede identificar
claramente los atributos y sus operaciones asociadas: <<Soy un cuadrado y me
muevo, giro, agrando y reduzco. Las partes que me componen son los puntos de
mis vértices>>.
Una clase es un tipo de dato que puede ser usado para declarar objetos, de la
misma forma que una estructura es un tipo definido por el usuario que puede
utilizarse para declarar variables.
Defina las operaciones a partir de los objetos, examinando las distintas operaciones
asociadas a un conjunto de datos. Los atributos del objeto se deben definir de tal manera
que éstos satisfagan todos los requerimientos de cada una de las operaciones.
A estas operaciones añada dos más: Crear y Destruir. Estas operaciones nos servirán
para inicializar y borrar el objeto dentro de la aplicación.
Únicamente aquellas operaciones que sean comunes a todos los objetos de la clase
deben incluirse dentro de las operaciones de la clase. El resto, que corresponden a las
operaciones de sub-Grupos de objetos, se deben definir dentro de la especializaciones
de la clase.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Una vez identificados los objetos, defina los atributos de la clase. Un atributo es un
valor almacenado en los objetos de la clase.
Estos <<principios>> son modelos que proporcionan técnicas que, a su vez, deben
aplicarse en el diseño e implementación de los programas. Estas técnicas nos indican la
forma de resolver los distintos problemas que surgen a la hora de programar.
Las metodologías de programación son modelos sobre como diseñar e implementar los
programas. Diferentes modelos tienen como resultado diferentes técnicas. Que cada
técnica sea distinta no implica que una sea la verdadera y que las demás falsas. Por el
contrario, las metodologías se complementan entre sí. Lo que todas las metodologías
tienen en común es la premisa de que hay que partir de abstracciones que corresponden
a elementos del problema a resolver, y que la implementación de la solución se debe
realizar mediante un conjunto de módulos preferiblemente reutilizables.
Las metodologías orientadas a objetos se centran en las estructuras de datos que sin
embargo se relegan a un segundo plano en los modelos procedurales. La base de esta
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
metodología es que una estructura de datos debe contener las operaciones que los
modifican. La técnica que se utiliza para obtener esta <<abstracción de datos>> es la
encapsulación de los mismos en una estructura conocida como clase.
El acceso a los datos contenidos en la clase se realiza mediante las operaciones que la
propia clase define. Por tanto, la metodología orientada a objetos complementa el punto
de vista procedural de operaciones realizadas sobre un flujo de datos, al asociar a cada
dato el conjunto de operaciones que lo modifican. Como podrá ver, ambos enfoques son
complementarios.
Para ilustrar las diferencias entre las aproximaciones orientadas a procedimientos y las
orientadas a objetos, considere el diseño de un <<compilador>>
Para la elección de un determinado entorno debemos fijar los criterios necesarios, como
los que describimos a continuación:
Tamaño de la aplicación
Complejidad
Datos: La complejidad viene reflejada por el tipo de datos a tratar, por las relaciones que
puedan tener los datos entre si, etc.
Rapidez
Portabilidad
Gestión de recursos
Este factor indica las exigencias que hace nuestro lenguaje de los recursos disponibles
por el ordenado. El más limitado, aun más que el espacio en disco, es la memoria. Un
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
programa grande que gestione de manera incorrecta la memoria pronto agotará todos los
recursos del sistema.
Interface de usuario.
Claridad
Complejidad
Uno de los problemas más comunes, y a su vez más simples de solucionar en el diseño
de grandes sistemas, es el nombre que se da a las funciones y qué tipo de datos
manipulan éstas.
Cada quipo utiliza funciones y datos suministrados por los otros miembros del equipo y
a su vez diseña funciones para su uso interno y para el uso del resto de los grupos. Si no
se realiza la división del trabajo de forma adecuada puede producirse el caos. He aquí
una pequeña enumeración de los problemas que se pueden encontrar.
Las funciones desarrolladas por cada uno de los grupos no encajan con las
necesidades de los demás.
Otros grupos han elegido nombres de variables y funciones similares a los
elegidos por nuestro grupo. Estas funciones y variables son prácticamente
iguales a las desarrolladas por nosotros, pero varían ligeramente en el
tratamiento de la información, por lo que no podemos sustituir nuestras
funciones. Ambas deben coexistir aumentando la complejidad del programa de
manera innecesaria.
El resto de los grupos sólo cubren determinados aspectos de la información a
tratar, pero no proporcionan toda la información necesaria para que el programa
funcione. El resto de información debe suministrarse suplantando parte de la
funcionalidad destinada a otros grupos.
Algunas de las modificaciones que realizamos sobre variables locales o globales
producen resultados imprevistos en el resto de los módulos.
Tamaño
Por el mismo motivo se verán beneficiados aquellos programas que impliquen una
relación compleja entre los datos. Este tipo de complejidad permite la utilización de
todas las ventajas de los lenguajes de programación orientados a objetos. Propiedades
como la herencia (donde los objetos pueden heredar estructura y operaciones de objetos
predecesores), la encapsulación, etc. Muestran en este tipo de programas todas sus
ventajas.
Rapidez
En este aspecto, los lenguajes orientados a objetos muestran una clara desventaja frente
a otros lenguajes que se acercan más a las especificaciones de la máquina. Si la rapidez
es crítica, puede elegir un lenguaje de programación como C++, que aporta toda la
funcionalidad de los lenguajes orientados a objetos con la rapidez y la compatibilidad de
C.
Gestión de recursos
Las aplicaciones orientadas a objetos demandan normalmente más recursos del sistema
que las aplicaciones procedurales. La creación dinámica de objetos, que ocupa un lugar
en la memoria del ordenador, puede acarrear graves problemas. Una de las soluciones,
que incluye alguno de los lenguajes OOP, es liberar a menudo el espacio que los objetos
dejan de utilizar. Este procedimiento de optimización como garbage collection
(recolección de basura, implementado en java), minimiza los efecto de la creación
dinámica de objetos.
Interface de usuario.
de los puntos fuertes para la elección de un lenguaje OOP. La mayoría de los interfaces
gráficos actuales han sido diseñados o rediseñados en base a la OOP. Existen en el
mercado librerías de clases que soportan todos los dispositivos de control de ventanas
como menús, combo box, listas, barras de herramientas, etc.
Si los programas se van a sentar en una cualidad concreta de los OOP como
herencia, elija el que mejor soporte le dé.
Los lenguajes interpretados sirven para realizar un desarrollo rápido o para
aquellos programas que necesiten una actualización constante. Si el programa
necesita rapidez o es crítico respecto al tamaño, considere el uso de lenguajes
que incorporen compilador.
No <<reinvente la rueda>>. Si el lenguaje le proporciona una librería de clases
no intente reescribrlas de nuevo, use las que le ofrece el sistema. Es más tome
como factor de elección las librerías de clases que el compilador incorpora o que
estén disponibles en el mercado.
Si necesita mejorar la calidad del programa previniendo errores, utilice un
lenguaje que le permita definir las variables con sus tipos asociados.
Si la memoria del sistema es limitada, utilice lenguajes que permitan la creación
y destrucción automática de clases dependiendo de su utilización.
Herencia múltiple
Esta característica suele ser común a la mayoría de los lenguajes OOP, aunque introduce
un problema al existir la posibilidad de que el objeto sucesor herede el mismo atributo,
aunque con distinto tipo y valor, de más de un predecesor. Alguno de los lenguajes de
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
programación soluciona este problema de forma automática, aunque los más populares
generan un error en el tiempo de compilación. Recomendamos que se examinen con
cuidado las clases para evitar en lo posible estos errores.
Eficiencia.
Asignación de tipos.
Los lenguajes orientados a objetos varían de forma sustancial la forma por la que se
aproximan a la asignación de tipos.
Por asignación de tipos entendemos que cada variable sea identificada como
perteneciente a una clase (asignación fuerte) o sea simplemente un objeto indeterminado
(asignación débil). Eiffel y C son dos lenguajes basados en la asignación fuerte, frente a
Smalltalk, en el que todas las variables definidas pertenecen a una clase indeterminada.
La asignación fuerte sirve a dos propósitos. Por una parte para que el desarrollador
pueda identificar a que clase pertenece cada operación. De forma concreta, en aquellos
lenguajes donde está implementado el operator overloading (refefinición de operador),
el compilador puede reconocer a través de las clases que entran como parámetros en la
operación que operación tiene que utilizar.
Manejo de memoria.
Los OOP son lenguajes que utilizan de manera intensiva la memoria de la computadora.
SMALLTALK
Ventajas
Inconvenientes
Eiffel
Ventajas
Desventajas
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
C++
La abstracción de datos
La programación orientada a objetos, ya que permite asociar a los datos las
funciones que los manipulan
También es cierto que se pueden utilizar algunas de las ventajas de C++ (como C
mejorado) para escribir código no orientado a objetos.
Enumeramos los aspectos más importantes que hacen del C++ un lenguaje orientado a
objetos:
El uso de esta técnica en el diseño de bases de datos aporta las cualidades de esta
metodología a nuestro diseño. Eficiencia, coherencia y un menor coste a la hora de
actualizar la estructura de las bases de datos son los principales beneficios que aporta.
Como valor añadido, el uso de una misma técnica en el diseño, tanto de los programas
como de las bases de datos proporciona coherencia a nuestro sistema.
La de las bases de datos y la de los lenguajes orientados a objetos. Los Lenguajes OOP
aportan gran capacidad en la manipulación de datos, pero no implementan el
almacenamiento y consulta de grandes volúmenes de datos.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Por el contrario, las bases de datos convencionales aportan un dominio de las técnicas
de almacenamiento y consulta de grandes volúmenes de datos, aunque su capacidad de
manipulación es limitada.
Por una parte, se utilizan diferentes técnicas para el desarrollo de ambos apartados, por
lo que la tarea de diseño no se puede considerara como un todo único
Por otra y en gran medida debida a la primera, los lenguajes que se utilizan para la
implementación difieren, dificultando las labores de mantenimiento.
Ejemplos
Como habrá podido observar a lo largo de esta monografía, nuestro propósito no ha siso
el de enseñar una metodología ni la enseñanza de un determinado lenguaje de
programación.
OBJETOS Y ASOCIACIONES.
Este análisis es el primero que debe hacerse dentro de OOP y es también útil para
cualquier otra técnica de programación.
De una manera general hemos indicado entre comillas los sustantivos y en cursiva los
verbos. De esta forma hemos identificado los objetos principales de la aplicación y las
operaciones asociadas a cada uno de los objetos.
Estos están inconexos entre sí, pero aplicando la <<lógica>> podemos ver las relaciones
que existen entre ellos. Sin salirnos de las especificaciones de la aplicación, vemos que
existen las asociaciones que aparecen en la siguiente figura:
Como podemos observar, algunas asociaciones cíclicas como Índice <-> Documento.
Estas asociaciones pueden simplificarse. También existen otras implícitas que
examinaremos más adelante, como Usuario->Documento->Índice.
Como puede verse hay dos asociaciones sospechosas, ya que no son verbos sino los
sustantivos <<petición>> y <<mensaje>>. Estas dos asociaciones se pueden
<<objetivar>> de tal manera que reúnan las condiciones de un objeto. Para ello
debemos volver a las especificaciones iníciales.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Cuando se archiva un documento se debe indicar el nombre del documento así como los
índices a los que se va a asociar. Las peticiones de recuperación deben incluir un índice
y el nombre del archivo. Las consultas a los índices deben incluir el nombre del indice y
una condición.
LA RELACION DE HERENCIA.
Como ya sabemos ésta puede agrupar objeto son similares característica o bien
especializar objetos a partir de una genérico. Observemos nuevamente los
requerimientos de nuestro sistema:
Para desarrollar programas, Windows provee una librería de rutinas y funciones (SDK -
Kit de desarrollo de software) que permiten gestionar componentes como menús,
diálogos, ventanas, etc.
Editor de texto
Compilador/Enlazador
Depurador
Visor de datos y dependencias (Browser)
Pero si desde el punto de vista del usuario Windows es un sistema amigable, desde el
punto de vista del desarrollador observaremos todo lo contrario. El SDK de Windows
no es mas que un complejo conjunto de funciones que añade además numerosas
definiciones de tipos de datos nuevos para cualquier programador de C/C++ para DOS.
Para solucionar este problema, Visual C++ incluye la librería de clases MFC (Microsoft
Foundation Classes) que permite crear y gestionar de manera intuitiva componentes
típicos de Windows. Esto es, la MFC es una implementación que utiliza el API
encapsulando todas las estructuras y llamadas a funciones en objetos fáciles de utilizar.
Basándose en la potencia de la MFC, Visual C++ se convierte en un generador de
programas C++ para Windows.
1.
1. Como todos sabemos, "C" es un lenguaje de alto nivel, basado en
funciones, que permite desarrollos estructurados. Entre otras muchas
características contempla la definición de estructuras de datos,
recursividad o indirecciones a datos o código (punteros).
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
"C ++", por su parte, es un superconjunto de "C", al que recubre con una
capa de soporte a la POO. Permite por tanto la definición, creación y
manipulación de objetos.
2. ¿Que es C ++ ?
3. ¿Que es la Programación Orientada a Objetos ?
2. CONCEPTOS PRELIMINARES
Objetos. Un objeto es una entidad que tiene unos atributos particulares (datos) y
unas formas de operar sobre ellos (los métodos o funciones miembro). Es decir,
un objeto incluye, por una parte una serie de operaciones que definen su
comportamiento, y una serie de variables manipuladas por esas funciones que
definen su estado. Por ejemplo, una ventana Windows contendrá operaciones
como "maximizar" y variables como "ancho" y "alto" de la ventana.
Encapsulamiento. Mediante esta técnica conseguiremos que cada clase sea una
caja negra, de tal manera que los objetos de esa clase se puedan manipular como
unidades básicas. Los detalles de la implementación se encuentran dentro de la
clase, mientras que desde el exterior, un objeto será simplemente una entidad
que responde a una serie de mensajes públicos (también denominados interfaz
de la clase).
hace por defecto (por ejemplo, en C una variable global siempre se inicializa a 0, pero
una automática no, por lo que si no se inicializa expresamente su contenido inicial será
basura); por otra parte, cuando se destruye una variable (por que se abandona el ámbito
de su definición - scope -) se libera la memoria que estaba ocupando. Si ahora hacemos
el paralelismo obligado entre variables y objetos para los lenguajes POO nos daremos
cuenta de que deben existir procedimientos especiales de construcción y destrucción de
objetos. En concreto, cada clase tiene dos funciones miembro especiales denominadas
constructor y destructor.
En muchos casos, para las clases mas sencillas, podemos encontrar clases que no tiene
constructor o destructor, ó ninguno de los dos. En C++, siempre existen constructores y
destructores por defecto que realizan una inicialización/liberación estándar.
permitan suspender tareas para activar otras en función de las circunstancias del
momento (por ejemplo, por acción del usuario).
Pero por parte de las aplicaciones, este hecho supone que han de cooperar en la
compartición de esos recursos. Las aplicaciones Windows se limitan a "esperar"
mensajes procedentes del sistema, procesarlos y volver al estado de espera. Este modelo
de programación se conoce como "orientado al evento".
En definitiva, para crear cualquier programa con Visual C++ debemos comenzar
creando un proyecto para él, codificando y añadiendo los módulos necesarios a
dicho proyecto, y definiendo los recursos asociados.
Cuando se crea un nuevo proyecto (desde la opción "Nuevo" del menú "Fichero"
aparece un diálogo que nos permite especificar que se cree un nuevo workspace), lo
primero que solicita el sistema es determinar el tipo de objetivo que se persigue con este
proyecto. Destacar las siguientes posibilidades:
1. EL GENERADOR DE APLICACIONES.
Pero el código generado mediante este método presenta una complejidad añadida a la
natural de cualquier programa; junto con el código C/C++ y el de la MFC aparecen
líneas (generalmente entre comentarios) que son totalmente necesarias para el
funcionamiento de las dos herramientas anteriores, modificar cualquiera de esas líneas
de código dará muchos problemas a la hora de utilizar ClassWizard para modificarlo.
De todas maneras, este "defecto" es bastante popular entre los usuarios de cualquier
generador de código, para cualquier lenguaje.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
El formato general de los proyectos generados con estas herramientas suele tener las
siguientes características:
1. Nombrar el proyecto. Visual C++ organiza los proyectos de manera que crea un
subdirectorio nuevo con el nombre de cada proyecto. Aunque esta "regla"
siempre puede modificarse, puede ser una buena forma de control de proyectos.
1.
2. Paso 1. Permite identificar el modelo de ventana principal de nuestra aplicación:
SDI, MDI o basada en diálogo. Nosotros elegiremos SDI.
1. Paso 6. Permite modificar el nombre de las clases MFC que se van a generar,
además de especificar los ficheros en los que se implementa y la clase base de la
que derivan. Los nombres generados por AppWizard suelen ser bastantes
significativos.
A partir de este momento da comienzo la generación del código definido antes. Como
se habrá observado, el nombre por defecto de las clases generadas tiene mucho que ver
con el nombre que le hayamos dado al proyecto. De esta manera, si hubiésemos llamado
"curso1" al proyecto tendríamos la siguiente situación:
Por último aparece también la carpeta InfoView que permite un rápido acceso a la
ayuda en línea.
Representa una aplicación Windows. Cada programa debe tener un objeto global o
estático (es decir, que exista durante todo el programa) de una clase propia derivada de
CWinApp. De hecho, otra característica de la programación basada en MFC es que el
código carece de programa principal (punto inicial de ejecución como la función "main"
de C/C++ para DOS, UNIX, etc.), la ejecución comienza con la creación del objeto
CWinApp.
En realidad, es la MFC la que provee una función principal estándar WinMain (este es
el nombre que toma para las aplicaciones Windows) que utilizarán todos los programas.
Los pasos básicos que sigue son tres: inicialización del programa, entrada en el bucle de
mensajes y finalización del programa. Veámoslo más en detalle.
tenemos que tener en cuenta que los programas Windows pueden ser "multi-
instanciables", podemos tener varios ejemplares del mismo programa
ejecutándose a la misma vez. Los ejemplos mas claros son aplicaciones como el
bloc de notas (notepad) o cualquier utilidad de conexión remota (telnet). En
definitiva, si queremos obtener programas multi-instanciables tenemos que
distinguir operaciones de inicialización que servirían a todos los ejemplares y
que por tanto se deberían realizar una sola vez, de aquellas que son específicas a
cada ejemplar (como crear cada ejemplar su ventana principal).
Bucle de mensajes. Es la parte central de la ejecución, no finaliza hasta que no
se cierra la ventana principal.
Finalización de la instancia. Permitirá liberar recursos, cerrar ficheros de trabajo,
confirmar operaciones, etc.
Run -> Que realiza el bucle de mensajes por defecto. En la mayoría de los casos
este bucle es suficiente, con lo que no tendremos por que redefinirlo.
ExitInstance -> Invocada por el sistema después de cerrarse su ventana
principal.
Comparando el código generado para nuestra primera aplicación con lo expuesto en este
punto podemos comenzar a entender como funcionan las cosas en el mundo MFC.
2. 2 El interfaz Documento/Vista
1. Vista (view), ventana que presenta el documento. Cada vista presenta un único
documento.
AppWizard genera todo su código basándose en este estándar. Una aplicación SDI sólo
podrá tener abierto un documento (la ventana principal es también la ventana marco),
mientras que una MDI podrá tener varios abiertos simultáneamente (aquí la ventana
principal puede contener varias marcos con vistas). Sin embargo este enfoque no es el
mas idóneo para un buen número de aplicaciones Windows SDI donde la ventana
principal no sirve sino como contenedor del menú, y la representación o el manejo de
los datos de la aplicación se suele realizar a través de diálogos. Si es sin embargo mas
útil en el caso de las aplicaciones MDI donde si que las ventanas marcos se utilizan
como formularios usuales, es decir, como ventanas para presentación de datos.
Las clases MFC en las que se apoya el interfaz Documento/Vista son las siguientes:
1. Clase CView -> Ventana vista que presenta un documento. Es una ventana
"especial" que no contiene ni bordes ni título ni barra de menú, orientada a
circunscribirse dentro de otra ventana marco. Existen otras clases derivadas de
ésta que presentan mayor especialización:
1. Clase CDocTemplate -> Clase abstracta que aporta la funcionalidad básica para
plantillas SDI o MDI. Al ser una clase abstracta no la podremos utilizar
directamente, tendremos que utilizar sus clases derivadas: CSingleDocTemplate
y CMultiDocTemplate.
De todas maneras, en contra de lo que hemos dicho antes, no es difícil adaptar cualquier
aplicación al protocolo requerido por el interfaz documento vista, sin mucho impacto en
la misma, gracias a que la mayoría de las funcionalidades están predefinidas por
defecto.
Es una de las clases más importantes de la MFC ya que contiene las funcionalidades
básicas de todas las clases de ventanas Windows. Como siempre, al ser una abstracción,
no está muy orientada a la utilización directa, mas bien siempre tenderemos a utilizar
alguna de sus clases derivadas, mas especializadas, como CFrameWindow (ventana
principal de aplicación) o CDialog (para ventanas de diálogo).
Pero su principal interés reside en que es la clase responsable del funcionamiento del
mecanismo de paso de mensajes de Windows. Éste queda oculto por lo que se llama en
la MFC mapa de mensajes. El mapa de mensajes de una clase de ventana recoge la
asociación entre el mensaje recibido del sistema y la función que se ejecutará como
respuesta. Todas estas funciones de respuesta (métodos de clase) son funciones virtuales
que por tanto se pueden redefinir en todas las clases derivadas.
Supongamos que estamos construyendo una aplicación la cual queremos que antes de
finalizar descargue cierto contenido de memoria en un fichero. Para ello deberíamos ser
capaces de contestar adecuadamente al mensaje WM_CLOSE que el sistema manda a la
ventana principal cuando se tiene que cerrar. El mapa de mensajes de la clase CWnd
especifica que la función de respuesta será CWnd::OnClose(). Bastará entonces con que
en nuestra clase ventana principal redefinamos una nueva versión de esa función
heredada. No hace falta que conozcamos de memoria todo el mapa de mensajes por
defecto de CWnd (nombres de las funciones de respuesta, etc.), la utilización de
AppWizard automatiza todo este complejo tratamiento.
Los miembros datos y miembros funciones de esta clase son muy numerosos y variados,
los iremos comentando según los vayamos utilizando.
Create -> Función que permite crear una ventana física y asociarla con el objeto
recién creado.
Las vistas mas especializadas se encuentran entre las siguientes clases derivadas:
7. 3. 1 La clase CString
como tal en el núcleo de C. Mientras que en otros lenguajes de alto nivel el string de
caracteres es un tipo de dato autónomo que dispone de sus propios operadores
(asignación, concatenación, comparación, etc.), en C/C++ el string se representa como
una colección (array) de caracteres (que el tipo de dato básico), esto supone que
cualquier operación sobre ellos se debe realizar mediante funciones de la librería
estándar de C (strcpy, strcat, strcmp, etc.).
Pero además, la clase CString tiene sobrecargados algunos de los operadores de C/C++
lo que permite un manejo intuitivo de esta clase, son los siguientes: asignación
(mediante =), concatenación (mediante + y +=) y comparación (operadores ==, <, <=,
etc.).
ClassWizard podemos asociar un comando del menú con una función miembro
de un objeto aplicación.
Las ventanas de diálogos son uno de los elementos mas utilizados para la interacción
con el usuario. De manera general un diálogo es una ventana especial que contiene en su
interior ventanas hijas que son controles (botones, listas, cajas de edición, listas
desplegables, …) identificados por un número único, además, cuando un diálogo se
despliega, se convierte en una ventana exclusiva en el sentido de que deja inhabilitada
cualquier operación con el resto de la aplicación (este efecto se conoce realmente con el
nombre de diálogos modales, aunque existe la posibilidad de crear también diálogos no
modales). Las plantillas de estos diálogos pueden diseñarse mediante herramientas
integradas en el entorno de desarrollo como es el ya conocido ResourceView (también
conocido como taller de recursos).
de cierre del diálogo (por ejemplo podemos devolver TRUE para indicar que se
presionó OK o FALSE para Cancelar).
La función CDialog::EndDialog permite finalizar un diálogo modal, recibe un
parámetro que se corresponderá con el valor que devuelva DoModal.
La función CDialog::Create, aplicada sobre un objeto construido previamente,
permite crear diálogos no modales. Los diálogos no modales no se finalizan con
EndDialog sino que utilizaremos la función estándar heredada de CWnd
DestroyWindow.
Función CDialog::OnInitDialog, para inicializar el diálogo.
Funciones CDialog::OnOk/CDialog::OnCancel que permiten realizar las
operaciones de confirmación o cancelación del objetivo del diálogo.
Pero CDialog es una clase abstracta, por lo que no la podremos utilizar directamente (no
se pueden crear objetos CDialog). El programador deberá derivar sus propias clases
desde CDialog para crear sus propios diálogos.
1. Creación de diálogos
Los pasos para crear una ventana de diálogo son los siguientes:
1. Invocar ClassWizard
Cada una de estas clases deriva de CWnd (no en vano son todas ventanas
especializadas) e incorpora funciones específicas que facilitan su tratamiento (así por
ejemplo las listas aportan funciones que permiten saber el elemento que tiene
seleccionado en cada momento).
Aunque un control puede aparecer dentro de cualquier ventana (se dice que el control es
una ventana hija) es en los diálogos donde mas se utilizan. De manera general, la
ventana padre debe ser capaz de manejar los controles que la forman (rellenando una
lista con las opciones disponibles, presentando el DNI del empleado seleccionado en la
caja de edición al efecto, etc.). Para conseguir esto disponemos de dos métodos:
"mapearán" todos los controles a variables sino sólo aquellos que necesitemos
(aquellos que vayamos a manejar en el programa). Este trabajo se realiza
mediante ClassWizard dentro de su "subcarpeta" marcada como "Variables". Así
un botón se mapea a un objeto CButton, una lista a un objeto CListBox, etc.
1. De manera análoga a lo que comentamos con los items de menú, los controles
informan a las ventanas padres de las acciones que el usuario realiza sobre ellos.
Así los botones informan de que se hizo "click" sobre ellos o las cajas de edición
lo hacen de que se modificó su contenido. El mecanismo utilizado es también el
mensaje de comando WM_COMMAND aunque aquí tiene un enfoque
adicional.
Mientras los elementos de menú sólo informan de que han sido seleccionados
los controles pueden informar de distintos eventos (dependiendo del tipo de
control), así siempre es distinto realizar un click sobre una lista que un doble
click. En definitiva, los mensajes de comando de los controles de diálogos
incorporan una nueva información que se conoce como notificación. Las
notificaciones recogidas por cada tipo de control son distintas, dependiendo de
su naturaleza.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Una vez que hemos visto como obtener un vínculo con los controles que forman
un diálogo hemos de conocer como inicializarlo para que presente al usuario el
aspecto seleccionado. El momento de inicialización del diálogo viene marcado
por la llegada del mensaje WM_INITDIALOG, cuyo manejador virtual es
CDialog::OnInitDialog. En nuestra clase de ventana de diálogo redefiniremos
esta función virtual para definir nuestra propia inicialización.
Estos diálogos están compuestos por una serie de páginas (subcarpetas), que vienen
representadas en la MFC mediante la clase CPropertySheet. Cada una de estas páginas
es básicamente un diálogo de estilos especiales, pero cuentan con su plantilla
correspondiente en el fichero de recursos del proyecto.
1. Generar las páginas necesarias. Para ello necesitamos diseñar las plantillas de
cada una de ellas en los recursos, y añadir una clase derivada de CPropertyPage
que las represente (de manera análoga a como se vio en el punto 9.1)
7. EL INTERFAZ MDI
La utilización del modelo SDI o MDI dependerá siempre de los requisitos de nuestra
aplicación, de todas maneras el funcionamiento de ambos modelos es muy similar en su
concepción y tratamiento gracias a las abstracciones prestadas por la MFC.
La MFC proporciona clases que proveen un interfaz de alto nivel para el tratamiento de
bases de datos. Para ello se basa en dos mecanismos distintos pero de funcionamiento y
tratamiento muy similar:
Para utilizar una base de datos mediante ODBC entra en juego lo que se
denomina Origen de datos (DSN - Data source name). Un origen de datos es una
entidad identificada por su nombre que especifica una base de datos concreta,
mediante ese DSN podremos acceder a cualquier tabla de dicha base de datos.
La definición de los DSN se consigue gracias al Administrador ODBC que se
suele encontrar dentro del Panel de Control de Windows (puede que
encontremos instalaciones en las que no aparezca referencias al ODBC ya que es
una extensión de Windows no estándar, aunque en la actualidad es instalado por
la mayoría de los SGBD mas comerciales).
El modelo DAO (Data Access Object) es una extensión del ODBC que está
especializada y optimizada para el acceso a bases de datos de Microsoft Access.
DAO ha sido incorporado a la MFC en la última versión comercializada, ya que
antes el tratamiento de bases de datos Access estaba integrado dentro del propio
ODBC.
Tipo Snapshot, donde el recordset es una vista estática del contenido de la tabla
en el momento de su apertura. Cualquier modificación sobre la misma no se
reflejaría en el recordset hasta que no volviese a abrirse.
Tipo Dynaset, donde se representa una visión dinámica de las tablas. Es más
utilizado aplicaciones que trabajan sobre bases de datos multiusuario o
compartidas, donde otras aplicaciones pueden realizar modificaciones.
Para utilizar un determinado recordset bastará con crear un objeto de esa clase, rellenar
la información de la consulta en m_strFilter (si no va relleno se recuperarían todos los
registros de la tabla), la información de ordenación en m_strSort (opcional) y llamar a la
función Open que realiza la consulta apropiada. Cuando el recordset haya dejado de
utilizarse invocaremos la función Close que libera los recursos de la conexión ODBC.
Cuando trabajamos con bases de datos se pueden producir situaciones anómalas que
provocan errores de ejecución de las aplicaciones. Por ejemplo, el intento de abrir una
determinada tabla que ha sido abierta previamente por otro usuario de modo exclusivo,
o invocar la función de pasar al siguiente registro cuando ya se ha alcanzado el último
del recordset, son casos que provocarán una finalización anómala del programa.
De manera general, una excepción se puede producir dentro del ámbito de cualquier
función sin necesidad de que se estén manejando en ella recordsets o bases de datos. La
clase abstracta CException, representa este concepto.
Cada una de estas clases incorpora funcionalidades propias, pero su utilización es muy
similar, por lo que nos centraremos sobre CDBException que nos ocupa ahora.
TRY
CEmpleadosSet e;
TRY
e.Open();
CATCH(CDBException, e)
END_CATCH
Los objetos
Por ejemplo,
new reserva espacio en memoria para los miembros dato y devuelve una referencia que
se guarda en la variable rect1 del tipo Rectangulo que denominamos ahora objeto.
Dicha sentencia, crea un objeto denominado rect1 de la clase Rectangulo llamando al
segundo constructor en el listado. El rectángulo estará situado en el punto de
coordenadas x=10, y=20; tendrá una anchura de ancho=40 y una altura de alto=80.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
objeto.miembro;
Por ejemplo, podemos acceder al miembro dato ancho, para cambiar la anchura de un
objeto rectángulo.
rect1.ancho=100;
El rectángulo rect1 que tenía inicialmente una anchura de 40, mediante esta sentencia se
la cambiamos a 100.
Desde un objeto llamamos a la función miembro para realizar una determinada tarea.
Por ejemplo, desde el rectángulo rect1 llamamos a la función calcularArea para calcular
el área de dicho rectángulo.
La clase
Para crear una clase se utiliza la palabra reservada class y a continuación el nombre de
la clase. La definición de la clase se pone entre las llaves de apertura y cierre. El nombre
de la clase empieza por letra mayúscula.
class Rectangulo{
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
//miembros dato
//funciones miembro
Los valores de los atributos se guardan en los miembros dato o variables de instancia.
Los nombres de dichas variables comienzan por letra minúscula.
Vamos a crear una clase denominada Rectangulo, que describa las características
comunes a estas figuras planas que son las siguientes:
El nombre de las funciones miembro o métodos comieza por letra minúscula y deben
sugerir acciones (mover, calcular, etc.). La definición de una función tiene el siguiente
formato:
//...sentencias
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Entre las llaves de apertura y cierre se coloca la definición de la función. tipo indica el
tipo de dato que puede ser predefinido int, double, etc, o definido por el usuario, una
clase cualquiera.
Cuando se llama a la función, los argumentos arg1, arg2, arg3 se copian en los
parámetros parm1, parm2, parm3 y se ejecutan las sentencias dentro de la función. La
función finaliza cuando se llega al final de su bloque de definición o cuando encuentra
una sentencia return.
Cuando una función no devuelve nada se dice de tipo void. Para llamar a la función, se
escribe
Estudiaremos más adelante con más detalle cómo se definen las funciones.
Una función suele finalizar cuando llega al final del bloque de su definición
void funcion(....){
//sentencias...
Una función puede devolver un valor (un tipo de dato primitivo o un objeto).
double funcion(....){
double suma=0.0;
//sentencias...
return suma;
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
//...
Como se tienen que cumplir las cuatro condiciones a la vez, se unen mediante el
operador lógico AND simbolizado por &&.
Los constructores
Un objeto de una clase se crea llamando a una función especial denominada constructor
de la clase. El constructor se llama de forma automática cuando se crea un objeto, para
situarlo en memoria e inicializar los miembros dato declarados en la clase. El
constructor tiene el mismo nombre que la clase. Lo específico del constructor es que no
tiene tipo de retorno.
El constructor recibe cuatro números que guardan los parámetros x1, y1, w y h, y con
ellos inicializa los miembros dato x, y, ancho y alto.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Una clase puede tener más de un constructor. Por ejemplo, el siguiente constructor crea
un rectángulo cuyo origen está en el punto (0, 0).
La vida de un objeto
En el lenguaje C++, los objetos que se crean con new se han de eliminar con delete.
new reserva espacio en memoria para el objeto y delete libera dicha memoria. En el
lenguaje Java no es necesario liberar la memoria reservada, el recolector de basura
(garbage collector) se encarga de hacerlo por nosotros, liberando al programador de una
de las tareas que más quebraderos de cabeza le producen, olvidarse de liberar la
memoria reservada.
Veamos un ejemplo
Image granImagen=creaImagen();
mostrar(graImagen);
while(condicion){
calcular();
Identificadores
Cómo se escriben los nombres de las variables, de las clases, de las funciones, etc., es
un asunto muy importante de cara a la comprensión y el mantenimiento de código. En la
introducción a los fundamentos del lenguaje Java hemos tratado ya de los
identificadores.
El código debe de ser tanto más fácil de leer y de entender como sea posible. Alguien
que lea el código, incluso después de cierto tiempo, debe ser capaz de entender lo que
hace a primera vista, aunque los detalles internos, es decir, cómo lo hace, precise un
estudio detallado.
CuentaBancaria(int balance){
this.balance=balance;
balance+=cantidad;
}
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
if(balance>=cantidad){
balance-=cantidad;
return true;
return false;
return balance;
Este es un programa sencillo de una cuenta bancaria. El tipo de dato puede ser entero
(int o long), si la unidad monetaria tiene poco valor como la peseta, o un número
decimal (double) si la unidad monetaria es de gran valor como el Euro y el Dólar.
Atributos
Los atributos son las características individuales que diferencian un objeto de otro y
determinan su apariencia, estado u otras cualidades. Los atributos se guardan en
variables denominadas de instancia, y cada objeto particular puede tener valores
distintos para estas variables.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Además de las variables de instancia hay variables de clase, las cuales se aplican a la
clase y a todas sus instancias. Por ejemplo, el número de ruedas de un automóvil es el
mismo cuatro, para todos los automóviles.
Comportamiento
Del mismo modo que hay variables de instancia y de clase, también hay métodos de
instancia y de clase. En el primer caso, un objeto llama a un método para realizar una
determinada tarea, en el segundo, el método se llama desde la propia clase.
UNIDAD N° 2
2. Señala Programas.
3. Haz clic en Microsoft Visual Studio 6.0, Microsoft Visual Basic 6.0.
Menús (listas de acciones que puedes hacer en Visual Basic) Barras de herramientas
(para realizar las mismas acciones en menos tiempo)
Formulario (son las ventanas principales de toda aplicación creada con Visual Basic)
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Explorador del Proyecto (desde aquí se puede acceder a los componentes del proyecto)
Ventana de Propiedades (de cada control podemos definir sus atributos o propiedades
particulares que determinan su apariencia y comportamiento)
Caja de herramientas (aquí aparecen los diversos controles que se pueden usar)
Haz clic sobre el control que deseas colocar en el formulario. Colócate sobre el
formulario en donde colocarás el control. Presiona el botón izquierdo del ratón y dibuja
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
sobre el formulario el control hasta que obtenga la forma y el tamaño que prefieras,
entonces suelta el botón.
Abstract
1. Conceptos Generales
Los programas son usados por usuarios con distintos niveles de conocimientos, desde
principiantes hasta expertos. Es por ello que no existe una interfaz válida para todos los
usuarios y todas las tareas. Debe permitirse libertad al usuario para que elija el modo de
interacción que más se adecúe a sus objetivos en cada momento. La mayoría de los
programas y sistemas operativos ofrecen varias formas de interacción al usuario.
Existen tres puntos de vista distintos en una IU: el del usuario, el del programador y el
del diseñador (analogía de la construcción de una casa). Cada uno tiene un modelo
mental propio de la interfaz, que contiene los conceptos y expectativas acerca de la
misma, desarrollados a través de su experiencia.
Modelo del usuario: El usuario tiene su visión personal del sistema, y espera que éste
se comporte de una cierta forma. Se puede conocer el modelo del usuario estudiándolo,
ya sea realizando tests de usabilidad, entrevistas, o a través de una realimentación. Una
interfaz debe facilitar el proceso de crear un modelo mental efectivo.
Para ello son de gran utilidad las metáforas, que asocian un dominio nuevo a uno ya
conocido por el usuario. Un ejemplo típico es la metáfora del escritorio, común a la
mayoría de las interfaces gráficas actuales.
Modelo del diseñador: El diseñador mezcla las necesidades, ideas, deseos del usuario y
los materiales de que dispone el programador para diseñar un producto de software. Es
un intermediario entre ambos.
El modelo del diseñador describe los objetos que utiliza el usuario, su presentación al
mismo y las técnicas de interacción para su manipulación. Consta de tres partes:
presentación, interacción y relaciones entre los objetos (Figura 1).
La presentación es lo que primero capta la atención del usuario, pero más tarde pasa a
un segundo plano, y adquiere más importancia la interacción con el producto para poder
satisfacer sus expectativas. La presentación no es lo más relevante y un abuso en la
misma (por ejemplo, en el color) puede ser contraproducente, distrayendo al usuario.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
La segunda parte del modelo define las técnicas de interacción del usuario, a través de
diversos dispositivos.
Estos modelos deben estar claros para los participantes en el desarrollo de un producto,
de forma que se consiga una interfaz atractiva y a la vez efectiva para el trabajo con el
programa.
Una interfaz no es simplemente una cara bonita; esto puede impresionar a primera vista
pero decepcionar a la larga. Lo importante es que el programa se adapte bien al modelo
del usuario, cosa que se puede comprobar utilizando el programa más allá de la primera
impresión.
Existen principios relevantes para el diseño e implementación de IU, ya sea para las IU
gráficas, como para la Web.
Anticipación
Las aplicaciones deberían intentar anticiparse a las necesidades del usuario y no esperar
a que el usuario tenga que buscar la información, recopilarla o invocar las herramientas
que va a utilizar.
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
Autonomía
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
Consistencia
1.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
deben ser consistentes con su comportamiento. Si dos objetos actúan en forma diferente,
deben lucir diferentes. La única forma de verificar si la IU satisface las expectativas del
usuario es mediante testeo.
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento.
En la Figura 7 se demuestra como una incorrecta definición de las palabras clave de las
etiquetas de los botones de comando puede confundir al usuario. Los botones OK y
Apply aparentan realizar el mismo proceso. Esto puede solucionarse suprimiendo uno
de ellos si realizan la misma tarea o etiquetándolos con los nombres de los procesos
específicos que ejecutan.
Ley de Fitt
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
Interfaces Explorables
Siempre que sea posible se debe permitir que el usuario pueda salir ágilmente de la IU,
dejando una marca del estado de avance de su trabajo, para que pueda continuarlo en
otra oportunidad.
Para aquellos usuarios que sean noveles en el uso de la aplicación, se deberá proveer de
guías para realizar tareas que no sean habituales.
La IU debe poder realizar la inversa de cualquier acción que pueda llegar a ser de
riesgo, de esta forma se apoya al usuario a explorar el sistema sin temores.
El usuario debe sentirse seguro de poder salir del sistema cuando lo desee. Es por ello
que la IU debe tener un objeto fácil de accionar con el cual poder finalizar la aplicación.
Los objetos de interfaz humana no son necesariamente los objetos que se encuentran en
los sistemas orientados a objetos. Estos pueden ser vistos, escuchados, tocados o
percibidos de alguna forma. Además, estos objetos deberían ser entendibles,
consistentes y estables.
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Uso de Metáforas
Las buenas metáforas crean figuras mentales fáciles de recordar. La IU puede contener
objetos asociados al modelo conceptual en forma visual, con sonido u otra característica
perceptible por el usuario que ayude a simplificar el uso del sistema.
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
Curva de Aprendizaje
Reducción de Latencia
Siempre que sea posible, el uso de tramas (multi-threading) permite colocar la latencia
en segundo plano (background). Las técnicas de trabajo multitarea posibilitan el trabajo
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Se debe poder asegurar que el usuario nunca pierda su trabajo, ya sea por error de su
parte, problemas de transmisión de datos, de energía, o alguna otra razón inevitable.
Legibilidad
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
Interfaces Visibles
Niveles de Prototipado
análisis del sistema y la especificación de los requisitos del usuario constituyen los
datos clave para el proceso de prototipación.
Las heurísticas ayudan a poder analizar las IU y localizar problemas que afecten la
utilización de las mismas.
Para establecer medidas que indiquen la severidad de los problemas en el uso de las
interfaces, se deben conocer los factores que determinan el grado de un problema:
La frecuencia de ocurrencia.
El impacto que causa la ocurrencia del problema.
La persistencia del problema.
El impacto en el mercado.
Para la evaluación de los problemas en las IU es conveniente que contar con más de un
evaluador; de esta forma los resultados son más confiables.
Descripción de componentes
Usuario del Sistema: indica el nombre del usuario que está utilizando el sistema, el cual
ha sido previamente ingresado con una contraseña como requisito para acceder al
sistema.
Area de Trabajo: es el lugar donde se despliegan las pantallas que son activadas a través
del Menú Principal.
Minimizar Ventana: control que se utiliza para quitar de primer plano de trabajo una
ventana, sin cerrarla.
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
Puede utilizarse para la descripción de las pantallas, las operaciones que se especifican
en los diagramas de la Historia de Vida de las Entidades del sistema anteriormente
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
presentado (AGA 2000). Cada operación representa una pantalla diferente, por lo que se
expondrán algunas de ellas (Figuras 13 y 14) con el objeto de ilustrar el diseño de las
mismas.
Para ver esta imagen deberá descargar el archivo de Word que se encuentra en la opción
"Bajar trabajo" ubicado en la parte superior de este documento
6. Conclusiones
Entre las características que contribuyen a construir una interfaz sencilla de utilizar,
sobresale la utilización de metáforas como ayuda para simplificar al usuario en la
operación del sistema.
UNIDAD N° 4
INTRODUCCION A LOS SISTEMAS MULTIMEDIA PC
El término multimedia se utiliza para referirse a cualquier objeto o sistema que utiliza
múltiples medios de expresión (físicos o digitales) para presentar o comunicar
información. De allí la expresión «multimedios». Los medios pueden ser variados,
desde texto e imágenes, hasta animación, sonido, video, etc. También se puede calificar
como multimedia a los medios electrónicos (u otros medios) que permiten almacenar y
presentar contenido multimedia. Multimedia es similar al empleo tradicional de medios
mixtos en las artes plásticas, pero con un alcance más amplio.
Hipermedia podría considerarse como una forma especial de multimedia interactiva que
emplea estructuras de navegación más complejas que aumentan el control del usuario
sobre el flujo de la información. El término "hiper" se refiere a "navegación", de allí los
conceptos de "hipertexto" (navegación entre textos) e "hipermedia" (navegación entre
medios).
Características
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Los juegos y simulaciones multimedia pueden usarse en ambientes físicos con efectos
especiales, con varios usuarios conectados en red, o localmente con un computador sin
acceso a una red, un sistema de videojuegos, o un simulador. En el mercado
informático, existen variados softwares de autoría y programación de software
multimedia, entre los que destacan Adobe Director y Flash.
Además de ver y escuchar, la tecnología háptica permite sentir objetos virtuales. Las
tecnologías emergentes que involucran la ilusión de sabor y olor también puede mejorar
la experiencia multimedia.
El trabajo multimedia está actualmente a la orden del día y un buen profesional debe
seguir unos determinados pasos para elaborar el producto.
Definir el mensaje clave. Saber qué se quiere decir. Para eso es necesario
conocer al cliente y pensar en su mensaje comunicacional. Es el propio cliente el
primer agente de esta fase comunicacional.
Conocer al público. Buscar qué le puede gustar al público para que interactúe
con el mensaje. Aquí hay que formular una estrategia de ataque fuerte. Se
trabaja con el cliente, pero es la agencia de comunicación la que tiene el
protagonismo. En esta fase se crea un documento que los profesionales del
multimedia denominan "ficha técnica", "concepto" o "ficha de producto". Este
documento se basa en 5 ítems: necesidad, objetivo de la comunicación, público,
concepto y tratamiento.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Creación del producto. En función de los resultados del testeo del prototipo, se
hace una redefinición y se crea el producto definitivo, el esquema del
multimedia.
UNIDAD N° 3
TÉCNICAS PROFESIONALES AVANZADAS
43.1. Preliminares.
Variables
Estructuras repetitivas
Estructuras condicionales
Estructuras secuenciales
Procedimientos
Funciones
Clases.
Tipos de usuario
Arrays
Archivos
Bases de datos
Los “programas”, en realidad clases, rutinas o librerías, como deseemos llamarlos, que
se ejecutarán como parte de un programa y que posiblemente no incorporen ningún
elemento interactivo con el usuario.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
43.3. Introducción.
Estos objetos dado que tienen que mostrarse con una serie de características que
permitirá su forma agradable a la vista, disponen de una serie de propiedades que
permite que se le pueda asignar colores, tamaños, posición adecuados dentro del
componente o ventana en el que lo mostraremos al usuario.
Son objetos que podrían ser prescindibles en algunos casos, pero que sin embargo su
aparición se agradece en gran medida en la creación de nuevos programas.
Por otro lado existe la posibilidad de crear nuestros propios objetos para el uso en
nuestros programas.
Propiedades.
Cada uno de los objetos que usaremos en nuestros programas disponen de propiedades
que nos van a permitir definir Cómo reaccionará el objeto ante las acciones del usuario.
De esta forma se podrá personalizar cada objeto a las necesidades del programa.
Color de fondo
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Tipo de fuente
Tamaño de fuente
43.5. Eventos.
El teclado
El ratón
Si observamos los elementos que son capaces de producir los eventos, veremos que son
precisamente los elementos que permiten comunicarnos con la interface del programa.
Pulsar tecla
Tecla abajo
Tecla arriba
43.6. Métodos.
Los métodos son la forma que tiene un objeto de poder realizar algún tipo de acción
propia del mismo, como puede ser el provocar que pase al fondo del orden de
visualización, o pase a un primer plano.
43.7. Objetos.
Son los elementos con los cuales vamos a poder realizar el diseño gráfico de nuestro
programa.
Mostrar información
Etiquetas
Grupos de objetos
Visualizar imágenes
Introducción de datos.
Cajas de texto
Grid, rejillas
Ordenes.
Opciones.
Selección de datos
Cajas desplegables
Listas de datos
Impresión
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Menús y barras
Contenedoras.
Contenidas.
Independientes.
Las contenidas son las ventanas, programas que se van ejecutando desde el menú de la
aplicación.
Las ventanas independientes, son las que se ejecutan sin estar contenidas en ninguna
otra.
Crear la interface.
Escribir la llamada al código que se ha de ejecutar por cada uno de los eventos que
deseemos utilizar.
Acciones propias del programa que unas se inician en los eventos de los objetos del
formulario y otras como consecuencia de la activación de un botón de órdenes.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Fases de un programa.
Carga.
Activación.
Ejecución.
Finalización
1 Carga.
La carga dispone de eventos en los cuales podemos ejecutar aquellos pasos previos a la
ejecución, como pueda ser la configuración de los objetos y su ubicación en la ventana,
apertura de archivos y conexiones con bases de datos.
2 Activación.
En esta fase se puede actualizar el contenido de aquellos objetos que se cargan desde
archivos, bases de datos por si han sufrido cambios, y cualquier otro objeto susceptible
de haber sufrido cambios en el tiempo que no ha estado activo.
3 Ejecución.
Es el periodo que transcurre desde que se inicia hasta que se finaliza, descarga el
formulario, es el periodo en el que se producirán todas las acciones para las cuales ha
sido diseñado el programa, y que en la mayoría de los casos arrancarán desde alguno de
los eventos de los objetos que componen la ventana, formulario.
4 Finalización.
La finalización pasa por distintas fases, de tal forma que podemos cancelar la salida del
programa si no se dan las condiciones adecuadas, datos pendientes de guardar.
Intentar explicar como hacer un programa es algo harto complicado, ya que es una tarea
muy personal de cada cual, y a cada uno le gustará hacerlo de una forma o de otra, pero
al menos vamos a intentar explicar una forma de hacerlo.
Por otro lado el ejemplo que se muestra es un programa de mantenimiento, es una visión
de cómo se puede plantear el mismo, y claro está que ni la mejor, ni la única.
44.2. Introducción.
En un entorno gráfico se tiende a que cada uno de los programas esté compuesto por un
formulario, aunque no es una regla, pero es bastante habitual.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Por lo tanto cada una de las opciones que tenga una aplicación se puede asociar a un
formulario, ventana.
Para crear un formulario, para crear un programa en un entorno gráfico, podemos partir
de los siguientes criterios.
El que recibe esa información y la trata en función del destino de la misma, y de sus
características.
A partir de aquí podemos empezar a crear los programas siguiendo esas premisas es
decir, Crear el elemento de:
Después existe una serie de programas cuya interfaz es una simple pregunta de si se
desea o no realzar un proceso, o los de capturar una serie de datos para llegar a una
conclusión o realizar un proceso basado en ellos, los denominados asistentes.
Con los objetos que hemos descrito anteriormente podemos crear una interfaz de
usuario para cualquiera de las necesidades que nos puedan surgir, otro tema es que haya
en el mercado objetos más sofisticados que nos permitan resultados más llamativos o de
mejores prestaciones, todo es cuestión de gustos y de necesidades.
Mostrar información.
Etiquetas
Grupos de objetos
Visualizar imágenes
Introducción de datos.
Cajas de texto
Grid, rejillas
Ordenes.
Opciones.
Selección de datos.
Cajas desplegables
Listas de datos
Especializados.
Impresión
Menús y barras
La fase de análisis y de diseño nunca es un tiempo perdido, suele ser al revés, una
inversión en tiempo.
Siempre es interesante dedicar un tiempo adecuado hasta obtener ese diseño que nos
gusta, de forma que podamos a partir de él obtener nuevos programas o simplemente ya
no tengamos que pensar en como hacerlos y podamos progresar más rápidamente en su
creación.
Tenemos que pensar que en una aplicación siempre vamos a tener distintos tipos de
programas y debemos buscar una forma de diseño que nos permita crear interfaces lo
más homogéneas y agradables posibles para facilitar su posterior utilización y
aprendizaje.
La ventana anterior está creada con los objetos sin asignarle estilo, es decir colores,
fuentes, etc...Después hay que darle forma con un estilo que nos resulte agradable.
Hay que cuidar los espacios, la distribución, los colores a utilizar y cómo será el texto a
utilizar, tamaño y color.
Hay que crear las ventanas desde el centro del monitor hacia el exterior, de tal forma
que el ojo del usuario deba moverse lo menos posible, lo cual reduce el cansancio.
Los contrastes entre los colores han de permitir que se puedan ver adecuadamente los
contenidos, fondo negro y texto rojo no es correcto.
También podemos evotar que modifiquen el tamaño de la ventana arrastrando desde las
esquinas, asignando a la ventana en la propiedad FormBorderStyle el valor de
fixedsingle.
Y por último para que la ventana quede centrada en la pantalla o en la ventana que la
contenga del menú, podemos asignar a la propiedad StartPosition el valor de
centerscreen.
De esta forma conseguimos que no se pueda cambiar el diseño realizado por nosotros.
Pero no hay que olvidar que también se tiene que cuidar la parte ejecutiva.
UNIDAD N° 5
EL SONIDO
UNIDAD N° 6
LAS IMÁGENES
Entornos gráficos
El entorno gráfico de usuario (GUI) son los recursos visuales que presentan la
información y procesos que se pueden ejecutar en un programa o un sistema operativo
Estamos tan acostumbrados a trabajar con los entornos gráficos que, para la mayoría de
los usuarios, éstos constituyen la única experiencia que tienen con sus ordenadores. Sin
embargo, las 'carpetas' y 'ventanas' no son, ni mucho menos, el lenguaje innato de un
ordenador.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Gracias a los discos duros y los compiladores, los ordenadores de hoy no se programan
sino que se utilizan: cada vez que el usuario abre una aplicación está convocando un
proceso que alguien ha programado de antemano. El sistema operativo es el conjunto de
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
Los ordenadores modernos tienen unas orejas para escuchar al usuario (generalmente,
un teclado y un ratón) y una boca para contestarle (un monitor o pantalla). En los
entornos e interfaces de texto o de Línea de Comandos (CLI), el usuario 'habla' con el
ordenador mediante una serie de expresiones llamadas comandos, que son reconocidas
por el sistema. Si la orden es correcta, la respuesta del ordenador es la ejecución del
proceso. Si no lo es, la pantalla despliega un mensaje de error.
El usuario que depende de un entorno gráfico sabe mucho acerca de cómo funciona su
interfaz; aquellos que prescinden de la metáfora, aprenden cómo funciona su ordenador
Aunque la tendencia habitual entre los diseñadores de entornos gráficos es imitar los
entornos más populares para cada sistema operativo o programas especializados, la
interfaz gráfica obliga al usuario a aprender una manera específica de manejar su
ordenador y le resulta difícil probar nuevos sistemas y programas, porque tiene que
desaprender lo aprendido y empezar otra vez. La línea de comandos es la misma en
todos los sistemas, los entornos gráficos varían de un sistema a otro, de un programa a
otro.
Además, hay quien considera que la interfaz es un muro artificial entre la computadora
y su usuario, que obstaculiza en lugar de facilitar la relación entre ambos. El usuario que
depende de un entorno gráfico sabe mucho acerca de cómo funciona su interfaz.
Aquellos que prescinden de la metáfora, aprenden cómo funciona su ordenador.
Entorno de escritorio
Galería
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
LXDE
Aún más mejoras en la interfaz de escritorio Plasma, que hacen que organizar su
espacio de trabajo sea más fácil. Miniaplicaciones nuevas y mejoradas, como un
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
El panel de Plasma agrupa ahora las tareas y las muestra en varias filas. La bandeja
del sistema mejorada ahora sigue la pista de las tareas que toman más tiempo, como
las descargas. Las notificaciones del sistema y de las aplicaciones se muestran de modo
unificado por medio de la bandeja del sistema. Para ahorrar espacio, se pueden ocultar
los iconos de la bandeja del sistema. Además, el panel se puede ocultar
automáticamente para liberar espacio en pantalla. Los elementos gráficos se pueden
Como el escritorio KWin ofrece una gestión de ventana fluida y eficiente. En KDE 4.2
emplea física del movimiento para dar dar un aire natural a viejos y nuevos efectos
tales como el «Cubo» y la «Lámpara maravillosa». KWin sólo habilita los efectos de
escritorio en la configuración predeterminada en aquellos equipos que sean capaces de
manejarlos. Una configuración más fácil permite al usuario seleccionar distintos
efectos como intercambiador de ventanas, haciendo que cambiar de ventanas sea más
eficiente.
MODULO DISEÑO Y REALIZACIÓN DE SERVICIOS DE PRESENTACIÓN EN ENTORNOS GRÁFICOS
UNIDAD N° 7
HIPERTEXTO