9.1. Systems and Software Engineering#

The Systems Engineering Management Plan (SEMP) [John11] defines the overall system engineering processes to support the design and constructions of the GMT. This section provides an overview of how Software Engineering practices are used to complement the SEMP with the goal of addressing the specific issues of software development.

The GMT software development process is based on the Systems and software engineering described in the standard, Software Life Cycle Processes [ISO12207], with the goal to achieve tailored conformity for most of the processes. One purpose for adopting this standard is to establish processes that facilitate communication among participants during the software development life cycle. Some of the terminologies used here are consistent with those defined in the standard.

Some of the processes are implemented as part of the GMT SEMP while others are software specific. The Software and Controls Handbook [Filg13b] section on Software Engineering and Quality Assurance presents the ISO/IEC 12207 Conformity Matrix. The standard is tailored to specific characteristics of the GMT project, with the main driver being to provide only the necessary amount of formality to expedite communication among the partners, and to provide a foundation for assessing Quality Assurance.

The standard establishes the Life Cycle Process of a project, based upon the general principles of systems engineering. The general premise behind the standard is that no matter how small or simple the system is – even if the whole system consists of a single processor – software is an integral part of that system. Also, the standard distinguishes system requirements analysis from software requirements analysis: system architectural design allocates requirements to various items at the system level, and subsequent analysis flows down software requirements to allocate to each software item. After the flow down process, the software is designed, produced, and integrated into the system.

The Software and Controls Handbook captures some recommendations from the ECSS-E-ST-40C – Software Systems [ECSS09], ECSS-E-ST-60-10C – Control Systems [ECSS13] ESA standards, and the recently published (summer 2013) NASA Software Engineering Handbook [NASA13].