A Framework to Formally Verify Conformance of a Software Process to a Software Method
Résumé
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.