ABSTRACT
The concept of information hiding modularity is a cornerstone of modern software design thought, but its formulation remains casual and its emphasis on changeability is imperfectly related to the goal of creating added value in a given context. We need better explanatory and prescriptive models of the nature and value of information hiding. We evaluate the potential of a new theory---developed to account for the influence of modularity on the evolution of the computer industry---to inform software design. The theory uses design structure matrices to model designs and real options techniques to value them. To test the potential utility of the theory for software we apply it to Parnas's KWIC designs. We contribute an extension to design structure matrices, and we show that the options results are consistent with Parnas's conclusions. Our results suggest that such a theory does have potential to help inform software design.
- 1.Baldwin, C. Y. and Clark, K. B., Design Rules: The Power of Modularity, MIT Press, 2000. Google ScholarDigital Library
- 2.Beck, K. Extreme Programming Explained: Embrace Change, Addison-Wesley, 1999. Google ScholarDigital Library
- 3.B. Boehm and K.J. Sullivan, "Software economics: a roadmap," in The Future of Software Engineering, 22nd International Conference on Software Engineering, June, 2000. pp. 319-344. Google ScholarDigital Library
- 4.Eppinger, S.D. "A planning method for integration of largescale engineering systems," International Conference on Engineering Design, 1997.Google Scholar
- 5.Favaro, J.M., K.R. Favaro and P.F. Favaro (1998), "Valuebased software reuse investment," Annals of Software Engineering 5, , pp. 5 - 52. Google ScholarDigital Library
- 6.Garlan, D., Kaiser, G.E., and Notkin, D., "Using tools to compose systems," IEEE Computer, vol. 25, no.6. June 1992. Google ScholarDigital Library
- 7.Parnas, D. L., "On the criteria to be used in decomposing system into modules," Communications of the ACM, Vol. 15, No. 12, December 1972 pp. 1053-1058. Google ScholarDigital Library
- 8.Shaw, M., Garlan, D., Allen, R., Klein, D., Ockerbloom, J., Scott, C. and Schumacher, M. "Candidate model problems in software architecture," Computer Science Department, Carnegie-Mellon University, Technical Report (Shaw 95-2), January, 1995.Google Scholar
- 9.Steward, D.V., "The Design Structure System: A Method for Managing the Design of Complex Systems." IEEE Transactions in Engineering Management, vol. 28, no. 3, 1981, pp. 71-84.Google ScholarCross Ref
- 10.Sullivan, K.J., P. Chalasani, S. Jha and V. Sazawal, "Software Design as an Investment Activity: A Real Options Perspective" in Real Options and Business Srategy: Applications to Decision Making, L. Trigeorgis, consulting editor, Risk Books, 1999. (Previously Sullivan et al., "Software Design Decisions as Real Options," Technical Report 97-14, University of Virginia Department of Computer Science, Charlottesville, Virginia, USA, 1997.) Google ScholarDigital Library
- 11.Sullivan, K.J., "Software Design: The Options Approach," 2nd International Software Architecture Workshop, Joint Proceedings of the SIGSOFT '96 Workshops, San Francisco, CA, October, 1996, pp. 15-18. Google ScholarDigital Library
- 12.Withey, J., "Investment Analysis of Software Assets for Product Lines," Software Engineering Institute, Carnegie Mellon University, Technical Report CMU/SEI-96-TR-10, 1996.Google Scholar
Index Terms
- The structure and value of modularity in software design
Recommendations
On the criteria to be used in decomposing systems into modules
This paper discusses modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time. The effectiveness of a “modularization” is dependent upon the criteria used in ...
A design perspective on modularity
AOSD '11: Proceedings of the tenth international conference on Aspect-oriented software developmentModularity is essential to software development. Without it, large software systems simply could not be realized. Designers typically strive to achieve a high degree of modularity by separating different concerns over different modules, a process called ...
The structure and value of modularity in software design
The concept of information hiding modularity is a cornerstone of modern software design thought, but its formulation remains casual and its emphasis on changeability is imperfectly related to the goal of creating added value in a given context. We need ...
Comments