A framework to formally verify conformance of a software process to a software method

The increasing complexity of development projects requires methodological frameworks to support development processes. A method comes with a set of best practices that are enforced and instantiated into processes to drive the realization steps of the development project. However, those best practices come in the form of text in guides and books, or they are in the developer's mind. Thus, during an instantiation of a method, there is no guaranty to enforce its best practices into the process, which could impact negatively the criteria: cost, time, and quality. To cope with this issue, we propose a library of best practices to be checked for four popular methods: Unified Process, Extreme Programming, Scrum and Kanban. On top of this library we have built up a template-based constraint language and implemented it to express additional constraints on processes that are modeled with UML Activity Diagrams (AD). To apply formal verification, we leverage on a formalization based on fUML semantics. The evaluation showed the feasibility of our approach which covers all the aspects of the process, i.e. time, resource, control-flow, and data-flow.

[1]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[2]  Walter F. Tichy,et al.  Case study: extreme programming in a university environment , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[3]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[4]  Guido Governatori,et al.  On compliance checking for clausal constraints in annotated process models , 2012, Inf. Syst. Frontiers.

[5]  Francisca Santana Robles,et al.  Coloured Petri Nets Basic Concepts, Analysis Methods and Practical Use , 2015 .

[6]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[7]  Mathias Weske,et al.  Visually specifying compliance rules and explaining their violations for business processes , 2011, J. Vis. Lang. Comput..

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

[9]  Tommi Mikkonen,et al.  Scrum Anti-Patterns -- An Empirical Study , 2013, 2013 20th Asia-Pacific Software Engineering Conference (APSEC).

[10]  Volker Gruhn,et al.  Computer-Aided Verification of Software Process Model Properties , 1993, CAiSE.

[11]  Marie-Pierre Gervais,et al.  Formalization of fUML: An Application to Process Verification , 2014, CAiSE.

[12]  Wil M. P. van der Aalst,et al.  Workflow Patterns , 2003, Distributed and Parallel Databases.

[13]  Barry W. Boehm,et al.  Get Ready for Agile Methods, with Care , 2002, Computer.

[14]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[15]  Steve A. Schneider,et al.  Formal Verification of Tokeneer Behaviours Modelled in fUML Using CSP , 2010, ICFEM.

[16]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[17]  Jeff Sutherland,et al.  Distributed Scrum: Agile Project Management with Outsourced Development Teams , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[18]  Gregor Engels,et al.  Verification of Business Process Quality Constraints Based on Visual Process Patterns , 2007, First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE '07).

[19]  Rik Eshuis,et al.  Symbolic model checking of UML activity diagrams , 2006, TSEM.

[20]  David A. Basin,et al.  SecureUML: A UML-Based Modeling Language for Model-Driven Security , 2002, UML.

[21]  Radmila Juric,et al.  Extreme programming and its development practices , 2000, ITI 2000. Proceedings of the 22nd International Conference on Information Technology Interfaces (Cat. No.00EX411).

[22]  Moe Thandar Wynn,et al.  Soundness of workflow nets: classification, decidability, and analysis , 2011, Formal Aspects of Computing.

[23]  Mario Piattini,et al.  Scrum-based Methodology for Distributed Software Development , 2011, 2011 IEEE Sixth International Conference on Global Software Engineering.

[24]  Amel Mammar,et al.  A formal semantics of timed activity diagrams and its PROMELA translation , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[25]  Hye-Young Paik,et al.  Using Scrum in Global Software Development: A Systematic Literature Review , 2009, 2009 Fourth IEEE International Conference on Global Software Engineering.

[26]  Pekka Abrahamsson,et al.  Agile methods in European embedded software development organisations: a survey on the actual use and usefulness of Extreme Programming and Scrum , 2008, IET Softw..

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

[28]  Maria E. Orlowska,et al.  Analyzing Process Models Using Graph Reduction Techniques , 2000, Inf. Syst..

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

[30]  Henrik Kniberg,et al.  Kanban and Scrum - Making the Most of Both , 2010 .

[31]  Marie-Pierre Gervais,et al.  UML4SPM: a UML2.0-Based metamodel for software process modelling , 2005, MoDELS'05.