Use of a multidimensional approach to study the evolution of software complexity

Raghvinder S. Sangwan, Pamela Vercellone-Smith, Colin Neill

Research output: Contribution to journalArticle

2 Citations (Scopus)

Abstract

The ability of a software system to survive is not only dependent on a good architectural design, but also the effective management of architectural changes as the system evolves over time. With the emergence of incremental and evolutionary development approaches, this evolution is no longer restricted to the maintenance phase of development, but now manifests itself during system elaboration and construction. Structural complexity is often inadvertently introduced as the number of interdependencies between parts of the system grows and design goals are violated. Such increasing complexity may paradoxically impede its survivability. Software architects must, therefore, learn to track, manage, and mitigate software complexity since, left unchecked, it can lead to systems that are difficult to maintain and evolve. There are two key aspects of software systems that must be monitored in order to effectively manage the inherent complexity that is systematically introduced in evolving systems: the stability of intermediate forms must be preserved, and structural complexity must be monitored to prevent incidental (excessive) complexity from being introduced. While these key aspects of software architecture are often monitored independently in evolving systems, an integrative metric-based approach would provide a more comprehensive means of assessing the impact that architectural changes have on overall system quality. In this study, an integrative, multidimensional approach was used to examine the evolutionary changes that occurred in the architectural stability and structural complexity over 21 releases of Hibernate, a large-scale open source software system.

Original languageEnglish (US)
Pages (from-to)299-310
Number of pages12
JournalInnovations in Systems and Software Engineering
Volume6
Issue number4
DOIs
StatePublished - Dec 1 2010

Fingerprint

Architectural design
Software architecture
Open source software

All Science Journal Classification (ASJC) codes

  • Software

Cite this

@article{62507676b0e643eeabfd28fd451e2035,
title = "Use of a multidimensional approach to study the evolution of software complexity",
abstract = "The ability of a software system to survive is not only dependent on a good architectural design, but also the effective management of architectural changes as the system evolves over time. With the emergence of incremental and evolutionary development approaches, this evolution is no longer restricted to the maintenance phase of development, but now manifests itself during system elaboration and construction. Structural complexity is often inadvertently introduced as the number of interdependencies between parts of the system grows and design goals are violated. Such increasing complexity may paradoxically impede its survivability. Software architects must, therefore, learn to track, manage, and mitigate software complexity since, left unchecked, it can lead to systems that are difficult to maintain and evolve. There are two key aspects of software systems that must be monitored in order to effectively manage the inherent complexity that is systematically introduced in evolving systems: the stability of intermediate forms must be preserved, and structural complexity must be monitored to prevent incidental (excessive) complexity from being introduced. While these key aspects of software architecture are often monitored independently in evolving systems, an integrative metric-based approach would provide a more comprehensive means of assessing the impact that architectural changes have on overall system quality. In this study, an integrative, multidimensional approach was used to examine the evolutionary changes that occurred in the architectural stability and structural complexity over 21 releases of Hibernate, a large-scale open source software system.",
author = "Sangwan, {Raghvinder S.} and Pamela Vercellone-Smith and Colin Neill",
year = "2010",
month = "12",
day = "1",
doi = "10.1007/s11334-010-0133-0",
language = "English (US)",
volume = "6",
pages = "299--310",
journal = "Innovations in Systems and Software Engineering",
issn = "1614-5046",
publisher = "Springer London",
number = "4",

}

Use of a multidimensional approach to study the evolution of software complexity. / Sangwan, Raghvinder S.; Vercellone-Smith, Pamela; Neill, Colin.

In: Innovations in Systems and Software Engineering, Vol. 6, No. 4, 01.12.2010, p. 299-310.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Use of a multidimensional approach to study the evolution of software complexity

AU - Sangwan, Raghvinder S.

AU - Vercellone-Smith, Pamela

AU - Neill, Colin

PY - 2010/12/1

Y1 - 2010/12/1

N2 - The ability of a software system to survive is not only dependent on a good architectural design, but also the effective management of architectural changes as the system evolves over time. With the emergence of incremental and evolutionary development approaches, this evolution is no longer restricted to the maintenance phase of development, but now manifests itself during system elaboration and construction. Structural complexity is often inadvertently introduced as the number of interdependencies between parts of the system grows and design goals are violated. Such increasing complexity may paradoxically impede its survivability. Software architects must, therefore, learn to track, manage, and mitigate software complexity since, left unchecked, it can lead to systems that are difficult to maintain and evolve. There are two key aspects of software systems that must be monitored in order to effectively manage the inherent complexity that is systematically introduced in evolving systems: the stability of intermediate forms must be preserved, and structural complexity must be monitored to prevent incidental (excessive) complexity from being introduced. While these key aspects of software architecture are often monitored independently in evolving systems, an integrative metric-based approach would provide a more comprehensive means of assessing the impact that architectural changes have on overall system quality. In this study, an integrative, multidimensional approach was used to examine the evolutionary changes that occurred in the architectural stability and structural complexity over 21 releases of Hibernate, a large-scale open source software system.

AB - The ability of a software system to survive is not only dependent on a good architectural design, but also the effective management of architectural changes as the system evolves over time. With the emergence of incremental and evolutionary development approaches, this evolution is no longer restricted to the maintenance phase of development, but now manifests itself during system elaboration and construction. Structural complexity is often inadvertently introduced as the number of interdependencies between parts of the system grows and design goals are violated. Such increasing complexity may paradoxically impede its survivability. Software architects must, therefore, learn to track, manage, and mitigate software complexity since, left unchecked, it can lead to systems that are difficult to maintain and evolve. There are two key aspects of software systems that must be monitored in order to effectively manage the inherent complexity that is systematically introduced in evolving systems: the stability of intermediate forms must be preserved, and structural complexity must be monitored to prevent incidental (excessive) complexity from being introduced. While these key aspects of software architecture are often monitored independently in evolving systems, an integrative metric-based approach would provide a more comprehensive means of assessing the impact that architectural changes have on overall system quality. In this study, an integrative, multidimensional approach was used to examine the evolutionary changes that occurred in the architectural stability and structural complexity over 21 releases of Hibernate, a large-scale open source software system.

UR - http://www.scopus.com/inward/record.url?scp=78649335309&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=78649335309&partnerID=8YFLogxK

U2 - 10.1007/s11334-010-0133-0

DO - 10.1007/s11334-010-0133-0

M3 - Article

AN - SCOPUS:78649335309

VL - 6

SP - 299

EP - 310

JO - Innovations in Systems and Software Engineering

JF - Innovations in Systems and Software Engineering

SN - 1614-5046

IS - 4

ER -