22919 Object-Oriented Analysis and Design

Credits: 4 graduate credits in Computer Science

Prerequisite: Admission to the graduate program in Computer Science 1

Recommended: Software Engineering, Workshop: Object-Oriented Programming or Workshop: Advanced Programming with Java

The course is based on a reader edited by Shmuel Tyszberowicz; and on a collection of slides.

The object-oriented approach can be used in the system analysis and design stages, in addition to the programming stage. This enables a development process based entirely on the same approach, in contrast to the past when a different approach was used for each stage. The object-oriented development approach has advantages which can overcome phenomena which fall into the category of the “software crisis”. The object-oriented approach allows for the uniform definition of entities which constitute the basis for systems which are developed from a collection of reusable models.

The course examines the concept of object-oriented development as well as development principles, and shows how the method generates greater and chiefly more qualitative output.

Topics: Introduction to software engineering; Introduction to the object-oriented approach; Object-oriented analysis and design: models, abstract data types, design by contract, use-cases, static system description: identifying classes, inter-class relations, CRC cards; dynamic object description: statecharts, dynamic description of object relations, scenarios, sequence diagrams, communication diagrams, examples, design patterns, components, aspect-oriented development.

1Students who have not fulfilled this requirement may, under certain circumstances, enroll in this course.