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