Abstract
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.
Similar content being viewed by others
References
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
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)
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)
SATIrE: http://www.complang.tuwien.ac.at/satire Static Analysis Tool Integration Engine
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)
Lakhotia A.: A unified framework for expressing software subsystem classification techniques. J. Syst. Softw. 36(3), 211–231 (1997)
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)
Tarjan R.E.: Efficiency of a good but not linear set union algorithm. J. ACM 22(2), 215–225 (1975)
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)
Edison Design Group, Inc.: EDG web site. http://www.edg.com/
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)
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)
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)
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)
Hind M., Burke M., Carini P., Choi J.D.: Interprocedural pointer alias analysis. ACM Trans. Program. Lang. Syst. (TOPLAS) 21(4), 848–894 (1999)
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)
Hardekopf, B., Lin, C.: Flow-sensitive pointer analysis for millions of lines of code. In: Symposium on Code Generation and Optimization (CGO) (2011)
ALL-TIMES Consortium: Project ALL-TIMES: Integrating European Timing Analysis Technology. http://www.all-times.org/
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Schreiner, D., Barany, G., Schordan, M. et al. Comparison of type-based and alias-based component recognition for embedded systems software. Int J Softw Tools Technol Transfer 15, 41–52 (2013). https://doi.org/10.1007/s10009-012-0251-0
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-012-0251-0