SlideShare a Scribd company logo
SOFTWARE RE-ENGINEERING
SE-409
Contents
• Object Oriented Re-Engineering Patterns
• Design Patterns
Object Oriented Re-Engineering Patterns
• Object-Oriented Re-Engineering Patterns, also known as OORP, are a set
of design patterns that are used to modify and improve existing object-oriented
software systems.
• These patterns provide a way to analyze, refactor, and improve the design of
existing software systems to make them more flexible, maintainable, and
extensible.
• Design patterns play a significant role in Object-Oriented Re-Engineering
Patterns (OORP).
Design Patterns
• A design pattern is a reusable solution to a common software design
problem that has been proven to be effective over time.
• Design patterns provide a structured approach to solving problems in software
development and can improve the quality, maintainability, and scalability of
software systems.
• Design patterns are typically documented in a standardized format and can be
applied to a wide range of programming languages and software systems.
Design Patterns
• They are often used to solve recurring problems in software development, such
as how to create objects efficiently, how to maintain code modularity, or how to
manage the communication and behavior between objects.
Benefits of using patterns
• Patterns give a design common vocabulary for software design:
• Allows engineers to abstract a problem and talk about that abstraction in
isolation from its implementation.
• A culture; domain-specific patterns increase design speed.
• Capture expertise and allow it to be communicated.
• Promotes design reuse and avoid mistakes.
• Makes it easier for other developers to understand a system.
Benefits of using patterns
• Efficiency
• Design patterns can improve the efficiency of software development by
providing a set of standard solutions to common problems.
• This can help developers avoid time-consuming trial-and-error approaches
and focus on building robust and high-quality software systems.
• Overall, using design patterns can help developers create more
maintainable, and efficient software systems. By leveraging proven
solutions to common software design problems, developers can save time
and effort, improve collaboration and communication, and build higher-
quality software systems.
Describing a pattern
• Problem: In what situation should this pattern be used?
• Solution: What should you do? What is the pattern?
• describe details of the objects/classes/structure needed
• should be somewhat language-neutral
• Advantages: Why is this pattern useful?
• Disadvantages: Why might someone not want this pattern?
Categories of design patterns in software RE-
engineering:
• There are three main categories of design patterns in software engineering or
reengineering:
1. Creational Patterns: These patterns are concerned with object creation mechanisms,
trying to create objects in a manner that is suitable to the situation.
2. Structural Patterns: These patterns are concerned with object
composition and relationships between objects, helping to form large-scale
structures from individual objects.
3. Behavioral Patterns: These patterns are concerned with communication and
coordination between objects and classes, focusing on how objects distribute
work and responsibilities.
Categories of design patterns in software RE-
engineering:
Creational Patterns
• Creational Patterns: These patterns focus on object creation
mechanisms, abstracting the instantiation process. Examples include:
• Singleton: Ensures a class has only one instance and provides a global point of access to it.
• Factory Method: Defines an interface for creating an object, allowing subclasses to alter the type
of objects that will be created.
• Prototype: Creates new objects by copying an existing object, avoiding the need to create new
instances from scratch.
Structural Patterns
• Structural Patterns: These patterns deal with the composition of
classes or objects. They help in forming large structures from
individual parts. Examples include:
• Adapter: Allows incompatible interfaces to work together by providing a wrapper with a
compatible interface.
• Decorator: Adds new functionality to an object dynamically without altering its structure.
• Facade: Provides a simplified interface to a complex system, hiding its complexities from clients.
Behavioral Patterns
• Behavioral Patterns: These patterns are concerned with algorithms
and the assignment of responsibilities between objects. They
describe communication between objects and how they collaborate
to perform a task. Examples include:
• Observer: Defines a one-to-many dependency between objects, ensuring that when one object
changes state, all its dependents are notified and updated automatically.
• Strategy: Defines a family of algorithms, encapsulates each algorithm, and makes them
interchangeable at runtime.
• Command: Encapsulates a request as an object, allowing parameterization of clients with
queues, requests, and operations.

More Related Content

Similar to Design patterns software re engineering lect 10 (20)

PPTX
Design patterns Structural
UMAR ALI
 
PDF
Module 2 design patterns-2
Ankit Dubey
 
PPTX
Design Patterns - General Introduction
Asma CHERIF
 
PPTX
CBD.pptx
RahulGautam663736
 
PPTX
Module_5_Class-Responsibility-Collaborator (CRC) Modeling.pptx
varix47149
 
PPTX
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
PPT
Good Slides on Architecture.ppt
poleshan
 
PPTX
ppt2.pptx
JOHNNYGALLA2
 
PPTX
Software Design Patterns and Quality Assurance
Shubbhi Taneja
 
PPTX
The principles of simulation system design.pptx
ubaidullah75790
 
PPTX
Behavioral Patterns s o f t w a r e e n g
YasmineElqorashy
 
PPT
oomd-unit-i-cgpa.ppt
Pavan992098
 
PPTX
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
shubbhi
 
PPTX
DESIGN PATTERN.pptx
SKUP1
 
PPTX
DESIGN PATTERN.pptx
LECO9
 
PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
malathijanapati1
 
PPTX
Introduction to Software Engineering_Need_SDLC_types of SDLC
DeepakUlape2
 
PPTX
OOSD_UNIT1 (1).pptx
DebabrataPain1
 
