Integrating software engineering theory and practice using essence: A case study

Abstract Software engineering is complex and success depends on many inter-related factors. Theory Based Software Engineering (TBSE) is about providing a practical way for software teams to understand the relationships and the influence of these factors to thereby adapt the way they work. This paper proposes an approach to TBSE based on Essence, a software engineering kernel distilled by the SEMAT (Software Engineering Method and Theory) initiative. Essence supports TBSE by providing a domain model that is useful for organizing and relating software engineering factors. Essence also helps make recommended practices precise and actionable to software teams. We provide a step-by-step application of our approach on an industrial software process improvement case study. The case study achieved 21% productivity gains and 58% decrease in defects. But more importantly than these results, it demonstrates the value of Essence in supporting TBSE.

[1]  M. E. Conway HOW DO COMMITTEES INVENT , 1967 .

[2]  Ivar Jacobson,et al.  Semat—Three Year Vision , 2012, Programming and Computer Software.

[3]  Meir M. Lehman Programs, life cycles, and laws of software evolution , 1980 .

[4]  James Madison,et al.  Agile Architecture Interactions , 2010, IEEE Software.

[5]  James D. Herbsleb,et al.  Splitting the organization and integrating the code: Conway's law revisited , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[6]  Tony Davila,et al.  An empirical study on the drivers of management control systems' design in new product development , 2000 .

[7]  Ivar Jacobson,et al.  The Essence of Software Engineering: Applying the SEMAT Kernel , 2013 .

[8]  R.N. Charette,et al.  Why software fails [software failure] , 2005, IEEE Spectrum.

[9]  Philippe Kruchten,et al.  Voyage in the Agile Memeplex , 2007, ACM Queue.

[10]  Nayan B. Ruparelia,et al.  Software development lifecycle models , 2010, SOEN.

[11]  Rory V. O'Connor,et al.  The situational factors that affect the software development process: Towards a comprehensive reference framework , 2012, Inf. Softw. Technol..

[12]  K. Charmaz,et al.  The sage handbook of grounded theory , 2007 .

[13]  Robert L. Glass,et al.  Matching methodology to problem domain , 2004, CACM.

[14]  E. Dijkstra On the Role of Scientific Thought , 1982 .

[15]  Ivar Jacobson,et al.  Aspect-oriented software development with use cases , 2005, Addison Wesley object technology series.

[16]  Jorge L. Díaz-Herrera,et al.  Improving software practice through education: Challenges and future trends , 2007, Future of Software Engineering (FOSE '07).

[17]  Barry W. Boehm,et al.  Developing Groupware for Requirements Negotiation: Lessons Learned , 2001, IEEE Softw..

[18]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[19]  Paul Ralph,et al.  Report on the first SEMAT workshop on general theory of software engineering (GTSE 2012) , 2013, SOEN.

[20]  Eric Verzuh,et al.  The Fast Forward MBA in Project Management , 1999 .

[21]  P. B. Petersen The New Economics for Industry, Government, Education , 1993 .

[22]  Tore Dybå,et al.  An empirical investigation of the key factors for success in software process improvement , 2005, IEEE Transactions on Software Engineering.

[23]  Pan Wei Ng,et al.  Feature Separation: An Approach for Product Line Evolution , 2014 .

[24]  Pearl Brereton,et al.  Systematic literature reviews in software engineering - A systematic literature review , 2009, Inf. Softw. Technol..

[25]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[26]  Harold W. Lawson A Journey Through the Systems Landscape , 2010, Systems.

[27]  Tore Dybå,et al.  Evidence-Based Software Engineering for Practitioners , 2005, IEEE Softw..

[28]  Claes Wohlin,et al.  Context in industrial software engineering research , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[29]  Barry W. Boehm,et al.  Cost models for future software life cycle processes: COCOMO 2.0 , 1995, Ann. Softw. Eng..

[30]  Alfred V. Aho,et al.  Do Crosscutting Concerns Cause Defects? , 2008, IEEE Transactions on Software Engineering.

[31]  Karl E. Wiegers,et al.  Software Requirements , 1999 .

[32]  Capers Jones,et al.  The Economics of Software Quality , 2011 .

[33]  Forrest Shull,et al.  What Do We Know about Test-Driven Development? , 2010, IEEE Software.

[34]  Nachiappan Nagappan,et al.  Predicting defects with program dependencies , 2009, ESEM 2009.

[35]  Shihong Huang,et al.  On the value of essence to software engineering research: A preliminary study , 2013, 2013 2nd SEMAT Workshop on a General Theory of Software Engineering (GTSE).

[36]  B. Tuckman,et al.  Stages of Small-Group Development Revisited , 1977 .

[37]  Leon J. Osterweil,et al.  Software processes are software too , 1987, ISPW.

[38]  Ivar Jacobson,et al.  Where's the Theory for Software Engineering? , 2012, IEEE Software.

[39]  Daniela Cruzes,et al.  What works for whom, where, when, and why? On the role of context in empirical software engineering , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[40]  Bashar Nuseibeh,et al.  Weaving Together Requirements and Architectures , 2001, Computer.

[41]  Ivar Jacobson,et al.  The essence of software engineering: the SEMAT kernel , 2012, CACM.

[42]  Cheng Zhang,et al.  What Do We Know about the Effectiveness of Software Design Patterns? , 2012, IEEE Transactions on Software Engineering.

[43]  Tsun Chow,et al.  A survey study of critical success factors in agile software projects , 2008, J. Syst. Softw..

[44]  Tore Dybå,et al.  What Do We Know about Agile Software Development? , 2009, IEEE Software.