Abstract
The brisk pace of the growth in embedded technology depends largely on how fast we can write and maintain software contained within embedded devices. Every enterprise seeks to improve its productivity through maintainability. While many avenues for improvement exist, highly maintainable code bases that can stay that way over a long time are rare. This article proposes a reference software architecture for embedded systems aimed at improving long-term maintainability. This reference architecture, called the Abstraction Layered Architecture (ALA), is built on the existing body of knowledge in software architecture and more than two decades of experience in designing embedded software at Tru-Test Group, New Zealand. ALA can be used for almost any object-oriented software project, and strongly supports domain-specific abstractions such as those found in most embedded software.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Alexander, C.: The Nature of Order: The Process of Creating Life. Taylor & Francis, Abingdon (2002)
Bengtsson, P., Lassing, N., Bosch, J., van Vliet, H.: Architecture-level modifiability analysis (ALMA). J. Syst. Softw. 69(1–2), 129–147 (2004)
Cataldo, M., Mockus, A., Roberts, J.A., Herbsleb, J.D.: Software dependencies, work dependencies, and their impact on failures. IEEE Trans. Softw. Eng. 35(6), 864–878 (2009)
Clements, P., Garlan, D., Little, R., Nord, R., Stafford, J.: Documenting software architectures: views and beyond. In: Proceedings of the 25th International Conference on Software Engineering, pp. 740–741. IEEE Computer Society (2003)
Foote, B., Yoder, J.: Big ball of mud. Pattern Lang. Program Des. 4, 654–692 (1997)
ISO/IEC: ISO/IEC 25010 - Systems and software engineering - systems and software quality requirements and evaluation (SQuaRE) - system and software quality models, Technical report (2011)
Kruchten, P.B.: The 4 + 1 view model of architecture. IEEE Softw. 12(6), 42–50 (1995)
Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Upper Saddle River (2002)
Nicolau, A.: Run-time disambiguation: coping with statically unpredictable dependencies. IEEE Trans. Comput. 38(5), 663–678 (1989)
Ossher, H., Tarr, P.: Using multidimensional separation of concerns to (re)shape evolving software. Commun. ACM 44(10), 43–50 (2001)
Page-Jones, M., Constantine, L.L.: Fundamentals of Object-Oriented Design in UML. Addison-Wesley Professional, Boston (2000)
Perepletchikov, M., Ryan, C., Frampton, K.: Cohesion metrics for predicting maintainability of service-oriented software. In: 2007 Seventh International Conference on Quality Software, QSIC 2007, pp. 328–335. IEEE (2007)
de Souza, S.C.B., Anquetil, N., de Oliveira, K.M.: A study of the documentation essential to software maintenance. In: Proceedings of the 23rd Annual International Conference on Design of Communication: Documenting and Designing for Pervasive Information, pp. 68–75. ACM (2005)
Visser, E.: WebDSL: a case study in domain-specific language engineering. In: Lämmel, R., Visser, J., Saraiva, J. (eds.) GTTSE 2007. LNCS, vol. 5235, pp. 291–373. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-88643-3_7
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Spray, J., Sinha, R. (2018). Abstraction Layered Architecture: Writing Maintainable Embedded Code. In: Cuesta, C., Garlan, D., Pérez, J. (eds) Software Architecture. ECSA 2018. Lecture Notes in Computer Science(), vol 11048. Springer, Cham. https://doi.org/10.1007/978-3-030-00761-4_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-00761-4_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-00760-7
Online ISBN: 978-3-030-00761-4
eBook Packages: Computer ScienceComputer Science (R0)