Skip to main content

Currently Skimming:

5 Reinvigorate DoD Software Engineering Research
Pages 112-138

The Chapter Skim interface presents what we've algorithmically identified as the most significant single chunk of text within every page in the chapter.
Select key terms on the right to highlight them within pages of the chapter.


From page 112...
... agencies. Prefacing this summary of areas recommended for future research investment is an exploration of the role of academic research in software producibility and a discussion of the impacts of past invest ments.
From page 113...
... cases for research projects. This is particularly challenging for software producibility research, which is often focused on creating new measures of "return" rather than on incremental advances according to readily measurable criteria.
From page 114...
... For software, the potential for surprise is heightened by a combination of the rapid growth of globalization, the concurrent movement up the value chain of places to which R&D has been outsourced, and the explicit investments from national governments and the European Union in advancing national technological capability. Given the role of externalities in IT economics, it is not unreasonable to expect the innovation center of gravity to change rapidly in many key areas, which could shift control in criti cal areas of the technology ecosystems described above.
From page 115...
... Although the openness of university research is sometimes considered a negative factor with respect to the advancement of technology for national security, it is also the case that universities have unique incentives, unlike industry, to advance the discipline even when the hard-won results are non-appropri able or difficult to fully appropriate. As noted above, it is evident from the history of the field that the advancement of IT and software producibility disproportionately depends on this kind of technology advance.
From page 116...
... This is documented in multiple NRC reports relating to the innovation pipeline for IT, which trace the origins of a broad set of specific IT innovations, each of which has led to a multibillion dollar market.6 Data available from NITRD and other sources indicate that there has been a significant reduction in federally sponsored research related to software producibility as well as to high-confidence software and systems (see Box 1.5)
From page 117...
... . INVESTING IN RESEARCH IN SOFTWARE PRODUCIBILITY The Impact of Past Investments Software development has changed and, for the most part, improved considerably during the past several decades.
From page 118...
... . In the case of defense software producibility, there are clear drivers of defense software "leading demand," and there are ways that the DoD can invest in and realize benefits earlier and more effectively than can potential adversaries.
From page 119...
... Simple definition-reference bug detection techniques2,3 were followed by more sophisticated approaches.4,5,6 Programming languages such as Ada, Java, and C# incorporated some of these concepts directly into the language, and thus, for example, checked for array indexes being out of bounds dur ing compilation and added runtime checking only when necessary. This work laid the foundation for a range of model checking and program analysis tools that are now emerging at companies like Micro soft and Google as these companies increase their concern for secure, high-quality systems.
From page 120...
... :1-13. 17 David Alex Lamb, 1987, "IDL: Sharing Intermediate Representations," ACM Transactions on Programming Languages and Systems 9(3)
From page 121...
... Lehman, 1985, Program Evolution Processes of Software Change, London, UK: Academic Press. 25 Barry Boehm, 1986, "A Spiral Model of Software Development and Enhancement," ACM SIGSOFT Software Engineer ing Notes 11(4)
From page 122...
... We lack, for example, good ways to measure the impact of any specific research result on software quality, which stems in part from the lack of good measures of software quality. Without reliable, validated measures it is hard to quantify the impact of innovations in software producibility, even those that are widely credited with improving quality, such as the introduction of strong typing into programming languages or traceability in software-development databases.
From page 123...
... . The committee offers them as recommended focal points for renewed investment in defense software producibility.
From page 124...
... Architectural decision making is driven by the combined consideration of multiple interacting factors. Some factors derive from stakeholder needs -- these are functional scope and quality attributes such as degree of assurance needed, operational safety and security, design evolv ability, online adaptability, performance, cost, etc.
From page 125...
... . This is not well addressed in current programming languages or architectural models.
From page 126...
... . Some initial approaches for recovering service-ori ented architectures for such legacy systems are emerging.20 Further research and experience on such approaches would strengthen software producibility for the increasing number of DoD brownfield software development situations.
From page 127...
... For example, assurance considerations affect architecture modeling (e.g., to detect information paths that are not supposed to be present) , requirements-related models, traceability and team information management tooling, programming language design, runtime infrastructure design, and many other areas.
From page 128...
... Goal .: Enhance the Portfolio of Preentie Methods to Achiee Assurance In addition to the primarily evaluative techniques, interventions in development activities can greatly enhance the potential for accreting, on an ongoing basis in development, a body of evidence in support of assurance cases. For example, assurance considerations affect architecture modeling, require ments-related models, traceability and team information management tooling, programming language design, the design of runtime infrastructure, and many other areas.
From page 129...
... • Develop and use programming languages that enhance assurance. The experience of software developers is that language shifts occur at unpredictable times and for unpredictable reasons.
From page 130...
... More often, there are early constraints on quality attributes, definitions of the overall scope of function and interlinking, and a few other "shall" or "musthave" constraints. Many of the other elements that eventually become manifest as features or quality attributes are in fact the result of early iterations with stakeholders, and many of these are informed by the improved understanding of both the technological and operational environments as they evolve.
From page 131...
... Area 5. Language, Modeling, Coding, and Tools As noted in the previous chapters, programming languages and associated capabilities have a considerable influence on the major factors identified in this report -- architecture, assurance, process, and measurement.
From page 132...
... Modularity is much more than a matter of control and data flow; there are abstractions related to objects, types, and actions that are increasingly supported in modern languages, and these not only enable developers to express domain concepts more directly in program text 26 but also enable architects to render their abstract models for system modular structures more directly into the explicit structure of programs. Goal .: Enhance the Expressieness of Programming Language to Address Current and Emerging Challenges Despite many declarations of success, the evolution of programming languages continues, and it is driven by strong demand for improvements from developers seeking greater levels of expressiveness (e.g., through direct expression of concepts such as higher-order functions,27 deterministic parallelism, atomicity, data permissions, and so on)
From page 133...
... Goal .: Enhance Deeloper Productiity for New Deelopment and Eolution As noted above, languages enhanced with models and tools often merge into new languages that incorporate the model concepts directly in the language design. But there is a growing suite of tool capa bilities that are conceptually separate from language, and the delivery of these capabilities is a significant influence on developer and team productivity and on software producibility generally.
From page 134...
... , and there are benefits to linking it with other efforts related to software producibility. There are opportunities to exploit and advance modern language concepts, innovative operating system and middleware ideas, scheduling and resource management techniques, and code generation capabilities.
From page 135...
... To execute a model-based program an interpreter could use a model of a controlled plant to continuously deduce the plant's state from observations and to generate control actions that move the plant to specified states. Achieving the goal of model-based embedded software development requires new expressive languages for specifying intended state evolutions and plant behavior, automated execution methods for performing all aspects of fine-grained coordination, and software architectures and frameworks for pervasive/immersive sensor networks.
From page 136...
... . Reflective software technologies go further to permit automated examination of the capabilities they offer and automated adjustment to optimize those capabilities.
From page 137...
... This investment should be undertaken through a diversity of research programs across the DoD and should include academia, industry labs, and collaborations. Recommendation 5-2: The DoD should take action to undertake DoD-sponsored research programs in the following areas identified as critical to the advancement of defense software producibility: (1)


This material may be derived from roughly machine-read images, and so is provided only to facilitate research.
More information on Chapter Skim is available.