SlideShare a Scribd company logo
Software reuse
1
Hajira Amjad (12282)
Ayesha Nizam (12298)
Sabiha Haider(12280)
Group Members
2
✔Software reuse
✔The reuse landscape
✔Application frameworks
✔Software product lines
✔COTS product reuse
Contents Covered
3
✔understand the benefits and problems
of reusing software
✔understand the concept of an
application framework
✔introduced to software product lines
✔How systems can be developed by
configuring and composing off-the-
shelf application software systems
Objectives : 4
What is Software Reuse?
5
6
Continued
✔Proposed more than 40 years ago
✔Since 2000 ‘development with reuse’
✔Software as a valuable asset
✔Open source movement huge reusable code base
✔Reuse-based software engineering
I. Application system reuse
II. Component reuse
III. Object and function reuse
IV. Concept reuse (a system model)
7
Benefits of reusing software assets:
✔Cost reduction
✔Increased dependability
✔Reduced process risk
✔Effective use of specialists
✔Standards compliance
✔Accelerated development
8
Problems of reusing software assets:
✔Component suitable for reuse
✔additional costs in testing (reduction in cost than anticipated)
✔Increased maintenance costs
✔Lack of tool support
✔Creating, maintaining, and using a component library
✔Finding, understanding, and adapting reusable components
9
Reuse software assets at organization level:
✔Part of an organization-wide reuse program (most effective)
✔Reuse program => creation of reusable assets, incorporate these assets in new software
✔Reuse an integral part of the Japanese ‘factory’ approach
10
The reuse landscape:
✔Techniques to support software reuse
✔Reuse is possible from simple functions to complete applications
11
Key factors to consider when planning reuse:
✔Development schedule for software
✔The expected software lifetime
✔The background, skills, and experience of the development team
✔The criticality of the software and its non-functional requirements
✔ The application domain
✔ The platform on which the system will run
12
Techniques for Reuse
✔Architectural patterns
✔Design patterns
✔Component-based development
✔Application frameworks
✔Legacy system wrapping
✔Service-oriented systems
✔Software product lines
13
Continued
✔COTS product reuse
✔ERP systems
✔Configurable vertical applications
✔Program libraries
✔Model-driven engineering
✔Program generators
✔Aspect-oriented software development
14
Application Framework
✔Object-oriented paradigm
-objects are too small
-Reimplement is preferred
✔A generic structure
-Classes, objects and components
-collaborated to provide a reuse
✔Support for generic features
✔Example: user interface framework
15
Further Explanation
-interface event handling
-set of widgets to construct display
✔Specific functionality may be added
✔Programming language-specific
✔Framework can incorporate other frameworks
• Classes of Framework
✔ System infrastructure frameworks
-user interfaces, communication, and compilers
16
Disadvantages
✔Middleware integration frameworks
-set of standards and association object classes
-support for communication and information exchange
-Examples: Microsoft.NET and enterprise java Beans
✔Enterprise application frameworks
-Specific application domains
-Example: Telecommunication and financial systems
-support development of end user applications
17
✔Web application frameworks
-Recent type , very important
-support for construction of dynamic websites
-model-view-controller pattern
-Security, Dynamic web pages , database support , session management , user interaction
18
Software Product Line
✔ A software product line is a collection of multiple software.
✔ SPL is a set of application with a common architecture and shared components
✔ Each application is specialized to reflect different requirements
✔ The core system is designed to be configured
✔ Identification of common functionalities
19
Software assets
✔ As we are talking about share assets. So, it is important to know “what are software
assets?”.
✔ There are multiple software assets. Some of these software assets are mentioned here.
✔ Software Requirement
✔ Software design
✔ Software Requirement
✔ Software Prototypes
✔ Software architecture
20
Software Product Line Engineering (SPLE)
✔ SPLE is a software engineering paradigm,
✔ which guides organizations toward the development of products
✔ from core assets rather than the development
✔ of products one by one from scratch.
21
Key differences
✔Application framework rely on object oriented approach
✔ Application frameworks are focused on providing technical details rather than domain-
specific support
✔ SPL are often control application for equipemant
✔ SPL are made up of a family of related application ,owned by the same organization
22
COTS product reuse
✔COTS stands for commercial-off-the-shelf
✔A software system that can be adapted to the needs of different customers without
changing the source code of the system.
✔Has the potential to be reused in different environments and as part of different
applications.
✔COTS products are adapted by using built-in configuration mechanisms.
✔Widely adopted by large companies over the last 15 or so years.
23
Benefits of COTS product reuse
✔More rapid deployment of a reliable system may be possible.
✔It is possible to see what functionality is provided by the applications.
✔Some development risks are avoided by using existing software.
✔Technology updates may be simplified.
24
Problems of COTS product reuse
✔Requirements usually have to be adapted to reflect the functionality and mode of
operation of the COTS product.
✔The COTS product may be based on assumptions that are practically impossible to
change.
✔Choosing the right COTS system for an enterprise can be a difficult process.
✔The COTS product vendor controls system support and evolution.
25
Types of COTS product reuse
✔There are two types of COTS product reuse.
✔COTS-solution systems.
✔COTS-integrated systems.
26
Difference between types of COTS product reuse
COTS-solution systems COTS-integrated systems
Single product that provides the
functionality required by a customer
Several heterogeneous system products
are integrated to provide customized
functionality
Based around a generic solution and
standardized processes
Flexible solutions may be developed for
customer processes
Development focus is on system
configuration
Development focus is on system
integration
System vendor is responsible for
maintenance
System owner is responsible for
maintenance
System vendor provides the platform for
the system
System owner provides the platform for
the system
27
COTS-solution systems
✔COTS-solution systems are generic application systems.
✔ They may be designed to support a particular business type.
✔For example, a COTS-solution system may be produced for dentists that handles
appointments, dental records, patient recall, etc.
28
configuration process
29
COTS-integrated systems
✔COTS-integrated systems are applications that include two or more COTS products or,
sometimes, legacy application systems.
✔These systems may be composed by connecting the output of one system to the input of
another or by updating the databases used by the COTS applications.
30
Continued
31
COTS system integration problems
✔Lack of control over functionality and performance.
✔Problems with COTS system interoperability .
✔No control over system evolution.
✔Support from COTS vendors.
32
Conclusion
✔Since 2000 that ‘development with reuse’ has become the norm for new business
systems.
✔An obvious advantage of software reuse is that overall development costs will be
reduced.
✔However, there are costs and problems associated with reuse.
✔ We should consider all aspects of a system carefully and then decide whether to reuse
software or create new one.
33
34
Any Questions?
35
Thank You
36

