Overview
During the system requirements and design phases, the software developer(s) helps produce clear, complete, consistent, and testable specifications for the systems technical requirements, and helps allocate them to various disciplines (e.g., optics, hardware). In this activity, the software developers 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 developers 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 organizations 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 personnels involvement in system activities. By doing this tailoring, the project software manager defines and documents the software developers 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 projects 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 softwares 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 developers 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 projects size and the experience of the system engineering group. Other requirements-related issues, such as the software developers role in analyzing user input for operational concepts, should be considered.
3) All decisions regarding the software developers 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 developers 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 developers 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 developers participation in system requirements and design. This is documented in the Systems Requirements Analysis and System Design sections of the SDP.