+ All Categories
Home > Documents > Software Resue

Software Resue

Date post: 06-Apr-2018
Category:
Upload: gkiranpremkumar
View: 217 times
Download: 0 times
Share this document with a friend
7
Software Reuse T o explain the benefits of  software reuse and some reuse problems T o discuss several different ways to implement software reuse T o explain how reusable concepts can be represented as patterns or embedded in program T o discuss COTS reuse T o describe the development of  software product lines  The reuse landscape  Generator based reuse Application frameworks  In most engineering iscip ines, systems are designed by composing existing components that have been used in other systems. Software en ineerin  has been more focused on original development but it is now reco nised that to achieve better software  more quickly and at lower cost, we need to ado t a des i n rocess tha t is bas ed on  systematic software reuse.
Transcript
Page 1: Software Resue

8/2/2019 Software Resue

http://slidepdf.com/reader/full/software-resue 1/7

Software Reuse

• To explain the benefits of  software reuse and some 

reuse problems

• To discuss several different ways to implement 

software reuse

• To explain how reusable concepts can be 

represented as patterns or embedded in program 

• To discuss COTS reuse

• To describe the development of  software product 

lines

 

• The reuse landscape

•  

• Generator based reuse

• Application frameworks

•  

• In most engineering  iscip ines, systems are 

designed by composing existing components 

that have

 been

 used

 in

 other

 systems.

• Software en ineerin   has been more focused 

on original development but it is now 

reco nised that to achieve better software 

more quickly and at lower cost, we need to 

ado t a desi n rocess that is based on 

systematic software reuse.

Page 2: Software Resue

8/2/2019 Software Resue

http://slidepdf.com/reader/full/software-resue 2/7

Page 3: Software Resue

8/2/2019 Software Resue

http://slidepdf.com/reader/full/software-resue 3/7

 

component library 

developers can use this library can be expensive. Our current techniquesfor classifying, cataloguing and retrieving software components areimmature.

n ng, un erstan ng anadapting reusable components

o tware components ave to e scovere n a rary, un erstoo an ,sometimes, adapted to work in a n ew environment. Engineers must bereasonably confident of finding a component in the library before they willmake routinely include a component search as part of their normal

.

 

• Although reuse is often simply thought of  as 

the reuse

 of 

 system

 components,

 there

 are

 

many different approaches to reuse that may 

.

• Reuse is possible at a range of  levels from 

simple functions to complete application 

systems.• The reuse landscape covers the range of  

.

 

Design patterns Generic abstractions that occur across applications arerepresented as design patterns that show abstract and concreteo ec s an n erac ons.

Component-baseddevelopment

Systems are developed by integrating components(collections of objects) that conform to component-model

v

. .

Applicationframeworks

Collections of abstract and concrete classes that can beadapted and extended to create application systems.

egacy sys emwrapping

egacy sys ems see ap er a can e wrappe

ydefining a set of interfaces and providing access to theselegacy systems through these interfaces.

-

systems

 

externally provided.

Page 4: Software Resue

8/2/2019 Software Resue

http://slidepdf.com/reader/full/software-resue 4/7

 

Application product

lines

An application type is generalised around a common

architecture so that it can be adapted in different ways for.

COTS integration Systems are developed by integrating existing applicationsystems.

 applications

 the needs of specific system customers.

Program libraries Class and function libraries implementing commonly-usedabstractions are available for reuse.

Program generators A generator system embeds knowledge of a particular typesof application and can generate systems or system f ragments

in that domain.Aspect-orientedsoftware development

Shared components are woven into an application at differentplaces when the program is compiled.

 

• The development schedule for the software.

• 

.

• The background, skills and experience of  the 

eve opment team.

• The criticalit   of  the software and its non‐

functional requirements.

• e app ca on

 oma n.

• The execution platform for the software.

 

• en you reuse program or  es gn components, you  ave 

to follow the design decisions made by the original .

• This may limit the opportunities for reuse.

• However a more abstract form of reuse is conce t reuse 

when a particular approach is described in an 

implementation independent way and an implementation 

s  en  eve ope .

• The two main approaches to concept reuse are:

 –   

 –  Generative programming.

 

• A design pattern is a way of  reusing abstract 

knowledge about a problem and its solution.

• A pattern is a description of  the problem and 

.

• It should be sufficiently abstract to be reused 

in different settings.

 

such as

 inheritance

 and

 polymorphism.

Page 5: Software Resue

8/2/2019 Software Resue

http://slidepdf.com/reader/full/software-resue 5/7

 

• Name

 –  A meanin ful

 attern

 identifier.

• Problem description.

• Solution description.

 –  Not a concrete design but a template for a design 

solution that can be instantiated in different ways.

 –  The results and trade‐offs of  applying the pattern.

 

• Name

 –  Observer.

• Description

 –  Separates the

 display

 of 

 object

 state

 from

 the

 object

 itself.

• Problem description

 –  se   w en mu p e  sp ays o  s a e are n e e e .

• Solution description

 –  See slide with UML description.

• Consequences

 –  Optimisations to enhance display performance are impractical.

 

Page 6: Software Resue

8/2/2019 Software Resue

http://slidepdf.com/reader/full/software-resue 6/7

 

• Framewor s are a su ‐system  esign ma e up 

of  a

 collection

 of 

 abstract

 and

 concrete

 classes

 and the interfaces between them.

• The sub‐s stem is im lemented b   addin  

components to fill in parts of  the design and 

b   instantiatin   the abstract classes in the 

framework.

 

can be reused.

 

• ys em  n ras ruc ure  ramewor s

 –  Support the

 development

 of 

 system

 n ras ruc ures suc   as commun ca ons, user 

interfaces and compilers.

 

 –  Standards and classes that support component 

.

• Enterprise application frameworks –  – 

 

application such as telecommunications or 

financial systems.

 

• Frameworks are generic and are extended to create a more 

specific application or sub‐system.

•  

 –  Adding concrete classes that inherit operations from abstract 

classes in the framework;

 –  Adding methods that are called in response to events that are 

recognised by the framework.

• Problem with frameworks is their complexity which means that 

it takes a long time to use them effectively.

• System infrastructure framework for GUI 

design.

• Allows for multiple presentations of  an object 

presentations.

• MVC framework involves the instantiation of  a 

number of atterns as discussed earlier 

under concept

 reuse).

Page 7: Software Resue

8/2/2019 Software Resue

http://slidepdf.com/reader/full/software-resue 7/7

‐ ‐

• Invo ves t e reuse o  entire app ication 

systems either

 by

 configuring

 a

 system

 for

 an

 environment or by integrating two or more 

systems to create a new application.

• Two approaches covered here:

 –   

 –  Product line development.


Recommended