Abstract
Computer systems are so complex, so they are usually designed and analyzed in terms of layers of abstraction. Complexity is still a challenge facing logical reasoning tools that are used to find software design flaws and implementation bugs. Abstraction is also a common technique for scaling those tools to more complex systems. However, the abstractions used in the design phase of systems are in many cases different from those used for assurance. In this paper we argue that different software quality assurance techniques operate on different aspects of software systems. To facilitate assurance, and for a smooth integration of assurance tools into the Software Development Lifecycle (SDLC), we present a 4-dimensional meta-architecture that separates computational, coordination, and stateful software artifacts early on in the design stage. We enumerate some of the design and assurance challenges that can be addressed by this meta-architecture, and demonstrate it on the high-level design of a simple file system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Abelson, H., Sussman, G.J.: Structure and Interpretation of Computer Programs, 2nd edn. MIT Press, Cambridge (1996)
Aldrich, J., Sunshine, J., Saini, D., Sparks, Z.: Typestate-oriented programming. In: Proceedings of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications. OOPSLA 2009, New York, NY, USA, pp. 1015–1022. Association for Computing Machinery (2009)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley Professional, 3rd edn. (2012)
Bergstra, J.A., Klop, J.W.: ACP\(\tau \) a universal axiom system for process specification. In: Wirsing, M., Bergstra, J.A. (eds.) Algebraic Methods 1987. LNCS, vol. 394, pp. 445–463. Springer, Heidelberg (1989). https://doi.org/10.1007/BFb0015048
Booch, G.: Object-Oriented Analysis and Design with Applications, 3rd edn. Addison Wesley Longman Publishing Co., Inc., USA (2004)
Bradfield, J., Walukiewicz, I.: The mu-calculus and model checking. In: Handbook of Model Checking, pp. 871–919. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-10575-8_26
Bunte, O., Groote, J.F., Keiren, J.J.A., Laveaux, M., Neele, T., de Vink, E.P., Wesselink, W., Wijs, A., Willemse, T.A.C.: The mCRL2 toolset for analysing concurrent systems. In: Vojnar, T., Zhang, L. (eds.) TACAS 2019. LNCS, vol. 11428, pp. 21–39. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-17465-1_2
Burch, J., Clarke, E., McMillan, K., Dill, D., Hwang, L.: Symbolic model checking: 1020 States and beyond. Inf. Comput. 98(2), 142–170 (1992)
Caires, L., Pfenning, F., Toninho, B.: Linear Logic Propositions as Session Types. Math. Struct. Comput. Sci. 760 (2014)
Chang, C., Cleland-Huang, J., Hua, S., Kuntzmann-Combelles, A.: Function-class decomposition: a hybrid software engineering method. Computer 34(12), 87–93 (2001). https://doi.org/10.1109/2.970582
Clarke, E., McMillan, K., Campos, S., Hartonas-Garmhausen, V.: Symbolic model checking. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 419–422. Springer, Heidelberg (1996). https://doi.org/10.1007/3-540-61474-5_93
Cook, B., Podelski, A., Rybalchenko, A.: Proving program termination. Commun. ACM 54(5), 88–98 (2011)
Date, C.J.: An Introduction to Database Systems, 8th edn. Pearson/Addison Wesley, Boston (2004)
DeLine, R., Fähndrich, M.: Typestates for objects. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 465–490. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24851-4_21
Erl, T.: Service-Oriented Architecture: Concepts, Technology, and Design. Prentice Hall PTR, USA (2005)
Baader, F., Calvanese, D., McGuinness, D.L., Nardi, D., Patel-Schneider, P.F.: The Description Logic Handbook: Theory, Implementation, Applications. Cambridge University Press, Cambridge (2003)
Gelernter, D., Carriero, N.: Coordination languages and their significance. Commun. ACM 35(2), 97–107 (1992)
Girard, J.Y.: Linear logic. Theoret. Comput. Sci. 50(1), 1–101 (1987)
Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)
Bergmans, L., Lopes, C.V.: Aspect-oriented programming. In: Moreira, A. (ed.) ECOOP 1999. LNCS, vol. 1743, pp. 288–313. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-46589-8_17
Knuth, D.: The Art of Computer Programming, 3rd edn. Addison Wesley, Reading (1997)
Milner, R. (ed.): : Some proofs about data structures. In: A Calculus of Communicating Systems. LNCS, vol. 92, pp. 111–125. Springer, Heidelberg (1980). https://doi.org/10.1007/3-540-10235-3_9
Milner, R.: Communicating and Mobile Systems: The Pi-Calculus, 1st edn. Cambridge University Press, Cambridge (1999)
Nederpelt, R., Geuvers, H.: Type Theory and Formal Proof: An Introduction. Cambridge University Press, Cambridge (2014)
Nielson, H.R., Nielson, F.: Semantics with Applications: An Appetizer. Springer, London (2007). https://doi.org/10.1007/978-1-84628-692-6
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)
Pierce, B.C.: Types and Programming Languages, 1st edn. The MIT Press, Cambridge (2002)
Pnueli, A.: The temporal logic of programs. In: Proceedings of the 18th Annual Symposium on Foundations of Computer Science. SFCS 1977, pp. 46–57 IEEE Computer Society, USA (1977)
Prehofer, C.: Feature-oriented programming: a fresh look at objects. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 419–443. Springer, Heidelberg (1997). https://doi.org/10.1007/BFb0053389
Strom, R.E., Yemini, S.: Typestate: a programming language concept for enhancing software reliability. IEEE Trans. Softw. Eng. 12(1), 157–171 (1986)
Tarr, P., Ossher, H., Harrison, W., Sutton, S.M.: N degrees of separation: multi-dimensional separation of concerns. In: Proceedings of the 21st International Conference on Software Engineering. ICSE 1999, New York, NY, USA, pp. 107–119. Association for Computing Machinery (1999)
Tiu, A.: Model checking for \(\pi \)-calculus using proof search. In: Abadi, M., de Alfaro, L. (eds.) CONCUR 2005. LNCS, vol. 3653, pp. 36–50. Springer, Heidelberg (2005). https://doi.org/10.1007/11539452_7
Acknowledgments
The author thanks the anonymous reviewers for their feedback and insightful suggestions.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Shahin, R. (2021). Towards Assurance-Driven Architectural Decomposition of Software Systems. In: Habli, I., Sujan, M., Gerasimou, S., Schoitsch, E., Bitsch, F. (eds) Computer Safety, Reliability, and Security. SAFECOMP 2021 Workshops. SAFECOMP 2021. Lecture Notes in Computer Science(), vol 12853. Springer, Cham. https://doi.org/10.1007/978-3-030-83906-2_15
Download citation
DOI: https://doi.org/10.1007/978-3-030-83906-2_15
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-83905-5
Online ISBN: 978-3-030-83906-2
eBook Packages: Computer ScienceComputer Science (R0)