Object Oriented Analysis  «Prev  Next»
Lesson 1

Object Oriented Course Introduction

This course discusses Object-Oriented Design and Analysis.
This course focuses on the fundamental ideas that make up object-oriented programming (OOP, for short). You will design a simple object oriented program according to object-oriented principles and learn how to document your object oriented designs using uml diagrams.

Course goals

After completing this course, you will be able to create design specifications that demonstrate the essentials of OOP, including:
  1. How classes allow programmers to define their own data types
  2. How messages are passed between objects with methods
  3. How to separate interfaces from implementation using access protection
  4. How to guarantee that variables are initialized with constructors
  5. How to reuse code via inheritance
  6. How polymorphism allows the same message to be sent to different objects

Object Oriented Analysis

Differentiate between two kinds of Analysis

We are going to to discuss analysis, where the goal is to understand a problem. Actually, there are two kinds of things we need to think about at this point.
  1. Application analysis: Application analysis is concerned with understanding the requirements of a particular problem. a) The development of use cases, falls into this category. We seek to understand how someone will use our software. b) The specification of initial functional tests likewise falls into this category. Spelling out such tests helps us to better understand what must take place.
  2. Domain analysis: Domain analysis is concerned with understanding the particular application domain of which a specific problem is a part. For example, if you were developing a system involved with student registration for courses, the domain you would need to be familiar with includes concepts like students, courses, course offerings, sections, enrollments etc.; as well as the relationships between them.

In the next lesson, the prerequisites for the course including C++ and Java will be discussed.
In object-oriented programming, polymorphism refers to a programming language's ability to process objects differently depending on their data type or class. More specifically, it is the ability to redefine methods for derived classes.
For example, given a base class shape, polymorphism enables the programmer to define different area methods for any number of derived classes, such as circles, rectangles and triangles. No matter what shape an object is, applying the area method to it will return the correct results.
Polymorphism: is considered to be a requirement of any true object-oriented programming language(OOPL).