FASE 2013: Fundamental Approaches to Software Engineering pp 179-193 | Cite as
Augmenting Sequence Enumeration with String-Rewriting for Requirements Analysis and Behavioral Specification
Abstract
Sequence enumeration is a method for deriving a system model based on informal requirements. Under sequence enumeration, stimulus (input) sequences are considered in a breadth-first manner, with the expected system response to each sequence given. Not all sequences of stimuli are considered since a sequence need not be extended if either it is illegal (it cannot be applied in practice) or it can be reduced to another sequence previously considered (the sequences take the system to the same state). Sequence enumeration is mostly a manual process, which leads to a model that can be used as the basis for automation. This paper describes a method, based on string-rewriting, that automates parts of sequence enumeration. This automation has the potential to reduce both the cost and time involved in sequence enumeration but also to reduce the scope for human error. In addition to outlining this method, we discuss our experiences in applying it to four case studies.
Keywords
software specification sequence-based specification sequence enumeration string-rewriting requirements engineeringReferences
- 1.Bartussek, W., Parnas, D.L.: 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 (1978)Google Scholar
- 2.Bauer, T., Beletski, T., Boehr, F., Eschbach, R., Landmann, D., Poore, J.: 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 (2007)Google Scholar
- 3.Book, R.V., Otto, F.: String-Rewriting Systems. Springer, Berlin (1993)MATHCrossRefGoogle Scholar
- 4.Broadfoot, G.H., Broadfoot, P.J.: 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 (2003)Google Scholar
- 5.Brzozowski, J.: Derivatives of regular expressions. Journal of the ACM 11(4), 481–494 (1964)MathSciNetMATHCrossRefGoogle Scholar
- 6.Brzozowski, J., Jürgensen, H.: Theory of deterministic trace-assertion specifications. Technical report CS-2004-30, University of Waterloo (2004)Google Scholar
- 7.Brzozowski, J., Jürgensen, H.: Representation of semiautomata by canonical words and equivalences. International Journal of Foundations of Computer Science 16(5), 831–850 (2005)MathSciNetMATHCrossRefGoogle Scholar
- 8.Eschbach, R., Lin, L., Poore, J.H.: Applying string-rewriting to sequence-based specification. Technical report ut-cs-12-692, University of Tennessee, Knoxville (2012), http://web.eecs.utk.edu/~library/TechReports/2012/ut-cs-12-692.pdf
- 9.Gill, A.: Introduction to the Theory of Finite-State Machines. McGraw-Hill, New York (1962)MATHGoogle Scholar
- 10.Hopcroft, P.J., Broadfoot, G.H.: Combining the box structure development method and CSP for software development. Electronic Notes in Theoretical Computer Science 128(6), 127–144 (2005)CrossRefGoogle Scholar
- 11.Joseph, M. (ed.): Real-Time Systems: Specification, Verification and Analysis. Prentice Hall International, London (1996)MATHGoogle Scholar
- 12.Lin, L., Prowell, S.J., Poore, J.H.: An axiom system for sequence-based specification. Theoretical Computer Science 411(2), 360–376 (2010)MathSciNetMATHCrossRefGoogle Scholar
- 13.Linger, R.C., Mills, H.D., Witt, B.I.: Structured Programming: Theory and Practice. Addison-Wesley, Boston (1979)MATHGoogle Scholar
- 14.Mills, H.D.: Stepwise refinement and verification in box-structured systems. IEEE Computer 21(6), 23–36 (1988)CrossRefGoogle Scholar
- 15.Mills, H.D.: The new math of computer programming. Communications of the ACM 18(1), 43–48 (1975)MATHCrossRefGoogle Scholar
- 16.MPCS: Mine pump controller software enumeration (2012), http://sqrl.eecs.utk.edu/btw/files/MPCS_sr.html
- 17.Parnas, D.L., Wang, Y.: The trace assertion method of module interface specification. Technical report 89-261, Queens University (1989)Google Scholar
- 18.Proto_Seq: ESP project (2012), http://sqrl.eecs.utk.edu/esp/index.html
- 19.Prowell, S.J., Poore, J.H.: Sequence-based software specification of deterministic systems. Software: Practice and Experience 28(3), 329–344 (1998)CrossRefGoogle Scholar
- 20.Prowell, S.J., Poore, J.H.: Foundations of sequence-based software specification. IEEE Transactions on Software Engineering 29(5), 417–429 (2003)CrossRefGoogle Scholar
- 21.Prowell, S.J., Trammell, C.J., Linger, R.C., Poore, J.H.: Cleanroom Software Engineering: Technology and Process. Addison-Wesley, Reading (1999)Google Scholar
- 22.SOS: Satellite operations software enumeration (2012), http://sqrl.eecs.utk.edu/btw/files/SOS_sr.html
- 23.Wang, Y., Parnas, D.L.: Simulating the behavior of software modules by trace rewriting. IEEE Transactions on Software Engineering 20(10), 750–759 (1994)CrossRefGoogle Scholar
- 24.Wang, Y., Parnas, D.L.: Simulating the behavior of software modules by trace rewriting. In: Proceedings of the 15th International Conference on Software Engineering, Baltimore, MD, pp. 14–23 (1993)Google Scholar
- 25.Weigh-In-Motion: Weigh-In-Motion, Cube Management, and Marking User Manual, Oak Ridge National Laboratory, Oak Ridge, TN, Version 0.8.2. (2006)Google Scholar
- 26.WIMDAP: Weigh-in-motion data acquisition processor enumeration (2012), http://sqrl.eecs.utk.edu/btw/files/WIMDAP_sr.html