Sunteți pe pagina 1din 27

dokeos

Open Source e-Learning


Dokeos 1.5
Manual del Desarrollador
Roan Embrechts & ugues !eeters" #pril $%%&
Distributed under 'nu (ree Documentation License
) Dokeos & *ni+ersiteit 'ent" *ni+ersit, catholi-ue de Lou+ain
Traduccin: Santiago Mrquez Sols, Agosto 2005
....dokeos.com 1
dokeos
Open Source e-Learning
Dokeos 1.5 Manual del Desarrollador
Tabla de Contenidos
1. Introduccin ........................................................................................................................ 3
2. Estructura del cdigo de Dokeos ......................................................................................... 4
3. El API de Dokeos ................................................................................................................ 6
4. Estructura de la base de datos de Doleos ............................................................................ 8
5. Conenciones de cdigo !ro!uestas ................................................................................... "
6. Plantilla !ara nueos desarrollos #add$ons% ...................................................................... 13
&. '(todo de traba)o * +etodolog,a de dise-o .................................................................... 15
8. Co+unicacin entre desarrolladores ................................................................................. 16
". Desarrollo del .o/t0are en general ................................................................................... 1&
11. Dise-o de la Inter/ace de 2suario ................................................................................... 18
11. Entrada del 2suario ......................................................................................................... 1"
12. Pro+ocin de Dokeos ..................................................................................................... 21
13. Enlaces de Interes ............................................................................................................ 21
14. 342 5ree Docu+entation 6icense ................................................................................. 22
15. 'odi/icar este +anual ..................................................................................................... 2&
....dokeos.com 2
dokeos
Open Source e-Learning
1. Introduccin
Hay varios tipos diferentes de manuales disponibles de Dokeos en funcin del perfil del
usuario:
estudiantes
profesores
desarrolladores (programadores)
y Administradores
Los manuales del rofesor y del !studiante "an sido traducidos a varios idiomas# !n la
direccin "ttp:$$%%%#dokeos#com puedes encontrar la &ltima versin de los mismos#

