Assessing the complexity of software architecture

  • Authors:
  • Mohsen AlSharif;Walter P. Bond;Turky Al-Otaiby

  • Affiliations:
  • Florida Institute of Technology, Melbourne, Florida;Florida Institute of Technology, Melbourne, Florida;Florida Institute of Technology, Melbourne, Florida

  • Venue:
  • ACM-SE 42 Proceedings of the 42nd annual Southeast regional conference
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

A central activity of software architecture design is decomposing the system into subsystems (i.e. components) that work together to satisfy the required functionality. The purpose of this activity is to reduce problem complexity into smaller manageable parts. Complexity can never be totally eliminated; however the designer/architect can reduce it.The decomposition process is an art form; the architect must decide whether to assign a specific functionality to a given component or to defer some or all of the functionality to other components, with a goal of minimizing complexity. Deferring work decreases the responsibilities of a component (intracomponent complexity) but also may increase the dependencies between components (inter-component complexity).In this paper, our goal is to formulate an approach that identifies and measures those complexity factors that reflect interand intra-complexity for the purpose of introducing a new metric for assessing the overall complexity of software architecture. To accomplish this, we have chosen to use Full Function Points (FFP) methodology, which is the latest form of Functional Size Measure (FSM), as a building block for measuring complexity.However, since FFP was designed to measure the size of architecture; it fails to address some important issues with regard to complexity. Therefore, we identify those areas of weakness for FFP and exploit them to measure overall system complexity. The main feature of the approach is the integration of Full Function Points measure with a specification of the architecture to evaluate its overall complexity.