International Conference on Software Quality

Software Quality. The Future of Systems- and Software Development pp 97-108 | Cite as

Experiences from Monitoring Effects of Architectural Changes

Conference paper
Part of the Lecture Notes in Business Information Processing book series (LNBIP, volume 238)

Abstract

A common situation is that an initial architecture has been sufficient in the initial phases of a project, but when the size and complexity of the product increases the architecture must be changed. In this paper experiences are presented from changing an architecture into independent units, providing basic reuse of main functionality although giving higher priority to independence than reuse. An objective was also to introduce metrics in order to monitor the architectural changes. The change was studied in a case-study through weekly meetings with the team, collected metrics, and questionnaires. The new architecture was well received by the development team, who found it to be less fragile. Concerning the metrics for monitoring it was concluded that a high abstraction level was useful for the purpose.

Keywords

Software architecture Software metrics 

Notes

Acknowledgement

This work was funded by Vinnova in the ITEA2 project 12018 SCALARE.

References

  1. 1.
    Bergman, B., Klevsjö, B.: Quality, from Customer Needs to Customer Satisfaction, 3rd edn. Studentlitteratur, Lund (2010)Google Scholar
  2. 2.
    Fenton, N., Pfleeger, S.L.: Software Metrics, a Rigorous and Practical Approach, 2nd edn. PWS Publishing Company, Boston (1997)Google Scholar
  3. 3.
    Betz, S., Wohlin, C.: Alignment of business, architecture, process, and organisation in a software development context. In: Proceedings of the International Symposium on Empirical Software Engineering and Measurement (ESEM), pp. 239–242 (2012)Google Scholar
  4. 4.
    Martin, R.C.: Agile Software Development Principles, Patterns, and Practices, 2nd edn. Prentice-Hall, Upper Saddle River (2003)Google Scholar
  5. 5.
    Chikofsky, E., Cross II, J.H.: Reverse engineering and design recovery: a taxonomy. IEEE Softw. 7(1), 13–17 (1990)CrossRefGoogle Scholar
  6. 6.
    Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126–139 (2004)CrossRefGoogle Scholar
  7. 7.
    Seriai, A., Bastide, G., Oussalah, M.: Transformation of centralized software components into distributed ones by code refactoring. In: Eliassen, F., Montresor, A. (eds.) DAIS 2006. LNCS, vol. 4025, pp. 332–346. Springer, Heidelberg (2006) CrossRefGoogle Scholar
  8. 8.
    Eloff, J.: Software restructuring: implementing a code abstraction transformation. In: Proceedings of the 2002 Annual Research Conference of the South African Institute of Computer Scientists and Information Technologists on Enablement Through Technology, SAICSIT 2002, Republic of South Africa, pp. 83–92 (2002)Google Scholar
  9. 9.
    Arnold, R.: Software restructuring. IEEE Softw. 77(4), 607–617 (1989)Google Scholar
  10. 10.
    Ivkovic, I., Kontogiannis, K.: A framework for software architecture refactoring using model transformations and semantic annotations. In: 10th European Conference on Software Maintenance and Reengineering (CSMR), March 2006Google Scholar
  11. 11.
    Rizvi, S., Khanam, Z.: A methodology for refactoring legacy code. In: International Conference on Electronics Computer Technology (ICECT 2011), pp. 198–200 (2011)Google Scholar
  12. 12.
    Aversano, L., Molfetta, M., Tortorella, M.: Evaluating architecture stability of software projects. In: Working Conference on Reverse Engineering, pp. 417–424 (2013)Google Scholar
  13. 13.
    Tonu, S.A., Ashkan, A., Tahvildari, L.: Evaluating architectural stability using a metric-based approach. In: Proceedings of the European Conference on Software Maintenance and Reengineering, (CSMR), Bari, Italy, pp. 261–270 (2006)Google Scholar
  14. 14.
    Bahsoon, R., Emmerich, W.: Evaluating architectural stability with real options theory. In: IEEE International Conference on Software Maintenance, ICSM, Chicago, IL, United States, pp. 443–447 (2004)Google Scholar
  15. 15.
    Figueiredo, E., Cacho, N., Garcia, A., Ferrari, F., Khan, S., Sant’Anna, C., Monteiro, M., Soares, S., Filho, F.C., Kulesza, U., Dantas, F.: Evolving software product lines with aspects: an empirical study on design stability. In: International Conference on Software Engineering, Leipzig, Germany, pp. 261–270 (2008)Google Scholar
  16. 16.
    Martin, R.C.: OO design quality metrics. Technical report, Object Mentor (1994)Google Scholar
  17. 17.
    Runeson, P., Höst, M., Rainer, A., Regnell, B.: Case Study Research in Software Engineering - Guidelines and Examples. Wiley, Hoboken (2012)CrossRefGoogle Scholar
  18. 18.
    Robson, C.: Real World Research, 2nd edn. Blackwell, Oxford (2002)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  1. 1.Department of Computer ScienceLund UniversityLundSweden

Personalised recommendations