rjh@cs.purdue.EDU (Bob Hathaway) (03/09/89)
I've been asked to repost these to comp.lang.ada, they first appeared in comp.doc.techreports. These reports are available from Technical Information Center (DTIC) and the National Technical Information Service (NTIS). To obtain a copy of any of the reports, please contact DTIC or NTIS directly, providing them with the ADA number for the desired report. (For example, _ADA169705_ is the DTIC number for the SEI report _Toward a Reform of the Defense Department Software Acquisition Policy_.) Software Engineering Institute Carnegie Mellon University Information Management Pittsburgh, Pennsylvania 15213 1 January 1987 -- 31 December 1987 Annotated list of available documents for public release. Defense Technical Information Center (DTIC) ATTN: FDRA Cameron Station Alexandria VA 22304-6145 National Technical Information Service (NTIS) U.S. Department of Commerce Springfield, VA 22161 ------------------------------------------------------------------------------- 1987 Technical Reports ------------------------------------------------------------------------------- ADA180905 Weiderman, Habermann, Borger, Klein, M., Landherr, Smeaton, Altman, D'Ippolito, Kochmar, Sun Evaluation of Ada Environments The full report provides a detailed description of the methodology and examples of its usage. Chapter 1 gives an extended cross-environment analysis of the results of the project. For each of five experiment groups, it compares three APSEs. The chapter provides an overview of the results of all the experiments and is written for the technical manager. Chapter 2 describes in detail the methodology used for evaluating the environments, along with some of the background information and references to previous work in environment evaluation. Chapters 3 through 8 provide detailed descriptions of the six experiment groups. Here one can find the information on particular criteria, questions, and life cycle activities that were tested for each experiment, as well as test scripts, checklists, and resulting data that were collected. ------------------------------------------------------------------------------- ADA178971 Martin A., Deasy The Effect of Software Support Needs on DoD Software Acquisition Policy: Part 1: A Framework for Analyzing Legal Issues This report summarizes the significant technical and managerial considerations that affect the maintenance and enhancement of software. Prior work suggested that it is often in the acquisition of intellectual property needed to maintain and enhance software that data rights disputes arise between DoD and the private sector. For this reason, an understanding of DoD's maintenance and enhancement requirements is a necessary predicate toward shaping a data rights/software acquisition policy that achieves the proper balance between the intellectual property needs of DoD and the proprietary interests of private industry. A survey of software engineering literature revealed no study that addressed this important subject. Accordingly, the Software Licensing Project undertook to examine the issue itself. Although this report discusses technical and managerial issues, it is principally intended as a guide for lawyers and policymakers who deal with, and have regulatory responsibility for, software and data rights acquisition issues. ------------------------------------------------------------------------------- ADA178178 Johnson SEI Software Engineering Education Directory The purpose of this directory is twofold. First, it should help people make rational choices among software engineering courses and software engineering degree programs by presenting a detailed listing of what courses and programs are available. The other major purpose is to establish contact between the SEI and the institutions which offer these courses and programs. ------------------------------------------------------------------------------- ADA182982 Druffel, Wood, Pethia, Greenberger, Shuba Software and System Warranty Issues This report addresses technical and administrative issues associated with the system warranty process, and recommends a straightforward, two-page generic system warranty clause that covers software, not in isolation, but as part of a warranted system. The report describes one approach to relieving problems of system failure, and addresses legal, technical, and administrative issues that support warranty enforcement. The goal is to ease the government's burden of proving the existence of a defect for which the warranty clause provides a remedy. The key to satisfying that goal is to develop technical tests and specifications that provide objective and demonstrable standards against which a claim for breach of warranty can be measured. ------------------------------------------------------------------------------- ADA181853 Cooper Distributed Systems Technology Survey This report is one of a series of survey reports. It is not intended to provide an exhaustive discussion of topics pertinent to the area of distributed systems technology. Rather, it is intended as an informative review of the technology surveyed. These surveys were conducted in late 1985 and early 1986. One of the core technology areas in which project members were interested is distributed systems technology. This report surveys the technical issues involved in designing distributed systems, with particular emphasis on those aspects that affect software engineering environments. ------------------------------------------------------------------------------- ADA181852 Feiler User Interface Technology Survey This report is one of a series of survey reports. It is not intended to provide an exhaustive discussion of topics pertinent to the area of distributed systems technology. Rather, it is intended as an informative review of the technology surveyed. These surveys were conducted in late 1985 and early 1986. One of the core technology areas in which project members conducted a survey was user interface technology. This report attempts to do two things: specify an understanding of user interfaces by presenting a taxonomy that encompasses the various aspects of user interfaces, and indicate the state of the technology today by highlighting some of the major issues. ------------------------------------------------------------------------------- ADA181156 Newcomer Tool Interface Technology This report is one of a series of survey reports. It is not intended to provide an exhaustive discussion of topics pertinent to the area of user interface technology. Rather, it is intended as an informative review of the technology surveyed. These surveys were conducted in late 1985 and early 1986. ------------------------------------------------------------------------------- ADA182003 Ford, Gibbs, Tomayko Software Engineering Education: An Interim Report from the Software Engineering Institute The goals and activities of the Software Engineering Institute's Education Program are described. Two curriculum recommendations are presented, one for a professional Master of Software Engineering degree program, and the other for an undergraduate project course in software engineering. Also presented is an organizational structure for software engineering curriculum content. ------------------------------------------------------------------------------- ADA182023 Foreman, Goodenough Ada Adoption Handbook The Ada Adoption Handbook provides program managers with information about how best to tap Ada's strengths and manage this new software technology. Although the issues are complex, they are not all unique to Ada. Indeed, many of these issues must be addressed when using any language for building sophisticated systems. The handbook addresses the advantages and risks inherent in adopting Ada. Significant emphasis has been placed on providing information and suggesting methods that will help program and project managers succeed in adopting Ada across a broad range of application domains. The handbook focuses on the following topics: program management issues including costs and technical and program control; Ada's goals and benefits; software tools with emphasis on compiler validation and quality issues; the state of Ada technology as it relates to system engineering; the application of special purpose languages; issues related to mixing Ada with other languages; possible productivity benefits resulting from software reuse; and implications for education and training. ------------------------------------------------------------------------------- ADA182895 Firth, Mosley, Pethia, Roberts, Wood, W. A Guide to the Classification and Assessment of Software Engineering Tools Software engineering tools are computer programs that assist people in doing the work of software engineering. As understanding of the software engineering process has broadened and the need to solve problems has intensified, there has been increasing interest in using software engineering tools. Understanding what a tool does and comparing it to similar tools are difficult tasks given the diversity of functionality that exists. This report describes a tool classification technique that helps those investigating tools decide where a tool fits in the software engineering process and identify what a tool does or doesn't do. It also provides guidance to the tool evaluation process and lists specific criteria that should be considered when evaluating tools. ------------------------------------------------------------------------------- ADA182895 Humphrey Characterizing the Software Process: A Maturity Framework Improvement in the performance of software development organizations is an essential national need. The improvement process has five basic elements: 1. an understanding of the current status of the development process, 2. a vision of the desired process, 3. a prioritized list of required improvement actions, 4. a plan to accomplish these actions, and 5. the resources and commitment to execute the plan. This paper addresses the first three of these elements by providing a model for software organizational improvement. The structure of this model provides five maturity levels, identifies the key improvements required at each level, and establishes a priority order for implementation. This model has been tested with a number of organizations and found to reasonably represent the status and needs of actual software development groups. ------------------------------------------------------------------------------- ADA185742 A. Martin, Deasy Seeking the Balance between Government and Industry Interests in Software Acquisition. Volume I. A Basis for Reconciling DoD and Industry needs for Rights in Software The policy under which the Department of Defense (DoD) acquires rights in software and technical data has, in the past, been imbalanced in the direction of obtaining more rights than necessary to meet its needs. As noted by the Packard Commission, a more balanced policy is in the interests of both the DoD and industry. The DoD has recently adopted a new policy for acquiring rights in technical data, and is developing a separate policy for acquiring rights in software. This report offers several recommendations for achieving a balanced policy as to government funded software, privately funded software, and mixed funding software that will meet the mission needs of the DoD while enabling contractors to protect their proprietary interests, and commercialize their software products. ------------------------------------------------------------------------------- ADA200601 Meyers, Cappellini The Use of Representation Clauses and Implementation-Dependent Features in Ada: I. Overview This report, the first in a series, presents an overview of the aspects of the Ada language relating to representation clauses and implementation-dependent features. Particular emphasis is given to the use of Ada for application to packed data structures. This report is in part tutorial, and several examples from real-time, mission-critical systems are discussed in detail. A brief discussion of design guidelines for the use of representation clauses and implementation-dependent features is included. ------------------------------------------------------------------------------- ADA188925 Meyers, Cappellini The Use of Representation Clauses and Implementation-Dependent Features in Ada: IIA. Evaluation Questions This report is the second in a series on the use of representation clauses and implementation-dependent features in Ada. It is the purpose of this document to specify a set of questions relevant to the assessment of the support of representation clauses and implementation-dependent features provided by an Ada compiler. The questions identified are categorized according to functionality and address both qualitative and quantitative aspects. ------------------------------------------------------------------------------- ADA183429 Humphrey, Kitson Preliminary Report on Conducting SEI-Assisted Assessments of Software Engineering Characterizing the state of software engineering practice within an organization is a necessary prerequisite to orderly, meaningful, and sustainable improvement of the organizations ability to produce or support cost-effective, high quality software products. The Software Engineering Institute (SEI) is developing a methodology for conducting SEI-assisted assessments of software engineering capability. The assessment methodology has five phases: 1. selecting the candidate organization, 2. preparing for the assessment, 3. conducting the assessment, 4. communicating final assessment findings and action recommendations, and 5. post-assessment follow-up activities. This report describes the methodology in detail. ------------------------------------------------------------------------------- ADA188926 Meyers, Cappellini The Use of Representation Clauses and Implementation-Dependent Features in Ada: IIIA. Qualitative Results for VAX Ada This report, one in a series, provides a qualitative assessment of the support of representation clauses and implementation-dependent features in Ada provided by the VAX Ada compiler, Version 1.3. The evaluation questions that were presented in a previous report of this series form the basis of the qualitative assessment. A subjective evaluation of the support provided for these features is also presented. ------------------------------------------------------------------------------- ADA200602 Meyers, Cappellini The Use of Representation Clauses and Implementation-Dependent Features in Ada: IIB. Experimental Procedures This report is one in a series dealing with the use of representation clauses and implementation-dependent features in Ada. The purpose of this report is to discuss detailed experimental procedures to assess compiler support. It is readily acknowledged that the domain of possible experimentation is large. To facilitate the experimentation, a methodology is proposed that relies on program generators and automated analysis tools. An example of the methodology is presented in some detail. ------------------------------------------------------------------------------- ADA200603 Tomayko Teaching a Project Intensive Introduction to Software Engineering This report is meant as a guide to the teacher of the introductory course in software engineering. It contains a case study of a course based on a large project. Other models of course organization are also discussed. Additional materials used in teaching the course and samples of student-produced documentation are also available. ------------------------------------------------------------------------------- ADA185697 Altman, Weiderman Timing Variation in Dual Loop Benchmarks Benchmarks that measure time values using a standard system clock often employ a dual loop design. One of the important assumptions of this design is that textually identical loop statements will take the same amount of time to execute. This assumption was tested on two bare computers with Ada test programs and has been demonstrated to be inaccurate in these specific test cases. ------------------------------------------------------------------------------- ADA187231 Altman Factors Causing Unexpected Variations in Ada Benchmarks Benchmarks are often used to describe the performance of computer systems. This report considers factors that may cause Ada benchmarks to produce inaccurate results. Included are examples from the ongoing benchmarking efforts of the Ada Embedded Systems Testbed (AEST) Project using bare target computers with several Ada compilers. ------------------------------------------------------------------------------- ADA187230 Humphrey, Sweet A Method for Assessing the Software Engineering Capability of Contractors This document provides guidelines and procedures for assessing the ability of potential DoD contractors to develop software in accordance with modern software engineering methods. It includes specific questions and a method for evaluating the results. ------------------------------------------------------------------------------- ADA200542 Dart, Ellison, Feiler, Habermann Software Development Environments "Environment" refers to the collection of hardware and software tools that a system developer uses to build software systems. As technology improves and user expectations grow, an environment's functionality tends to change. Over the last 20 years, the set of software tools available to developers has expanded considerably. We can illustrate this change by observing some distinctions in the terminology. "Programming environment" and "software development environment" are often used synonymously, but here we make a distinction between the two. ------------------------------------------------------------------------------- ADA200611 Klein, D., Firth Final Evaluation of MIPS M/500 Final Report for the RISC Insertion Project In response to a request from the DoD, an analysis of a Reduced Instruction Set Computer (RISC) processor, the MIPS M/500, was performed. All aspects of processor capabilities and support software were evaluated, tested, and compared to familiar Complex Instruction Set Computer (CISC) architectures. In all cases, the RISC computer and its support software performed better than a comparable CISC computer. This report provides the general and specific results of these analyses, along with the recommendation that the DoD and other government agencies seriously consider this or other RISC architectures as a highly viable and attractive alternative to the more familiar but less efficient CISC architectures. ------------------------------------------------------------------------------- ADA191096 Weiderman, Borger, Cappellini, Dart, Klein, M., Landherr Ada for Embedded Systems: Issues and Questions This report addresses issues and questions related to the use of Ada for embedded systems applications; it contains some preliminary recommendations for compilation system implementors, application developers, program managers, and Ada policy makers. The issues and questions provide the context for the Real-Time Embedded Systems Testbed (REST) Project at the SEI, where staff members are investigating software development and performance issues for real-time embedded systems. ------------------------------------------------------------------------------- ADA200607 Donohoe Ada Performance Benchmarks on the MicroVAX II: Summary and Results This report documents the results obtained from running the University of Michigan and the ACM SIGAda Performance Issues Working Group (PIWG) Ada performance benchmarks on a DEC VAXELN MicroVAX II using the DEC VAXELN Ada compiler. A brief description of the benchmarks and the test environment is followed by a discussion of some problems encountered and lessons learned. The output of each benchmark program is also included. ------------------------------------------------------------------------------- ADA200608 Donohoe A Survey of Real-Time Performance Benchmarks for the Ada Programming Language This survey provides a summary description of some of the major Ada benchmarks currently available and an evaluation of their applicability to the Real-Time Embedded Systems Testbed Project at the SEI. The benchmarks discussed are the University of Michigan benchmarks, the ACM Performance Issues Working Group (PIWG) benchmarks, and the prototype Ada Compiler Evaluation Capability (ACEC) of the Institute for Defense Analyses (IDA). ------------------------------------------------------------------------------- ADA188100 Mark Borger VAXELN Experimentation: Programming a Real-Time Clock and Interrupt Handling Using VAXELN Ada 1.1 This report describes the results of implementing an interrupt handler totally in Ada for a MicroVAX II/VAXELN 2.3 target system, the VAXELN 1.1 Ada compiler, and a KWV11-C programmable real-time clock. It provides an overview of VAXELN interrupt handlers and the operation of the real-time clock; discusses and demonstrates the use of VAXELN kernel services to establish a link between the clock's interrupt and the starting address of an interrupt service routine; presents an Ada package of interfaces to the KWV11-C device; provides Ada source code examples demonstrating the use of this package; and presents relevant observations, recommendations, and measurement results. ------------------------------------------------------------------------------- ADA188932 Weiderman Criteria for Constructing and Using an Ada Embedded System Testbed The purpose of this report is to list some of the criteria used in five aspects of the project: the hardware configuration, the software configuration, the real-time application, the Ada real-time experiments, and the benchmarking and instrumentation techniques. Each criterion will include a rationale. Each of the criteria listed in this report will be categorized as either essential, highly desirable, or desirable. ------------------------------------------------------------------------------- ADA200609 Weiderman, et al. Annual Technical Report for Ada Embedded Systems Testbed Project The purpose of the Ada Embedded Systems Testbed Project (now called the Real-Time Embedded Systems Project) is to investigate some of the critical issues in using Ada for real-time embedded applications, particularly the extent and quality of the runtime support facility provided by Ada implementations. The project's objective has been to generate new information about using Ada in real-time embedded systems. This information is in the form of benchmark test results, higher level experiment results, and lessons learned in designing and implementing real-time applications in Ada. This technical report provides an overview of the results produced in the first year of the project (through September 30, 1987). Details of these results are contained in other referenced technical reports. ------------------------------------------------------------------------------- ADA200612 Borger VAXELN Experimentation: Programming a Real-Time Periodic Task Dispatcher Using VAXELN Ada 1.1 The purpose of this paper is to provide the reader with some technical information and observations, Ada source code, and measurement results based on experimentation with respect to developing a real-time periodic task dispatcher in Ada. In this context, a periodically scheduled task set implies that each task in the set is executed at its own fixed frequency; a periodic task dispatcher is a software component that schedules the individual tasks at their implied runtime frequency. The results presented here are specific to a MicroVAX-II/VAXELN 2.3 target system, the VAXELN 1.1 Ada compiler, and a KWV11-C programmable real-time clock. Specifically, these results provide answers to the question: How can one achieve the effect of scheduling a set of periodic Ada tasks when the runtime frequency of some of the individual tasks is less than the clock-cycle frequency supported by an Ada runtime implementation? ------------------------------------------------------------------------------- ADA200604 Landherr, Klein, M., Inertial Navigation System Simulator: Behavioral Specification The Real-Time Embedded Systems Testbed Project at the SEI is specifying and developing a representative real-time application. This document augments an original set of specifications written by a Navy affiliate. The purpose of this behavioral specification is to clarify and augment the original. ------------------------------------------------------------------------------- ADA200605 M. Klein, Landherr Inertial Navigation System Simulator Program: Top-Level Design A real-time Ada application, an Inertial Navigation System (INS) simulator, is being developed by the Real-Time Embedded Systems Testbed Project as a vehicle to analyze issues regarding the use of Ada in the real-time embedded domain and to provide a context for future experimentation. The technical philosophy behind developing a real-time Ada artifact is to: (1) select a representative (e.g., strict timing demands, multiple concurrent activities, low-level I/O, error handling, interrupts, and periodic activities) real-time application; (2) use Ada tasks as the unit of concurrency for the real-time design; and (3) apply any relevant practical results being produced by the real-time scheduling research community. In particular, the INS simulator must satisfy a set of timing requirements that are similar to an INS with respect to data updating, message transmission, and message reception. This document discusses the top-level design of this application from three points of view: data flow perspective, concurrency and control perspective, and the Ada module perspective. ------------------------------------------------------------------------------- ADA188928 Van Scoy Prototype Real-Time Monitor: Executive Summary This report summarizes the history, goals, and conclusions of the prototype real-time monitor development effort. This effort was undertaken to address two specific technical questions: 1) How can user tools find, access, and display data hidden in the bodies of Ada applications? 2) How can user tools be layered on top of Ada applications? The effort resulted in a generally usable prototype, which is documented by four other SEI reports (CMU/SEI-87-TR-36 through CMU/SEI-87-TR-39). ------------------------------------------------------------------------------- ADA188929 D'Ippolito, Lee, K., Plinta, Rissman, Van Scoy Prototype Real-Time Monitor: Requirements The requirements imposed by flight simulators and good software engineering practice on Ada systems force software engineers to seek new solutions to the problem of monitoring executing software. This report examines some of these requirements and, based on these requirements, defines a subset for implementation as a prototype real-time monitor (RTM). ------------------------------------------------------------------------------- ADA188930 Van Scoy, Plinta, Coddington, T., D'Ippolito, Lee, K. Prototype Real-Time Monitor: User's Manual This report defines the user interface to the prototype real-time monitor (RTM). It defines the concepts and commands needed by a software engineer to use the RTM. In addition to defining the user interface, the report explains the steps needed to tailor the RTM to work with the user's application. ------------------------------------------------------------------------------- ADA188931 Van Scoy, Plinta, D'Ippolito, Lee, K., Rissman Prototype Real-Time Monitor: Design This report describes the software design used to implement the prototype real-time monitor requirements. The design is presented at three levels: system level, object level, and package architecture level. The report concludes with a discussion of the key implementation obstacles that had to be overcome to develop a working prototype: determining system addresses, communicating with an executing application, accessing application memory, converting data into human-readable form, and distributed CPU architectures. ------------------------------------------------------------------------------- ADA191095 Van Scoy Prototype Real-Time Monitor: Ada Code This report documents the Ada code of the prototype real-time monitor. ------------------------------------------------------------------------------- ADA200610 Donohoe Ada Performance Benchmarks on the Motorola MC68020: Summary and Results This report documents the results obtained from running the ACM SIGAda Performance Issues Working Group (PIWG) and the University of Michigan Ada performance benchmarks on a Motorola MC68020 microprocessor (MVME133 VMEmodule Monoboard Microcomputer), using the Systems Designers Ada-Plus, the TeleSoft TeleGen2, and the Verdix VAX/VMS hosted cross-compilers. A brief description of the benchmarks and the test environment is followed by a discussion of some problems encountered and lessons learned. Wherever possible, the output of each benchmark program is also included. ------------------------------------------------------------------------------- ADA200606 Firth, Wood, Pethia, Roberts, Mosley, Dolce A Classification Scheme for Software Development Methods Software development methods are used to assist with the process of designing software for real-time systems. Many such methods have come into practice over the last decade, and new methods are emerging. These new methods are more powerful than the old ones, especially with regard to real-time aspects of the software. This report describes a classification scheme for software development methods, includes descriptions of the major characteristics of such methods, and contains some words of advice on choosing and applying such methods. ------------------------------------------------------------------------------- ADA199877 Hefley Issues in Software: A Blue Two Visit Feasibility Assessment The SEI participated in a series of fact-finding meetings sponsored by the Air Force Coordinating Office for Logistics Research to gather information necessary to set the scope for and to implement one or more Blue Two Visits on software. The purpose of a Blue Two Visit (BTV) is to introduce to industry's top design engineers and program managers the day-to-day constraints Air Force maintainers face on front-line operations bases. The participants experience first-hand the effects of design on maintenance. This exposure has been significant in bridging the gap between DoD and industry in understanding, documenting, and supporting Air Force weapon system requirements to increase combat supportability. This report documents discussions that attempt to address the following questions for a software-oriented BTV: 1) Do software maintainers and users have messages for software designers and programmers? 2) What are these messages? 3) How can these messages be best communicated? 4) To whom should these messages be targeted? 5) What should the BTV be called? ------------------------------------------------------------------------------- ADA191097 Lee, Rissman, D'Ippolito, Plinta, Van Scoy An OOD Paradigm for Flight Simulators This report presents a paradigm for object-oriented implementations of flight simulators. It is a result of work on the Ada Simulator Validation Program (ASVP) carried out by members of the technical staff at the SEI. ------------------------------------------------------------------------------- ADA188927 Ford, editor Report on the SEI Workshop on Ada in Freshman Courses The Undergraduate Software Engineering Education Project of the SEI Education Program sponsored a workshop on Ada in Freshman Courses in June 1987. The workshop brought together several educators to discuss how the software engineering content of beginning programming and data structures courses might be improved. This report describes the workshop and summarizes the discussions and conclusions, and it also includes the position papers prepared by the participants. ------------------------------------------------------------------------------- ADA188923 Nestor Views for Evolution in Programming Environments Programming environments have become a focal point for much of the work directed toward improving the practice of software engineering. Such environments must provide mechanisms for recording and organizing the complex set of persistent technical and management data associated with all parts of the life cycle of large software systems. This paper focuses on one important aspect of such persistent data: how to allow evolution when the existing information must be preserved without change to maintain history. First, the role of history in programming environments is discussed. Next, the additional demands of evolution are considered and shown to lead to a set of problems. View mechanisms are suggested as a solution to the problems. A simple example involving file system directory structure is presented to illustrate these problems. A simple view mechanism, called multidirectories, is introduced and shown to solve the illustrated problems. ------------------------------------------------------------------------------- ADA188924 Nestor Evolving Persistent Objects in a Distributed Environment This paper considers a class of objects, called incrementally mutable objects, that are intermediate between mutable and immutable objects. Intuitively, the only permitted modifications to an incrementally mutable object are those that add new information to the object while preserving existing information. Changes to incrementally mutable objects do not require central synchronization. When a network becomes partitioned, the same incrementally mutable object can be safely modified in each subnetwork. A mutable object can be modeled by a set of immutable objects that represent each value of the object over time and an incrementally mutable object that relates each immutable object to its successor. Multiple successors are permitted to represent parallel changes. ------------------------------------------------------------------------------- ADA188922 Stone, Nestor IDL: Background and Status This paper presents an overview of the Interface Description Language (IDL). We describe the language and its history. We also discuss the status of the IDL community. ------------------------------------------------------------------------------- ADA199634 Engle, Firth, Graham, Wood, B. Interfacing Ada and SQL The SEI was asked by the Ada Joint Program Office to investigate the problem of interfacing programs written in Ada with database management systems implementing the SQL database language. The authors decided to concentrate on a description of the problems involved in producing an interface that would be worthy of becoming a standard. This document is meant to assist the reader in answering the question "What constitutes a good interface between Ada and SQL?" The document should be useful both in the production of a standard and in the analysis of any proposed standard. ------------------------------------------------------------------------------- -- Carnegie Mellon University Software Engineering Institute (412) 268-6378
rjh@cs.purdue.EDU (Bob Hathaway) (03/09/89)
I've been asked to post these to comp.lang.ada, they first appeared in comp.doc.techreports (part 2 of 2). Software Engineering Institute Carnegie Mellon University Information Management Pittsburgh, Pennsylvania 15213 1 January 1988 -- 31 December 1988 Annotated list of available documents for public release, 1988. These reports are available from the Defense Technical Information Center (DTIC) and the National Technical Information Service (NTIS). To obtain copies of the reports, please contact DTIC or NTIS directly, providing them with the ADA number for the desired report(s). (For example, _ADA200631_ is the DTIC number for the SEI report _Summary of SEI Technical Operations: 1987_.) Defense Technical Information Center (DTIC) ATTN: FDRA Cameron Station Alexandria VA 22304-6145 National Technical Information Service (NTIS) U.S. Department of Commerce Springfield, VA 22161 ------------------------------------------------------------------------------- 1988 Technical Reports ------------------------------------------------------------------------------- ADA200631 Summary of SEI Technical Operations: 1987 During 1987, the SEI had five programs in place: Ada-Based Software Engineering Program, Education Program, Software Process Program, Pilot Projects Program, and Technology Transition Program. These programs, their 1987 accomplishments, and their planned work are described in this document. In addition, the SEI affiliate functions, computing facilities, building, staff, and service accomplishments are also described. ------------------------------------------------------------------------------- ADA200630 Johnson The Software Engineering Education Directory This directory provides information about software engineering courses and software engineering degree programs that are available in the United States and Canada. ------------------------------------------------------------------------------- ADA201345 Graham, Miller, D. ISTAR Evaluation ISTAR is an integrated project support environment produced by Imperial Software Technology, Ltd. This evaluation of ISTAR is intended for software technologists considering the adoption of an integrated project support environment. Researchers and others interested in environments and evaluation methods will also benefit from this report. ------------------------------------------------------------------------------- ADA197136 Hansen, Over Evaluation and Recommendations for Technology Insertion into Technical Order Maintenance As the need for mission-critical software systems increases, Post Deployment Software Support (PDSS) activities will require increased priority in planning. PDSS is "the sum of all activities required to ensure that, during the production/deployment phase of a mission-critical computer system's life, the implemented and fielded software/system continues to support its original missions, and subsequent mission modifications and product improvements. PDSS, therefore, includes not only software "maintenance" but also the activities required for overall system support. The SEI recognizes the importance of PDSS activities in the life cycle of mission-critical systems. In March 1986, SEI personnel met with representatives of the Air Force Logistics Command (AFLC) at Ogden Air Logistics Center (OO-ALC), Hill Air Force Base, Utah, to determine if there were areas in PDSS that the SEI could address. The AFLC representatives described the activities performed at Air Logistics Centers and problems encountered in those activities. As a result of this meeting, the SEI authorized a feasibility study to determine how it might best interact with the PDSS community. This report, written in August 1987, describes the evaluation process and the ensuing recommendations for technology insertion into technical order maintenance. ------------------------------------------------------------------------------- ADA200085 Bass, Hardy, Hoyt, Little, Seacord Introduction to the Serpent User Interface Management System Serpent is an example of the class of systems known as a User Interface Management System. It uses the X Window System to interact with the end user, and is useful both as a portion of a production system and as a separate prototyping tool. Serpent supports the development and execution of the user interface of a system. It provides an editor with which to specify the user interface and a runtime system that communicates with the application to get the data to display. The system then uses the specification previously output from the editor to decide how to display that data. This report provides a technical overview of Serpent, its components, the module used in specifying the user interface, and the editor used in constructing the user interface. ------------------------------------------------------------------------------- ADA196664 Bass, Hardy, Hoyt, Little, Seacord Serpent Runtime Architecture and Dialogue Model This paper describes the runtime architecture and dialogue model of the Serpent User Interface Management System (UIMS). Serpent uses existing software systems to create a UIMS based on a structured production model to specify the dialogue, and uses a database approach for communication between its internal layers. The model for the dialogue in Serpent supports simultaneity of subdialogues and presents the dialogue specifier with a model that views data as mapping from the application to the presentation. The database approach for communication between the layers provides a model that application programmers understand well and find easy to use. The approach also provides the power necessary to decouple the application structures from the structures implicit in the user interface. ------------------------------------------------------------------------------- ADA197490 Feiler, Smeaton The Project Management Experiment This report covers a project management (PM) experiment, one of six experiments that examine different functional areas of Ada programming environments. The PM experiment was designed as part of the Evaluation of Ada Environments Project. This report describes the environment-independent part of the experiment: the activities covering the functional area, the evaluation criteria, and an experiment scenario to be performed on different environments. The experiment as it stands has been validated through internal and external review and through application to several environments that support project management. ------------------------------------------------------------------------------- ADA197416 Wood, Pethia, Roberts, Firth A Guide to the Assessment of Software Development Methods Over the past decade, the term "software engineering methods has been attached to a variety of procedures and techniques that attempt to provide an orderly, systematic way of developing software. Existing methods approach the task of software engineering in different ways. Deciding which methods to use to reduce development costs and improve the quality of products is a difficult task. This report outlines a five- step process and an organized set of questions that provide method assessors with a systematic way to improve their understanding of and form opinions about the ability of existing methods to meet their organization's needs. ------------------------------------------------------------------------------- ADA197137 Kellner, Hansen Software Process Modeling An SEI objective is to provide leadership in software engineering and in the transition of new software engineering technology into practice. This paper discusses a software process modeling case study conducted at the SEI. ------------------------------------------------------------------------------- ADA197671 Feiler, Smeaton Managing Development of Very Large Systems: Implications for Integrated Environment Architectures Version and configuration control are mechanisms for managing source code and system builds. In the development of very large systems, built by large teams, development management is the dominant factor. In this paper we examine management support for development through integrated environments and investigate the implications for environment architectures. We do so by defining a project scenario that is to be performed with integrated project support environments. The scenario has been carefully designed to not only determine the scope of management functionality provided by a particular environment, but also to probe implications for the architecture of environments. The implications discussed in this paper are: focus on user activities; the integration of project management and development support concepts; the ability to reinforce and avoid conflict with particular organizational models; the ability to support evolution and change of the product, environment, and organization; and the capability for adaptation and insertion into a work environment. The scenario is part of a methodology for evaluation of environments currently used at the Software Engineering Institute. ------------------------------------------------------------------------------- ADA198934 Feiler, Dart, Downey Evaluation of the Rational Environment This report presents an analysis of the Rational R1000 Development System for Ada, also called the Rational Environment. The evaluation combined the use of the Software Engineering Institute (SEI) methodology for evaluation of Ada environments, an analysis of functionality not covered by that methodology, and an assessment of the novel environment architecture of the Rational Environment. In addition to this report, Experiment Transcripts for the Evaluation of the Rational Environment, by Grace Downey, Mitchell Bassman, and Carl Dahlke (CMU/SEI-88-TR-21) contains support material for the experimental results. The support material is the result of performing experiments based on the SEI's environment evaluation methodology. It consists of transcripts of the experiments, the detailed answers to the evaluative questions, and the detailed performance results. ------------------------------------------------------------------------------- ADA198933 Bamberger, Colket, Firth, Klein, D., Van Scoy Kernel Facilities Definition This document defines the conceptual design of the Kernel by specifying 1) the underlying models, assumptions, and 2) restrictions that govern the design and implementation of the Kernel; and the behavioral and performance requirements to which the Kernel is built. This document is the requirements and top level design document for the Kernel. ------------------------------------------------------------------------------- ADA199482 Bamberger, Colket, Firth, Klein, D., Van Scoy Distributed Ada Real-Time Kernel This paper addresses two distinct needs of real-time applications: distribution and hard real-time scheduling mechanisms. Specifically, this paper rejects both the notion of modifying the Ada language to achieve needed real-time solutions and the current fad of extensively modifying the Ada compiler and/or vendor-supplied runtime system. Instead, this paper defines the functionality of a Distributed Ada Real-time kernel (hereafter called the Kernel). The goal of the Kernel is to support effectively the execution of distributed, real-time Ada applications in an embedded computer environment by returning control to the user, where it belongs ------------------------------------------------------------------------------- ADA199480 Barbacci, Doubleday, Weinstock The Durra Runtime Environment Durra is a language designed to support PMS-level programming. PMS stands for Processor-Memory-Switch, the name of the highest level in the hierarchy of digital systems. An application or PMS-level program is written in Durra as a set of task descriptions and type declarations that prescribes a way to manage the resources of a heterogeneous machine network. The application describes the tasks to be instantiated and executed as concurrent processes, the types of data to be exchanged by the processes, and the intermediate queues required to store the data as they move from producer to consumer processes. This report describes the Durra Runtime Environment. The environment consists of three active components: the application tasks, the Durra server, and the Durra scheduler. After compiling the type declarations, the component task descriptions, and the application description, the application can be executed by starting an instance of the server on each processor, starting an instance of the scheduler on one of the processors, and downloading the component task implementations (i.e., the programs) to the processors. The scheduler receives as an argument the name of the file containing the scheduler program generated by the compilation of the application description. This step initiates the execution of the application. ------------------------------------------------------------------------------- ADA199481 Barbacci, Doubleday Generalized Image Library: A Durra Application Example Durra is a language designed to support the construction of distributed applications using concurrent, coarse-grain tasks running on networks of heterogeneous processors. An application written in Durra describes the tasks to be instantiated and executed as concurrent processes, the types of data to be exchanged by the processes, and the intermediate queues required to store the data as they move from producer to consumer processes. This report describes an experiment in writing task descriptions and type declarations for a subset of the Generalized Image Library, a collection of utilities developed at the Department of Computer Science at Carnegie Mellon University. The experiment illustrates the development of a typical Durra application. This is a three step process: first, a collection of tasks (programs) is designed and implemented (these are the GIL programs); second, a collection of task descriptions corresponding to the task implementations is written in Durra, compiled, and stored in a library; and finally, an application description is written in Durra and compiled, resulting in a set of resource allocation and scheduling commands to be interpreted at runtime. A few sample application descriptions were developed as part of the experiment and are also reported in this document. ------------------------------------------------------------------------------- ADA199429 Barbacci MasterTask: The Durra Task Emulator Durra is a language designed to support the construction of distributed applications using concurrent, coarse-grain tasks running on networks of heterogeneous processors. An application written in Durra describes the tasks to be instantiated and executed as concurrent processes, the types of data to be exchanged by the processes, and the intermediate queues required to store the data as they move from producer to consumer processes. The tasks and types available to an application developer are described by a collection of Durra task descriptions and type declarations stored in a library. One of the components of a task description is a specification of the external timing behavior of the task. It describes the sequence of input and output port operations and the amount of processing time spent between port operations. This report describes MasterTask, a program that can emulate any task in an application by interpreting the timing expression describing the behavior of the task, performing the input and output port operations in the proper sequence and at the proper time. MasterTask is useful to both application developers and task developers. Application developers can build early prototypes of an application by using MasterTask as a substitute for task implementations that have yet to be written. Task developers can experiment with and evaluate proposed changes in task behavior or performance by rewriting and reinterpreting the corresponding timing expression. ------------------------------------------------------------------------------- -- Carnegie Mellon University Software Engineering Institute (412) 268-6378