When you are faced with a MonolithicDesign, what can you do to ReduceCoupling?
First I would suggest that you must define the BusinessRules. Often a MonolithicDesign is the result of having people with a strong DomainKnowledge add more BusinessRules (and hence more files or processes) to an existing codebase. BusinessRules end up getting implemented in a split fashion between different programs (leading to SoftwareFragility).
To assist in the process of reducing coupling, it helps to know what are the causes of increased coupling:
- Number of files or tables used
- Number of software language platforms or implementations used
Another way to grok this concept is to imagine assigning a number to the coupling of a process, 1 being the lowest possibly coupling. A program with a coupling of 1 would read in a single flat file or database table, apply logic to implement a single BusinessRule, and write out (or update) a single flat file or database table.
The advantage of reducing coupling is that it allows for easier refactoring.
EditHint: Merge this with CouplingAndCohesion