leff@CSVAX.SEAS.SMU.EDU (Laurence Leff) (07/14/90)
Software Engineering Institute Information Management Annotated list of available documents for external distribution. Part V of VI 1 January 1986 - 29 June 1990 Technical reports that have DTIC numbers are available from the Defense Technical Information Center (DTIC) and the National Technical Information Service (NTIS). (As an example, ADA169705 is the DTIC number for the SEI report Toward a Reform of the Defense Department Software Acquisition Policy.) If you wish to request a copy of one of the following reports, please contact either DTIC or NTIS directly. DTIC: Defense Technical Information Center ATTN: FDRA Cameron Station Alexandria VA 22304-6145 NTIS: National Technical Information Service U.S. Department of Commerce Springfield, VA 22161 Special Reports CMU/SEI-88-SR-2 Hefley, B. Conference Report: Overcoming the Disincentives to Modernization in the Defense Industry The Procurement Committee of the National Security Industrial Association held its annual winter meeting on 7-10 February 1988. This conference report documents the keynote address by Thomas J. Murrin, Distinguished Service Professor in Management and Technology, Carnegie Mellon University, along with panel sessions on the topic of "Regulatory and Statutory Direction of Acquisition" and "Financial Aspects of Disincentives to Modernization". CMU/SEI-88-SR-3, ADA206429 Goodenough, J. and Locke, D. A Practical Application of the Ceiling Protocol in a Real-Time System This paper briefly discusses some of the real-time design issues that arise when using the priority ceiling protocol for real-time systems. The paper shows a small real-time system and shows how the code in the system could be structured to satisfy the requirements of the ceiling protocol. This paper was presented at the 2nd International Workshop on Real-Time Ada Issues in May 1988. CMU/SEI-88-SR-4 Goodenough, J. and Sha, L. The Priority Ceiling Protocol: A Method for Minimizing the Blocking of High-Priority Ada Tasks The priority ceiling protocol is a new technique that addresses the priority inversion problem, i.e., the possibility that a high-priority task can be delayed by a low-priority task. Under the priority ceiling protocol, a high priority task can be blocked at most once by a lower priority task. This paper defines how to apply the protocol to Ada. In particular, restrictions on the use of task priorities in Ada are defined as well as restrictions on the use of Ada tasking constructs. An extensive example illustrating the behavior guaranteed by the protocol is given. This paper was presented at the 2nd International Workshop on Real-Time Ada Issues in May 1988. SEI-89-SR-2 Hefley, B. Continuing Education Workshop, A Special Report on a Needs Analysis Workshop The Software Engineering Institute hosted a Continuing Education Workshop for 30 invited industry/government representatives and 13 members of the SEI technical staff. The objectives of the 2-day meeting, held on October 11-12, 1988, were to begin building an infrastructure of software engineering educators from industry and government, to identify common unmet needs, and to develop leverage through cooperative efforts. Through working groups and discussions, the group focused on the essential topics of a software engineering curriculum for practitioners, modes of delivery and educational environmental constraints, and desired roles for the SEI. SEI-89-SR-14 Moore Conformance Criteria for the SAME Approach to Binding Ada Programs to SQL The structured query language (SQL) Ada Module Extensions (SAME) form a method for the design and construction of Ada database applications. The method is explained in a companion document: "Guidelines for the Use of the SAME." In order to enable the method to be referenced in requests for proposals (RFPs) and development contracts, there must be some method to determine if a given software design and implementation conform to the SAME guidelines. Such conformance criteria are contained in this report. CMU/SEI-90-SR-6 Bamberger, J. DARK Technology Transition Plan The DARK Transition Project Plan is aimed at the transition of the concepts, models, and prototype implementation developed by the DARK development project over the past two years. This document: 1. Presents the background, rationale, and conceptual goals of the DRK Project. 2. Provides an overview of the phase approach to Technology Transition used within the SEI and its relationship to DARK Project activities. 3. Describes the goals and objectives of the DARK Transition Project in the context of the phase approach. 4. Defines the tasks constituting the DARK Transition Project. CMU/SEI-90-SR-10 Carlson, M. and Smith, G. Understanding the Adoption of Ada: Results of an Industry Survey In 1983, the U.S. Department of Defense (DoD) established a policy requiring the use of a new programming language, Ada, for the development of all new Mission-Critical Computer Resource (MCCR) software that it purchases. Firms that supply the DoD with these systems have shown considerable variation in their decisions to incorporate this new technology into their products and production processes. This survey is part of a multi-stage research project that sought to understand the variability in firms' adoption and use of new information technologies. The present report is a follow-up and elaboration on a case study of the adoption of Ada which is described in CMU/SEI-89-TR-28, Understandi ng the Adoption of Ada: A Field Study Report. Participants in the survey were 123 business and technical people from 69 business units that supply the DoD with MCCR software systems and services. The survey explored factors pertaining to respondents' technical and market environments in an attempt to describe depth of adoption and to describe the differences between the firms with active Ada contracts and those without active contracts. For firms that have adopted Ada the report describes aspects of the language and tools that are considered most useful in different application areas. At present, 85% of the units have proposed to use Ada as a primary implementation language, and 70% have been awarded a contract in which Ada is the primary implementation language. Within the context of this study, Ada contract awards have been in the following application areas: aircraft engines, attack radar, display processors, flight control, flight trainers, ground control vehicles, night vision, radar warning receivers, missiles, space command and control, and tactical command and control. Survey participants reported that Ada is being used in 50% of the new development contracts and is being proposed for use in 60% of the contracts in the proposal stage. CMU/SEI-90-SR-12 Siegel, J. et al National Software Capacity: Near-Term Study (Executive Summary) The Ada Language Reference Manual describes (in Annexes A and B) an assortment of compiler pragmas and attributes which a validated implementation must support. In addition to the language-defined list, a compilation system is free to offer a supplemental set of implementation-defined pragmas and attributes, as long as these extensions do not violate the legality of the application text. Any such supplement must also be described within Appendix F of the product documentation. This report examines a large proportion of the pragmas and attributes available today to the Ada user community. Data for the analysis is obtained by a survey sample of a substantial number of validated Ada implementations. With the Ada 9X revision process in mind, the goal of the study is to identify new pragmas and attributes for language definition. Compiler support for the predefined pragmas and attributes is first quantified. The findings show a surprising variation between implementations. This result is apparently due to a broad interpretation of the language rules which address the requirement for language-defined pragma and attribute support. The report recommends a specific change in the text of the LRM to remedy the problem, and suggests that improved conformance checking be performed during the validation process. This study also found that the language-defined pragma INTERFACE requires substantial changes to improve functionality. The proposed INTERFACE pragma would eliminate a plethora of implementation-defined substitutes, thus increasing uniformity across compilation systems. Within the sample, there was found a large class of implementation-defined pragmas aimed at improving run time performance through Ada usage restrictions. Under varying circumstances, these performance enhancement pragmas can be dangerous because their effects are not well understood. As a minimum precaution, this report recommends that a warning be provided to the user during program compilation when the possibility of misuse is present. CMU/SEI-90-SR-13 Lane, T. User Interface Software Structures This thesis codifies the structural choices faced by designers of user interface software. It shows how these choices can be based on system requirements. Miscellaneous SEI-88-TP-1 Carey, S. Distributed Ada Real-Time Kernel (DARK) Technology Transition Plan This plan describes the project objectives and progress of the Distributed Ada Real-Time Kernel (DARK) Project in order to effectively plan and execute appropriate technology transition activities. The information contained within the document was gathered from sources listed in the plan history. CMU/SEI-88-UG-1, ADA204635 Moss, S. and Jackson, P. An AJPO User's Guide for MH, the Rand Message Handling System The purpose of this document is to provide an introduction to the fundamentals of the Rand Message Handling (MH) system. The document is intended to be a tutorial on and a quick reference to the aspects of MH that are used most frequently. This document does not provide detailed discussions of the technical aspects of MH, nor does it cover all of the topics relevant to advanced use of MH. For more detailed information, see the documents referenced below, or check for Unix man pages online or in the Unix Programmer's Manual. Parts of this document are based on MH for Beginners] by Mary Hegardt and Tim Morgan and The Rand MH Message Handling System: Tutorial by Marshall T. Rose and Jerry N. Sweet. For more detailed information, we recommend The Rand MH Message Handling System: User's Manual by Marshall T. Rose and John L. Romine. CMU/SEI-89-UG-1, ADA207414 Bamberger, J. et al Kernel User's Manual, Version 1 This manual describes the models underlying the Kernel and its concept of operations, presents the primitives available to the application program, and provides a number of abstractions that may readily be built on top of Kernel primitives. CMU/SEI-89-UG-2 Serpent, A User Interface Management System Overview Version 1 This document provides an overview of the Serpent system. It is intended for software engineers involved in user interface development and assumes no previous knowledge of Serpent. CMU/SEI-89-UG-3 SEI Serpent SADDLE User's Guide This guide describes the Shared Data Definition Language (SADDLE) and its relation to Serpent. It also guides you through the steps required for SADDLE execution and describes how you create SADDLE files. The contents of this guide assume that you are familiar with general UIMS concepts, and that you have a working knowledge of programming languages. It would also be useful to have read Vol. I in this series: An Introduction to Serpent CMU/SEI-89-UG-5 SEI Serpent SLANG Reference Manual This manual describes the model, syntax, and semantics of the Slang dialogue language. Slang is the language within Serpent used for the specification of user interfaces. The contents of this manual assume that you have read and understood the concepts described in the Serpent Overview (CMU/SEI-89-UG-2). CMU/SEI-89-UG-6 SEI Serpent Application Developer's Guide This guide describes how to develop applications using Serpent. The contents of this guide assume that you have read and understood the concepts described in "An Introduction to Serpent;" it also assumes that you are experienced with using C or Ada. CMU/SEI-89-UG-7 SEI Serpent Technology Integrator's Guide This guide describes how to add technologies to Serpent. The contents of this guide assume that you have read and undertood the concepts described in An Introduction to Serpent and Serpent Application Developer's Guide; it is also assumed that you have experience programming in C or Ada. CMU/SEI-90-UG-1 Hartstone Benchmark User's Guide, Version 1.0 Donohoe The Hartstone benchmark is a set of timing requirements for testing a system's ability to handle hard real-time applications. It is specified as a set of processes with well-defined workloads and timing constraints. The name Hartstone derives from HArd Real T ime and the fact that the workloads are presently based on the well-known Whetstone benchmark. This report describes the structure and behavior of an implementation in the Ada programming language of one category of Hartstone requirements, the Periodic Harmonic (PH) Test Series. The Ada implementation of the PH series is aimed primarily at real-time embedded processors where the only executing code is the benchmark and the Ada runtime system. Guidelines for performing various Hartstone experiments and interpreting the results are provided. Also included are the source code listings of the benchmark, information on how to obtain the source code in machine-readable form, and some sample results for Version 1.0 of the Systems Designers XD Ada VAX/VMS - MC68020 cross-compiler. CMU/SEI-89-PDO-1 Gary, D. Announcement of Product Development Quarterly Update, Jan--Mar 1989 Quarterly Update, Apr--Jun 1989 Quarterly Update, Jul--Sep 1989 Technical Memos SEI-86-TM-1, ADA175167 Samuelson, P. Adequate Planning for Acquiring Sufficient Documentation About and Rights in Software to Permit Organic or Competitive Maintenance Both the DoD and industry have significant concerns regarding maintenance and enhancement of software. The DoD wants to be certain it will be able to maintain and enhance software, and where cost effective, to compete maintenance of software. Industry wants to ensure that its proprietary interests will be adequately protected. This paper will explore possible ways in which both groups' interests might be satisfied. SEI-86-TM-2, ADA175165 Samuelson, P. Comments on the Proposed Defense and Federal Acquisition Regulations This paper compares and contrasts the software/data rights sections (Subpart 27.4) of the DoD procurement regulations (DoD FAR SUPP) and the Federal Acquisition Regulations (FAR). The regulations currently in force, as well as recently proposed revisions to those regulations, are examined. Criticisms are made of the DoD regulations, as well as suggestions as to how those regulations could be brought more in line with procurement related legislation, intellectual property law and general commercial practice within the software industry. Inconsistencies and ambiguities found in Subpart 27.4 of the DoD acquisition regulations are discussed at some length. A recommendation is made that the DoD adopt a regulatory policy more like that found in the FAR. SEI-86-TM-3, ADA175166 Samuelson, P. Understanding the Implications of Selling Rights in Software to the Defense Department: A Journey Through the Regulatory Maze This article of the Software Licensing project of the SEI examines problems related to DoD procurement policy as reflected in the DoD acquisition regulations (DoD FAR SUPP). It discusses ambiguities and inconsistencies found in the acquisition regulations and ways in which these problem areas might result in unexpected disadvantages to both the government and industry. Issues related to funding of software development, treatment of technical data and documentation, the concept of unlimited rights, the making of derivative works and other modifications of software, and the interface between the DoD acquisition policy and intellectual property laws (such as copyright and trade secret law) are discussed. The article serves to catalogue potential problems that might arise under the DoD acquisition regulations. SEI-86-TM-4, ADA175237 Barbacci, M. Software Support for Heterogeneous Machines This paper describes a new research effort carried out jointly between the Software Engineering Institute and the Department of Computer Science at Carnegie Mellon University. The objective of the project is to investigate languages, methodologies, and tools for programming computer systems consisting of networks of heterogeneous processors. Typical users of these notations (and associated support software) will be the developers of real-time, computation-intensive applications such as those contemplated under the Strategic Computing Initiative. In particular, this research is being conducted in the context of the Autonomous Land Vehicle application, running on the Heterogeneous Machine being developed in the Computer Science Department. This paper provides some background on the nature of the problem posed by these applications, the opportunities presented by the emergence of heterogeneous machines, and the goals of this project. SEI-86-TM-5, ADA175227 Shaw, M. Education for the Future of Software Engineering The discipline of software engineering is developing rapidly. Its practitioners must deal with an evolving collection of problems and with new technologies for dealing with those problems. Software engineering education must anticipate new problems and technologies, providing education in the enduring principles of the field in the context of the best current practice. Since changes in the discipline cannot be completely anticipated, software engineers must be able to assume responsibility for their own continuing professional development. This paper describes significant changes now taking place in the field of software engineering and proposes some goals and objectives for the professional education of software engineers. SEI-86-TM-6, ADA181294 Shaw, M. Beyond Programming-in-the-Large: The Next Challenges for Software Engineering As society's dependence on computing broadens, software engineering is being called upon to address new problems that raise new technical and non-technical concerns. Aspirations and expectations for the application of computers appear to be unbounded, but present software development and support techniques will not be adequate to build computational systems that satisfy our expectations, even at very high cost. Each order of magnitude increase in the scale of the problems being solved leads to a new set of critical problems that require essentially new solutions. The next challenges for software engineering will deal with software as one of many elements in complex systems, which we call program-as-component and with the role of software as an active participant in the software development process, which we call program-as-deputy. SEI-86-TM-7, ADA181293 Gibbs, N. and Ford, G. The Challenges of Educating the Next Generation of Software Engineers The continuing growth in the number, size, and complexity of software systems has created an enormous demand for high quality software engineers. A strategy for educating new software engineers is presented, and the projects of the Education Division of the Software Engineering Institute that support this strategy are described. SEI-86-TM-8, ADA182983 Nestor, J. Toward a Persistent Object Base To better understand the needs of future programming environments, two current technologies that support persistent data in programming environments are considered: file systems and data base systems. This presents a set of weaknesses present in those current technologies. These weaknesses can be viewed as a checklist of issues to be considered when evaluating or designing programming environments. SEI-86-TM-9, ADA182022 Newcomer, J. IDL: Past Experiences and New Ideas This paper is based on the author's experience in constructing an implementation of the Interface Description Language (IDL). The result of this experience was some insights into language design, human interfaces, and system structuring, as well as methodologies for the composition of complex tools. Certain complexities of the IDL implementation are discussed in this paper, showing that quite efficient implementations are possible. Finally, a set of interesting directions for IDL and IDL derived systems are suggested, including programming environment and database related work. SEI-86-TM-10, ADA181742 Ellison, B. Software Development Environments The growing demand for reliable large scale software systems cannot be met without advances in software development environments. Although promising technologies are emerging, a number of issues must be addressed to ensure the timely transition of those technologies and projects to be undertaken by the Software Engineering Institute to address those issues. SEI-86-TM-11, ADA182981 Feiler, P. and Kaiser, G. Granularity Issues in a Knowledge-Based Programming Environment We are in the process of developing MARVEL, a knowledge-based programming performing and coordinating their activities. During the design of MARVEL, we discovered that the granularity to which logical entities are refined in its software database and the granularity with which its software tools process the entities and report their results to the human users have a strong impact on the degree of intelligence that can be exhibited, as well as on the friendliness and performance of the environment. In this paper, we describe the many choices among alternative granularities and explain the decisions we made during the design of MARVEL. SEI-86-TM-12, ADA181743 Kaiser, G. and Feiler, P. An Architecture for Intelligent Assistance in Software Development We define an architecture for a software engineering environment that behaves as an intelligent assistant. Our architecture consists of two key aspects: an objectbase and a model of the software development process. Our objectbase is adapted from other research, but our model is unique in that it consists primarily of rules that define the preconditions and multiple postconditions of software development tools. Metarules define forward and backward chaining among the rules. Our most significant contribution is opportunistic processing, whereby the environment automatically performs software development activities at some time between when their preconditions are satisfied and when their postconditions are required. Further, our model defines strategies that guide the assistant in choosing an appropriate point for carrying out each activity. SEI-86-TM-13, ADA181937 Feiler, P. Relationship Between IDL and Structure Editor Generation Technology This paper discusses observed commonalities and differences between IDL and structure editor generation technologies. IDL (Interface Description Language) is technology for generation of tool intercommunication support with roots in compiler generation. Structure editor generation technology has its roots in syntax-directed editors. It produces environments for interactive viewing and manipulation of formally specified structures. Both technologies use a formal notation for structural and constraint descriptions. From these descriptions both generation tools automatically produce software for reading, writing, and manipulating instances of the described structures, as well as for checking specified constraints on information contained in the structures. The IDL technology emphasizes generation of batch-oriented applications while the structure editor generation technology is tailored to supporting interactive applications. Structure editor generation technology has been applied to itself, i.e., to building an interactive structure editor generation environment. SEI-86-TM-14, ADA182094 Kaiser, G., and Feiler, P. Intelligent Assistance Without Artificial Intelligence SMILE is a distributed, multi-user software engineering environment that behaves as an intelligent assistant. SMILE presents a `fileless environment,' derives and transforms data to shelter users from entering redundant information, automatically invokes programming tools, and actively participates in the software development and maintenance process. Unlike other intelligent assistants, SMILE is not a rule-based environment: its knowledge of software objects and the programming process is hardcoded into the environment. We describe SMILE's functionality and explain how we achieved this functionality without reliance on artificial intelligence technology. --