Software Reuse Objectives

Slides:



Advertisements
Similar presentations
Chapter 14 Design with Reuse.
Advertisements

Software Reuse and Component-Based Software Engineering
Main issues: • Why is reuse so difficult • How to realize reuse
Software Reuse SEII-Lecture 28
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Software Reuse Building software from reusable components Objectives
Software Evolution Managing the processes of software system change
Notion of a Project Notes from OOSE Slides - modified.
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
Building software from reusable components.
Reuse Basic concepts. Rationale for reuse  Save calendar time  Save person hours  Reduce process risk  Increased quality  Standards compliance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Software Engineering Reuse.
CLEANROOM SOFTWARE ENGINEERING.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Figures – Chapter 16. Figure 16.1 Benefits of software reuse BenefitExplanation Increased dependabilityReused software, which has been tried and tested.
Software Product Families. Generative Programming Main text: Ian Sommerville, Software Engineering, 8 th edition, chapter 18 Additional readings: K. Czarnecki.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Software Reusability An efficient way in Software Development By Tejaswi Peesapati
Software Reuse compliments of Spiros Mancoridis l Building software from reusable components.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
©Ian Sommerville 2000 Software Engineering. Chapter 18Slide 1 Chapters 18/19 Software Reuse / CBSE.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Chapter 14 Design with Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Reuse 1 Dr. Eman Alkhammash Taif University.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Chapter 15 – Software Reuse Chapter 15 Software reuse117/11/2014.
IT323 - Software Engineering 2 1 Tutorial 4.  List the main benefits of software reuse 2.
Legacy Systems and Software Reuse CS 560. Economics Software is expensive.  Most software development makes extensive use of existing software.  Developers.
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
Chapter 4. CONCEPT OF THE OPERATING SYSTEM MANAGING ESSENTIAL FILE OPERATIONS.
Washington, D.C., U.S.A May Some concepts of systems architectures Industrialization of statistics and software architecture Study cases.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Chapter 16 – Software Reuse
Pragmatics 4 Hours.
IS301 – Software Engineering V:
The Development Process of Web Applications
Quality Management chapter 27.
Chapter 17 - Component-based software engineering
Chapter 18 Maintaining Information Systems
Software Reuse ©Ian Sommerville 2006.
Project Topic 2: Migration to Java 9
Object Oriented Concepts -II
Chapter 16 – Software Reuse
Chapter 16 – Software Reuse
Component Based Software Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 2 – Software Processes
Component-Based Software Engineering
Requirements Engineering for Product Lines
Chapter 7 –Implementation Issues
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
CS310 Software Engineering Lecturer Dr.Doaa Sami
Lecture 06:Software Maintenance
Chapter 17 - Component-based software engineering
Chapter 16 – Software Reuse
Information Hidding Dr. Veton Kepuska.
Open API and Open Architecture Working Group (OA2-WG) *DRAFT*
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
Presentation transcript:

Software Reuse Objectives To explain the software reuse, its benefits and some reuse problems To describe different types of software reuse and how they can be incorporated into the software development at various levels

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 or by developing application families Component reuse Components of an application from sub-systems to single objects may be reused Function reuse Software components that implement a single well-defined function may be reused

Types of Software Reuse Ad-hoc reuse Intra-Project reuse Inter-Project reuse Enterprise-level reuse Horizontal Reuse Vertical Reuse

Component development for reuse Components for reuse may be specially constructed by generalising existing components Component reusability Should reflect stable domain abstractions Should hide state representation Should be as independent as possible The more general the interface, the greater the reusability

Reusable components The development cost of reusable components is higher than the cost of specific equivalents. This extra reusability enhancement cost should be an organization rather than a project cost Generic components may be larger and slower than their specific equivalents

Reusability standards Name generalisation Operation generalisation Exception generalisation Component certification

Reusable Component Design

Application families An application family or product line is a related set of applications that has a common, domain-specific architecture The common core of the application family is reused each time a new application is required Each specific application is specialised in some way Application family architectures must be structured in a way that separates different sub-systems and allows them to be modified

Application family specialisation Platform specialisation Different versions of the application are developed for different platforms Configuration specialisation Different versions of the application are created to handle different peripheral devices Functional specialisation Different versions of the application are created for different customers

Training and incentives for reuse Specialized training of the staff is very essential People should be convinced about the concept behind reuse and its benefits Providing incentives to the individuals who contribute to the reuse initiative Long term vs. short term benefits

Benefits of reuse Increased reliability Reduced process risk Components already tested Reduced process risk Less uncertainty in development costs Effective use of specialists Reuse of components instead of people Standards compliance Accelerated development

Reuse problems Lack of tool support Maintaining a component library Finding and adapting reusable components No planning for reuse Reuse confined to an individual or within one system Limited to code-level reuse No or negative reuse incentives Cost of reuse is too high Inability to recognize what has high potential for reuse No reuse activities defined as part of the software life cycle process