Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]"— Presentation transcript:

1

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

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

4 High-Level CBSE Overview 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.

5 Audience -Internal Consumption -External Consumption -Management -Developers -Architects

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

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

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

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

10 Features 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 Libraries Hedley Apperly, in Component-Based Software Engineering: Putting the Pieces Together, George T. Heineman, William T. Councill, Addison-Wesley, 2001.

11 Features 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 Libraries Hedley Apperly, in Component-Based Software Engineering: Putting the Pieces Together, George T. Heineman, William T. Councill, Addison-Wesley, 2001.

12 Features 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 Libraries Hedley Apperly, in Component-Based Software Engineering: Putting the Pieces Together, George T. Heineman, William T. Councill, Addison-Wesley, 2001.

13 Features Consume (continued) –Receive new component notification. –Review new components. Source: 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.

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

15 Searching User Search Space Definition: L1 – User KnownL4 – User Unknown L2 – User Familiar withK – Actual Space L3 – User beliefR – Search Results Source: Supporting Reuse by Delivering Task-Relevant and Personalized Information, Ye, Fischer, Department of Computer Science, University of Colorado – Boulder; 2002.

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

17 Searching Two basic approaches: -Use the information within the component (source code, documentation, diagrams) for searching. -Use external, metadata information about the component for searching.

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

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

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

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

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


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

Similar presentations


Ads by Google