What are the goals for development, and deployment of the OMS Component Repository?
in terms of component search/retrieval operations
in terms of cost of contributing a component
What is the individual effort to contribute a component to the repository?
to describe component with metadata annotations
to develop documentation
to develop examples
to develop test cases
How can technology help reduce these costs?
in terms of organizational costs
repository setup costs
repository maintenance costs
costs to develop and contribute components
costs to market repository
How do we know when the repository has collected a critical mass of components?
How do we know if the repository is successful?
Can the effort to build and deploy the repository in terms of costs listed above be justified?
OMS Component Repository
Domain specific repository
Repository Codebeamer Interface: Issue Tracker
Repository Netbeans plugin supports integration with IDE
Repository stores source code for components and also meta data which act as the component surrogates for search and retrieval purposes
Workflow efficiency with respect to building a model
How does the availability of a component repository of reusable modeling components help streamline the model building process? Is there a time savings? This could be viewed as a case study to evaluate effectiveness of component based model development.
Convincing modelers to implement models with a component based architecture as opposed to legacy methods
Refactoring existing monolithic models
Development of new models with an OMS, component based architecture
Components need to be mature enough to be included/placed into a reusable repository
Components must provide some standalone function (or a small set of coupled components must provide some standalone function)
Achieve critical mass of components in the repository
What is critical mass? Does this differ among modeling subdomains?
Could OMS include provisions to simplify creation of unit tests for components?
Related Literature Papers about software repositories, component based software development, software reuse, etc.