PPTX
Software Design Concepts
Mohammed Fazuluddin
 
Design patterns Structural
UMAR ALI
 
Module 2 design patterns-2
Ankit Dubey
 
Design Patterns - General Introduction
Asma CHERIF
 
Module_5_Class-Responsibility-Collaborator (CRC) Modeling.pptx
varix47149
 
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
Good Slides on Architecture.ppt
poleshan
 
ppt2.pptx
JOHNNYGALLA2
 
Software Design Patterns and Quality Assurance
Shubbhi Taneja
 
The principles of simulation system design.pptx
ubaidullah75790
 
Behavioral Patterns s o f t w a r e e n g
YasmineElqorashy
 
oomd-unit-i-cgpa.ppt
Pavan992098
 
SOFTWARE QUALITY ASSURANCE AND DESIGN PATTERNS
shubbhi
 
DESIGN PATTERN.pptx
SKUP1
 
DESIGN PATTERN.pptx
LECO9
 
UNIT-4design-concepts-se-pressman-ppt.PPT
malathijanapati1
 
Introduction to Software Engineering_Need_SDLC_types of SDLC
DeepakUlape2
 
OOSD_UNIT1 (1).pptx
DebabrataPain1
 
Software Design Concepts
Mohammed Fazuluddin
 

Recently uploaded (20)

PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Human Resources Information System (HRIS)
Amity University, Patna
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Tally software_Introduction_Presentation
AditiBansal54083
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Ad

Design patterns software re engineering lect 10

  • 2. Contents • Object Oriented Re-Engineering Patterns • Design Patterns
  • 3. Object Oriented Re-Engineering Patterns • Object-Oriented Re-Engineering Patterns, also known as OORP, are a set of design patterns that are used to modify and improve existing object-oriented software systems. • These patterns provide a way to analyze, refactor, and improve the design of existing software systems to make them more flexible, maintainable, and extensible. • Design patterns play a significant role in Object-Oriented Re-Engineering Patterns (OORP).
  • 4. Design Patterns • A design pattern is a reusable solution to a common software design problem that has been proven to be effective over time. • Design patterns provide a structured approach to solving problems in software development and can improve the quality, maintainability, and scalability of software systems. • Design patterns are typically documented in a standardized format and can be applied to a wide range of programming languages and software systems.
  • 5. Design Patterns • They are often used to solve recurring problems in software development, such as how to create objects efficiently, how to maintain code modularity, or how to manage the communication and behavior between objects.
  • 6. Benefits of using patterns • Patterns give a design common vocabulary for software design: • Allows engineers to abstract a problem and talk about that abstraction in isolation from its implementation. • A culture; domain-specific patterns increase design speed. • Capture expertise and allow it to be communicated. • Promotes design reuse and avoid mistakes. • Makes it easier for other developers to understand a system.
  • 7. Benefits of using patterns • Efficiency • Design patterns can improve the efficiency of software development by providing a set of standard solutions to common problems. • This can help developers avoid time-consuming trial-and-error approaches and focus on building robust and high-quality software systems. • Overall, using design patterns can help developers create more maintainable, and efficient software systems. By leveraging proven solutions to common software design problems, developers can save time and effort, improve collaboration and communication, and build higher- quality software systems.
  • 8. Describing a pattern • Problem: In what situation should this pattern be used? • Solution: What should you do? What is the pattern? • describe details of the objects/classes/structure needed • should be somewhat language-neutral • Advantages: Why is this pattern useful? • Disadvantages: Why might someone not want this pattern?
  • 9. Categories of design patterns in software RE- engineering: • There are three main categories of design patterns in software engineering or reengineering: 1. Creational Patterns: These patterns are concerned with object creation mechanisms, trying to create objects in a manner that is suitable to the situation. 2. Structural Patterns: These patterns are concerned with object composition and relationships between objects, helping to form large-scale structures from individual objects. 3. Behavioral Patterns: These patterns are concerned with communication and coordination between objects and classes, focusing on how objects distribute work and responsibilities.
  • 10. Categories of design patterns in software RE- engineering:
  • 11. Creational Patterns • Creational Patterns: These patterns focus on object creation mechanisms, abstracting the instantiation process. Examples include: • Singleton: Ensures a class has only one instance and provides a global point of access to it. • Factory Method: Defines an interface for creating an object, allowing subclasses to alter the type of objects that will be created. • Prototype: Creates new objects by copying an existing object, avoiding the need to create new instances from scratch.
  • 12. Structural Patterns • Structural Patterns: These patterns deal with the composition of classes or objects. They help in forming large structures from individual parts. Examples include: • Adapter: Allows incompatible interfaces to work together by providing a wrapper with a compatible interface. • Decorator: Adds new functionality to an object dynamically without altering its structure. • Facade: Provides a simplified interface to a complex system, hiding its complexities from clients.
  • 13. Behavioral Patterns • Behavioral Patterns: These patterns are concerned with algorithms and the assignment of responsibilities between objects. They describe communication between objects and how they collaborate to perform a task. Examples include: • Observer: Defines a one-to-many dependency between objects, ensuring that when one object changes state, all its dependents are notified and updated automatically. • Strategy: Defines a family of algorithms, encapsulates each algorithm, and makes them interchangeable at runtime. • Command: Encapsulates a request as an object, allowing parameterization of clients with queues, requests, and operations.