Difficulties in Object-Oriented Design and its relationship with Abstraction: A Systematic Review of Literature
Pamela Flores, Ismael Sebastian Rivas, Jenny Torres · 2023
Object-oriented approach represents a different way of thinking about software development in terms of modularity and abstraction of concepts through the modeling of system components. Within this context, it is essential to address the challenges encountered by students and novices, who often struggle with fundamental object-oriented design concepts. Specifically, from a cognitive point of view, a notable deficiency lies in their grasp of abstraction—a fundamental cognitive pillar that supports software design. There is an evident need to refine research efforts to correct the lack of knowledge revealed by these difficulties in software design, specifically, those related to abstraction. To rectify this knowledge gap, it has been carried out a literature review through qualitative research that is based on the Kitchenham methodology. This study is dedicated to understanding and mitigating the difficulties that novice designers encounter when modeling software systems, with a particular focus on the concept of abstraction. Our research efforts led to the classification of difficulties in software design, as gleaned from the existing literature. Furthermore, we sought to elucidate the varying levels of abstraction perceived by different authors in this context. Among the identified challenges are students’ limited perception of classes as real-world entities, the transition from structural to object-oriented programming paradigms, and the navigation across different levels of abstraction. This study contributes to the field by shedding light on the specific challenges faced by novices in the realm of object-oriented design, with a particular emphasis on the critical aspect of abstraction.