Ensuring software maintainability at software architecture level using architectural patterns

Document Type : Original Article


1 Department of Mathematics and Computer Science, Amirkabir University of Technology (Tehran Polytechnic), Tehran, Iran

2 Department of Engineering, Ilam University, Ilam, Iran


Software architecture is known to be an effective tool with regards to improving software quality attributes. Many quality attributes such as maintainability are architecture dependent, and as such, using an appropriate architecture is essential in providing a sound foundation for the development of highly maintainable software systems. An effective way to produce a well-built architecture is to utilize standard architectural patterns. Although the use of a particular architectural pattern cannot have a preserving effect on software maintainability, the mere conformance of a system to any architecture cannot guarantee the system’s high maintainability. The use of an inappropriate architecture can seriously undermine software maintainability at lower levels. In this article, the effect of standard architectural patterns on software maintainability quality attributes is investigated. We develop a quality model for maintainability quality attributes, which is later used to compare various standard architectural patterns. We finish by investigating two real-world experiences regarding the application of a particular pattern to two different existing architectures, exploring the effect of the change in architecture on maintainability quality attributes.


[1] F. Bachmann, R. L. Nord, I. Ozkaya, Architectural tactics to support rapid and agile stability, CrossTalk (SEI), May/June-2012: 20-25.
[2] L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, 2nd Edition, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2003.
[3] P. Bengtsson, Towards maintainability metrics on software architecture: An adaptation of object-oriented metrics, in: First Nordic Workshop on Software Architecture (NOSA’98), Ronneby, 1998.
[4] P. Bengtsson, N. Lassing, J. Bosch, H. van Vliet, Architecture-level modifiability analysis (alma), Journal of Systems and Software 69 (1) (2004) 129-147.
[5] B. W. Boehm, J. R. Brown, M. Lipow, Quantitative evaluation of software quality, in: Proceedings of the 2nd international conference on Software engineering, IEEE Computer Society Press, (1976) 592-605.
[6] S. Bohner, Impact analysis in the software change process: a year 2000 perspective, in: Software Maintenance 1996, Proceedings., International Conference on Software Maintenance, (1996) 42-51.
[7] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal, Pattern-oriented Software Architecture: A System of Patterns, John Wiley & Sons, Inc., New York, NY, USA, 1996.
[8] P. Clements, D. Garlan, L. Bass, J. Stafford, R. Nord, J. Ivers, R. Little, Documenting software architectures: views and beyond, Pearson Education, 2002.
[9] J. Deacon, Model-view-controller (mvc) architecture, Online][Citado em: 10 de mar¸co de 2006.] http://www. jdl. co. uk/briefings/MVC. pdf (2009).
[10] R. G. Dromey, A model for software product quality, IEEE Transactions Software Engineering 21 (2) (1995) 146-162.
[11] R. Dromey, Cornering the chimera [software quality], Software, IEEE 13 (1) (1996) 33-43.
[12] D. G. Firesmith, Common concepts underlying safety security and survivability engineering, Tech. rep., Carnegie Mellon Software Engineering Institute - Technical Note CMU/SEI-2003-TN-033 (2003).
[13] M. Fowler, Refactoring: improving the design of existing code, Addison-Wesley Professional, 1999.
[14] J. E. Gaffney Jr, Metrics in software quality assurance, in: Proceedings of the ACM’81 conference, ACM (1981) 126-130.
[15] J. Garc´ıa-Mart´ın, M. Sutil-Martin, Virtual machines and abstract compilers-towards a compiler pattern language, in: In Proceeding of EuroPlop 2000, Irsee, Citeseer, 2000.
[16] D. Garlan, M. Shaw, An introduction to software architecture, Advances in software engineering and knowledge engineering 1 (1993) 1-40.
[17] R. B. Grady, Practical Software Metrics for Project Management and Process Improvement, Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1992.
[18] P. A. Grubb, A. A. Takang, Software maintenance: concepts and practice, World Scientific, 2003.
[19] B. Hayes-Roth, A blackboard architecture for control, Artificial intelligence 26 (3) (1985) 251-321.
[20] P. Heged˝us, D. B´an, R. Ferenc, T. Gyim´othy, Myth or reality? analyzing the effect of design patterns on software maintainability, in: Computer Applications for Software Engineering, Disaster Recovery, and Business Continuity, Springer, (2012) 138-145.
[21] I. Heitlager, T. Kuipers, J. Visser, A practical model for measuring maintainability, in: Quality of Information and Communications Technology, 2007. QUATIC 2007. 6th International Conference on the, IEEE, (2007) 30-39.
[22] F. Hoffman, Architectural software patterns and maintainability: A case study, Ph.D. thesis, University of Sk¨ovde (2001). [23] ISO/IEC, Iso standard 9126: Software engineering - product quality, parts 1, 2 and 3 (2001 (part 1), 2003 (parts 2 and 3)). [24] I. Jacobson, G. Booch, J. Rumbaugh, The Unified Software Development Process, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999.
[25] H. Kabaili, R. K. Keller, F. Lustman, Cohesion as changeability indicator in object-oriented systems, in: Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, CSMR ’01, IEEE Computer Society, Washington, DC, USA, (2001) 39-46.
[26] P. Kruchten, Architectural blueprints - the ”4+1” view model of software architecture, Tutorial Proceedings of Tri-Ada 95 (1995) 540-555.
[27] M. Leotta, F. Ricca, G. Reggio, E. Astesiano, Comparing the maintainability of two alternative architectures of a postal system: Soa vs. non-soa, in: Software Maintenance and Reengineering (CSMR), 2011 15th European Conference on, IEEE, (2011) 317-320.
[28] N. L´evy, F. Losavio, A. Matteo, Comparing architectural styles: Broker specializes mediator, in: Proceedings of the Third International Workshop on Software Architecture, ISAW ’98, ACM, New York, NY, USA, (1998) 93-96.
[29] B. P. Lientz, E. B. Swanson, Software Maintenance Management, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1980.
[30] L. Liu, X.-D. Zhu, X.-L. Hao, Maintainability metrics of software architecture based on symbol connector, in: Quality, Reliability, Risk, Maintenance, and Safety Engineering (QR2MSE), 2013 International Conference on, IEEE Computer Society Press, (2013) 1564-1567.
[31] J. A. McCall, P. K. Richards, G. F. Walters, Factors in software quality. volume-iii. preliminary handbook on software quality for an acquisition manager, Tech. rep., DTIC Document, 1977.
[32] S. McConnell, Code complete, O’Reilly Media, Inc., 2004.
[33] R. T. Monroe, A. Kompanek, R. Melton, D. Garlan, Architectural styles, design patterns, and objects, Software, IEEE 14 (1) (1997) 43-52.
[34] S. Muthanna, K. Kontogiannis, K. Ponnambalam, B. Stacey, A maintainability model for industrial software systems using design level metrics, in: Reverse Engineering, 2000. Proceedings. Seventh Working Conference on, IEEE Computer Society Press, (2000) 248-256.
[35] Y. Ping, K. Kontogiannis, T. C. Lau, Transforming legacy web applications to the mvc architecture, in: Software Technology and Engineering Practice, 2003. Eleventh Annual International Workshop on, IEEE, (2003) 133-142.
[36] L. Prechelt, B. Unger, W. F. Tichy, P. Br¨ossler, L. G. Votta, A controlled experiment in maintenance comparing design patterns to simpler solutions, IEEE Trans. Softw. Eng. 27 (12) (2001) 1134-1144.
[37] R. Pressman, Software Engineering: A Practitioner’s Approach, 6th Edition, McGraw-Hill, Inc., New York, NY, USA, 2005.
[38] J. Sanders, E. Curran, Software Quality: A Framework for Success in Software Development and Support, ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 1994.
[39] M. Shaw, P. Clements, A field guide to boxology: Preliminary classification of architectural styles for software systems, in: Computer Software and Applications Conference, 1997. COMPSAC’97. Proceedings., The TwentyFirst Annual International, IEEE, (1997) 6-13.
[40] M. Shaw, D. Garlan, Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1996.
[41] M. Shaw, Some patterns for software architectures, Pattern languages of program design 2 (1996) 255-269.
[42] O. Silva, A. Garcia, C. Lucena, The reflective blackboard pattern: Architecting large multi-agent systems, in: Software engineering for large-scale multi-agent systems, Springer, (2003) 73-93.
[43] J. Vlissides, R. Helm, R. Johnson, E. Gamma, Design patterns: Elements of reusable object-oriented software, Reading: Addison-Wesley 49 (1995) 120.
[44] M. V¨olter, M. Kircher, U. Zdun, Remoting Patterns: Foundations of Enterprise, Internet and Realtime Distributed Object Middleware, Wiley. com, 2005.