Presentation is loading. Please wait.

Presentation is loading. Please wait.

Fabio Arciniegas A. Rubby Casallas G. An XML Based Academic Test Manager.

Similar presentations


Presentation on theme: "Fabio Arciniegas A. Rubby Casallas G. An XML Based Academic Test Manager."— Presentation transcript:

1 Fabio Arciniegas A. Rubby Casallas G. An XML Based Academic Test Manager

2 Agenda v The Problem v The Solution v Evolution of Samxa v Contributions v Future Works

3 The Problem Maintain a centralized repository of queryable questions and tests Minimize the work needed to produce copies of the same test in different formats Maximize the portability of questions and tests Get full and scalable advantage of the Web for exams

4 Agenda v The Problem v The Solution v Typical user steps v Basic Architecture v Kernel v CGIHelper

5 The Solution : Typical Steps [user]

6 The Solution : Typical Steps [user] (2)

7 > HTTP Server Location > Teacher PC > [ HTTP & FTP ] The Solution: BasicArchitecture SamxaServerSamxaCGIHelper Produces and storages questions and tests. This is the component capable of reading / writing objects to XML This component takes the responsibility of converting CGI answers to XML

8 The Solution : Server Architecture GUI Kernel Database XMLPersisters XML Samxa is independant of the DBMS Windows users use mostly Microsoft Access. Linux users have succesfully used the major kernel classes using Postgres SamXa Server follows a layered architecture. The “XMLPersisters”, the components capable of reading/writing objects from/to XML files are embbeded, in the Kernel. The XML persistance is based on documents conformant with 2 DTDs: Question Test The Server kernel is a medium sized applicaction (34 major classes in 11 KLOC) written in C++. The current GUI is based on MFC. A TCL interface is at the top of the samxa team tasks list.

9 DBMS Question Persister XML Question Persister Expatp p Question Server Question * T/F Question Choice Question Open Question The Solution: Kernel The kernel is composed of several units that replicate an Object-Object Server- Object Persister architecture. The generalization of this structure is what we call the XMLable design pattern. Two reasons inspire this organization: ¶Abundant, objects should not bear the responsiblity of saving themselves as XML. Consequences: 4Flyweight pattern [GoF95] can be applied leading to a much smaller memory consumption. 4Coupling between the rest of the solution and the XML processor is greatly diminished ·The need of a domain specific object hierarchy imposes the need of an object model representation of the XML other than DOM.

10 DBMS Question Persister XML Question Persister Expap pt Question Server Question * T/F Question Choice Question Open Question The Solution: Kernel (2) Samxa’s XML to DBMS is based on an intermediate object representation for both. This is similar to the XML to DBMS proposal for java by David Megginson Samxa’s XMLPersisters (in classes XMLQuestionPersister, XMLTestPersister) Follow the Builder Pattern [GoF95]. Currently XMLPersisters use a modified version of Andy Dent’s C++ Expat wrapper. XML4C2 Dom implementation is used for Object to XML document persistance

11 The Solution: Kernel (3) Transformations in Samxa are performed using external tools. A Transformation Manager class takes care of the calls to these tools. When a stylesheet is registered it can specify its type (DSSSL or XSL) and a recomnended external tool to use. Currently, Samxa users have a set of 10 stylesheets. 7 of them are written in DSSSL (use James Clark’s Jade) 2 more of them use XSLT 1 is a special template that inserts the XML in a page that uses the XML/XSL capabilities of IE5.0 DBMS StyleSheet Persister StyleSheet Server StyleSheet * ExternalTool Transformer Manager *

12 The Solution: CGIHelper XML-Based Results CGI Helper Samxa Generated HTML+JavaScript Tests This helper follows a pipe-filter architecture in order to convert CGI-POST based information (the answers) into XML answer documents which conform to an Answers DTD. The CGI Helper is written in Perl. It uses XML::DOM for the actual translation of the posted data to XML. It also uses XML:XSLT in order to produce the HTML statistic pages that students look at. > HTTP Server Location > Teacher PC > [ HTTP & FTP ]

13 Agenda v The Problem v The Solution v Evolution of Samxa v XML Relevant changes over Time v Comparisions

14 Evolution: XML Relevant changes Samxa, now in its version 2.0, has undergone several changes that compomise its relation with The XML libraries/tools that it uses. These changes took place mainly in two components: XMLPersister classes in the kernel and the CGIHelper. We believe this experimentation... Better yet, wandering through parsers and tools is representative of what many developers are going thru.

