leff@CSVAX.SEAS.SMU.EDU (Laurence Leff) (07/16/90)
Administrivia Note: Commencing with sei90.6E, TRList is now being mailed to ARPANET/CSNET/INTERNET subscribers via a totally different mechanism. This will prevent the problems with multiple copies of messages going out. We are still tracing the cause of that problem as that mail loop still seems to be generating some messages. My apologies for any inconvenience caused by multiple messages. End of Administrivia Note. Software Engineering Institute Information Management Annotated list of available documents for external distribution. Part VI of VI: SEI Education Program reports 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 Curriculum Modules and Support Materials (SEI-CM-1-1.3 Superceded by Requirements Specification Overview SEI-CM-19 Paul C. Jorgensen, Research & Technology Institute of West Michigan) SEI-CM-2-2.1 Introduction to Software Design David Budgen, University of Stirling This curriculum module provides an introduction to the principles and concepts relevant to the design of large programs and systems. It examines the role and context of the design activity as a form of problem-solving process, describes how this is supported by current design methods, and considers the strategies, strengths, limitations, and main domains of application of these methods. SEI-CM-3-1.5 The Software Technical Review Process James S. Collofello, Arizona State University This curriculum module consists of a comprehensive examination of the technical review process in the software development and maintenance life cycle. Formal review methodologies are analyzed in detail from the perspective of the review participants, project management and software quality assurance. Sample review agendas are also presented for common types of reviews. The objective of the module is to provide the student with the information necessary to plan and execute highly efficient and cost effective technical reviews. SEI-SM-3-1.0 Support Materials for The Software Technical Review Process John Cross, ed., Indiana University of Pennsylvania This support materials package includes materials helpful in teaching a course on the software technical review process. SEI-CM-4-1.3 Software Configuration Management James E. Tomayko, The Wichita State University Software configuration management encompasses the disciplines and techniques of initiating, evaluating, and controlling change to software products during and after the development process. It emphasizes the importance of configuration control in managing software production. SEI-SM-4-1.0 Support Materials for Software Configuration Management James E. Tomayko, ed., The Wichita State University This support materials package includes materials helpful in teaching a course on configuration management. SEI-CM-5-1.2 Information Protection Fred Cohen, Lehigh University This curriculum module is a broad based introduction to information protection techniques. Topics include the history and present state of cryptography, operating system protection, network protection, data base protection, physical security techniques, cost benefit tradeoffs, social issues, and current research trends. The successful student in this course will be prepared for an in-depth course in any of these topics. SEI-CM-6-1.1 Software Safety Nancy Leveson, University of California, Irvine Software safety involves ensuring that software will execute within a system context without resulting in unacceptable risk. Building safety-critical software requires special procedures to be used in all phases of the software development process. This module introduces the problems involved in building such software along with the procedures that can be used to enhance the safety of the resulting software product. SEI-CM-7-1.1 Assurance of Software Quality Brad Brown, Boeing Military Airplane Company This module presents the underlying philosophy and associated principles and practices related to the assurance of software quality. It includes a description of the assurance activities associated with the phases of the software development life-cycle (e.g., requirements, design, test, etc.). SEI-CM-8-1.0 Formal Specification of Software Alfs Berztiss, University of Pittsburgh This module introduces methods for the formal specification of programs and large software systems, and reviews the domains of application of these methods. Its emphasis is on the functional properties of software. It does not deal with the specification of programming languages, the specification of user-computer interfaces, or the verification of programs. Neither does it attempt to cover the specification of distributed systems. SEI-SM-8-1.0 Support Materials for Formal Specification of Software Alfs Berztiss, ed., University of Pittsburgh This support materials package includes materials helpful in teaching a course on formal specification of software. SEI-CM-9-1.2 Unit Testing and Analysis Larry J. Morell, College of William and Mary This module examines the techniques, assessment, and management of unit testing and analysis. Testing and analysis strategies are categorized according to whether their coverage goal is functional, structural, error-oriented, or a combination of these. Mastery of the material in this module allows the software engineer to define, conduct, and evaluate unit tests and analyses and to assess new techniques proposed in the literature. SEI-CM-10-1.0 Models of Software Evolution: Life Cycle and Process Walt Scacchi, University of Southern California This module presents an introduction to models of software system evolution and their role in structuring software development. It includes a review of traditional software life-cycle models as well as software process models that have been recently proposed. It identifies three kinds of alternative models of software evolution that focus attention to either the products, production processes, or production settings as the major source of influence. It examines how different software engineering tools and techniques can support life-cycle or process approaches. It also identifies techniques for evaluating the practical utility of a given model of software evolution for development projects in different kinds of organizational settings. SEI-CM-11-2.0 Software Specification: A Framework H. Dieter Rombach, University of Maryland This curriculum module presents a framework for understanding software product and process specifications. An unusual approach has been chosen in order to be able to address all aspects related to specification without confusing the many existing uses of the term. In this module, the term specification refers to any plan (or standard) according to which products of some type are constructed or processes of some type are performed, not to the products or processes themselves. In this sense, a specification is itself a product that describes how products of some type should look or how processes of some type should be performed. The framework includes (1) a reference software life-cycle model and terminology, (2) a characterizing scheme for software product and process specifications, (3) guidelines for using the characterization scheme to identify clearly certain life-cycle phases, and (4) guidelines for using the characterization scheme to select and evaluate specification techniques. SEI-CM-12-1.1 Software Metrics Everald E. Mills, Seattle University Effective management of any process requires quantification, measurement, and modeling. Software metrics provide a quantitative basis for the development and validation of models of the software development process. Metrics can be used to improve software productivity and quality. This module introduces the most commonly used software metrics and reviews their use in constructing models of the software development process. Although current metrics and models are certainly inadequate, a number of organizations are achieving promising results through their use. Results should improve further as we gain additional experience with various metrics and models. SEI-CM-13-1.1 Introduction to Software Verification and Validation James S. Collofello, Arizona State University Software verification and validation techniques are introduced and their applicability discussed. Approaches to integrating these techniques into comprehensive verification and validation plans are also addressed. This curriculum module provides an overview needed to understand in-depth curriculum modules in the verification and validation area. SEI-CM-14-2.1 Intellectual Property Protection For Software Pamela Samuelson, University of Pittsburgh School of Law Kevin Deasy, University of Pittsburgh School of Law This module provides an overview of the U.S. intellectual property laws that form the framework within which legal rights in software are created, allocated, and enforced. The primary forms of intellectual property protection that are likely to apply to software are copyright, patent, and trade secret laws, which are discussed with particular emphasis on the controversial issues arising in their application to software. Also included is a brief introduction to government software acquisition regulations, trademark, trade dress, and related unfair competition issues that may affect software engineering decisions, and to the Semiconductor Chip Protection Act. SEI-CM-16-1.1 Software Development Using VDM Jan Storbank Pedersen, Computer Resources International A/S This module introduces the Vienna Development Method (VDM) approach to software development. The method is oriented toward a formal model view of the software to be developed. The emphasis of the module is on formal specification and systematic development of programs using VDM. A major part of the module deals with the particular specification language (and abstraction mechanisms) used in VDM. SEI-CM-17-1.0 User Interface Development Gary Perlman, Massachusetts Institute of Technology This module covers the issues, information sources, and methods used in the design, implementation, and evaluation of user interfaces, the parts of software systems designed to interact with people. User interface design draws on the experiences of designers, current trends in input/output technology, cognitive psychology, human factors (ergonomics) research, guidelines and standards, and on the feedback from evaluating working systems. User interface implementation applies modern software development techniques to building user interfaces. User interface evaluation can be based on empirical evaluation of working systems or on the predictive evaluation of system design specifications. SEI-SM-17-1.0 Support Materials for User Interface Development Lionel Deimel, ed., Software Engineering Institute This support materials package includes materials helpful in teaching a course on user interface development. SEI-CM-18-1.0 An Overview of Technical Communication for the Software Engineer Robert L. Glass, Software Engineering Institute This module presents the fundamentals of technical communication that might be most useful to the software engineer. It discusses both written and oral communication. SEI-CM-19-1.1 Software Requirements John W. Brackett, Boston University This curriculum module is concerned with the definition of software requirements--the software engineering process of determining what is to be produced--and the products generated in that definition. The process involves all of the following: (1) requirements identification (2) requirements analysis (3) requirements representation (4) requirements communication (5) development of acceptance criteria and procedures. The outcome of requirements definition is a precursor of software design. Supercedes SEI-CM-1. SEI-CM-20-1.0 Formal Verification of Programs Alfs T. Berztiss, University of Pittsburgh Mark A. Ardis, Software Engineering Institute This module introduces formal verification of programs. It deals primarily with proofs of sequential programs, but also with consistency proofs for data types and deduction of particular behaviors of programs from their specifications. Two approaches are considered: verification after implementation that a program is consistent with its specification, and parallel development of a program and its specification. An assessment of formal verification is provided. SEI-CM-21-1.0 Software Project Management James E. Tomayko, The Wichita State University Harvey K. Hallman, Software Engineering Institute Software project management encompasses the knowledge, techniques, and tools necessary to manage the development of software products. This curriculum module discusses material that managers need to create a plan for software development, using effective estimation of size and effort, and to execute that plan with attention to productivity and quality. Within this context, topics such as risk management, alternative life-cycle models, development team organization, and management of technical people are also discussed. SEI-CM-22-1.0 Software Design Methods for Real-Time Systems Hassan Gomaa, George Mason University This module describes the concepts and methods used in the software design of real-time systems. It outlines the characteristics of real-time systems, describes the role of software design in real-time system development, surveys and compares some software design methods for real-time systems, and outlines techniques for the verification and validation of real-time designs. For each design method treated, its emphasis, concepts on which it is based, steps used in its application, and an assessment of the method are provided. SEI-CM-24 Concepts of Concurrent Programming David W. Bustard University of Ulster A concurrent program is one defining actions that may be performed simultaneously. This module discusses the nature of such programs and provides an overview of the means by which they may be constructed and executed. Emphasis is given to the terminology used in this field and the underlying concepts involved. SEI-CM-25 / SEI-SM-25 (Support Materials) Language and System Support for Concurrent Programming Michael B. Feldman, The George Washington University This curriculum module is concerned with support for concurrent programming provided to the applicaton programmer by operating systems and programming languages. This includes system calls and language constructs for process creation, termimation, synchronization, and communication, as well as nondeterministic language constructs such as the selective wait and timed call. Several readily available languages are discussed and compared; concurrent programming using system services of the UNIX operating system is introduced for the sake of comparison and contrast. Education Technical Reports CMU/SEI-86-TR-5, ADA178770 Harvey, H. Summary of the SEI Workshop on Software Configuration Management This report summarizes the discussion held during the Software Configuration Management meeting at the Software Engineering Institute in Pittsburgh on 16 July 1986. CMU/SEI-87-TR-20, ADA200603 Tomayko, J. 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. CMU/SEI-87-TR-44, ADA188927 Ford, G. 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. CMU/SEI-89-TR-21, ADA219018 Ardis, M. and 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 courses. Fifteen university graduate programs in software engineering are surveyed. CMU/SEI-90-TR-3 Ford, G. SEI Report on Undergraduate Software Engineering Education Fundamental issues of software engineering education are presented and discussed in the context of undergraduate programs. Included are discussions of the definition of software engineering and its differences from computer science, the need for undergraduate software engineering education, possible accreditation of undergraduate programs, and prospects for professional certification and licensing of software engineers. The objectives and content of an undergraduate program are described, as are strategies for the evolution and implementation of such programs. An appendix presents a report on the 1989 SEI Workshop on an Undergraduate Software Engineering Curriculum. CMU/SEI-90-TR-4 McSteen, W. et al Software Engineering Education Directory This directory provides information about software engineering courses and software engineering degree programs offered by universities, primarily in the United States. Other Educational Materials CMU/SEI-89-EM-1 Engle, Ford, Korson Software Maintenance Exercises for a Software Engineering Project Course This report provides an operational software system of 10,000 lines of Ada and several exercises based on that system. Concepts such as configuration management, regression testing, code reviews, and stepwise abstraction can be taught with these exercises. Diskettes containing code and documentation may be ordered for $10.00. (Please request either IBM PC or Macintosh disk format.) CMU/SEI-89-EM-2 Engle, Ford, Tomayko APSE Interactive Monitor: A Software Artifact for Software Engineering Education In 1987 the SEI began a search for a well-documented Ada system, developed under government contract, that could be used in software engineering education. The APSE Interactive Monitor (AIM) was determined to be appropriate for this purpose. This system acts as an interface between a user of an Ada programming support environment (APSE) and the programs that the user executes in the APSE. It provides facilities to support the concurrent execution of multiple interactive programs, each of which has access to a virtual terminal. Educational uses of the system are described, including use as a case study and as the basis for exercises. Software engineering topics that can be taught with the system include software maintenance, configuration management, software documentation, cost estimation, and object-oriented design. The APSE software and documentation may be downloaded from the SEI over the Internet via the UNIX ftp facility, or they may be ordered on tape from the SEI. The cost is $20.00 for VAX/VMS reel tape or $30.00 for VAX/VMS TK-50 cartridge tape. Conference and Workshop Records Conference and workshop records are available directly from Springer-Verlag. Prices are indicated. Please direct your orders directly to the publisher: Book Order Fulfillment, Springer-Verlag New York, Inc., Service Center Secaucus, 44 Hartz Way, Secaucus, NJ 07094. The numbers shown are ISBNs. Please specify these when ordering. 0-387-96469-X Gibbs, Fairley, eds. Software Engineering Education: The Educational Needs of the Software Community This volume contains the extended proceedings of the 1986 Software Engineering Education Workshop, held at the SEI and sponsored by the SEI and the Wang Institute of Graduate Studies. This workshop of invited software engineering educators focuses on master's level education in software engineering, with some discussion of undergraduate and doctoral level issues. Hardback, $37.50. 0-387-96840-7 Fairley, Freeman, eds. Issues in Software Engineering Education: Proceedings of the 1987 SEI Conferenc Proceedings of the 1987 SEI Conference on Software Engineering Education, held in Monroeville, Pa. Hardback, $45.00. 0-387-96854-7 Ford, ed. Software Engineering Education: SEI Conference 1988 Proceedings of the 1988 SEI Conference on Software Engineering Education, held in Fairfax, Va. (Lecture Notes in Computer Science No. 327.) Paperback, $20.60. 0-387-97090-8 Gibbs, ed. Software Engineering : SEI Conference 1989 Proceedings of the 1989 SEI Conference on Software Engineering Education, held in Pittsburgh, Pa. (Lecture Notes in Computer Science No. 376.) Paperback, $26.90. --