Systems Engineering and Architecture
Systems Engineering and Architecture
The purpose of Software Engineering (SWE) is to provide highly disciplined processes for software and system architecture, design, and development to ensure quality software for the warfighter. Properly planned SWE processes can mitigate cost and schedule risks by allowing programs to identify and remove software-related technical debt early in development. This early action can increase acquisition efficiency and lead to higher success rates during operational testing and the continuing development process.
Software is critical to national security, an integral part of every Department of Defense (DoD) weapon system, and vital to future battlefield dominance. Software is a key element in all advanced warfighting systems and a driver of system performance, capability, security, functionality, complexity, and development risk.
Software has become ubiquitous and increasingly significant to every warfighting system. Nevertheless, the Office of the Under Secretary of Defense for Research and Engineering (OUSD(R&E)) continues to observe systemic software development challenges across major programs, especially in the most advanced systems. Both the Defense Science Board (DSB) and the Defense Innovation Board (DIB) have delivered studies and recommendations on how DoD develops and acquires software-intensive systems. They observe that “software is never done” and that the lack of high-quality, mature software is a bottleneck to delivering timely capability to the Warfighter. Such findings have resulted in valuable changes in public law, acquisition policy, and workforce development.
Advances in SWE skills, technology, and modern software development practices have proven successful in a competitive commercial marketplace. Advances include:
- Frequent iterative and continuous software deliveries using Agile and DevSecOps
- Automated continuous integration (CI) and continuous delivery/deployment (CD) pipelines
- Analytical methods to measure and improve the software development processes and product quality
- Modern software management and development tools
- Data Modeling and integration via Application Program Interfaces (APIs)
- Data Science, Artificial Intelligence, and Machine Learning
The Department is updating acquisition policies and processes, modernizing culture and workforce competencies, and providing enterprise-wide solutions that keep pace with modern advances in software development.
Communities and Working Groups
- Defense Science Board
- Defense Innovation Board
- Defense Innovation Board (DIB) Software Acquisition and Practices (SWAP) Working Group (WG) (aka Software Modernization Working Group)
- Defense Innovation Unit
- Digital Talent Management Forum (DTMF)
- DOD Cyber Workforce Framework
- DoD DevSecOps Community of Practice
- National Defense Industrial Association (NDIA) Continuous Iterative Development in Acquisition Working Group
- SEI Agile Collaboration Group (SEI ACG)
- Practical Software Measurement (PSM)
- NDIA Industrial Committee on Test and Evaluation (ICOTE)
- Defense Acquisition University (DAU) DevSecOps Academy
- Software Acquisition for the Program Office Workforce (SAPOW) CLE078
- Titanium Card (i.e., course takeaway Job-Aid)
- DoD Software Assurance Community of Practice (DoD SwA CoP) (CAC only)
- Navy Software Community of Practice (Navy SW CoP)
- NDIA Systems Engineering Division
- Joint Federated Assurance Center (JFAC)
- DoD Software Science and Technology Strategy
- Software Engineering for Continuous Delivery of Warfighting Capability
- Application Programming Interface (API) Technical Guidance
- Air Force Chief Software Officer
- Software Is Never Done, Defense Innovation Board Software Acquisition and Practices (DIB SWAP) Main Report, 2019
- DoD Developer’s Guidebook for Software Assurance
- DAU DevSecOps Academy Video Series
- Software Acquisition Workforce Initiative for the Department of Defense: Initial Competency Development and Preparation for Validation
- State-of-the-Art Resources (SOAR) for Software Vulnerability Detection, Test, and Validation
- Software Engineering Body of Knowledge (SWEBOK)
- The Design and Acquisition of Software for Defense Systems, February 2018.
- DoD CIO Library
- Hanscom Mil Cloud (HMC)
- High-Performance Computing (HPC)
What are APIs
An API, or Application Programming Interface, is a set of protocols, routines, and tools for building software applications. APIs define how different software components should interact with each other, allowing developers to create applications that can leverage the functionality of other software systems.
In simpler terms, an API is a way for different software applications to talk to each other and share data. For example, if you use a weather app on your phone, that app is most likely using an API to get the weather data from a weather service provider.
APIs can be used for a wide range of purposes, from integrating different software systems to building mobile apps and web applications. They are a critical component of modern software development and are used extensively in industries such as finance, healthcare, and e-commerce.
There are several benefits of APIs for the Department of Defense (DoD), including:
Improved Innovation: APIs can enable the DoD to leverage the expertise and capabilities of external developers and organizations, allowing for faster innovation and development of new applications and services.
Overall, APIs can help the DoD improve efficiency, reduce costs, and enhance security and data management, making them a valuable tool for modernizing and streamlining DoD operations.
Agile or continuous iterative development, in which a team develops software in smaller blocks that can be incrementally evaluated by a user community. (Defense Science Board)
Download Defense Science Board (PDF)
Office of the Under Secretary of Defense,
Research and Engineering (OUSD(R&E))
3030 Defense Pentagon, Washington, DC 20301-3030