Using Artificial Intelligence to Make Software 1000x Faster to build in Order to Keep Up with Evolving Threat

Abstract

Software makes it possible for analysts to analyze vastly greater amounts of data than they could without it. However, the threats we face and the kinds of data we have are changing faster than our ability to create and adapt software to analyze them. Thus, the great cost and complexity of developing software is an impediment to addressing the evolving threat. While the threat and our data about change weekly or monthly, it often takes months or years to produce new versions of software to address these changes. The reason for this is that software is very complex to produce. Even relatively simple pieces of software have dozens of components. For example, as figure 1 illustrates a web-based data analysis tool would need to integrate: a web server (e.g., Node.js), a database (e.g., P ostgrese), a text index (e.g., Elastic Search), web interface components (written using, e.g., HTML, CSS, JavaScript, React.js, and Handlebars), data visualizations (author using, e.g., d3.js). The developer team would need to use tools for editing code (e.g., Webstorm), managing code versions (e.g., git), and build management (e.g., Jenkins). To scale and secure the app they would need a caching system (e.g., Memcache) and a load balancer (e.g., Elastic Beanstalk), and various security and encryption tools. Each of these components involves learning a different set of skills and often a different programming language.

Document Details

Document Type
DoD Grant Award
Publication Date
Sep 30, 2019
Source ID
N000141912524

Entities

People

  • Nicholas Cassimatis

Organizations

  • Office of Naval Research
  • United States Navy

Tags

Fields of Study

  • Computer science

Readers

  • Database Systems and Applications
  • Software Engineering.
  • Strategic Security Studies

Technology Areas

  • AI & ML
  • AI & ML - DoD AI Strategy