Strategic Directions in Software at Scale (SaS) Goals
1. Purpose and Goals
The goal of this workshop is to bring together a forum of the best thinkers across academia, industry, and government to develop and promote ideas that can dramatically improve our collective ability to build, evolve, and use large software systems.
A subset of the participants will be asked to lead discussions by first
making a case for strategic directions in the following software technology areas (20 minutes), and then posing some questions for discussion
and moderating a discussion (20 minutes):
Leads will be asked to estimate the risk and payoff of each direction,
and identify promising technical avenues of investigation.
- Software Synthesis
- Temporal Semantics
- Scalable Composition
- Robust and Continuous behavior
- Secure Composition
- Process and Methodology
The outcome of this workshop will be a report containing a priority-ranked list of the candidate directions and technical approaches. It will include an estimation of the timeline over which the challenges can be addressed; i.e., are the goals achievable near-term (1-2 years), mid-term (2-5 years), or far-term (5 years and beyond). This report will help prioritize investments in SaS research and development (R&D) and will create a foundation for developing the Department of Defense (DoD) road-map for SaS.
2. Technology Areas
(1) Software Synthesis
The notion is that software implementations can be computed from abstract and incomplete specifications with systematic exploration of the alternative implementations. The goal is to leverage advances in program modeling and analysis to be able to rule out undesirable implementations quickly and guide selection of desirable implementations, and to perform automatic code generation for those implementations.
(2) Temporal Semantics
Cyber-physical systems integrate computing and networking with physical processes. The temporal dynamics of software and networks becomes critical to predicting and controlling the interactions of system components. But software abstractions omit time. The theme of this discussion is to investigate the potential impact and technical implications of modifying these abstractions to embrace temporal dynamics.
(3) Scalable Composition
Many complex designs fail at system integration because of underspecified interfaces, unstated assumptions, or unexpected interference between components. This discussion addresses the problem through mechanisms for clarifying interfaces of components and ensuring correct composition.
(4) Robust and Continuous Behavior
Software tends to fail catastrophically, with return to known good state (e.g. rebooting) being a dominant recovery method. This discussion addresses approaches to achieving robust and continuous behaviors, where "continuous" means that small changes have small effects.
(5) Secure Composition
Complex systems constructed by composing diverse components frequently suffer from interference, where one component disrupts another. This discussion examines mechanisms by which subsystems can be composed with assurances of non-interference. Possible approaches include game-theoretic formulations.
(6) Process and Methodology
Metrics for quality of software at scale can greatly facilitate development of technologies that ensure quality. This discussion examines the potential for concrete measures of complexity and adaptability of system components, including software components, networks, and human and organizational components.
3. Workshop Approach
This is an invitation-only workshop. Each session
leader will be given 20 minutes to advocate and make a case for a strategic direction in one of the software technology areas. This will be followed by 20 minutes of group discussion during which the lead can pose questions to the group to stimulate debate and dialogue.
The workshop will be held over the course of two days; this will allow for 18 speaker/discussion "sessions." As a representative example, for the area of Temporal Semantics, one "session" might proceed in the following way:
(20 minutes) Session lead makes a case for the importance of pursuing research in the area of Temporal Semantics, for example:
Argue that, by choice, computer science has omitted timing from the semantics of programming. The underlying technology, however, is very capable of precise and reliable timing. Argue for potential benefits of integrating timing into the semantics of programs. Risk factors include unknown effects from having to redesign much of the abstraction stack, from ISA's up through operating systems and networks.
(20 minutes) Session lead poses thought-provoking questions and facilitates group discussion:
At a minimum, leads should be prepared at the workshop to provide:
- If computation and networking speeds continue to improve, can we just circumvent the problem by over provisioning?
- What proportion of software problems arise from uncontrolled or unexpected timing of interaction between software components?
- Are there intermediate solutions that do not require redoing much
of what computer science has done for the last 40 years?
- How long might it take for investment in research to lead to
- A description of the direction they are advocating.
- The challenges or problems addressed and limitations of current practice.
- Novel technical aspects of the promising approaches and evidence to support why they will work.
- Expected payoff including metrics that could assess success.
- Risk factors if the direction is not pursued and the likelihood of a