Software Solutions Division
The Software Solutions Division works with government, industry, and academia to assure that software functions predictably as intended and that capability is delivered quickly with a minimum of uncertainty and risk. We conduct research, develop advanced technologies, and provide solutions throughout the entire lifecycle of software-reliant systems, from acquisition through sustainment.
What We Do
Ensure complex software-reliant systems can deliver critical capabilities, even in the most challenging environments
System scale, complexity, connectivity, and operational tempo are increasing at remarkable rates. Yet software performance cannot be compromised in mission-critical settings—even amid limited resources and connectivity—at risk of serious harm, mission failure, or even loss of life.
We develop foundations for designing and assuring critical capabilities for two primary system types: For tactical systems, we develop efficient and secure computing and communication abilities. For autonomous systems, including cyber-physical systems, we assure that they will behave as intended in use.
These four challenges guide our work in this area:
- securing tactical systems in the absence of a trusted certification authority
- securing embedded systems without jeopardizing safety- and timing-critical properties
- certifying safety-critical platforms as they migrate to virtualized environments
- gaining justified (timely, reliable, secure) confidence in the results of data analytics
Develop and improve software lifecycle engineering and management technologies
The value of a software-reliant system is determined largely by the quality of the practices used in its construction and evolution. Our researchers develop proven best practices that help developers maximize software capabilities while minimizing complexity and rework.
Because software architecture is the conceptual glue that holds every phase of a project together for its many stakeholders, a group of SEI researchers works to develop and transition sound architectural practices. Our efforts in this area range from locating the architectural roots of technical debt to performing safety analyses of aircraft architecture design.
For every practice we develop or evaluate, we use a data-driven approach based on measured performance. We analyze and model data to identify trends, improve existing solutions, and promote underused technologies.
For the DoD, our Empirical Research Office focuses on improving the capability delivered for every dollar of investment in software systems by grounding policy and decision making on high-quality data and analysis.
Support the delivery of software-reliant systems to the DoD, the intelligence community, federal and state agencies, and industry
Our researchers provide support directly to individual programs, often on-site, to help them meet their capability goals, from acquisition strategy through sustainment.
We also work with DoD acquisition organizations to develop acquisition policy that works, and with government to improve its execution of the acquisition processes already in place.
Government agencies implementing Agile encounter environments and policies very different from those found in industry. To help them achieve the same results as the private the sector, the SEI conducts research and works with individual programs to make Agile work in government settings. Our method identifies customer-specific barriers to Agile use, and through our courses more than 1,300 students have taken skills back to their organizations to put Agile in place.
As we work directly with the government community, we continually evaluate warfighter system needs and software engineering applications to inform SEI research.
Develop guidance and benchmarks for acquirers to assess contractor proposals and performance, leverage agile methods, manage intellectual property, and affect the transition of systems to sustainment
Software Lifecycle Engineering and Management Technologies
Improve the techniques for developing software systems to provide advanced capabilities while managing complexity and minimizing rework
Assure correct behavior and security of complex mission-critical systems through appropriate architectures, code analysis, early lifecycle testing, and runtime monitoring and adaptation
Data Analytics and Machine Learning
Enable mission-critical decision making with quantifiable confidence by recognizing patterns and inferring functional relationships implicit in data repositories and streaming data
Developing systems for challenging specific missions, with a focus on tactical clouds and edge computing, cyber-physical systems, and autonomous swarm systems