0% found this document useful (0 votes)
0 views5 pages

Ooad

Object-Oriented Analysis and Design (OOAD) is a systematic approach to software design that focuses on modeling real-world entities as objects, facilitating easier management and scalability. It encompasses Object-Oriented Analysis (OOA) to identify system requirements and Object-Oriented Design (OOD) to create a detailed design model, utilizing tools like UML diagrams and design patterns. While OOAD offers benefits such as modularity and maintainability, it also presents challenges including complexity and a steep learning curve for beginners.

Uploaded by

Renuga J
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views5 pages

Ooad

Object-Oriented Analysis and Design (OOAD) is a systematic approach to software design that focuses on modeling real-world entities as objects, facilitating easier management and scalability. It encompasses Object-Oriented Analysis (OOA) to identify system requirements and Object-Oriented Design (OOD) to create a detailed design model, utilizing tools like UML diagrams and design patterns. While OOAD offers benefits such as modularity and maintainability, it also presents challenges including complexity and a steep learning curve for beginners.

Uploaded by

Renuga J
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Object-Oriented Analysis and Design(OOAD)

Object-Oriented Analysis and Design (OOAD) is a way to design software by thinking of everything as objects similar to real-
life things. In OOAD, we first understand what the system needs to do, then identify key objects, and finally decide how these
objects will work together. This approach helps make software easier to manage, reuse, and grow.

What is Object-Oriented Analysis and Design(OOAD)?


OOAD is based on the concepts of object-oriented programming (OOP) and is an organized and systematic approach to
designing and developing software systems. It is a software engineering paradigm that integrates two distinct but closely related
processes: Object-Oriented Analysis (OOA) and Object-Oriented Design (OOD).
Important Aspects of OOAD
Below are some important aspects of OOAD:
 Object-Oriented Programming: In this the real-world items are represented/mapped as software objects with attributes and
methods that relate to their actions.
 Design Patterns: Design patterns are used by OOAD to help developers in building software systems that are more efficient
and maintainable.
 UML Diagrams: UML diagrams are used in OOAD to represent the different components and interactions of a software
system.
 Use Cases: OOAD uses use cases to help developers understand the requirements of a system and to design software
systems that meet those requirements.
Object-Oriented Analysis
Object-Oriented Analysis (OOA) is the process of understanding and analyzing the system requirements by looking at the problem
scenario in terms of objects.
 These objects represent real-world entities or concepts that are relevant to the system being developed.
 During OOA, the goal is to identify the objects, their attributes, behaviors, and relationships, without focusing on how the
system will be implemented.
For example: Lets say you're building a game:
 OOA helps you figure out all the things you need to know about the game world - the characters, their features, and how they
interact.
 It's like making a map of everything important.
 OOA also helps you understand what your game characters will do. It's like writing down a script for each character.
 Every program has specific tasks or jobs it needs to do. OOA helps you list and describe these jobs.
 In our game, it could be tasks like moving characters or keeping score. It's like making a to-do list for your software.
 OOA is smart about breaking things into different parts. It splits the job into three categories: things your game knows, things
your game does, and how things in your game behave.
Object-Oriented Design
In the object-oriented software development process, the analysis model, which is initially formed through object-oriented analysis
(OOA), undergoes a transformation during object-oriented design (OOD) i.e implementation of the conceptual model developed in
OOA. This evolution is crucial because it shapes the analysis model into a detailed design model.
Furthermore, as part of the object-oriented design process, it is essential to define specific aspects:
 Data Organization of Attributes:
o OOD involves specifying how data attributes are organized within the objects.
o This includes determining the types of data each object will hold and how they relate to one another.
 Procedural Description of Operations:
o OOD requires a procedural description for each operation that an object can perform.
o This involves detailing the steps or processes involved in carrying out specific tasks.
Below diagram shows a design pyramid for object-oriented systems. It is having the following four layers.
1. The Subsystem Layer: It represents the subsystem that enables software to achieve user requirements and implement
technical frameworks that meet user needs.
2. The Class and Object Layer: It represents the class hierarchies that enable the system to develop using generalization and
specialization. This layer also represents each object.
3. The Message Layer: This layer deals with how objects interact with each other. It includes messages sent between objects,
method calls, and the flow of control within the system.
4. The Responsibilities Layer: It focuses on the responsibilities of individual objects. This includes defining the behavior of each
class, specifying what each object is responsible for, and how it responds to messages.
Benefits of Object-Oriented Analysis and Design(OOAD)
 It increases the modularity and maintainability of software by encouraging the creation of tiny, reusable parts that can be
