leff@smu.UUCP (Laurence Leff) (08/15/89)
PART V of V Software Engineering Institute Carnegie Mellon University Information Management Pittsburgh, Pennsylvania 15213 1 January 1986 -- 4 August 1989 Annotated list of available documents. 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 CMU/SEI-89-TR-11, ESD-TR-89-19 Sprunt, B., Sha, L., Scheduling Sporadic and Periodic Events in a Hard Real-Time System A real-time system consists of both aperiodic and periodic tasks. Periodic tasks have regular arrival times and hard deadlines. Aperiodic tasks have irregular arrival times and either soft or hard deadlines. In this paper, we present a new algorithm, the Sporadic Server algorithm, that greatly improves response times for soft-deadline aperiodic tasks and can guarantee hard deadlines for both periodic and aperiodic tasks. The operation of the Sporadic Server algorithm, its performance, and schedulability analysis are discussed and compared with previous, published aperiodic service algorithms. CMU/SEI-89-TR-13, ADA207717 Weiderman Ada Adoption Handbook: Compiler Evaluation and Selection Version 1.0 The evaluation and selection of an Ada compilation system for a project is a complex and costly process. Failure to thoroughly evaluate an Ada compilation system for a particular user application will increase project risk and may result in cost and schedule overruns. The purpose of this handbook is to convince the reader of the difficulty and importance of evaluating an Ada compilation system (even when there is no freedom of choice). The handbook describes the dimensions along which a compilation system should be evaluated, enumerates some of the criteria that should be considered along each dimension, and provides guidance with respect to a strategy for evaluation. The handbook does not provide a cookbook for evaluation and selection. Nor does it provide information on specific compilation systems or compare different compilation systems. Rather it serves as a reference document to inform users of the options available when evaluating and selecting an Ada compilation system. CMU/SEI-89-TR-14 Sha, Goodenough Real-Time Scheduling Theory and Ada The Ada tasking model was intended to support the management of concurrency in a priority-driven scheduling environment. In this paper, we review some important results of a priority-based scheduling theory, illustrate its applications with examples, discuss its implications for the Ada tasking model, and suggest workarounds that permit us to implement analytical scheduling algorithms within the existing framework of Ada. This paper is a revision of CMU/SEI-88-TR-33. (The most important revisions affect our discussion of aperiodic tasks and our analysis of how to support the priority ceiling protocol.) A shortened version is also being presented at the 1989 Ada-Europe Conference. CMU/SEI-89-TR-15, ESD-TR-89-23 Borger, M., Rajkumar, R. Implementing Priority Inheritance Algorithms in an Ada Runtime System This paper presents a high-level design@y(M)in the form of necessary data structures, mechanisms, and algorithms@y(M)for implementing the basic priority inheritance and priority ceiling protocols in an Ada runtime system. Both of these protocols solve the unbounded priority inversion problem, where a high-priority task can be forced to wait for a lower priority task for an arbitrary duration of time. The protocols and their implementation also address the issues of non-deterministic selection of open alternatives and FIFO entry call queues. These protocols allow the timing analysis of a given set of Ada tasks in order to guarantee their deadlines in real-time systems. Importantly, it is possible to implement the protocols within the current semantics of the Ada language given the interpretations of Ada rules described by Goodenough and Sha in the Software Engineering Institute Technical Report 33 (1988). Strategies and possible alternatives are discussed for implementing these protocols in an Ada runtime system targeted to a uniprocessor execution environment. CMU/SEI-89-TR-17, ESD-TR-89-25 Bayer, J., Melone, N. Adoption of Software Engineering Innovations in Organizations Designing effective strategies to facilitate the adoption of new software engineering technologies is a complex endeavor. This document describes the experiences of organizations in the defense industry that have considered and in many cases adopted any one of five software engineering technologies: structured programming, program design languages, software cost models, complexity metrics, and Ada. In all, 296 respondents participated in the entire study. These respondents represented approximately 120 business units within approximately 75 defense contractor organizations. Data were collected using a structured survey instrument administered over the telephone. This report examines the motivations behind technology acquisition and adoption decisions, the use of vartious technology transfer mechanisms during the stages of the adoption process, and the relationship between technology transfer mechanisms and the timing, pass through, and smoothness of adoption process stages. Adoption is assumed to be a multi-stage process that may proceed in a linear or non-linear fashion. ALso explored is the relationshp between managerial level of the advocate (i.e., top management, middle management, technical management, and broad-based support) and the speed and smoothness of technology acquisition and adoption. Analysis of data supports the notion that organizations and change agents (e.g., the Department of Defense (DoD)) should carefully tailor transition mechanisms and the choice of technology advocate to the specific stage of the adoption process, rather than adopt a single strategy for the entire process. Moreover, a single adoption strategy is not applicable to all technologies. These strategies must also be tailored depending on the subtleties of the particular technology. CMU/SEI-89-TR-18 Sha, Rajkumar, Son, Chang A Real-Time Locking Protocol When a database system is used in a real-time application, the concurrency control protocol must satisfy not only the consistency of shared data but also the timing constraints of the application. In this paper, we examine a priority-driven two-phase lock protocol called the read- or write-priority ceiling protocol. We show that this protocol is free of deadlock, and in addition a high-priority transaction can be blocked by lower priority transactions for at most the duration of a single embedded transaction. We then evaluate system performance experimentally. CMU/SEI-89-TR-21, ESD-TR-89-29 Ardis, M., Ford, G. 1989 SEI Report on Graduate Software Engineering Education This annual report on graduate software engineering education describes recent SEI educational activities, including the 1988 SEI Curriculum Design Workshop. A model curriculum for a professional Master of Software Engineering degree is presented, including detailed descriptions of six core corrrrses. Fifteen university graduate programs in software engineering are surveyed. CMU/SEI-89-TR-23, ESD-TR-89-31 Weiderman Hartstone: Synthetic Benchmark Requirements for a Hard Real-Time System The purpose of this paper is to define the operational concept for a series of benchmark requirements to be used to test the ability of a system to handle hard real-time applications. Implementations of such benchmarks would be useful in evaluating scheduling algorithms, protocols, and design paradigms, as well as processors, languages, compilers, and operating systems. Several Ada programs are under development to test standard versions of the benchmark requirements and will be released into the public domain. CMU/SEI-89-TR-26, ESD-TR-89-34 Humphrey CASE Planning and the Software Process Automating a software process both magnifies its strengths and accentuates its weaknesses. Automation can make an effective process more effective, but it can make a chaotic process even worseMand at considerable expense. Anyone who buys expensive tools to solve an ill-defined problem is likely to be disappointed. Unless procuring such tools is part of a thoughtful software process improvement plan, the purchase could be an expensiv mistake. This report discusses software process maturity and its relationship to planning and installing computer-aided software engineering (CASE) systems. While process is not a magic answer (there isn't one), the key issues are discussed from a process perspective, and guidelines are given for avoiding the most common pitfalls. Since CASE systems can involve significant investment, an economic justification may be necessary. The relevant financial considerations are therefore discussed, and some basic steps for producing such justifications are outlined. Finally, some key considerations for introducing and using CASE systems are discussed. ------------------------------------------------------------------------------- Special Reports ------------------------------------------------------------------------------- CMU/SEI-88-SR-2 Hefley 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, Locke 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, Sha 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-priroity 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-88-TP-1 Carey 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, Jackson An AJPO User's Guide for MH, the Rand Message Handling System CMU/SEI-89-UG-1, ADA207414 Bamberger, Coddington, T., Firth, Klein, D., Stinchcomb, Van Scoy Kernel User's Manual, Version 1 CMU/SEI-89-UG-2 Serpent, A User Interface Management System Overview Version 1 CMU/SEI-89-UG-3 SEI Serpent SADDLE User's Guide CMU/SEI-89-UG-5 SEI Serpent SLANG Reference Guide CMU/SEI-89-UG-6 SEI Serpent Application Developer's Guide ------------------------------------------------------------------------------- Technical Memos ------------------------------------------------------------------------------- SEI-86-TM-1, ADA175167 Samuelson 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 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 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 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 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 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, Ford 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 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 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 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, Kaiser Granularity Issues in a Knowledge-Based Programming Environment We are in the process of developing MARVEL, a knowledge-based programming environment that assists multi-programmer software development teams in 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, Feiler 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 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, Feiler 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. -- But who were they all in your sleep last night, first one then the next, with their menace, wild sempahore, and lusts? I hardly know where you find the strength come morning. August Kleinzahler