SlideShare a Scribd company logo
6
Most read
13
Most read
15
Most read
Reusibility vs Extensibility in OOAD
CONTENTS :
1. The Differences between Reusability and
Extensibility as follows:
• Definitions
• Frameworks
• UML
• Classifications
2. Similarities
Reusibility vs Extensibility in OOAD
Reusibility vs Extensibility in OOAD
WHAT IS REUSABILITY?
Reusability is the use of existing assets in some form within the
software product development process. Assets are products and by
products of the software development life cycle and include code,
software components, test suites, designs and documentation. A
chunk of code is regularly organized using
modules or namespaces into layers. Objects and software
components offer a more advanced form of reusability.
WHAT IS EXTENSIBILITY?
Extensibility is a system design principle where the implementation
takes future growth into consideration. It is a systemic measure of
the ability to extend a system and the level of effort required to
implement the extension. Extensions can be through the addition of
new functionality or through modification of existing functionality.
The central theme is to provide for change typically enhancements
while minimizing impact to existing system functions.
REUSABILITY
1. Reusability should be increased where possible
2. Components should be designed to work on different context.
3. Generalize design as much as possible :
• Use Frameworks, Patterns, and UML Collaborations.
4. Design the system to contain hooks .
5. Keep the design as simple as possible.
REUSE ANALYSIS, DESIGN, AND CODE
• Reuse existing artifacts when possible, to take advantage of existing
investment.
• Use Frameworks, Patterns, and UML Collaborations.
Reusibility vs Extensibility in OOAD
SOFTWARE FRAMEWORK
.
• Represented by its code. , a Framework is
• A set of classes, abstract classes and interfaces.
• A set of behaviors, spread over these classes.
• An incomplete application for a family of products.
• A set of hooks, where subclasses can insert their specialized behavior.
• The expectations placed upon the subclasses.
• A logic decomposition of a problem
FRAMEWORK GOALS
• Reuse: code, design, domain analysis, and documentation.
• Simplify software development.
• Reduce code writing.
• Allow inexperienced designers and programmers to develop good
software.
• Extract the knowledge of experimented designers and programmers
REUSABILITY OF FRAMEWORK
• Reuse of framework components improves developer productivity,
as well as software performance, reliability, and interoperability.
• The stable interfaces define generic components that can be
extended to create new applications.
EXTENSIBILITY OF FRAMEWORKS
• A framework enhances extensibility by providing explicit hook
methods for planned variability.
• Extensibility is essential to ensure rapid customization of new
application features..
Reusibility vs Extensibility in OOAD
REUSABILITY IN UML
We investigate reusability definition, assessment, and analysis for
the unified modeling language (UML), focusing on using UML via a
tool (e.g., Rational Rose, Together Control Center, etc.) prior to the
development of software (code). Thus, this work concentrates on
reusing a “design model” and monitoring this reuse as the model is
transitioned into software.
EXTENSIBILITY IN UML
• UML extensibility features are simple way to store additional
information in models
• Infact , they have a significant semantic impact in expressive power
of UML by allowing modelers to extend UML with new modeling
concepts.
• UML tools match domain components and frameworks .These tools
used for rapid development using reusable assets .
Reusibility vs Extensibility in OOAD
CLASSIFICATION OF REUSABILITY
MECHANISMS
Object composition and inheritance are two techniques for reusing
functionality in object-oriented systems :
Class inheritance allows a subclass' implementation to be defined in
terms of the parent class' implementation. This type of reuse is often
called white-box reuse.
Object composition is a different method of reusing functionality.
Objects are composed to achieve more complex functionality. This
approach requires that the objects have well-defined interfaces since
the internals of the objects are unknown. Because objects are treated
only as "black boxes," this type of reuse is often called black-box
reuse.
CLASSIFICATION OF EXTENSIBILITY
MECHANISMS
1. White-Box Extensibility:
White-box extensibility refers to the ways in which a software
system can be extended by modifying or adding to the source code.
This is the least restrictive and most flexible form of extensibility.
Depending on the way changes are applied, we have to distinguish
further between open-box extensibility and glass-box extensibility
1.1 OPEN-BOX EXTENSIBILITY
1.2 Glass-Box Extensibility :
Glass-box extensibility refers to the ways in which a software system
may be copied, when the source code is available, but may not be
modified. Programmers that want to extend the system can view the
code, but they have to separate their extensions from the original
system in a way that does not affect the original system.
2. Black-box extensibility:
Black-box extensibility refers to the ways in which a software
system may be extended when no internal details about a
system’s architecture and implementation are available.
Black-box extensible systems are deployed and extended only
by using their interface specification. This approach allows
system manufacturers to fully encapsulate their systems and
hide all implementation details.
SIMILARITIES
Extensibility and reusability have many emphasized properties in
common, including low coupling, modularity and high cohesion.
Software reusability is boosted by extensibility and refers to
software elements’ ability to construct for many different software
systems, which is motivated by the observation of software systems
often sharing common elements. Reusability together with
extensibility allows a technology to be transferred to another project
with less development and maintenance time, as well as enhanced
reliability and consistency
Reusibility vs Extensibility in OOAD

