SOFTWARE REUSE INTRODUCTION Software Reuse Introduction Page 1

  • Slides: 26
Download presentation
SOFTWARE REUSE: INTRODUCTION Software Reuse Introduction Page 1 Ronald J. Leach

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

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

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

What is software reuse? The process of developing software using previously created software components

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 3 Ronald J. Leach

Many types of software artifacts can be reused: • Algorithms • Architectures • Complete

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

 • Designs • Source code • Test plans and test cases • Documentation

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

Software reuse has a long history, at least to the 1960 s. • Lanergan

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

Considerable recent activity: Over 100 hits by Yahoo server in November, 1995 on "software

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 7 Ronald J. Leach

Software reuse has many potential advantages: • Potential for reducing cost • Faster system

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

Software reuse has potential disadvantages: • Systematic reuse plans cost money • Measurement is

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 9 Ronald J. Leach

Possible objections to software reuse: • Destroys creativity • Not-Invented-Here syndrome • Hard to

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 10 Ronald J. Leach

Hypothetical example: designing a system with a spell checker and a related dictionary. If

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 11 Ronald J. Leach

Best-known successful software reuse: FORTRAN mathematics libraries. Well-understood, stable domain Good match of functionality

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 12 Ronald J. Leach

Unfortunately most reuse situations are more complicated than FORTRAN math libraries: • Difficult to

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 13 Ronald J. Leach

Unsystematic, or ad hoc, reuse programs are not generally successful • Often depend upon

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 14 Ronald J. Leach

Systematic software reuse includes most of: • Domain Analysis • Standard Interfaces • Object-Oriented

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 15 Ronald J. Leach

Systematic software reuse, continued: • COTS integration • Reuse library management • Configuration management

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

Software reuse: some software artifact is used in more than one project or system.

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 17 Ronald J. Leach

Reuse issues specific to 511: • Several outstanding existing efforts: TPOCC Renaissance • Several

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 (Landsat 7 Reqs) • Rapidly-changing technology • COTS products have many useful features • Changing relationships (SLAs. . . ) Software Reuse Introduction Page 18 Ronald J. Leach

Reuse issues specific to 511, continued: • Competition (within GSFC/NASA) • Quality measurements are

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 19 Ronald J. Leach

Reuse issues specific to 511, recommendations: • • • Formulate standards for measurement Develop

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 20 Ronald J. Leach

An example: System A is 100 KLOC and is incorporated (with no modifications) into

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. B 200 KLOC A 100 KLOC Software Reuse Introduction Page 21 Ronald J. Leach

What is the percentage of reuse? (100)/100 * 100% = 100 % ? (100)/200

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

What is the percentage of reuse if 10% of system A is changed before

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 23 Ronald J. Leach

Example: A 1 evolves to A 2, B 1 evolves to B 2 System

Example: A 1 evolves to A 2, B 1 evolves to B 2 System A 1 100 KLOC used without change in System B 1 200 KLOC System A 2 150 KLOC used without change in System B 2 300 KLOC A 1 100 KLOC A 2 150 KLOC B 1 200 KLOC B 2 300 KLOC Software Reuse Introduction Page 24 Ronald J. Leach

What is the percentage of reuse? 100/100 * 100 % = 100 % 100/200

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 25 Ronald J. Leach

Cost Modeling Issues: • • Life cyle phase where reuse occurs Coding is a

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 Software Reuse Introduction Page 26 Ronald J. Leach