Object Oriented Design Lec 1

Card Set Information

Object Oriented Design Lec 1
2013-10-28 14:33:23
Computer Science

Object Oriented Design Lec 1
Show Answers:

  1. Object-oriented programming
    Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships.
  2. There are three important parts of this definition
    • 1. Object-oriented programming uses objects, not algorithms, as its fundamental logical building blocks (the “part of” hierarchy); 
    • 2. each object is an instance of some class;
    • 3. classes may be related to one another via inheritance relationships
  3. Cardelli and Wagner therefore propose that a language is only oriented if and only if it satisfies the following:
    • 1. It supports objects that are data abstractions with an interface of named operations and a hidden local state.
    • 2. Objects have an associated type [class].
    • 3. Types [classes] may inherit attributes from supertypes [superclasses].
  4. Object Oriented design
    Object Oriented design is a method of design, encompassing the process of object oriented decomposition and a notation for depicting both logical and physical as well as static and dynamic models of the system under design.
  5. Two important parts of the definition are that object oriented design:
    • 1. leads to an object-oriented decomposition
    • 2. uses different notations to express different models of the logical (class and object structure) and physical (module and process architecture) design of a system, in addition to the static and dynamic aspects of the system.
  6. Object Oriented Analysis
    • Appropriately supports the OO design process
    • A method of analysis that examines the requirements from the perspective of the classes and objects found in the domain.
  7. Elements of the Object Model
    Major Elements
    • Abstraction
    • Encapsulation
    • Modularity 
    • Hierarchy
  8. Elements of the Object Model
    Minor Elements
    • Typing 
    • Concurrency
    • Persistence