Requirements engineering standards and processes are inadequate in the simulation and training industry to support programs with multiple developers and training objectives. This paper explains how the Joint Simulation System (JSIMS) program corrected that inadequacy by defining and implementing a robust requirements engineering process that maintains a standard, program-wide traceability and test approach, flexible enough to allow multiple development agents, of which there are eight, to use different development processes and requirements management tools. A key to this organized and successful practice was to get common plans, definitions and agreements amongst the development partners.
This paper describes how the requirements engineering process evolved and provided many lessons learned as it grew and improved to support the challenges of a program with diverse requirements and development processes. The requirements engineering process began with a collaborative effort to analyze and consolidate 12 source documents of approximately 6,800 requirements, provided by the various individual development partners, and create a single, common, binding set of top-level, or "system", requirements. These system requirements became the bounding program scope that satisfied training objectives all partners agreed to develop and test against. The next step was to sequence the delivery of these requirements, or rather the capabilities that satisfied these requirements. The sequencing was divided into 5 separate, but common product delivery milestones. A sequencing challenge was that all the partners had dependencies on each other's products and/or deliveries that had to be supported and coordinated. Each development domain became responsible for their "portion" of the system requirements, and was challenged to derive the next level or two of requirements that specifically defined functions unique to their development efforts, yet still allowed for cross domain interactions. The requirements engineering team created a common trace and reporting format, using web technology, to allow users, developers and testers to see the mapping and satisfaction of all system requirements within and throughout all the development domains. It is applicable to any multi-developer, multi-user program.