Measuring modularity in software analysis phase

Name
Katrin Toe
Abstract
Modularity is a general set of design principles for managing the complexity of large systems. It involves breaking down the system into separate, independent components that communicate with each other through standardized interfaces or rules and specifications. Modularity creates options and makes development and maintenance process much easier to handle. The topic of modularity is more often the focal point when designing the software architectures. However, the aim of this work is to investigate aspects related to modularity in the system analysis phase that precedes and dominates coding. Although the decisions of system analyst are influenced by software architecture and development environment, there are still many choices how to divide the system into components and how the components are connected. If the aspects of modularity are ignored by analysts, those decisions could have cascading negative effect on the system quality while logical and clear structure of components and dependencies will facilitate further development and maintenance process. In this thesis we investigate how modularity can be achieved on a system analysis phase. To assess design modularity quantitatively and objectively, we propose a framework to measure the modularity properties in a software analysis phase. A goal-question-metric approach is used to derive the different metrics in this framework. More specifically, we define measures to quantify coupling, cohesion, complexity and size of components based on the artifacts of system analysis. In order to validate the framework, a case study is conducted. Firstly, dependency analysis tool was developed that represents components dependencies in a dependency structure matrix form. The input of this tool is documentation. Secondly, the matrix is processed according to the coupling and complexity metrics defined before. Size of the component is measured separately. The measurement results can then be used to compare different artifacts of system analysis in terms of their modularity and identify high-risk components that might require redesign. System analyst can apply the method early before coding in order to indicate the possible problem areas of analysis more efficiently.
Graduation Thesis language
Estonian
Graduation Thesis type
Master - Computer Science
Supervisor(s)
Peep Küngas
Defence year
2012
 
PDF