Tampere University of Technology

TUTCRIS Research Portal

Ohjelmistometriikat arkkitehtuuritasolla

Research output: Book/ReportMaster's ThesisScientific

Details

Original languageEnglish
PublisherUniversity of Turku
Number of pages185
Publication statusPublished - Jun 2009
Externally publishedYes
Publication typeG2 Master's thesis, polytechnic Master's thesis

Abstract

Software metrics and architectures are two very different kinds of tools for improving the quality of software. The measurement of software helps to identify the weak parts of a product, a resource or a process. Thus, it is possible to focus additional work on improving the quality of these pieces of software. The objective is to prevent possible faults leading into a failure in the software.

Software architectures are high-level tools for software design. The architectures enable one to divide a complex program into smaller components, which makes the implementation easier than working with the original program as a whole. The architecture consists of components i.e. software units which are reusable, independent and offer uniform services.

This master’s thesis examines software metrics on the architectural level. The architectural level can be divided into two main categories, the component and system levels. The metrics for both sublevels are presented in the study. This thesis reviews the classic software metrics presented in the the 1960–80s and newer, object-oriented metrics. Some of the most central tools and architectural styles in software design are also presented.

This thesis discusses a list of measurable characteristics for the architectural levels. The Martin’s metric, presented by Robert C. Martin in his book Agile Software Development: Principles, Patterns, and Practices (2002), is the most extensive component level measurement. The thesis also presents a theoretical validation and an empirical test of Martin’s metric.

With a few exceptions in the theoretical test, Martin’s metric worked as a theoretically valid software metric. The thesis presents an improved version of Martin’s component cohesion metric. The results of the empirical tests show that five open source projects follow the principles of Martin’s metric. The theoretical and empirical tests combined lead to the conclusion that Martin’s metric is a useful, valid software metric.