It's not a secret anymore!
The moose likes OO, Patterns, UML and Refactoring and the fly likes Development-time modularity and how to achieve it Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Development-time modularity and how to achieve it" Watch "Development-time modularity and how to achieve it" New topic

Development-time modularity and how to achieve it

Mircea De

Joined: Sep 14, 2011
Posts: 4

Hi Kirk,
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).
Kirk Knoernschild
Ranch Hand

Joined: Apr 16, 2012
Posts: 41
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 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.

Twitter: @pragkirk
Mircea De

Joined: Sep 14, 2011
Posts: 4

Thank you for your answer Kirk, I think your book would have been very helpful for myself in my previous endeavors.
I agree. Here's the link:
subject: Development-time modularity and how to achieve it
jQuery in Action, 3rd edition