Introduction to Object Oriented Software Engineering


Object Oriented Software Engineering

Software engineering allows us to apply computer science concepts in the development and maintenance of softwares. Software engineering is to be studied in order to make the development process of various features of a software more efficient and effective.

Adding on to the software engineering definition, object oriented software engineering can be referred to as a software design concept that is used in object oriented programming for the purpose of designing software models. Using object oriented software engineering techniques, we design the classes (objects), functions, methods etc that are required for the development of any software. Oose is a design technique and doesn’t include any implementation of code. It includes requirement, analysis, design, implementation and sometimes a testing model.  Object oriented methodology employs the use case of oose in software design. 

Object oriented software engineering views the whole project system as a collection of objects where each object owns its own data, following the object oriented programming concepts. 

Object Oriented Design Concepts


In OOP, class can be described as a user defined prototype or blue print of the data attributes and methods structure. For example, a Car class may include attributes like color, speed, engine type, model no. etc. 


In OOP, objects are created from the class and include the data structured in the same way as the class to which it belongs. For example, a car object named “i10” can be created from the Car class having its own properties structured in the similar way like the class. 


Encapsulation means grouping of the data with the methods or functions that operate on that data. Along with this, it also hides the data or prevents the outside world from using the data from within the object. 


Abstraction can be referred to as showing essential data/working to the user and hiding the rest of the details. Only necessary details are shown to the outside world. For example, calling the increaseSpeed() method of the Car object will increase the speed of the car and it is not necessary to show how the speed of the car was increased so it would be hidden.


Inheritance is a very important concept in object oriented programming and prevents the reinvention of the wheel by enabling programmers to share the attributes of the existing class into new class by extending it. The existing class is known as the base or parent class and the class that derives the attributes is known as the child class or derived class.


Polymorphism means many forms, thus it can be described as the same names or operators or functions can behave in various different forms based on the number of arguments or based on the type of arguments at the time of the function call. Operators will behave differently when used along with operands of different types.