25. Cambridge in the 50’s
“As soon as we started programming, we found to
our surprise that it wasn't as easy to get programs
right as we had thought.”
“… the realization came over me with full force that
a good part of the remainder of my life was going to
be spent finding errors in my own programs.”
Maurice Wilkes
28. Subroutines
• Subroutine:
• Focus on what, not how
• Encapsulate the implementation details
• Formalized the input data (arguments)
• Formalized the output (return values)
40. Pittsburg 70’s
“ … modularization as a mechanism for improving
the flexibility and comprehensibility of a system
while allowing the shortening of its development
time.”
David Parnas
50. Palo Alto 80’s
“Objects support modularity - the functioning of an
object does not depend on the internal details of
another object. The complexity of the system is
reduced by this minimization of interdependencies
of system components.”
Smalltalk Team
59. Packages
“Chapter 7 describes the structure of a program,
which is organized into packages similar to the
modules of Modula.”
Java Language Specification
91. Conclusion
2010 2003
2017
1996 1989
1982 1982
1975 1968
1961
Amount of software doubling every 7 years
source: http://users.jyu.fi/~koskinen/smcosts.htm
92. OSGi
• Legacy and backward compatibility is important
• Modularizing is hard
• Many popular Java patterns are fundamentally
not modular
• In the next 7 years, we double the amount of
software
• Investment in modularity has a great ROI!
93. OSGi Alliance
• The OSGi Alliance is a non-profit that has the
vision to develop a Java component model to ease
software development
• Comprehensive framework specification
• Service specifications
• An active community
• Repository
• Tools
94. Join!
• Help us to achieve our vision to make
software simpler to develop
• Provide Requirements
• Develop specifications
• Help the community
• OSGi Alliance restructured to provide
lower-cost membership levels