A Case for Case-based Teaching The Software Engineering Example