Database requirements for a software engineering environment: criteria and empirical evaluation

Abstract The paper identifies the criteria that a database in a software engineering environment for large-scale system development should satisfy, and it discusses how GemStone, an object-oriented database manager, meets them. The criteria are derived from the requirements of software engineering rather than database technology. The criteria include support for (1) consistent data in a concurrent environment; (2) data integrity; (3) basic and complex data types; (4) data access by the end users; (5) configuration management; (6) tool development; (7) documentation; and (8) traceability for consistency and completeness checking. The discussion of GemStone is based on experiences with using it for developing a software maintenance tool. GemStone supports consistency and some concurrency and integrity and provides direct access to the database suitable for use by the software tool developer rather than the software engineer. It also supports extensibility and reusability well, but the software tool developer is responsible to create objects and methods that support documentation, version control for configuration management, complex data types, and traceability.