Guia de Aprendizaje para Aplicaciones Multimedia

Page 1


GUÍA DE APRENDIZAJE DESARROLLAR LA APLICACIÓN MULTIMEDIA


a. Bases de datos: Fundamentos, relaciones, normalizaci贸n


a. Bases de datos: Fundamentos, relaciones, normalización Una base de datos también conocida como banco de datos, abreviado BB.DD., es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática. Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental.


a. Bases de datos: Fundamentos, relaciones, normalización Tipos de Base de Datos Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté manejando, la utilidad de las mismas o las necesidades que satisfagan.

Según la variabilidad de los datos almacenados Bases de datos estáticas Son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones.

Bases de datos dinámicas Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y adición de datos, además de las operaciones fundamentales de consulta.

Según el contenido Bases de datos bibliográficas Sólo contienen un representante de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc.

Bases de datos de texto completo Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas.


a. Bases de datos: Fundamentos, relaciones, normalización Modelos de bases de datos Las bases de datos, se pueden clasificar también de acuerdo a su modelo de administración de datos.

Bases de datos jerárquicas En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.

Base de datos de red En este modelo se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).

Bases de datos transaccionales Son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, es importante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacionales.

Bases de datos relacionales Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia


a. Bases de datos: Fundamentos, relaciones, normalización

Bases de datos multidimensionales Son bases de datos ideadas para desarrollar aplicaciones muy concretas. En las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar.

Bases de datos orientadas a objetos Se trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos. Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases. Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.

Bases de datos documentales Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesaurus es un sistema de índices optimizado para este tipo de bases de datos.


a. Bases de datos: Fundamentos, relaciones, normalización

Bases de datos deductivas Permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. Son también llamadas bases de datos lógicas, a raíz de que se basa en lógica matemática. Este tipo de base de datos surge debido a las limitaciones de la Base de Datos Relacional de responder a consultas recursivas y de deducir relaciones indirectas de los datos almacenados en la base de datos.

Gestión de bases de datos distribuida (SGBD) La base de datos y el software SGBD pueden estar distribuidos en múltiples sitios conectados por una red. Hay de dos tipos: 1. Distribuidos homogéneos: utilizan el mismo SGBD en múltiples sitios. 2. Distribuidos heterogéneos: Da lugar a los SGBD federados o sistemas multibase de datos en los que los SGBD participantes tienen cierto grado de autonomía local y tienen acceso a varias bases de datos autónomas preexistentes almacenados en los SGBD, muchos de estos emplean una arquitectura cliente-servidor. Estas surgen debido a la existencia física de organismos descentralizados. Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así a distintas universidades, sucursales de tiendas, etc.


b. Lenguajes de programaci贸n: Conceptos, sintaxis, algoritmos, programaci贸n orientada a objetos.


b. Lenguajes de programación: Conceptos, sintaxis, algoritmos, programación orientada a objetos. Lenguaje de programación Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación. Todos los lenguajes de programación tienen algunos elementos de formación primitivos para la descripción de los datos y de los procesos o transformaciones aplicadas a estos datos (tal como la suma de dos números o la selección de un elemento que forma parte de una colección). Estos elementos primitivos son definidos por reglas sintácticas y semánticas que describen su estructura y significado respectivamente.

Sintaxis Es la forma visible de un lenguaje de programación. La mayoría de los lenguajes de programación son puramente textuales, es decir, utilizan secuencias de texto que incluyen palabras, números y puntuación, de manera similar a los lenguajes naturales escritos. Por otra parte, hay algunos lenguajes de programación que son más gráficos en su naturaleza, utilizando relaciones visuales entre símbolos para especificar un programa.


b. Lenguajes de programación: Conceptos, sintaxis, algoritmos, programación orientada a objetos. Algoritomos Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Tiempo Secuencial Un algoritmo funciona en tiempo discretizado es decir paso a paso, definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar). Estado abstracto Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo. Exploración acotada La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual.

En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso.


