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.
Similar content being viewed by others
References
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
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
Book RV, Otto F (1993) String-rewriting systems. Springer, Berlin
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
Brzozowski J (1964) Derivatives of regular expressions. J ACM 11(4):481–494
Brzozowski J, Jürgensen H (2004) Theory of deterministic trace-assertion specifications. Technical report CS-2004-30, University of Waterloo
Brzozowski J, Jürgensen H (2005) Representation of semiautomata by canonical words and equivalences. Int J Found Comput Sci 16(5):831–850
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
Carter JM (2009) Sequence-based specification of embedded systems, Dissertation, University of Tennessee, Knoxville
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
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
Hoffman D (1985) The trace specification of communications protocols. IEEE Trans Comput C34(12):1102–1113
Hoffman D, Snodgrass RT (1988) Trace specifications: methodology and models. IEEE Trans Softw Eng 14(9):1243–1252
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
Janicki R, Sekerinski E (2001) Foundations of the trace assertion method of module interface specification. IEEE Trans Softw Eng 27(7):577–598
Joseph M (ed) (1996) Real-time systems: specification, verification and analysis. Prentice Hall International, London
Lin L, Prowell SJ, Poore JH (2009) The impact of requirements changes on specifications and state machines. Softw Pract Exp 39(6):573–610
Lin L, Prowell SJ, Poore JH (2010) An axiom system for sequence-based specification. Theor Comput Sci 411(2):360–376
Linger RC, Mills HD, Witt BI (1979) Structured programming: theory and practice. Addison-Wesley, Boston
McLean J (1984) A formal method for the abstract specification of software. J ACM 31(3):600–627
Mills HD (1975) The new math of computer programming. Commun ACM 18(1):43–48
Mills HD (1988) Stepwise refinement and verification in box-structured systems. IEEE Comput 21(6):23–36
MPCS (2012) Mine pump controller software enumeration. http://sqrl.eecs.utk.edu/btw/files/MPCS_sr.html. Accessed 4 January 2013
Parnas DL, Wang Y (1989) The trace assertion method of module interface specification, Technical report 89-261, Queens University
Proto_Seq (2012) ESP project. http://sqrl.eecs.utk.edu/esp/index.html. Accessed 4 January 2013
Prowell SJ, Poore JH (1998) Sequence-based software specification of deterministic systems. Softw Pract Exp 28(3):329–344
Prowell SJ, Poore JH (2003) Foundations of sequence-based software specification. IEEE Trans Softw Eng 29(5):417–429
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
Prowell SJ, Trammell CJ, Linger RC, Poore JH (1999) Cleanroom software engineering: technology and process. Addison-Wesley, Reading
SOS (2012) Satellite operations software enumeration. http://sqrl.eecs.utk.edu/btw/files/SOS_sr.html. Accessed 4 January 2013
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
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
Wang Y, Parnas DL (1994) Simulating the behavior of software modules by trace rewriting. IEEE Trans Softw Eng 20(10):750–759
Weigh-In-Motion (2006) Weigh-In-Motion, cube management, and marking user manual. Oak Ridge National Laboratory, Oak Ridge, TN, Version 0.8.2
WIMDAP (2012) Weigh-In-Motion data acquisition processor enumeration. http://sqrl.eecs.utk.edu/btw/files/WIMDAP_sr.html. Accessed 4 January 2013
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
Corresponding author
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10703-013-0185-5