combined to create more complex systems.
 It provides a high-level, abstract representation of a software system, making understanding and maintenance easier.
 It promotes object-oriented design principles and the reuse of objects, which lowers the amount of code that must be produced
and raises the quality of the program.
 Software engineers can use the same language and method that OOAD provides to communicate and work together more
successfully in groups.
 It can assist developers in creating scalable software systems that can adapt to changing user needs and business demands
over time.
Challenges of Object-Oriented Analysis and Design (OOAD)
 Because objects and their interactions need to be carefully explained and handled, it might complicate a software system.
 Because objects must be instantiated, managed, and interacted with, this may result in additional overhead and reduce the
software's speed.
 For beginner software engineers, OOAD might have a challenging learning curve since it requires a solid grasp of OOP
principles and methods.
 It can be a time-consuming process that involves significant upfront planning and documentation. This can lead to longer
development times and higher costs.
 OOAD can be more expensive than other software engineering methodologies due to the upfront planning and documentation
required.
Real world applications of Object-Oriented Analysis and Design(OOAD)
Some examples of OOAD's practical uses are listed below:
 Banking Software: In banking systems, OOAD is frequently used to simulate complex financial transactions, structures, and
customer interactions. Designing adaptable and reliable financial apps is made easier by OOAD's modular and scalable
architecture.
 Electronic Health Record (EHR) Systems: Patient data, medical records, and healthcare workflows are all modeled using
OOAD. Modular and flexible healthcare apps that may change to meet emerging requirements can be made through object-
oriented principles.
 Flight Control Systems: OOAD is crucial in designing flight control systems for aircraft. It helps model the interactions
between different components such as navigation systems, sensors, and control surfaces, ensuring safety and reliability.
 Telecom Billing Systems: In the telecom sector, OOAD is used to model and build billing systems. It enables the modular and
scalable modeling of complex subscription plans, invoicing rules, and client data.
 Online Shopping Platforms: E-commerce system development frequently makes use of OOAD. Product catalogs, user
profiles, shopping carts, and payment procedures are all modeled, which facilitates platform maintenance and functionality
expansion

The Object Model

Q) Object Model:

 Object model will imagine the software application elements in terms of


objects.
 The object model identifies the classes in the system and their
relationship, as well as their attributes and operations.
 It represents the static structure of the system.
 The object model is represented graphically by a class diagram.

Step for object modeling


1. Read carefully, the problem statement.
2. Locate the object classes by underlining nouns.
3. Remove unnecessary and incorrect classes.
4. Prepare a data dictionary.
5. Locate associations between object classes.
6. Remove unnecessary and incorrect attributes.
7. Use inheritance to share common structure.
8. Traverse access paths to identify deficiency.
9. Remove unnecessary and incorrect associations.
10. Locate attributes of the object classes.
Purpose of Object Modeling Technique
1. To test physical entities before construction of them.
2. To make communication easier with the customers.
3. To present information in an alternative way i.e., visualization.
4. To reduce the complexity of software.
5. To solve the real-world problems.

The Evolution of the object Model


The object model has evolved significantly, reflecting a shift from procedural to object-oriented programming. This evolution involved
increased abstraction, modularity, and the introduction of concepts like classes and inheritance, ultimately leading to more complex
and maintainable software systems.

