International Conference on Computer Systems and Technologies - CompSysTech’12 Improving Software Quality by Improving Architecture Management Robert Dbrowski, Krzysztof Stencel, Grzegorz Timoszuk Abstract: For a software-intensive system, software quality measures how well the software is designed and how well the software conforms to that design, whereas architecture of a software system is typically defined as the fundamental organization of the system embodied in its components, their relationships to each other and the environment, and the principles governing the system's design and evolution. Obviously, as long as there were no software systems, governing their architecture was no problem at all; when there were only small systems, governing their architecture became a mild problem; and now we have gigantic software systems, and governing their architecture has become an equally gigantic problem (to paraphrase Edsger Dijkstra). In this paper we propose a unified approach to the problem of governing (or managing) the knowledge about architecture of software systems and demonstrate by example its impact on a certain software project. First we postulate that only the holistic approach that supports continuous integration and verification for all system architectural artifacts is one worth taking. Next we demonstrate by example how a concrete large software project being developed in an agile approach is being perceived using the model in question Keywords: architecture, graph, metric, model, software I. INTRODUCTION LoXiM [12] is an object oriented, semistructured database management system being constructed from scratch at Warsaw University. Being a research project, it has been developed by a significant number of researchers and students frequently changing over time and working in peek activity periods. During verification of the project's first release a significant number of errors have been observed, in particular poor quality of the source code obtained, coding standards not being uniformly preserved, incorrect architectural decisions being made, interfaces being disobeyed, requirements being missed, etc. Those issues have been identified and promptly addressed, i.e. software design artifacts have been catalogued and improved, coding standards have been written down, interfaces have been remodeled, etc. Eventually a major refactoring has been conducted. However during verification of consecutive releases similar problems have been recurrently observed. During root-cause analysis it has been concluded that due to its temporal organization and volatile development team, the project suffered heavily from poor how of information and development team's inability to properly manage project's architectural knowledge. This paper provides a unified and systematic perspective that addresses those issues for projects like LoXiM and similar. Clearly a reliable how of information among all project stakeholders (i.e. users, architects, programmers) is of fundamental importance to the quality of any software being developed and to the predictability of its development process, and the communication problems are among the key issues that make development of large-scale software projects difficult [7]; and clearly the problems escalate more than linearly with respect to the complexity of projects and volatility of project teams. Many of those problems result from the lack of precision (i.e. informal artifacts) or problems with identifying and enforcing dependencies between those artifacts (i.e. between models and source code). These problems have already been identified and software engineering has been focusing on resolving those challenges. In particular a number of software development methodologies, design standards, development languages and configuration management tools have emerged. However it still remains a challenge for a single project to integrate those methodologies, standards and tools into Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. CompSysTech'12, June 22-23, 2012, Ruse, Bulgaria. Copyright ©2012 ACM 978-1-4503-1193-9/12/06...$10.00. 208