Functional Redesign Needed

Aug 13, 2008 at 2:07 PM
  I had started this project with the idea that I would work on it completely without any use case diagrams or any premodeling of the classes or the software as a whole. I wanted to go into it completely without any design to see if test driven development alone would allow me to define and round my structure. However, I see this is a fallacy as I have a multitude of issues currently going on and I have reached a point where I am seeing this all over the code:

1. The single responsibility principle is getting smashed
2. I have inheritance, but the liskov principle doesn't stand with my abstracted classes
3. I have classes open for modification and open for extension, I am basically all over the place

I am breaking many fundamental OOA&D principles and I will not be able to complete this project on Test Driven Development alone, I will need to refactor heavily at this point (and then rewrite all of my tests), or take this as a learning opportunity and go at this the proper way......I choose the latter.

So the August 5th Check in will be the last check in of the highly coupled and tightly grouped code. Everything after August 5th will a cleaner design. I will begin this by making some designs and checking in some designs, I am going to go ahead with this as a more academic project now, try to really get something polished out there.