b. Lenguajes de programación: Conceptos, sintaxis, algoritmos, programación orientada a objetos. Programación Orientada a Objetos Es lo que se conoce como un paradigma o modelo de programación. Esto significa que no es un lenguaje específico, o una tecnología, sino una forma de programar, una manera de plantearse la programación. No es la única (o necesariamente mejor o peor que otras), pero se ha constituido en una de las formas de programar más populares e incluso muchos de los lenguajes que usamos hoy día lo soportan o están diseñados bajo ese modelo (PHP, AS2, As3,…). Lo que caracteriza a la POO es que intenta llevar al mundo del código lo mismo que encontramos en El Mundo Real.. Cuando miramos a nuestro alrededor ¿qué vemos? pues, cosas, objetos, pero podemos reconocer estos objetos porque cada objeto pertenece a una clase, eso nos permite distinguir, por ejemplo, un perro de un auto (porque son de clases diferentes) y también un TV de otro (porque, aunque sean iguales, cada uno es un objeto distinto). Éste es el modelo que la POO intenta seguir para estructurar un sistema.

Características de la P.O.O. Se concuerda en el medio en 3 características en el medio. Abstracción Cuando vamos a aplicar la POO, lo primero que debemos hacer es cumplir con una vieja máxima de guerra: Divide y Vencerás. Es decir, lo que hacemos es seccionar nuestro código en grupos de código más pequeño que, al unirlos, hacen el trabajo. Un buen ejemplo de abstracción es el cuerpo humano, aunque el cuerpo es una unidad, está dividido en lo que conocemos por sistemas (el sistema respiratorio, el sistema linfático, cardiovascular, etc., etc.). Estos sistemas, a su vez están compuestos por otros más pequeños: los órganos, y así sucesivamente. La abstracción nos permite dividir nuestro programa en distintos objetos que se agrupan para formar cosas más complejas. Básicamente es la capacidad de separar los elementos para poder verlos de forma singular. Como cuando describimos el cuerpo humano y decimos cabeza, brazo(s), pierna(s), etc.


b. Lenguajes de programación: Conceptos, sintaxis, algoritmos, programación orientada a objetos.

Encapsulación También conocida como ocultamiento. La encapsulación se encarga de mantener ocultos los procesos internos que necesita para hacer lo que sea que haga, dándole al programador acceso sólo a lo que necesita. Esto da dos ventajas iniciales: Lo que hace el usuario puede ser controlado internamente (incluso sus errores), evitando que todo colapse por una intervención indeseada. La segunda ventaja es que, al hacer que la mayor parte del código esté oculto, puedes hacer cambios y/o mejoras sin que eso afecte el modo como los usuarios van a utilizar tu código. Sólo tienes que mantener igual la forma de acceder a él. Por cierto, estas puertas de acceso que das a los usuarios son lo que se conoce como interfaz. Herencia La herencia nos permite, entre otras cosas, evitar tener que escribir el mismo código una y otra vez, puesto que al definir que una categoría (que en programación llamaremos clase) pertenece a otra, automáticamente estamos atribuyéndoles las características generales de la primera, sin tener que definirlas de nuevo.


b. Lenguajes de programación: Conceptos, sintaxis, algoritmos, programación orientada a objetos. Clases e Instancias Clases La clasificación es algo que hacemos todos los días, a cada momento. Cada vez que decimos que algo es alguna cosa, estamos clasificándolo, asociándolo a una clase. Sin embargo, sabemos que la palabra “ave” no se refiere a un animal concreto, sino a una serie de animales. Ave es la palabra que usamos para identificarlos en un grupo, pero no podemos decir hoy haré volar la palabra “ave”, en tal caso siempre nos referiremos a esta o aquella ave, siempre hablaremos de un animal concreto. La palabra es lo que conocemos como un concepto, una abstracción. En la POO ocurre igual, una clase no es más que una serie de código que define a todos los elementos relacionados con ella. Así, podríamos escribir la clase ave colocando en ella todas las características que tienen las aves (pico, color, alto, ancho, patas,…) esas características las llamaremos en lenguaje de programadores, propiedades. Pero la cosa no termina allí, resulta que las aves tienen también ciertos mecanismos específicos, como comer, dormir, reproducirse, etc. Estos mecanismos los llamamos métodos. Entonces, vemos que una clase es algo así como el concepto de lo que queremos hacer, es como la idea de la cosa, del objeto; pero igual que con las ideas, no puedo hacer nada directamente con una clase (puedes sentarte en una silla, pero no en tu idea de una silla). Sin embargo, esta idea será la que dé forma al objeto que crearemos (que tendrá las características, mecanismos y comportamientos que habíamos pensado en nuestra idea).


