SlideShare a Scribd company logo
©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

More Related Content

Similar to Lecture-17.ppt

Ch15 - Software Reuse
Ch15 - Software ReuseCh15 - Software Reuse
Ch15 - Software Reuse
Harsh Verdhan Raj
 
Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
software-engineering-book
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.ppt
Rvishnupriya2
 
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 Models
Nishu 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 Prototyping
Zafar Ayub
 
Reuse landscape
Reuse landscapeReuse landscape
Reuse landscape
sommerville-videos
 
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
shettyplacement08
 
Unit V _Software Engineering_21CSCST4050.pptx
Unit V _Software Engineering_21CSCST4050.pptxUnit V _Software Engineering_21CSCST4050.pptx
Unit V _Software Engineering_21CSCST4050.pptx
baranicsea
 
Lecture - 11-15.pptx
Lecture - 11-15.pptxLecture - 11-15.pptx
Lecture - 11-15.pptx
FarHana74914
 
Ch9
Ch9Ch9
SOFTWAREENGINEERING CONCEPTS INJNTUK MO
SOFTWAREENGINEERING CONCEPTS INJNTUK  MOSOFTWAREENGINEERING CONCEPTS INJNTUK  MO
SOFTWAREENGINEERING CONCEPTS INJNTUK MO
tpvvsreenivasarao
 
M 3.1 reuse
M 3.1 reuseM 3.1 reuse
M 3.1 reuse
VIT VELLORE
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overview
ghayour 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 systems
eSAT Publishing House
 
Software resuse
Software  resuseSoftware  resuse
Software resuse
Indu Sharma Bhardwaj
 

Similar to Lecture-17.ppt (20)

Ch15 - Software Reuse
Ch15 - Software ReuseCh15 - Software Reuse
Ch15 - Software Reuse
 
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
 
SOFTWAREENGINEERING CONCEPTS INJNTUK MO
SOFTWAREENGINEERING CONCEPTS INJNTUK  MOSOFTWAREENGINEERING CONCEPTS INJNTUK  MO
SOFTWAREENGINEERING CONCEPTS INJNTUK MO
 
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
 

Recently uploaded

Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 

Recently uploaded (20)

Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 

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