Reducing Software Architecture Models Complexity: A Slicing and Abstraction Approach

  • Daniela Colangelo
  • Daniele Compare
  • Paola Inverardi
  • Patrizio Pelliccione
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4229)


Software architectures (SA) represents a critical design level for software systems. Architectural choices need to be analyzed and verified to achieve a better software quality while reducing the time and cost of production. Model-checking is one of the most promising verification techniques, however its use for very large systems is not always possible due to the state explosion problem. In this paper we propose an approach that slices and abstracts the SA of a system in order to reduce the model complexity without compromising the verification validity. This approach exploits the characteristics of the SA model and the structure of the property of interest. It is applied to an industrial telecommunication system of the Selex Communications company.


State Machine Model Checker Software Architecture Sequence Diagram Architectural Choice 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley, Massachusetts (1998)Google Scholar
  2. 2.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. In: SIGSOFT Software Engineering Notes, vol. 17, pp. 40–52 (1992)Google Scholar
  3. 3.
    Bernardo, M., Inverardi, P.: Formal Methods for Software Architectures, Tutorial book on Software Architectures and Formal Methods. In: SFM 2003: SA Lectures, vol. 2804 (2003)Google Scholar
  4. 4.
    Compare, D., Inverardi, P., Pelliccione, P., Sebastiani, A.: Integrating model-checking architectural analysis and validation in a real software life-cycle. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, Springer, Heidelberg (2003)Google Scholar
  5. 5.
    Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison Wesley, Reading (2003)Google Scholar
  6. 6.
    Holzmann, G.J.: The logic of bugs. In: Daemen, J., Rijmen, V. (eds.) FSE 2002. LNCS, vol. 2365. Springer, Heidelberg (2002)Google Scholar
  7. 7.
    Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (2001)CrossRefGoogle Scholar
  8. 8.
    Caporuscio, M., Inverardi, P., Pelliccione, P.: Compositional verification of middleware-based software architecture descriptions. In: Proceedings of the International Conference on Software Engineering (ICSE 2004), Edimburgh (2004)Google Scholar
  9. 9.
    Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Transaction on Computers C-35(8), 677–691 (1986)CrossRefzbMATHGoogle Scholar
  10. 10.
    Katz, S., Peled, D.: An efficient verification method for parallel and distributed programs. In: de Bakker, J.W., de Roever, W.-P., Rozenberg, G. (eds.) Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency. LNCS, vol. 354, pp. 489–507. Springer, Heidelberg (1989)CrossRefGoogle Scholar
  11. 11.
    Frantz, F.K.: A taxonomy of model abstraction techniques. In: WSC 1995: Proceedings of the 27th conference on Winter simulation, pp. 1413–1420. ACM Press, New York (1995)Google Scholar
  12. 12.
    Emerson, F.A., Sistla, A.P.: Symmetry and Model Checking. Formal Methods in System Design: An International Journal 9(1/2), 105–131 (1996)CrossRefGoogle Scholar
  13. 13.
    Francez, N.: The Analysis of Cyclic Programs. PhD thesis, The Weizmann Institute of Science (1976)Google Scholar
  14. 14.
    Pnueli, A.: In transition from global to modular temporal reasoning about programs. In: Logics and Models of Concurrent Systems, sub-series F: Computer and System Science, pp. 123–144. Springer, Heidelberg (1985)CrossRefGoogle Scholar
  15. 15.
    Kim, T., Song, Y.T., Chung, L., Huynh, D.T.: Software architecture analysis: A dynamic slicing approach. Journal of Computer & Information Science (2), 91–103 (2000)Google Scholar
  16. 16.
    Zhao, J.: Using dependence analysis to support software architecture understanding. In: Li, M. (ed.) New Technologies on Computer Software, pp. 135–142. International Academic Publishers (1997)Google Scholar
  17. 17.
    Tip, F.: A survey of program slicing techniques. Journal of programming languages 3, 121–189 (1995)Google Scholar
  18. 18.
    Zhao, J.: Applying slicing technique to software architectures. In: Proceedings of 4th IEEE International Conference on Engineering of Complex Computer Systems, pp. 87–98 (1998)Google Scholar
  19. 19.
    Stafford, J.A., Wolf, A.L.: Architecture-level dependence analysis for software systems. International Journal of Software Engineering and Knowledge Engineering 11(4), 431–451 (2001)CrossRefGoogle Scholar
  20. 20.
    Pelliccione, P., Muccini, H., Bucchiarone, A., Facchini, F.: Deriving Test Sequences from Model-based Specifications. In: Heineman, G.T., Crnković, I., Schmidt, H.W., Stafford, J.A., Szyperski, C.A., Wallnau, K. (eds.) CBSE 2005. LNCS, vol. 3489, pp. 267–282. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  21. 21.
    Autili, M., Inverardi, P., Pelliccione, P.: A scenario based notation for specifying temporal properties. In: 5th International Workshop on Scenarios and State Machines: Models, Algorithms and Tools (SCESM 2006), Shanghai, China, May 27 (2006)Google Scholar
  22. 22.
    PSC home page (2005),
  23. 23.
    Charmy Project: Charmy web site (2004),
  24. 24.
    Inverardi, P., Muccini, H., Pelliccione, P.: Charmy: an extensible tool for architectural analysis. In: ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, pp. 111–114. ACM Press, New York (2005)CrossRefGoogle Scholar
  25. 25.
    Weiser, M.: Program slicing. In: ICSE 1981: Proceedings of the 5th international conference on Software engineering, Piscataway, NJ, USA, pp. 439–449. IEEE Press, Los Alamitos (1981)Google Scholar
  26. 26.
    Agrawal, H., Horgan, J.R.: Dynamic program slicing. In: Proceedings of the ACM SIGPLAN 1990 Conference on Programming Language Design and Implementation, White Plains, NY, vol. 25, pp. 246–256 (1990)Google Scholar
  27. 27.
    Korel, B., Laski, J.: Dynamic slicing of computer programs. J. Syst. Softw. 13(3), 187–195 (1990)CrossRefzbMATHGoogle Scholar
  28. 28.
    Manna, Z., Pnueli, A.: The temporal logic of reactive and concurrent systems. Springer, New York (1992)CrossRefzbMATHGoogle Scholar
  29. 29.
    Buchi, R.: On a decision method in restricted second order arithmetic. In: Press, S.U. (ed.) Proc. of the Int. Congress of Logic, Methodology and Philosophy of Science, pp. 1–11 (1960)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2006

Authors and Affiliations

  • Daniela Colangelo
    • 1
  • Daniele Compare
    • 1
  • Paola Inverardi
    • 2
  • Patrizio Pelliccione
    • 2
  1. 1.Selex CommunicationsL’AquilaItaly
  2. 2.Computer Science DepartmentUniversity of L’AquilaL’AquilaItaly

Personalised recommendations