Credit points: 3.0Abstraction. Modular design: criteria for evaluation, hierarchicalstructure and other techniques for achieving modularity, coupling andcohesion. Object based design: main steps, heuristics, classificationof classes, designing an interface, implementation and the tough loveprinciple. Object oriented design: classification of inheritancetypes, modelling using the fusion and Bon methodologies. Designpatterns: creational, structural and behavioral. Meta-patterns.Exercises using the Eiffel programming language.