Software Reuse Introduction Page 1 Ronald J. Leach SOFTWARE REUSE: INTRODUCTION.

Slides:



Advertisements
Similar presentations
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Advertisements

1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Software Reuse SEII-Lecture 28
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
CLEANROOM SOFTWARE ENGINEERING
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition.
Software Reuse Building software from reusable components Objectives
1 Reusability and Portability Xiaojun Qi. 2 Reuse Concepts Reuse is the use of components of one product to facilitate the development of a different.
SWE Introduction to Software Engineering
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Managing Reuse Presented by: Aisha Al-Hammadi. Outline Introduction History. The technical and managerial advantages of Reusing Solutions. The main challenges.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Reusability and Portability Chapter 8 CSCI Reusability and Portability  The length of the development process is critical.  No matter how high.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Software Engineering Reuse.
Figures – Chapter 16. Figure 16.1 Benefits of software reuse BenefitExplanation Increased dependabilityReused software, which has been tried and tested.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
CSE 303 – Software Design and Architecture
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 26 Slide 1 Software cost estimation 1.
Introduction To Software Component Reuse
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CSC 395 – Software Engineering Lecture 12: Reusability –or– Programming was Bjarne Again.
Approaching a Problem Where do we start? How do we proceed?
1 SWE Introduction to Software Engineering Lecture 4.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Chapter 3: Software Project Management Metrics
ANKITHA CHOWDARY GARAPATI
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
(6) Estimating Computer’s efficiency Software Estimation The objective of Software Estimation is to provide the skills needed to accurately predict the.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Case Study of Agile Development Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
A Method for Improving Code Reuse System Prasanthi.S.
Certification of Reusable Software Artifacts
Project Cost Management
Chapter 16 – Software Reuse
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Software Processes (a)
Introduction to Software Engineering: Second Edition
Software Engineering PPT By :Dr. R. Mall.
(Additional materials)
Chapter 2 SW Process Models
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
CS310 Software Engineering Lecturer Dr.Doaa Sami
Rapid software development
Modern Systems Analysis and Design Third Edition
Presentation transcript:

Software Reuse Introduction Page 1 Ronald J. Leach SOFTWARE REUSE: INTRODUCTION

Software Reuse Introduction Page 2 Ronald J. Leach OUTLINE: Introduction Techniques Reuse Libraries Certification Cost Models

Software Reuse Introduction Page 3 Ronald J. Leach What is software reuse? The process of developing software using previously created software components that: have well-defined standard interfaces are carefully tested have a well-defined functionality have precisely defined performance.

Software Reuse Introduction Page 4 Ronald J. Leach Many types of software artifacts can be reused: Algorithms Architectures Complete applications Data Requirements

Software Reuse Introduction Page 5 Ronald J. Leach Designs Source code Test plans and test cases Documentation Integration plans

Software Reuse Introduction Page 6 Ronald J. Leach Software reuse has a long history, at least to the 1960s. Lanergan and Poynton at Raytheon Matsumoto at Toshiba McIlroy (NATO conference report)

Software Reuse Introduction Page 7 Ronald J. Leach Considerable recent activity: Over 100 hits by Yahoo server in November, 1995 on "software reuse." Increasing exponentially. Many conferences, workshops, papers, projects. Some reuse tools, reuse courses. Many other tools supporting reuse.

Software Reuse Introduction Page 8 Ronald J. Leach Software reuse has many potential advantages: Potential for reducing cost Faster system development Increased quality More! Better! Cheaper! Faster!

Software Reuse Introduction Page 9 Ronald J. Leach Software reuse has potential disadvantages: Systematic reuse plans cost money Measurement is expensive Potentially slower initial system development Decreased, or unknown quality Legal issues Security issues

Software Reuse Introduction Page 10 Ronald J. Leach Possible objections to software reuse: Destroys creativity Not-Invented-Here syndrome Hard to start systematic programs Hard to measure savings Hard to use COTS (Commercial- Off-The Shelf) software.

Software Reuse Introduction Page 11 Ronald J. Leach Hypothetical example: designing a system with a spell checker and a related dictionary. If you admire your word processor's utilities, you might ask the owner of the copyright for permission to use the subsystem. Not obvious that the copyright owner would be able to grant this permission. It might be difficult to determine the original cost of the spelling checker and dictionary, and thus determine a price for the use of this portion of the word processor.