15 Evolution: XMLPersister changes Ad Hoc Home made perl script Expat. Using intermediate structures in userData XML4C2 SAXParser XML4C2 DomParser Enhanced Expatpp using Run-time linking of xmlparse.dll Learning Times Development and test times of XMLQuestionPersister Total LOC of XMLQuestionPersister

16 Evolution: XMLPersister changes Ad Hoc Home made perl script Expat. Using intermediate structures in userData XML4C2 SAXParser XML4C2 DomParser Enhanced Expatpp using Run-time linking of xmlparse.dll Pros : Pros : Cons Solution can be highly optimized for the problem at hand High Coupling Too sensible to even the smallest changes in the DTD Unscalable

17 Evolution: XMLPersister changes Ad Hoc Home made perl script Expat. Using intermediate structures in userData XML4C2 SAXParser XML4C2 DomParser Enhanced Expatpp using Run-time linking of xmlparse.dll Pros : Pros : Cons *Really* Fast Easy to learn Clear, concise code Totally portable Not C++ Ad Hoc adapting to your C++ project can be difficult and error prone

18 Evolution: XMLPersister changes Ad Hoc Home made perl script Expat. Using intermediate structures in userData XML4C2 SAXParser XML4C2 DomParser Enhanced Expatpp using Run-time linking of xmlparse.dll Pros : Pros : Cons Highly readable code Fast development Originally developed for C++ Slightly slower Steeper learning curve

19 Evolution: XMLPersister changes Ad Hoc Home made perl script Expat. Using intermediate structures in userData XML4C2 SAXParser XML4C2 DomParser Enhanced Expatpp using Run-time linking of xmlparse.dll Pros : Pros : Cons Highly readable code Fast development Originally developed for C++ Inapropiate for the construction of domain specific object models. Discarded

20 Evolution: XMLPersister changes Ad Hoc Home made perl script Expat. Using intermediate structures in userData XML4C2 SAXParser XML4C2 DomParser Enhanced Expatpp using Run-time linking of xmlparse.dll Pros (The best of both worlds) : Pros (The best of both worlds) : Highly readable code Fast development Presents only a C++ façade Dynamic linking in Win32 presents advantages like the possibiliy of looking for XML4c2 if xmlparse is not found

21 Agenda v The Problem v The Solution v Evolution of Samxa v Contributions v The Software development process and XML related contributions

22 Contributions During the development of SamXa several other tools were developed. XML Tools for various stages of the development process are now an integral part of our work.

23 Contributions The tools developed have been useful on several stages of the development process. Requirements Elicitation and specification Requirements.DTD and DSSSL stylesheets Design XMLable and Class2XML Patterns Code XML Documentation generator - Stylesheets Test Munin: XML based Testing

24 Contributions : Samples Text context Creation...

25 Contributions : Samples XMLPersistenceMgr XMLWrite() XMLRead() RegisterXMLable() > DocumentHandler StartElement() EndElement() StartDocument() EndDocument() > XMLableAbstractClass Client Creates 0..*0 ConcreteXMLPersistenceMgr Synchronizes Parser 0..* subscribes XMLableConcreteClass Multiple objects whose data is to be gathered from XML documents need to be manipulated. Design and program quality imposes the need to represent the data as something more meaningful in your domain than the DOM tree.

26 Contributions: Samples Munin... Hello Hi there! 5... HTML with the results

27 Future Works Create tools for the automatic generation of classes that follow the Samxa approach for the event oriented construction of domain specific objects Create simple to use components in order to popularize parsers among developers Complete a full set of XML based tools that support the whole development cycle e.g dtds + visual tools for the definition of architectures.

28 Conclusions Samxa is an example of how an XML based solution, using XML based assistant tools can be applied to real life problems. Samxa shows useful, reusable techniques for the creation of domain specific objects from XML Samxa history shows a common struggle between tools. We hope that others can make use of our experience when facing similar problems

29 Questions

30 Fabio Arciniegas A. Rubby Casallas G. An XML Based Academic Test Manager www.uniandes.edu.co/~l-arcini/TheFAActory l-arcini@uniandes.edu.co


Download ppt "Fabio Arciniegas A. Rubby Casallas G. An XML Based Academic Test Manager."

Similar presentations


Ads by Google