Incorporating Design Knowledge into the Software Development Process using Normalized Systems Theory

The knowledge residing inside a firm is considered to be one of its most important internal assets in obtaining a sustainable competitive advantage. Also in software engineering, a substantial amount of technical know-how is required in order to successfully deploy the organizational adoption of a technology or application. In this paper, we show how knowledge on the development of evolvable software can be managed and incorporated into a knowledge base, to enable the more productive construction of evolvable systems. The Normalized Systems (NS) theory offers wellfounded knowledge on the development of highly evolvable software architectures. This knowledge is captured in the form of Normalized Systems elements, which can be regarded as design patterns. In this paper, it is discussed how Normalized Systems elements facilitate the management of state-of-theart knowledge in four processes: (1) knowledge creation, (2) knowledge storage/retrieval, (3) knowledge application, and (4) knowledge transfer. Based on this discussion, it is shown how lessons can be drawn from the NS approach for the management of software engineering knowledge. Keywords-Normalized Systems; Design Patterns; Knowledge Management.

[1]  Kris Ven,et al.  Towards evolvable software architectures based on systems theoretic stability , 2012, Softw. Pract. Exp..

[2]  Andrew Kakabadse,et al.  Reviewing the knowledge management literature: towards a taxonomy , 2003, J. Knowl. Manag..

[3]  Vladimir Zwass,et al.  Actualizing Organizational Memory with Information Systems , 1995, Inf. Syst. Res..

[4]  Jan Verelst,et al.  Normalized systems: re-creating information technology based on laws for software evolvability , 2009 .

[5]  Philip Huysmans,et al.  On the feasibility of normalized enterprises : applying normalized systems theory to the high-level design of entreprises , 2011 .

[6]  Alexander Tuzhilin,et al.  Knowledge management revisited , 2011, ACM Trans. Manag. Inf. Syst..

[7]  Juan Manuel Cueva Lovelle,et al.  Patterns meta-specification and cataloging: towards knowledge management in software engineering , 2006, OOPSLA '06.

[8]  Jack Greenfield Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools , 2004, GPCE.

[9]  Torgeir Dingsøyr,et al.  A Study of a Mentoring Program for Knowledge Transfer in a Small Software Consultancy Company , 2005, PROFES.

[10]  Paul W. Oman,et al.  Using metrics to evaluate software system maintainability , 1994, Computer.

[11]  B. Wernerfelt,et al.  A Resource-Based View of the Firm , 1984 .

[12]  Isabel Pinho,et al.  Improving knowledge management processes: A hybrid positive approach , 2012, J. Knowl. Manag..

[13]  Nile W. Hatch,et al.  Design Rules, Volume 1: The Power of Modularity , 2001 .

[14]  Eric D. Darr,et al.  The Acquisition, Transfer, and Depreciation of Knowledge in Service Organizations: Productivity in Franchises , 1995 .

[15]  James Coplien,et al.  The culture of patterns , 2004, Comput. Sci. Inf. Syst..

[16]  Dorothy E. Leidner,et al.  Review: Knowledge Management and Knowledge Management Systems: Conceptual Foundations and Research Issues , 2001, MIS Q..

[17]  L. Argote,et al.  The persistence and transfer of learning in industrial settings , 1990 .

[18]  Michael Philippsen,et al.  Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance , 2002, IEEE Trans. Software Eng..

[19]  William R. King,et al.  Knowledge Management and Organizational Learning , 2009, Knowledge Management and Organizational Learning.

[20]  R. Grant Toward a Knowledge-Based Theory of the Firm,” Strategic Management Journal (17), pp. , 1996 .

[21]  I. Nonaka A Dynamic Theory of Organizational Knowledge Creation , 1994 .

[22]  Jan Verelst,et al.  Using normalized systems patterns as knowledge management , 2012, ICSEA 2012.

[23]  Dieter Van Nuffel,et al.  Towards designing modular and evolvable business processes , 2011 .

[24]  J. March,et al.  Organizational Learning , 2008 .

[25]  O. A. Sawy,et al.  Preserving Institutional Memory: The Management of History as an Organizational Resource. , 1986 .

[26]  L. S. Ganesh,et al.  Research on knowledge transfer in organizations: a morphology , 2009, J. Knowl. Manag..

[27]  P. Attewell Technology Diffusion and Organizational Learning: The Case of Business Computing , 1992 .

[28]  M. Polanyi Chapter 7 – The Tacit Dimension , 1997 .

[29]  Robert L. Glass Maintenance: Less Is Not More , 1998, IEEE Softw..

[30]  Torgeir Dingsøyr,et al.  Knowledge management in software engineering: A systematic review of studied concepts, findings and research methods used , 2008, Inf. Softw. Technol..

[31]  Kris Ven,et al.  The transformation of requirements into software primitives: Studying evolvability based on systems theoretic stability , 2011, Sci. Comput. Program..

[32]  Craig Larman,et al.  Applying UML and patterns , 1997 .

[33]  Douglas C. Schmidt,et al.  Using design patterns to develop reusable object-oriented communication software , 1995, CACM.

[34]  Dirk Riehle Lessons Learned from Using Design Patterns in Industry Projects , 2011, Trans. Pattern Lang. Program..

[35]  Jeffrey K. Liker,et al.  Modularity as a Strategy for Supply Chain Coordination: The Case of U.S. Auto , 2007, IEEE Transactions on Engineering Management.

[36]  Daniel A. Levinthal,et al.  Bounded Rationality and the Search for Organizational Architecture: An Evolutionary Perspective on the Design of Organizations and Their Evolvability , 2004 .

[37]  Hyung Jun Ahn,et al.  Capturing and reusing knowledge in engineering change management: A case of automobile development , 2006, Inf. Syst. Frontiers.

[38]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[39]  Morten T. Hansen,et al.  What's your strategy for managing knowledge? , 1999, Harvard business review.

[40]  D. Scott McCrickard,et al.  Links for a Human-Centered Science of Design: Integrated Design Knowledge Environments for a Software Development Process , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.

[41]  Walter F. Tichy,et al.  A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions , 2001, IEEE Trans. Software Eng..

[42]  Torgeir Dingsøyr,et al.  Practical knowledge management tool use in a software consulting company , 2005, CACM.

[43]  Klaus Quibeldey-Cirkel,et al.  Using Patterns for Design and Documentation , 1997, ECOOP.