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.