ABSTRACT
Software development projects are difficult to manage, in general, due to the friction between completing system features and, at the same time, obtaining a high degree of code quality to ensure maintainability of the system in the future. A major challenge of this optimization problem is that code quality is less visible to stakeholders in the development process, particularly, to the management. In this paper, we describe an approach for automated software analysis and monitoring of both quality-related code metrics and development activities by means of software maps. A software map represents an adaptive, hierarchical representation of software implementation artifacts such as source code files being organized in a modular hierarchy. The maps can express and combine information about software development, software quality, and system dynamics; they can systematically be specified, automatically generated, and organized by templates. The maps aim at supporting decision-making processes. For example, they facilitate to decide where in the code an increase of quality would be beneficial both for speeding up current development activities and for reducing risks of future maintenance problems. Due to their high degree of expressiveness and their instantaneous generation, the maps additionally serve as up-to-date information tools, bridging an essential information gap between management and development, improve awareness, and serve as early risk detection instrument. The software map concept and its tool implementation are evaluated by means of two case studies on large industrially developed software systems.
- Beck, K.: Extreme Programming Explained: Embrace Change, Addison-Wesley Professional, 1999. Google ScholarDigital Library
- Correia, J., Kanellopoulos, Y., and Visser, J.: A survey-based study of the mapping of system properties to ISO/IEC 9126 maintainability characteristics, IEEE Int'l Conf. on Software Maintenance, 2009, 61--70.Google Scholar
- Eick, S., Steffen, J., and Sumner, Jr.: Seesoft - A Tool for Visualizing Line Oriented Software Statistics, IEEE Trans. on Software Engineering, 1992, 18, 957--968. Google ScholarDigital Library
- Froehlich, J. and Dourish, P.: Unifying Artifacts and Activities in a Visual Tool for Distributed Software Development Teams, Proc. of the Int'l Conf. on Software Engineering, 2004, 387--396. Google ScholarDigital Library
- Gaudin, O.: Evaluate your technical debt with Sonar, http://www.sonarsource.org/evaluate-your-technical-debtwith-sonar.Google Scholar
- Healey, C., Booth, K., and Enns, J.: High-speed visual estimation using preattentive processing, ACM Trans. Comput.-Hum. Interact., 1996, 3, 107--135. Google ScholarDigital Library
- Lehman, M. and Belady, L.: Program evolution: processes of software change, 1985, Academic Press Professional, Inc. Google ScholarDigital Library
- Parnas, David: Software aging. In: International Conference on Software Engineering, 1994, pp. 279--287. Google ScholarDigital Library
- Shneiderman, Ben: Tree visualization with tree-maps: 2-d space-filling approach. In: ACM Transactions on Graphics 11 (1992), No. 1, pp. 92--99. Google ScholarDigital Library
- Ware, Colin: Information Visualization: Perception for Design. Morgan Kaufmann Publishers, 2004. Google ScholarDigital Library
- Wettel, R. and Lanza, M.: Visualizing software systems as cities, Proc. of the IEEE Int'l Workshop on Visualizing Software For Understanding and Analysis, 2007, 92--99.Google ScholarCross Ref
- Wettel, R. and Lanza, M.: Visual Exploration of Large-Scale System Evolution, Proc. of the IEEE Working Conf. on Reverse Engineering, 2008, 219--228. Google ScholarDigital Library
Index Terms
- Monitoring code quality and development activity by software maps
Recommendations
Software quality and assurance in waterfall model and XP: a comparative study
Dealing with an increasingly volatile organizational environment is a serious challenge for managers of any software development. Traditional formal software development methodologies can be characterized as reflecting linear, sequential processes, and ...
Software Development Worldwide: The State of the Practice
The worldwide boom in IT use has spurred software development efforts around the globe. The authors' research program focuses on collecting quantitative data about several countries' current practices and performance, their adoption of competing models ...
DevOps and software quality: A systematic mapping
AbstractQuality pressure is one of the factors affecting processes for software development in its various stages. DevOps is one of the proposed solutions to such pressure. The primary focus of DevOps is to increase the deployment speed, ...
Comments