What is Object?
In computer science, an object can be a variable, data structure, function, or method, and is therefore a value in memory referenced by an identifier.
What is Object-Oriented?
Object-oriented is a computer programming model that organizes software design around data or objects rather than functions or logic. Objects can be defined as data fields with unique attributes and behaviors.
OOP focuses on the object’s developers want to work with, not the logic required to work with them. This approach to programming is ideal for large, complex programs that are actively being updated or maintained.
Organizing object-oriented programs is also a useful form of collaborative development where projects are divided into groups.
What is Object-Oriented Design?
Object-oriented design (OOD) serves as part of the object-oriented programming (OOP) process of the lifestyle. This is primarily the process of designing a computer system or an application using object techniques. This technique allows you to implement software based on the concept of objects. Also, this is a concept that forces programmers to plan their code to create programs that flow better.
The origins of object-oriented design (OOD) have been debated, but the first languages to support it were Simula and SmallTalk. The term didn’t spread until 1982 when Grady Booch wrote his first treatise, Object-Oriented Design. The main purpose of this type of software design is to define classes and their relationships. Software requirements Requirements included in the specifications.
Furthermore, it is the area that defines the objects and their interactions to solve the problems identified and documented during object-oriented analysis (OOA). In summary, object-oriented design (OOD) is a design method that includes the process of decomposition and object-oriented notation to represent the logical and physical models of the system in design.
Introduction to Object -Oriented Design:
Software development consists of several important activities that are compiled and attached to create software with impeccable quality, features, and features. It is these components of the software that determine scalability, performance, reliability, security, etc., ensuring that the software or application is developed according to customer requirements. However, to initiate and implement such activities, software engineers must prepare for the proper design of their software. This can provide guidance during the software development process.
Software design is the process by which an agent uses a set of primitive components to create a specification of a software product that is restricted and directed to achieve a goal. The design process during software development makes developers more efficient and transparent. Plus, it keeps all members of different teams on track to facilitate collaboration. With the help of software design, developers can mitigate risk through trial and error. This plan requires no backtracking or guessing.
In addition, there are several types of software design that are used to simplify the design process and reduce software complexity. Object Oriented Design (OOD) is an approach to software design, defined as the process of planning a system of interacting objects with the goal of solving software problems.
Characteristics of Object-Oriented Design:
The service characteristics of object-oriented design are:
- An object is an abstraction of a real-world entity or self-managing system.
- The objects are independent, in an encapsulated state and representative information.
- The functionality of the system is expressed in terms of object services.
- The shared data area is deleted.
- Communication between objects is done by passing messages.
- Objects are distributed and can be executed sequentially or in parallel.
Process of Object-Oriented Design:
Understanding the process of all kinds of software-related activities simplifies development for software developers, programmers, and testers. Whether you’re running a bump test or creating a test report, each action has a process that team members must follow. Similarly, Object Oriented Design (OOD) has a predefined process that can affect software performance and quality if not strictly followed. Therefore, to help a team of software developers and programmers, the object-oriented design (OOD) process is as follows:
1. Design axioms apply to design classes and their attributes, methods, associations, structures, and even protocols.
- The static UML class diagram is redefined and completed with additional details.
- The attributes are sophisticated.
- Protocols and methods are designed using UML activity diagrams to represent method algorithms.
- If necessary, redefine the associations between classes and use inheritance to improve the hierarchy and layout of classes.
- Repeat and adjust again.
2. Design the access layer.
- Create a mirror class. That is, create an access class for each identified and created business class.
3. Identify the class relationships of the access layer.
4. Simplify the classes and their relationships. The main purpose here is to remove redundant classes and structures.
- Redundant classes – Programmers must remember to make similar conversion requests and not implement two classes that will convert the resulting activity. They simply have to choose one and eliminate the other.
- Method classes – Review classes that consist of just one or two methods to see if they can be removed or combined with existing classes.
5. Repeat and readjust.
6. Design the view layer class.
- Design a user interface at the macro level while identifying the view layer objects.
- Design a user interface at the micro level.
- Test of usability and user satisfaction.
- Iterate and improve.
7. At the end of the process, repeat the entire design. Reapply the design axioms and repeat the above steps if necessary.
Concepts of Object-Oriented Design:
Object-oriented design (OOD) maps concepts from technology-independent analytical models to implementation classes, identifies constraints, and designs interfaces. This creates a model for the domain of the solution. In summary, a detailed description is created to specify how to build the system based on specific techniques. Furthermore, object-oriented design (OOD) follows various concepts to achieve these goals. Each concept has a specific role and is very important. These concepts are defined in detail below.
1. Encapsulation: It is a close coupling or association between a data structure and a method or function that acts on the data. This is basically known as a class or object (objects are usually class implementations).
2. Data protection: The ability to protect some components of an object from external entities. This is accomplished by language keywords that allow variables to be declared private and protect against their own classes.
3. Inheritance: This is the functionality of one class that extends or overrides the functionality of another class. This so-called child class has a complete section that is the main class and has its own set of functions and data.
4. Interface: Definitions of functions or methods that can be used, as well as to manipulate specific instances of an object and their signatures.
5. Polymorphism: It is the ability to define different functions or classes that have the same name but different types of data.
Advantages of Object-Oriented Design:
The discussion above details some of the benefits of object-oriented design (OOD). There are many advantages of this approach to software design, from allowing software implementations based on the concept of objects, eliminating shared data areas, distributing and executing objects sequentially or in parallel. So here are some of the other benefits of using object-oriented design (OOD).
- Easy to maintain objects.
- Objects are sometimes understood as independent entities.
- Objects are suitable reusable components.
- In some systems, there may be an obvious mapping of the real entity to the system object.
Conclusion:
With the transition and progress of the software industry, some aspects of software engineering and development have also improved and are changing for the better. Similarly, the way we design software is evolving and changing for the better. Introduced by Grady Booch in a treatise titled Object-Oriented Design in 1982, Object-Oriented Design (OOD) is a new paradigm that replaces function-oriented design techniques on a daily basis. Object-oriented design and analysis combine data and methods into cohesive units and classes. The Unified Modeling Language (UML) is a commonly used notation for modeling object-oriented systems.
In addition, it provides various diagrams to model the system structure, dynamic behavior, state, architecture, and more. Creating an object-oriented design (OOD) is an iterative process based on the application of stored knowledge in use cases of the system. Therefore, this approach to software design is basically used for planning a system of interacting objects and solving software problems. This enables software developers and programmers to create software with superior functionality and quality.
References:
- https://en.wikipedia.org/wiki/Object-oriented_design
- https://www.tutorialspoint.com/object_oriented_analysis_design/ooad_object_oriented_design.htm
- https://www.w3schools.com/cpp/cpp_oop.asp#:~:text=C%2B%2B%20What%20is%20OOP%3F,contain%20both%20data%20and%20functions.&text=OOP%20is%20faster%20and%20easier%20to%20execute
You Can also Read For : Swapping Variables