This section gives a short introduction on Object Orientation, its terms and methodology.
Object Orientation (OO) is a concept for developing reusable, easy-to-handle and high-quality software components.
Unlike conventional software development, Object Orientation goes a different way that is more related to real-world problems.
Since the first serious steps in software engineering were done in the 1950's, the nature of software changed through the years.
» The shift in focus from programming-in-the-small to programming-in-the-large
» The evolution of high-order programming languages
Most new industrial-strength software systems are larger and more complex than their predecessors were even just a few years ago. This growth in complexity has prompted a significant amount of useful applied research in software engineering, particularly with regard to decomposition, abstraction, and hierarchy. The development of more expressive programming languages has complemented these advances. The trend has been a move away from languages that tell the computer what to do (imperative languages) toward languages that describe the key abstractions in the problem domain (declarative languages)."
[BOO91, p. 26]
The method is subdivided in several parts:
Object Oriented Analysis (OOA):
"A method of analysis in which requirements are examined from the perspective of the classes and objects found in the vocabulary of the problem domain." [BOO91, p. 516]
Object Oriented Decomposition:
"The process of breaking a system into parts, each of which represents some class or object from the problem domain. The application of object-oriented design methods leads to an object-oriented decomposition, in which we view the world as a collection of objects that cooperate with one another to achieve some desired functionality." [BOO91, p. 516]
Object Oriented Design (OOD):
"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; specifically, this notation includes class diagrams, object diagrams, module diagrams, and process diagrams." [BOO91, p. 516]
Object Oriented Programming (OOP):
"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. In such programs, classes are generally viewed as static, whereas objects typically have a much more dynamic nature, which is encouraged by the existence of dynamic binding and polymorphism." [BOO91, p. 517]
While traditional structured languages were using functions and procedures that operate on (global) data, object oriented languages are using classes and objects that consist of methods, which operate only on their own internal data.
In the following, the terms of Object Orientation will be described.