Interface-Based Object-Oriented Design with Mock Objects
Jagadeesh Nandigam, Venkat Naidu Gudivada, Abdelwahab Hamou‐Lhadj, Yonglei Tao · 2009
Interfaces are fundamental in object-oriented systems. One of the principles of reusable object-oriented design, according to Gamma et al., is program to an interface, not an implementation. Interface-based systems display three key characteristics - flexibility, extensibility, and pluggability. Designing with interfaces is therefore a better way of building object-oriented systems. Getting students in introductory software engineering and design courses to program to interfaces and develop interface-based systems is a challenge. This paper presents our experiences with the use of mock objects to promote interface-based design and effective unit testing in software engineering and design courses.