More Related Content

Similar to Software Reuse.pptx

Ch16.pptx
Ch16.pptxCh16.pptx
Ch16.pptx
AslamHossain30
 
Lect 1- software engineering
Lect 1- software engineeringLect 1- software engineering
Lect 1- software engineering
Shraddha Shirsat
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.ppt
Rvishnupriya2
 
Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika Kumara
Thejan Wijesinghe
 
Unit Testing Software Market Size, Share.pdf
Unit Testing Software Market Size, Share.pdfUnit Testing Software Market Size, Share.pdf
Unit Testing Software Market Size, Share.pdf
shreyaporekar9
 
Software engineering
Software engineeringSoftware engineering
Software engineering
nimmik4u
 
Customer-Specific Tailorability of Software Products- The Good, The Bad and T...
Customer-Specific Tailorability of Software Products- The Good, The Bad and T...Customer-Specific Tailorability of Software Products- The Good, The Bad and T...
Customer-Specific Tailorability of Software Products- The Good, The Bad and T...
ISPMAIndia
 
sw1.pdf
sw1.pdfsw1.pdf
sw1.pdf
Samehegazy2
 
SE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software EnginerringSE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software Enginerring
Amr E. Mohamed
 
SE2.ppt
SE2.pptSE2.ppt
SE2.ppt
AaMir519591
 
How to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your BusinessHow to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your Business
WSO2
 
Process in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software EngineerinProcess in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software Engineerin
MuhammadSufianJani
 
GENERATOR BASED REUSE.pptx
GENERATOR BASED REUSE.pptxGENERATOR BASED REUSE.pptx
GENERATOR BASED REUSE.pptx
SyedKhaleelahmed6
 
Ch16
Ch16Ch16
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
Jennifer Polack
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
Satya P. Joshi
 
Bse 3105 lecture 6-configuration management
Bse 3105  lecture 6-configuration managementBse 3105  lecture 6-configuration management
Bse 3105 lecture 6-configuration management
Alonzee Tash
 
SSE Practices Overview
SSE Practices OverviewSSE Practices Overview
SSE Practices Overview
IBM Rational software
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
Mohamed Essam
 
Requirement Analysis & Specification sharbani bhattacharya
Requirement Analysis & Specification sharbani bhattacharyaRequirement Analysis & Specification sharbani bhattacharya
Requirement Analysis & Specification sharbani bhattacharya
Sharbani Bhattacharya
 

