Responding to late software changes is one of the key areas of risk in software development, but is often unavoidable. The major way to deal with the problem is during software design, making the architecture flexible, which is too often not achieved. This research addresses this problem by studying the relationship between changes and software architecture. The project involves the mining of existing change and defect data from our collaborators to formulate representative taxonomies of changes, and defects, and to understand how effective various QA strategies are for dealing with them, running of classroom studies to test specific hypotheses resulting from the data mining, and the analysis of the changes and defects encountered on industrial projects; recommendation of a suite of QA strategies for the expected defect profile; and controlled observation of the effectiveness of recommendations.
The research will contribute to Science of Design by producing a model that allows software developers to reason about proposed changes and their impact on system quality; a method for evaluating technique composability; increased understanding of the relations between faults, changes and architecture; and increased understanding of the relationship between design process and the quality of the resulting product.