Programming languages have evolved significantly over time, moving from fundamental machine-
specific code to complex languages that are simpler to write and understand. Each new generation of
programming languages has improved, allowing developers to create more efficient, human-readable,
and adaptable software. The transition from the first low-level languages to current, high-level
languages offered new tools and ideas that continue to influence how we write software today.
Generations of Programming language
There are five generations of Programming languages. They are:
First-Generation Languages :
First-generation languages, often known as machine languages, are the simplest type of computer
language. To interface directly with a computer hardware, these languages use binary code, which
consists of 0s and 1. Because machine languages are designed to be particular to the architecture of
the hardware, 1GL applications are machine-specific and will only execute on the hardware for which
they were originally developed.
Second-Generation Languages :
Second-generation languages, known as assembly languages, introduced human-readable notations,
such as mnemonics, that are easier to understand than binary code. These languages still require
conversion to machine code through an assembler before execution. Assembly language is used
primarily for writing operating systems and device drivers due to its close interaction with hardware.
Third-Generation Languages :
Third-generation languages, also known as procedural languages, are high-level programming
languages designed to be more user-friendly by utilizing syntax similar to human language. This
makes it simpler for programmers to create and understand code. Some well-known examples are C,
C++, Java, FORTRAN, and PASCAL. Before execution, these languages must be converted into
machine code using a compiler or interpreter.
Fourth Generation Languages :
Fourth-generation languages (4GL) are created to simplify programming by using syntax that is more
similar to everyday human language. These languages allow users to focus on specifying what tasks
need to be done, without needing to worry about the specific implementation details. They are widely
used for tasks such as database handling, generating reports, and building graphical user interfaces
(GUIs). Some well-known examples are SQL, Python, Perl, Ruby, and MATLAB.
Fifth Generation Languages :
Fifth-generation languages (5GL) represent the latest stage in programming evolution and focus on
visual programming and artificial intelligence. These languages use visual tools and constraint-based
logic to create programs. Instead of writing step-by-step instructions, the programmer defines goals,
and the system generates the code to achieve them. Examples of fifth-generation languages are
Prolog, OPS5, and Mercury.

The first two generations are called low-level languages. The next three generations are called high-
level languages.

1. First-Generation Language :
The first-generation languages are also called machine languages/ 1G language. This language is
machine-dependent. The machine language statements are written in binary code (0/1 form) because
the computer can understand only binary language.
Advantages :
1. Fast & efficient as statements are directly written in binary language.
2. No translator is required.
Disadvantages :
1. Difficult to learn binary codes.
2. Difficult to understand - both programs & where the error occurred.
2. Second Generation Language :
The second-generation languages are also called assembler languages/ 2G languages. Assembly
language contains human-readable notations that can be further converted to machine language using
an assembler.
Assembler - converts assembly level instructions to machine-level instructions.
Programmers can write the code using symbolic instruction codes that are meaningful abbreviations of
mnemonics. It is also known as low-level language.
Advantages :
1. It is easier to understand if compared to machine language.
2. Modifications are easy.
3. Correction & location of errors are easy.
Disadvantages :
1. Assembler is required.
2. This language is architecture /machine-dependent, with a different instruction set for different
machines.
3. Third-Generation Language :
The third generation is also called procedural language /3 GL. It consists of the use of a series of
English-like words that humans can understand easily, to write instructions. It's also called High-Level
Programming Language. For execution, a program in this language needs to be translated into
machine language using a Compiler/ Interpreter. Examples of this type of language are C, PASCAL,
FORTRAN, COBOL, etc.
Advantages :
1. Use of English-like words makes it a human-understandable language.
2. Lesser number of lines of code as compared to the above 2 languages.
3. Same code can be copied to another machine & executed on that machine by using compiler-
specific to that machine.
Disadvantages :
1. Compiler/ interpreter is needed.
2. Different compilers are needed for different machines.
4. Fourth Generation Language :
The fourth-generation language is also called a non - procedural language/ 4GL. It enables users to
access the database. Examples: SQL, Foxpro, Focus, etc.
These languages are also human-friendly to understand.
Advantages :
1. Easy to understand & learn.
2. Less time is required for application creation.
3. It is less prone to errors.
Disadvantages :
1. Memory consumption is high.
2. Has poor control over Hardware.
3. Less flexible.
5. Fifth Generation Language :
The fifth-generation languages are also called 5GL. It is based on the concept of artificial
intelligence. It uses the concept that rather than solving a problem algorithmically, an application can
be built to solve it based on some constraints, i.e., we make computers learn to solve any problem.
Parallel Processing & superconductors are used for this type of language to make real artificial
intelligence.
Examples: PROLOG, LISP, etc.
Advantages :
1. Machines can make decisions.
2. Programmer effort reduces to solve a problem.
3. Easier than 3GL or 4GL to learn and use.
Disadvantages :
1. Complex and long code.
2. More resources are required & they are expensive too

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy