2013 RESIDENTIAL COMPLIANCE SOFTWARE DEVELOPMENT PLAN VERSION 1.0 January 2012 REVIEW DRAFT FOR PROGRAM ADVISORY COMMITTEE (PAC) Note to PAC members: This draft document describes the key elements of this project. Feel free to use it as a means of providing guidance to the project team. You can download this file, make changes and comments in it, and email it to jennifer@jenniferroberts.com, who will then distribute it to the project managers and other team members. Or you can provide comments directly via email to Bruce and Martha (please also copy Jennifer). Thank you for your input and involvement. Contributors include: Martha Brook, California Energy Commission Bruce Wilcox, P.E. Dave Krinkel, EnergyAi TABLE OF CONTENTS 1 Project Overview ...................................................................................................................................................4 1.1 Purpose and Objectives................................................................................................................................4 1.2 Software Deliverables ..................................................................................................................................6 1.2.1 Compliance Manager ...............................................................................................................................6 1.2.2 CEC User Interface ...................................................................................................................................7 1.2.3 California Simulation Engine Upgrades ....................................................................................................7 1.2.4 Compliance Form Generator ...................................................................................................................7 1.3 2 Project Schedule ....................................................................................................................................................8 2.1 3 4 5 6 Future Directions..........................................................................................................................................7 Definition of Phases and Milestones ............................................................................................................8 2.1.1 Inception Phase .......................................................................................................................................8 2.1.2 Design Phase ............................................................................................................................................8 2.1.3 Construction Phase ..................................................................................................................................9 2.1.4 Transition Phase ......................................................................................................................................9 2.2 Schedule Table ...........................................................................................................................................10 2.3 Schedule Control ........................................................................................................................................10 Organization ........................................................................................................................................................12 3.1 Organizational Structure ............................................................................................................................12 3.2 Roles and Responsibilities ..........................................................................................................................12 Functional Requirements Process .......................................................................................................................13 4.1 Goal of Functional Requirements...............................................................................................................13 4.2 Requirements Gathering ............................................................................................................................13 4.3 Requirements Document Template ...........................................................................................................14 Software Specifications Process ..........................................................................................................................16 5.1 Goal of Software Specifications .................................................................................................................16 5.2 Specifications Document Template ...........................................................................................................16 Quality Assurance Process ...................................................................................................................................19 6.1 QA Plan Description ...................................................................................................................................19 6.2 Reviews and Audits ....................................................................................................................................19 6.3 Tools and Techniques .................................................................................................................................19 6.4 Testing Strategy..........................................................................................................................................20 2013 Residential Compliance Software Development Plan 2 6.4.1 Unit Testing ............................................................................................................................................20 6.4.2 Integration Testing .................................................................................................................................20 6.4.3 Acceptance Testing ................................................................................................................................20 6.4.4 Regression Testing .................................................................................................................................20 6.5 7 8 9 User Documentation ..................................................................................................................................20 Software Maintenance Plan ................................................................................................................................22 7.1 On-going Maintenance Tasks .....................................................................................................................22 7.2 On-going Release Strategy .........................................................................................................................22 Software Distribution Plan...................................................................................................................................23 8.1 Open Source Licensing ...............................................................................................................................23 8.2 Plug-in Software Distribution .....................................................................................................................23 8.3 On-going Release Distribution ...................................................................................................................23 References ...........................................................................................................................................................24 9.1 Reference Documents ................................................................................................................................24 9.2 Acronyms ...................................................................................................................................................24 2013 Residential Compliance Software Development Plan 3 1 PROJECT OVERVIEW 1.1 PURPOSE AND OBJECTIVES California’s building stock is among the most energy efficient in the world, thanks in large part to the state’s Title 24 (Part 6) Energy Efficiency Standards. Since 1978 these Standards have saved California residents billions of dollars in electricity and natural gas costs, and helped secure the state’s leadership position in the green building industry. The Title 24 Residential Standards were among the first to offer a new approach to building code compliance, called the “performance method.” The performance method gives architects and builders greater flexibility in their designs. They can optimize performance and achieve compliance at the lowest possible cost. Broadly speaking, the performance method of compliance has the following three steps: 1 A “proposed design” is created from building plans. Some construction and equipment components must meet basic requirements. For example, an exterior wood frame wall must meet or exceed a minimum R-value, but there are no restrictions on wall area or orientation. 2 A “standard design” is created from the proposed design, as specified in a set of rules. All construction and equipment components are modified to meet basic requirements. Even the building geometry can be modified. For example, the current Title 24 Residential Standards require that while the floor area and volume of the standard design be the same as the proposed design, the wall and window areas in the standard design are distributed equally on the four compass orientations of north, east, south, and west. 3 The annual energy use is calculated for both designs, using the same assumptions for weather data, thermostat setpoints, internal gains, occupancy schedules, etc. The proposed design is in compliance if its annual energy use is not greater than that for the standard design. The performance method is the most popular compliance method under the Title 24 Residential Standards, with more than 95 percent of building permit applications being submitted in this manner. The performance method has broad applicability outside of Title 24 jurisdiction. Other regulatory agencies in the U.S., Canada and elsewhere currently offer (or would like to offer) a similar approach, but using their specific compliance “rules.” Some energy utilities offer incentive programs which require an annual energy use calculation to determine qualification. And there is a thriving market for performance-based compliance software targeted to the residential building industry. Because of this broad applicability, the California Energy Commission is leading a collaborative effort to provide open source performance method software tools for residential construction standards compliance and other energy efficiency public policy implementation. The goal of this effort is to develop a software platform which implements the general performance approach, but enables different organizations to employ their specific compliance rules. For example, the software platform would support the following efforts: New construction compliance by a regulatory agency using its code requirements and rules. 2013 Residential Compliance Software Development Plan 4 “Green building” certification by professional associations and non-profit organizations. Qualification of residential construction for rebates, reduced rates, and other incentives from energy utilities. Software “plug-ins” which enable software developers to incorporate compliance functionality into their design tools. Certification of third party software compliance tools for accuracy. The platform is called “2013 Residential Compliance Software” (RCS). As part of the 2013 Residential Standards work a Program Advisory Committee (PAC) is being formed to advise and assist in funding the development and on-going maintenance of RCS. In general terms, four types of software components are needed to implement the performance method – a user interface, a “Compliance Manager,” simulation engines, and a report engine: User Interface Compliance Form Generator Building project data Compliance results Compliance forms Compliance Manager Standard & proposed designs Compliance forms Energy performance results Simulation Engine(s) User Interface – enables the entry of project, construction, and equipment data for the proposed design. Presents the final forms indicating if the design is in compliance. The user interface may be third party software such as a commercially available building design tool. Compliance Manager – the traffic cop for the performance method. The CM uses “data models” and “rulesets” to generate the proposed and standard designs from the user’s inputs. It configures the data for both designs into an input format acceptable by the simulation engines. And it transforms the results from the simulation engine into a format acceptable by the compliance form generator, and relays the forms to the user interface. Simulation Engines -- perform the energy analyses for both the proposed and standard designs. One tool might do all the required calculations, or different tools may handle different aspects of the designs. For example, the RCS implementation will use the California Simulation Engine (CSE) for building envelope, lighting, and heating/cooling system calculations, and a CEC Domestic Water Heating (DHW) module for water heating calculations. 2013 Residential Compliance Software Development Plan 5 Compliance Form Generator – transforms the analyses results into standard forms which show whether or not the proposed design is in compliance. These forms should not be editable. The project described by this plan will deliver each of these components, though in some cases they will be configured specifically for the California 2013 Residential Standards. Each deliverable is described in the next section. However the objective is that all components can be configured for the other performance method applications listed earlier in this section. 1.2 SOFTWARE DELIVERABLES This plan describes the development, testing, documentation, and support of four software deliverables. 1.2.1 COMPLIANCE MANAGER The Compliance Manager (CM) is the central hub of the RCS platform. While the deliverable for this project will include configuration for the California 2013 Residential Standards, the CM can be used by any agency or organization that uses the performance method for code or program compliance. The CM has the following capabilities: Accept as input basic residential building data for construction and equipment. This will most likely be an XML file. The schema define the available components, (e.g., exterior walls, windows, heating/cooling systems), their properties (e.g., areas, R-values, efficiencies), and relationships between components. Lists of available options can be defined, such as a list of available framed exterior wall types with their properties. Apply a “rules processor” to generate both proposed and standard designs. The rules for a given design are defined in a “ruleset.” Rules can be simple or complex. A simple rule might modify an exterior wall’s Rvalue to some default value. A more complex rule might modify exterior wall and window areas. Rules determine which inputs are required, which are defaulted, even which can be edited. Rulesets are configurable. Format the data for the proposed and standard designs for input to the California Simulation Engine (CSE) and CEC DHW module. These will most likely be XML files. But the CM will support flexible configuration of simulation input data to support other simulation tools. Apply the compliance rules to the simulation results for the proposed and standard designs, to determine if the design is compliant. Format these results as required for the compliance form generator (most likely as an XML file). The flexibility of the CM’s rules processor is key to the broad applicability of the RCS platform. It supports dependency chains where selections or defaults are affected by other inputs. The ruleset can incorporate look-up tables in which multiple default values are determined by a single selection (e.g., “building type” triggering default occupancy levels, thermostat schedules, etc.). An agency or organization will have the ability to encrypt or otherwise protect from alteration the CM and the specific rulesets they develop. This enables distribution of a validated compliance software tool to program participants. It is intended that the CM be distributed via an open source forum and licensing. 2013 Residential Compliance Software Development Plan 6 1.2.2 CEC USER INTERFACE A simple interface is needed to enable a user to enter the basic building data required by the CM, and to return the compliance forms from the form generator. The interface is intended for two types of users: Energy Commission staff for certification of RCS as compliant for the 2013 Residential Standards; Builders, architects, and other designers submitting proposed designs for compliance testing, as per statutory requirement. It is anticipated that the CEC user interface will employ a basic hierarchical model. The input data will be organized by topic, such as “Project” for overall project information, “Envelope” for building envelope data, and “Mechanical” for space conditioning and water heating equipment data. Each topic provides access to a set of hierarchical components. For example, the Envelope hierarchy might have components like “Exterior Wall,” “Roof,” “Slab on Grade Floor,” etc. at the highest level of the hierarchy. Exterior walls might have children components like “Window” or “Door.” Each component will likely have its own input screen which contains the specific properties needed by that component. For example, an exterior wall component might have inputs for area, orientation, cavity R-value, sheathing R-value, frame type, etc. The CEC user interface will also display the compliance forms. It is likely that these will be an encoded PDF file which cannot be edited. 1.2.3 CALIFORNIA SIMULATION ENGINE UPGRADES [Description to be added] 1.2.4 COMPLIANCE F ORM GENERATOR The form generator receives the compliance results for the proposed and standard designs from the CM as a single packet payload. It then creates all required documents, such as compliance certificates with the building energy performance metrics for the 2013 Residential Standards. These documents will be uneditable, most likely as encoded PDF files. The CM will distribute the document files to the user interface. 1.3 FUTURE DIRECTIONS [TO BE ADDED] 2013 Residential Compliance Software Development Plan 7 2 PROJECT SCHEDULE 2.1 DEFINITION OF PHASES AND MILESTONES The preceding section describes the four deliverables for this project – the Compliance Manager (CM), the CEC User Interface, upgrades to the California Simulation Engine (CSE), and a compliance form generator. Each deliverable will be developed and released over four phases. Each phase concludes with a milestone. The phases and their milestones are described in the following subsections. 2.1.1 INCEPTION PHASE The inception phase will define the business case for each deliverable. This requires identifying all external entities who will interact with each software tool, and the nature of their interaction at a high-level. For example, the primary users of the CM and CEC user interface tools include building energy experts at regulatory agencies like the California Energy Commission, trade groups like the AIA, and utilities. The most significant use cases for each deliverable will be documented. This will rely heavily on input from the PAC. The use cases are important to delimit the scope of each tool. Where applicable, the use cases should include datasets of expected results which can be used for testing during development. Representative end users for each use case should also be recruited as potential beta testers in the construction phase. It is also helpful during this phase to review other compliance software tools (or related building design software) for examples of what does (or doesn’t) apply to the business case. If resources permit, prototypes should be mocked up for PAC review. The first major project milestone is due at the end of the inception phase, the Functional Requirements document. A template for the Functional Requirements is provided in section 4 of this plan. The evaluation criteria for the inception phase are Energy Commission and PAC concurrence on the functional requirements, especially scope definition. 2.1.2 DESIGN PHASE The design phase will start with the functional requirements from the inception phase to develop a detailed architectural prototype of the software tool. A key step is analyzing the design vs. the use cases from the inception phase. If some use cases threaten to expand the development scope too much for available resources, then these riskier use cases may be excluded from the initial software release. Architectural decisions have to be made with an understanding of the whole system: its scope, major functionality and nonfunctional requirements such as performance requirements. The first milestone for the design phase is a detailed Software Specifications document. This document includes Software architecture description Workflows for retained use cases User interface design and standards Data model definition A template for the Software Specifications is provided in section 5 of this plan. 2013 Residential Compliance Software Development Plan 8 The second milestone is a Quality Assurance plan. This document details specific unit tests as well as end-to-end testing. Test datasets collected in the inception phase will play an important role here. For example, the CM testing should include example rulesets for proposed and standard design inputs for several compliance regimes (i.e., not just limited to the California 2013 standards). The Quality Assurance plan is described in section 6 of this plan. At the end of the design phase, the hard “engineering” is considered complete. While the process must always accommodate changes, the design phase activities ensure that the architecture, requirements and plans are stable enough, and the risks are sufficiently mitigated, so that software coding can begin in earnest. 2.1.3 CONSTRUCTION PHASE The construction phase is the “build it, test it, document it” phase, culminating in one or more beta releases. The Software Specifications drive the coding, and the Quality Assurance plan drives the testing. This is necessarily an iterative process – components are coded and then unit-tested, modified, and re-tested. In addition to coding, static data tables are populated where applicable. User documentation is also developed in the construction phase. This includes the following (where appropriate): User manual, including administration and maintenance instructions Quick start guide On-line help Training materials All components and application features are integrated into the product, and the end-to-end testing should thoroughly exercise all features. The construction phase is, in one sense, a manufacturing process with the end result being a product ready to put in the hands of a select group of end users. So the milestone for this phase is the beta release. The software is ready to go operational, without exposing the project to high risks. 2.1.4 TRANSITION PHASE The purpose of this phase is to transition the software to the general user community. Once the product has been given to the beta testers, issues usually arise that require corrections and modifications. Often some features that were postponed are finished during this phase. Typically, this phase includes several iterations of beta releases. The user documentation will likely also need refinement. Considerable effort is expended in supporting beta users and reacting to their feedback. At this point in the lifecycle, however, user feedback should be confined primarily to product tuning, configuring, installation, and usability issues. Requests for new functionality (“feature creep”) should be noted and documented for future consideration. Rarely is there a concrete benchmark that determines the end of beta testing. The software is ready for general release when there is general concurrence from the project team, the Energy Commission, and PAC that the functional requirements are met, and the software is sufficiently stable. The transition phase milestone is software deployment. The CM and user interface are to be distributed under open source licensing. The specific license language and deployment mechanism are to be determined. The 2013 Standards plug-in will be made available to building energy design application software vendors. 2013 Residential Compliance Software Development Plan 9 2.2 SCHEDULE TABLE Oct-13 Nov-13 Dec-13 Sep-13 Jul-13 Aug-13 Jun-13 Apr-13 May-13 Mar-13 Jan-13 Feb-13 Dec-12 Oct-12 Nov-12 Sep-12 Jul-12 Aug-12 Jun-12 Apr-12 May-12 Mar-12 Jan-12 Feb-12 Dec-11 Oct-11 Nov-11 Activities Sep-11 The start and end dates for major project activities are shown below: Compliance Manager CSE upgrades New Const. Rules New Const. Beta Test Compliance Pilots Add’ns & Alt’s Rules Add’ns & Alt’s Beta Test New Const Compliance sw Add’ns and Alt’s Software Final Draft CM Manual CEC Compliance sw Certification Deadline for CEC Software Certification Support 2.3 SCHEDULE CONTROL The project schedule in the preceding section will be reviewed and updated as necessary on a bi-weekly basis with actual start, actual finish, and completion percentages to be provided by task owners. The project manager is responsible for holding bi-weekly schedule updates/reviews; determining impacts of schedule variances; approving schedule change requests; reporting schedule status with the Contract Manager. The project team is responsible for participating in bi-weekly schedule updates/reviews; communicating any changes to actual start/finish dates to the project manager; and participating in schedule variance resolution activities as needed. If any member of the project team determines that a change to the schedule is necessary, the project manager and team will meet to review and evaluate the change. The project manager and project team must determine which tasks will be impacted, variance as a result of the potential change, and any alternatives or variance resolution activities they may employ to see how they would affect the scope, schedule, and resources. If, after this evaluation is complete, the project manager determines that any change will exceed the established boundary conditions, then a schedule change request must be submitted to the Contract Manager. 2013 Residential Compliance Software Development Plan 10 Any changes in the project scope, which have been approved by the Contract Manager, will require the project team to evaluate the effect of the scope change on the current schedule. If the project manager determines that the scope change will significantly affect the current project schedule, he may request that the schedule be rebaselined in consideration of any changes which need to be made as part of the new project scope. The Contract Manager must review and approve this request before the schedule can be re-baselined. 2013 Residential Compliance Software Development Plan 11 3 ORGANIZATION 3.1 ORGANIZATIONAL STRUCTURE The technical team consists of the following people and organizations: Name Martha Brook Bruce Wilcox Chip Barnaby Scott Criswell Dave Krinkel Phil Niles Robert Scott Ken Nittler Marc Hoeschele Doug Herr John Proctor 3.2 Organization California Energy Commission Wrightsoft Wrightsoft ENERGYai RASENT Solutions Enercomp Davis Energy Group California Energy Commission Proctor Engineering Role Contract Manager Prime Contractor, Project Manager, Technical Lead CSE Lead Programmer Compliance Manager Lead Programmer Development Plan CSE Chief Scientist Compliance Form Generator Compliance Ruleset DHW Simulation DHW Programmer HVAC modeling ROLES AND RESPONSIBILITIES [TO BE ADDED: IDENTIFY THE ORGANIZATIONAL UNITS THAT WILL BE RESPONSIBLE FOR EACH OF THE CORE TASKS AND SUPPORTING PROCESSES.] 2013 Residential Compliance Software Development Plan 12 4 FUNCTIONAL REQUIREMENTS PROCESS 4.1 GOAL OF FUNCTIONAL REQUIREMENTS Functional requirements are an explicit description of the functions and capabilities each software deliverable must provide, as well as any constraints under which it will operate. They are essentially a blueprint for development, maintaining focus on the core requirements while limiting “scope creep.” The functional requirements document is often referred to as the “parent” document because all subsequent design specifications, testing and validation plans, and user documentation, flow from it. It’s important to note that the functional requirements are just that – “requirements” – and not a detailed product design. The latter is provided in the software specifications discussed in the next section of this plan. The functional requirements document accomplishes four major goals: 4.2 It provides feedback to the “customer” (the Energy Commission and PAC). It offers assurance that the development team understands the issues or problems to be solved and the software behavior addresses those problems. So the requirements should be stated in non-technical language that the intended end user can understand. Charts and data flow diagrams should be included where appropriate. It decomposes the required functionality into component parts. The simple act of writing down requirements in a prescribed format organizes information and places borders around the problem set. It serves as an input to the design specification. As mentioned previously, the functional requirements serve as the parent document to subsequent documents. Therefore, they must contain sufficient detail so that a design solution can be devised. It serves as a product validation check. The functional requirements also serve as the parent document for testing and validation planning. REQUIREMENTS GATHERING “Use cases” are the standard approach to capturing functional requirements. Use cases explain the end user's interaction with the software. They are simply the description of steps of processes that, taken together, lead to the software doing something useful. For example, a use case for the CEC user interface deliverable will describe what building design data an architect or contractor needs to enter, how he or she might iterate through design options, and what compliance results are needed. Use cases reduce ambiguity. When confronted with a “pile” of requirements, it is often difficult to make sense of what the intention of the requirements really is. Use cases specify when and under what conditions a sequence of process steps will occur. This is particularly true when the steps involve a dialogue between a user and a system. This sequence of process steps can be regarded as a requirement. This allows the behavior of the proposed software to be expressed in a way that stakeholders can easily understand. Use cases should include the alternate activities that need to take place when an exception occurs. Users are very good at explaining what is supposed to happen when no exceptions occur, but tend to be weaker at automatically thinking of all the alternates that the system has to support. Scenario modeling acts as this prompt and if done correctly will help ensure that gaps in the requirements are identified and filled. 2013 Residential Compliance Software Development Plan 13 4.3 REQUIREMENTS DOCUMENT TEMPLATE The Functional Requirements document for each software deliverable will follow the general organization described below: Section 1: Overview The document should begin with a high level description of the software scope. This includes: product functions – what does the tool do, what problems does it solve; who will use the tool, a general description of the types of intended users. For example, the Compliance Manager users include the energy experts who will configure the rulesets for a compliance regime; what are the user environments, i.e., desktop app, web app, mobile app; data to be entered into the system. For example, the user interface overview should describe the basic inputs for a building design; reports and other outputs; interfaces with external systems. For example, the Compliance Manager will interface with the CSE, the CEC DHW module, the compliance form generator, and the CEC user interface. Section 2: Use Cases A use case describes in detail the interaction between a user and the software. It illustrates and provides clarity to the requirements in the following section. There will usually be separate use cases for different types of users, such as end users vs. administrators, or typical users vs. “power” users. For example, the Compliance Manager will likely have separate use cases for energy experts configuring and testing rulesets for generating proposed and standard designs, for distribution to end users; administrators configuring and testing the interface with the simulation engine; the end user submitting a design for compliance; reporting compliance calculation messages and results. Each use case walks through the basic steps of a workflow, including alternate paths that are triggered by exceptions. Diagrams are particularly helpful here. A typical use case will include: description of the data to be entered by a given user; description of the operations to be performed by the software; workflow steps, including approvals and exceptions; description of reports and other output; restrictions on who can enter data into the software. Section 3: System Requirements This section describes the functional architecture of the software – what components are needed to satisfy the use cases in the previous section. The emphasis is on “what” each component must do, not “how” they do it (the more technical “how” is in the software specification described later in this plan). 2013 Residential Compliance Software Development Plan 14 But the “what” should be reasonably detailed. For example, the CEC user interface system requirements should describe the functions performed by each type of screen the user will see. They should also list the configuration capabilities of input fields – range restrictions, defaults, enumerated lists, nullability, exception handling, etc. The system requirements for the Compliance Manager will likely focus on three components: a rules engine, the interface to the simulation engine, and the handling of compliance calculation results. To pick one of these as an example, the rules engine requirements might include: configuration file type – how are the rules entered, i.e. as text files; rule functionality – how rules are linked to input data and tables, basic rules functions, dynamic functions; security – what are the security requirements to prevent a ruleset from being modified; performance – what is the maximum amount of time it should take to generate and submit proposed and standard designs to the simulation engine, and process the compliance calculation results. Section 4: Other Requirements Time and budget constraints may require excluding some use cases and corresponding functionality from the initial software release. Or new requirements may be identified during development but are deferred for future consideration. These requirements should be described here. Each functional requirements document will also include a document control table listing status, revision history, and approvals. If appropriate, a reference list and glossary of terms and acronyms should also be provided. 2013 Residential Compliance Software Development Plan 15 5 SOFTWARE SPECIFICATIONS PROCESS 5.1 GOAL OF SOFTWARE SPECIFICATIONS Software design translates the functional requirements into software components, interfaces, and data necessary for the construction phase. The software specifications document shows how the software system will be structured to satisfy the requirements. It is the primary reference for code development and, therefore, it must contain all the information required by a programmer to write code. Broadly speaking, there are two parts to the software specifications. The first is a description of the overall system architecture. The second, larger part provides the detailed design, including data organization, component design, algorithms, and user interface design. 5.2 SPECIFICATIONS DOCUMENT TEMPLATE The Software Specifications document for each deliverable will follow the general organization described below: Section 1: Overview A high level description of the software scope. Note that this is essentially the same as the overview for the Functional Requirements document, but it should be repeated here to make the software specifications document more “stand-alone.” The overview should also include a reference to the Functional Requirements document, and any other sources which provide important background information for the design and implementation. A list of acronyms may also be needed. Section 2: System Architecture Each software deliverable is made up of components. For example, the Compliance Manager may have separate components for a rules engine, the interface to the simulation engine, and the handling of compliance calculation results. The System Architecture section describes this structure and explains the relationships between the components to achieve the complete functionality of the system. This is a high level overview of how responsibilities of the system are partitioned and then assigned to components. The roles or responsibilities of each component are described, along with how they collaborate with each other. The main purpose is to gain a general understanding of how and why the system was decomposed, and how the individual components work together. Diagrams are particularly helpful here. The System Architecture section should also discuss any critical issues and trade-offs that were considered during the component design. For example, if other architectures were considered, it may be useful to explain why they were not selected. Section 3: Data Design This section describes how the information domain of each system is transformed into data structures. For example, the rulesets in the Compliance Manager rely on enumerated lists of properties of building materials, heating/cooling equipment, lighting, and other entities. The data design should show how these properties 2013 Residential Compliance Software Development Plan 16 are stored, processed and organized. This is particularly important for rulesets, because of the precedence and dependencies they can exhibit. Where applicable, a data dictionary should also be included in this section. This is a list of database tables, fields, keys, and indices. Important fields should be defined. Section 4: Component Design This section provides a detailed description of each software component. Diagrams showing the details of component structure, behavior, or information/control flow may be included. The description should cover any applicable software component attributes (some of which may be adequately described solely by pseudocode). In effect, this section translates the use cases and system requirements in the Functional Requirements into flowcharts or their textual equivalent. The discussion provided should cover the following software component attributes: Classification – the kind of component, such as a subsystem, module, class, package, function, file, etc. Responsibilities – the primary responsibilities and/or behavior of this component. What does this component accomplish? What roles does it play? What kinds of services does it provide to its clients? Constraints – any relevant assumptions, limitations, or constraints for this component. This should include constraints on timing, storage, or component state, and might include rules for interacting with this component (encompassing preconditions, postconditions, invariants, other constraints on input or output values and local or global values, data formats and data access, synchronization, exceptions, etc.) Composition – a description of the use and meaning of the subcomponents that are a part of this component. Uses/Interactions – a description of this component’s collaborations with other components. What other components is this entity used by? What other components does this entity use (this would include any side-effects this entity might have on other parts of the system)? This concerns the method of interaction as well as the interaction itself. Resources – a description of any and all resources that are managed, affected, or needed by this entity. Resources are entities external to the design such as memory, processors, printers, databases, or a software library. This should include a discussion of any possible race conditions and/or deadlock situations, and how they might be resolved. Processing – a description of precisely how this components goes about performing the duties necessary to fulfill its responsibilities. This should encompass a description of any algorithms used; changes of state; relevant time or space complexity; concurrency; methods of creation, initialization, and cleanup; and handling of exceptional conditions. Interface/Exports – the set of services (resources, data, types, constants, subroutines, and exceptions) that are provided by this component. The precise definition or declaration of each such element should be present, along with comments or annotations describing the meanings of values, parameters, etc. For each service element described, include (or provide a reference) in its discussion to a description of its important software component attributes (Classification, Definition, Responsibilities, Constraints, Composition, Uses, Resources, Processing, and Interface). 2013 Residential Compliance Software Development Plan 17 Section 5: User Interface Design Describe the functionality of the software from the user’s perspective. Explain how the user will be able to use the software to complete all the expected features and the feedback information that will be displayed for the user. For example, it is anticipated that the CEC User Interface will feature a hierarchical design. Navigation within the hierarchy elements should be described. Screen layout guidelines should be presented, using example screenshots if possible. 2013 Residential Compliance Software Development Plan 18 6 QUALITY ASSURANCE PROCESS 6.1 QA PLAN DESCRIPTION A single Quality Assurance Plan will be developed for the RCS project. This plan specifies procedures for requirements and design review, software testing procedures, acceptance criteria, and user documentation review. The purpose of the QA plan is to ensure that the RCS deliverables conform to their functional and design requirements, and the overall goals of the Energy Commission and PAC. It defines the standards and procedures for appraising the development work, and establishes the goals, processes, and responsibilities required to implement effective quality assurance functions for the project. The QA plan provides the framework necessary to ensure a consistent approach to software quality assurance throughout the project life cycle. It defines the approach that will be used by the RCS team to monitor and assess development processes and products to provide objective insight into the maturity and quality of the software. The QA plan will also describe the procedures for reviewing and approving all user documentation. Such documentation covers installation, operation and maintenance of the software. The key topic areas for the QA plan are discussed in more detail in the following sections. 6.2 REVIEWS AND AUDITS The Functional Requirements and Software Specifications documents described in preceding sections need both informal and formal reviews. Informal reviews may include: Design walk-throughs – after an initial draft of the Functional Requirements or Software Specifications document, a walk-through of the contents by both the development team and the project manager will review the design, use cases, etc. Review comments are recorded and the development team will ensure that all the action items are addressed before a formal review. Code walk-throughs – if the Software Specifications contain pseudo-code or the equivalent, a peer and project manager review of this code is suggested. Review comments are recorded and the development team will ensure that all the action items are addressed. The formal review of each document is simply the final review before release to the Energy Commission and PAC. The project manager ensures that all necessary revisions have been made. 6.3 TOOLS AND TECHNIQUES This is primarily a list of the management, development, testing, and maintenance tools used in the RCS project. These should include: Project planning, e.g., MS Project; Development environment, e.g., Visual Studio; Programming languages; Bug tracking tool; Software testing tool; 2013 Residential Compliance Software Development Plan 19 6.4 Source code management. TESTING STRATEGY The RCS components require a range of testing approaches. The CSE is mostly comprised of complex simulation algorithms, which are validated by their numerical results. The CEC User Interface is dominated by screen interactions, so navigation testing is key. Each software component will need a different strategy to detect failures and assess whether it has met its functional requirements. The following types of testing will be applied as needed for each deliverable. 6.4.1 UNIT TESTING The target of unit testing is a small piece of source code. This is typically one function at a time, specified by a developer. The objective is to test each logic path and every line of code to identify and fix bugs early in the construction phase. Where applicable, pre-defined testing scripts including inputs and expected outputs will be used. Unit testing is usually performed by the developers. 6.4.2 INTEGRATION TESTING Integration testing is performed on several software components together. The objective is to test the interactions between modules, and ultimately leads to full end-to-end system tests. Integration test scripts are often designed from the use cases in the Functional Requirements document. “Stress” or high volume testing for large number of users or computationally complex cases are executed during this phase. 6.4.3 ACCEPTANCE TESTING Acceptance testing is performed by representative users independent from the development team. The objective is to determine if the software meets the functional requirements. Acceptance tests should work the whole system. As with integration tests, the scripts are usually based on use cases. 6.4.4 REGRESSION TESTING Regression tests are designed to catch any new bugs introduced by fixes or enhancements. These are end-to-end tests which should be run every time the software changes. In most cases, these will be the larger of the integration test scripts. After rerunning, the results are compared to the expected outputs or behavior to ensure that the unchanged segments function properly. 6.5 USER DOCUMENTATION User documentation includes, where applicable: User manuals; Quick start guides; On-line help; Training materials. 2013 Residential Compliance Software Development Plan 20 The QA plan will describe the roles and procedures for reviewing and approving all user documentation. 2013 Residential Compliance Software Development Plan 21 7 SOFTWARE MAINTENANCE PLAN [TO BE COMPLETED.] 7.1 ON-GOING MAINTENANCE TASKS 7.2 ON-GOING RELEASE STRATEGY 2013 Residential Compliance Software Development Plan 22 8 SOFTWARE DISTRIBUTION PLAN 9 [TO BE COMPLETED.] 9.1 OPEN SOURCE LICENSING 9.2 PLUG-IN SOFTWARE DISTRIBUTION 9.3 ON-GOING RELEASE DISTRIBUTION 2013 Residential Compliance Software Development Plan 23 10 REFERENCES [TO BE COMPLETED.] 10.1 REFERENCE DOCUMENTS References to key documents including engineering methodology, CEC RFQ, interface guidelines, etc. 10.2 ACRONYMS 2013 Residential Compliance Software Development Plan 24