views:

249

answers:

3

The effectiveness of a "modularization" is dependent upon the criteria used in dividing the system into modules.

What I want is, suggest some criteria which can be used in decomposing a system into modules.

+1  A: 

I think the Single Responsibility Principle would be a good guide. Try to define responsibilities for each modules, and make each module be responsible for its own thing.

See http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

Ikke
+4  A: 

Cohesion: the functionality in a module is related.

Low coupling: you have minimum dependencies between modules.

Coordinated lifecycle: changes to functionality within a module tends to occur at the same time. Usually a consequence of high cohesion.

Pontus Gagge
A: 

Interesting reading too: http://www.cs.umd.edu/class/spring2003/cmsc838p/Design/criteria.pdf

amaneiro

related questions