Software development transforms the conceptual models of the application domain into the formal models of the implementation (programming) domain (Blum 1989). The application domain is where the conceptual models, which describe what is to be done and possible approaches for a solution, are generated. These conceptual models account for many of the "essential difficulties" in software development (Brooks 1987). Research investigating software development, however, has focused on the implementation domain or computing element (Glass and Vessey 1992). Recent thinking indicates that investigations into the problems of software development must begin to consider the application domain (e.g., Guindon 1990). Software maintenance is one task where application domain knowledge may play an important role. Maintenance remains important to organizations because maintenance costs, as a percentage of software expense, are expected to remain relatively constant (Foster 1991). Of maintenance activities, this research investigates enhancement because it accounts for the greatest percentage of person-hours expended on maintenance (Lientz and Soloway 1980, Abran and Nguyenkim 1991). To enhance a computer program, programmers need to comprehend the existing program. It is estimated that maintenance programmers devote 50%-90% of their time to understanding the existing program, with the remaining 10%-50% spent implementing the enhancement (Robson et al. 1991). The present research is an experimental investigation of the role of application domain knowledge in comprehension and enhancement. Establishing the importance of application domain knowledge in comprehension and enhancement may provide insight into why these tasks account for such a high percentage of software related costs.
Shaft, Teresa M., "Application Domain Knowledge in Computer ProgramComprehension and Enhancement" (1995). AMCIS 1995 Proceedings. 38.