Skip to content
Skip to main content

About this free course

Download this course

Share this free course

An introduction to software development
An introduction to software development

Start this free course now. Just create an account and sign in. Enrol and complete the course for a free statement of participation or digital badge if available.

7 Object orientation

With the growth in code complexity came the idea of breaking up large sequential programs into more manageable, and smaller, named pieces of code. Initially these tended to represent actions, which in turn could be broken down into smaller and smaller actions, until a unit was reached that was small enough to understand, write and test independently. This type of code decomposition proved a useful device and became the basis of procedural and functional styles of programming. Some of these are still in use, although we will not consider them in this course.

The early1960s saw the idea of structuring software around the data structures or objects that were manipulated, rather than around the actions that manipulated them. This was the start of object-oriented programming, which subsequently developed into a set of concepts, principles and techniques used throughout software development to analyse software problems and design and construct software solutions. We use the term object orientation to refer to this holistic approach.

You should note that because of its roots in programming, object orientation has a distinct bias toward solution space descriptions. Nevertheless, over the years useful techniques applicable across the problem/solution divide have been developed.

Although object orientation is relevant to many domains of application, it is seen as particularly advantageous in business computing. It was observed that as businesses change, the things their computer systems manipulate remain fairly stable, even though the ways these systems are used may change rapidly. For instance, commercial systems will most likely always need to represent taxes, goods, payments, prices and deliveries, even though the business rules determining who is creditworthy, how orders are taken, and whether payment is required before delivery may all change frequently. Therefore, one advantage of structuring software around objects meaningful to the business is that it gives more stability and better traceability from the business to the code.