Seamless Object-Oriented Requirements

Design by Contract enables seamless software development by unifying software requirements with their implementations. In its pure form, however, Design by Contract leaves some problems with contracts' expressiveness, verifiability, and reusability open. These problems significantly reduce practical applicability of seamless development. The present article introduces seamless object-oriented requirements – a novel approach to seamless development that builds upon Design by Contract and now-available advanced program proving tools. The article explains and illustrates the new approach, concluding with a quantitative evaluation of the extent to which the approach fixes the problems of traditional contracts.

[1]  Bertrand Meyer,et al.  Complete Contracts through Specification Drivers , 2016, 2016 10th International Symposium on Theoretical Aspects of Software Engineering (TASE).

[2]  Bertrand Meyer,et al.  Programs That Test Themselves , 2009, Computer.

[3]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[4]  Nadia Polikarpova,et al.  A Fully Verified Container Library , 2015, FM.

[5]  Bertrand Meyer,et al.  Flexible Invariants through Semantic Collaboration , 2013, FM.

[6]  Nadia Polikarpova,et al.  AutoProof: auto-active functional verification of object-oriented programs , 2015, International Journal on Software Tools for Technology Transfer.

[7]  B.H.C. Cheng,et al.  Real-time specification patterns , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[8]  Alexandr Naumchev Object-oriented requirements: reusable, understandable, verifiable , 2019, TOOLS.

[9]  Florian Galinier,et al.  AutoReq: Expressing and verifying requirements for control systems , 2019, J. Comput. Lang..

[10]  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).

[11]  James J. Horning,et al.  The algebraic specification of abstract data types , 1978, Acta Informatica.

[12]  Paolo Arcaini,et al.  Rigorous development process of a safety-critical system: from ASM models to Java code , 2017, International Journal on Software Tools for Technology Transfer.

[13]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[14]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[15]  Frédéric Boniol,et al.  The Landing Gear System Case Study , 2014, ABZ.

[16]  Kai Petersen,et al.  A systematic literature review of software requirements reuse approaches , 2018, Inf. Softw. Technol..

[17]  Axel van Lamsweerde,et al.  Requirements Engineering: From System Goals to UML Models to Software Specifications , 2009 .