Similar to Software Reuse.pptx (20)

Ch16.pptx
Ch16.pptxCh16.pptx
Ch16.pptx
 
Lect 1- software engineering
Lect 1- software engineeringLect 1- software engineering
Lect 1- software engineering
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.ppt
 
Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika Kumara
 
Unit Testing Software Market Size, Share.pdf
Unit Testing Software Market Size, Share.pdfUnit Testing Software Market Size, Share.pdf
Unit Testing Software Market Size, Share.pdf
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Customer-Specific Tailorability of Software Products- The Good, The Bad and T...
Customer-Specific Tailorability of Software Products- The Good, The Bad and T...Customer-Specific Tailorability of Software Products- The Good, The Bad and T...
Customer-Specific Tailorability of Software Products- The Good, The Bad and T...
 
sw1.pdf
sw1.pdfsw1.pdf
sw1.pdf
 
SE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software EnginerringSE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software Enginerring
 
SE2.ppt
SE2.pptSE2.ppt
SE2.ppt
 
How to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your BusinessHow to Choose an Integration Platform Vendor for Your Business
How to Choose an Integration Platform Vendor for Your Business
 
Process in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software EngineerinProcess in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software Engineerin
 
GENERATOR BASED REUSE.pptx
GENERATOR BASED REUSE.pptxGENERATOR BASED REUSE.pptx
GENERATOR BASED REUSE.pptx
 
Ch16
Ch16Ch16
Ch16
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Bse 3105 lecture 6-configuration management
Bse 3105  lecture 6-configuration managementBse 3105  lecture 6-configuration management
Bse 3105 lecture 6-configuration management
 
SSE Practices Overview
SSE Practices OverviewSSE Practices Overview
SSE Practices Overview
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Requirement Analysis & Specification sharbani bhattacharya
Requirement Analysis & Specification sharbani bhattacharyaRequirement Analysis & Specification sharbani bhattacharya
Requirement Analysis & Specification sharbani bhattacharya
 

Recently uploaded

Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 

Recently uploaded (20)

Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 

