Automatic Coding Standards Validation Tool
Navy SBIR 2020.1 - Topic N201-081
SSP - Mr. Michael Pyryt - firstname.lastname@example.org
Opens: January 14, 2020 - Closes: February 12, 2020 (8:00 PM ET)
AREA(S): Information Systems
PROGRAM: TRIDENT II (D5) in support of Strategic Systems Program (SSP) ACAT I
technology within this topic is restricted under the International Traffic in
Arms Regulation (ITAR), 22 CFR Parts 120-130, which controls the export and
import of defense-related material and services, including export of sensitive
technical data, or the Export Administration Regulation (EAR), 15 CFR Parts
730-774, which controls dual use items. Offerors must disclose any proposed use
of foreign nationals (FNs), their country(ies) of origin, the type of visa or
work permit possessed, and the statement of work (SOW) tasks intended for
accomplishment by the FN(s) in accordance with section 3.5 of the Announcement.
Offerors are advised foreign nationals proposed to perform on this topic may be
restricted due to the technical data under US Export Control Laws.
Develop and demonstrate an automatic static code analysis tool that can
dynamically adapt to changing Navy organizational software standards and will
incorporate Strategic Systems Program (SSP)-directed coding standards such as
prologue categories (e.g., authors, notes, description, argument list),
structured programming conventions, consistent indentation and comment
location, and identification of redundant source code.
Formal Navy software developments employ coding standards for C++ that are
required to be met to ensure the software is maintainable, readable, and
demonstratively of high quality. Currently these type of standards can only be
validated manually, which takes time and resources. As the organization moves
to an agile software development process that values the use of automation, an
automated static analysis tool for C++ is necessary to identify standards
Determine technical feasibility of automated static analysis of those standards
on C and C++ code, with a chosen/given set of versatile C and C++ standards.
Develop approaches to creating a tool that is easy to adapt to different C and
C++ coding standards and determine a mechanism for validating the automated
tool. Identify risks to the technical approach and develop Phase II plans that
include ways to mitigate those risks.
Produce and deliver prototype software and associated test cases. Work with the
Navy to fully understand the coding standards implemented and provide a draft
installation guide for Linux and Solaris systems and a user's guide. Work with
the Navy to troubleshoot the software and resolve implementation and execution
issues. Establish a feedback loop with NSWCDD for implementing changes due to
findings during prototype testing.
DUAL USE APPLICATIONS: Deliver software that can be dropped into NSWCDD
automated testing and development environment and distributed to other Navy
"Systems and Software Engineering - Systems Life Cycle Processes."
IEEE 15288, 2015.https://www.iso.org/standards/63711.html
Standard for Application of Systems Engineering on Defense Programs." IEEE
15288.1, 2014. https://standards.ieee.org/standard/15288_1-2014.html
"Standard for Technical Reviews and Audits on Defense Programs."
IEEE 15288.2, 2014. https://standards.ieee.org/findstds/standards/15288.2-2014.html
"Department of Defense Standard Practice: Documentation of Verification,
Validation, and Accreditation (VV&A) for Models and Simulations."
MIL-STD-3022 Chg. 1. https://www.scribd.com/document/136735764/MIL-STD-3022-Documentation-of-Verification-and-Validation
Automated Testing; Coding Standards; C/C++; Software Validation; Solaris/Linux;
Static Analysis; DevOps