SlideShare ist ein Scribd-Unternehmen logo
1 von 19
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1
Software Reuse
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 2
Software reuse
 In most engineering disciplines, systems are
designed by composing existing components
that have been used in other systems.
 Software engineering has been more focused
on original development but it is now
recognised that to achieve better software,
more quickly and at lower cost, we need to
adopt a design process that is based on
systematic software reuse.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 3
Reuse-based software engineering
 Application system reuse
• The whole of an application system may be reused
either by incorporating it without change into other
systems (COTS reuse) or by developing application
families.
 Component reuse
• Components of an application from sub-systems to
single objects may be reused.
 Object and function reuse
• Software components that implement a single well-
defined object or function may be reused.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 4
Reuse benefits 1
Increased dependability Reused software, that has been tried and tested in working systems,
should be m ore dependable than new software. The initial use of the
software reveals any design and implementation faults. These are then
fixed, thus reducing the number of failures when the software is reused.
Reduced process risk If software exists, there is less uncertainty in the costs of reusing that
software than in the costs of development. This is an important factor
for project management as it reduces the margin of error in project cost
estimation. This is particularly true when relatively large software
components such as sub-systems are reused.
Effective use of specialists Instead of application specialists doing the same work on different
projects, these specialists can develop reusable software that
encapsulatetheir knowledge.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 5
Reuse benefits 2
Standards compliance Some standards, such as user interface standards, can be
implemented as a set of standard reusable components. For
example, if menus in a user interfaces are implemented using
reusable components, all applications present the same menu
formats to users. The use of standard user interfaces improves
dependability as users are less likely to make mistakes when
presented with a familiar interface.
Accelerated development Bringing a system to market as early as possible is o ften more
important than overall development costs. Reusing software can
speed up system production because both development and
validation time should be reduced.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 6
Reuse problems 1
Increased maintenance
costs
If the source code of a reused software system or component is not
available then maintenance costs may be increased as the reused
elements of the system may become increasingly incompatible with
system changes.
Lack of tool support CASE toolsets may not support development with reuse. It may be
difficult or impossible to integrate these tools with a component
library system. The software process assumed by these tools may not
take reuse into account.
Not-invented-here
syndrome
Some software engineers sometimes prefer to re-write components as
they believe that they can improve on the reusable component. This is
partly to do with trust and partly to do with the fact that writing
original software is s een as more challenging than reusing other
peopleÕs so
ftware.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 7
Reuse problems 2
Creating and maintaining a
component library
Populating a reusable component library and ensuring the software
developers can use this library can be expensive. Our current techniques
for classifying, cataloguing and retrieving software components are
immature.
Finding, understanding and
adapting reusable components
Software components have to be discovered in a library, understood and,
sometimes, adapted to work in a n ew environment. Engineers must be
reasonably confident of finding a component in the library before they will
make routinely include a component search as part of their normal
development process.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 8
The reuse landscape
 Although reuse is often simply thought of as
the reuse of system components, there are
many different approaches to reuse that may
be used.
 Reuse is possible at a range of levels from
simple functions to complete application
systems.
 The reuse landscape covers the range of
possible reuse techniques.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 9
The reuse landscape
Design
patterns
Component-based
development
Component
frameworks
Service-oriented
systems
COTS
integration
Application
product lines
Legacy system
wrapping
Program
libraries
Program
generators
Aspect-oriented
software development
Configurable ver tical
applications
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 10
Reuse planning factors
 The development schedule for the 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 execution platform for the software.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 11
Software product lines
 Software product line is a set of applications with
common architecture and shared components with
each application specialized to reflect different
requirements.
 Software product lines usually emerge from
existing applications.
 The core system is designed to configure and
adapt to suit the needs of different system
customers
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 12
 Adaptation may involve:
• Component and system configuration;
• Adding new components to the system;
• Selecting from a library of existing components;
• Modifying components to meet new requirements.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 13
Software product lines
specialisation
 Platform specialisation
• Different versions of the application are developed for
different platforms.
(eg. Windows, Mac OS and linux platforms)
 Environment specialisation
• Different versions of the application are created to
handle different operating environments
(e.g. System for emergency services may exist in
different versions based on different types of
communication equipment.)
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 14
 Functional specialisation
• Different versions of the application are created for
customers with different requirements.
(eg. library automation system may be modified based
on public library, reference library, university library etc)
 Process specialisation
• Different versions of the application are created to
support different business processes.
(eg. Ordering system may be centralized in one
company and distributed process in another)
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 15
COTS product reuse
 COTS - Commercial Off-The-Shelf systems.
 COTS systems are usually complete
application systems that offer an API
(Application Programming Interface).
 COTS product is a software system that can
be adapted to the needs of different
customers without changing the source code
of the system.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 16
 Virtually all desktop software and wide variety of
