|Authors||A. F. Yamashita|
|Title||A Multi-Method Approach for Evaluating Software Maintainability and Comprehensibility|
|Afilliation||Software Engineering, Software Engineering|
|Publication Type||Talks, contributed|
|Year of Publication||2008|
|Location of Talk||Doctoral Symposium at Conference on Psychology of Programming|
The maintainability of software system is a critical determinant of software costs, yet a very difficult property to evaluate. The diversity of contexts and situations makes it difficult to generalize findings from individual studies, and the inherent complexity of software maintenance (encompassing technological, human dynamics and cognition aspects) make the assessment of maintainability a difficult task. In those regards, we have a similar viewpoint as Pizka & Deißenböck: “Maintainability is not solely a property of a system but touches three different dimensions: a) The skills of the organization performing software maintenance, b) Technical properties of the system under consideration and c) Requirements engineering”. Insofar, no unified theory is available regarding how to use design attributes of a software system (represented either by structural measures , structural symptoms or a combination of both) to evaluate accurately the maintainability of a software system. Comprehension approaches such as opportunistic comprehension (Letovsky, 1986) and opportunistic recognition of program plans (Soloway & Ehrlich, 1984) assume that a knowledge base is composed by the programmer expertise and their background knowledge. O'Brian proposes that understanding large commercial software systems is driven by an information requirement (O'Brien, 2003). This suggests that program comprehension during maintenance is driven by the programmers experience and the information need encompassed within the task. Therefore, we propose a more holistic approach to maintainability evaluations than has been taken in most earlier studies. We combine not only design attributes but incorporate also maintenance tasks and developers skills into the analysis. A study performed by (Anda,2007) suggested that a combination of expert judgment and analysis of software design attributes is likely to be a viable evaluation approach, since they address different attributes and dimensions of a system. We also conjecture that expert judgment might incorporate the analysis of contextual and cognitive factors into the maintainability evaluation, enabling more realistic and flexible models that can be used in combination with the already existing software design attributes analysis. This PhD work builds upon this premise and intends to undertake several follow-up studies from the findings by Anda, focusing on three main areas: (a) Determine the impact of different software design attributes on the ease/difficulty of different maintenance tasks, (b) Outline a framework for combining program/design analysis (which uses software design attributes) and expert judgment in maintainability evaluations and (c) Determine the adequacy/qualification of expert knowledge.