An Algorithm for Forward Reduction in Sequence-Based Software Specification

Sequence-based software specification is a rigorous method for deriving a formal system model based on informal requirements, through a systematic process called sequence enumeration. Under this process, stimulus (input) sequences are considered in a breadth-first manner, with the expected system response to each sequence given. Not every sequence needs to be further extended by the enumeration rules. The completed specification encodes a Mealy machine and forms a basis for other activities including code development and testing. This paper presents a forward reduction algorithm for sequence-based specification. The need for such an algorithm has been identified by field applications. We used the state machine as an intermediate tool to comprehend and analyze all change impacts resulted from a forward reduction, and used an axiom system for its development. We illustrate the algorithm with a symbolic example, and report a larger case study from published literature in which the algorithm is applied. The algorithm will prove useful and effective in deriving a system-level specification as well as in merging and combining partial work products towards a formal system model in field applications.

[1]  Helmut Jürgensen,et al.  Representation of semiautomata by canonical words and equivalences , 2005, Int. J. Found. Comput. Sci..

[2]  Janusz A. Brzozowski,et al.  Derivatives of Regular Expressions , 1964, JACM.

[3]  Stacy J. Prowell,et al.  Sequence‐based software specification of deterministic systems , 1998 .

[4]  Stacy J. Prowell,et al.  The impact of requirements changes on specifications and state machines , 2009, Softw. Pract. Exp..

[5]  Stacy J. Prowell,et al.  An axiom system for sequence-based specification , 2010, Theor. Comput. Sci..

[6]  Harlan D. Mills,et al.  Stepwise refinement and verification in box-structured systems , 1988, Computer.

[7]  David Lorge Parnas,et al.  Using assertions about traces to write abstract specifications for software modules , 1978, ECI.

[8]  Philippa J. Hopcroft,et al.  Combining the Box Structure Development Method and CSP for Software Development , 2005, Electron. Notes Theor. Comput. Sci..

[9]  Harlan D. Mills,et al.  Trace: Tennessee Research and CreativeExchange , 2022 .

[10]  S. Griffis EDITOR , 1997, Journal of Navigation.

[11]  Ryszard Janicki,et al.  Foundations of the Trace Assertion Method of Module Interface Specification , 2001, IEEE Trans. Software Eng..

[12]  Stacy J. Prowell,et al.  SEQUENCE-BASED SPECIFICATION OF CRITICAL SOFTWARE SYSTEMS , 2004 .

[13]  Harlan D. Mills,et al.  Structured programming - theory and practice , 1979, The systems programming series.

[14]  Constance L. Heitmeyer,et al.  Software Cost Reduction , 2002 .

[15]  Philippa J. Hopcroft,et al.  Academia and industry meet: some experiences of formal methods in practice , 2003, Tenth Asia-Pacific Software Engineering Conference, 2003..

[16]  JanickiRyszard,et al.  Foundations of the Trace Assertion Method of Module Interface Specification , 2001 .

[17]  Stacy J. Prowell,et al.  Foundations of Sequence-Based Software Specification , 2003, IEEE Trans. Software Eng..

[18]  R. Eschbach,et al.  From Requirements to Statistical Testing of Embedded Systems , 2007, Fourth International Workshop on Software Engineering for Automotive Systems (SEAS '07).

[19]  이상준,et al.  [서평]Cleanroom Software Engineering-Technology and Process , 2000 .

[20]  Janusz A. Brzozowski Representation of a class of nondeterministic semiautomata by canonical words , 2006, Theor. Comput. Sci..