Bringing the Agile Philosophy to Formal Specification Settings

Software development can be seen as a process of knowledge acquisition, in which human beings progressively learn about the intended behavior of the desired systems. Thereby, development is subject to considerable amounts of uncertainty and variability, that make it impossible to proceed in a purely incremental fashion — at some points, the need always arises to reconsider part of the accumulated knowledge. With this problem in mind, agile development methodologies have been gaining popularity in recent years as a means to enhance productivity, and there have been attempts to supplement them with formal techniques for better reliability. However, the existing approaches to agile formal methods have practically limited themselves to adopting recommended practices of agile development, with no particular contribution from the employed formalisms. Compared to that, this paper advocates the use of formalisms intended for evolutionary development, with a two-fold objective: first, to exploit the knowledge acquired up to any given stage as a means to cope with frequent and numerous changes; and, second, to introduce support for the creative development tasks through an interactive procedure that helps taking steps forward.

[1]  Marsha Chechik,et al.  A framework for multi-valued reasoning over inconsistent viewpoints , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[2]  Jorge García Duque,et al.  Incremental specification with SCTL/MUS-T: a case study , 2004, J. Syst. Softw..

[3]  Melvin Fitting,et al.  Kleene's Logic, Generalized , 1991, J. Log. Comput..

[4]  Jorge García Duque,et al.  An analysis-revision cycle to evolve requirements specifications by using the SCTL-MUS methodology , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

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

[6]  Jorge García Duque,et al.  SCTL-MUS: A Formal Methodology for Software Development of Distributed Systems. A Case Study , 2001, Formal Aspects of Computing.

[7]  Radha Jagadeesan,et al.  Model checking partial state spaces with 3-valued temporal logics , 2001 .

[8]  Odinaldo Rodrigues Structured Clusters: A Framework to Reason with Contradictory Interests , 2003, J. Log. Comput..

[9]  J. Whittle,et al.  A methodology for scenario-based requirements capture , 2004, ICSE 2004.

[10]  Giancarlo Succi,et al.  Extreme Programming Examined , 2001 .

[11]  Kim G. Larsen,et al.  A modal process logic , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[12]  Ian Sommerville,et al.  Viewpoints: principles, problems and a practical approach to requirements engineering , 1997, Ann. Softw. Eng..

[13]  Anthony Hunter,et al.  Logical Comparison of Inconsistent Perspectives using Scoring Functions , 2004, Knowledge and Information Systems.

[14]  Richard Banach,et al.  Retrenchment: extending the reach of refinement , 1999, 14th IEEE International Conference on Automated Software Engineering.

[15]  Josep Maria Font,et al.  Note on a six-valued extension of three-valued logic , 1993, J. Appl. Non Class. Logics.

[16]  Robert K. Brayton,et al.  Incremental Methods for Formal Verification and Logic Synthesis , 1996 .

[17]  Michael Breen Experience of using a lightweight formal specification method for a commercial embedded system product line , 2004, Requirements Engineering.

[18]  Sebastián Uchitel,et al.  A workbench for synthesising behaviour models from scenarios , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[19]  Arnon Avron,et al.  Reasoning with logical bilattices , 1996, J. Log. Lang. Inf..

[20]  Victor R. Basili,et al.  Iterative and incremental developments. a brief history , 2003, Computer.

[21]  Sandeep K. Shukla,et al.  XFM: An incremental methodology for developing formal models , 2005, TODE.

[22]  Richard Banach,et al.  Retrenching partial requirements into system definitions: a simple feature interaction case study , 2003, Requirements Engineering.

[23]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[24]  Pierre-Yves Schobbens,et al.  Lightweight Formal Methods for Scenario-Based Software Engineering , 2003, Scenarios: Models, Transformations and Tools.

[25]  Scott W. Ambler,et al.  Agile modeling: effective practices for extreme programming and the unified process , 2002 .

[26]  Ken Schwaber,et al.  Agile Project Management with Scrum , 1980 .

[27]  Pete McBreen,et al.  Questioning Extreme Programming , 2002 .

[28]  José Juan Pazos-Arias,et al.  Extending Timed Automaton and Real-Time Logic to Many-Valued Reasoning , 2002, FTRTFT.

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

[30]  Jorge García Duque,et al.  A Six-valued Logic to Reason about Uncertainty and Inconsistency in Requirements Specifications , 2006, J. Log. Comput..

[31]  Marsha Chechik,et al.  Multi-valued symbolic model-checking , 2003, TSEM.

[32]  Juan José Moreno-Navarro,et al.  Formal Extreme (and Extremely Formal) Programming , 2003, XP.

[33]  W. Holcombe,et al.  Applying XP Ideas Formally: The Story Card and Extreme X-Machines , 2003 .

[34]  Martin Glinz,et al.  Improving the Quality of Requirements with Scenarios , 2000 .

[35]  Rebeca P. Díaz-Redondo,et al.  ATLAS: a framework to provide multiuser and distributed t-learning services over MHP , 2006 .

[36]  Daniel Jackson,et al.  Lightweight Formal Methods , 2001, FME.

[37]  Jorge García Duque,et al.  Arifs Methodology Reusing Incomplete Models at the Requirements Specification Stage , 2005, Int. J. Softw. Eng. Knowl. Eng..

[38]  Shaoying Liu,et al.  Capturing complete and accurate requirements by refinement , 2002, Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002. Proceedings..

[39]  Jorge García Duque,et al.  Guidelines for the incremental identification of aspects in requirements specifications , 2006, Requirements Engineering.

[40]  Alistair G. Sutcliffe,et al.  Scenario advisor tool for requirements engineering , 2005, Requirements Engineering.

[41]  Donald Sannella Algebraic Specification and Program Development by Stepwise Refinement , 1999, LOPSTR.

[42]  Sebastián Uchitel,et al.  Behaviour model elaboration using partial labelled transition systems , 2003, ESEC/FSE-11.

[43]  Robyn R. Lutz,et al.  Engineering for Safety : A Roadmap , 2001 .

[44]  Bashar Nuseibeh,et al.  Combining abductive reasoning and inductive learning to evolve requirements specifications , 2003, IEE Proc. Softw..

[45]  Peter Gorm Larsen,et al.  A Lightweight Approach to Formal Methods , 1998, FM-Trends.

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

[47]  George Eleftherakis,et al.  An Agile Formal Development Methodology , 2003 .

[48]  Mary Shaw,et al.  Comparing Architectural Design Styles , 1995, IEEE Softw..

[49]  J. M. Dunn,et al.  Modern Uses of Multiple-Valued Logic , 1977 .

[50]  Jorge García Duque,et al.  Formal specification applied to multiuser distributed services: Experiences in collaborative t-learning , 2006, J. Syst. Softw..

[51]  J. Pazos,et al.  Eliciting Requirements and Scenarios using the SCTL›MUS Methodology. The Shuttle System Case Study , 2005 .

[52]  Erkki Mäkinen,et al.  MAS — an interactive synthesizer to support behavioral modelling in UML , 2001, ICSE.

[53]  Thomas A. Henzinger,et al.  Extreme Model Checking , 2003, Verification: Theory and Practice.

[54]  Hsinchun Chen,et al.  Building Large-Scale Digital Libraries - Guest Editors' Introduction , 1996, Computer.

[55]  Mikio Aoyama,et al.  Agile Software Process and its experience , 1998, Proceedings of the 20th International Conference on Software Engineering.