Software Reuse.pptx

  • 2. Hajira Amjad (12282) Ayesha Nizam (12298) Sabiha Haider(12280) Group Members 2
  • 3. ✔Software reuse ✔The reuse landscape ✔Application frameworks ✔Software product lines ✔COTS product reuse Contents Covered 3
  • 4. ✔understand the benefits and problems of reusing software ✔understand the concept of an application framework ✔introduced to software product lines ✔How systems can be developed by configuring and composing off-the- shelf application software systems Objectives : 4
  • 5. What is Software Reuse? 5
  • 6. 6
  • 7. Continued ✔Proposed more than 40 years ago ✔Since 2000 ‘development with reuse’ ✔Software as a valuable asset ✔Open source movement huge reusable code base ✔Reuse-based software engineering I. Application system reuse II. Component reuse III. Object and function reuse IV. Concept reuse (a system model) 7
  • 8. Benefits of reusing software assets: ✔Cost reduction ✔Increased dependability ✔Reduced process risk ✔Effective use of specialists ✔Standards compliance ✔Accelerated development 8
  • 9. Problems of reusing software assets: ✔Component suitable for reuse ✔additional costs in testing (reduction in cost than anticipated) ✔Increased maintenance costs ✔Lack of tool support ✔Creating, maintaining, and using a component library ✔Finding, understanding, and adapting reusable components 9
  • 10. Reuse software assets at organization level: ✔Part of an organization-wide reuse program (most effective) ✔Reuse program => creation of reusable assets, incorporate these assets in new software ✔Reuse an integral part of the Japanese ‘factory’ approach 10
  • 11. The reuse landscape: ✔Techniques to support software reuse ✔Reuse is possible from simple functions to complete applications 11
  • 12. Key factors to consider when planning reuse: ✔Development schedule for software ✔The expected software lifetime ✔The background, skills, and experience of the development team ✔The criticality of the software and its non-functional requirements ✔ The application domain ✔ The platform on which the system will run 12
  • 13. Techniques for Reuse ✔Architectural patterns ✔Design patterns ✔Component-based development ✔Application frameworks ✔Legacy system wrapping ✔Service-oriented systems ✔Software product lines 13
  • 14. Continued ✔COTS product reuse ✔ERP systems ✔Configurable vertical applications ✔Program libraries ✔Model-driven engineering ✔Program generators ✔Aspect-oriented software development 14
  • 15. Application Framework ✔Object-oriented paradigm -objects are too small -Reimplement is preferred ✔A generic structure -Classes, objects and components -collaborated to provide a reuse ✔Support for generic features ✔Example: user interface framework 15
  • 16. Further Explanation -interface event handling -set of widgets to construct display ✔Specific functionality may be added ✔Programming language-specific ✔Framework can incorporate other frameworks • Classes of Framework ✔ System infrastructure frameworks -user interfaces, communication, and compilers 16
  • 17. Disadvantages ✔Middleware integration frameworks -set of standards and association object classes -support for communication and information exchange -Examples: Microsoft.NET and enterprise java Beans ✔Enterprise application frameworks -Specific application domains -Example: Telecommunication and financial systems -support development of end user applications 17
  • 18. ✔Web application frameworks -Recent type , very important -support for construction of dynamic websites -model-view-controller pattern -Security, Dynamic web pages , database support , session management , user interaction 18
  • 19. Software Product Line ✔ A software product line is a collection of multiple software. ✔ SPL is a set of application with a common architecture and shared components ✔ Each application is specialized to reflect different requirements ✔ The core system is designed to be configured ✔ Identification of common functionalities 19
  • 20. Software assets ✔ As we are talking about share assets. So, it is important to know “what are software assets?”. ✔ There are multiple software assets. Some of these software assets are mentioned here. ✔ Software Requirement ✔ Software design ✔ Software Requirement ✔ Software Prototypes ✔ Software architecture 20
  • 21. Software Product Line Engineering (SPLE) ✔ SPLE is a software engineering paradigm, ✔ which guides organizations toward the development of products ✔ from core assets rather than the development ✔ of products one by one from scratch. 21
  • 22. Key differences ✔Application framework rely on object oriented approach ✔ Application frameworks are focused on providing technical details rather than domain- specific support ✔ SPL are often control application for equipemant ✔ SPL are made up of a family of related application ,owned by the same organization 22
  • 23. COTS product reuse ✔COTS stands for commercial-off-the-shelf ✔A software system that can be adapted to the needs of different customers without changing the source code of the system. ✔Has the potential to be reused in different environments and as part of different applications. ✔COTS products are adapted by using built-in configuration mechanisms. ✔Widely adopted by large companies over the last 15 or so years. 23
  • 24. Benefits of COTS product reuse ✔More rapid deployment of a reliable system may be possible. ✔It is possible to see what functionality is provided by the applications. ✔Some development risks are avoided by using existing software. ✔Technology updates may be simplified. 24
  • 25. Problems of COTS product reuse ✔Requirements usually have to be adapted to reflect the functionality and mode of operation of the COTS product. ✔The COTS product may be based on assumptions that are practically impossible to change. ✔Choosing the right COTS system for an enterprise can be a difficult process. ✔The COTS product vendor controls system support and evolution. 25
  • 26. Types of COTS product reuse ✔There are two types of COTS product reuse. ✔COTS-solution systems. ✔COTS-integrated systems. 26
  • 27. Difference between types of COTS product reuse COTS-solution systems COTS-integrated systems Single product that provides the functionality required by a customer Several heterogeneous system products are integrated to provide customized functionality Based around a generic solution and standardized processes Flexible solutions may be developed for customer processes Development focus is on system configuration Development focus is on system integration System vendor is responsible for maintenance System owner is responsible for maintenance System vendor provides the platform for the system System owner provides the platform for the system 27
  • 28. COTS-solution systems ✔COTS-solution systems are generic application systems. ✔ They may be designed to support a particular business type. ✔For example, a COTS-solution system may be produced for dentists that handles appointments, dental records, patient recall, etc. 28
  • 30. COTS-integrated systems ✔COTS-integrated systems are applications that include two or more COTS products or, sometimes, legacy application systems. ✔These systems may be composed by connecting the output of one system to the input of another or by updating the databases used by the COTS applications. 30
  • 32. COTS system integration problems ✔Lack of control over functionality and performance. ✔Problems with COTS system interoperability . ✔No control over system evolution. ✔Support from COTS vendors. 32
  • 33. Conclusion ✔Since 2000 that ‘development with reuse’ has become the norm for new business systems. ✔An obvious advantage of software reuse is that overall development costs will be reduced. ✔However, there are costs and problems associated with reuse. ✔ We should consider all aspects of a system carefully and then decide whether to reuse software or create new one. 33
  • 34. 34