I'm currently working in a piece of code where both logic and data access are present in the GUI classes. Obviously, I would like to improve on this situation.
The current current structure is basically:
- Big ball of mud
The ultimate goal is to achieve a DDD-like structure:
- DAL
- Domain model
- Service layer
- Presentation model
- GUI
So, how would you attack the problem?
- Big bang
- Define the structure for the final state and push code to its ultimate home.
- Divide and conquer
- Try to separate the big ball of mud in to two pieces. Repeat until done...
- Strangling
- Strangle the classes (as described in http://martinfowler.com/bliki/StranglerApplication.html)