Object Oriented Analysis  «Prev  Next»
Lesson 1

Why object-oriented programming?

Object technology has the ability to peal back a layer of the mind to reveal a new universe.
Object orientation has become the development paradigm of choice for programmers in the 1990s, 2000s, and beyond.
In this module, you will explore how object-oriented programming (OOP) differs from traditional, procedural, or structured programming and how you can exploit those differences to produce faster, more maintainable code.
In this module, you will learn:
  1. How traditional programs are designed
  2. How object-oriented programs are designed
  3. How to choose the initial classes in your system
  4. Some of the qualities of a "good class" for an object-oriented application

Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. It uses several techniques from previously established paradigms, including encapsulation, inheritance, and polymorphism.
Even though it originated in the 1960s, OOP was not commonly used in mainstream software application development until the 1990s. Today, many popular programming languages support OOP. The origins of object-oriented programming reach all the way back to the 1960s, when the field of software engineering had begun to discuss the idea of a software crisis. As hardware and software became increasingly complex, how could software quality be maintained?
Object-oriented programming addresses this problem by strongly emphasizing modularity in software.

Modular Programming

Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
A module interface expresses the elements that are provided and required by the module. The elements defined in the interface are detectable by other modules. The implementation contains the working code that corresponds to the elements declared in the interface. Modular programming is closely related to structured programming and object-oriented programming, all having the same goal of facilitating construction of large software programs and systems by decomposition into smaller pieces, and all originating around the 1960s. While historically usage of these terms has been inconsistent, today "modular programming" refers to high-level decomposition of the code of an entire program into pieces, structured programming to the low-level code use of structured control flow, and object-oriented programming to the data use of objects, a kind of data structure.