|Ph.D Student||Hadar Irit|
|Subject||The Study of Concept Understanding via Abstract|
Representation: The Case of Object Oriented Design
|Department||Department of Education in Science and Technology||Supervisor||Professor Emeritus Uri Leron|
How is object oriented design similar to classification in natural human thinking? Or should we rather ask: How is it different?
Object oriented programming is an advanced programming approach, which has become widespread for developing software systems. However, software development includes much more than programming. In order to develop a complex software system it is essential to design the system before programming it, namely to deal with the system’s requirements and structure at a high level of abstraction. In recent years formal abstract languages were developed to support the design phase of software system development.
The main goal of the research has been to analyze how software developers understand object oriented design concepts and principles, and to identify comprehension difficulties in this field. For this aim, a formal abstract language (UML - Unified Modeling Language) was used. Presenting design ideas formally and at a high level of abstraction enables the researcher to efficiently follow cognitive processes taking place during design problem solving.
The theoretical framework developed to analyze the research results is based on dual-process theory from cognitive psychology. This theory identifies, among other things, two different mechanisms for intuitive thinking and analytical thinking. During the data analysis, possible sources of the documented comprehension difficulties were identified, and classified according to the dual system theory. The data analysis was also based on wide theoretical background in the areas of computer science and mathematics education. The research sheds some new light regarding issues in object oriented design, as well as in some additional fields.