Notes on modularity

Modularity is a desirable but elusive design property for large scale programs and computer systems [10, 11]. Designs that appear modular may, once put into practice, actually turn out to be example of  “false modularity” because of interdependencies between components. For example, the apparently modular architecture of micro-kernel operating systems [9] has run into practical difficulties [6, 3]. Examining how state machines can be constructed by connecting simpler state machines together, provides some insight into why real modularity is so powerful and how to avoid false modularity. In this paper, I’m going to sketch out how to look at modularity from the perspective of state machines, try to derive a few “rules of thumb”, and point to some of the deep mathematical basis of this method.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s