This story presents goals and features of a website designed to publish
reusable source code.
Purpose:
The purpose of this site is to:
Provide access to, and documentation for, a collection of reusable components, tools,
and subsystems.
Experiment with ways to support reusability by virtue of site publication features.
Definitions - Software Salvage and Reuse
A software component is the fundamental unit of reuse. It has:
single purpose
few dependencies
valuable function
Salvage:
Implies using an existing component with some modifications.
That creates another component that must be configured and managed.
Reuse
Means to use an existing component with no
modification. We do that by composing, supplying with a template argument, or using as a base
for derived classes.
Site Features:
This site:
Contains a large collection of code Repositories
Each repository has a documentation page
Serves as a test-bed for ideas about:
Site navigation
Organization and presentation of content
Linking to expositorial and tutorial materials
Providing effective help
Introduces the notion of story, of which this is an example
Application Domains:
Possible application domain targets for software publishing as described here:
Academic Research
Industrial Tool Development
Commercial Product Development
Aerospace Programs
Open Source Development
For reasons outlined in an Appendix, the first three appear to be good candidates.
Aerospace Programs are usually big and have their own development process models,
so it isn't clear how well our model fits.
Open source development projects usually have well developed publication models with
rather different goals than those expressed here.