CSC/ECE 517 Fall 2014/oss E1456 akk: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 31: Line 31:


=UML CLass Diagram=
=UML CLass Diagram=
A Subset of the UML class diagram including only the related classes for this project can be drawn as shown below.


[[File:UMLDiagram.JPG|frame|center]]
[[File:UMLDiagram.JPG|frame|center]]
Questionnaire Controller is the superclass of QuizQuestionnaire and all the other classes - User class, Advice class and Questionnaire classes are related Model Classes to the controllers that we have modified.


=Participant Model=
=Participant Model=

Revision as of 22:36, 29 October 2014

Refactoring Questionnaire Controller

Introduction

Questionnaire Controller interacts with the user to create and edit questionnaires such as review rubrics, teammate-feedback rubrics, quizzes, and surveys. This page provides a detailed description of Open Source Project on Expertiza for refactoring the questionnaire controller.

Project Overview

Classes involved

  • questionnaire_controller.rb
  • questionnaire_helper.rb
  • advice_controller.rb

Changes made

  • Functionality moved to quiz_questionnaire.rb.
  • edit_advice method was not being used, so it was removed.
  • save_advice moved to the advice_controller.
  • copy, update_quiz, valid_quiz methods were long and have been broken up. clone_questionnaire_details was also broken up and renamed.
  • Added comments to select_questionnaire_type
  • Debug output (print statements) have been removed.
  • Changed code to follow the global rules.
  • save_new_questions, delete_questions, save_questions have been moved to a separate class.

Project Resources

GitHub Project Repository

VCL IP Address

Expertiza Wiki

UML CLass Diagram

A Subset of the UML class diagram including only the related classes for this project can be drawn as shown below.

Questionnaire Controller is the superclass of QuizQuestionnaire and all the other classes - User class, Advice class and Questionnaire classes are related Model Classes to the controllers that we have modified.

Participant Model

Code Snippets

The quiz questionnaire related methods such as view_quiz, update_quiz, new_quiz and validate_quiz are moved to questionnaire_helper.rb to make the questionnaires_controller thin and follow global rule of thin controllers and fat models.

Conclusion

  • Refactoring was performed as per requirements in the files questionnaire_controller.rb, and advice_controller.rb.
  • The code from models cannot be moved directly to controllers, so the code was moved to the helper class questionnaire_helper.rb.
  • Some methods with confusing method names have also been renamed.

References