server products are COTS Software.
 COTS products are adapted by using built-in
configuration mechanisms that allow the functionality
of the system to be tailored to specific customer
needs.
 The key benefit is faster application development
and, usually, lower development costs.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 17
Types of COTS Product reuse
 COTS-Solution systems
COTS-Solution systems consist of a generic
application from a single vendor that is
configured to customer requirements
 COTS –Integrated systems
 Involves integrating two or more COTS
systems(perhaps from different vendors) to
create an application system
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 18
COTS-Solution systems
 Single product that provides the functionality
required by a customer
 Based around a generic solution and
standardized processes.
 Focus is on system configuration
 System vendor is responsible for maintenance
 System vendor provides platform for the
system.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 19
COTS –Integrated systems
 Several heterogeneous system products are
integrated to provide customized functionality
 Flexible solutions may be developed for
customer processes
 Development focus is on system integration
 System owner is responsible for maintenance
 System owner provides the platform for the
system

Weitere ähnliche Inhalte

Ähnlich wie Lecture-17.ppt

Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.pptRvishnupriya2
 
Ch16-Software Engineering 9
Ch16-Software Engineering 9Ch16-Software Engineering 9
Ch16-Software Engineering 9Ian Sommerville
 
Software Engineering - Ch17
Software Engineering - Ch17Software Engineering - Ch17
Software Engineering - Ch17Siddharth Ayer
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9Ian Sommerville
 
Ch1-Software Engineering 9
Ch1-Software Engineering 9Ch1-Software Engineering 9
Ch1-Software Engineering 9Ian Sommerville
 
Software Prototyping
Software PrototypingSoftware Prototyping
Software PrototypingZafar Ayub
 
about how software prototyping helps in SDLC
about how software prototyping helps in SDLCabout how software prototyping helps in SDLC
about how software prototyping helps in SDLCshettyplacement08
 
Unit V _Software Engineering_21CSCST4050.pptx
Unit V _Software Engineering_21CSCST4050.pptxUnit V _Software Engineering_21CSCST4050.pptx
Unit V _Software Engineering_21CSCST4050.pptxbaranicsea
 
Lecture - 11-15.pptx
Lecture - 11-15.pptxLecture - 11-15.pptx
Lecture - 11-15.pptxFarHana74914
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewghayour abbas
 
Developing reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemsDeveloping reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemseSAT Publishing House
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 

Ähnlich wie Lecture-17.ppt (20)

Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.ppt
 
Ch16-Software Engineering 9
Ch16-Software Engineering 9Ch16-Software Engineering 9
Ch16-Software Engineering 9
 
Software Engineering - Ch17
Software Engineering - Ch17Software Engineering - Ch17
Software Engineering - Ch17
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9
 
Ch1-Software Engineering 9
Ch1-Software Engineering 9Ch1-Software Engineering 9
Ch1-Software Engineering 9
 
Software Prototyping
Software PrototypingSoftware Prototyping
Software Prototyping
 
Reuse landscape
Reuse landscapeReuse landscape
Reuse landscape
 
about how software prototyping helps in SDLC
about how software prototyping helps in SDLCabout how software prototyping helps in SDLC
about how software prototyping helps in SDLC
 
Unit V _Software Engineering_21CSCST4050.pptx
Unit V _Software Engineering_21CSCST4050.pptxUnit V _Software Engineering_21CSCST4050.pptx
Unit V _Software Engineering_21CSCST4050.pptx
 
Ch6
Ch6Ch6
Ch6
 
Lecture - 11-15.pptx
Lecture - 11-15.pptxLecture - 11-15.pptx
Lecture - 11-15.pptx
 
Ch9
Ch9Ch9
Ch9
 
M 3.1 reuse
M 3.1 reuseM 3.1 reuse
M 3.1 reuse
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overview
 
Developing reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemsDeveloping reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systems
 
Software resuse
Software  resuseSoftware  resuse
Software resuse
 
0273710133 pp01v2
0273710133 pp01v20273710133 pp01v2
0273710133 pp01v2
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 

Kürzlich hochgeladen

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 

