Jojo's OO Design Project Log

From CSSEMediaWiki
Revision as of 00:47, 27 August 2008 by Johannes Pagwiwoko (Talk | contribs)
Jump to: navigation, search

Alexey Blinov's Original Design

The image below shows the by Alexey Blinov, A Cosc Honours 2007 student, which also did this course. He came up with this final design at the end of the course. To say the least, it is really good design, well-packed with good design principle and design patterns. However, the design was bound to the software requirement which has now changed.

DigitalMusicStand originalDesign.png

My task is to improve his designs based on the new requirements. Come to think of it, his design has some bottleneck that is not flexible (ie. not open to extension and modifications).

  • Why it needs improvements?
  • Why I choose this study?
  • What are the bottlenecks?

Design Enlightenment. Starts. Here.

Events of Design Decisions (To Be Expanded & its language made formalized if needed):

  • The very first thing I had to face with as I opened the lid of my design study box was Shotgun surgery smell just exploding right in front of my face and stained my clothes. Not good. Not good. But well, due to time constraints I chose to work with work with the current design as much as possible rather than blast it to pieces (Is this decision will make or break my honours project?)
  • model view controller: controller knows about everyone...but everyone only knows about controller????
  • Changed the 'Model' of my model view controller: Added DocumentFragment class.
  • Added the ViewerControllers: DocumentViewerController & DocumentFragmentViewerController
  • Added, ViewStrategy: SingleViewStrategy & MultipleViewStrategy, but...
  • ...OH NOOO, Why this has to happen in my design study's space: It's...not an alien, it's Parallel hierarchies problem!!! The smell of Parallel inheritance hierarchies smell is really strong in here!! Oh Gawwd NO!!