Project-specific software engineering methods: composition, enactment, and quality assurance

Software engineering methods describe structured, repeatable best practice approaches for the engineering of software systems. The project team of a software project enacts a method and applies the described activities. As methods are superior to ad-hoc build and fix approaches, they benefit the creation of high-quality software. However, for the efficient use of methods, first, they need to be based on state of the practice method content, second, they need to be tailored to the project context, and third, they need to be enacted as prescribed. Otherwise, outdated, unsuitable, or wrongly enacted methods can impede the creation of the software system. While other approaches focus on supporting some of these aspects, our approach is a holistic tool-supported approach that covers all of them. It allows creating formally defined composition-based method models. First, method models are composed from formal building blocks that represent method content and are stored in an extensible, updatable repository. Second, they are composed specifically for a project and tailored to its characteristics. Here the novel notion of method patterns is used to guide the composition process. Third, their correct enactment is supported with a process engine. Our proof-of-concept implementation demonstrates the feasibility of the approach. It provides tooling to define building blocks, to compose them to method models consistently, and to execute them with standard process engines.

[1]  Gregor Engels,et al.  Breathing Life into Situational Software Engineering Methods , 2014, PROFES.

[2]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[3]  DeWitt Latimer,et al.  The Method Framework for Engineering System Architectures , 2008 .

[4]  Vorgehensmodelle 2013, Vorgehensmodelle - Anspruch und Wirklichkeit, 20. Tagung der Fachgruppe Vorgehensmodelle im Fachgebiet Wirtschaftsinformatik (WI-VM) der Gesellschaft für Informatik e.V., Lörrach, Deutschland, 9.-10. Oktober 2013 , 2013, Vorgehensmodelle.

[5]  Thomas Erl,et al.  SOA Principles of Service Design , 2007 .

[6]  Leon J. Osterweil,et al.  Using Little-JIL to coordinate agents in software engineering , 2000 .

[7]  Corine Cauvet,et al.  Method Engineering: A Service-Oriented Approach , 2010, Intentional Perspectives on Information Systems Engineering.

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

[9]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[10]  Bill Curtis,et al.  Process modeling , 1992, CACM.

[11]  Sjaak Brinkkemper,et al.  Complexity Metrics for Systems Development Methods and Techniques , 1996, Inf. Syst..

[12]  Sjaak Brinkkemper,et al.  Design and implementation of a method base management system for a situational CASE environment , 1995, Proceedings 1995 Asia Pacific Software Engineering Conference.

[13]  Reidar Conradi,et al.  Process Modelling Languages , 1999, Software Process: Principles, Methodology, Technology.

[14]  Gordon S. Blair,et al.  Research Challenges for Business Process Models at Run-Time , 2011, Models@run.time@Dagstuhl.

[15]  Göran Goldkuhl,et al.  Method intergration: the need for a learning perspective , 1998, IEE Proc. Softw..

[16]  Marco Kuhrmann,et al.  Systematic software process development: where do we stand today? , 2013, ICSSP 2013.

[18]  Masud Fazal-Baqaie,et al.  Towards a Framework for the Modular Construction of Situation-Specific Software Transformation Methods , 2015, Softwaretechnik-Trends.

[19]  Daniela Cruzes,et al.  Coordination of Software Development Teams across Organizational Boundary -- An Exploratory Study , 2013, 2013 IEEE 8th International Conference on Global Software Engineering.

[20]  Matti Rossi,et al.  Method engineering: current research directions and implications for future research , 1996 .

[21]  Masud Fazal-Baqaie,et al.  Automated quality analysis of software engineering method models , 2016, 2016 4th International Conference on Model-Driven Engineering and Software Development (MODELSWARD).

[22]  Kerstin Mueller,et al.  Adopting The Rational Unified Process Success With The Rup , 2016 .

[23]  Peng Xu,et al.  Using Process Tailoring to Manage Software Development Challenges , 2008, IT Professional.

