Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Software Reuse Introduction Page 1 Ronald J. Leach SOFTWARE REUSE: INTRODUCTION."— Presentation transcript:

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

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

3 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.

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

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

6 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)

7 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.

8 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!

9 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

10 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.

11 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.

12 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.

13 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

14 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

15 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

16 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)

17 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.

18 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...)

19 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

20 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

21 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

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

23 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?

24 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

25 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.

26 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


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

Similar presentations


Ads by Google