Defense Advanced Research Projects AgencyTagged Content List

Software Programming

Pushing the boundaries of computer coding, including language development

Showing 3 results for Programming + Systems RSS
The Department of Defense (DoD) increasingly relies on software systems to deliver needed functionality, capabilities, and security. However, the rapid pace of software innovation, evolving regulatory requirements, an ever-growing need for stronger system security, and other factors require continual updating and modernization efforts. These produce untenable increases in system complexity and shift the bulk of system costs and developer focus from design and development to maintenance. As this trend continues, the cost and effort required to maintain current systems might constrain DoD’s ability to develop new software-based capabilities.
Modern computing systems are incapable of creating sufficient security protections such that they can be trusted with the most sensitive data while simultaneously being exposed to untrusted data streams. In certain places, the Department of Defense (DoD) and commercial industry have adopted a series of air-gaps – or breaks between computing systems – to prevent the leakage and compromise of sensitive information.
Managing complexity is a central problem in software engineering. A common approach to address this challenge is concretization, in which a software engineer makes decisions based on a set of apparently or almost equivalent options to enable the resulting code to compile. Concretization makes the process of software development more controllable, allowing the engineer to define and implement an architecture, divide the development tasks into manageable parts, establish conventions to enable their integration, and integrate them into a cohesive software system.