[24]  Gregor Engels,et al.  Software Processes Management by Method Engineering with MESP , 2016 .

[25]  Stefan Wagner,et al.  Naming the pain in requirements engineering: design of a global family of surveys and first results from Germany , 2013, EASE '13.

[26]  Carlo Ghezzi,et al.  Fundamentals of Software Engineering , 2011, Lecture Notes in Computer Science.

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

[28]  Barry W. Boehm,et al.  Observations on balancing discipline and agility , 2003, Proceedings of the Agile Development Conference, 2003. ADC 2003.

[29]  Colette Rolland,et al.  A proposal for context-specific method engineering , 1996 .

[30]  Arthur H. M. ter Hofstede,et al.  On the Feasibility of Situational Method Engineering , 1997, Inf. Syst..

[31]  Naveen Prakash,et al.  Engineering Methods from Method Requirements Specifications , 2001, Requirements Engineering.

[32]  Michael Philippsen,et al.  An Integrated Tool Chain for Software Process Modeling and Execution , 2012 .

[33]  Brian Henderson-Sellers,et al.  Situational Method Engineering: State-of-the-Art Review , 2010, J. Univers. Comput. Sci..

[34]  Masud Fazal-Baqaie,et al.  Tickets Without Fine - Artifact-Based Synchronization of Globally Distributed Software Development in Practice , 2015, PROFES.

[35]  Sjaak Brinkkemper,et al.  Method engineering: engineering of information systems development methods and tools , 1996, Inf. Softw. Technol..

[36]  Fausto Giunchiglia,et al.  Tropos: An Agent-Oriented Software Development Methodology , 2004, Autonomous Agents and Multi-Agent Systems.

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

[38]  Brian Henderson-Sellers,et al.  Method Construction by Goal Analysis , 2007, ISD.

[39]  Inge van de Weerd,et al.  A situational implementation method for web-based content management system-applications: method engineering and validation in practice , 2006, Softw. Process. Improv. Pract..

[40]  Pär J. Ågerfalk,et al.  MC Sandbox: Devising a tool for method-user-centered method configuration , 2012, Inf. Softw. Technol..

[41]  Don-Lin Yang,et al.  Applying UML and software simulation for process definition, verification, and validation , 2008, Inf. Softw. Technol..

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

[43]  Masud Fazal-Baqaie,et al.  A Method to Systematically Improve the Effectiveness and Efficiency of the Semi-Automatic Migration of Legacy Systems , 2014, Softwaretechnik-Trends.

