An Approach to Ensuring Quality in Environmental SoftwareTable of Contents for PNNL-11880:
The environmental software systems developed under this approach are often used to determine impacts to the public, workers, and the environment from environmental contamination. The resulting information from systems is used in the context of important environmental decision making. It is vital, therefore, that the modeling results and the systems that provide them be scientifically defensible and capable of withstanding the most rigorous of technical reviews. In other words, the control and assurance of quality is a critical factor for environmental software systems project team (project team) in the development of environmental software systems. This document describes the philosophy, process and activities that ensure a quality product throughout the life cycle of the development, modification, testing, and implementation of environmental software systems to analyze risk in multiple environmental media. Quality is defined as the ability of a system to meet the client's needs. Meeting client needs starts with a shared understanding of how the software must perform. It continues throughout the software life cycle through attention to details. The environmental software systems developed by the project team are designed using an object-oriented approach. These systems offer increased benefits over those of the traditional "hard wired" systems, such as the ease of maintenance and the retention of development and testing legacy of individual components, which makes the design and testing of models and future additions faster and less costly. These systems are developed using a modular framework concept thtat allows users the flexibility to construct, combine, and couple attributes to meet their specific needs. This framework concept allows a variety of models to work within a single construct. There are two parts to these software systems: an overall system framework and a set of modules. Each module has three components: a user interface, a scientific model, and pre/post-processors. Each of these pieces has a different set of quality criteria associated with it. However, whatever form these software systems might take for a particular client, standard processes apply to protect information from inappropriate use. These processes include application security, installation security, and protection of confidentiality, integrity, and availability of information. The performance metrics for these software systems are grouped into eight categories: compatibility, completeness, consistency, correctness, ability to be modified, robustness, understandability, and testability. Many of the metrics in these categories are generally met in our standard approach of object-oriented design. Figure S.1 outlines the environmental software system development process with quality check points highlighted. Although many existing models have been developed for U.S. Department of Energy, those systems may also be applicable to other agencies or organizations. Because many of our systems are designed for U.S. Environmental Protection Agency, or to be compatible with their systems, our quality process was designed to be compatible with their EPA Directive 2182, System Design and Development Guidance (EPA 1997). Activities roughly equivalent to their Essential Elements of Information are shown in Table S.1. The information contained within this document can be applied to most environmental software systems developed by the project team to analyze risk in multiple environmental media, although in some cases, client needs will require an even greater level of assurance. For specific projects, clients should refer to the proposal, statement of work, and/or the project management plan for additional information on detailed quality requirements and activities being planned. Figure S.1 Ensuring Quality in Environmental Software System Development Process Table S.1 Relationship of Laboratory Environmental Software Development Process to U.S. Environmental Protection Agency's Essential Elements of Information (EPA 1997)
* Elements 1 through 3 are generally completed by clients in U.S. Environmental Protection Agency before contract initiation with Pacific Northwest National Laboratory.
A variety of environmental management regulations today require use of computer models of varying sophistication for estimating impacts of activities on humans and environment. One example is environmental remediation and restoration activities under Comprehensive Environmental Response, Compensation, and Liability Act (CERCLA) or Superfund. Another is development, implementation, and enforcement of regulations concerned with protecting human and ecological health from chemical and nonchemical human-induced contamination. These types of regulations have led to a rapidly growing need for risk analysis software systems that take a holistic approach to evaluating human health and ecological risks and hazards. Such systems assess impacts from a more comprehensive environmental systems perspective, cross-cutting various scientific disciplines. They also consider an increased number of interactions between constituents, environmental media, and receptors (Whelan et al. 1997). Pacific Northwest National Laboratory (Laboratory), operated by Battelle for U.S. Department of Energy, has been in forefront of developing such systems for clients span federal agencies, industry, and academia. project team´s software systems are often used to determine impacts to public, workers, and environment from environmental contamination. resulting information from system is used in context of important environmental decision making, affecting not only regulatory agencies and potentially responsible parties, but decision stakeholders as well. It is vital, therefore, that the modeling results, and the systems that provide them be scientifically defensible and capable of withstanding most rigorous of technical reviews. In other words, the control and assurance of quality is a critical factor of the project team in development of software systems to analyze risk in multiple environmental media. This document describes the philosophy, process, and activities that ensure a quality product in the development, modification, testing, and implementation of software to analyze risk in multiple environmental media. In most cases, the process described has been used for a number of years on dozens of projects, with similar positive results. The purpose of documenting the process at this time is to:
A cornerstone of process is adherence to Laboratory standards. The Laboratory quality assurance standard states, "All staff shall document calculations, analyses, tests, and software required to substantiate results and processes used to develop products/solutions. Program managers shall manage assigned projects to a plan appropriately documents deliverables, budget, schedule, management methods, organization and control systems" (Laboratory quality assurance standard, Standards Based Management System, 1997b). In addition, the standard makes provisions for several levels of quality assurance, noting that The Laboratory also has a software development standard (Laboratory computer software and database control standard, Standards Based Management System, 1997a) that embodies the quality standard and takes several steps further. The standard requires that 1.2 Philosophy of System Development We define quality as the ability of system to meet client needs. Meeting client needs starts with a shared understanding of how the software must perform. It continues throughout the software life cycle through attention to details. For example, we use object-oriented programming constructs to control the flow of execution. This provides for well-defined interface points between modules and the easier maintenance of software. We also maintain a modular approach in the source program design and coding to ensure compatibility, easier testing, and clear communication points. Finally, we practice good documentation in naming conventions, symbolic parameters, paragraphing, blocking, indentation of source code, specification of a single statement per line, the intelligent use of comments and error messages so coding is easy to replicate, modify and maintain. These standard practices allow us to develop high-quality software systems that satisfy our clients. This document is meant to stand alone. The information contained within can be applied to most of the project team´s software systems to analyze risk in multiple environmental media, although in some cases client needs will require an even greater level of assurance. For specific projects, clients should refer to the proposal, statement of work, and/or project management plan for additional information on detailed quality requirements and activities being planned. In some cases, our clients ask us to apply the models we develop to a particular problem or need (for example, in estimating risks of a major federal action for an environmental impact statement). Model application requires a different type of quality assurance process. One considers model selection, data collection, model implementation, sensitivity and uncertainty analysis, and anchoring. This type of quality assurance process is not addressed in this document. The following sections provide an overview of software quality control and assurance activities associated with a software life cycle (development, modification, testing, implementation, and application). Section 2 provides a historical perspective of the development of such systems as well as a general description of software systems and certain applications and information security measures taken across projects. Section 3 describes the life-cycle process for the development of new software systems. Section 4 provides similar information for modifications to existing systems. Section 5 details test process used for both new and modified systems. Section 6 describes the support provided to transfer technology and implement the system at a client´s organization. Section 7 provides references cited elsewhere in this document. Specific guidance for quality process can be found in Appendix A. Appendix B describes roles and functions of project team members. Appendix C provides a glossary of specialized terms used in this document.
The environmental software systems developed by the project team are designed using an object-oriented approach. These systems offer increased benefits over those of tthe raditional "hard wired" systems. Over the past 35 years, these traditional environmental software systems have been developed for specific media (soil, groundwater, surface water, air, etc.) in an effort to understand and predict environmental phenomena. Such systems are still being developed today. The evolution of these models has followed a logical progression:
That the project team develops software systems for risk analysis in multiple environmental media within a modular framework allows users the flexibility to construct, combine, and couple attributes meet their specific needs. This allows a variety of models to work within a single construct. There are two parts to these software systems: an overall system framework and a set of modules. Each module has three components: a user interface, a scientific model, and a pre/post-processor. Each of these pieces has a different set of quality criteria associated with it.
The system framework typically consists of a set of modules that have been specified by a client, an associated framework user interface, and data exchange specifications. The purpose of a system framework is to: Depending on client needs, the framework may accommodate various levels of the detail (i.e., resolution) of models and scale of assessment (e.g., medium-specific, watershed, regional, and global). It may also access a number of site- or installation-specific and national Each system framework is developed and maintained by a team of researchers. The team consists of at least one subject matter expert (individual responsible for communicating client needs), a framework custodian (technical expert who oversees code development for system framework), and an application expert (someone with background in application of similar systems). There may also be component developers to assist framework custodian, testers, and technical reviewers for subject matter or code. Other project team members include the project custodian (who also serves as quality assurance/quality control manager), and a documentation manager (assigned to aid in development of documentation and/or online help programs), with an overall project manager providing client interface and leadership. At the onset of specific projects, the project manager selects appropriate individuals for each of these roles. Additional information on roles and functions of each of these team members can be found in Appendix B. Each module potentially contains three components: the user interface, the scientific model and, for those systems that incorporate legacy models, pre-and/or post-processors. Examples of modules include source term releases, vadose zone transport, saturated zone transport, surface water transport, air transport, exposure pathway analysis, dose estimates, health impacts, and sensitivity/uncertainty support tools. Each module is developed and maintained by a team of researchers. For each module, there will be a subject matter expert (e.g., hydrologist for groundwater module, health physicist and biochemist for dose exposure module, etc.), a module custodian (technical expert who oversees code development for a module), and an application expert (someone with background in subject area and experience applying similar models). There may also component developers to assist module custodian, testers, a documentation manager assigned to aid in the development of documentation and/or online help programs, and technical reviewers for subject matter or code. Other project team members include the project custodian (who also serves as quality assurance/quality control manager) and task leader (generally in charge of development of each module), with an overall project manager providing client interface and leadership. At the onset of specific projects, the project manager selects appropriate individuals for each of these roles. Additional information on roles and functions of each of these team members can be found in Appendix B. A model is set of scientific calculations define a particular module. Several models have been developed over the past 10 years by researchers focusing on developing fully integrated, physics-based, intermedia modules that allow a more transparent connection between individual medium-specific models. The grouping of these physics-based models takes a holistic approach to the environmental assessment of potential constituent impacts as they simulate the following: 2.1.2.2 Module User Interface The purpose of the user interface to a module is to make it easy to collect the data necessary to run model. Besides gathering necessary data, the user interface often provides online help to the user, reference storage options for collected data, flexible unit inputs, and other user support functions. 2.1.2.3 Module Pre/Post-Processors As mentioned earlier, it saves time and cost if models can be integrated into a system framework intact. Legacy software has been tested and reviewed and can be preserved and integrated by the addition of pre- and/or post-processors to the module. These processors transfer reorganized data into specified format of overall framework, thus allowing the inclusion of modules that were initially created for a media-specific analysis to be used in this more holistic approach to multiple media assessments. Whether a pre/post-processor is used depends on the needs of the scientific model and the specification of the framework. Models have been created or modified with specifications predefined that will likely not need pre/post-processors before integration. The anticipated user of this overall framework and its modules is expected to have some environmental science knowledge and to be familiar with standard WindowsTM application software. In addition, completion of a training session or online tutorial is also recommended for potential users. Although user interfaces are generally written to be intuitive and user-friendly, the basic understanding of the proper use and interpretation of software is recommended. Whatever form our software systems might take for a particular client, standard processes apply to protect information from inappropriate use. These processes include application security, installation security, and the confidentiality, integrity, and availability of information.
All computer systems and related software at Laboratory are used for official business and activities sanctioned by management. Protection systems are in place to prevent sabotage or damage by viruses. Physical security measures include following: Most risk analysis software systems developed by the project team come in installation disk sets. Users generally install disks into the same directory or folder. To ensure ease of installation, all the software for risk analysis in multiple media is installed using general Windows installation procedures. These procedures prompt users through the installation process. All software systems covered by this approach are designed to meet client needs; each client receives specific information and software to this end. However, in all cases, master source codes remain the property of the Laboratory. Electronic copies are backed up and kept in at least two different buildings as well as on a networked fixed disk; a baseline printout is also kept separately. A completed form detailing all locations is kept by module or framework custodian for respective components as well as the project custodian. Additional guidance related to information management can be found in Appendix A. 2.3 System Safeguards and Sensitivity These risk analysis software systems are generally used to estimate the impacts to human health from constituent releases to environment through several pathways of exposure. This information is generally used to hypothesize impacts from new constituent sources or changes to existing sources (such as effects from environmental remediation and restoration). This information can also be used to monitor compliance with environmental regulations. Clients may use it for a single activity or for analysis of a full suite of activities spanning multiple installations and locations. Because ways in which software can be used differ between clients, the system´s sensitivity can also vary widely. Therefore, it is the client´s responsibility to determine the appropriate safeguards and security necessary for their particular use. Project staff will discuss this need with the client early in the planning process so that the client requirements can be built into the system development. 2.4 Potential Electronic Tracking System The processes detailed in this report are currently tracked via an electronic spreadsheet program. There are, however, an increasing number of automated software quality assurance tools designed for Internet, Intranet, and web-based use that can be considered to save time and money. Change request tools introduce a consistency of communication that makes data gathering a simple, painless process and encourages people to report defects and testing time. Enhancement requests, defect reports, and changes can be easily managed from the initial incident through resolution and testing. Version control management tools can reduce the risk of change by enforcing and recording change process. The right change request and version control tools can save time, ease software maintenance, and coordinate the work of multiple team members. The project team is currently investigating the utility and feasibility of incorporating one or more of these tools to maximize quality assurance process for clients. The performance metrics for this approach considers eight areas: compatibility, completeness, consistency, correctness, the ability to be modified, robustness, understandability, and testability. Many of these areas are generally addressed in our standard use of object-oriented design. The following are examples of performance metrics specific to four pieces of software described above (Section 2.1).
Answering yes to the following questions indicates that the system framework will perform in accordance with quality expectations: Answering yes to the following questions indicates that the module user interface will perform in accordance with quality expectations: Answering yes to the following questions indicates that the module model will perform in accordance with quality expectations: 2.5.4 Module Pre/Post-Processors Answering yes to the following questions indicates that the module pre/post-processors will perform in accordance with quality expectations: Software systems, developed by the project team, to analyze risk in multiple environmental media follows a routine process (Figure 3.1), honed by years of experience with a variety of clients. This development is influenced by client needs for information output, programming standards and languages, and the development tools available. In general, this process entails an analysis of client requirements, the design of the system to meet those requirements, and production and programming, including testing. The guidance discussed in the following sections can be found in Appendix A. Appendix B describes the responsibilities of various roles discussed. 3.1 System Detailed Requirements Analysis Each project starts with a definition of the client´s needs. What problem must be solved? What kinds of information are needed? Who are the ultimate users and how can the system best meet their needs? This definition begins with an analysis of needs, a definition of the functional components of hardware and software, and packaging of information.
The requirements analysis is based on communication with the client and historical use of these software systems by the project team. The project team has years of experience in analyzing environmental issues and has developed significant tools for use in understanding these issues. This experience along with understanding specific needs of client is the basis for the requirements analysis, which is documented in a proposal or statement of work for the client. An important part of the requirements analysis is to define functional components of hardware and software. These components are determined by the client´s hardware environment and the environments of legacy software being incorporated into the system. 3.1.2 Requirements Documentation The information developed during the requirements analysis phase of project is gathered into the requirements package. This requirements description includes two levels of detail, general requirements and specific requirements. Many of the general requirements are described in project documentation, such as the project management plan with task descriptions and/or a statement of work for the project to ensure accuracy and client understanding and support. Thr statement of work is approved by the client before the initiation of work (the project management plan or statement of work contains similar information as in U.S. Environmental Protection Agency´s "System Implementation Plan" and "Software Management Plan," Essential Elements of Information 4 and 6, respectively, in EPA 1997). In addition to the statement of work and task descriptions, additional general requirements can be documented and included into the requirements package. The requirements package should be sufficiently detailed to be used as the foundation for design and testing (the requirements package contains similar information as in EPA´s "System Detailed Requirements Document," Essential Element of Information 5 in EPA 1997). Figure 3.1. Process for Developing Environmental Software Systems The information in the requirements package should, at a minimum, answer the following questions: 3.2 System Design and Development The system design and development is the process of taking the information in the requirements package and translating it into software. This process is led by a module or framework custodian (see Appendix B for a full description of roles and responsibilities for this person), who may have assistance from other code developers as well as a subject matter expert. When this process has been completed, any changes to the software must be approved by the task leader and project manager. 3.2.1 Definition of Database and File Structure Before the code is designed, the module or framework custodian (depending on component) must determine appropriate databases and file the structures of input and output from them. Module file structure should be consistent with the framework´s file specification format. Pre/post-processors may be used to aid in the conversion of legacy code file formats not already meeting those specifications. All file formats should be designed to ensure the readability and compatibility with most spreadsheet programs, and to incorporate the necessary information to communicate use and purpose of each file. 3.2.2 Code Design and Development the code design begins with a description by the module custodians and framework custodian of major components of the design as they relate to requirements identified in the requirements analysis phase of the project. Flowcharts, block diagrams, and the relational matrix are often used to describe linkages and solution strategy. Guidance describing multiple steps involved in the design and development of software systems can be found in Appendix A. 3.2.3 Development of Software User´s Guidance Software user guidance is developed for each module or framework. This user´s guidance, often in the form of online help, is generally an associated real-time system using hypertext language. However this type of help information is also made available for printing in hard copy form to function as a traditional user´s guide (user guidance, along with training discussed in Section 6.0, contains similar information as in EPA´s "Software Operations Document" and "Software User´s Reference Guide," Essential Elements of Information 10 and 11 in EPA 1997). In addition, online tutorials may be developed for specified software systems. These tutorials would serve as a supplement or replacement to traditional client training arranged to aid in system implementation. These tutorials are intended to communicate the necessary information needed to operate the system correctly. Information is provided on the operation of the user interface and underlying models and their appropriate use. The development of an online tutorial is determined in the project management plan or statement of work. 3.2.4 Design and Development Documentation The design and development activities are captured in a software development package, which identifies the type of code (new, replacement, upgrade) and members of the development team. It provides a generic description of the code, often in the form of a flowchart or task description. It also lists deliverables specific to the task such as the requirements analysis, user guidance, and testing approach. The software development package is helpful throughout the process because it captures the developers´ understanding of requirements and provides an opportunity for internal and external reviews of the design (software development package contains information similar to in EPA´s "Software Design Document," Essential Element of Information 8 in EPA 1997). Code testing is also documented in the software development package as well as the software test package. The software development package contains a copy of the software test package and is signed by the application expert. A description of what comprises a software test package can be found in Section 5. When completed, the software development package is reviewed by the task leader, subject matter expert, and a module or framework custodian (depending on component), and application expert. The information includes a baseline hard copy of source code listing as well as a diskette copy labeled with the component name, version, component developer names, and date. The diskette includes source codes, any executable files, and any "readme" files with special instructions to users. The package also documents the computer programming language used and any other additional languages used. Changes to components of software after the software development package is complete require the additional signature of the task leader. Additional information for each piece of software is provided below. 3.2.5.1 Framework Design and Development Documentation The software development package also captures a variety of information from the design phase of the project for the framework-level system, such as design requirements and communication file specifications. The software development package provides for assurance the user guidance has been developed, as well as reviews of documentation and the resolution of comments from those reviews. When the design portion of the software development package is completed, the design is approved by the subject matter expert, application expert, and the framework custodian. 3.2.5.2 Module Design and Development Documentation The software development package also captures information from the module design phase of the project including design requirements and draft formulations needed for a module´s scientific model. Depending on the sensitivity or complexity of formulations, these formulations can be reviewed internally and/or externally, with signatures and comments noted and addressed. Reviewers can be other subject matter experts or code developers, or a representative of the client. The design portion of the software development package also addresses the need to develop pre/post-processors to enable the module to function within the overall system framework. When the design portion of software development package is completed, the module design is approved by the subject matter expert.
Over the years, Pacific Northwest National Laboratory has developed a variety of software systems for risk analysis in multiple environmental media such as MEPAS, RAAS, GENII, and others. While some client needs necessitate development of entirely new systems, often modifications to the existing systems are more cost-effective and useful. Modifications are influenced by programming language constraints, detailed user requirements, data requirements, and physical environment. The approach to modifications is detailed below. Descriptions of the roles and responsibilities of key project staff can be found in Appendix B. Example forms currently used in software modification tracking can be found in Appendix C. 4.1 Performance Metrics Development As mentioned in Section 2.5, the performance metrics for our environmental software systems consider eight areas: compatibility, completeness, consistency, correctness, the ability to be modified, robustness, understandability, and testability. Many of these areas are addressed in our standard approach of object-oriented design and thus have been addressed in the development of the original systems. These systems may be modified for one of two reasons: either a client or other user has suggested an enhancement they would like to purchase or the project team or user has identified an error or "bug" in the system. The following are examples of performance metrics specific to these types of modifications.
An enhancement might be made to the framework system or one of modules. When enhancing a system framework, answering yes to following questions indicates that the system will perform in accordance with quality expectations: Once a potential problem with the system has been identified, the project team attempts to reproduce the problem (i.e., determine the steps that led to the error message or other problem). From this, the information, module or framework custodian (depending on component) identifies a potential way to fix the problem; the proposed method is approved by the cognizant subject matter expert. When implementing the proposed change in the system, answering yes to the following questions indicates that the problem has been solved: 4.2 System Modification Documentation Once a software system has been developed to a baseline, modifications must be planned carefully to ensure a minimal impact on existing users. The key to this is the tracking of requested changes and their expected impacts on results (three pieces described below - change request, change documentation, and change request summary - contain information similar to in EPA´s "Software Maintenance Document," Essential Element of Information 9 in EPA 1997).
A change request may originate from a client, a project team member the client has contacted, or a project team member who has identified a need for a system modification. The process serves several purposes: A change request may involve more than one problem/enhancement; in some cases, several related problems are reported at one time. The request is duplicated later in the process when each change is assigned a method of correction. Once a change request has been initiated, it is routed through the project custodian, who will assign a tracking number, enter that number into a database, and distribute the information to the affected module or framework custodian(s). Sometimes a problem is so critical that time does not permit the physical routing of change request. In this case, the project staff send an electronic mail message to the project custodian with a brief explanation of change. This information will be entered into the database and a tracking number will be returned to the sender. Sometimes it is unclear as to which modules are involved/affected by the proposed change. In this case, the project custodian assigns a temporary tracking number until the change can be further evaluated by the module or framework custodian. Once a change has been documented in the change request process, the module custodian completes an evaluation of the change, which they then submit to the subject matter expert for approval and a signature (at this point, multiple change requests that were submitted together can be distributed so each change can be tracked separately). If the change affects the system framework, an approval is based on a concurrence between the subject matter expert, framework custodian, and the application expert. The change attachment serves to document the following: If a solution triggers another problem or needed enhancement, the module or framework custodian makes another change request and the process begins again. When a change has been implemented, the module or framework custodian (depending on component being changed) keeps a copy of the completed change package and returns the original to the project custodian, who prepares a change request summary. This package serves to: Modification design and development follow similar guidance to the new system development process found in Section 3.2. After the initial evaluation of modification and its potential impacts to existing code and results, the system is modified and tested. Other design issues considered by project team might include the following:
5.0 SYSTEM INTEGRATION, TESTING, AND EVALUATION All environmental software systems developed by the project team are tested by developers before use external to Pacific Northwest National Laboratory. Each component is individually tested, and the entire system is tested to ensure compatibility. The software test package is developed by the application expert and is based on requirements for the system framework or module being tested. The test package may also be evaluated by an independent tester to ensure completeness and accurate results. Testing can often produce additional change to an already baselined system. In this case, recommended changes to the software are routed through the modification process to ensure the feasibility of those recommended changes (modification process is discussed in Section 4.0). The testing and evaluation of results is handled slightly differently for new systems verses changes to existing systems, as detailed below. Testing of newly developed software is key in the environmental software systems quality process (see Figure 3.1). Tests are documented in the software development package as well as the software test package. Subject area experts and module or framework custodians provide information to the application expert to summarize the reason for performing the tests and to contribute to the scope of the test. The scope information may include information on the software and documentation being tested, specific features to be tested, test case specifications, and any features that are to be excluded from testing and why. The foundation of testing is the requirements outlined in the requirements package and the development package (software test package and test results contain similar information to EPA´s "Software Test and Acceptance Plan" and "System Integration Test Reports," Essential Elements of Information 7 and 12, respectively, in EPA 1997). Before testing, the application expert identifies major testing tasks, activities, techniques, and tools necessary to prepare for and perform testing. They also identify pass/fail criteria for each item, suspension/resumption criteria, and test deliverables. Finally, they identify the staff responsible for managing, designing, preparing, executing, and evaluating tests. The application expert then prepares procedural steps for the test, describing such things as:
For modified systems, baseline test cases are used for confirming the effects on the overall code in addition to testing needs identified in the evaluation, design, or change process. Often changes are minor enough that minimal testing is required to ensure accurate implementation. In this case, the application expert conducts the test and provides a printout to the project custodian for inclusion into the change control files discussed in Section 4.0. When the modifications are extensive, the application expert follows the same process as noted above for the testing of new systems. General test scenarios are prepared for new and existing software that is being introduced into this system quality approach. These scenarios are described as the minimum set of scenarios that are necessary to ensure correctness of the software produced. For a framework system, the scenarios evaluated are based on user-friendliness and module-accessibility. Examples of the areas tested for framework systems include correct file execution, accurate file communication, and user-understandability. For a module user interface, the scenarios evaluated are based on user-friendliness and accuracy in the data gathered for the model. Examples of the areas tested for the module user interface include the representation of model capabilities, accurate file communication, and user-understandability. For a model, the scenarios evaluated are based on formulations and the purpose of model. Examples of areas tested for models include the correct implementation of formulations, accurate input/output data communication, and the potential combination of options. For pre/post processors, scenarios evaluated are based on the correct data transfer and compliance with the system framework file specifications.
The last phase of software development and ensuring quality is system implementation; however, expectations for the system implementation were first introduced in the requirements analysis phase of project. Implementation means that the specific framework developed for client can be transferred to the client to be applied at their organization by their own staff. How this system is implemented is influenced by system development, user acceptance, and operations constraints, as discussed below. The transfer of usable software to the client is based on details depicted in a statement of work or project management plan. Client agreements are often arranged with a requirement software to be user-friendly and operable by a non-project team individual. The level of client implementation support is arranged to aid the end user of the software tool in adjusting to the look and feel of the system. 6.1.1 Client Implementation Support Project agreements often include a client implementation support phase comprised of the delivery of software to a client and a trial time with client support through initial software usage. This support may be offered over phone, at the client location, or in training sessions on use and foundations of the software being delivered. Technical support can also be negotiated beyond the initial project agreement to enable a client to expand on software capabilities or to aid in a client´s application of software tools. 6.1.2 Implementation Documentation Implementation documentation is usually offered as an online feature of the software system with additional documentation of file specification and formulations also available. Additional information on software user´s guidance can be found in Section 3.2.3. Training on the appropriate use of the software system is recommended. This training should include information such as the capabilities of the user interfaces, reasoning for the formulations that were implemented, and limitations of the system produced. This training may occur through a formal training session, technical support of individual users, an on-line tutorial, or another form of communication capabilities. 6.2 System Operations and Maintenance The system operations and maintenance depends on the scope of the project. In some cases, the operation and maintenance is included in the project and therefore falls into modification aspects of this document (Section 4.0). In other cases, the project ends upon delivery of the software to client; in this case, the client could negotiate continued system maintenance for future use. Guidance of the proper use and operation of the system is provided in user training as discussed above. Documentation packages gathered for developed software systems are maintained and stored for the life of the product.
EPA (U.S. Environmental Protection Agency). 1997. System Design and Development Guidance. EPA Directive Number 2182, U.S. Environmental Protection Agency, Washington, D.C. Standards Based Management System. 1997a (and as updated).
"Computer Software and Database Control Standard." https://sbms.pnl.gov/standard/94/9400t010.htm,
Pacific Northwest National Laboratory, Richland, Washington.
Standards Based Management System. 1997b (and as updated).
"Quality Assurance Planning Standard." https://sbms.pnl.gov/standard/87/8700T010.htm,
Pacific Northwest National Laboratory, Richland, Washington.
Whelan, G., K. J. Castleton, J. W. Buck, G. M. Gelston,
B. L. Hoopes, M. A. Pelton, D. L. Strenge, and R. N. Kickert. 1997. Concepts
of a Framework for Risk Analysis in Multimedia Environmental Systems (FRAMES).
PNNL-11748, Pacific Northwest National Laboratory, Richland, Washington.
This document is:
Gelston, G.M., R.E. Lundgren, J.P. McDonald and B.L. Hoopes. May 1998. An Approach to Ensuring Quality In Environmental Software PNNL-11880, Pacific Northwest National Laboratory, Richland, Washington
Prepared for: Office of Research and Development and Office of Environmental Management and Radiation Protection Division Pacific Northwest National Laboratory |