PPIG 2005 - 17th Annual Workshop
Representation-Oriented Software Development: A cognitive approach to software engineering
John J. Sung
Abstract: Software development is necessarily a cognitive process. Software engineers (cognitive entities) develop software to maximize productivity while delivering quality software on time. In essence, issues in software engineering can be conceptualized as a cognitive optimization problem. The utility of this approach is illustrated by an example in which a cognitive semantic approach is applied in analyzing the relationship between representations used in describing aspectoriented programming (AOP) [14]. This approach is applied within the framework of distributed cognition such that humans and computers involved in the software development are conceptualized as one cognitive system that may be optimized. Optimization of the cognitive system involves analyzing the human cognition in understanding software and opportunistically offloading the identified human cognition onto the computer. The analysis of AOP leads to represented-oriented software development (ROSD), in which the problem of creating, manipulating and maintaining representations is its main concern.