1.1.1.3.1 Define Participation In System Requirements And Design

Overview

During the system requirements and design phases, the software developer(s) helps produce clear, complete, consistent, and testable specifications for the system’s technical requirements, and helps allocate them to various disciplines (e.g., optics, hardware). In this activity, the software developer’s role in system requirements and design is identified and documented in the Software Development Plan (SDP) (see Appendix E).

Roles and Responsibilities

The project software manager, together with the software engineering manager, completes the System Requirements Analysis and System Design sections of the SDP. Through this task, the project software manager defines and documents the software developer’s role in system requirements and design.

Controls

See parent activity 1.1.1.3 Define Software Development Process.

Inputs

See parent activity 1.1.1.3 Define Software Development Process.

Procedures

The approach to identifying and designing system requirements, like the requirements, themselves, is expected to vary (i.e., be tailored from the organization’s standard software process) to meet the specific needs of each project for which software is a major component. While the project manager controls the system requirements and design, the project software manager and software engineering staff play key supporting roles.

When documenting this in the SDP, the project software manager covers suggested analysis strategies. The project software manager also determines software development support in terms of labor hours, updating cost estimates, and securing project management support and funding for software personnel’s involvement in system activities. By doing this tailoring, the project software manager defines and documents the software developer’s role. It is very important to involve software personnel early in the project because all software-related factors will be considered from the start, thus, creating better project and software designs.

The system engineering group, which includes managers and technical staff, some of whom are software developers, iteratively develops the system requirements and design (see activity 3.1 Participate In Systems Requirements And Design). Subactivity 3.1.1 Define System Requirements may be iteratively performed with subactivity 3.1.2 Define System Design. The project software manager should understand both of these subactivities before completing this activity, which focuses on documenting in the SDP how the activities of the Software Development Volume will be tailored to meet the project’s requirements.

The software developer, together with the system engineering group, helps determine what system requirements should be allocated to software and the feasibility of these requirements. The software developer informs the other group members of the software’s limitations and constraints. It may be necessary for the software developer to perform prototyping in areas that seem to be high risk. During this effort, the software developer also gains an understanding of the system, its goals, and usage. The software developer has the same responsibilities when helping to determine system design.

The project software manager, together with the software engineering manager, performs the following steps to complete SDP sections that document the approach to participating in system requirements analysis and design that is tailored to each project:

1) The software project scope and software project organization and resources are reviewed to generally understand the software project.

2) The software developer’s approach to participating in systems requirements analysis is defined by tailoring activity 3.1.1 Define System Requirements. In general, the software developer will participate in discussions focusing on defining the requirements. The project software manager or project manager may optionally choose a formal methodology for the software developers to follow in defining the systems requirements. The methods will vary, based on the project’s size and the experience of the system engineering group. Other requirements-related issues, such as the software developer’s role in analyzing user input for operational concepts, should be considered.

3) All decisions regarding the software developer’s approach to systems requirements definition are documented in the System Requirements Analysis section of the SDP.

4) Step 2 is repeated when defining the software developer’s role in system design by tailoring activity 3.1.2 Define System Design. As in requirements analysis, the software developer helps determine and select a system design (after considering one or more possibilities). Other design-related issues, such as the software developer’s role in system-wide design decisions, should be considered. All design-related decisions, which impact the software development effort, are documented in the System Design section of the SDP.

Outputs

The defined approach for the software developer’s participation in system requirements and design. This is documented in the Systems Requirements Analysis and System Design sections of the SDP.