QGen - PowerPoint PPT Presentation

About This Presentation
Title:

QGen

Description:

QGen FHARM Team: Flavio Palandri Antonelli Project Manager Hyunmin Lee System Tester Aarthi Venkataramanan System Architect Rupal Shah System Integrator – PowerPoint PPT presentation

Number of Views:254
Avg rating:3.0/5.0
Slides: 26
Provided by: Byt5
Category:

less

Transcript and Presenter's Notes

Title: QGen


1
QGen
  • FHARM Team
  •  
  • Flavio Palandri Antonelli Project Manager
  • Hyunmin Lee System Tester
  • Aarthi Venkataramanan System Architect
  • Rupal Shah System Integrator
  • Mohip Joarder Language Guru
  • COMS W4115 Programming Languages and Translators
  • Prof. Alfred V. Aho
  •  

2
Outline
  • Introduction Motivations
  • Language Basics
  • Language Design Architecture
  • Demo
  • Language Implementation Testing
  • Conclusions

3
What is QGen?
  • QGen, is a programming language to develop
    computer-based test applications.


QGen
4
With QGen you can..
  • Generate computer based tests and surveys
  • Define different types of questions and organize
    them into logically meaningful sections
  • Make your tests adapt to the ability of the user
  • Provide immediate results/feedback

5
Use QGen for..
  • Customer Insights
  • Employee Feedback
  • Research
  • Education and Training
  • Just For Fun !

6
Why QGen?
  • Eases the process of creating and evaluating
    quizzes and surveys
  • Yet provides ample flexibility to allow for
    customization and dynamic behavior.
  • The output is a portable java application

7
Outline
  • Introduction Motivations
  • Language Basics
  • Language Design Architecture
  • Demo
  • Language Implementation Testing
  • Conclusions

8
Overall Structure of a QGen Program
Pro
Program
Section 1
Question 1
. .
Question n
. .
Section S
Question 1
. .
Question m
  • Main
  • Display questions
  • Organize sections
  • Evaluate results

9
Sample Program
section HelloWorldSection question q1 type
multipleChoice text "What's the most simplest
program usually adopted 2 show a language
example?" image "images/hw.jpg" answer "Hello
World" choices ("Hello World", "Hello Moon",
"Hi World", "Goodbye World") score 5
q1 main showInstruction("Simple test",
"Select the correct choice in the next
question.") showSection(HelloWorldSection) showR
esult()
Section
Question
Sections organization
10
Sample Program Output 1
showInstruction("Simple test", "Select the
correct choice in the next question.")
11
Sample Program Output 2
showSection(HelloWorldSection)
12
Sample Program Output 3
showResult()
13
Syntactic Constructs
  • Looping structures
  • For
  • While
  • Conditional structures
  • if/else
  • Built in functions
  • showInstruction(String title, String description)
  • showResult()
  • getSectionScore(Section s)
  • getQuestionScore(Section s, Question q)
  • getAnswer(Section s, Question q)
  • addToList(List l, String s)

14
Outline
  • Introduction Motivations
  • Language Basics
  • Language Design Architecture
  • Demo
  • Language Implementation Testing
  • Conclusions

15
Abstract Model of a Test
16
Architecture
QGen Source Program
Front End
Back End
TreeWalker
Target Java Program
Section
Lexer Parser
Syntax Tree
ANTLR
GUI Manager
Question
grammar.g
walker.g
Interactive GUI Test Application
Runnable Java Program
Java Compiler
JVM
17
Outline
  • Introduction Motivations
  • Language Basics
  • Language Design Architecture
  • Demo
  • Language Implementation Testing
  • Conclusions

18
Demo Source Code
  • section firstSection
  • question q1
  • type yesNo
  • text "Is the grammar S -gt Sa b left
    recursive?"
  • answer "Yes"
  • score 5
  • question q2
  • type fillBlank
  • text "___ binding binds the data at run
    time"
  • answer "Dynamic"
  • score 5
  • q1q2

First Section
  •  section easySection
  • question q3
  • type freeText
  • text "What is the input language of
    Assembler?"
  • answer "Assembly language"
  • score 3
  • q3

Easy Section
19
  • section hardSection
  • question q4
  • type multipleChoice
  • text "Which is the best parser among the
    given choices?"
  • answer "Canonical-LR"
  • choices ("Canonical-LR", "Simple LR",
    "LALR", "LL(1)")
  • score 10
  • list l
  • for (i 0 to 10)
  • addToList(l,i)
  •  
  • question q5
  • type multipleChoice
  • text "How many no. of min. states will
    be generated after converting the following NFA
    to DFA?"

Hard Section
  • main
  • showInstruction("Computer Adaptive PLT Test",
    "Depending on your answers different questions
    will be shown in the next section")
  • showSection(firstSection)
  • if (getSectionScore(firstSection) gt 5)
  • showSection(hardSection)
  • else
  • showSection(easySection)
  • showResult()

Main function
20
Demonstration
  • Now Pop PLT quiz!

21
Outline
  • Introduction Motivations
  • Language Basics
  • Language Design Architecture
  • Demo
  • Language Implementation Testing
  • Conclusions

22
Development Environment
Tools Software Purpose
ANTLR Takes grammar tokens as input and produces Lexer Parser Walker
Eclipse IDE ANTLR plugin IDE ANTLR plugin for grammar debugging
Google code Subversion Version control
Java Swing Back-end Display
23
Test plan
Phase To do
Front-end Unit Test Test every grammar production
Back-end Unit Test - Test with hand-made target programs
Integration Test - Verify equivalence between treewalker output and hand-made target programs
System Test - Test the entire QGen compiler
24
Front-end Test with ANTLR Plugin
25
Conclusions
  • Lessons learned
  • Meet regularly
  • Keep it simple (Life is hard enough!)
  • User-friendly languages are hard to implement and
    test
  • Decouple front-end and back-end development
  • Future Work Improvements
  • Import questions from a file store results to a
    DB
  • Enforce time-limits
  • Statistical results
Write a Comment
User Comments (0)
About PowerShow.com