Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

22

Transcript of Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

Page 1: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]
Page 2: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

Second-Hand Shopping: Second-Hand Shopping: Efficient Component ReuseEfficient Component Reuse

TopCoder, Inc.Sean Campion, Project Manager

[scamp]

Page 3: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

AgendaAgenda

• High-Level CBSE Overview• Audience• Reuse Maturity Levels• Features• Searching• Metrics• Wrap Up

Page 4: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

High-Level CBSE High-Level CBSE OverviewOverview

• Component-Based Software Engineering.• Component Granularity.• Cost-Benefit:

(n * (CI + IT)) + RBE + MT < (n * (BE + MT))• n – number of times item/component is reused.• CI – Component Identification time.• IT – Component Integration time.• RBE – Reuse Build Effort time.• MT – Maintenance Time• BE – Build Effort

• Component Library

Source: Engineering + Reuse = Savings : How to Really Cut the Costs of Software Development, Messinger David, .Net Developers Journal, August 2005.

Page 5: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

AudienceAudience

- Internal Consumption

- External Consumption

- Management

- Developers

- Architects

Page 6: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

Reuse Maturity LevelsReuse Maturity Levels

• Level 0 – Ad-Hoc Reuse– Individuals find assets on their own,

sharing with colleagues as they choose. File system or minimal web-site, email.

Source: Reuse Comes in Several Flavors, Achieving a Better Return on Software Series, 2; Griss, Martin.

Page 7: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

Reuse Maturity LevelsReuse Maturity Levels

• Level 1 – Facilitated Reuse– Organization encourages and supports

reuse with limited resources, infrastructure, and policies to make reuse easier.

– Self-use repository or web-site, submitters may add some metadata to improve search and evaluation.

Source: Reuse Comes in Several Flavors, Achieving a Better Return on Software Series, 2; Griss, Martin.

Page 8: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

Reuse Maturity LevelsReuse Maturity Levels

• Level 2 – Managed Reuse– Organization enforces reuse practice

through policies, resources, tools, and people.

– Registrar-monitored repository, extensive metadata, multi-project source control, asset quality assurance, change notification, utilization measurements.

Source: Reuse Comes in Several Flavors, Achieving a Better Return on Software Series, 2; Griss, Martin.

Page 9: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

Reuse Maturity LevelsReuse Maturity Levels

• Level 3 – Designed Reuse– Organization invests in carefully designed

assets for reuse, choosing assets for domain or product line. Assets are architected or reengineered to fit together.

– Requirements and portfolio management tools; frameworks, standards, generators; change management tools.

Source: Reuse Comes in Several Flavors, Achieving a Better Return on Software Series, 2; Griss, Martin.

Page 10: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

FeaturesFeatures

• Produce– Publish components and specifications.– Notify consumers of new components or

problems.– Use component specifications as starting

point for design.– Publish undocumented or informally

designed components.

Source: Configuration Management and Component LibrariesHedley Apperly, in Component-Based Software Engineering: Putting the Pieces Together, George T. Heineman, William T. Councill, Addison-Wesley, 2001.

Page 11: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

FeaturesFeatures

• Manage– Manage library repositories.– Manage library users.– Manage catalogues.– Assure quality components.– Manage components.– Make components available.– Manage the versioning of components.

Source: Configuration Management and Component LibrariesHedley Apperly, in Component-Based Software Engineering: Putting the Pieces Together, George T. Heineman, William T. Councill, Addison-Wesley, 2001.

Page 12: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

FeaturesFeatures

• Consume– Search for necessary components.– Fulfill identified gaps.– Use or reuse component specifications.– Use or reuse components.– Deploy components.– Register interest in components.

Source: Configuration Management and Component LibrariesHedley Apperly, in Component-Based Software Engineering: Putting the Pieces Together, George T. Heineman, William T. Councill, Addison-Wesley, 2001.

Page 13: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

