Applications for e-learning platforms must deal withcertain variability inherent to their domain. For example, theseapplications must be adapted to the variations of each teaching-learning process. Thus, they must be changed manually, accord-ing to the particular environment in which they will be deployed.This manual adaptation process is costly and error-prone. Ourhypothesis is that software product line (SPL) engineering, whosegoal is the effective production of similar software systems, canhelp to alleviate this problem. This paper illustrates this ideaby refactoring an e-learning application named E-Learning WebMiner in a SPL. The benefits obtained are highlighted andanalyzed. Building Families of Software Products for e-Learning Platforms A Case Study
MOST educational institutions use some kind ofe-learning platform nowadays. Examples of thesee-learning platforms are Moodle, WebCT/Blackboard orShakai. These platforms aimto ease the teaching-learningprocess and improve it by means of taking advantage ofinternet technologies. These platforms offer different resourcesand tools that enable students to develop both autonomous andcollaborative learning. Moreover, this kind of teaching offersadvantages to both students andteachers. The former can settheir pace of learning, time and workplace; and the latter candesign content and activities for different student’s profilesand learning styles using the interactive and multimediacapabilities that these tools provide.A market of auxiliary applications has been created aroundthese e-learning platforms. For instance, the Moodle platformhas currently got 786 complementary modules and pluginsin its website. These modules provide different utilities suchas eCalendars synchronisation or advanced support for thedevelopment of eportfolios, as Mahara does.
All these e-learning platforms are quite similar. All ofthem support concepts such as activity, assignment, quizzes orgrade. However, they also present a wide range of differencesamong them. For instance, the database schemas they use in their back-end are different, although they refer to thesame concepts. Therefore, the companies developing auxiliaryproducts for e-learning systems must deal with this inevitablevariability.Moreover, in the case of a company or a product whichtargets a single e-learning platform, developers must also dealwith some variability inherent to the domain since the designof each course is highly dependent on the instructor and thesubject. For instance, to manage student groups as a singleunit may be helpful in courses where collaborative activitiesare proposed, whereas this capability would be not requiredfor those courses based on individual activities.Furthermore, the environment where these applications aredeployed is not always the same. The environment can alsoadd some variations. For instance, depending on the countrywhere these applications are deployed, student data can besubject to different regulations and laws .Therefore, auxiliary applications for e-learning platformsshould be customised in order to meet the customer needs.These applications must support different variations in orderto adapt to: (1) different e-learning platforms; (2) differ-ent learning strategies, subjects and organisation of courses;(3) different environments