User:David Thomson

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m
Line 22: Line 22:
 
=== Why I chose this project ===
 
=== Why I chose this project ===
 
I chose this project because I am familiar with it; I was the chief architect for our COSC314 group. Although the above design has some merits, it isn't great, mainly due to time constraints, and the fact that we were learning OO design as we developed the system, not before developing the system. With significantly more OO wisdom, and the benefit of spending a year working on the current system, I think I can come up with a significantly better design. Unit tests already in place make my job easier, and I can focus on good design and not on writing new code. As such I will not attempt to add any new functionality to the system.
 
I chose this project because I am familiar with it; I was the chief architect for our COSC314 group. Although the above design has some merits, it isn't great, mainly due to time constraints, and the fact that we were learning OO design as we developed the system, not before developing the system. With significantly more OO wisdom, and the benefit of spending a year working on the current system, I think I can come up with a significantly better design. Unit tests already in place make my job easier, and I can focus on good design and not on writing new code. As such I will not attempt to add any new functionality to the system.
 +
 +
=== Redesign ===
 +
Here is a UML diagram showing an attempt to redesign JITAS. (not sure if my UML is correct...)
 +
Some notes:
 +
* Subdomain has a Factory method to make the correct Feedback Object
 +
* Subdomain uses a [[Strategy]] design pattern for the ProblemSelectionAlgorithm
 +
 +
[[Image:JITAS redesign.png]]

Revision as of 00:21, 21 August 2008

Davids home page

David.jpg

Contents

Design Study

For my design study I am going to re-design the WETAS base classes (aka JITAS), which we developed in COSC314 in 2007. I think the design is not very good, and in particular has very high coupling between classes. Here is the original UML diagram.

JITAS original.png

The Plan

  • Set up original JITAS project in Eclipse - DONE
  • Ensure all unit tests work as expected - DONE
  • Redesign and Refactor Code
  • Ensure all unit tests (still) work as expected

The existing unit tests should help a lot, and it fits very well into the refactoring process. If the unit tests work after my redesign, I can be sure that I haven't changed the logic - only the design. The Tutor interface should not change (so the tests will still run), but the internal details of the other classes (and the external details of the internal classes) will. The main objective of this refactoring is to decrease the coupling between classes, therefor making extending and maintaining the system theoretically easier.

I am only going to re-design the jitas.core package (ie the UML diagram above), and leave the other packages the way they are. The other packages are quite small and trivial and therefor do not seem like useful candidates for refactoring. Due to this I wont be running the tests on those packages, as I wont change them. They will still be used by my redesigned core package though.

Why I chose this project

I chose this project because I am familiar with it; I was the chief architect for our COSC314 group. Although the above design has some merits, it isn't great, mainly due to time constraints, and the fact that we were learning OO design as we developed the system, not before developing the system. With significantly more OO wisdom, and the benefit of spending a year working on the current system, I think I can come up with a significantly better design. Unit tests already in place make my job easier, and I can focus on good design and not on writing new code. As such I will not attempt to add any new functionality to the system.

Redesign

Here is a UML diagram showing an attempt to redesign JITAS. (not sure if my UML is correct...) Some notes:

  • Subdomain has a Factory method to make the correct Feedback Object
  • Subdomain uses a Strategy design pattern for the ProblemSelectionAlgorithm

JITAS redesign.png

Personal tools