[44]  Benoît Combemale,et al.  Definition of an Executable SPEM 2.0 , 2007, 14th Asia-Pacific Software Engineering Conference (APSEC'07).

[45]  Reidar Conradi,et al.  Postmortem Reviews: Purpose and Approaches in Software Engineering , 2006 .

[46]  Claes Wohlin,et al.  Engineering and Managing Software Requirements , 2005 .

[47]  Sjaak Brinkkemper,et al.  Situational Method Engineering : Fundamentals and Experiences , 2011 .

[48]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[49]  Brian Henderson-Sellers,et al.  A work product pool approach to methodology specification and enactment , 2008, J. Syst. Softw..

[50]  James O. Coplien,et al.  A generative development-process pattern language , 1995 .

[51]  Sjaak Brinkkemper,et al.  Situational method engineering for informational system project approaches , 1994, Methods and Associated Tools for the Information Systems Life Cycle.

[52]  Daniel M. Germán,et al.  Continuously mining distributed version control systems: an empirical study of how Linux uses Git , 2014, Empirical Software Engineering.

[53]  Alistair Cockburn,et al.  Surviving object-oriented projects: a manager's guide , 1998 .

[54]  Colette Rolland Method Engineering: Towards Methods as Services , 2008, ICSP.

[55]  Colette Rolland,et al.  MENTOR: A Computer Aided Requirements Engineering Environment , 1996, CAiSE.

[56]  Scott W. Ambler,et al.  Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise , 2012 .

[57]  Marco Kuhrmann,et al.  The Process Enactment Tool Framework - Transformation of software process models to prepare enactment , 2014, Sci. Comput. Program..

[58]  Michel R. V. Chaudron,et al.  A Comparison of Industrial Process Descriptions for Global Custom Software Development , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

[59]  Kalle Lyytinen,et al.  MetaEdit+: A Fully Configurable Multi-User and Multi-Tool CASE and CAME Environment , 1996, CAiSE.

[60]  Brian Henderson-Sellers,et al.  Creating a Dual-Agility Method: The Value of Method Engineering , 2005, J. Database Manag..

[61]  Bertrand Meyer,et al.  Agile! , 2014, Springer International Publishing.

[62]  Isabelle Mirbel,et al.  Situational method engineering: combining assembly-based and roadmap-driven approaches , 2005, Requirements Engineering.

[63]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[64]  A. F. Harmsen,et al.  Situational Method Engineering , 1997 .

[65]  Ita Richardson,et al.  Uncovering the reality within virtual software teams , 2006, GSD '06.

[66]  M. L. Jaccheri Evaluating the requirements for software process modeling languages and systems , 1999 .

[67]  Pär J. Ågerfalk,et al.  Towards Structured Flexibility in Information Systems Development: Devising a Method for Method Configuration , 2009, J. Database Manag..

[68]  Mario Piattini,et al.  A systematic review of software process tailoring , 2007, SOEN.

[69]  Alexander Volland Projektmanagement und Vorgehensmodelle 2015: Hybride Projektstrukturen erfolgreich umsetzen, Gemeinsame Tagung der Fachgruppen Projektmanagement (WI-PM) und Vorgehensmodelle (WI-VM) im Fachgebiet Wirtschaftsinformatik der Gesellschaft für Informatik e.V., 22. und 23. Oktober 2015, in Elmshorn, Deuts , 2015, Vorgehensmodelle.

[70]  Vicente Pelechano,et al.  Turning Method Engineering Support into Reality , 2011, ME.

[71]  Marco Kuhrmann,et al.  Systematic Software Development: A State of the Practice Report from Germany , 2015, 2015 IEEE 10th International Conference on Global Software Engineering.

[72]  Jürgen Münch,et al.  Software Process Definition and Management , 2012, The Fraunhofer IESE Series on Software and Systems Engineering.

[73]  Sjaak Brinkkemper,et al.  A Method Engineering Language for the Description of Systems Development Methods , 2001, CAiSE.

[74]  James Robertson,et al.  Mastering the Requirements Process: Getting Requirements Right , 2012 .

[75]  Colette Rolland,et al.  An Assembly Process Model for Method Engineering , 2001, CAiSE.

[76]  P. Krutchen,et al.  The Rational Unified Process: An Introduction , 2000 .

[77]  Masud Fazal-Baqaie,et al.  A Method Base for the Situation-Specific Development of Model-Driven Transformation Methods , 2016, Softwaretechnik-Trends.

[78]  Jean-Marc Jézéquel,et al.  A Comparison of Six UML-Based Languages for Software Process Modeling , 2010, IEEE Transactions on Software Engineering.

[79]  Gregor Engels,et al.  Assembly-Based Method Engineering with Method Patterns , 2013, Software Engineering.

[80]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[81]  Brian Henderson-Sellers,et al.  Method Engineering: Theory and Practice , 2006, ISTA.

[82]  Colette Rolland,et al.  Using generic method chunks to generate process models fragments , 1996, Proceedings of the Second International Conference on Requirements Engineering.

[83]  Laura Hoch,et al.  Organizational Patterns Of Agile Software Development , 2016 .

[84]  Gregor Engels,et al.  Concept-Based Engineering of Situation-Specific Migration Methods , 2016, ICSR.

[85]  Véronique Plihon,et al.  MENTOR : An Environment Supporting the Construction of Methods , 1996, Proceedings 1996 Asia-Pacific Software Engineering Conference.

[86]  Gregor Engels,et al.  A Meta-Method for Defining Software Engineering Methods , 2010, Graph Transformations and Model-Driven Engineering.

[87]  Raman Ramsin,et al.  Process Patterns for Agile Methodologies , 2007, Situational Method Engineering.

[88]  Charles W. Butler,et al.  Choice of Software Development Methodologies: Do Organizational, Project, and Team Characteristics Matter? , 2016, IEEE Software.

[89]  Inge van de Weerd,et al.  The Influence of Situational Factors in Software Product Management: An Empirical Study , 2008, 2008 Second International Workshop on Software Product Management.

[90]  Carine Souveyet,et al.  Patterns for Extending an OO Model with Temporal Features , 1998 .

[91]  Mahdi Fahmideh,et al.  A Procedure for Extracting Software Development Process Patterns , 2010, 2010 Fourth UKSim European Symposium on Computer Modeling and Simulation.

[92]  Liming Zhu,et al.  Situational Method Quality , 2007, Situational Method Engineering.

[93]  Bernard C. Williams Business Information Systems: Analysis, Design and Practice , 1991 .

[94]  Masud Fazal-Baqaie,et al.  Successfully Initiating a Global Software Project , 2015 .

[95]  Ingo Scholtes,et al.  From Aristotle to Ringelmann: a large-scale analysis of team productivity and coordination in Open Source Software projects , 2015, Empirical Software Engineering.

[96]  Brian Henderson-Sellers,et al.  The open process framework : an introduction , 2002 .

[97]  D. M. Hutton,et al.  Process Patterns: Building Large‐Scale Systems Using Object Technology , 1999 .

[98]  Wil vanderAalst,et al.  Workflow Management: Models, Methods, and Systems , 2004 .

[99]  Brian Henderson-Sellers,et al.  rowARDS AUTOMATED SUPPORT FOR METHOD ENGINEERING WITH THE OPEN APPROACH , 2003 .

[100]  Gregor Engels,et al.  Quasar Enterprise - Anwendungslandschaften serviceorientiert gestalten , 2008, Software Engineering.

[101]  Toacy Cavalcante de Oliveira,et al.  Improving the Consistency of SPEM-based Software Processes , 2018, ICEIS.

[102]  Masud Fazal-Baqaie,et al.  Agile Entwicklung mit On- und Offshore-Partnern - Methodenverbesserung in der Praxis , 2014, PVM.

[103]  Fredrik Karlsson,et al.  Combining method engineering with activity theory: theoretical grounding of the method component concept , 2006, Eur. J. Inf. Syst..

[104]  Alistair Cockburn,et al.  Crystal Clear: A Human-Powered Methodology for Small Teams , 2004 .

[105]  Michael Spijkerman Situationsgerechte Methodenweiterentwicklung auf Basis von MetaMe am Beispiel der Server-System-Entwicklung , 2015 .

[106]  Naveen Prakash,et al.  Building CASE Tools For Methods Represented As Abstract Data Types , 1996, OOIS.

[107]  Volker Gruhn Process-Centered Software Engineering Environments, A Brief History and Future Challenges , 2002, Ann. Softw. Eng..

[108]  Colette Rolland,et al.  Modelling and engineering the requirements engineering process: An overview of the NATURE approach , 1997, Requirements Engineering.

[109]  Han van Loon Process Assessment and Iso/Iec 15504: A Reference Book , 2004 .

[110]  Pär J. Ågerfalk,et al.  Method-user-centred method configuration , 2005 .

[111]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[112]  James D. Arthur,et al.  Determining the Applicability of Agile Practices to Mission and Life-Critical Systems , 2007, 31st IEEE Software Engineering Workshop (SEW 2007).

[113]  Jeremy Rose,et al.  Prescription, description, reflection: the shape of the software process improvement field , 2004, Int. J. Inf. Manag..