More Related Content

PPTX
Software Evolution
PDF
Agile model
PPT
Analysis modeling & scenario based modeling
PPTX
System testing
PPTX
Introduction to Parallel and Distributed Computing
PPTX
Designing Techniques in Software Engineering
PPTX
Component Based Software Engineering
PDF
What is agile model
Software Evolution
Agile model
Analysis modeling & scenario based modeling
System testing
Introduction to Parallel and Distributed Computing
Designing Techniques in Software Engineering
Component Based Software Engineering
What is agile model

What's hot (20)

PPT
Introduction to Compiler Construction
PPTX
Component level design
PPTX
Context model
PPTX
Software Configuration Management (SCM)
PPTX
Performance analysis(Time & Space Complexity)
PPTX
Cocomo model
PPT
Coupling and cohesion
PDF
OS - Process Concepts
PPTX
Introduction to distributed database
PPT
Agile development, software engineering
PPT
Formal Specification in Software Engineering SE9
PPTX
Software Measurement and Metrics.pptx
PPT
Software Process Improvement
PPTX
Design concept -Software Engineering
PPTX
Software Engineering Practice
PDF
Software Engineering - Ch11
PPTX
Dbms 4NF & 5NF
PPTX
DBMS - RAID
PPT
File models and file accessing models
PPTX
Fundamental design concepts
Introduction to Compiler Construction
Component level design
Context model
Software Configuration Management (SCM)
Performance analysis(Time & Space Complexity)
Cocomo model
Coupling and cohesion
OS - Process Concepts
Introduction to distributed database
Agile development, software engineering
Formal Specification in Software Engineering SE9
Software Measurement and Metrics.pptx
Software Process Improvement
Design concept -Software Engineering
Software Engineering Practice
Software Engineering - Ch11
Dbms 4NF & 5NF
DBMS - RAID
File models and file accessing models
Fundamental design concepts
Ad

Similar to Reusibility vs Extensibility in OOAD (20)

PPTX
Reusability Vs Extensibility and Methodologies in OOAD
PPTX
Ch15 software reuse
PPT
Advanced Software Engineering.ppt
PPTX
Software engineering: design for reuse
PPTX
Ch15 - Software Reuse
PPTX
software reuse [PPT] 2.ppt seminar for btech
PPTX
Lecture 5 reusability
PPTX
Domain and Reuse Engineering.pptx
PPTX
Software reuse ppt.
PDF
Object oriented analysis and design unit- v
PPTX
software Engineering required documents for you
PPTX
Introduction to database m Chapter 9.pptx
PPT
Software resuse
PPTX
Module_5_Class-Responsibility-Collaborator (CRC) Modeling.pptx
PDF
A Survey of Software Reusability
PPTX
Software reuse is the use of existing artifacts to build new software compone...
PPTX
Reuse landscape
PPTX
Software Reuse
Reusability Vs Extensibility and Methodologies in OOAD
Ch15 software reuse
Advanced Software Engineering.ppt
Software engineering: design for reuse
Ch15 - Software Reuse
software reuse [PPT] 2.ppt seminar for btech
Lecture 5 reusability
Domain and Reuse Engineering.pptx
Software reuse ppt.
Object oriented analysis and design unit- v
software Engineering required documents for you
Introduction to database m Chapter 9.pptx
Software resuse
Module_5_Class-Responsibility-Collaborator (CRC) Modeling.pptx
A Survey of Software Reusability
Software reuse is the use of existing artifacts to build new software compone...
Reuse landscape
Software Reuse
Ad

Recently uploaded (20)

PPTX
OOP with Java - Java Introduction (Basics)
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPT
Mechanical Engineering MATERIALS Selection
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
Sustainable Sites - Green Building Construction
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
additive manufacturing of ss316l using mig welding
PDF
composite construction of structures.pdf
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
Well-logging-methods_new................
PDF
PPT on Performance Review to get promotions
PPTX
Geodesy 1.pptx...............................................
OOP with Java - Java Introduction (Basics)
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Mechanical Engineering MATERIALS Selection
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Foundation to blockchain - A guide to Blockchain Tech
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
CYBER-CRIMES AND SECURITY A guide to understanding
Sustainable Sites - Green Building Construction
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
additive manufacturing of ss316l using mig welding
composite construction of structures.pdf
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Well-logging-methods_new................
PPT on Performance Review to get promotions
Geodesy 1.pptx...............................................

