AT70.04 Object-Oriented Analysis and Design

Introduction to Object Orientation, Object-Oriented Analysis of a Real-World Domain, Object-Oriented System Design, Object-Oriented Programming Paradigm, Object-Oriented Development of Complex Systems.CSIM Logo WelcomeCourses
Faculty, Student, Staff
Projects and reports
Conferences, workshop and seminars
Laboratories and reasearch facilities
Information related to CSIM
Information non-related to CSIM
Address, map, phone, etc.
Search

Semester:
August

Rationale:
Object-orientation is one of the most successful paradigms for modeling, design and implementation of software systems. This course introduces and clarifies the fundamental ideas in and basic concepts associated with object orientation. C++ Object-oriented language is used as a basic tool for deep understanding of those ideas and concepts. Comparison of C++ with the other popular object-oriented languages Java and C++ is also included. Special attention is paid to systematic approach to development of complex software systems. The major objective of the course is to prepare the students both theoretically and practically for using object-oriented technologies in their further study, research and development work.

Catalog Description:
Introduction to Object Orientation, Object-Oriented Analysis of a Real-World Domain, Object-Oriented System Design, Object-Oriented Programming Paradigm, Object-Oriented Development of Complex Systems.

Credits:
3(2-3)

Prerequisite:
None

Course Outline:
Introduction to Object Orientation
  1. Real-world Domains and Objects
  2. Instances and Concepts. Objects and Classes of Objects
  3. Generalized Object-Oriented Software Development Cycle
Object-Oriented Analysis of a Real-World Domain
  1. Object Model. The Notion of Encapsulation and Information Hiding
  2. Object Identity: Entity and Attributes
  3. Data and Knowledge: The Notion of Inheritance
  4. Relationships between Objects: Association, Generalization/Specialization, Aggregation
  5. Objects and States. Dynamic Behavior of Objects
  6. Introduction to the Unified Modeling Language (UML)
  7. Functional Dependencies in a System. User Requirements Analysis
  8. Process Modeling: The Notion of Message Passing
Object-Oriented System Design
  1. System Design Concepts and the Object-Oriented Approach
  2. New Domains. Continuation of the Analysis Phase
  3. Object-Oriented System Architecture
  4. System Components and their Design
  5. UML and the System Design
  6. Design as a Bridge between Object-Oriented Analysis and Implementation.
Object-Oriented Programming Paradigm
  1. Object-Oriented Support of Software Qualities
  2. Data Abstraction and Encapsulation. Data Type and Abstract Data Type
  3. Object-Oriented Program Structure
  4. More about Inheritance
  5. Reusability and Support for Reuse
  6. Class Design Guidelines
  7. Morphism and Polymorphism. Binding, Overloading, Overriding
  8. Object-Life Cycle. Persistent Objects
  9. Introduction to Object-Oriented Databases
  10. Object-Oriented Programming Environments. Comparison between C++, Java and C#.
Object-Oriented Development of Complex Systems

Laboratory Sessions:
Classes and Objects - declaration and use. Information Hiding Mechanism. Constructors and other Methods. Inheritance Mechanism. Libraries (Packages). Polymorphic Behavior and Dynamic Binding Implementation. Illustration of the differences between C++, Java and C#.

Textbook:
Lecture Notes + PowerPoint slides

Reference Books:
J. Rumbauch, M. Blaha, W. Premerlani, F. Eddy, W. Lorensen:
Object-Oriented Modeling and Design, Prentice-Hall, 1991.
I. Jacobson, M. Christerson, P. Jonsson, G. Overgaard:
Object-Oriented Software Engineering, A Use Case Driven Approach,Addison-Wesley, 1992.
J. Bergin:
Data Abstraction. The Object-Oriented Approach using C++, McGraw-Hill International Editions, 1994.
D. M. Papurt:
Inside the Object Model. The Sensible Use of C++, SIGS Books, New York, 1995.
R. J. Norman:
Object-Oriented Systems Analysis and Design, Prentice-Hall, 1996.
A. Umar:
Object-Oriented Client/Server Internet Environments, Prentice Hall PTR, UpperSaddle River, NJ 07458, 1997.
H.E. Eriksson, M. Penker:
UML Toolkit, John Wiley & Sons, Inc., 1998.
S. W. Ambler:
The Object Primer. The Application Developer's Guide to Object Orientationand the UML, Second Edition, Cambridge University Press, 2001.
V. Shtern:
Core C++. A software Engineering Approach, Prentice Hall PTR, Upper SaddleRiver, NJ 07458, 2000.
D. F. D'Souza, A. C. Wills:
Objects, Components and Frameworks with UML, Addison-Wesley, 1999.

Grading System:
The Final grade will be computed from the following constituent parts: mid-semester exam (15%), final exam (40%), labs (20%), and assignments (25%). Closed-book examinations are usually given in the mid-semester while closed-book and opened-book examinations are the options for the finals.

Instructor:
Dr. Dencho N. Batanov

CSIM home pageWMailAccount managementCSIM LibraryNetwork test toolsSearch CSIM directories
Contact us: Olivier Nicole CSIM    SET    AIT Last update: Jul 2003