(* * * Module AdvancedTest defines the objects and operations related to using the * AdvancedTest Wizard to generate an incremental test. * *) module AdvancedTestInc; from QuestionBank import Question; from AdvancedTest import RawTest; export all; object Step1Criteria is components: TestTitle and ClassName and TestType and NumQuestions and Duration; description: (* AdvancedTest Wizard allows the user to quickly create a test with limited criteria including a TestTitle an ClassName, NumQuestions, TestType, and Duration. *); end Step1Criteria; object TestTitle is string description: (* The name of the Test that is being created *); end TestTitle; object ClassName is string description: (* Name of the class the test is being created for. *); end ClassName; object TestType is integer description: (* Standard or Incremental type of test specification. Standard will create typical test, while Incremental produces a dynamically changing test. *); end TestType; object NumQuestions is integer description: (* Numeric total of amount of question *); end NumQuestions; object Duration is integer description: (* Integer that specifies the time limit for the test being created. *); end Duration; object Step2Criteria is components: Keywords and Author and MinDiff and MaxDiff; description: (* AdvancedTestStep 2 specifies more details about the test, including keywords, the difficulty range and the author. *); end Step2Criteria; object Keywords is string description: (* Subject list separated by commas of the topics of questions to be drawn from. *); end Keywords; object Author is string description: (* Author Name of the person who is creating the test. *); end Author; object MinDiff is integer description: (* MinDiff is the beginning difficulty level for the incremental test. *); end MinDiff; object MaxDiff description: (* MaxDiff is the hardest difficulty level for the incremental test. *); end MaxDiff; object Step3Criteria is components: TFinclude and MCinclude and SAinclude and FIBinclude and Matchinginclude and Codeinclude; description: (* Step 3 of the incremental wizard allows the user to toggle whether to include or exclude a question type. *); end Step3Criteria; object TFinclude is description: (* Specifies whether TF questions will be included or excluded from the incrmental test. *); end TFinclude; object MCinclude is description: (* Specifies whether Multiple Choice questions will be included or excluded in the incremental test. *); end MCinclude; object SAinclude is description: (* Specifies whether Short answer questions will be included or excluded from the incrmental test. *); end SAinclude; object FIBinclude is description: (* Specifies whether Fill-in-the-blank questions will be included or excluded from the incrmental test. *); end FIBinclude; object Matchinginclude is description: (* Specifies whether Matching questions will be included or excluded from the incrmental test. *); end Matchinginclude; object Codeinclude is description: (* Specifies whether Code questions will be included or excluded from the incrmental test. *); end Codeinclude; operation GenerateTest is inputs: Step1Criteria, Step2Criteria, Step3Criteria; outputs: RawTest; precondition: ; postcondition: ; description: ; end GenerateTest; end AdvancedTestInc;