Automated formal specification generation and refinement from requirement documents

The automatic generation of formal specifications from requirements suppresses the complexity of formal models manual creation and reveals the immediate benefits of its usage, such as the possibility to carry out refinements, and property verification, which contributes to project cost reduction and quality improvement. This paper proposes a Controlled Natural Language (CNL), a subset of English, used to write use case specifications according to a template. From these use cases a complete strategy and tools enable the generation of process algebraic formal models in the CSP notation. We define templates that represent requirements at different levels of abstraction, capturing different views of the system behavior. Moreover, a refinement notion is defined to connect the generated CSP models through an event mapping relation between abstract and concrete models. This notion is further applied to detail use case specifications and to automate its execution.

[1]  Rajeev Alur,et al.  Model Checking of Message Sequence Charts , 1999, CONCUR.

[2]  Evan Lenz,et al.  Office 2003 XML - integrating office with the rest of the world , 2004 .

[3]  Failures-divergence Refinement Fdr2 User Manual , 2012 .

[4]  Vladimir Mencl DERIVING BEHAVIOR SPECIFICATIONS FROM TEXTUAL USE CASES , 2004 .

[5]  Ramaswamy Chandramouli,et al.  Cost Effective Uses of Formal Methods in Verification and Validation , 2002 .

[6]  Roy Sterritt,et al.  Towards Formal Specification and Generation of Autonomic Policies , 2005, EUC Workshops.

[7]  Jeffrey Parsons,et al.  How UML is used , 2006, CACM.

[8]  Raymond J. A. Buhr,et al.  Use Case Maps as Architectural Entities for Complex Systems , 1998, IEEE Trans. Software Eng..

[9]  Siddhartha R. Dalal,et al.  Model-based testing in practice , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[10]  Edward L. Jones,et al.  Specification-driven automated testing of GUI-based Java programs , 2004, ACM-SE 42.

[11]  Norbert E. Fuchs,et al.  Controlled natural language can replace first-order logic , 1999, 14th IEEE International Conference on Automated Software Engineering.

[12]  Norbert E. Fuchs,et al.  Specifying Logic Programs in Controlled Natural Language , 1995, ArXiv.

[13]  Peter H. Welch,et al.  CSP Networking for Java (JCSP.net) , 2002, International Conference on Computational Science.

[14]  Ralf Schwitter,et al.  ECOLE: a look-ahead editor of controlled language , 2003, EAMT.

[15]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[16]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[17]  Beum-Seuk Lee,et al.  Automated conversion from requirements documentation to an object-oriented formal specification language , 2002, SAC '02.

[18]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[19]  Francis Bordeleau,et al.  A Systematic and Traceable Progression from Scenario Models to Communicating Hierarchical State Machines , 1999 .

[20]  Bran Selic Tutorial: an overview of UML 2.0 , 2004, Proceedings. 26th International Conference on Software Engineering.

[21]  P. S. Thiagarajan,et al.  Message Sequence Charts , 2003, UML for Real.

[22]  Mark Grand Java Language Reference , 1997 .

[23]  Bran Selic Tutorial: an overview of UML 2 , 2006, ICSE '06.

[24]  Augusto Sampaio,et al.  Formal Specification Generation from Requirement Documents , 2006, SBMF.

[25]  A. W. Roscoe Modelling and verifying key-exchange protocols using CSP and FDR , 1995, Proceedings The Eighth IEEE Computer Security Foundations Workshop.

[26]  Craig Skibo,et al.  Inside Microsoft Visual Studio .Net , 2003 .

[27]  Alistair Cockburn,et al.  Writing Effective Use Cases , 2000 .

[28]  A Holt Formal verification with natural language specifications: guidelines, experiments and lessons so far , 1999 .

[29]  Colette Rolland,et al.  Guiding the Construction of Textual Use Case Specifications , 1998, Data Knowl. Eng..

[30]  Ana Cavalcanti,et al.  Animating CSPm using Action Semantics , 2001, FME 2001.

[31]  C. Fillmore FRAME SEMANTICS AND THE NATURE OF LANGUAGE * , 1976 .

[32]  Flávia de Almeida Barros,et al.  NLForSpec: Translating Natural Language Descriptions into Formal Test Case Specifications , 2007, SEKE.

[33]  Ramaswamy Chandramouli,et al.  Cost Effective Use of Formal Methods in Verification and Validation , 2002 .

[34]  Augusto Sampaio,et al.  Viewing CSP Specifications with UML-RT Diagrams , 2008, Electron. Notes Theor. Comput. Sci..

[35]  Harsha Rao,et al.  Writing Effective Use Cases and Introducing Collaboration Cases , 1998, J. Object Oriented Program..

[36]  Norbert E. Fuchs,et al.  Attempto Controlled English - Not Just Another Logic Specification Language , 1998, LOPSTR.

[37]  Augusto Sampaio,et al.  A strategy for the formal composition of frameworks , 2005, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05).

[38]  Didar Zowghi,et al.  Reasoning about inconsistencies in natural language requirements , 2005, TSEM.

[39]  Peter H. Welch,et al.  Process Oriented Design for Java: Concurrency for All , 2002, International Conference on Computational Science.

[40]  Maritta Heisel,et al.  A Method for Requirements Elicitation and Formal Specification , 1999, ER.

[41]  Ana Cavalcanti,et al.  Automatic Translation from Circus to Java , 2006, FM.