SEI Report on Graduate Software Engineering Education (1991)
Total Page:16
File Type:pdf, Size:1020Kb
Technical Report CMU/SEI-91-TR-002 ESD-TR-91-002 1991 SEI Report on Graduate Software Engineering Education Gary Ford April 1991 Technical Report CMU/SEI-91-TR-002 ESD-TR-91-002 April 1991 1991 SEI Report on Graduate Software Engineering Education ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ Gary Ford Software Engineering Curriculum Project Unlimited distribution subject to the copyright Software Engineering Institute Carnegie Mellon University Pittsburgh, Pennsylvania 15213 This report was prepared for the SEI Joint Program Office HQ ESC/AXS 5 Eglin Street Hanscom AFB, MA 01731-2116 The ideas and findings in this report should not be construed as an official DoD position. It ispublished in the interest of scientific and technical information exchange. FOR THE COMMANDER (signature on file) Thomas R. Miller, Lt Col, USAF SEI Joint Program Office This work is sponsored by the U.S. Department of Defense. Copyright© 1991 by Carnegie Mellon University. Permission to reproduce this document and to prepare derivative works from this document for internal use is granted, provided the copyright and “No Warranty” statements are included with all reproductions and derivative works. Requests for permission to reproduce this document or to prepare derivative works of this document for external and commercial use should be addressed to the SEI Licensing Agent. NO WARRANTY THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRAN- TIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTIBILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. This work was created in the performance of Federal Government Contract Number F19628-95-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. The Government of the United States has a royalty-free government-purpose license to use, duplicate, or disclose the work, in whole or in part and in any manner, and to have or permit others to do so, for government purposes pursuant to the copyright license under the clause at 52.227-7013. This document is available through Research Access, Inc., 800 Vinial Street, Pittsburgh, PA 15212. Phone: 1-800-685-6510. FAX: (412) 321-2994. RAI also maintains a World Wide Web home page. The URL is http://www.rai.com Copies of this document are available through the National Technical Information Service (NTIS). For informa- tion on ordering, please contact NTIS directly: National Technical Information Service, U.S. Department of Commerce, Springfield, VA 22161. Phone: (703) 487-4600. This document is also available through the Defense Technical Information Center (DTIC). DTIC provides ac- cess to and transfer of scientific and technical information for DoD personnel, DoD contractors and potential con- tractors, and other U.S. Government agency personnel and their contractors. To obtain a copy, please contact DTIC directly: Defense Technical Information Center, Attn: FDRA, Cameron Station, Alexandria, VA 22304- 6145. Phone: (703) 274-7633. Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark holder. Table of Contents 1. Introduction 1 2. A Model Curriculum for a Master of Software Engineering Degree 3 2.1. Summary of Changes Since 1989 3 2.2. Objectives 4 2.3. Prerequisites 6 2.4. Core Curriculum Content 9 2.5. Core Curriculum Topic Index 17 2.6. Curriculum Design 21 2.7. Project Experience Component 21 2.8. Electives 25 2.9. Pedagogical Considerations 25 2.10. The Structure of the MSE Curriculum 26 3. The SEI Academic Series Videotape Courses 29 3.1. Software Systems Engineering 30 3.2. Specification of Software Systems 33 3.3. Principles and Applications of Software Design 50 3.4. Software Creation and Maintenance 69 3.5. Software Verification and Validation 120 3.6. Software Project Management 142 4. Survey of Graduate Degree Programs in Software Engineering 161 5. Survey of Comprehensive Software Engineering Textbooks 189 6. Survey of Software Engineering Research Journals 207 6.1. Archival Journals 207 6.2. Other Journals 212 Appendix 1. An Organizational Structure for Curriculum Content 217 Appendix 2. Bloom’s Taxonomy of Educational Objectives 225 Appendix 3. SEI Curriculum Modules and Other Publications 227 Appendix 4. History and Acknowledgements 237 Bibliography 239 CMU/SEI-91-TR-2 i 1991 SEI Report on Graduate Software Engineering Education Abstract: This report on graduate software engineering education pre- sents a variety of information for university educators interested in establishing a software engineering program. This includes a model cur- riculum, an annotated bibliography of software engineering textbooks, and descriptions of major software engineering research journals. It also includes detailed descriptions of the the SEI Academic Series of videotape courses, which constitute an example of an implementation of the model curriculum. Twenty-three university graduate programs in software engineering are surveyed. Software engineering textbooks and research journals are also surveyed. 1. Introduction An ongoing activity of the SEI Education Program is the development and support of a model graduate curriculum in software engineering. In such a rapidly changing discipline, it is important that the curriculum be reevaluated and revised frequently to reflect the state of the art. This report describes our recent efforts toward that end. Section 2 of this report presents our current recommendations for the content of a Master of Software Engineering degree program. An implementation of these rec- ommendations, the SEI Academic Series, is described in Section 3. For comparison, the graduate software engineering programs of more than 20 universities are sur- veyed in Section 4. In response to questions frequently asked of the SEI Education Program, this report also includes two other surveys. Section 5 presents an annotated bibliography of general software engineering textbooks, including comments from professors who have used them. Section 6 lists the major software engineering journals. Background material is presented in the appendices. Appendices 1 and 2 are taken from [Ford87]; they present, respectively, an organizational structure for discussing software engineering curriculum content and a summary of Bloom’s taxonomy of educational objectives. Appendix 3 provides short descriptions of SEI publications that support graduate education, and Appendix 4 describes the history of, and acknowledges the numerous contributors to, the recommendations in this report. CMU/SEI-91-TR-2 1 2 CMU/SEI-91-TR-2 2. A Model Curriculum for a Master of Software Engineering Degree The academic community distinguishes two master’s level technical degrees. The Master of Science in Discipline is a research-oriented degree, and often leads to doc- toral study. The Master of Discipline is a terminal professional degree intended for a practitioner who will be able to rapidly assume a position of substantial responsi- bility in an organization. The former degree often requires a thesis, while the latter requires a project or practicum as a demonstration of the level of knowledge acquired. The Master of Business Administration (MBA) degree is perhaps the most widely recognized example of a terminal professional degree. The SEI was chartered partly in response to the perceived need for a greatly increased number of highly skilled software engineers. It is our belief that the SEI can best address this need by encouraging and helping academic institutions to offer a Master of Software Engineering (MSE) degree, or a program with similar content under another title. In this section we present our current recommendations for a model MSE curricu- lum. The first subsection (2.0) summarizes the changes since last year’s recommen- dations. The curriculum is then described in seven parts (subsections 2.2-2.8): program objectives, prerequisites, core curriculum content, core topic index, curricu- lum design for six core courses, the project experience component, and electives. These are followed by short discussions of pedagogical concerns (2.9) and the overall structure of the curriculum (2.10). These recommendations continue to evolve, and we expect to publish updated versions annually. 2.1. Summary of Changes Since 1989 In general, the curriculum recommendations in this report are the same as those in our previous report [Ardis89]. Two additions to the core content are notable. First, statistical testing concepts and techniques have been added to the unit on software testing. We believe that experiences such as those in [Musa90] indicate both the importance and increased maturity of these techniques. Including these topics in the curriculum will help students gain an appreciation for an engineering approach to testing, rather than an ad hoc, heuristic approach. Second, a new content unit has been added: Professional Issues. This unit includes legal considerations and professional ethics for software engineers. A number of interesting issues can be discussed with