Skip to main content
Log in

Applying string-rewriting to sequence-based specification

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

Sequence-based specification is a constructive method designed to convert ordinary functional requirements (that are often imprecisely and informally composed) into precise specifications. The method prompts a human requirements analyst to make the many decisions necessary to resolve the ambiguities, omissions, inconsistencies, and errors inherent in the original requirements document, and construct a complete, consistent, and traceably correct specification. We find that string-rewriting theory can be applied to make a number of these decisions automatically. In this paper we develop a method of applying string-rewriting to sequence enumeration. We give prescriptions on how prefix rewrite rules and general string rewrite rules can be declared, and used later in the process to automatically make new equivalences thereby prompting the human for fewer decisions. Based on the results we present an enhanced enumeration process, in which one develops working enumerations and working reduction systems concurrently, applying string-rewriting to deduce new reductions as needed, until a complete enumeration is obtained. We present data from four published applications that shows the feasibility and applicability of applying string-rewriting. In addition to effort reduction we have observed the benefit of eliminating rework achieved by consistent decisions, as well as an additional opportunity string-rewriting provides for validation of specification decisions to requirements.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

References

  1. Bartussek W, Parnas DL (1978) Using assertions about traces to write abstract specifications for software modules. In: Proceedings of the 2nd conference of the European cooperation on informatics, Venice, Italy, pp 211–236

    Google Scholar 

  2. Bauer T, Beletski T, Boehr F, Eschbach R, Landmann D, Poore J (2007) From requirements to statistical testing of embedded systems. In: Proceedings of the 4th international workshop on software engineering for automotive systems, Minneapolis, MN, pp 3–9

    Chapter  Google Scholar 

  3. Book RV, Otto F (1993) String-rewriting systems. Springer, Berlin

    Book  MATH  Google Scholar 

  4. Broadfoot GH, Broadfoot PJ (2003) Academia and industry meet: some experiences of formal methods in practice. In: Proceedings of the 10th Asia-Pacific software engineering conference, Chiang Mai, Thailand, pp 49–59

    Google Scholar 

  5. Brzozowski J (1964) Derivatives of regular expressions. J ACM 11(4):481–494

    Article  MathSciNet  MATH  Google Scholar 

  6. Brzozowski J, Jürgensen H (2004) Theory of deterministic trace-assertion specifications. Technical report CS-2004-30, University of Waterloo

  7. Brzozowski J, Jürgensen H (2005) Representation of semiautomata by canonical words and equivalences. Int J Found Comput Sci 16(5):831–850

    Article  MATH  Google Scholar 

  8. Brzozowski J, Jürgensen H (2007) Representation of semiautomata by canonical words and equivalences, part II: specification of software modules. Int J Found Comput Sci 18(5):1065–1087

    Article  MATH  Google Scholar 

  9. Carter JM (2009) Sequence-based specification of embedded systems, Dissertation, University of Tennessee, Knoxville

  10. Carter JM, Lin L, Poore JH (2008) Automated functional testing of Simulink control models. In: Proceedings of the 1st workshop on model-based testing in practice, Berlin, Germany, pp 41–50

    Google Scholar 

  11. Eschbach R, Lin L, Poore JH (2012) Applying string-rewriting to sequence-based specification, Technical report UT-CS-12-692, University of Tennessee, Knoxville. http://web.eecs.utk.edu/~library/TechReports/2012/ut-cs-12-692.pdf

  12. Hoffman D (1985) The trace specification of communications protocols. IEEE Trans Comput C34(12):1102–1113

    Article  Google Scholar 

  13. Hoffman D, Snodgrass RT (1988) Trace specifications: methodology and models. IEEE Trans Softw Eng 14(9):1243–1252

    Article  Google Scholar 

  14. Hopcroft PJ, Broadfoot GH (2005) Combining the box structure development method and CSP for software development. Electron Notes Theor Comput Sci 128(6):127–144

    Article  Google Scholar 

  15. Janicki R, Sekerinski E (2001) Foundations of the trace assertion method of module interface specification. IEEE Trans Softw Eng 27(7):577–598

    Article  Google Scholar 

  16. Joseph M (ed) (1996) Real-time systems: specification, verification and analysis. Prentice Hall International, London

    MATH  Google Scholar 

  17. Lin L, Prowell SJ, Poore JH (2009) The impact of requirements changes on specifications and state machines. Softw Pract Exp 39(6):573–610

    Article  Google Scholar 

  18. Lin L, Prowell SJ, Poore JH (2010) An axiom system for sequence-based specification. Theor Comput Sci 411(2):360–376

    Article  MathSciNet  MATH  Google Scholar 

  19. Linger RC, Mills HD, Witt BI (1979) Structured programming: theory and practice. Addison-Wesley, Boston

    MATH  Google Scholar 

  20. McLean J (1984) A formal method for the abstract specification of software. J ACM 31(3):600–627

    Article  MATH  Google Scholar 

  21. Mills HD (1975) The new math of computer programming. Commun ACM 18(1):43–48

    Article  MATH  Google Scholar 

  22. Mills HD (1988) Stepwise refinement and verification in box-structured systems. IEEE Comput 21(6):23–36

    Article  Google Scholar 

  23. MPCS (2012) Mine pump controller software enumeration. http://sqrl.eecs.utk.edu/btw/files/MPCS_sr.html. Accessed 4 January 2013

  24. Parnas DL, Wang Y (1989) The trace assertion method of module interface specification, Technical report 89-261, Queens University

  25. Proto_Seq (2012) ESP project. http://sqrl.eecs.utk.edu/esp/index.html. Accessed 4 January 2013

  26. Prowell SJ, Poore JH (1998) Sequence-based software specification of deterministic systems. Softw Pract Exp 28(3):329–344

    Article  Google Scholar 

  27. Prowell SJ, Poore JH (2003) Foundations of sequence-based software specification. IEEE Trans Softw Eng 29(5):417–429

    Article  Google Scholar 

  28. Prowell SJ, Swain WT (2004) Sequence-based specification of critical software systems. In: Proceedings of the 4th American nuclear society international topical meeting on nuclear plant instrumentation, controls and human-machine interface technology, Columbus, OH

    Google Scholar 

  29. Prowell SJ, Trammell CJ, Linger RC, Poore JH (1999) Cleanroom software engineering: technology and process. Addison-Wesley, Reading

    Google Scholar 

  30. SOS (2012) Satellite operations software enumeration. http://sqrl.eecs.utk.edu/btw/files/SOS_sr.html. Accessed 4 January 2013

  31. Swain WT (2011) Application of hybrid sequence-based specification to a data acquisition processor, Technical report UT-CS-11-669, University of Tennessee, Knoxville. http://sqrl.eecs.utk.edu/btw/files/WIM-HSBS-TR.pdf

  32. Wang Y, Parnas DL (1993) Simulating the behavior of software modules by trace rewriting. In: Proceedings of the 15th international conference on software engineering, Baltimore, MD, pp 14–23

    Google Scholar 

  33. Wang Y, Parnas DL (1994) Simulating the behavior of software modules by trace rewriting. IEEE Trans Softw Eng 20(10):750–759

    Article  Google Scholar 

  34. Weigh-In-Motion (2006) Weigh-In-Motion, cube management, and marking user manual. Oak Ridge National Laboratory, Oak Ridge, TN, Version 0.8.2

  35. WIMDAP (2012) Weigh-In-Motion data acquisition processor enumeration. http://sqrl.eecs.utk.edu/btw/files/WIMDAP_sr.html. Accessed 4 January 2013

Download references

Acknowledgements

The authors would like to thank Klaus Madlener for several fruitful discussions and important comments on string-rewriting, as well as the use of the COSY tool developed by the Technical University of Kaiserslautern, Germany.

The authors also acknowledge with thanks our communication with David Parnas regarding this research. We benefited greatly from his knowledge of research literature on string-rewriting that was relevant to our work, and for helpful comments on an early draft of the paper.

The authors also thank the anonymous referees for their helpful comments to improve this paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lan Lin.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Eschbach, R., Lin, L. & Poore, J.H. Applying string-rewriting to sequence-based specification. Form Methods Syst Des 43, 414–449 (2013). https://doi.org/10.1007/s10703-013-0185-5

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-013-0185-5

Keywords

Navigation