Kürzlich hochgeladen (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 

Lecture-17.ppt

  • 1. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse
  • 2. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 2 Software reuse  In most engineering disciplines, systems are designed by composing existing components that have been used in other systems.  Software engineering has been more focused on original development but it is now recognised that to achieve better software, more quickly and at lower cost, we need to adopt a design process that is based on systematic software reuse.
  • 3. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 3 Reuse-based software engineering  Application system reuse • The whole of an application system may be reused either by incorporating it without change into other systems (COTS reuse) or by developing application families.  Component reuse • Components of an application from sub-systems to single objects may be reused.  Object and function reuse • Software components that implement a single well- defined object or function may be reused.
  • 4. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 4 Reuse benefits 1 Increased dependability Reused software, that has been tried and tested in working systems, should be m ore dependable than new software. The initial use of the software reveals any design and implementation faults. These are then fixed, thus reducing the number of failures when the software is reused. Reduced process risk If software exists, there is less uncertainty in the costs of reusing that software than in the costs of development. This is an important factor for project management as it reduces the margin of error in project cost estimation. This is particularly true when relatively large software components such as sub-systems are reused. Effective use of specialists Instead of application specialists doing the same work on different projects, these specialists can develop reusable software that encapsulatetheir knowledge.
  • 5. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 5 Reuse benefits 2 Standards compliance Some standards, such as user interface standards, can be implemented as a set of standard reusable components. For example, if menus in a user interfaces are implemented using reusable components, all applications present the same menu formats to users. The use of standard user interfaces improves dependability as users are less likely to make mistakes when presented with a familiar interface. Accelerated development Bringing a system to market as early as possible is o ften more important than overall development costs. Reusing software can speed up system production because both development and validation time should be reduced.
  • 6. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 6 Reuse problems 1 Increased maintenance costs If the source code of a reused software system or component is not available then maintenance costs may be increased as the reused elements of the system may become increasingly incompatible with system changes. Lack of tool support CASE toolsets may not support development with reuse. It may be difficult or impossible to integrate these tools with a component library system. The software process assumed by these tools may not take reuse into account. Not-invented-here syndrome Some software engineers sometimes prefer to re-write components as they believe that they can improve on the reusable component. This is partly to do with trust and partly to do with the fact that writing original software is s een as more challenging than reusing other peopleÕs so ftware.
  • 7. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 7 Reuse problems 2 Creating and maintaining a component library Populating a reusable component library and ensuring the software developers can use this library can be expensive. Our current techniques for classifying, cataloguing and retrieving software components are immature. Finding, understanding and adapting reusable components Software components have to be discovered in a library, understood and, sometimes, adapted to work in a n ew environment. Engineers must be reasonably confident of finding a component in the library before they will make routinely include a component search as part of their normal development process.
  • 8. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 8 The reuse landscape  Although reuse is often simply thought of as the reuse of system components, there are many different approaches to reuse that may be used.  Reuse is possible at a range of levels from simple functions to complete application systems.  The reuse landscape covers the range of possible reuse techniques.
  • 9. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 9 The reuse landscape Design patterns Component-based development Component frameworks Service-oriented systems COTS integration Application product lines Legacy system wrapping Program libraries Program generators Aspect-oriented software development Configurable ver tical applications
  • 10. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 10 Reuse planning factors  The development schedule for the 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 execution platform for the software.
  • 11. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 11 Software product lines  Software product line is a set of applications with common architecture and shared components with each application specialized to reflect different requirements.  Software product lines usually emerge from existing applications.  The core system is designed to configure and adapt to suit the needs of different system customers
  • 12. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 12  Adaptation may involve: • Component and system configuration; • Adding new components to the system; • Selecting from a library of existing components; • Modifying components to meet new requirements.
  • 13. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 13 Software product lines specialisation  Platform specialisation • Different versions of the application are developed for different platforms. (eg. Windows, Mac OS and linux platforms)  Environment specialisation • Different versions of the application are created to handle different operating environments (e.g. System for emergency services may exist in different versions based on different types of communication equipment.)
  • 14. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 14  Functional specialisation • Different versions of the application are created for customers with different requirements. (eg. library automation system may be modified based on public library, reference library, university library etc)  Process specialisation • Different versions of the application are created to support different business processes. (eg. Ordering system may be centralized in one company and distributed process in another)
  • 15. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 15 COTS product reuse  COTS - Commercial Off-The-Shelf systems.  COTS systems are usually complete application systems that offer an API (Application Programming Interface).  COTS product is a software system that can be adapted to the needs of different customers without changing the source code of the system.
  • 16. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 16  Virtually all desktop software and wide variety of server products are COTS Software.  COTS products are adapted by using built-in configuration mechanisms that allow the functionality of the system to be tailored to specific customer needs.  The key benefit is faster application development and, usually, lower development costs.
  • 17. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 17 Types of COTS Product reuse  COTS-Solution systems COTS-Solution systems consist of a generic application from a single vendor that is configured to customer requirements  COTS –Integrated systems  Involves integrating two or more COTS systems(perhaps from different vendors) to create an application system
  • 18. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 18 COTS-Solution systems  Single product that provides the functionality required by a customer  Based around a generic solution and standardized processes.  Focus is on system configuration  System vendor is responsible for maintenance  System vendor provides platform for the system.
  • 19. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 19 COTS –Integrated systems  Several heterogeneous system products are integrated to provide customized functionality  Flexible solutions may be developed for customer processes  Development focus is on system integration  System owner is responsible for maintenance  System owner provides the platform for the system