Title: TopCoder Software
1(No Transcript)
2Second-Hand Shopping Efficient Component Reuse
- TopCoder, Inc.
- Sean Campion, Project Manager
- scamp
3Agenda
- High-Level CBSE Overview
- Audience
- Reuse Maturity Levels
- Features
- Searching
- Metrics
- Wrap Up
4High-Level CBSE Overview
- Component-Based Software Engineering.
- Component Granularity.
- Cost-Benefit
- (n (CI IT)) RBE MT lt (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.
5Audience
- Internal Consumption
- External Consumption
- Management
- Developers
- Architects
6Reuse 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.
7Reuse 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.
8Reuse 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.
9Reuse 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.
10Features
- 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.
11Features
- 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.
12Features
- 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.
13Features
- 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.
14Searching
- 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.
15Searching
- User Search Space Definition
- L1 User Known L4 User Unknown
- L2 User Familiar with K Actual Space
- L3 User belief R Search Results
Source Supporting Reuse by Delivering
Task-Relevant and Personalized Information, Ye,
Fischer, Department of Computer Science,
University of Colorado Boulder 2002.
16Searching
- Measurement
- Precision Number of components returned that
belong to the set of items that ideally should
have been returned. - Precision (R) R n Q / Q
- Recall The total number of components returned,
regardless of whether they belong to the ideal
set or not. - Recall (R) R n Q / R
Source Toward Automated Retrieval for a Software
Component Repository, Luqi, Jiang Guo, Dept. of
Computer Science, Naval Postgraduate School.
17Searching
- Two basic approaches
- Use the information within the component (source
code, documentation, diagrams) for searching. - Use external, metadata information about the
component for searching.
18Searching
- 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.
19Searching
- 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.
20Metrics
- Tracking Methods
- Lines of Code
- Level of Effort
- Downloads vs. actual usage
- Project Tracking
- (n (CI IT)) RBE MT lt (n (BE
MT))
Source Engineering Reuse Savings How to
Really Cut the Costs of Software Development,
Messinger David, .Net Developers Journal, August
2005.
21Wrap-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.
22Sources
- Reuse Comes in Several Flavors, Achieving a
Better Return on Software Series, 2, Martin
Griss. - 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. - Toward Automated Retrieval for a Software
Component Repository, Luqi, Jiang Guo, Dept. of
Computer Science, Naval Postgraduate School. - Finding a Needle in a haystack a technique for
ranking matches between components, Tansalarak,
Claypool, Department of Computer Science,
University of Massachusets Lowell. - Supporting the Construction and Evolution of
Component Repositories, Scott Henninger,
Department of Computer Science Engineering,
University of Nebraska. 1996. - Supporting Reuse by Delivering Task-Relevant and
Personalized Information, Ye, Fischer, Department
of Computer Science, University of Colorado
Boulder 2002. - The Return on Investment on Commercial
Off-The-Shelf (COTS) Software Components, Brooke
Chris, ComponentSource, 2002. - Engineering Reuse Savings How to Really Cut
the Costs of Software Development, Messinger
David, .Net Developers Journal, August 2005.