FeaturesFeatures

• Consume (continued)– Receive new component notification.– Review new components.

Source: Configuration Management and Component LibrariesHedley Apperly, in Component-Based Software Engineering: Putting the Pieces Together, George T. Heineman, William T. Councill, Addison-Wesley, 2001.

Page 14: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

SearchingSearching

The perceived Level of Effort of searching, understanding, and using a component must be less than the perceived effort of developing the component again for reuse to be practical and effective.

Page 15: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

SearchingSearching

User Search Space Definition:• L1 – User Known L4 – User Unknown• L2 – User Familiar with K – Actual Space• L3 – User belief R – Search Results

L1 L2

L3L4

R

K

Source: Supporting Reuse by Delivering Task-Relevant and Personalized Information, Ye, Fischer, Department of Computer Science, University of Colorado – Boulder; 2002.

Page 16: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

SearchingSearching

• Measurement:– Precision: Number of components returned

that belong to the set of items that ideally should have been returned.

• Precision (R) = |R ∩ Q| / |Q|

– Recall: The total number of components returned, regardless of whether they belong to the ideal set or not.

• Recall (R) = |R ∩ Q| / |R|

Source: Toward Automated Retrieval for a Software Component Repository, Luqi, Jiang Guo, Dept. of Computer Science, Naval Postgraduate School.

Page 17: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

SearchingSearching

Two basic approaches:

- Use the information within the component (source code, documentation, diagrams) for searching.

- Use external, metadata information about the component for searching.

Page 18: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

SearchingSearching

• Internal Methods– Signature Matching– Keyword– Specification Matching

Source: Toward Automated Retrieval for a Software Component Repository, Luqi, Jiang Guo, Dept. of Computer Science, Naval Postgraduate School.

Page 19: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

SearchingSearching

• External– Categorization– Facets– Meta Data– User Feedback– Combination

Source: Finding a Needle in a haystack: a technique for ranking matches between components, Tansalarak, Claypool, Department of Computer Science, University of Massachusets – Lowell.

Page 20: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

MetricsMetrics

• Tracking Methods– Lines of Code– Level of Effort

• Downloads vs. actual usage

• Project Tracking• (n * (CI + IT)) + RBE + MT < (n * (BE + MT))

Source: Engineering + Reuse = Savings : How to Really Cut the Costs of Software Development, Messinger David, .Net Developers Journal, August 2005.

Page 21: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

Wrap-UpWrap-Up

• Software reuse is only effective if the architects and developers are able to efficiently find and use components. Specifically, the perceived LE to search for components must be less than the perceived LE to create that component.

• The correct software repository for your organization is needed to ensure efficient software reuse.

Page 22: Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]

SourcesSources

1. Reuse Comes in Several Flavors, Achieving a Better Return on Software Series, 2, Martin Griss.

2. Configuration Management and Component Libraries, Hedley Apperly, in Component-Based Software Engineering: Putting the Pieces Together, George T. Heineman, William T. Councill, Addison-Wesley, 2001.

3. Toward Automated Retrieval for a Software Component Repository, Luqi, Jiang Guo, Dept. of Computer Science, Naval Postgraduate School.

4. Finding a Needle in a haystack: a technique for ranking matches between components, Tansalarak, Claypool, Department of Computer Science, University of Massachusets – Lowell.

5. Supporting the Construction and Evolution of Component Repositories, Scott Henninger, Department of Computer Science & Engineering, University of Nebraska. 1996.

6. Supporting Reuse by Delivering Task-Relevant and Personalized Information, Ye, Fischer, Department of Computer Science, University of Colorado – Boulder; 2002.

7. The Return on Investment on Commercial Off-The-Shelf (COTS) Software Components, Brooke Chris, ComponentSource, 2002.

8. Engineering + Reuse = Savings : How to Really Cut the Costs of Software Development, Messinger David, .Net Developers Journal, August 2005.