Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1007/978-3-031-70797-1_4guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Automated Architecture Recovery for Embedded Software Systems: An Industrial Case Study

Published: 01 September 2024 Publication History

Abstract

The software architecture documentation of embedded systems is often overlooked in industry, due to time pressure, project budget constraints, and lack of culture. However, adequately documenting the architecture from different points of view is mandatory to reach the expected maintainability, testability, and safety requirements. This paper presents a software architecture recovery (SAR) process for automating the documentation process of embedded system software architectures. The approach uses static code analysis to extract detailed information about the systems and reconstruct architectural models. It has been implemented in a tool that automatically generates different UML models, including package diagrams, component diagrams, component and connector diagrams, and state machine diagrams. To evaluate the effectiveness of our approach, we conducted a survey with industrial experts within Micron, that allowed us to assess the accuracy and usefulness of the generated documentation.

References

[1]
Amalfitano, D., De Luca, M., Rita Fasolino, A.: Documenting software architecture design in compliance with the ISO 26262: a practical experience in industry. In: 2023 IEEE 20th International Conference on Software Architecture Companion (ICSA-C) (2023)
[2]
Bae JH and Chae HS Systematic approach for constructing an understandable state machine from a contract-based specification: controlled experiments Softw. Syst. Model. 2016 15 3 847-879
[3]
van den Brand, M., Serebrenik, A., van Zeeland, D.: Extraction of state machines of legacy C code with Cpp2XMI. In: Proceedings of 7th Belgian-netherlands Software Evolution Workshop, pp. 28–30 (2008)
[4]
Chen, J., et al.: Negar: network embedding guided architecture recovery for software systems. In: 2022 29th Asia-Pacific Software Engineering Conference (APSEC), pp. 367–376 (2022)
[5]
Chen JC and Huang SJ An empirical analysis of the impact of software development problem factors on software maintainability J. Syst. Softw. 2009 82 6 981-992
[6]
Ducasse S and Pollet D Software architecture reconstruction: a process-oriented taxonomy IEEE Trans. Software Eng. 2009 35 4 573-591
[7]
Garlan D, Allen R, and Ockerbloom J Architectural mismatch: why reuse is still so hard IEEE Softw. 2009 26 4 66-69
[8]
Knor R, Trausmuth G, and Weidl J van der Linden F Reengineering C/C++ source code by transforming state machines Development and Evolution of Software Architectures for Product Families 1998 Heidelberg Springer 97-105
[9]
Kung, D., Suchak, N., Gao, J., Hsia, P., Toyoshima, Y., Chen, C.: On object state testing. In: Proceedings Eighteenth Annual International Computer Software and Applications Conference (COMPSAC 94), pp. 222–227 (1994)
[10]
Luna-Herrera, Y.A., Pérez-Arriaga, J.C., Ocharán-Hernández, J.O., Sanchéz-García, Á.J.: Comprehension of computer programs through reverse engineering approaches and techniques: a systematic mapping study. In: Mejia, J., Muñoz, M., Rocha, Á., Hernández-Nava, V. (eds.) New Perspectives in Software Engineering. CIMPS 2022. Lecture Notes in Networks and Systems, vol. 576, pp. 126–140. Springer, Cham (2022).
[11]
Maqbool O and Babri H Hierarchical clustering for software architecture recovery IEEE Trans. Software Eng. 2007 33 11 759-780
[12]
Walkinshaw N, Bogdanov K, Ali S, and Holcombe M Automated discovery of state transitions and their functions in source code Software Test. Verification Reliab. 2008 18 2 99-121
[13]
Nelson, M.L.: A survey of reverse engineering and program comprehension. arXiv arXiv:cs/0503068 (2005)
[14]
Pinzger, M., Fischer, M., Gall, H., Jazayeri, M.: Revealer: a lexical pattern matcher for architecture recovery. In: Ninth Working Conference on Reverse Engineering, 2002. Proceedings, pp. 170–178 (2002)
[15]
Said W, Quante J, and Koschke R Mining understandable state machine models from embedded code Empir. Softw. Eng. 2020 25 6 4759-4804
[16]
Sen T and Mall R Extracting finite state representation of java programs Softw. Syst. Model. 2016 15 497-511
[17]
Silva L and Balasubramaniam D Controlling software architecture erosion: a survey J. Syst. Softw. 2012 85 132-151
[18]
Somé, S.S., Lethbridge, T.C.: Enhancing program comprehension with recovered state models. In: Proceedings of the 10th International Workshop on Program Comprehension, IWPC 2002. IEEE Computer Society (2002)
[19]
Şora I Maciaszek LA and Filipe J Helping program comprehension of large software systems by identifying their most important classes Evaluation of Novel Approaches to Software Engineering 2016 Cham Springer 122-140
[20]
Stringfellow C, Amory C, Potnuri D, Andrews A, and Georg M Comparison of software architecture reverse engineering methods Inf. Softw. Technol. 2006 48 7 484-497
[21]
Systä, T.: Static and Dynamic Reverse Engineering Techniques for Java Software Systems (2000)
[22]
Telea, A., Maccari, A., Riva, C.: An open visualization toolkit for reverse architecting. In: Proceedings 10th International Workshop on Program Comprehension (2002)
[23]
Thomas SL, Van den Herrewegen J, Vasilakis G, Chen Z, Ordean M, and Garcia FD Cutting through the complexity of reverse engineering embedded devices IACR Trans. Cryptographic Hardware Embed. Syst. 2021 2021 3 360-389
[24]
Tonella, P.: Reverse engineering of object oriented code. In: Proceedings of the 27th International Conference on Software Engineering, ICSE 2005, pp. 724–725. Association for Computing Machinery, New York, NY, USA (2005)
[25]
Uzun B and Tekinerdogan B Architecture conformance analysis using model-based testing: a case study approach Softw. Pract. Experience 2019 49 3 423-448
[26]
Verdecchia R, Kruchten P, and Lago P Jansen A, Malavolta I, Muccini H, Ozkaya I, and Zimmermann O Architectural technical debt: a grounded theory Software Architecture 2020 Cham Springer 202-219

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
Software Architecture: 18th European Conference, ECSA 2024, Luxembourg City, Luxembourg, September 3–6, 2024, Proceedings
Sep 2024
425 pages
ISBN:978-3-031-70796-4
DOI:10.1007/978-3-031-70797-1
  • Editors:
  • Matthias Galster,
  • Patrizia Scandurra,
  • Tommi Mikkonen,
  • Pablo Oliveira Antonino,
  • Elisa Yumi Nakagawa,
  • Elena Navarro

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 September 2024

Author Tags

  1. Software Architecture Recovery
  2. Static Analysis
  3. Reverse Engineering
  4. Embedded Software Architectures

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 28 Sep 2024

Other Metrics

Citations

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media