Problem representation and rule development in object-oriented software development

This research lays out a series of studies that build and empirically refine a cognitive framework describing how software designers identify objects and develop methods in Object-Oriented Software Development (OOSD). The framework portrays identifying objects and developing methods in OOSD as constructing problem representations and developing rules. A problem representation reflects how designers view problem entities, their relations, and their roles at any given point of time. Rule development is the process used by designers to transform roles under a given problem representation into explicit procedural prescriptions. Because of the striking similarities between rule systems generated by human beings and software programs developed under OOSD, the framework uses prior research in rule induction and scientific discovery to model the two OOSD processes. Three experiments were conducted to investigate the interrelationships between problem representation and rule development as OO designers worked through the three phases of OOSD: design of new programs from scratch, comprehension of existing programs, and reuse of old programs. The results indicate that problem representations largely determine the rule development process during the phase of designing from scratch, which in turn decides the level of abstraction and potential reusability for final designs. Problem representations also play a major role in determining the ways that OO designers try to understand existing programs. Finally, the framework views software reuse as the process of analogical mapping. Problem representations have profound impact on analogical mapping strategies, which determine the behaviors of OO designers during the software reuse phase. In conclusion, this research provides a new perspective on the three major OOSD phases, reveals the extraordinary influences of problem representations on rule development processes, and lays down a theoretical framework for future enhancements of current OOSD practices.