A Project Document of the Advanced Transportation Controller Joint Committee APIVS SRS v02.03 Advanced Transportation Controller (ATC) Application Programming Interface (API) Validation Suite (APIVS) Software Requirements Specification (SRS) November 20, 2014 ConOps in support of: USDOT Work Order 14-0801, Tasks 7-8 For approval by: Members of the API Working Group For use by: Siva Narla, Chief Engineer and ITS Standards Manager Institute of Transportation Engineers George Chen and Douglas Tarico, Co-Chairs ATC API Working Group Ralph W. Boaz, Project Manager and Systems Engineer ATC API Validation Suite Project Members of the ATC API Working Group Consulting Team for the ATC API Reference Implementation Project Prepared by: Ralph W. Boaz, Project Manager and Systems Engineer Copyright 2014 AASHTO/ITE/NEMA. All rights reserved. Document1 Page 1 of 20 APIVS SRS v02.03 CHANGE HISTORY DATE 05/13/10 05/21/10 06/17/14 07/16/14 07/25/14 11/20/14 Document1 NOTE Initial Draft WGD Version 01.00. Version 01.01 includes changes from API WG Telecon 05/21/10. Version 02.00 Update for the API Reference Implementation Project. Version 02.01 Update per the API WG Walkthrough 06/26/14 and 07/01/14. Version 02.02 Update per the API WG Teleconference 07/23/14. Version 02.03 Updates for USDOT approved re-scope of the project which provides for a fixtureless test environment. Page 2 of 20 APIVS SRS v02.03 NOTICE Joint NEMA, AASHTO and ITE Copyright and Intelligent Transportation Systems (ITS) Working Group These materials are delivered "AS IS" without any warranties as to their use or performance. AASHTO/ITE/NEMA AND THEIR SUPPLIERS DO NOT WARRANT THE PERFORMANCE OR RESULTS YOU MAY OBTAIN BY USING THESE MATERIALS. AASHTO/ITE/NEMA AND THEIR SUPPLIERS MAKE NO WARRANTIES, EXPRESSED OR IMPLIED, AS TO NON-INFRINGEMENT OF THIRD PARTY RIGHTS, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AASHTO, ITE, NEMA, OR THEIR SUPPLIERS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY CLAIM OR FOR ANY CONSEQUENTIAL, INCIDENTAL, OR SPECIAL DAMAGES, INCLUDING ANY LOST PROFITS OR LOST SAVINGS ARISING FROM YOUR REPRODUCTION OR USE OF THESE MATERIALS, EVEN IF AN AASHTO, ITE, OR NEMA REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Some states or jurisdictions do not allow the exclusion or limitation of incidental, consequential, or special damages, or exclusion of implied warranties, so the above limitations may not apply to you. Use of these materials does not constitute an endorsement or affiliation by or between AASHTO, ITE, or NEMA and you, your company, or your products and services. If you are not willing to accept the foregoing restrictions, you should immediately return these materials. ATC is a trademark of NEMA/AASHTO/ITE. Document1 Page 3 of 20 APIVS SRS v02.03 CONTENTS 1 INTRODUCTION.............................................................................................................................. 5 1.1 1.2 1.3 1.4 1.5 2 OVERALL DESCRIPTION .............................................................................................................. 9 2.1 2.2 2.3 2.4 2.5 2.6 3 Purpose ............................................................................................................................... 5 Scope .................................................................................................................................. 5 Definitions, Acronyms and Abbreviations ........................................................................... 5 References .......................................................................................................................... 8 Document Organization ...................................................................................................... 9 Product Perspective ............................................................................................................ 9 Product Functions ............................................................................................................. 12 User Characteristics .......................................................................................................... 12 Constraints ........................................................................................................................ 13 Assumptions ...................................................................................................................... 13 Apportioning of Requirements .......................................................................................... 13 SPECIFIC REQUIREMENTS ........................................................................................................ 13 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 No Cost Distribution .......................................................................................................... 13 Open Source ..................................................................................................................... 13 ITE Approved Software License ....................................................................................... 14 Unrestricted Use by Users ................................................................................................ 14 Redistribution of Modified Source Code ........................................................................... 14 No Cost Redistributed APIVS Source Code ..................................................................... 14 Testing Environment ......................................................................................................... 14 C Programming Language ................................................................................................ 14 Source Code Quality ......................................................................................................... 14 XML Scripting Language ................................................................................................... 14 Interpreted Test Scripts ..................................................................................................... 14 Run All Tests ..................................................................................................................... 14 Run Selected Tests ........................................................................................................... 14 Continuous Loop ............................................................................................................... 15 Conformance Indication .................................................................................................... 15 Nonconformance Indication .............................................................................................. 15 Detailed Log ...................................................................................................................... 15 Summary Result ................................................................................................................ 15 Output Options .................................................................................................................. 15 XML Output Files .............................................................................................................. 15 Front Panel User Interface (FPUI) Library Testing ........................................................... 15 Field I/O (FIO) Library Testing .......................................................................................... 16 Time of Day (TOD) Library Testing ................................................................................... 17 Multiple and Concurrent Applications ............................................................................... 17 APPENDICES ............................................................................................................................................. 18 Appendix A: Needs-to-Requirements Traceability Matrix (NRTM) ......................................... 18 Document1 Page 4 of 20 APIVS SRS v02.03 1 INTRODUCTION This Software Requirements Specification (SRS) is for the test software referred to as the Advanced Transportation Controller (ATC) Application Programming Interface (API) Validation Suite (APIVS) software. It is being developed as part of the “Reference Implementation of ATC 5401 Application Programming Interface (API) Standard Version 2” project funded by the USDOT Contract Number DTFH61-11-D-00052, Work Order T-13003 (referred to as the APIRI project). This section provides an introduction for the including subsections on Purpose; Scope; Definitions, Acronyms, and Abbreviations; References; and Overview. 1.1 Purpose This SRS establishes the requirements for software that will be used to test and validate that the APIRI software being developed as part of the APIRI project conforms to the ATC 5401 Standard (see Section 1.4 References). It also serves as a foundation for developing a Software Design Description (SDD, see Section 1.4). The SRS provides a common understanding of the APIVS software requirements for: a) The USDOT Intelligent Transportation Systems (ITS) Joint Program Office (JPO) who is sponsoring the work and requires the use of a formal software development process; b) The consulting team contracted to develop the software described; c) The consultants, manufacturers, and public transportation professionals who participate in the API Working Group (WG) who provide domain expertise, quality assurance, testing assistance and ultimately the maintenance of the software; and d) The transportation industry as a whole that will depend upon this software to test implementations of the ATC 5401 Standard resident on ATC units. 1.2 Scope This SRS establishes the requirements of the APIVS software based on the user needs identified in the APIVS Concept of Operations (ConOps) (see Section 1.4). The purpose for this software is to test the APIRI software that is being developed as part of the APIRI project. The APIVS is not intended to test any other aspect of the ATC unit such as memory, CPU performance, the Linux environment, or application programs. Some of the benefits of the APIVS include: a) Impartial testing common to the entire industry; b) Greater user confidence and faster market penetration of ATC units with APIRI software as manufacturers have a means to prove conformance to the ATC 5401 Standard; c) A tool for agencies to reference in their procurement processes and specifications; d) Increased reliability of ATC units with APIRI software; e) Increased portability and interoperability of application programs on ATC units; and f) A common source code for test software that can be expanded or enhanced when a new version of the ATC 5401 Standard is produced. 1.3 Definitions, Acronyms and Abbreviations Term AASHTO Definition American Association of State Highway and Transportation Officials API Application Programming Interface Document1 Page 5 of 20 APIVS SRS v02.03 Term API Utilities APIRI Software APIRI Project APIVS Software Application Program ATC ATC Device Drivers Definition API software that is used for setting system-wide purposes on an ATC controller unit. API Reference Implementation (software). API software developed as part of the ATC APIRI Project. Entire project managed by ATC APIRI PMP v01.01 Project Management Plan (PMP) for the Advanced Transportation Controller (ATC) Application Programming Interface (API) Reference Implementation Project including software, hardware and documentation. API Validation Suite Software Any program designed to perform a specific function directly for the user or, in some cases, for another application program. Examples of application programs include word processors, database programs, Web browsers and traffic control programs. Application programs use the services of a computer's O/S and other supporting programs such as an application programming interface. Advanced Transportation Controller BSP Low-level software not included in a typical Linux distribution that is necessary for ATC-specific devices to operate in a Linux O/S environment. Bill of Materials. A list of the raw materials, sub-assemblies, intermediate assemblies, sub-components, parts and the quantities of each needed to manufacture an end product. Software usually provided by processor board manufacturers which provides a consistent software interface for the unique architecture of the board. In the case of the ATC, the Board Support Package also includes the O/S See Board Support Package ConOps Concept of Operations CPU FIO Central Processing Unit. A programmable logic device that performs the instruction, logic and mathematical processing in a computer. A software routine that links a peripheral device to the operating system. It acts like a translator between a device and the application programs that use it. Field Input and Output FPUI Front Panel User Interface H/W Hardware I/O Input/Output IEC International Electrotechnical Commission IEEE Institute of Electrical and Electronics Engineers ISO International Organization for Standardization ITE Institute of Transportation Engineers ITS Intelligent Transportation Systems JC Joint Committee BOM Board Support Package Device Driver Document1 Page 6 of 20 APIVS SRS v02.03 Term JPO Definition Joint Program Office Linux Low-level software that is freely available in the Linux community for use with common hardware components operating in a standard fashion. The Unix-like operating system kernel that was begun by Linus Torvalds in 1991. The Linux Kernel provides general O/S functionality. This includes functions for things typical in any computer system such as file I/O, serial I/O, interprocess communication and process scheduling. It also includes Linux utility functions necessary to run programs such as shell scripts and console commands. It is generally available as open source (free to the public). The Linux Kernel referenced in this standard is defined in the ATC Controller Standard Section 4.3.5, Appendix A and Appendix B. A virtual device driver that loops back the output ports to a device to the input ports from a device without actually going to through the physical device. A drawing to scale of a machine, machine component, or device from which dimensions can be taken for manufacturing. Not Applicable Linux Kernel Loopback Driver Mechanical Drawing N/A Operational User O/S A technician or transportation engineer who uses the controller to perform its operational tasks. Operating System PCB Printed Circuit Board PMP Project Management Plan RI Reference Implementation RTC Real-Time Clock SDD Software Design Document or Software Design Description SDO Standards Development Organization Schematic Diagram A diagram which shows, by means of graphic symbols, the electrical connections and functions of a specific circuit arrangement. Systems Engineer SE Software Validation SOW The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements. Statement of Work SRS Software Requirements Specification S/W Software TBD To Be Determined Tester TFCS A user developer, test engineer or test technician capable of operating the API Validation Suite described by this document. Transportation Field Cabinet System TOD Time of Day Document1 Page 7 of 20 APIVS SRS v02.03 Term TOPR Definition Task Order Proposal Request US United States USDOT United States Department of Transportation XML Extensible Markup Language User Developer A software developer that designs and develops programs for controllers. A step-by-step presentation by the author of a document in order to gather information and to establish a common understanding of its content. Working Group Walkthrough WG 1.4 References The documents referenced in this SRS are listed below. Institute of Electrical and Electronics Engineers, IEEE Std 830-1998, IEEE Recommended Practice for Software Requirements Specifications. IEEE, 1998. http://standards.ieee.org/index.html Institute of Electrical and Electronics Engineers, IEEE Std 1016-1998, IEEE Recommended Practice for Software Design Descriptions. IEEE, 1998. http://standards.ieee.org/index.html Institute of Transportation Engineers, API Reference Implementation Project Open Source Software (OSS) Concept Paper. Institute of Transportation Engineers, 12 June 2014. http://www.ite.org/standards/index.asp Institute of Transportation Engineers, Advanced Transportation Controller (ATC) Application Programming Interface (API) Validation Suite (APIVS) Concept of Operations (ConOps) v02.04. ATC Joint Committee, 20 November 2014. http://www.ite.org/standards/index.asp Institute of Transportation Engineers, ATC 5401 Application Programming Interface (API) Standard for the Advanced Transportation Controller (ATC) v02. ATC Joint Committee, 15 September 2013. http://www.ite.org/standards/index.asp Institute of Transportation Engineers, ATC APIRI PMP v01.02 Project Management Plan (PMP) for the Advanced Transportation Controller (ATC) Application Programming Interface (API) Reference Implementation Project. ATC Joint Committee, 5 November 2014. http://www.ite.org/standards/index.asp Institute of Transportation Engineers, Intelligent Transportation System (ITS) Standard Specification for Roadside Cabinets v01.02.17b. ATC Joint Committee, 16 November 2006. http://www.ite.org/standards/index.asp Institute of Transportation Engineers, User Comment Draft ATC 5201 Advanced Transportation Controller (ATC) Standard Version 06.10. ATC Joint Committee, 30 July 2012. http://www.ite.org/standards/index.asp Document1 Page 8 of 20 APIVS SRS v02.03 International Organization for Standardization, ISO/IEC 9899:2011 Programming Language C. ISO, 8 December 2011. National Electrical Manufacturers Association, NEMA Standards Publication TS 2-2003 v02.06 Traffic Controller Assemblies with NTCIP Requirements. NEMA, 2003. United States Department of Transportation. Task Order Proposal Request (TOPR) Task Order # T-13003, Reference Implementation of ATC 5401 Application Programming Interface (API) Standard Version 2 (ATC 5401 v02) – ITE Support. USDOT, 1 July 2013. 1.5 Document Organization The organization of this SRS is based on IEEE Std 830-1998, IEEE Recommended Practice for Software Requirements Specifications (see Section 1.4). It made up of four sections and appendices. Section 1, Introduction, provides an overview of the entire document. Section 2, Overall Description, provides background information necessary to establish the context for the requirements. Section 3, Specific Requirements, establishes the requirements that must be satisfied by the APIVS software. Appendix A contains traceability matrix showing the relationship of user needs established in the APIVS ConOps to the requirements in this SRS. 2 OVERALL DESCRIPTION This section describes the general factors that affect the APIVS and its requirements. It includes subsections on Product Perspective; Product Features; User Characteristics; Constraints; Assumptions and Dependencies; and Apportioning of Requirements. The terms “function” or “functions” used in this section refer to software functions or software function calls. If a general functionality or capability is intended, an effort was made to use other terms. 2.1 Product Perspective The Advanced Transportation Controller (ATC) standards program has been developed to meet the current and future needs for transportation field equipment. The goals of the program are to provide for transportation field equipment that is open architecture, modular, multi-process, multi-application, can grow with technology and can be used to upgrade existing transportation field cabinet systems (TFCSs). At the heart of this program are the ATC 5201 Advanced Transportation Controller Standard and the ATC 5401 Application Programming Interface Standard. ATC 5201 specifies a controller architecture where the computational components reside on a single (5” x 4”) printed circuit board (PCB), called the “Engine Board,” with standardized connectors and pinout. It is made up of a central processing unit (CPU), a Linux operating system (O/S) and device drivers, memory, external and internal interfaces, and other associated hardware necessary to create an embedded transportation computing platform. ATC 5401 defines both user interface facilities and C programming language interfaces for ATC units that are not provided through ATC 5201 or the standard Linux O/S. The user interface facilities of ATC 5401 include a windowing system that allows operational users to interact with concurrently operating application programs (which in turn have their own user interfaces) and system-wide configuration management utilities. The C programming language interfaces of ATC 5401 provide C language function definitions that allow software developers to create application programs that share resources of the ATC unit including the front panel, field input/output (I/O) devices and real-time clock. When used with the Linux O/S and device drivers of the Engine Board, ATC 5401 provides for a software environment that allows application programs to be portable (runs on any ATC manufacturer’s equipment), compatible (will run concurrently with other application programs), and interchangeable (assuming they perform the same function) on a single ATC unit. Document1 Page 9 of 20 APIVS SRS v02.03 Figure 1 illustrates the layered architecture of the ATC software. The “Linux O/S and Device Drivers” reflects a specification of the Linux operating system defined in the ATC Board Support Package (BSP) (see ATC 5201 Standard, Appendix A and Appendix B). This includes functions for things typical in any computer system such as file I/O, serial I/O, interprocess communication and process scheduling. It also includes the specification of the device drivers necessary for the Linux O/S to operate on the ATC hardware. “API S/W” refers to software defined by the ATC 5401 Standard. Within the context of the APIRI project, the APIRI software being developed is the API software in the picture. As shown in Figure 1, user developers, operational users and application programs use the API software to interface to ATC units. User Developer Operational User Application Software Interface and Behavior Defined By ATC 5401 Standard Hardware and O/S Defined By ATC 5201 Standard USERS APPLICATION LAYER API Software API SOFTWARE LAYER Linux Operating System and Device Drivers ATC BOARD SUPPORT PACKAGE LAYER HARDWARE LAYER Figure 1. Layered organization of ATC software. In order to perform a consistent software validation of an API software implementation, the software under test must be isolated (to the extent possible) from other software or systems that may unpredictably influence its operation. The Engine Board based architecture specified in the ATC 5201 standard is ideal for this purpose by isolating the computational components and the software environment of the controller unit from other components of the controller unit. The APIVS test environment proposed is shown in Figure 2. It consists of an ATC unit and a personal computer (PC). The PC interface is necessary to load test software, initiate tests, and extract results. It is possible that the PC can also serve in the operation of some tests. Details of the operation of the test environment and tests are to be documented according to a test plan. Document1 Page 10 of 20 APIVS SRS v02.03 CONSOLE CABLE ATC Figure 2. API test environment uses a personal computer connected to the console port of the controller. The layered software environment for the APIVS software is similar to the layered organization of the ATC software (see Figure 3). The APIVS takes the place of the Application Software in Figure 1. The user is now a Tester which may be a User Developer, Test Engineer or Test Technician. The APIVS resident on the Engine Board exercises the API software and records results. Special device drivers are necessary for the APIVS to perform testing without requiring the physical connectors on the controller unit. Tester USERS API Validation Suite APPLICATION LAYER API Software APIVS Loopback Drivers LINUX O/S & Device Drivers API SOFTWARE LAYER ATC BOARD SUPPORT PACKAGE LAYER HARDWARE LAYER Figure 3. The layered software environment for the APIVS. 2.1.1 System Interfaces The test environment described in Section 2.1 and the APIVS is self-contained. There are no other system interfaces necessary. 2.1.2 User Interfaces Document1 Page 11 of 20 APIVS SRS v02.03 A PC running a HyperTerminal program may serve as a console in the operation of some tests. The intent of the APIVS is to limit human interaction during the test. Any specific user needs for user interfaces are identified in Section 2.2. 2.1.3 Hardware Interfaces The only physical interface is the connection of the PC and the ATC unit as identified in Section 2.1 . 2.1.4 Software Interfaces The APIVS will operate on the ATC Engine Board utilizing standard Linux interprocess communications as is determined necessary by the contractor. The APIVS will interface to the Engine Board via the API Software and the Linux environment defined in the ATC 5201 Standard. 2.1.5 Communications Interfaces A serial or Ethernet connection may be used between the PC and the ATC unit to load the APIVS, initiate tests, and extract results. This is already provided through the Linux environment of the Engine Board and the serial and Ethernet connectors on the ATC unit. 2.1.6 Memory The APIVS must be able to operate on a controller unit with memory limits described in the ATC 5401 Standard.. 2.1.7 Operations There are no additional operational needs. 2.2 Product Functions The major product functions of the APIVS software are as follows: 2.3 Test Configuration. This product function of the software provides for the selection of tests to be performed and any user selectable options. Test Execution. This product function executes the tests that exercise the API software. TFCS Response. This product function responds to the execution of the API software in a fashion representative of an ATC unit in a transportation field cabinet system (TFCS). This simulation of the TFCS environment needs to be at a level sufficient for the purposes of testing and is not meant to be a complete cabinet simulator. [Guidance: Flat files that contain the messaging that needs to be used in a test is suggested.] Test Results. This product function provides the results of the tests that were executed. User Characteristics A user developer, test engineer or test technician capable of operating the API Validation Suite described by this document. 1) Windows operating systems; 2) Understands the organization and use of the Windows file system; 3) Able to use communications services Telnet and FTP; Document1 Page 12 of 20 APIVS SRS v02.03 4) Experienced handling electronic equipment, circuit boards and cabling; 5) Able to follow detailed test steps and procedures; and 6) Capable of keeping careful records and organizing test results. Additional attributes of the user may include: 1) Ability to generate test scenarios, test cases and write test scripts and 2) Software development skills such as – Ability to design, construct, test, and maintain the software systems; – Understands the processes and steps to compile, link and load software for embedded systems; – Proficient at writing software in the C programming language; and – Experienced with the Linux Operating System. 2.4 Constraints The following operational policies and constraints have been identified: a) Portions of the APIVS software will be resident on an ATC Engine Board with operational API software. These portions will need to be compatible with the Board Support Package as defined by the ATC 5201 Standard. b) Since ATC Engine Boards may have been implemented using a variety of processors, the APIVS software that is to be resident on the Engine Board will need to be compiled, linked and loaded in a manner compatible with the processor on the Engine Board. 2.5 Assumptions The APIVS software tests conformance of API software to the ATC 5401 Standard. If this standard is modified, the APIVS software will have to be updated accordingly. 2.6 Apportioning of Requirements There are no requirements apportioned as of the date of this SRS. 3 SPECIFIC REQUIREMENTS This section defines the requirements for the APIVS. Each requirement is listed with a separate paragraph number and included in a traceability matrix in Appendix A. The terms “function” or “functions” used in this section refer to software functions or software function calls. If a general functionality or capability is intended other terms were used. 3.1 No Cost Distribution The APIVS software shall not have any content or component that requires a fee for the distribution of its source code and documentation. 3.2 Open Source The APIVS software shall be available to anyone through an Open Source Software (OSS) environment consistent with the USDOT approved API Reference Implementation Project Open Source Concept Paper (see Section 1.4). Document1 Page 13 of 20 APIVS SRS v02.03 3.3 ITE Approved Software License The APIVS software shall have all source code distributed using a software license that is approved by ITE. 3.4 Unrestricted Use by Users The APIVS software shall have a license that allows for unrestricted use by the software by users. 3.5 Redistribution of Modified Source Code All APIVS software source code shall be available under open source licensing terms (Gnu Public License) which require modifications and derived works to be distributed under the same terms. 3.6 No Cost Redistributed APIVS Source Code The APIVS software shall have a license that requires redistributed APIVS source code to be at no cost to users. 3.7 Testing Environment The APIVS software shall be operational within the test environment and testing approach described in Section 2.1. 3.8 C Programming Language The APIVS software shall be written using the C programming language as described by ISO/IEC 9899:2011” (see Section 1.4). 3.9 Source Code Quality The APIVS software shall be written in a fashion consistent with the GNU Coding Standards (see Section 1.4). 3.10 XML Scripting Language The APIVS software shall use an XML (Extensible Markup Language) based scripting language to define tests. 3.11 Interpreted Test Scripts The APIVS software shall execute XML defined tests without recompilation of the APIVS software. 3.12 Run All Tests The APIVS software shall have a user option to run all of the tests available in the test suite. 3.13 Run Selected Tests The APIVS software shall have a user option to run a selected subset of the tests that are available in the test suite. Document1 Page 14 of 20 APIVS SRS v02.03 3.14 Continuous Loop The APIVS software shall have a user option to run selected subsets of tests in the test suite sequentially in a continuous loop. 3.15 Conformance Indication The APIVS software shall return a value of 0 when a set of tests selected from tests available in the test suite are found to conform to the ATC 5401 Standard. 3.16 Nonconformance Indication The APIVS software shall return value of -1 when a set of tests selected from tests available in the test suite are found not to conform to the ATC 5401 Standard. 3.17 Detailed Log The APIVS software shall have a user option to produce a detailed log of the tests performed including: The library, function and arguments on an API function call and the return values; If a function fails, guidance to the user on the cause of the failure; The test being executed; Line # in the APIVS source code; Step in the test; and Time stamps for each step in the test. 3.18 Summary Result The APIVS software shall have a summary result that lists each test performed and the conformance/nonconformance result. 3.19 Output Options The APIVS software shall have output options as follows: a) Conformance/nonconformance Indication only; b) Conformance/nonconformance indication and summary result; and c) Conformance/nonconformance indication, summary result and all logs and traces. 3.20 XML Output Files The APIVS software shall output any summary, log or traces into a file in an XML format. 3.21 Front Panel User Interface (FPUI) Library Testing 3.21.1 FPUI Library C Function Present The APIVS software shall validate that each FPUI function defined in Section 4.1 of the ATC 5401 Standard is present in the API software. 3.21.2 FPUI Library C Function Conforming Arguments The APIVS software shall validate that each FPUI function has the correct arguments as defined in Section 4.1 of the ATC 5401 Standard. Document1 Page 15 of 20 APIVS SRS v02.03 3.21.3 FPUI Library C Function Error Checking The APIVS software shall validate that each FPUI function returns the correct error codes for the error conditions defined in Section 4.1 of the ATC 5401 Standard. 3.21.4 FPUI Library C Function Argument Boundary Checking The APIVS software shall validate that the boundaries of the arguments to the FPUI functions operate as defined in Section 4.1 of the ATC 5401 Standard. 3.21.5 FPUI Library Composite Testing The APIVS software shall validate that each FPUI function operates correctly under typical operating conditions with other API functions using at least one composite test. 3.21.6 Front Panel Manager Window Testing The APIVS software shall perform predefined tests that validate that the Front Panel Manager Window operates per the requirements established in Section 3.1.1.1 of the ATC 5401 Standard. 3.21.7 ATC Configuration Window Testing The APIVS software shall perform predefined tests that validate that the ATC Configuration Window operates per the requirements established in Section 3.2.1 of the ATC 5401 Standard. 3.21.8 Configuration Utility Testing The APIVS software shall perform predefined tests that validate that the Configuration Utilities operate per the requirements established in Sections 3.2.2 through 3.2.6 of the ATC 5401 Standard. 3.22 Field I/O (FIO) Library Testing 3.22.1 FIO Library C Function Present The APIVS software shall validate that each FIO function defined in Section 4.1 of the ATC 5401 Standard is present in the API software. 3.22.2 FIO Library C Function Conforming Arguments The APIVS software shall validate that each FIO function has the correct arguments as defined in Section 4.1 of the ATC 5401 Standard. 3.22.3 FIO Library C Function Error Checking The APIVS software shall validate that each FIO function returns the correct error codes for the error conditions defined in Section 4.1 of the ATC 5401 Standard. 3.22.4 FIO Library C Function Argument Boundary Checking The APIVS software shall validate that the boundaries of the arguments to the FIO functions operate as defined in Section 4.1 of the ATC 5401 Standard. Document1 Page 16 of 20 APIVS SRS v02.03 3.22.5 FIO Library Composite Testing The APIVS software shall validate that each FIO function operates correctly under typical operating conditions with other API functions using at least one composite test. 3.22.6 Field I/O Manager Testing The APIVS software shall perform predefined tests that validate that the Field I/O Manager operates per the requirements established in Section 3.1.2 of the ATC 5401 Standard. 3.23 Time of Day (TOD) Library Testing 3.23.1 TOD Library C Function Present The APIVS software shall validate that each TOD function defined in Section 4.1 of the ATC 5401 Standard is present in the API software. 3.23.2 TOD Library C Function Conforming Arguments The APIVS software shall validate that each TOD function has the correct arguments as defined in Section 4.1 of the ATC 5401 Standard. 3.23.3 TOD Library C Function Error Checking The APIVS software shall validate that each TOD function returns the correct error codes for the error conditions defined in Section 4.1 of the ATC 5401 Standard. 3.23.4 TOD Library C Function Argument Boundary Checking The APIVS software shall validate that the boundaries of the arguments to the TOD functions operate as defined in Section 4.1 of the ATC 5401 Standard. 3.23.5 TOD Library Composite Testing The APIVS software shall validate that each TOD function operates correctly under typical operating conditions with other API functions using at least one composite test. 3.24 Multiple and Concurrent Applications The APIVS software shall perform predefined tests that validate that multiple application programs, running concurrently, can exercise the Front Panel Manager Window, the Field I/O Manager functions and the Time of Day functions simultaneously. [Guidance: This requirement could be met with multiple subprocesses or threads of the same test application program.] Document1 Page 17 of 20 APIVS SRS v02.03 APPENDICES Appendix A: Needs-to-Requirements Traceability Matrix (NRTM) The following table maps the user needs identified in the APIVS Concept of Operations (see Section 1.4) to software requirements in this SRS. The “ID” and “Description” columns contain the section number and section name of within the respective documents. This is a one-to-many relationship where each user need is addressed by at least one requirement. There is additional column which lists the method to be used to determine that a requirement has been met by the APIVS software. The allowable methods are: Inspection – The visual verification of a requirement, such as a color, a size, and model number; Analysis – The mathematical analysis of collected data to verify a requirement; Demonstration – The use of the software itself to verify the expected output, such as a response to an operator input; and Test – Similar to a demonstration except test software or test equipment is used. ConOps User Need ID ConOps User Need Description 5.3.1 Open Source Software (OSS) Environment 5.3.2 Unrestricted Use SRS Req ID SRS Requirement Description Req Verification Method 3.1 No Cost Inspection 3.2 Open Source Inspection 3.3 ITE Approved License Inspection Unrestrictive Use by Users Inspection 3.4 3.5 5.3.3 Redistribution 3.6 Inspection Inspection 5.3.4 Testing Environment 3.7 Testing Environment Demonstration 5.3.5 C Programming Language 3.8 C Programming Language Inspection 5.3.6 Source Code Quality 3.9 C Source Code Quality Inspection 3.10 Extensible XML Scripting Language Inspection 5.3.7 3.11 Interpreted Test Scripts Demonstration 3.12 Run All Tests Demonstration 3.13 Run Selected Tests Demonstration 5.3.8 Document1 Redistribution of Modified Source Code No Cost Redistributed APIVS Source Code Selectable Tests Page 18 of 20 APIVS SRS v02.03 ConOps User Need ID ConOps User Need Description SRS Req ID SRS Requirement Description Req Verification Method 5.3.9 Continuous Loop 3.14 Continuous Loop Demonstration 3.15 Pass / Fail Indications Conformance Indication Demonstration 5.3.10 3.16 Nonconformance Indications Demonstration 3.17 Detailed Log Demonstration 3.18 Summary Result Demonstration 3.19 Output Options Demonstration 3.20 XML Output Files Demonstration 3.21.1 FPUI Library C Function Present Test 5.3.11 5.3.12.1 Logging Option API FPUI Library C Functions Completeness Testing 3.21.2 3.21.3 5.3.12.2 5.3.12.3 5.3.12.4 5.3.13.1 API FPUI Library C Functions Correctness Testing API Front Panel Manager Software Testing API FIO Library C Functions Correctness Testing Test 3.21.5 FPUI Library Composite Testing Test 3.21.6 Front Panel Manager Window Testing Test 3.21.7 ATC Configuration Window Testing 3.21.8 Configuration Utility Testing 3.22.1 FIO Library C Function Present FIO Library C Function Conforming 3.22.2 3.22.4 3.22.5 Document1 Test FPUI Library C Function Argument Boundary Checking API Utility Software Testing API FIO Library C Functions Completeness Testing Test 3.21.4 3.22.3 5.3.13.2 FPUI Library C Function Conforming Arguments FPUI Library C Function Error Checking Arguments FIO Library C Function Error Checking FIO Library C Function Argument Boundary Checking FIO Library Composite Testing Test / Demonstration Test / Demonstration Test Test Test Test Test Page 19 of 20 APIVS SRS v02.03 ConOps User Need ID ConOps User Need Description SRS Req ID SRS Requirement Description Req Verification Method 5.3.13.3 API FIO Manager Software Testing 3.22.6 Field I/O Manager Testing Test API TOD Library C Functions Completeness Testing 3.23.1 TOD Library C Function Present TOD Library C Function Conforming Test 5.3.14.1 3.23.2 3.23.3 5.3.14.2 API TOD Library C Functions Correctness Testing 3.23.4 Arguments TOD Library C Function Error Checking TOD Library C Function Argument Test Test Test Boundary Checking 3.23.5 5.3.15 Multiple and Concurrent Applications 3.24 TOD Library Composite Testing Multiple and Concurrent Applications Test Test § Document1 Page 20 of 20