Comparison of type-based and alias-based component recognition for embedded systems software

  • Dietmar Schreiner
  • Gergö Barany
  • Markus Schordan
  • Jens Knoop


Component-based software engineering has found broad acceptance within the embedded systems community over the last years. However, to fully exploit its potential in terms of reusability and cost-efficiency, existing code-bases have to be refactored in a component-based way. To support refactorization, static analysis techniques can be used to identify components within coarse-grained layered or even monolithic legacy software for embedded systems. We present an approach for semi-automatic extraction of components from automotive software and compare two different versions, one type-based component-recognition analysis of linear complexity with a more precise version based on a points-to analysis of almost linear algorithmic complexity. Both analyses are applied to an industrial implementation of an automotive communication stack. Each analysis is evaluated with two sets of additional manually created annotations of distinct size and precision. Thus, both analyses are fully evaluated in terms of execution-time, memory consumption and analysis precision, and its impact on the number of recognized components. We show that the analysis with higher precision allows the use of a smaller user-provided filter set and obtain a proper component recognition.


Static analysis Component recognition 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Hegde, R., Hegde, M., Gurumurthy, K.S.: A paradigm shift from legacy to AUTOSAR architecture in future automotives. In: Das V.V., Thankachan N. (eds.) Computational intelligence and information technology. Communications in Computer and Information Science, vol 250, pp. 548–553. Springer, Berlin (2011). doi:10.1007/978-3-642-25734-6_94
  2. 2.
    Galla, T.M., Schreiner, D., Forster, W., Kutschera, C., Göschka, K.M., Horauer, M.: Refactoring an automotive ebedded software stack using the component-based paradigm. In: Proceedings of the Second IEEE International Symposium on Industrial Embedded Systems (SIES 2007), pp. 200–208. IEEE (2007)Google Scholar
  3. 3.
    Schreiner, D., Schordan, M., Barany, G., Göschka, K.M.: Source code based component recognition in software stacks for embedded systems. In: Proceedings of the 2008 IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications (MESA08), IEEE, pp. 463–468 (2008)Google Scholar
  4. 4.
    SATIrE: Static Analysis Tool Integration Engine
  5. 5.
    Schreiner, D., Schordan, M., Knoop, J.: Adding timing-awareness to autosar basic-software—a component based approach. In: Proceedings of the 12th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing (ISORC 2009), IEEE, pp. 288–292. IEEE Computer Society (2009)Google Scholar
  6. 6.
    Lakhotia A.: A unified framework for expressing software subsystem classification techniques. J. Syst. Softw. 36(3), 211–231 (1997)CrossRefGoogle Scholar
  7. 7.
    Steensgaard, B.: Points-to analysis in almost linear time. In: POPL ’96: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, New York, NY, USA, pp. 32–41. ACM New York (1996)Google Scholar
  8. 8.
    Tarjan R.E.: Efficiency of a good but not linear set union algorithm. J. ACM 22(2), 215–225 (1975)MathSciNetMATHCrossRefGoogle Scholar
  9. 9.
    Heinecke, H., Schnelle, K.P., Fennel, H., Bortolazzi, J., Lundh, L., Leflour, J., Mate, J.L., Nishikawa, K., Scharnhorst, T.: AUTomotive Open System ARchitecture—an industry-wide initiative to manage the complexity of emerging automotive E/E-architectures. In: Proceedings of the Convergence International Congress and Exposition on Transportation Electronics. SAE-2004-21-0042, Detroit, MI, USA (2004)Google Scholar
  10. 10.
    Edison Design Group, Inc.: EDG web site.
  11. 11.
    Schordan, M., Quinlan, D.: Specifying transformation sequences as computation on program fragments with an abstract attribute grammar. In: Proceedings of SCAM ’05, Washington, DC, USA, pp. 97–106. IEEE Computer Society (2005)Google Scholar
  12. 12.
    Schordan, M.: Source-to-source analysis with SATIrE—an example revisited. In: Proceedings of the Dagstuhl Seminar 08161: Scalable Program Analysis, p. 17. Dagstuhl (2008)Google Scholar
  13. 13.
    Lee, J.K., Seung, S.J., Kim, S.D., Hyun, W., Han, D.H.: Component identification method with coupling and cohesion. In: Proceedings of the Eight Asia-Pacific Software Engineering Conference 2001 (APSEC 2001), Washington, DC, USA, pp. 79–86. IEEE Computer Society (Dezember 2001)Google Scholar
  14. 14.
    Emami M., Ghiya R., Hendren L.J.: Context-sensitive interprocedural points-to analysis in the presence of function pointers. ACM SIGPLAN Notices 29(6), 242–256 (1994)CrossRefGoogle Scholar
  15. 15.
    Hind M., Burke M., Carini P., Choi J.D.: Interprocedural pointer alias analysis. ACM Trans. Program. Lang. Syst. (TOPLAS) 21(4), 848–894 (1999)CrossRefGoogle Scholar
  16. 16.
    Diwan, A., McKinley, K.S., Moss, J.E.B.: Type-based alias analysis. In: Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation (PLDI), New York, NY, USA, pp. 106–117. ACM, New York (1998)Google Scholar
  17. 17.
    Hardekopf, B., Lin, C.: Flow-sensitive pointer analysis for millions of lines of code. In: Symposium on Code Generation and Optimization (CGO) (2011)Google Scholar
  18. 18.
    ALL-TIMES Consortium: Project ALL-TIMES: Integrating European Timing Analysis Technology.

Copyright information

© Springer-Verlag 2012

Authors and Affiliations

  • Dietmar Schreiner
    • 1
  • Gergö Barany
    • 1
  • Markus Schordan
    • 2
  • Jens Knoop
    • 1
  1. 1.Compilers and Languages Group, Institute of Computer LanguagesVienna University of TechnologyViennaAustria
  2. 2.Institute of Computer ScienceUniversity of Applied Sciences Technikum WienViennaAustria

Personalised recommendations