!l manual 'ue tienes entre manos( es un manual de introduccin para desarrolladores de
Dokeos( la plataforma gratuita de e)learning y administracin de cursos# !l manual no
est* completo ni es perfecto( por lo 'ue cual'uier sugerencia o contribucin ser*
bienvenida# Dokeos es un desarrollo basado en el soft%are de e)learning original
Claroline (versin +#,#-). Dokeos +#/ y sucesivos est* basado en este cdigo y corrige
muc"os errores( adem*s de incluir nuevas me0oras y caracter1sticas# !l soft%are se
distribuye ba0o licencia 234 2eneral ublic License#
....dokeos.com 3
dokeos
Open Source e-Learning
2. Estructura del cdigo de Dokeos
Dokeos consiste en diferentes pie5as de funcionalidad 'ue reciben el nombre de mdulos
o "erramientas: por e0emplo la agenda( los documentos( los enlaces( el foro6 !l cdigo
de cada uno de estos elementos esta situado en una carpeta separada del resto# !l
cdigo de Dokeos es mayormente procedural# Lentamente est* evolucionando y
convirti7ndose en un cdigo m*s maduro# Las funciones est*n siendo usadas m*s y m*s
en el nuevo cdigo( se piensa en encapsulacin y en el dise8o por capas6 no obstante(
no se utili5an ob0etos muy a menudo# Todo el cdigo 'ue puede ser compartido entre las
diferentes "erramientas se encuentra recopilado en la carpeta 9inc:#
A partir de la versin +#, de Claroline$Dokeos( la creacin de tus propios mdulos es un
poco m*s f*cil: solamente "ay 'ue usar tres sentencias de inclusin( y obtenemos el
encabe5ado( el pie y las variables globales de Dokeos#
;*s adelante puedes ver una plantilla para empe5ar a desarrollar tu propio cdigo# Te
recomendamos 'ue utilices una plantilla para "acer un nuevo desarrollo# Adem*s(
respeta las convenciones de cdigo utili5adas. "aci7ndolo conseguiremos 'ue el cdigo
de Dokeos sea consistente y m*s legible para todo el mundo#
or favor( mant7n tu cdigo nuevo tan modular como sea posible# Div1delo en diferentes
secciones( usa funciones( comenta a menudo para e<plicar lo 'ue "aces y procura
dividirlo en pie5as lgicas# 4tili5a funciones siempre 'ue sea posible( ya 'ue realmente
....dokeos.com 4
Inc por include
La carpeta 9inc:= abreviatura de incluye (inclusin) = es un directorio de propsito
general 'ue es utili5ado por todos los mdulos est*ndar( y proporciona todas las
variables globales de Dokeos( los encabe5ados y pies est*ndar( y muc"as otras
funciones &tiles# !st* compuesta de fic"eros y algunos directorios# !n la carpeta
inc/lib podemos encontrar el cdigo de las librer1as( en estos fic"eros se proporciona
la funcionalidad 'ue es com&n( como por e0emplo: funciones para la administracin
de fic"eros( consulta de base de datos( funciones generales6 >untos( todos estos
fic"eros proporcionan una ?nterface de rogramacin de Aplicaciones (Application
Programming Interface o A?)#
!n el directorio inc/conf tenemos los fic"eros de configuracin para algunas
"erramientas# @10ate 'ue algunos de estos fic"eros son tentativos( es decir( aparecen
pero no interact&an con ninguna de las "erramientas# Todas estas carpetas est*n
actualmente en progreso y evolucin#
NOTE: La carpeta 9inc: se llamaba 9include: en versiones de Dokeos anteriores a la
+#/#
dokeos
Open Source e-Learning
ayudar* a mantener la modularidad del cdigo# Ai deseas ir un paso m*s le0os( puedes
usar programacin orientada a ob0etos( H tiene algo de soporte para ella (y est*
me0orado en H /)# B por favor( escribe una o dos l1neas al principio de cada fic"ero de
script e<plicando su propsito y finalidad#
Cdigo global cdigo espec!fico de un curso
!l cdigo de la aplicacin Dokeos es global# Los cambios se aplican a todos los cursos del
servidor# Ain embargo( "ay maneras de escribir cdigo y usarlo solamente para un curso
espec1fico# !sta es una solucin para re'uerimientos especiales 'ue no son compartidos
por todos los cursos( adem*s resulta m*s pr*ctico probar y depurar una personali5acin
en condiciones de Centorno realD antes de aplicarlas globalmente# La manera m*s f*cil
de "acerlo es CA8adir un enlace en la p*gina de inicioD( seleccionando la segunda
posibilidad E!nlace a un sitioD( y proporcionando la 4FL del cdigo# or e0emplo( podr1as
almacenar este cdigo en una carpeta denominada plugin#
....dokeos.com 5
NOT": Ai eres nuevo en el uso de funciones en H: ten en cuenta 'ue no funcionan
del modo en 'ue lo "acen en otros lengua0es de programacin# !ste es el origen de
muc"os errores y de un montn de frustracin
dokeos
Open Source e-Learning
#. El "$I de Dokeos
Hay varias funciones 'ue pueden ser &tiles para los desarrolladores# !n el futuro
intentaremos tener la documentacin del A? disponible( usando por e0emplo
"pDocumentor ("ttp:$$pear#p"p#net$package$"pDocumentor)# Las funciones de
librer1a se encuentran en la carpeta 9inc: = abreviatura de include =# Antes de empe5ar la
programacin( por favor( e<amina el contenido de esta carpeta( y de las subcarpeta
inc$lib y inc$conf = para 'ue te puedas "acer una idea de lo 'ue Dokeos te puede
ofrecer desde el principio#
4na de las &ltimas incorporaciones es el fic"ero claro%&ain.lib.p'p( el cual se
encuentra en la carpeta inc$lib$ 'ue tiene unas cuantas funciones de car*cter general(
y el fic"ero &ain%db.lib.p'p( el cual contiene funciones de consulta a la base de datos
(y 'ue se encuentran sin testear en este momento)# !stos fic"eros se est*n ampliando
constantemente# Hay tambi7n otras librer1as por e0emplo para manipulacin de te<to(
para el traba0o con fic"eros6
or e0emplo( "ay una funcin general para mostrar la t1tulo de "erramientas( "ay una
funcin para mostrar la opcin Gvista de estudiante $ vista del administrador del cursoH(
para mostrar una ca0a de dialogo en "tml( etc#6 3o "ay funciones de base de datos
espec1ficas todav1a( solo "ay algunas de propsito general( pero es un *rea del desarrollo
en el cual estamos traba0ando para me0orarla desde a"ora# Ai traba0as en Dokeos( y
necesitas una consulta 'ue devuelve( por e0emplo( las propiedades de un grupo(
deber1as a8adir una funcin get2rouproperties (con los par*metros 'ue necesitase) en
el fic"ero claroImain#lib#p"p y "acer a posteriori la llamada a la funcin# !sto
representa un poco m*s de traba0o al principio( pero "ar* 'ue el cdigo sea m*s
pe'ue8o y m*s f*cil de mantener# Adem*s esto tambi7n significa 'ue solo "ay un lugar
en donde "abr* 'ue cambiar la consulta si es necesario reali5ar alg&n cambio en ella no
tendremos 'ue actuali5ar JKK copias de la misma consulta#
(ibrer!a $rincipal )*ain+
Las siguientes funciones est*n disponibles dentro del fic"ero claroImain#lib#p"p# !ste
fic"ero se encuentra adem*s incluido en cada fic"ero de Dokeos# ara ser m*s precisos(
se incluye cuando incluyes el fic"ero claro%init%global.inc.p'p#
@unciones en el A? de fic"eros:
$$DATALAA! = LAA! D! DATMA
function claroIs'lI'uery(Ns'lOuery( NdbHandler P QRQ )
function claroIs'lI'ueryIfetc"Iall(Ns'lOuery( NdbHandler P QRQ)
$$@A?L4F! ;A3A2!;!3T = AD;?3?ATFACS3 D! !FFMF!A$@ALLMA
function claroIsetIfailure(NfailureType)
class claroIfailure )T function setIfailure(NfailureType)
class claroIfailure )T function getIlastIfailure()
....dokeos.com 6
dokeos
Open Source e-Learning
$$TMML @43CT?M3A = @43C?M3!A D! H!FFA;?!3TAA
function claroIdispItoolItitle(Ntitle!lement)
function claroIdispItoolIvie%Ioption(NisAtudentUie% P false)
function claroIdispImessageIbo<(Nmessage)
function isIallo%edItoIedit()
....dokeos.com 7
dokeos
Open Source e-Learning
,. Estructura de la base de datos de Doleos
Dokeos puede ser instalado usando una &nica base de datos o bien varias# 3ormalmente
la opcin de base de datos m&ltiple es la opcin utili5ada# Hay dos bases de datos
principales( una para mantener la informacin de car*cter general como usuarios( cursos
y facultades. y otra para las estad1sticas# or otro lado( cada curso dispone tambi7n de
su base de datos#
Cualquier persona podra dibujar el modelo E-R, yo no he encontrado tiempo para
hacerlo todaa! Por ahora, puedes aprender mucho e"aminando la estructura de la
base de datos usando Php#yAdmin!
$n comentario adicional que hay que hacer es sobre algunas palabras que aparecen en
%o&eos' las ersiones iniciales fueron desarrolladas por personas que hablaban franc(s,
este es el motio por el cual hay algunas que aparecen aqu y all )cours en e* de
course, faculte en e* de faculty+,
-ay un rumor que dice que la .ltima ersi/n de Php#yAdmin puede crear diagramas
E0R autom1ticamente! 2o inestigaremos+
4n usuario puede seguir varios cursos#
4n curso puede tener muc"os usuarios#
Tenemos definida una tabla e<tra 'ue relaciona usuarios y cursos: coursIuser#
4n curso pertenece e<actamente a una facultad( y una facultad puede tener muc"os
cursos#
....dokeos.com 8
dokeos
Open Source e-Learning
-. Con.enciones de cdigo propuestas
(engua/e
!l cdigo( comentarios y las instrucciones de desarrollo deber*n de estar escritas en
ingl7s y no en el lengua0e nativo del desarrollador (por e0emplo espa8ol o franc7s)# !s
una gran idea 'ue los manuales se encuentren disponibles en muc"os lengua0es pero el
cdigo con los comentarios y variables deben estar en ingl7s( el franc7s o el espa8ol son
m*s complicados de comprender#
Espacios en blanco
A8adir una l1nea en blanco entre l1neas de cdigo para crear p*rrafos y ayudar a
visuali5arlo# 3adie 'uerr1a leer un libro de miles de p*ginas y l1neas y sin separaciones
entre estas( del mismo modo a nadie le gusta leer cdigo escrito de esta manera#
?gualmente( usa espacios alrededor de los operadores y despu7s de la coma( ya 'ue
puede ayudar a "acer el cdigo m*s legible#
function somet"ing (param a( paramb)
if ( (a VV c) WW Xb)
a P b Y c:
Indentacion
4tili5a los tabuladores para indentar# 2eneralmente( un tabulador e'uivale a cuatro
espacios en blanco#
(la.es
or favor( utili5a esta notacin
if (N%%%%% T N00000)
Z
cdigo6
[
!n ve5 de esta otra
if (N%%%%% T N00000) Z
cdigo 6
[
....dokeos.com 9
dokeos
Open Source e-Learning
0ariables funciones
4saremos el guin ba0o para separar palabras en ve5 de poner en may&sculas la
primera letra de cada palabra despu7s de la primera#
Las variables y las funciones se nombran de este modo:
NmyIvariable
function testIdatabaseIapi()
y no de este otro:
NmyUariable
function testDatabaseApi()
Ai es posible( intenta limitar el nombre de las variables a no m*s de tres
palabras#
?ntenta nombrar las variables utili5ando los nombres en singular en ve5 de en
plural y teniendo en cuenta el conte<to#
Espacios de no&bres )Na&espaces+
or favor intenta evitar el uso de variables globales directamente# H carece "asta la
fec"a del concepto de espacios de nombres (namespaces): cada variable usada es global
y puede ser vista en el programa entero (e<cepto en las funciones)# ara evitar
problemas( tienes 'ue pensar en el dise8o de tu programa# Ha5 un mayor uso de las
funciones y$o ob0etos( e intenta evitar el uso de variables globales directamente en t&
cdigo# 3o utilices JKK veces la variable NglobalIsomeIvar( me0or utili5a la funcin
getIglobalIvar()# De este modo el programa ser* m*s f*cil de mantener y de resolver
errores#
Constantes
Las constantes deben de aparecer en ;AB4AC4LAA y si es aplicable
43I3M;LF!ILAF2M I?FAIAA?
Clases
Los nombres de las clases deben empe5ar con la primera letra en may&sculas
(4suario( y no usuario)#
....dokeos.com 10
dokeos
Open Source e-Learning
Co&entarios
Los comentarios deben de "acer el cdigo m*s f*cil de leer( no "ay 'ue e<plicar lo 'ue
es obvio( se asume 'ue el lector dispone de un conocimiento del lengua0e de
programacin#
usar el estilo de erl como comentarios R
Aiempre usar el estilo del C como comentario ($\ \$)
4sar el estilo de CYY cuando el comentario sea muy pe'ue8o ($$)# !stos
comentarios deber1an aparecer cerca del cdigo al 'ue se refieren( siempre 'ue
sea posible#
Cada fic"ero de debe de empe5ar con el siguiente encabe5ado( si contribuyes a un
fic"ero( a8ade tu nombre a la lista de contribuidores de ese fic"ero
Las secciones est*n estructuradas acorde a la convencin siguiente:
$\
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
L!U!L +
PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
\$
$\
))))))))))))))))))))))))))))))))))))))
L!U!L -
))))))))))))))))))))))))))))))))))))))
\$
....dokeos.com 11
/*
---------------------------------------------------------------------
-
Dokeos - elearning and course management software
Copyright (c) 2004 Dokeos !"!
Copyright (c) 200# $ni%ersity of &hent ($&ent)
Copyright (c) 200' $ni%ersite catholi(ue de )ou%ain ($C))
Copyright (c) *ean +rogrammer (,ean-somewhere!net)
.or a full list of contri/utors0 see 1credits!t2t1!
3he full license can /e read in 1license!t2t1!
3his program is free software4 you can redistri/ute it and/or
modify it under the terms of the &5$ &eneral +u/lic )icense
as pu/lished /y the .ree oftware .oundation4 either %ersion 2
of the )icense0 or (at your option) any later %ersion!
ee the &5$ &eneral +u/lic )icense for more details!
Contact6 Dokeos0 '7' rue 8oyale0 9-'000 9russels0 9elgium0
info-dokeos!com
---------------------------------------------------------------------
dokeos
Open Source e-Learning
ara las clases y las interfaces de las funciones( usa las convenciones de documentacin
de >ava( as1 podremos obtener estos comentarios m*s tarde cuando realicemos la
construccin de la documentacin con el programa H Documentor
("ttp:$$pear#p"p#net$package$"pDocumentor)#
Los detalles de la documentacin >ava pueden encontrarse en el documento:
-o3 to 4rite %oc Comments for the 5aadoc 6ool
"ttp:$$0ava#sun#com$0-se$0avadoc$%ritingdoccomments$inde<#"tml
4n e0emplo de comentario en formato >avaDoc:
/**
* Draws as much of the specified image as is currently a%aila/le
* with its northwest corner at the specified coordinate (20 y)!
* 3his method will return immediately in all cases0 e%en if the
* entire image has not yet /een scaled0 dithered and con%erted
* for the current output de%ice!
*
* :f the current output representation is not yet complete then
* the method will return false and the indicated ;-link :mage</ser%er=
* o/,ect will /e notified as the con%ersion process progresses!
*
* -author ami haio
* -author "rthur %an >off
*
* -param img the image to /e drawn
* -param 2 the 2-coordinate of the northwest corner of the
* destination rectangle in pi2els
* -param y the y-coordinate of the northwest corner of the
* destination rectangle in pi2els
* -param o/ser%er the image o/ser%er to /e notified as more of the
* image is con%erted! ?ay /e null
* -return true if the image is completely loaded and was
* painted successfully4
* false otherwise!
* -see :mage
* -see :mage</ser%er
* -see image@rite
* -since *DA'!0
* -deprecated image@rite performs it faster
*/
function draw:mage(Bimg0 B20 By0 Bo/ser%er)4
....dokeos.com 12
dokeos
Open Source e-Learning
1. $lantilla para nue.os desarrollos )add2ons+
4tili5a la siguiente plantilla para iniciar un nuevo desarrollo con tu propio cdigo# !sta
plantilla puedes encontrarla dentro de la carpeta CpluginD en el directorio donde se
encuentre instalado Dokeos# Los e<tra8os s1mbolos 'ue aparecen al principio CR N?dND
son directrices para el CUA = esto significa 'ue el gestor de cdigo puede a8adir
versiones e informacin en este punto#
....dokeos.com 13
CDphp E B:dB
/*
----------------------------------------------------------------------
Dokeos - elearning and course management software
Copyright (c) 2004 Dokeos !"!
Copyright (c) 200# $ni%ersity of &hent ($&ent)
Copyright (c) 200' $ni%ersite catholi(ue de )ou%ain ($C))
Copyright (c) *ean +rogrammer (,ean-somewhere!net)
.or a full list of contri/utors0 see 1credits!t2t1!
3he full license can /e read in 1license!t2t1!
3his program is free software4 you can redistri/ute it and/or
modify it under the terms of the &5$ &eneral +u/lic )icense
as pu/lished /y the .ree oftware .oundation4 either %ersion 2
of the )icense0 or (at your option) any later %ersion!
ee the &5$ &eneral +u/lic )icense for more details!
Contact6 Dokeos0 '7' rue 8oyale0 9-'000 9russels0 9elgium0
info-dokeos!com
----------------------------------------------------------------------
*/
/*FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
D<AG< :5:3
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF*/
// name of the lang file which needs to /e included
//Hinc!phpH is automatically appended to the file name
//Blang.ile F 1lang.ile14
-include(1!!/inc/claroIinitIglo/al!inc!php1)4 // settings initialisation
/*
<ptional e2ra http header
:f you need to add some >33+/>3?) headers code
www!dokeos!com J
*/
// Bhttp>eadKtraLM F 114
// Bhttp>eadKtraLM F 114
// !!!
//
// Bhtml>eadKtraLM F 114
// Bhtml>eadKtraLM F 114
// !!!
Bname3ools F 114 // title of the page (comes from the language file)
BN$G8OI38:5&FHH4 // used for the /readcrum/
dokeos
Open Source e-Learning
"3adiendo 4a.a5cript a la cabecera 6t&l de Dokeos
Ai deseas incluir >avaAcript( debes de a8adirlo dentro de la variable 7html-eadE"tra( la
cual debe de estar establecida antes de incluir la cabecera de Dokeos# Ai utili5as
comillas dobles en tu >avaAcript( es una buena idea utili5ar comillas sencillas para tus
variables# De otro modo( tendr*s 'ue convertir todas las comillas dobles en tu >avaAcript
a8adiendo la barra (backslas") delante de ellas: ]D #
Advertencia: usar comillas simples significa 'ue no podr*s usar tus variables p"p en el
cdigo >avascript( como pueden ser las variables del lengua0e# Ai las necesitas( entonces
tendr*s 'ue usar comillas dobles y usar la barra invertida#
....dokeos.com 14
// when one needs to add a parameter after the
filename
-include(Binclude+ath!1/claroIinitIheader!inc!php1)4
/*FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
?":5 C<DG
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF*/
// +$3 O<$8 C<DG >G8G !!!
echo 1Ch'PCcenterP>ello worldQCcenterPC/h'P14
/*FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
D<AG< .<<3G8
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF*/
-include(Binclude+ath!1/claroIinitIfooter!inc!php1)4
DP
Bhtml>eadKtraLMFHCscript typeF1te2t/,a%ascript1 languageF1*a%acript1P
CQ-- //9egin my fantastic ,a%ascript code
function helloworld(param'0 param2) ;
L!!!M=
// Gnd --P
C/scriptP
H4
dokeos
Open Source e-Learning
7. *8todo de traba/o 9 &etodolog!a de dise3o
!l soft%are se desarrolla acorde a una determinada forma de traba0ar 'ue se denomina
metodolog1a# 4na metodolog1a puede respetar una cierta filosof1a o con0unto de ideas
acerca del desarrollo del soft%are# Algunas metodolog1as son muy estrictas ^ las cuales
pueden ser necesarias por e0emplo en el desarrollo del soft%are de las naves espaciales
^ otras sin embargo( son muy simples y fle<ibles# Dokeos es desarrollado siguiendo la
metodolog1a de rogramacin !<trema (E"treme Programming o _) (para una
introduccin ver Ou7 es _)# !sta metodolog1a es simple y fle<ible#
Adem*s( Dokeos es un programa de soft%are libre# !l soft%are libre y el soft%are Mpen
Aource soft%are funciona tan bien por'ue anima a todo el mundo a participar en 7l# ara
conseguir esto( es necesario comunicarse a menudo. y liberar las modificaciones tan
pronto como sea posible: correccin de errores( nuevas pie5as de cdigo( una nueva
"erramienta( nueva documentacin6 Liberar incluso cuando algo no est* completo del
todo todav1a( puede resumirse en: liberar pronto: liberar a &enudo# La comunidad de
usuarios te ayudar* a resolver los problemas# Con el tiempo se puede crear una pie5a
perfecta de cdigo( por lo 'ue no intentes "acerlo todo solo( con la ayuda de la
comunidad conseguiremos este ob0etivo# !sta apro<imacin adem*s elimina los errores
m*s r*pidamente 'ue otras apro<imaciones# Ae puede leer m*s acerca estos temas en e
famoso traba0o de !ric A# Faymond:s( 6he Cathedral and the 8a*aar#
....dokeos.com 15
dokeos
Open Source e-Learning
;. Co&unicacin entre desarrolladores
La cooperacin entre los desarrolladores puede "acer o romper el desarrollo del
soft%are# La comunicacin( es un elemento importante de la cooperacin( y es m*s
dif1cil cuando los desarrolladores est*n geogr*ficamente separados or tanto( una
buena cooperacin re'uiere de un buen modelo de comunicacin
!n el soft%are libre( y en la programacin e<trema( el cdigo no pertenece a nadie( y
todos debemos aceptar 'ue su cdigo puede ser cambiado y criticado# Dokeos tiene un
proyecto en sourceforge( y se utili5a para el CUA# CUA es un sistema para almacenar
fic"eros de cdigo( 0unto con un "istrico de las versiones reali5adas( por lo 'ue se "ace
necesaria una buena cooperacin# Cada desarrollador tiene acceso de lectura al CUA( y
un pe'ue8o Cn&cleoD de desarrolladores tiene acceso de escritura#
`Como se comunican los desarrolladoresa Los desarrolladores actuales est*n de acuerdo
en utili5ar un foro %eb como medio de comunicacin# !l uso de un foro %eb tiene
muc"as venta0as: es f*cilmente accesible( toda la informacin est* cuidadosamente
organi5ada( y todo el mundo puede discutir sobre el desarrollo y otros aspectos 'ue se
'uieran# La concentracin de toda la informacin en &nico medio tiene la venta0a de no
causar los problemas 'ue aparecen cuando se usa por e0emplo un foro( un grupo de
noticias o el email: algunas personas solo miran en un &nico sitio( y no miran
suficientemente en los otros6
La comunicacin con el mundo e<terior puede ocurrir de diferentes formas( aun'ue las
preferidas suelen ser el foro y el sitio %eb#
....dokeos.com 16
dokeos
Open Source e-Learning
<. Desarrollo del 5oft=are en general
Tenemos muy pocos conceptos importantes sobre el desarrollo del soft%are# !stos "an
sido establecidos despu7s de a8os de pr*ctica donde las estrategias claves 'ue "an
tenido 7<ito o "an fracasado "an sido evaluadas# !stas ideas pueden ayudar en la
elaboracin de un soft%are me0or#
Ocultar la infor&acin
La encapsulacin de la informacin es 'ui5*s el aspecto m*s importante en el desarrollo
del soft%are# Los lengua0es orientados a ob0etos son los me0ores para "acer esto( pero
es posible tambi7n "acerlo en otros lengua0es# La idea es 'ue trates de ocultar todas
las cosas 'ue no se deben de ver desde el e<terior#
or e0emplo( las variables locales en una funcin no pueden ser vistas desde fuera del a
funcin en donde est*n definidas# Las variables de clase (tambi7n llamadas variables
miembros) no pueden ser vistas desde fuera de los ob0etos de la clase#
Dise3o en capas
!l cdigo debe de estar dise8ado en varias capas# !n las aplicaciones de escritorio
(standalone) tipicas a menudo vemos un dise8o de tres capas: una capa con todo el
cdigo relativo a la base de datos( t"e user interface and t"e code t"at does t"e real
%ork( t"e CbusinessD layer# !sto ayuda a me0orar y mantener el cdigo a posteriori# Ai
'ueremos cambiar la apariencia 'ue muestra el programa( no "ay 'ue "acer cambios en
la capa de la base de datos( de igual modo( si cambiamos alg&n c*lculo( no tenemos 'ue
reali5ar modificaciones a nivel del interface gr*fico# Dokeos est* tambi7n dividido en
tres capas: el cdigo del n&cleo con el cora5n de Dokeos( el cdigo de "erramientas( y
el = muy 0oven = capa A? la cual enlace entre las "erramientas y el n&cleo (kernel) y
proporcionar una manera a las "erramientas para "ablar con el cdigo del n&cleo#
Cuando aplicarlo
Las t7cnicas de desarrollo de soft%are deber1an de verse como Cuna "erramienta( no un
martilloD# !s decir( "ay 'ue usarlas cuando sean aplicables a una cierta situacin y
cuando obtengamos una venta0a de su uso# 3o "ay 'ue usarlas por el mero "ec"o de
decir 'ue lo estamos "aciendo# Aparte de los aspectos filosficos( los cuales son muy
interesantes( el desarrollo de soft%are se resume al final en una &nica cosa: = soft%are
'ue funciona#
....dokeos.com 17
dokeos
Open Source e-Learning
1>. Dise3o de la Interface de ?suario
4nas pocas reglas al respecto:
?na interface de usuario est@ bien dise3ada cuando el progra&a se co&porta
eAacta&etne co&o el usuario piensa Bue lo 'ar@.
A m*s opciones( m*s comple0o el interface de usuario llega a ser#
!l programa debe de verse y sentirse elegante( adem*s de proporcionar todas las
"erramientas para 'ue el traba0o pueda ser reali5ado#
!n aplicaciones del tipo standalone( a menudo se pueden poner opciones en una barra
de "erramientas y poner el resto en un men&# Ain embargo( la mayor1a de las
aplicaciones %eb no tienen una barra de men&( por lo 'ue "ay 'ue pensar sobre 'ue
caracter1sticas son las 'ue llegar*n a ser importantes#
Cada ve5 'ue se proporciona una opcin( estamos preguntando al usuario para 'ue tome
una decisin# !sto significa 'ue tendr* 'ue pensar sobre ello y decidir 'ue "acer( aun'ue
no es realmente una CmalaD cosa( en general se debe tratar de minimi5ar el n&mero de
decisiones 'ue la gente tenga 'ue tomar#
!sto no significa eliminar toda opcin# Hay muc"as decisiones 'ue el usuario tendr* 'ue
tomar de todos modos: la apariencia de sus documentos( o el comportamiento 'ue el
sitio %eb tendr*( y todos los dem*s aspectos 'ue est*n integrados con el traba0o 'ue el
usuario est* "aciendo# 9 5oel :pols&y, $ser Interface %esign for Programmers, Chapter
;, <===
....dokeos.com 18
dokeos
Open Source e-Learning
11. Entrada del ?suario
bltimamente( son los usuarios 'uienes deciden en 'ue direccin debe Doleos continuar#
!sto( por supuesto no e<cluye las sugerencias y puntos de vista de los desarrolladores(
pero el soft%are se "ace para los usuarios no para los programadores (Aun'ue en el caso
del soft%are libre( a menudo se da el caso de 'ue el usuario es tambi7n el
programador)# El ob/eti.o Clti&o de un entorno de e2learning co&o Dokeos es audar
a las personas 'a aprender &e/or.
....dokeos.com 19
dokeos
Open Source e-Learning
12. $ro&ocin de Dokeos
Dokeos es una plataforma gratuita de e)learning y administracin de cursos# !n pocas
palabras: Dokeos es bueno( cada ve5 me0or( f*cil de usar y adaptable a tus propias
necesidades# Cual'uiera 'ue sea la ra5n( es una buena idea estar seguros 'ue la base
de usuarios de Dokeos es tan amplia como sea posible# A m*s usuarios( mayor feedback
para los desarrolladores# ?ndicaciones de errores( me0oras para el usuario( nuevas
caracter1sticas6 cada contribucin cuenta#
Cuantos m*s programadores( m*s estable ser* el cdigo y su proceso de mantenimiento#
Todo el mundo puede ec"ar un vista5o al cdigo( modificarlo y redistribuirlo# !l
desarrollo mediante Mpen Aource es superior a los vie0os desarrollos cerrados#
4na de las grandes venta0as del soft%are libre es 'ue es capa5 de ayudar a la gente a
cooperar en la consecucin de un ob0etivo com&n# Ai piensas 'ue Dokeos es( o puede
ser( una buena "erramienta( no vaciles en informar a instituciones educacionales(
directores de e)learning( desarrolladores de soft%are6 de nuestra e<istencia( y
redirigirlos a nuestra p*gina %eb#
....dokeos.com 20
dokeos
Open Source e-Learning
1#. Enlaces de Interes
Deneral
H#net y el manual de H ("ttp:$$%%%#p"p#net$docs#p"p)
T"e ear collection of reusable H components ("ttp:$$pear#p"p#net$)
5oft=are (ibre 9 Opensource
234#org
T"e Cat"edral and t"e La5aar ("ttp:$$catb#org$cesr$%ritings$cat"edral)ba5aar$)
Dokeos
Dokeos#com
@orum ("ttp:$$%%%#dokeos#net$forum$)
Aource@orge ("ttp:$$%%%#sourceforge#net$pro0ects$dokeos$)
Introduccin a la E$
d"at is _
$atrones de Dise3o
ortland attern Fepository
atterns @AO
C"ristop"er Ale<ander es un ar'uitecto (de ciudades y edificios) fue 'uien invento los
patrones# ara m*s informacin consulta: 3otes on C"ristop"er Ale<ander#
....dokeos.com 21
dokeos
Open Source e-Learning
1,. DN? Free Docu&entation (icense
NOT" I*$OGT"NTE: La licencia 234 @ree Documentation License no dispone de
traduccin oficial al idioma espa8ol( por lo 'ue a efectos de este manual se de0a la
versin original en ingl7s 'ue es la 'ue dispone de la valide5 0ur1dica adecuada# 3o
obstante( si se desea una traduccin no oficial de la misma( se puede consultar la
siguiente direccin: "ttp:$$gugs#sindominio#net$licencias$
Rersion '!20 5o%em/er 2002
Copyright (C) 20000200'02002 .ree oftware .oundation0 :nc!
SJ 3emple +lace0 uite ##00 9oston0 ?" 02'''-'#0T $"
G%eryone is permitted to copy and distri/ute %er/atim copies
of this license document0 /ut changing it is not allowed!
0! +8G"?9)G
3he purpose of this )icense is to make a manual0 te2t/ook0 or other functional and useful
document 1free1 in the sense of freedom6 to assure e%eryone the effecti%e freedom to copy
and redistri/ute it0 with or without modifying it0 either commercially or noncommercially!
econdarily0 this )icense preser%es for the author and pu/lisher a way to get credit for
their work0 while not /eing considered responsi/le for modifications made /y others!
3his )icense is a kind of 1copyleft10 which means that deri%ati%e works of the document must
themsel%es /e free in the same sense! :t complements the &5$ &eneral +u/lic )icense0 which
is a copyleft license designed for free software!
@e ha%e designed this )icense in order to use it for manuals for free software0 /ecause free
software needs free documentation6 a free program should come with manuals pro%iding the
same freedoms that the software does! 9ut this )icense is not limited to software manuals4
it can /e used for any te2tual work0 regardless of su/,ect matter or whether it is pu/lished
as a printed /ook! @e recommend this )icense principally for works whose purpose is
instruction or reference!
'! "++):C"9:):3O "5D DG.:5:3:<5
3his )icense applies to any manual or other work0 in any medium0 that contains a
noticeplaced /y the copyright holder saying it can /e distri/uted under the terms of this
)icense! uch a notice grants a world-wide0 royalty-free license0 unlimited in duration0 to
use that work under the conditions stated herein! 3he 1Document10 /elow0 refers to any such
manual or work! "ny mem/er of the pu/lic is a licensee0 and is addressed as 1you1! Oou
accept the license if you copy0 modify or distri/ute the work in a way re(uiring permission
under copyright law!
" 1?odified Rersion1 of the Document means any work containing the Document or a portion of
it0 either copied %er/atim0 or with modifications and/or translated into another language! "
1econdary ection1 is a named appendi2 or a front-matter section of the Document that deals
e2clusi%ely with the relationship of the pu/lishers or authors of the Document to the
DocumentHs o%erall su/,ect (or to related matters) and contains nothing that could fall
directly within that o%erall su/,ect! (3hus0 if the Document is in part a te2t/ook of
mathematics0 a econdary ection may not e2plain any mathematics!) 3he relationship could /e
a matter of historical connection with the su/,ect or with related matters0 or of legal0
commercial0 philosophical0 ethical or political position regarding them!
3he 1:n%ariant ections1 are certain econdary ections whose titles are designated0 as
/eing those of :n%ariant ections0 in the notice that says that the Document is released
under this )icense! :f a section does not fit the a/o%e definition of econdary then it is
not allowed to /e designated as :n%ariant! 3he Document may contain Uero :n%ariant ections!
:f the Document does not identify any :n%ariant ections then there are none!
3he 1Co%er 3e2ts1 are certain short passages of te2t that are listed0 as .ront-Co%er 3e2ts
or 9ack-Co%er 3e2ts0 in the notice that says that the Document is released under this
....dokeos.com 22
dokeos
Open Source e-Learning
)icense! " .ront-Co%er 3e2t may /e at most S words0 and a 9ack-Co%er 3e2t may /e at most 2S
words!
" 13ransparent1 copy of the Document means a machine-reada/le copy0 represented in a format
whose specification is a%aila/le to the general pu/lic0 that is suita/le for re%ising the
document straightforwardly with generic te2t editors or (for images composed of pi2els)
generic paint programs or (for drawings) some widely a%aila/le drawing editor0 and that is
suita/le for input to te2t formatters or for automatic translation to a %ariety of formats
suita/le for input to te2t formatters! " copy made in an otherwise 3ransparent file format
whose markup0 or a/sence of markup0 has /een arranged to thwart or discourage su/se(uent
modification /y readers is not 3ransparent! "n image format is not 3ransparent if used for
any su/stantial amount of te2t! " copy that is not 13ransparent1 is called 1<pa(ue1!
G2amples of suita/le formats for 3ransparent copies include plain "C:: without markup0
3e2info input format0 )a3eK input format0 &?) or K?) using a pu/licly a%aila/le D3D0 and
standard-conforming simple >3?)0 +ostcript or +D. designed for human modification! G2amples
of transparent image formats include +5&0 KC. and *+&! <pa(ue formats include
proprietaryformats that can /e read and edited only /y proprietary word processors0 &?) or
K?) for which the D3D and/or processing tools are not generally a%aila/le0 and the machine-
generated >3?)0 +ostcript or +D. produced /y some word processors for output purposes only!
3he 13itle +age1 means0 for a printed /ook0 the title page itself0 plus such following pages
as are needed to hold0 legi/ly0 the material this )icense re(uires to appear in the title
page! .or works in formats which do not ha%e any title page as such0 13itle +age1 means the
te2t near the most prominent appearance of the workHs title0 preceding the /eginning of the
/ody of the te2t!
" section 1Gntitled KOV1 means a named su/unit of the Document whose title either is
precisely KOV or contains KOV in parentheses following te2t that translates KOV in another
language! (>ere KOV stands for a specific section name mentioned /elow0 such as
1"cknowledgements10 1Dedications10 1Gndorsements10 or 1>istory1!) 3o 1+reser%e the 3itle1 of
such a section when you modify the Document means that it remains a section 1Gntitled KOV1
according to this definition!
3he Document may include @arranty Disclaimers ne2t to the notice which states that this
)icense applies to the Document! 3hese @arranty Disclaimers are considered to /e included /y
reference in this )icense0 /ut only as regards disclaiming warranties6 any other implication
that these @arranty Disclaimers may ha%e is %oid and has no effect on the meaning of this
)icense!
2! RG89"3:? C<+O:5&
Oou may copy and distri/ute the Document in any medium0 either commercially or
noncommercially0 pro%ided that this )icense0 the copyright notices0 and the license notice
saying this )icense applies to the Document are reproduced in all copies0 and that you add
no other conditions whatsoe%er to those of this )icense! Oou may not use technical measures
to o/struct or control the reading or further copying of the copies you make or distri/ute!
>owe%er0 you may accept compensation in e2change for copies! :f you distri/ute a large
enough num/er of copies you must also follow the conditions in section #! Oou may also lend
copies0 under the same conditions stated a/o%e0 and you may pu/licly display copies!
#! C<+O:5& :5 N$"53:3O
:f you pu/lish printed copies (or copies in media that commonly ha%e printed co%ers) of the
Document0 num/ering more than '000 and the DocumentHs license notice re(uires Co%er 3e2ts0
you must enclose the copies in co%ers that carry0 clearly and legi/ly0 all these Co%er
3e2ts6
.ront-Co%er 3e2ts on the front co%er0 and 9ack-Co%er 3e2ts on the /ack co%er! 9oth co/res
must also clearly and legi/ly identify you as the pu/lisher of these copies! 3he front co%er
must present the full title with all words of the title e(ually prominent and %isi/le! Oou
may add other material on the co%ers in addition! Copying with changes limited to the
co%ers0 as long as they preser%e the title of the Document and satisfy these conditions0 can
/e treated as %er/atim copying in other respects!
:f the re(uired te2ts for either co%er are too %oluminous to fit legi/ly0 you should put the
first ones listed (as many as fit reasona/ly) on the actual co%er0 and continue the rest
onto ad,acent pages!
....dokeos.com 23
dokeos
Open Source e-Learning
:f you pu/lish or distri/ute <pa(ue copies of the Document num/ering more than '000 you must
either include a machine-reada/le 3ransparent copy along with each <pa(ue copy0 or state in
or with each <pa(ue copy a computer-network location from which the general network-using
pu/lic has access to download using pu/lic-standard network protocols a complete 3ransparent
copy of the Document0 free of added material! :f you use the latter option0 you must take
reasona/ly prudent steps0 when you /egin distri/ution of <pa(ue copies in (uantity0 to
ensure that this 3ransparent copy will remain thus accessi/le at the stated location until
at least one year after the last time you distri/ute an <pa(ue copy (directly or through
your agents or retailers) of that edition to the pu/lic!
:t is re(uested0 /ut not re(uired0 that you contact the authors of the Document well /efore
redistri/uting any large num/er of copies0 to gi%e them a chance to pro%ide you with an
updated %ersion of the Document!
4! ?<D:.:C"3:<5
Oou may copy and distri/ute a ?odified Rersion of the Document under the conditions of
sections 2 and # a/o%e0 pro%ided that you release the ?odified Rersion under precisely this
)icense0 with the ?odified Rersion filling the role of the Document0 thus licensing
distri/ution and modification of the ?odified Rersion to whoe%er possesses a copy of it! :n
addition0 you must do these things in the ?odified Rersion6
"! $se in the 3itle +age (and on the co%ers0 if any) a title distinct from that of the
Document0 and from those of pre%ious %ersions (which should0 if there were any0 /e listed in
the >istory section of the Document)! Oou may use the same title as a pre%ious %ersion if
the original pu/lisher of that %ersion gi%es permission!
9! )ist on the 3itle +age0 as authors0 one or more persons or entities responsi/le for
authorship of the modifications in the ?odified Rersion0 together with at least fi%e of the
principal authors of the Document (all of its principal authors0 if it has fewer than fi%e)0
unless they release you from this re(uirement!
C! tate on the 3itle page the name of the pu/lisher of the ?odified Rersion0 as the
pu/lisher!
D! +reser%e all the copyright notices of the Document!
G! "dd an appropriate copyright notice for your modifications ad,acent to the other
copyright notices!
.! :nclude0 immediately after the copyright notices0 a license notice gi%ing the pu/lic
permission to use the ?odified Rersion under the terms of this )icense0 in the form shown in
the "ddendum /elow!
&! +reser%e in that license notice the full lists of :n%ariant ections and re(uired Co%er
3e2ts gi%en in the DocumentHs license notice!
>! :nclude an unaltered copy of this )icense!
:! +reser%e the section Gntitled 1>istory10 +reser%e its 3itle0 and add to it an item
skating at least the title0 year0 new authors0 and pu/lisher of the ?odified Rersion as
gi%en on the 3itle +age! :f there is no section Gntitled 1>istory1 in the Document0 create
one stating the title0 year0 authors0 and pu/lisher of the Document as gi%en on its 3itle
+age0 then add an item descri/ing the ?odified Rersion as stated in the pre%ious sentence!
*! +reser%e the network location0 if any0 gi%en in the Document for pu/lic access to a
3ransparent copy of the Document0 and likewise the network locations gi%en in the
Documentfor pre%ious %ersions it was /ased on! 3hese may /e placed in the 1>istory1 section!
Oou may omit a network location for a work that was pu/lished at least four years /efore the
Document itself0 or if the original pu/lisher of the %ersion it refers to gi%es permission!
A! .or any section Gntitled 1"cknowledgements1 or 1Dedications10 +reser%e the 3itle of the
section0 and preser%e in the section all the su/stance and tone of each of the contri/utor
acknowledgements and/or dedications gi%en therein!
)! +reser%e all the :n%ariant ections of the Document0 unaltered in their te2t and in their
titles! ection num/ers or the e(ui%alent are not considered part of the section titles!
....dokeos.com 24
dokeos
Open Source e-Learning
?! Delete any section Gntitled 1Gndorsements1! uch a section may not /e included in the
?odified Rersion!
5! Do not retitle any e2isting section to /e Gntitled 1Gndorsements1 or to conflict in title
with any :n%ariant ection!
<! +reser%e any @arranty Disclaimers!
:f the ?odified Rersion includes new front-matter sections or appendices that (ualify as
econdary ections and contain no material copied from the Document0 you may at your option
designate some or all of these sections as in%ariant! 3o do this0 add their titles to the
list of :n%ariant ections in the ?odified RersionHs license notice! 3hese titles must /e
distinct from any other section titles!
Oou may add a section Gntitled 1Gndorsements10 pro%ided it contains nothing /ut endorsements
of your ?odified Rersion /y %arious parties--for e2ample0 statements of peer re%iew or that
the te2t has /een appro%ed /y an organiUation as the authoritati%e definition of a standard!
Oou may add a passage of up to fi%e words as a .ront-Co%er 3e2t0 and a passage of up to 2S
words as a 9ack-Co%er 3e2t0 to the end of the list of Co%er 3e2ts in the ?odified Rersion!
<nly one passage of .ront-Co%er 3e2t and one of 9ack-Co%er 3e2t may /e added /y (or through
arrangements made /y) any one entity! :f the Document already includes a co%er te2t for the
same co%er0 pre%iously added /y you or /y arrangement made /y the same entity you are actino
on /ehalf of0 you may not add another4 /ut you may replace the old one0 on e2plicit
permission from the pre%ious pu/lisher that added the old one!
3he author(s) and pu/lisher(s) of the Document do not /y this )icense gi%e permission to use
their names for pu/licity for or to assert or imply endorsement of any ?odified Rersion!
S! C<?9:5:5& D<C$?G53
Oou may com/ine the Document with other documents released under this )icense0 under the
terms defined in section 4 a/o%e for modified %ersions0 pro%ided that you include in the
com/ination all of the :n%ariant ections of all of the original documents0 unmodified0 and
list them all as :n%ariant ections of your com/ined work in its license notice0 and that
you preser%e all their @arranty Disclaimers!
3he com/ined work need only contain one copy of this )icense0 and multiple identical
:n%ariant ections may /e replaced with a single copy! :f there are multiple :n%ariant
ections with the same name /ut different contents0 make the title of each such section
uni(ue /y adding at the end of it0 in parentheses0 the name of the original author or
pu/lisher of that section if known0 or else a uni(ue num/er! ?ake the same ad,ustment to the
section titles in the list of :n%ariant ections in the license notice of the com/ined work!
:n the com/ination0 you must com/ine any sections Gntitled 1>istory1 in the %arious original
documents0 forming one section Gntitled 1>istory14 likewise com/ine any sections Gntitled
1"cknowledgements10 and any sections Gntitled 1Dedications1! Oou must delete all sections
Gntitled 1Gndorsements!1
W! C<))GC3:<5 <. D<C$?G53
Oou may make a collection consisting of the Document and other documents released under this
)icense0 and replace the indi%idual copies of this )icense in the %arious documents with a
single copy that is included in the collection0 pro%ided that you follow the rules of this
)icense for %er/atim copying of each of the documents in all other respects! Oou may e2tract
a single document from such a collection0 and distri/ute it indi%idually under this )icense0
pro%ided you insert a copy of this )icense into the e2tracted document0 and follow this
)icense in all other respects regarding %er/atim copying of that document!
T! "&&8G&"3:<5 @:3> :5DG+G5DG53 @<8A
" compilation of the Document or its deri%ati%es with other separate and independent
documents or works0 in or on a %olume of a storage or distri/ution medium0 is called an
1aggregate1 if the copyright resulting from the compilation is not used to limit the legal
rights of the compilationHs users /eyond what the indi%idual works permit! @hen the Document
is included in an aggregate0 this )icense does not apply to the other works in the agrXgate
which are not themsel%es deri%ati%e works of the Document!
....dokeos.com 25
dokeos
Open Source e-Learning
:f the Co%er 3e2t re(uirement of section # is applica/le to these copies of the Document0
then if the Document is less than one half of the entire aggregate0 the DocumentHs Co%er
3e2ts may /e placed on co%ers that /racket the Document within the aggregate0 or the
electronic e(ui%alent of co%ers if the Document is in electronic form! <therwise they must
appear on printed co%ers that /racket the whole aggregate!
7! 38"5)"3:<5
3ranslation is considered a kind of modification0 so you may distri/ute translations of the
Document under the terms of section 4! 8eplacing :n%ariant ections with translations
re(uires special permission from their copyright holders0 /ut you may include translations
of some or all :n%ariant ections in addition to the original %ersions of these :n%ariant
ections! Oou may include a translation of this )icense0 and all the license notices in the
Document0 and any @arranty Disclaimers0 pro%ided that you also include the original Gnglish
%ersion of this )icense and the original %ersions of those notices and disclaimers! :n case
of a disagreement /etween the translation and the original %ersion of this )icense or a
notice or disclaimer0 the original %ersion will pre%ail! :f a section in the Document is
Gntitled 1"cknowledgements10 1Dedications10 or 1>istory10 the re(uirement (section 4) to
+reser%e its 3itle (section ') will typically re(uire changing the actual title!
J! 3G8?:5"3:<5
Oou may not copy0 modify0 su/license0 or distri/ute the Document e2cept as e2pressly
pro%ided for under this )icense! "ny other attempt to copy0 modify0 su/license or distri/ute
the Document is %oid0 and will automatically terminate your rights under this )icense!
>owe%er0 parties who ha%e recei%ed copies0 or rights0 from you under this )icense will not
ha%e their licenses terminated so long as such parties remain in full compliance!
'0! .$3$8G 8GR::<5 <. 3>: ):CG5G
3he .ree oftware .oundation may pu/lish new0 re%ised %ersions of the &5$ .ree Documentation
)icense from time to time! uch new %ersions will /e similar in spirit to the present
%ersion0 /ut may differ in detail to address new pro/lems or concerns! ee
http6//www!gnu!org/copyleft/!
Gach %ersion of the )icense is gi%en a distinguishing %ersion num/er! :f the Document
specifies that a particular num/ered %ersion of this )icense 1or any later %ersion1 applies
to it0 you ha%e the option of following the terms and conditions either of that specified
%ersion or of any later %ersion that has /een pu/lished (not as a draft) /y the .ree
oftware .oundation! :f the Document does not specify a %ersion num/er of this )icense0 you
may cose any %ersion e%er pu/lished (not as a draft) /y the .ree oftware .oundation!
>ow to use this )icense for your documents
3o use this )icense in a document you ha%e written0 include a copy of the )icense in the
document and put the following copyright and license notices ,ust after the title page6
Copyright (c) OG"8 O<$8 5"?G!
+ermission is granted to copy0 distri/ute and/or modify this document under the
terms of the &5$ .ree Documentation )icense0 Rersion '!2 or any later %ersion
pu/lished /y the .ree oftware .oundation4 with no :n%ariant ections0 no .ront-
Co%er 3e2ts0 and no 9ack-Co%er 3e2ts! " copy of the license is included in the
section entitled 1&5$
.ree Documentation )icense1!
:f you ha%e :n%ariant ections0 .ront-Co%er 3e2ts and 9ack-Co%er 3e2ts0 replace the
1with!!!3e2ts!1 line with this6 with the :n%ariant ections /eing ):3 3>G:8 3:3)G0 with
the .ront-Co%er 3e2ts /eing ):30 and with the 9ack-Co%er 3e2ts /eing ):3!
:f you ha%e :n%ariant ections without Co%er 3e2ts0 or some other com/ination of the three0
merge those two alternati%es to suit the situation!
:f your document contains nontri%ial e2amples of program code0 we recommend releasing these
e2amples in parallel under your choice of free software license0 such as the &5$ &eneral
+u/lic )icense0 to permit their use in free software!
....dokeos.com 26
dokeos
Open Source e-Learning
1-. *odificar este &anual
Ai 'uieres reali5ar alguna modificacin o me0ora en este manual necesitaras una copia
del mismo en formato MpenMffice o ;s)dord( puedes solicitarlos en la siguiente
direccin:
info@dokeos.com
Dokeos
181 rue Royale
B-1210 Brussels
Belgium, Euroe
!el. 00"2 2 22# 00 2$
....dokeos.com 27

S-ar putea să vă placă și