Skip to main content

Towards Assurance-Driven Architectural Decomposition of Software Systems

  • Conference paper
  • First Online:
Computer Safety, Reliability, and Security. SAFECOMP 2021 Workshops (SAFECOMP 2021)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 12853))

Included in the following conference series:

  • 1167 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 79.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Abelson, H., Sussman, G.J.: Structure and Interpretation of Computer Programs, 2nd edn. MIT Press, Cambridge (1996)

    MATH  Google Scholar 

  2. 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)

    Google Scholar 

  3. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley Professional, 3rd edn. (2012)

    Google Scholar 

  4. 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

    Chapter  Google Scholar 

  5. Booch, G.: Object-Oriented Analysis and Design with Applications, 3rd edn. Addison Wesley Longman Publishing Co., Inc., USA (2004)

    MATH  Google Scholar 

  6. 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

    Chapter  MATH  Google Scholar 

  7. 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

    Chapter  Google Scholar 

  8. Burch, J., Clarke, E., McMillan, K., Dill, D., Hwang, L.: Symbolic model checking: 1020 States and beyond. Inf. Comput. 98(2), 142–170 (1992)

    Article  Google Scholar 

  9. Caires, L., Pfenning, F., Toninho, B.: Linear Logic Propositions as Session Types. Math. Struct. Comput. Sci. 760 (2014)

    Google Scholar 

  10. 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

    Article  Google Scholar 

  11. 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

    Chapter  Google Scholar 

  12. Cook, B., Podelski, A., Rybalchenko, A.: Proving program termination. Commun. ACM 54(5), 88–98 (2011)

    Article  Google Scholar 

  13. Date, C.J.: An Introduction to Database Systems, 8th edn. Pearson/Addison Wesley, Boston (2004)

    MATH  Google Scholar 

  14. 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

    Chapter  Google Scholar 

  15. Erl, T.: Service-Oriented Architecture: Concepts, Technology, and Design. Prentice Hall PTR, USA (2005)

    Google Scholar 

  16. 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)

    MATH  Google Scholar 

  17. Gelernter, D., Carriero, N.: Coordination languages and their significance. Commun. ACM 35(2), 97–107 (1992)

    Article  Google Scholar 

  18. Girard, J.Y.: Linear logic. Theoret. Comput. Sci. 50(1), 1–101 (1987)

    Article  MathSciNet  Google Scholar 

  19. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)

    Article  Google Scholar 

  20. Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)

    Article  Google Scholar 

  21. 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

    Chapter  Google Scholar 

  22. Knuth, D.: The Art of Computer Programming, 3rd edn. Addison Wesley, Reading (1997)

    MATH  Google Scholar 

  23. 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

  24. Milner, R.: Communicating and Mobile Systems: The Pi-Calculus, 1st edn. Cambridge University Press, Cambridge (1999)

    MATH  Google Scholar 

  25. Nederpelt, R., Geuvers, H.: Type Theory and Formal Proof: An Introduction. Cambridge University Press, Cambridge (2014)

    Book  Google Scholar 

  26. Nielson, H.R., Nielson, F.: Semantics with Applications: An Appetizer. Springer, London (2007). https://doi.org/10.1007/978-1-84628-692-6

    Book  MATH  Google Scholar 

  27. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  28. Pierce, B.C.: Types and Programming Languages, 1st edn. The MIT Press, Cambridge (2002)

    MATH  Google Scholar 

  29. 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)

    Google Scholar 

  30. 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

    Chapter  Google Scholar 

  31. Strom, R.E., Yemini, S.: Typestate: a programming language concept for enhancing software reliability. IEEE Trans. Softw. Eng. 12(1), 157–171 (1986)

    Article  Google Scholar 

  32. 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)

    Google Scholar 

  33. 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

    Chapter  Google Scholar 

Download references

Acknowledgments

The author thanks the anonymous reviewers for their feedback and insightful suggestions.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ramy Shahin .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics