Top Banner
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
30

L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

Dec 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

2003 SJSU – CmpE --- M.E. Fayad L1-S2 Software Reuse

2

Lesson 01:Introduction toSoftware Reuse

Page 3: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

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: L1-S1 Software Reuse 2003 SJSU -- CmpE Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.

2003 SJSU – CmpE --- M.E. Fayad L1-S30 Software Reuse

T/F

30

Discussion Questions