QA/QC Appendix A, PNNL-11880
Guidance for Designing, Developing, Testing, and Implementing
Environmental Software Systems
For each new or modified system or module, the project
team follows the general process described below. Each step in the process
has its own guidance to project staff.
Step 1—Requirements Analysis (Section 3.1)
The subject matter expert (SME) leads team members in determining what the
requirements are for the module or framework. The resulting requirements
package should list requirements in general categories, breaking each category
down into sufficient detail that the custodians and code developers will
clearly understand what is expected as an outcome for the software. This
breakdown can be documented in the form of an outline or work breakdown
structure. When the requirements package is completed, the subject
matter expert provides a copy to the project custodian and the module or
framework custodian.
Step 2-Step 4—System Design and Development (Section
3.2)
Step 2
The framework or module custodian (depending on whether a framework
or module is being developed) leads the code developers in determining
what kinds of software components and coding must be developed to meet
the requirements. Every requirement level and sub-level should be addressed.
The requirements can be addressed using a matrix that lists software components
or processes next to requirement or in a database that connects correlates
requirements with design elements. These design elements should be specified
sufficiently clearly to allow understanding by all members of the development
team.
Step 3
The subject matter expert(SME) and framework or module custodian (depending
on whether a framework or module is being developed) meet to confirm relationships
between and the "whats" and the "hows". At this time the subject matter expert
and custodian decide on a ranking of both the requirements and related
design elements to ensure the development process addresses the more critical
items before others. This information is added to the software development
package and the database that was used to match the requirements and design
elements previously.
Step 4
The framework or module custodian (depending on whether a framework
or module is being developed) reviews the design elements confirmed by
the subject matter expert (SME) in Step 3 to determine whether they are dependent,
have positive relationships, or are mutually exclusive and therefore, likely
cause difficulties in implementation. This information is also added to
the software development package and the database that was used to match
the requirements and elements previously. In addition, at this point, the
framework or module custodian should address the finer points of the design
for the software development package. The process of evaluating the current
set of design elements by asking the question "how will each of these elements
be address?" is often used to breakdown the design into workable sections
that can then be assigned to code developers.
Step 5—System Integration, Testing, and Evaluation
(Section 5.0)
The application expert leads the testers and technical reviewers in
answering the question: "How will we know the software works?" They focus
on both the design elements and the requirements, allowing both to be tested.
The test package may contain the following information:
Step 6—System Design and Development (Section 3.2)
The framework developers implement the design elements identified in
previous steps. When finished, they complete the software development package.
Step 7—System Integration, Testing, and Evaluation
(Section 5.0)
The application expert leads the testers and technical reviewers in
running the tests and determining whether the results are acceptable in
ensuring that the software will meet client requirements. The results of
the tests and any modifications made to the module or framework as a result
of the tests are included in the development package and software test
package then submitted to the project custodian.
Step 8—System Implementation (Section 6.0)
The subject matter expert is responsible for determining if the software
is ready to be delivered to the client. This involved confirming the completeness
of the requirements package, the development package, and the software
test package. Any technology transfer, implementation support, and training
are determined and implemented in this step.
Throughout the above Steps additional information or clarification
can send the process back to any previous step. From that entry point,
however, the steps must be completed in order. For example, an additional
client need identified in step 7 will send the team back to enhance the
existing information in Step 1. From there the team will progress to Step
2, 3 and so on. Although the process is defined the time spent in each
step is determined by the additional information and its affects on the
software system. This approach will allow for the flexibility of accepting
additional information with the traceability of a well defined process.