You are on page 1of 2

Object oriented software engineering.

Module 1
Software is a program or set of programs containing instructions that provide desired functionality.
Engineering is the process of designing and building something that serves a particular purpose
and finds a cost-effective solution to problems.
Software Engineering is the process of designing, developing, testing, and maintaining software. It
is a systematic and disciplined approach to software development that aims to create high-quality,
reliable, and maintainable software.
Key Principles of Software Engineering
 Modularity: Breaking the software into smaller, reusable components that can be
developed and tested independently.
 Abstraction: Hiding the implementation details of a component and exposing only the
necessary functionality to other parts of the software.
 Encapsulation: Wrapping up the data and functions of an object into a single unit, and
protecting the internal state of an object from external modifications.
 Reusability: Creating components that can be used in multiple projects, which can save time
and resources.
 Maintenance: Regularly updating and improving the software to fix bugs, add new features,
and address security vulnerabilities.
 Testing: Verifying that the software meets its requirements and is free of bugs.
 Design Patterns: Solving recurring problems in software design by providing templates for
solving them.
 Agile methodologies: Using iterative and incremental development processes that focus on
customer satisfaction, rapid delivery, and flexibility.
 Continuous Integration & Deployment: Continuously integrating the code changes and
deploying them into the production environment.
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 design concepts
 Class: In OOP, class can be described as a user defined prototype or blueprint of the data
attributes and methods structure. For example, a Car class may include attributes like colour,
speed, engine type, model no. etc.
 Object: 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: 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: 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: 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: 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.

You might also like