Java Object Requirements
- Required
- First-tier (more easily determined)
- Coded in Java
- "Real" program
- Tractable size with respect to the likely most relevant analysis techniques:
Some analysis techniques have greater scalability than others. For example, model checking of concurrent programs may only be able to handle much smaller programs than runtime analyses, or analyses for sequential programs. Generally, objects should be manageable with respect to the state of the art in analysis techniques likely to be applied to them. This is a "moving target" that must be evaluated when looking for new objects.For existing objects, the historical guideline is 5-15 KLOC. Use LOCC to get an accurate line count excluding comments (be aware that
wcmay have been used for some older objects). - Has a "sufficient number" of classes: at least 10
- Free, distributable source
- 5 or more versions (If release versions aren't available, also look for cvs, rcs, other source control tags)
- Second-tier
- We can build the system from its source code
- Enables easy automation of test input and validation; is scriptable (outputs can be made deterministic)
- Runs on Solaris
- First-tier (more easily determined)
- Desirable
- If intended for component-based techniques:
- Can be separated into component and application
- Has at least three or more separate interactions between component and application
- Has specifications, especially UML
- Has test suites (JUnit tests are of particular interest)
- Comes with known faults
- If intended for component-based techniques: