Submission deadline: CLOSED
Publication: Mar./Apr. 2019
Modern software operates in a complex ecosystem of libraries, models, protocols, and devices. Ecosystems change over time in response to new technologies or paradigms, as a consequence of repairing discovered vulnerabilities (security, logical, or performance-related), or because of varying resource availability and reconfiguration of the underlying execution platform. When these changes occur, applications might no longer work as expected because their assumptions on how the ecosystem should behave might have been inadvertently violated.
Ensuring that applications can seamlessly continue to operate correctly and usefully in the face of such changes is a formidable challenge. Failure to adapt to ecosystem evolution in an effective and timely way can result in technically inferior and potentially vulnerable systems. Moreover, the lack of automated mechanisms to restructure and transform applications when changes do occur leads to high software maintenance costs and premature obsolescence of otherwise functionally sound systems.
Successfully adapting applications to an evolving ecosystem requires mechanisms to infer the impact of such evolution on application behavior and performance, automatically trigger transformations that beneficially exploit these changes, and validate that these transformations are correct. To do so requires the ability to
- extract whole-system specifications over the entire software stack that can be used to define application-centric descriptions of the resources provided by the ecosystem;
- leverage new programming abstractions, program analyses, and compilation methodologies to correlate application behavior with salient ecosystem changes;
- develop semantics-preserving program transformations designed with adaptation in mind; and
- exploit new runtime systems structured to facilitate the efficient integration of these transformations.
This IEEE Software theme issue will serve as a primary source for the latest research results on foundational and practical advances in the design and implementation of long-lived, survivable, and complex software systems that are robust to changes in the physical and logical resources provided by their ecosystem. We invite contributions related to, but not limited to,
- resource-aware program abstractions and analyses,
- resource-aware self-adaptation,
- automated software patching and code repair,
- design intent inference and exploitation,
- automated software evolution,
- semantic approaches for future-proof code and adaptation mechanisms,
- transplantation of legacy systems to new software and hardware architectures,
- long-term and resource-aware assurances and evaluation,
- long-lived cyber-physical systems,
- process and infrastructure in support of long-lived adaptation, and
- industrial-scale case studies and experience reports.
Although all forms of system adaptation are of interest, we particularly solicit contributions that focus on the challenges of adaptation in the face of ecosystem changes that occur over long time periods.
For more information about the focus, contact the guest editors:
- Javier Cámara, Carnegie Mellon University, email@example.com
- David Garlan, Carnegie Mellon University, firstname.lastname@example.org
- Gregory T. Eakman, BAE Systems, email@example.com
Manuscripts must not exceed 3,000 words including figures and tables, which count for 250 words each. Submissions exceeding these limits might be rejected without refereeing. Articles deemed within the theme and scope will be peer reviewed and are subject to editing for magazine style, clarity, organization, and space. We reserve the right to edit the title of all submissions. Be sure to include the name of the theme issue for which you’re submitting.
Articles should have a practical orientation and be written in a style accessible to practitioners. Overly complex, purely research-oriented or theoretical treatments aren’t appropriate. Articles should be novel. IEEE Software doesn’t republish material published previously in other venues, including other periodicals and formal conference or workshop proceedings, whether previous publication was in print or electronic form.
For general author guidelines: www.computer.org/software/author.htm
For submission details: firstname.lastname@example.org
To submit an article: mc.manuscriptcentral.com/sw-cs