DESARROLLAR LA APLICACIÓN MULTIMEDIA
Presentado por: Miller Garzón Raba Tecnólogo en Producción Multimedia 33591. SENA
Presentado a: Rodrigo Ortiz Instructor Tecnólogo en Producción Multimedia 33591. SENA
Centro para la Industria de la Comunicación Gráfica CENIGRAF Bogotá D.C., Mayo de 2010
BASES DE DATOS Una base de datos o banco de datos (en ocasiones abreviada 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. TIPOS DE BASES DE DATOS Según la variabilidad de los datos almacenados Bases de datos estáticas Éstas 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. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub.
Según el contenido Bases de datos bibliográficas Solo contienen un surrogante (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. Directorios Un ejemplo son las guías telefónicas en formato electrónico. Bases de datos o "bibliotecas" de información química o biológica Son bases de datos que almacenan diferentes tipos de información proveniente de la química, las ciencias de la vida o médicas. Modelos de bases de datos Además de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo de administración de datos. Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones
que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos. Algunos modelos con frecuencia utilizados en las bases de datos Bases de datos jerárquicas Éstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. 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. Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. la redundancia de datos. Base de datos de red Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico). Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales. 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". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla). En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales. Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización de una base de datos.
Durante los años 80 la aparición de dBASE produjo una revolución en los lenguajes de programación y sistemas de administración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestión. Bases de datos multidimensionales Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; 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 Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, 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.
En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones. SQL:2003, es el estándar de SQL92 ampliado, soporta los conceptos orientados a objetos y mantiene la compatibilidad con SQL92. Diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán en el desarrollo del software. La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque aún no está formalizada, ya se habla de la Ingeniería de requisitos. La IEEE Std. 830-1998 normaliza la creación de las Especificaciones de Requisitos Software (Software Requirements Specification). El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Las bases de datos relacionales se normalizan para: • • •
Evitar la redundancia de los datos. Evitar problemas de actualización de los datos en las tablas. Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones:
• • •
Cada columna debe tener su nombre único. No puede haber dos filas iguales. No se permiten los duplicados. Todos los datos en una columna deben ser del mismo tipo.
http://es.wikipedia.org/
2) LENGUAJE DE PROGRAMACIÓN Action script, java script, php, xhtml, html 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.[1] Está formado de 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. También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos: • • • • •
El desarrollo lógico del programa para resolver un problema en particular. Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa) Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina. Prueba y depuración del programa. Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo el HTML. (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación sino un conjunto de instrucciones que permiten diseñar el contenido y el texto de los documentos) Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción del programa de forma colaborativa. PHP PHP usa una mezcla entre interpretación y compilacion para intentar ofrecer a los programadores la mejor mezcla entre rendimiento y flexibilidad. PHP compila para tu codigo una serie de instrucciones (llamadas opcodes) siempre que estas son accedidas. Estas instrucciones son entonces ejecutadas una por una hasta que el script termina. Esto es diferente a la manera convencional de compilacion de lenguajes como C++ donde el código es compilado a código ejecutable que es despues ejecutado. Php es recompilado cada vez que se solicita un script. Una ventaja importante de interpretar el código es que toda la memoria usada por tu código es manejada por PHP, y el lenguaje automáticamente vacía esta memoria cuando el script finaliza. Esto significa que tú no tienes que preocuparte de las conexiones a la base de datos, porque PHP lo hará por ti. JavaScript
Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el lenguaje de programación del lado del cliente más utilizado. Programación orientada a objetos •
• •
Define los programas en términos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos), comportamiento (esto es, procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto). La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. La técnica de programación orientada a objetos, se basa en fundamentos de diseño, técnicas y metodologías unificadas (UML). Lenguajes visuales como Visual Basic.Net, Borland Delphi, incorporan una completa implementación de la programación orientada a objetos y permiten aprovechar al máximo toda la funcionalidad que ofrecen estos lenguajes para el desarrollo de aplicaciones de gestión.
Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa Al Juarismi ) 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 lo ejecute. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia. En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemáticas son el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones.
3) LENGUAJE UNIFICADO DE MODELADO Lenguaje Unificado de Modelado (LUM) o (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.
Es importante resaltar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo. Se puede aplicar en el desarrollo de software entregando gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como el Proceso Unificado Racional o RUP), pero no especifica en sí mismo qué metodología o proceso usar. UML no puede compararse con la programación estructurada, pues UML significa Lenguaje Unificado de Modelado, no es programación, solo se diagrama la realidad de una utilización en un requerimiento. Mientras que, programación estructurada, es una forma de programar como lo es la orientación a objetos, sin embargo, la programación orientada a objetos viene siendo un complemento perfecto de UML, pero no por eso se toma UML sólo para lenguajes orientados a objetos.
UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas. http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado
4) SOFTWARE LIBRE Software libre (en inglés free software, esta denominación también se confunde a veces con gratis por el doble sentido del inglés free en castellano) 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, cambiado y redistribuido libremente. Según la Free Software Foundation, el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, modificar el software y distribuirlo modificado. 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.
5) SOFTWARE LICENCIADO Es un producto de software que es comercializado con ciertas condiciones o términos de uso, establecidas por el fabricante. Estas condiciones generalmente limitan el número de equipos en los que el producto puede ser instalado y son conocidas como “licencias”, juegan un papel variable sobre el precio final del producto, pués entre mas equipos pueda instalar, más costoso resultará el producto. La ventaja de este tipo de comercialización es que se paga a la medida de las necesidades de la compañía que adquiere el software y queda abierta la posibilidad de extender el número de licencias pagando un valor adicional por por cada licencia extra. Por esta razón, la Entidad hace un estudio antes de adquirir un software licenciado, calculando cuantos son los equipos en los que se requiere instalar y así poder calcular el número de licencias que debe adquirir. ¿Puede un software licenciado ser instalado en más equipos de los que dice la licencia? Técnicamente el software podría ser instalado en diferentes máquinas usando una única licencia, sin embargo, hacer esto violaría los términos de uso establecidos por el fabricante y lo por tanto el software sería considerado ilegal, lo cual tendría repercusiones legales y penales establecidas en las leyes colombianas. La Ley 44 de 1993, establece que: “Se considera delito el uso o reproducción de un programa de computador de manera diferente a como está estipulado en la licencia. Los programas que no tengan licencia son ilegales. Es necesaria una licencia por cada copia instalada”.
¿Puedo instalar un software licenciado adquirido por la Entidad en el computador asignado para mi trabajo? La Entidad tiene establecido que las únicas personas autorizadas para instalar software en los computadores de la UAEAC son los funcionarios de la Línea 3000. Si usted desea que sea instalado un software en particular en su computador de trabajo, debe comunicarse con la Línea 3000 donde le informaran si el software requerido es licenciado y debe solicitar una autorización. Si se trata de un software que puede ser instalado en su computador sin restricciones de licenciamiento, Soporte Informático atenderá su solicitud. ¿Puedo instalar un software licenciado adquirido por la Entidad en el computador de mi casa? La respuesta es NO . Aunque la Entidad cuente con licencias disponibles, el propietario del software es la UAEAC y la instalación debe darse a lugar estrictamente en los computadores de la Entidad. Cualquier instalación de software no autorizada explícitamente por su propietario se considera software ilegal, lo cual genera repercusiones legales y penales establecidas por las leyes colombianas.
6) HERRAMIENTAS DE AUTOR Las herramientas de autor o metamedios son aplicaciones que permiten un trabajo multimedia y constructivista para generar un entorno de aprendizaje dinámico. Dentro de las funcionalidades que este tipo de herramientas presentan se puede destacar la posibilidad de crear actividades o pequeñas aplicaciones desde la misma herramienta. Las herramientas de autor proveen generalmente módulos desde los cuáles se pueden organizar actividades o se pueden interconectar pequeños componentes y se pueden adecuar a los objetivos, los conocimientos y habilidades que se busque desarrollar por parte del autor. 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, crear mapas sensibles o ir de una diapositiva a la siguiente. Ejemplos de estas herramientas pueden ser kiss u OpenOffice.org Impress o mapas web sensibles en conjuntos de páginas html con javascript. Las herramientas más avanzadas incluyen lenguajes de programación como en el caso de Squeak o la creación de ambientes con flash. • • • •
Herramientas de autor de e-learning editores HTML secuenciadores de música Preparadores de presentaciones
JClic también es considerado una herramienta de autor; es un entorno para la creación, realización y evaluación de actividades educativas multimedia, desarrollado en el lenguaje de programación Java. Es una aplicación de software libre basada en estándares abiertos que funciona en diversos entornos operativos: GNU/Linux, Mac OS X, Windows y Solaris.
7) WORDPRESS WordPress es un sistema de gestión de contenido enfocado a la creación de blogs (sitios web periódicamente actualizados). Desarrollado en PHP y MySQL, bajo licencia GPL, tiene como fundador a Matt Mullenweg. WordPress fue creado a partir del desaparecido b2/cafelog y se ha convertido junto a Movable Type en el CMS más popular de la blogosfera. Las causas de su enorme crecimiento son, entre otras, su licencia, su facilidad de uso y sus características como gestor de contenidos.
Otro motivo a considerar sobre su éxito y extensión, es la enorme comunidad de desarrolladores y diseñadores, que se encargan de desarrollarlo en general o crear plugins y temas para la comunidad, siendo usado en septiembre de 2009 por 202 millones de usuarios. WordPress nació del deseo de construir un sistema de publicación personal, elegante y con una buena arquitectura ("Code is poetry"). Basado en PHP, MySQL y licenciado bajo GPL, Wordpress pone especial atención a la estética, estándares web, y usabilidad.2
En principio, está configurado para usar una bitácora o weblog por sitio o instalación, pero también es posible, sin "hacks" o añadidos, tener varios blogs -varias instalaciones en realidad- con varias o una única base de datos.3 Además, existen versiones similares, paralelas o "hackeadas" de Wordpress que permiten esta funcionalidad, una de las más conocidas, extendida y de más soporte es Wordpress MU: Debido a que Wordpress no permitía esta funcionalidad, hay disponible una versión adaptada y similar de los mismos desarrolladores llamada WordPress MU (μ), que permite la instalaci ón de múltiples blogs. Multiblogging WordPress soporta un blog por instalación, aunque se pueden utilizar múltiples copias en directorios distintos si se utilizan tablas de bases de datos separadas. WordPress MU (también conocido como WordPress MU o WPMU) es una derivación de WordPress creada para permitir la existencia de varios blogs en una sola instalación. WordPress MU hace posible para cualquier con un sitio web que desee alojar su propia comunidad de blogs, controlar y moderar todos los blogs desde un solo entorno de administración. WordPress MU añade ocho nuevas tablas de datos para cada blog respecto a WordPress. Es utilizado en el servicio de alojamiento de blogs gratuito WordPress.com, además de otras organizaciones como el diario Le Monde, la Universidad de Harvard y Edublogs. Lyceum es otra versión empresarial de WordPress. A diferencia de WordPress MU, Lyceum almacena toda la información en un conjunto de tablas de base de datos. Algunas comunidades destacadas que usan Lyceum son TeachFor.Us5 (Teach for America teacher's blogs), BodyBlogs y Hopkins Blogs. En 2008 Andy Peating se unió a Automattic para continuar su trabajo en BuddyPress, una extensión de WPMU que añadirá características de comunidad a WordPress.6 Plantillas Las plantillas (themes) de Wordpress son plantillas de diseño que sirven para establecer la apariencia y estructura de tu blog. Hay una gran comunidad oficial, tanto profesional como de usuarios, dedicada al diseño de estas plantillas que se suelen listar en el sitio de Wordpress una vez han sido comprobadas y aprobadas oficialmente -ver lista de Enlaces externos-. Aunque la filosofía de Wordpress apuesta por un marcado válido según las directrices del W3C, las posibilidades de éste sistema, tanto a nivel de diseño, estructura o gestión, y la flexibilidad del sistema de plantilla y widgets en concreto, son enormes y prácticamente permiten tener desde un simple blog hasta un CMS personalizado.7 8 Widgets Wordpress incorpora un sistema de Widgets para sus plantillas desde la versión 2.2 que ofrece numerosas posibilidades y flexibilidad para el diseño y estructura de sus blogs. Si bien son sumamente útiles, no todos las plantillas lo soportan. Plugins
Hay una ingente cantidad de plugins que potencian el uso de Wordpress más allá de una simple bitácora y que lo hacen un sistema realmente flexible y prácticamente de propósito general. Los plugins de Wordpress se incorporaron en la versión 1.6.9 JOOMLA Joomla es un sistema de gestión de contenidos, y entre sus principales virtudes está la de permitir editar el contenido de un sitio web de manera sencilla. Es una aplicación de código abierto programada mayoritariamente en PHP bajo una licencia GPL. Este administrador de contenidos puede trabajar en Internet o intranets y requiere de una base de datos MySQL, así como, preferiblemente, de un servidor HTTP Apache. En Joomla! se incluyen características como: mejorar el rendimiento web, versiones imprimibles de páginas, flash con noticias, blogs, foros, polls (encuestas), calendarios, búsqueda en el sitio web e internacionalización del lenguaje. Su nombre es una pronunciación fonética para anglófonos de la palabra swahili jumla, que significa "todos juntos" o "como un todo". Se escogió como una reflexión del compromiso del grupo de desarrolladores y la comunidad del proyecto. Framework: Ciclo de vida, Modelo en cascada, Prototipado, Incremental, Espiral, RAD, RUP.
WorkFlow El módulo de flujo de trabajo permite la creación y asignación de flujos de trabajo arbitraria a los tipos de nodos de Drupal. Los flujos de trabajo están constituidos por los estados de flujo de trabajo. Por ejemplo, un flujo de trabajo con los estados Proyecto, revisión y publicación podría ser asignado al tipo de nodo Story. Las transiciones entre los estados de flujo de trabajo puede haber acciones que se les asignen. En nuestro ejemplo, podríamos asignar una acción para que cuando la historia se mueve desde el estado de borrador a la revisión del estado se envía un correo electrónico a cabo. Otra acción podría ser asignada a la transición de la revisión a la publicación para que el estado del nodo se establece de publicación (y se hace visible en su sitio web).