Reusibility vs Extensibility in OOAD

  • 2. CONTENTS : 1. The Differences between Reusability and Extensibility as follows: • Definitions • Frameworks • UML • Classifications 2. Similarities
  • 5. WHAT IS REUSABILITY? Reusability is the use of existing assets in some form within the software product development process. Assets are products and by products of the software development life cycle and include code, software components, test suites, designs and documentation. A chunk of code is regularly organized using modules or namespaces into layers. Objects and software components offer a more advanced form of reusability.
  • 6. WHAT IS EXTENSIBILITY? Extensibility is a system design principle where the implementation takes future growth into consideration. It is a systemic measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The central theme is to provide for change typically enhancements while minimizing impact to existing system functions.
  • 7. REUSABILITY 1. Reusability should be increased where possible 2. Components should be designed to work on different context. 3. Generalize design as much as possible : • Use Frameworks, Patterns, and UML Collaborations. 4. Design the system to contain hooks . 5. Keep the design as simple as possible.
  • 8. REUSE ANALYSIS, DESIGN, AND CODE • Reuse existing artifacts when possible, to take advantage of existing investment. • Use Frameworks, Patterns, and UML Collaborations.
  • 10. SOFTWARE FRAMEWORK . • Represented by its code. , a Framework is • A set of classes, abstract classes and interfaces. • A set of behaviors, spread over these classes. • An incomplete application for a family of products. • A set of hooks, where subclasses can insert their specialized behavior. • The expectations placed upon the subclasses. • A logic decomposition of a problem
  • 11. FRAMEWORK GOALS • Reuse: code, design, domain analysis, and documentation. • Simplify software development. • Reduce code writing. • Allow inexperienced designers and programmers to develop good software. • Extract the knowledge of experimented designers and programmers
  • 12. REUSABILITY OF FRAMEWORK • Reuse of framework components improves developer productivity, as well as software performance, reliability, and interoperability. • The stable interfaces define generic components that can be extended to create new applications.
  • 13. EXTENSIBILITY OF FRAMEWORKS • A framework enhances extensibility by providing explicit hook methods for planned variability. • Extensibility is essential to ensure rapid customization of new application features..
  • 15. REUSABILITY IN UML We investigate reusability definition, assessment, and analysis for the unified modeling language (UML), focusing on using UML via a tool (e.g., Rational Rose, Together Control Center, etc.) prior to the development of software (code). Thus, this work concentrates on reusing a “design model” and monitoring this reuse as the model is transitioned into software.
  • 16. EXTENSIBILITY IN UML • UML extensibility features are simple way to store additional information in models • Infact , they have a significant semantic impact in expressive power of UML by allowing modelers to extend UML with new modeling concepts. • UML tools match domain components and frameworks .These tools used for rapid development using reusable assets .
  • 18. CLASSIFICATION OF REUSABILITY MECHANISMS Object composition and inheritance are two techniques for reusing functionality in object-oriented systems : Class inheritance allows a subclass' implementation to be defined in terms of the parent class' implementation. This type of reuse is often called white-box reuse. Object composition is a different method of reusing functionality. Objects are composed to achieve more complex functionality. This approach requires that the objects have well-defined interfaces since the internals of the objects are unknown. Because objects are treated only as "black boxes," this type of reuse is often called black-box reuse.
  • 19. CLASSIFICATION OF EXTENSIBILITY MECHANISMS 1. White-Box Extensibility: White-box extensibility refers to the ways in which a software system can be extended by modifying or adding to the source code. This is the least restrictive and most flexible form of extensibility. Depending on the way changes are applied, we have to distinguish further between open-box extensibility and glass-box extensibility
  • 21. 1.2 Glass-Box Extensibility : Glass-box extensibility refers to the ways in which a software system may be copied, when the source code is available, but may not be modified. Programmers that want to extend the system can view the code, but they have to separate their extensions from the original system in a way that does not affect the original system.
  • 22. 2. Black-box extensibility: Black-box extensibility refers to the ways in which a software system may be extended when no internal details about a system’s architecture and implementation are available. Black-box extensible systems are deployed and extended only by using their interface specification. This approach allows system manufacturers to fully encapsulate their systems and hide all implementation details.
  • 23. SIMILARITIES Extensibility and reusability have many emphasized properties in common, including low coupling, modularity and high cohesion. Software reusability is boosted by extensibility and refers to software elements’ ability to construct for many different software systems, which is motivated by the observation of software systems often sharing common elements. Reusability together with extensibility allows a technology to be transferred to another project with less development and maintenance time, as well as enhanced reliability and consistency