Software Reuse Introduction Page 12 Ronald J. Leach Best-known successful software reuse: FORTRAN mathematics libraries. Well-understood, stable domain Good match of functionality to function names (sin to sine, cos to cosine,...) Easy to write portable software (standards) Little interaction between functions. Most functions are reused many times.

Software Reuse Introduction Page 13 Ronald J. Leach Unfortunately most reuse situations are more complicated than FORTRAN math libraries: Difficult to identify needed functionality Unstable domains,less well understood Less modular organization Evolving technology and standards Fewer instances of reuse of each artifact

Software Reuse Introduction Page 14 Ronald J. Leach Unsystematic, or ad hoc, reuse programs are not generally successful Often depend upon fortunate discussions of a few individuals with vast,unwritten, knowledge. Hard to repeat successes Hard to measure successes Up-front analysis costs are ignored Integration costs are not predicted accurately

Software Reuse Introduction Page 15 Ronald J. Leach Systematic software reuse includes most of: Domain Analysis Standard Interfaces Object-Oriented Approaches Metrics and Reuse Measurement Designing for Reuse Reuse-Driven Requirements Engineering

Software Reuse Introduction Page 16 Ronald J. Leach Systematic software reuse, continued: COTS integration Reuse library management Configuration management Certification Cost modeling Reengineering (if necessary)

Software Reuse Introduction Page 17 Ronald J. Leach Software reuse : some software artifact is used in more than one project or system. Software reengineering : a process by which an existing system is transformed to another system with (at least) the same functionality as the original.

Software Reuse Introduction Page 18 Ronald J. Leach Reuse issues specific to 511: Several outstanding existing efforts: TPOCC Renaissance Several alternative life cycle approaches (badgerworks, skunkworks, IMMACCS...) Some use of World-Wide-Web (Landsat7 Reqs) Rapidly-changing technology COTS products have many useful features Changing relationships (SLAs...)

Software Reuse Introduction Page 19 Ronald J. Leach Reuse issues specific to 511, continued: Competition (within GSFC/NASA) Quality measurements are simplistic Cost models do not apply for many new development strategies Little feedback about successes and failures to a project's managers Essentially no feedback to non-managers for process improvement

Software Reuse Introduction Page 20 Ronald J. Leach Reuse issues specific to 511, recommendations: Formulate standards for measurement Develop and disseminate quality standards Measure software processes better Measure software products better Be careful what you reuse Determine true life cycle costs of COTS-based systems

Software Reuse Introduction Page 21 Ronald J. Leach An example: System A is 100 KLOC and is incorporated (with no modifications) into system B which is a total of 200 KLOC including A. A 100 KLOC B 200 KLOC

Software Reuse Introduction Page 22 Ronald J. Leach What is the percentage of reuse? (100)/100 * 100% = 100 % ? (100)/200 * 100% = 50 % ? Something else ?

Software Reuse Introduction Page 23 Ronald J. Leach What is the percentage of reuse if 10% of system A is changed before system A is inserted into system B? (90)/100 * 100% = 90 % ? (90)/200 * 100% = 45 % ? Something else? Does it matter if reuse occurs early in the life cycle?

Software Reuse Introduction Page 24 Ronald J. Leach Example: A1 evolves to A2, B1 evolves to B2 System A1 100 KLOC used without change in System B1 200 KLOC System A2 150 KLOC used without change in System B2 300 KLOC A1 100KLOC B1 200 KLOC A2 150 KLOC B2 300 KLOC

Software Reuse Introduction Page 25 Ronald J. Leach What is the percentage of reuse? 100/100 * 100 % = 100 % 100/200 * 100 % = 50% 100/300 * 100 % = 33.3% 150/300 * 100 % = 50% A measurement should be precise and consistent with the organization's software data collection policies.

Software Reuse Introduction Page 26 Ronald J. Leach Cost Modeling Issues: Life cyle phase where reuse occurs Coding is a small portion of life cycle activities Reuse of requirements leads to greatest savings RGS does not always yield reusable components Percentage of system from reusable components Amount of change in each reused component Special issues with COTS products (standards, quality, integration costs,...) Quality of reused component Overhead of systematic reuse with measurement (selection, certification, repository maintenance) How to charge general reuse overhead to projects