I've noticed that your book also describes the differences between runtime modularity and the development-time modularity. If I've understood well from the table of contents your proposal for runtime modularity is OSGI. Can you describe in a few words what is development-time modularity and how can it be achieved (technology-wise, maven maybe?). Thanks.
P.S.: The book looks really interesting (haven't had that feeling since reading Clean-Code).
I define two facets of modularity - the runtime model and the development model. The runtime model enforces modularity through the use of a modularity framework, like OSGi. The development model can be broken down into two sub-parts - the programming model and the design paradigm. The programming model is the framework API. The design paradigm are the patterns and principles we apply to develop modular software. In the book, I draw an analogy to OO and EJB. OO's runtime model supports dynamic binding, etc. The programming model allows us to inherit classes and implement interfaces. But until we understand the design paradigm, it's still very difficult to design good OO software. Instead, we end up mostly making a mess of things. The same can be said of modularity. Even though you're using a modularity framework, like OSGi, there is no guarantee that you'll get a well-design modular software system. You still have to define modules at the right level of granularity, cohesion, manage dependencies, make modules usable, etc.
The book focuses on the design paradigm. It helps you design modular software and presents 18 patterns that helps you do this. It shows how you can design modular software even if there is no runtime support for modularity. Then, when runtime support for modularity is available, you'll be positioned to take advantage of it. But if you don't have a modular software system, runtime support for modularity isn't going to lend you any benefits.
Visit the book's website at modularity.kirkk.com where you can review all 18 patterns and download an excerpt of the book. There is also a mobile web application available that you can take with you wherever you go.
Joined: Sep 14, 2011
Thank you for your answer Kirk, I think your book would have been very helpful for myself in my previous endeavors.