Mapping Requirements to B models

Formal methods in systems engineering are gaining traction, at least in some areas. While the formal specification process from abstraction via refinement to implementation is fairly well understood, the traceability between the initial user requirements and the formal model is still unsatisfying. There are some promising attempts (e.g. KAOS) that inspired some of the work done here. Our objective is to find a practical way to establish traceability between natural language requirements and B models. We select a number of existing methods and notations for bringing natural language requirements and B specifications together. Specifically, we use UML-B for building a data model; we use invariants (part of the B method) to model safety requirements; and we use temporal expressions (LTL) to model liveness requirements. In this paper, we show a pragmatic way that may lead to a method for making traceability between natural language requirements and B models easier to understand, maintain and validate.

[1]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

[2]  Vincenzo Gervasi,et al.  Processing natural language requirements , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[3]  Leslie Lamport,et al.  Proving the Correctness of Multiprocess Programs , 1977, IEEE Transactions on Software Engineering.

[4]  Jon Patrick,et al.  NaLER: a natural language method for interpreting entity‐relationship models , 2000 .

[5]  Cliff B. Jones,et al.  RODIN (Rigorous Open Development Environment for Complex Systems) , 2005 .

[6]  Steve Schneider The B-method - an introduction , 2001, The cornerstones of computing series.

[7]  Moshe Y. Vardi Branching vs. Linear Time: Final Showdown , 2001, TACAS.

[8]  Michael Butler,et al.  U2B - A tool for translating UML-B models into B , 2004 .

[9]  Philippe Massonet,et al.  GRAIL/KAOS: An Environment for Goal-Driven Requirements Engineering , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[10]  thierry lecomte,et al.  Formal Methods in Safety-Critical Railway Systems , 2007 .

[11]  Viktor Schuppan,et al.  Liveness Checking as Safety Checking , 2002, FMICS.

[12]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[13]  Álvaro Enrique Arenas,et al.  Towards Modelling Obligations in Event-B , 2008, ABZ.

[14]  Jean-Raymond Abrial,et al.  Formal Methods: Theory Becoming Practice , 2007, J. Univers. Comput. Sci..

[15]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[16]  Christophe Ponsard,et al.  From Requirements Models to Formal Specifications in B , 2006, ReMo2V.

[17]  Michael Leuschel,et al.  Seven at one stroke: LTL model checking for high-level specifications in B, Z, CSP, and more , 2009, International Journal on Software Tools for Technology Transfer.

[18]  Daniel M. Berry,et al.  AbstFinder, A Prototype Natural Language Text Abstraction Finder for Use in Requirements Elicitation , 1997, Automated Software Engineering.

[19]  Raoul Praful Jetley,et al.  A formal methods approach to medical device review , 2006, Computer.

[20]  Alan M. Davis,et al.  Software Requirements: Objects, Functions and States , 1993 .