Skip to main content
Log in

Reverse engineering concurrent UML state machines using black box testing and genetic programming

  • Original Paper
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

Abstract

This paper presents a technique for reverse engineering, a software system generated from a concurrent unified modeling language state machine implementation. In its first step, a primitive sequential finite-state machine (FSM) is deduced from a sequence of outputs emitted from black box tests applied to the systems’ input interface. Next, we provide an algorithmic technique for decomposing the sequential primitive FSM into a set of concurrent (orthogonal) primitive FSMs. Lastly, we show a genetic programming machine learning technique for discovering local variables, actions performed on local and non-binary output variables, and two types of intra-FSM loops, called counting-loops and while-loops.

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
Fig. 6

Similar content being viewed by others

Notes

  1. The initial state of the primitive FSM is the only state that is not induced by outputs of a one constituent FSM within the UML statechart, but rather is induced by outputs of all constituent FSMs.

  2. Row and column numbers are 1-based.

  3. The test is actually black box in terms of the original SUT, because the SUT’s internal structure or behavior is not assumed to be known a priori. However, after deducing its constituent internal FSMs such a test is white-box with respect to each such FSM.

References

  1. Angluin D (1987) Learning regular sets from queries and counterexamples. Inf Comput 75(2):87–106

    Article  MathSciNet  MATH  Google Scholar 

  2. Amalfitano D, Fasolino AR, Tramontana P (2008) Proceedings of the 15th working conference on reverse engineering, Antwerp, Belgium, Oct 15–18, 2008

  3. Brutscheck M (2009) Systematic analysis of unknown integrated circuits. Ph.D. dissertation, Dublin Institute of Technology

  4. Brutscheck M, Franke M, Schwartzbacher A, Becker S (2008) Investigation and implementation of test vectors for efficient IC analysis. In: Signals and systems conference. Becker

  5. Brutscheck M, Schmidt B, Franke M, Schwartzbacher A, Becker S (2010) Identification of deterministic sequential finite state machines in unknown cmos ICs. In: International solid state circuits conference. Becker

  6. Drusinsky-Yoresh D (1991) A state assignment for single-block implementation of statecharts. IEEE Trans Comput Aided Des Integr Circuits Syst 10(12):1569–1575

    Article  Google Scholar 

  7. Genetic programming. http://geneticprogramming.com/

  8. Koza J, A genetic programming tutorial. http://geneticprogramming.com/tutorial/

  9. Kumar A (2008) A novel technique to extract Statechart representations of FSMs. Master thesis, Department of Computer Science and Engineering, Indian Institute of Technology Kharagpur

  10. Yang M, Michaelson GJ, Pooley RJ (2008) Formal action semantics for a UML action language. J Univers Comput Sci 14(21):3608–3624

    Google Scholar 

  11. Genetic programming. https://en.wikipedia.org/wiki/Genetic_programming

  12. Drusinsky D (2006) Modeling and verification using UML statecharts. Elsevier, Amsterdam ISBN: 978-0-7506-7949-7

    Google Scholar 

  13. Smith J, Oler K, Miller C, Manz D (2017) Reverse engineering integrated circuits using finite state machine analysis. In: 50th Hawaii international conference on system sciences, pp 2906–2914

  14. Spinke V (2013) An object-oriented implementation of concurrent and hierarchical state machines. Inf Softw Technol 55:1726–1740

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Doron Drusinsky.

Additional information

This research was funded by a Grant from the Office of Naval Research (ONR). The views expressed in this document are those of the author and do not reflect the official policy or position of the Department of Defense or the U.S. Government.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Drusinsky, D. Reverse engineering concurrent UML state machines using black box testing and genetic programming. Innovations Syst Softw Eng 13, 117–128 (2017). https://doi.org/10.1007/s11334-017-0299-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-017-0299-9

Keywords

Navigation