On the interplay of architecture and collaboration on software evolutjion and maintenance

  • Authors:
  • Yuanfang Cai;Sunny Wong

  • Affiliations:
  • Drexel University;Drexel University

  • Venue:
  • On the interplay of architecture and collaboration on software evolutjion and maintenance
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

With the growing popularity of globally distributed teams in software development, software architectures must be designed and maintained with an organizational perspective in mind. Software architects often decompose systems into modules that are intended to be developed and maintained independently and in parallel. However, prevailing techniques for modularizing software designs often rely on intuition and experience, leading to modules that are not guaranteed to be independent tasks. Even when a design is well modularized at the beginning, the software can evolve in ways that deviate from the designed modular structure—making tasks that are initially designed to be independent, not actually independent. We lack the theories, models, and tools to address these issues, and support the parallel development and maintenance of software. Therefore, our research objectives are to develop design-centric theories and models to: (1) facilitate modularity assessment in terms of task parallelism, and (2) to identify design problems that harm task parallelism. To reach these objectives, in this thesis, we contribute a design-centric framework for maximizing concurrent work in software development and maintenance. Specifically, we contribute: (1) a scalable formal model of generalized software dependencies, (2) a model for automatically identifying tasks that can be assigned for parallel development, (3) an approach for identifying and prioritizing modularity violations that degrade task parallelism, and (4) a theory that takes the temporal dimension of revision history into consideration for better supporting software modularity analysis in the context of software evolution.