b. Lenguajes de programación: Conceptos, sintaxis, algoritmos, programación orientada a objetos. Instancias Bien, decíamos que una clase es como la definición de un objeto, pero no es el objeto en sí, del modo como una idea no es una cosa física (el ejemplo de la silla). Así que para sentarnos necesitaremos convertir esa idea en algo, en un objeto real; a ese objeto lo llamamos instancia. En un mismo proyecto puedo tener una o más instancias de una misma clase sin problemas. Cada vez que creamos una nueva instancia, ésta adquiere las propiedades, métodos y eventos de la clase a la que pertenece, sin embargo, cada instancia es independiente de las otras; esto nos da dos ventajas: Si hago algún cambio en la clase, todas las instancias de esta clase se actualizarán automáticamente; esto nos permite hacer cambios sin tener que ir a cada una de las instancias (se aplica el mismo principio de herencia, aunque a un nivel diferente). Al ser independientes de las otras instancias, puedo darles valores diferentes sin que afecten a las demás (como tener una silla negra, una roja, una más alta, etc.). Aunque comparten la misma estructura, pueden programarse individualmente, dando versatilidad y flexibilidad al código.


c. Software libre


c. Software libre

Es la denominación del software que respeta la libertad de los usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede ser usado, copiado, estudiado, modificado y redistribuido libremente. El software libre suele estar disponible gratuitamente, o al precio de costo de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por lo tanto no hay que asociar software libre a "software gratuito" (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente ("software comercial"). Análogamente, el "software gratis" o "gratuito" incluye en ocasiones el código fuente; no obstante, este tipo de software no es libre en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa. Tampoco debe confundirse software libre con "software de dominio público". Éste último es aquel software que no requiere de licencia, pues sus derechos de explotación son para toda la humanidad, porque pertenece a todos por igual. Cualquiera puede hacer uso de él, siempre con fines legales y consignando su autoría original. Este software sería aquel cuyo autor lo dona a la humanidad o cuyos derechos de autor han expirado, tras un plazo contado desde la muerte de este, habitualmente 70 años. Si un autor condiciona su uso bajo una licencia, por muy débil que sea, ya no es del dominio público.


e. Herramientas de autor


e.Herramientas de autor

Las herramientas de autor son aplicaciones informáticas que facilitan la creación, publicación y gestión de los materiales educativos en formato digital a utilizar en la educación a distancia mediada por las TIC. Generalmente son herramientas de carácter multimedia que permiten combinar documentos digitales, imágenes, sonidos, videos y actividades interactivas desde la misma herramienta para crear objetos de aprendizaje que pueden insertarse en entornos virtuales de aprendizaje. Las herramientas de autor proveen generalmente módulos desde los cuáles se pueden organizar actividades o interconectar pequeños componentes para adecuar el contenido a los objetivos, los conocimientos y habilidades que se busque desarrollar. Gracias a la posibilidad de diseñar en módulos, sin necesidad de conocimientos de programación y a partir de plantillas prediseñadas, es que las herramientas de autor se han convertido en un instrumento popular entre los profesores en educación virtual. Las herramientas de autor más básicas son aquellas que solamente permiten un conjunto limitado de acciones para que el usuario interactúe con el sistema, como por ejemplo, navegar entre distintas páginas hipervinculadas o ir de una diapositiva a la siguiente. Ejemplos de estas herramientas pueden ser Power Point u OpenOffice.org Impress para la creación de diapositivas o eXeLearning para crear mapas de navegación web. Las herramientas más avanzadas incluyen lenguajes de programación como en el caso de Squeak o la creación de ambientes con flash.


f. Administradores de contenidos


f. Administradores de Contenido

Un sistema de gestión de contenidos (CMS), es una herramienta que permite crear una estructura de soporte para la creación y administración de contenido. Este sistema se fundamenta en una interfaz para controlar una o más bases de datos, en el cual se aloja toda la información del sitio web. De igual manera, esta herramienta le permite al administrador desarrollar todo el contenido y la interfaz para un mejor uso. Sin embargo no todos los administradores de contenido tienen la libertad para poder realizar los cambios que se quisiera. Comúnmente se debe realizar un pago para poder gozar de diferentes privilegios y almacenamiento. En el administrador de contenido es posible cargar cualquier tipo de información. Es por esto, que el uso que se le da a estas herramientas se puede clasificar de diferentes medidas. Por ejemplo, podemos encontrar blogs, foros, wikis, comercio, publicaciones privadas y comerciales, grupos especializados, etc. Todo el contenido multimedia publicado es posible darle características específicas, como por ejemplo nivel de seguridad, fechas de publicación, categorías, tags, o metadatos. En la actualidad existen numerosos servicios que se pueden implementar según las necesidades del administrador. En este orden de ideas, las herramientas más conocidas que se pueden encontrar son:

Joomla Es tal vez la herramientas más conocida dentro de los administradores de contenido. Joomla permite que el administrador posea su propia plantilla para su sitio web. Una ventaja que tiene joomla es la posibilidad de instalar diferentes plugins para mejorar su contenido y hacerlo más atractivo al usuario. De igual manera por ser un código abierto le permite a diferentes desarrolladores crear contenido, gratuito o de pago, para que se pueda instalar en el administrador.


f. Administradores de Contenido

Wordpress Este administrador de contenido es una gran opción para crear contenidos más elegantes, sencillos y con una navegabilidad fácil e innovadora. Wordpress, al igual que joomla, posee elementos para instalar y mejorar el uso del sitio web. A diferencia de los demás servicios, wordpress ofrece la posibilidad directa de adquirir todo un paquete para crear el sitio web. Es por esto, que se puede adquirir el dominio, el hosting, plantillas, estilos, plugins, etc. Por otro lado, ofrece un servicio gratuito para las personas que no son expertas o que simplemente tienen un sitio mucho más liviano.

Drupal Posee una gran carta de servicios para el usuario que quiera usar este administrador de contenido. Es muy similar a joomla, ya que posee de igual manera una base de datos con diferentes herramientas para instalar. Los beneficios que ofrece el servicio de drupal es la facilidad de crear contenido en la página. De igual manera, la seguridad que brinda drupal es muy buena para los que quieran una protección de información mayor a los que los demás servicios ofrecen.

Plone Este administrador de contenido se dirige a un público netamente empresarial. El estilo que maneja plone es muy elegante y serio, sin ser aburrido para el que vista el sitio web. Ofrece una línea económica y otra plus, en la cual los beneficios van a variar dependiendo de lo que el usuario quiera.

Xoops En el caos de xoops, el diseño es mucho mas divertido para el usuario. Se podrá tener diferentes temas y plantillas para escoger. Sin embargo el nivel de capacidad para guardar información es muy bajo, esto lo hace ser un opción poco acogida para las personas que buscan algo sencillo, novedoso y gratis.


g. Groupware


g. Groupware

Más conocido como el software colaborativo, es un conjunto de software que integran todo el trabajo de un equipo o empresa en un solo proyecto. En este proyecto las personas que lo integran se encuentran ubicadas en diferentes estaciones de trabajo, todos conectados a través de una intranet o internet. Las ventajas de este sistema de trabajo en grupo, es la facilidad de comunicación, la colaboración, el rendimiento y la captura de conocimiento en la organización. Desde sus inicios, las personas involucradas en un proyecto buscan cada vez mejorar el rendimiento de este mismo. Es por esto, que el groupware requiere también de soporte tecnológico para que se mejore la actividad. De igual manera, es muy importante identificar las características que necesita el grupo de trabajo para implementar el software colaborativo. El software colaborativo se puede dividir en tres categorías: herramientas de colaboración-comunicación, herramientas de conferencia y herramientas de gestión colaborativa o en grupo.

Herramientas de comunicación electrónica Que envían mensajes, archivos, datos o documentos entre personas y facilitan que la información se comparta de una manera más fácil, como por ejemplo: Correo de voz. Correo electrónico. Publicación en web.


g. Groupware

Herramientas de conferencia Que facilitan la compartición de información, de forma interactiva, como por ejemplo: Conferencia de datos - PC en red que comparten un espacio de presentación compartido que cada usuario puede modificar. Conferencias de voz - teléfonos que permiten interactuar a los participantes. Conferencias de video (o audio conferencia) - PC en red que comparten señales de audio o video. Salas de chat o mensajería instantánea - una plataforma de discusión que facilita el intercambio inmediato de mensajes. Sistemas para facilitar reuniones - un sistema de conferencias integrado en una sala. Estas salas suelen disponer de un avanzado sistema de sonido y presentación que permite una mejor interacción entre participantes en una misma sala o entre salas separadas.

Herramientas de gestión colaborativa Que facilitan las actividades del grupo, como por ejemplo: Calendarios electrónicos - para acordar fechas de eventos automáticamente y enviar notificaciones y recordatorios a los participantes. Sistemas de gestión de proyectos - para organizar y hacer seguimiento de las acciones en un proyecto hasta que se finaliza.


h. Framework


h.Framework

En el ámbito de los desarrolladores es muy frecuente encontrarse con el término de framework. Sin embargo no muchos saben a ciencia cierta a que se refiere con esta palabra. Diferentes definiciones se pueden encontrar en internet, y básicamente todas coinciden con que se trata de un entorno de trabajo para desarrollo de software. El framework se refiere al conjunto de herramientas, bibliotecas o estándares, que el software necesita para poderse compilar y ejecutar. De igual manera se refieren al framework como el esqueleto del sofware a desarrollar. Muchos desarrolladores prefieren usar diferentes entornos de trabajo que sirven para necesidades específicas según para lo que se quiera desarrollar. Por ejemplo “.Net” es considerado un framework para desarrollar aplicaciones (aplicaciones sobre Windows). En general los framework son soluciones completas que contemplan herramientas de apoyo a la construcción (ambiente de trabajo o desarrollo) y motores de ejecución (ambiente de ejecución). Los frameworks no están ligados a un lenguaje necesariamente. Por ejemplo HTML es un lenguaje orientado al desarrollo de páginas web, pero existen diferentes framework para realizar un sitio web. De igual forma pasa con el lenguaje Java, pero en los framework que existen para Java se pueden desarrollar diferentes proyectos. Muchos desarrolladores muchas veces comentan no necesitar de un framework para realizar sus proyectos. Sin embargo, las ventajas que tiene usar un framework específico para determinado proyecto son muchas. Lo que al final, el desarrollador tendrá que reescribir todo el código para realizar mejoras y mantenimiento al software desarrollado. Es por esto que, las ventajas es que el desarrollador no tendrá que crear una idea global para realizar el proyecto. Igualmete facilita la colaboración de otras personas que se especialicen en el tema. Así mismo, es más fácil encontrarse con herramientas, guías o ejemplos que facilite la comprensión del código y realizarlo con mejor calidad.


h.Framework

Por último, en la etapa de planeación y diseño del proyecto, es importante que el desarrollador tenga en cuenta las características específicas del software para poder escoger el framework adecuado. Es por esto, que en la actualidad existen numerosos ambientes de trabajo para el desarrollo del proyecto.


Camila Céspedes - Mauricio Moreno - Andrés Jiménez


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.