Download presentation
Presentation is loading. Please wait.
Published byGeorgiana Norton Modified over 9 years ago
1
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse
2
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 2 Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software reuse l To explain how reusable concepts can be represented as patterns or embedded in program generators l To discuss COTS reuse l To describe the development of software product lines
3
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 3 Software reuse l In most engineering disciplines, systems are designed by composing existing components that have been used in other systems. l 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.
4
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 4 Reuse-based software engineering l 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. l Component reuse Components of an application from sub-systems to single objects may be reused. Covered in Chapter 19. l Object and function reuse Software components that implement a single well- defined object or function may be reused.
5
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 5 Reuse benefits 1
6
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 6 Reuse benefits 2
7
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 7 Reuse problems 1
8
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 8 Reuse problems 2
9
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 9 The reuse landscape l Although reuse is often simply thought of as the reuse of system components, there are many different approaches to reuse that may be used. l Reuse is possible at a range of levels from simple functions to complete application systems. l The reuse landscape covers the range of possible reuse techniques.
10
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 10 The reuse landscape
11
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 11 Reuse approaches 1
12
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 12 Reuse approaches 2
13
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 13 Reuse planning factors l The development schedule for the software. l The expected software lifetime. l The background, skills and experience of the development team. l The criticality of the software and its non- functional requirements. l The application domain. l The execution platform for the software.
14
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 14 Concept reuse l When you reuse program or design components, you have to follow the design decisions made by the original developer of the component. l This may limit the opportunities for reuse. l However, a more abstract form of reuse is concept reuse when a particular approach is described in an implementation independent way and an implementation is then developed. l The two main approaches to concept reuse are: Design patterns; Generative programming.
15
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 15 Design patterns l A design pattern is a way of reusing abstract knowledge about a problem and its solution. l A pattern is a description of the problem and the essence of its solution. l It should be sufficiently abstract to be reused in different settings. l Patterns often rely on object characteristics such as inheritance and polymorphism.
16
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 16 Pattern elements l Name A meaningful pattern identifier. l Problem description. l Solution description. Not a concrete design but a template for a design solution that can be instantiated in different ways. l Consequences The results and trade-offs of applying the pattern.
17
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 17 Multiple displays
18
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 18 The Observer pattern l Name Observer. l Description Separates the display of object state from the object itself. l Problem description Used when multiple displays of state are needed. l Solution description See slide with UML description. l Consequences Optimisations to enhance display performance are impractical.
19
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 19 The Observer pattern
20
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 20 Generator-based reuse l Program generators involve the reuse of standard patterns and algorithms. l These are embedded in the generator and parameterised by user commands. A program is then automatically generated. l Generator-based reuse is possible when domain abstractions and their mapping to executable code can be identified. l A domain specific language is used to compose and control these abstractions.
21
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 21 Types of program generator l Types of program generator Application generators for business data processing; Parser and lexical analyser generators for language processing; Code generators in CASE tools. l Generator-based reuse is very cost-effective but its applicability is limited to a relatively small number of application domains. l It is easier for end-users to develop programs using generators compared to other component-based approaches to reuse.
22
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 22 Reuse through program generation
23
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 23 l Advantages of reuse are lower costs, faster software development and lower risks. l Design patterns are high-level abstractions that document successful design solutions. l Program generators are also concerned with software reuse - the reusable concepts are embedded in a generator system. Key points
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.