Page 1
2003 SJSU -- CmpE L1-S1 Software Reuse
Component-Based & Software Reuse
Dr. M.E. Fayad, Professor
Computer Engineering Department, Room #283I
College of Engineering
San José State University
One Washington Square
San José, CA 95192-0180
http://www.engr.sjsu.edu/~fayad
Page 2
2003 SJSU – CmpE --- M.E. Fayad L1-S2 Software Reuse
2
Lesson 01:Introduction toSoftware Reuse
Page 3
2003 SJSU – CmpE --- M.E. Fayad L1-S3 Software Reuse
Lesson Objectives
Objectives
3
Why Reuse? An essential attribute of advanced state of the art/ state of the practice. What is Reuse? Examples of Reuse. Counter Examples of Reuse. Tentative Definition. State of the Art/ State of the Practice: Is Reuse the Norm, in Software? Elsewhere?
Page 4
2003 SJSU – CmpE --- M.E. Fayad L1-S4 Software Reuse
Complexity of Components. Diversity of Specifications.
Flexibility of Source Code. Absence of Architecture. Lack of Standards for Interaction. Distribution of Design/ Implementation Costs. Not an obstacle: availability of components.
4
Reuse: What About Software?
Page 5
2003 SJSU – CmpE --- M.E. Fayad L1-S5 Software Reuse
Limited Scope, Limited Domain, Realistic Expectations.
Systematic, Controlled process. Commitment of all parties involved.
Long Term Development Plans, supported by Market demand.
Uniform Product Architecture supports production, consumption of reusable assets. 5
Successful Forms of Reuse
Page 6
2003 SJSU – CmpE --- M.E. Fayad L1-S6 Software Reuse
Product Line Engineering. Emphasis on Domain engineering, domain analysis, separation DE versus AE.
Component Based Software Engineering. Bottom Up discipline of SW development from reusable components.
COTS Based software development. Commercial Off The Shelf components. Amortized over wide usage. Issues of copyright, maintenance, etc. 6
Specialized Forms of Software Reuse
Page 7
2003 SJSU – CmpE --- M.E. Fayad L1-S7 Software Reuse
7
Concepts and TermsReuse is neither a silver bullet nor a magic weight loss pill.
It is a diet and exercise program….
P.G. Bassett, 1997
Software reuse is the process whereby an organization defines a set of systematic operating procedures to specify, produce, classify, retrieve and adapt software artifacts for the purpose of using them in its development activities.
Page 8
2003 SJSU – CmpE --- M.E. Fayad L1-S8 Software Reuse
8
Main Characteristics of Software Reuse Process must be systematic. Some measure of independence between
production, consumption of reusable assets. Cognizance of source code level. Can be supported by programming languages,
but is usually higher. Extends, and is distinct from, good
programming practice.
Page 9
2003 SJSU – CmpE --- M.E. Fayad L1-S9 Software Reuse
9
Benefits of Software Reuse
•Gains in Productivity. Not to reinvent the wheel.
•Gains in Quality. Wide scale use warrants more V&V effort, gives a posteriori testbed.
•Gains in Time to Market. Selling more products + staking a bigger market share.
Page 10
2003 SJSU – CmpE --- M.E. Fayad L1-S10 Software Reuse
10
Pitfalls of Software Reuse
• Limited Reuse Potential. Likelihood of exact matches very small; gains from approximate matches very small.
• Non-negligible Overheads. Eat away benefit margin, and more.
• Non-negligible Risks. Reuse as a distraction.
• Non-negligible Organizational Upheavals. Resistance to change, cost of change.
Page 11
2003 SJSU – CmpE --- M.E. Fayad L1-S11 Software Reuse
Software Reuse Products
Each product can be characterized by: its essence, its representation, its indexing.
• Executable Code.
• Source Code.
• Requirements Specifications.
• Designs.
• Test Data.
• Documentation.11
Page 12
2003 SJSU – CmpE --- M.E. Fayad L1-S12 Software Reuse
12
Asset Libraries
Make up of general application system. Generic Components. Extensions to the
programming language. ADT’s. Domain Specific Components. Specific to
the application domain. Banking routines. Application Specific code. Specific to the
application. Glue code, special needs.
Distribution in a typical application: 20, 65, 15.
Page 13
2003 SJSU – CmpE --- M.E. Fayad L1-S13 Software Reuse
13
Two kinds of Asset Libraries
Horizontal Library. Generic components. Widely applicable, but yield small gains.
Vertical Library. Specific components. Narrowly applicable, but yield large gains.
Page 14
2003 SJSU – CmpE --- M.E. Fayad L1-S14 Software Reuse
14
Software Reuse Processes
Domain Engineering Domain Analysis. Domain Engineering. Asset Acquisition. Asset Classification. Asset Maintenance. Pattern Languages & Knowledge Maps
Page 15
2003 SJSU – CmpE --- M.E. Fayad L1-S15 Software Reuse
15
Software Reuse Processes, IIApplication Engineering
•Development with Reuse.
•Specifying Reusable Assets.
•Asset Retrieval.
•Reengineering for Reuse.
•Integration.
•Validation.
Page 16
2003 SJSU – CmpE --- M.E. Fayad L1-S16 Software Reuse
16
Software Reuse Paradigms
• Software Retrieval: Browsing versus Retrieval. Exact versus Approximate.
• Software Adaptation: Black Box versus White Box (what is the difference?). White Box: loss of productivity, quality. Is it still reuse?
• Software Composition: Generative versus Compositional.
Page 17
2003 SJSU – CmpE --- M.E. Fayad L1-S17 Software Reuse
State of the Practice Study conducted by NTT. 100 NTT engineers and 500 staff
members from contracting companies. One million lines of code. C, SYSL, Ada, Cobol. Production centered organization.
17
Software Reuse Management
Page 18
2003 SJSU – CmpE --- M.E. Fayad L1-S18 Software Reuse
Seven Development Groups, a Reuse Group. Reuse Group: Reuse Group, Reusability
Committee. Reuse Support Group: produces, catalogs,
reusable assets; maintains assets library. Reusability Committee: one member from each
development group; defines validation standards, reuse targets, reuse guidelines, procedures, reward structures. 18
NTT Study
Page 19
2003 SJSU – CmpE --- M.E. Fayad L1-S19 Software Reuse
After Four Years Reuse level: 16%. Deposition ratio: 600 LOC. Average reuse frequency: 0.28. Library size: 800 assets. (80/20 rule). Active module ratio: 0.2. Average size: between 300 and 2000
loc. 19
Results of NTT Study
Page 20
2003 SJSU – CmpE --- M.E. Fayad L1-S20 Software Reuse
Relatively small domain Well understood. Pertain to static technology. Extensive development plans.
Paradox of reuse management: high gains require high investments in time and money; high investments require short term gains.
20
Criteria for good domain engineering
Page 21
2003 SJSU – CmpE --- M.E. Fayad L1-S21 Software Reuse
Maximize reuse ratio: narrow domain. Amortize investment costs: large
volume of SW development. Provide for reuse introduction: long term
planning. Maintain active module ratio:
moderation in producer incentives; rigor in inclusion criteria. 21
Lessons
Page 22
2003 SJSU – CmpE --- M.E. Fayad L1-S22 Software Reuse
State of the Art (Domain Engineering): Specification: Defining the product and the
specification concurrently. The stakes of a reusable asset are bigger. Requirements for generality.
Validation. Design. Genericity. Implementation. Certification. Classification. 22
Software Reuse Techniques
Page 23
2003 SJSU – CmpE --- M.E. Fayad L1-S23 Software Reuse
State of the ART (Application Engineering) Retrieval: Retrieving vs Browsing;
Function vs Structure; Exact vs Approximate.
Composition: Software architecture; software generators; programming languages.
23
Software Reuse Techniques
Page 24
2003 SJSU – CmpE --- M.E. Fayad L1-S24 Software Reuse
CARDS (Comprehensive Approach to Reusable Defense Software).
USAF and NASA. Reuse libraries that support multiple
domains. Operational libraries such as CCL,
PRISM. Horizontal library for end user support. Gave rise to NPLACE. 24
Software Reuse Initiatives
Page 25
2003 SJSU – CmpE --- M.E. Fayad L1-S25 Software Reuse
Central site at DISA (Defense Information Systems Agency).
Remote sites at Army Reuse Center, National Security Agency.
As of November 1993: Seven locations, catering to 1000 users and listed 9000 assets.
Main site: 3880 assets and 400 users. 25
Defense Software Repository System
Page 26
2003 SJSU – CmpE --- M.E. Fayad L1-S26 Software Reuse
Initiated by DARPA, research branch of DoD.
Turned over to SAIC in 1995; run as a commercial venture, using the web.
More than 1000 assets available through the web.
26
Asset Source for Software Engineering Technology
Page 27
2003 SJSU – CmpE --- M.E. Fayad L1-S27 Software Reuse
Identify domains that lend themselves to greatest benefits of systematic reuse.
Identify domain assets and domain specific architectures.
Criteria for deciding ownership of reusable assets.
Integrate reuse into overall system lifecycle. Develop business models that promote reuse. Technology transition plan to reuse based
paradigm. 27
DoD Software Reuse Initiative
Page 28
2003 SJSU – CmpE --- M.E. Fayad L1-S28 Software Reuse
Program Operated by NASA from 1995 to 2000.
NASA’s focused effort to apply software reuse to selected NASA centers.
SORT Domain Engineering: analysis and selection of candidate domains.
SORT Technology Transfer: Introduce a product line strategy within the agency. 28
Software Optimization and Reuse Technology
Page 29
2003 SJSU – CmpE --- M.E. Fayad L1-S29 Software Reuse
Initiated by DARPA (1988-1995). Apply reuse based product line
approach to DoD systems. Develop quantitative and qualitative
metrics for the products. Experience reports documenting the
lessons learned from this practice. Motivate subcontracting organizations to
adopt similar development approaches. 29
Software Technology for Adaptable Reliable Systems
Page 30
2003 SJSU – CmpE --- M.E. Fayad L1-S30 Software Reuse
T/F
30
Discussion Questions