SEI Report on Graduate Software Engineering Education (1991)

Total Page:16

File Type:pdf, Size:1020Kb

SEI Report on Graduate Software Engineering Education (1991) 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
Recommended publications
  • January 1993 Reason Toexpect That to Theresearchcommunity
    COMPUTING R ESEARCH N EWS The News Journal of the Computing Research Association January 1993 Vol. 5/No. 1 Membership of Congress changes significantly BY Fred W. Weingarten also was re-elected. He has proven to be attention on high-technology, the seniority for chair of that subcommit- CRA Staff an effective and well-informed chair, committee possibly will attract more tee. His attitude toward science and Although incumbents fared better in but given the turnover in the House members. But it will never have the technology is not well-known. and his rising political star, he may not attraction or political power of the the November elections than was Senate expected, the membership of Congress remain active in R&D policy. Boucher Energy and Commerce Committee, the has changed significantly. Congress has also served on the Energy and Com- Ways and Means Committee or the The Senate is stable because there 118 new members, and some key merce Subcommittee on Telecommuni- Appropriations Committee, which also was less turn-over and science is under members were defeated or retired, so cations and Finance, where he ex- will have openings. Unless they have the Commerce Committee, which is a there will be quite a bit of change in the pressed a great deal of interest in specific interests and expertise in plum. Vice President-elect Al Gore will membership of committees and stimulating the creation of a broadband, science and technology, members with be replaced as chair of the science subcommittees concerned with digital national information infrastruc- seniority and influence tend to gravitate subcommittee.
    [Show full text]
  • Structured Programming - Retrospect and Prospect Harlan D
    University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange The aH rlan D. Mills Collection Science Alliance 11-1986 Structured Programming - Retrospect and Prospect Harlan D. Mills Follow this and additional works at: http://trace.tennessee.edu/utk_harlan Part of the Software Engineering Commons Recommended Citation Mills, Harlan D., "Structured Programming - Retrospect and Prospect" (1986). The Harlan D. Mills Collection. http://trace.tennessee.edu/utk_harlan/20 This Article is brought to you for free and open access by the Science Alliance at Trace: Tennessee Research and Creative Exchange. It has been accepted for inclusion in The aH rlan D. Mills Collection by an authorized administrator of Trace: Tennessee Research and Creative Exchange. For more information, please contact [email protected]. mJNDAMNTL9JNNEPTS IN SOFTWARE ENGINEERING Structured Programming. Retrospect and Prospect Harlan D. Mills, IBM Corp. Stnuctured program- 2 ' dsger W. Dijkstra's 1969 "Struc- mon wisdom that no sizable program Ste red .tured Programming" articlel could be error-free. After, many sizable ming haxs changed ho w precipitated a decade of intense programs have run a year or more with no programs are written focus on programming techniques that has errors detected. since its introduction fundamentally alteredhumanexpectations and achievements in software devel- Impact of structured programming. two decades ago. opment. These expectations and achievements are However, it still has a Before this decade of intense focus, pro- not universal because of the inertia of lot of potentialfor gramming was regarded as a private, industrial practices. But they are well- lot of fo puzzle-solving activity ofwriting computer enough established to herald fundamental more change.
    [Show full text]
  • Printed Program
    rd International Conference 43 on Software Engineering goes Virtual PROGRAM May 25th –28th 2021 Co-located events: May 17th –May 24th Workshops: May 24th , May 29th –June 4th https://conf.researchr.org/home/icse-2021 @ICSEconf Table of Contents Conference overviews ............................................................... 3 Sponsors and Supporters ......................................................... 11 Welcome letter ........................................................................ 13 Keynotes ................................................................................. 18 Technical Briefings ................................................................. 28 Co-located events .................................................................... 35 Workshops .............................................................................. 36 New Faculty Symposium ........................................................ 37 Doctoral Symposium .............................................................. 39 Detailed Program - Tuesday, May 25th .................................................... 42 - Wednesday, May 26th ............................................... 53 - Thursday, May 27th .................................................. 66 - Friday, May 28th ....................................................... 80 Awards .................................................................................... 91 Social and Networking events ................................................. 94 Organizing Committee ........................................................
    [Show full text]
  • Testing for Trustworthiness in Scientific Software
    Testing for Trustworthiness in Scientific Software Daniel Hook Diane Kelly Queen's University Royal Military College of Canada Kingston Ontario Kingston Ontario Abstract expected – and correct – results. Weyuker notes that in Two factors contribute to the difficulty of testing many cases, an oracle is pragmatically unattainable. scientific software. One is the lack of testing oracles – With scientific software, this is almost always the case. a means of comparing software output to expected and Weyuker further comments that if the oracle is correct results. The second is the large number of tests unattainable, then “from the view of correctness testing required when following any standard testing … there is nothing to be gained by performing the technique described in the software engineering test.” For scientific software, this is a depressing and literature. Due to the lack of oracles, scientists use disturbing conclusion. However, there is instead a goal judgment based on experience to assess of trustworthiness rather than correctness that can be trustworthiness, rather than correctness, of their addressed by testing. software. This is an approach well established for In this paper, we first outline a typical development assessing scientific models. However, the problem of environment for scientific software, then briefly assessing software is more complex, exacerbated by discuss testing. This leads to a discussion of the problem of code faults. This highlights the need for correctness and trustworthiness from the view of the effective and efficient testing for code faults in scientist who develops and uses scientific software. We scientific software. Our current research suggests that then introduce new results from our analysis of a small number of well chosen tests may reveal a high samples of scientific software using mutation testing.
    [Show full text]
  • What Every Engineer Should Know About Software Engineering
    7228_C000.fm Page v Tuesday, March 20, 2007 6:04 PM WHAT EVERY ENGINEER SHOULD KNOW ABOUT SOFTWARE ENGINEERING Phillip A. Laplante Boca Raton London New York CRC Press is an imprint of the Taylor & Francis Group, an informa business © 2007 by Taylor & Francis Group, LLC 7228_C000.fm Page vi Tuesday, March 20, 2007 6:04 PM CRC Press Taylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742 © 2007 by Taylor & Francis Group, LLC CRC Press is an imprint of Taylor & Francis Group, an Informa business No claim to original U.S. Government works Printed in the United States of America on acid-free paper 10 9 8 7 6 5 4 3 2 1 International Standard Book Number-10: 0-8493-7228-3 (Softcover) International Standard Book Number-13: 978-0-8493-7228-5 (Softcover) This book contains information obtained from authentic and highly regarded sources. Reprinted material is quoted with permission, and sources are indicated. A wide variety of references are listed. Reasonable efforts have been made to publish reliable data and information, but the author and the publisher cannot assume responsibility for the validity of all materials or for the conse- quences of their use. No part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers. For permission to photocopy or use material electronically from this work, please access www.
    [Show full text]
  • Software Development Process for Teams with Low Expertise, High-Rotation and No- Architect: a Systematic Mapping Study
    Software Development Process for Teams with Low Expertise, High-Rotation and No- Architect: A Systematic Mapping Study Paulina Valencia Franco Angelina Espinoza, Humberto Cervantes Maceda Electrical Engineering Department, Electrical Engineering Department, Universidad Autónoma Metropolitana Universidad Autónoma Metropolitana Iztapalapa, México Iztapalapa, México Email: paulatina63 –at- gmail.com Email: aespinoza, hcm -at- xanum.uam.mx Abstract —To have a well-organized software team is Process) [1], TSP (Team Software Process) [2], PSP (Personal fundamental to achieve the business goals in a software Software Process) [3], XP (Extreme Programming) [4] or development project, such as: functionality and quality in the SCRUM [5]. planned times. However, the teams present a particular problematic that are common in both industrial and academic These methodologies, for their nature, are more or less settings, this paper focuses on three: a) Teams with members prepared to face the team features previously mentioned, but with low expertise on methodologies, b) Teams with high member the real big challenge is to combine these models, to get an rotations, or c) Teams lacking a software architect. One adapted process model for overcoming all the three previous approach to address this situation is to define a software features in development teams. Particularly, these kinds of development process, adapted from the adaptability teams are commonly found in academic environments where characteristics and benefits offered by several methodologies there are not resources to hire a technical leader, nor currently used, in order that the development team obtains the experienced staff, so that development teams are mainly expected results in terms of productivity, time and quality of the comprised of students who are in constant rotation.
    [Show full text]
  • Adapting the Harris Matrix for Software Stratigraphy
    Adapting the Harris Matrix for Software Stratigraphy Andrew Reinhard Edward Harris’s (1979) landmark work, Principles of preservation of these born-digital archaeological Archaeological Stratigraphy, from which sprouted sites. the idea and practice of the Harris matrix, became This is not a new concern for people who work within the broad my windmill (or albatross) in 2017 as I attempted to umbrella of “digital humanities.” “Software archaeology”—the leverage its data visualization technique onto a digital attempt to reverse-engineer poorly documented (or undocu- mented) software in order to restore and preserve functionality— archaeological site. This visualization would not only has existed formally for over 15 years.1 Digital preservation is allow archaeologists to understand the composition also not a new idea and forms a border of software archaeology; namely, what to do with software post-use or post-“excavation.”2 and history of a digital built environment—something None of the software archaeology approaches, however, treat important to the emerging field of digital heritage— software as archaeological sites in the traditional sense, and I wanted to see what would happen if I conducted a truly archaeo- but also would contribute to the conservation and logical investigation of a software application using a tool known ABSTRACT In 1979, Edward C. Harris invented and published his eponymous matrix for visualizing stratigraphy, creating an indispensable tool for generations of archaeologists. When presenting his matrix, Harris also detailed his four laws of archaeological stratigraphy: superposition, original horizontal, original continuity, and stratigraphic succession. In 2017, I created the first stratigraphic matrix for software, using as a test the 2016 video game No Man’s Sky (Hello Games).
    [Show full text]
  • Research Booklet 2020-21
    RESEARCH BOOKLET 2020-21 TABLE OF CONTENTS CONTACT INFORMATION ............................................................................................................................................... III OVERVIEW OF RESEARCH IN COMPUTER SCIENCE AT UCF .................................................................................. V ................................................................................................................................................................................................ 0 FACULTY RESEARCH SUMMARIES ............................................................................................................................. 0 Ulas Bagci ........................................................................................................................................................................ 1 Ladislau Bölöni ................................................................................................................................................................ 1 Mainak Chatterjee ............................................................................................................................................................ 2 Guoxing Chen ................................................................................................................................................................... 2 Carolina Cruz-Neira ..........................................................................................................................................................
    [Show full text]
  • Software Preservation Benefits Framework
    Software Preservation Benefits framework CC443D006-1.0 7 December 2010 Cover + 74 pages Neil Chue Hong Steve Crouch Simon Hettrick Tim Parkinson Matt Shreeve Software Sustainability Institute Curtis+Cartwright Consulting Ltd The University of Edinburgh Main Office: Surrey Technology Centre, Registered in England: number 3707458 James Clerk Maxwell Building Surrey Research Park, Guildford Mayfield Road Surrey GU2 7YG Registered address: Edinburgh EH9 3JZ Baker Tilly, The Clock House, tel: +44 (0)1483 685020 140 London Road, Guildford, tel: +44 (0) 131 650 5030 fax: +44 (0)1483 685021 Surrey GU1 1UW email: [email protected] email: [email protected] web: http://www.software.ac.uk web: http://www.curtiscartwright.co.uk Summary of framework 1 An investigation of software preservation has been carried out by Curtis+Cartwright Consulting Limited, in partnership with the Software Sustainability Institute (SSI), on behalf of the JISC.1 The aim of the study was to raise awareness and build capacity throughout the Further and Higher Education (FE/HE) sector to engage with preservation issues as part of the process of software development. Part of this involved examining the purpose and benefits of employing preservation measures in relation to software, both at the development stage and retrospectively to legacy software. The study built on the JISC-funded ‘Significant Properties of Software’ study2 that produced an excellent introduction and comprehensive framework to software preservation. 2 This is a framework document that assists developer groups and their sponsoring bodies to understand and gauge the benefits or disbenefits of allocating effort to: – ensuring that preservation measures are built into software development processes; – actively preserving legacy software.
    [Show full text]
  • Sustainable Software Development Through Overlapping Pair Rotation Todd Sedano Paul Ralph Cécile Péraire
    Carnegie Mellon University From the SelectedWorks of Cécile Péraire September, 2016 Sustainable Software Development through Overlapping Pair Rotation Todd Sedano Paul Ralph Cécile Péraire Available at: https://works.bepress.com/cecile_peraire/35/ Sustainable Software Development through Overlapping Pair Rotation Todd Sedano Paul Ralph Cécile Péraire Pivotal University of Auckland Carnegie Mellon Unveristy 3495 Deer Creak Road Auckland Silicon Valley Campus Palo Alto, CA New Zealand Moffett Field, CA 94035, USA [email protected] [email protected] [email protected] ABSTRACT Keywords Context: Conventional wisdom says that team disruptions Extreme Programming, Grounded Theory, Code ownership, (like team churn) should be avoided. However, we have ob- Sustainable software development served software development projects that succeed despite high disruption. 1. INTRODUCTION Objective: The purpose of this paper is to understand Imagine being a software development manager when one how to develop software effectively, even in the face of team of your top engineers, Dakota, gives notice and is moving on disruption. to a new job opportunity. You are simultaneously excited Method: We followed Constructivist Grounded Theory. because the new position provides a great career opportu- We conducted participant-observation of several projects at nity for someone you respect, yet distressed that her depar- Pivotal (a software development company), and interviewed ture may exacerbate your own project. How will the team 21 software engineers, interaction designers, and product overcome this disruption? Your investment in this engineer managers. The researchers iteratively sampled and analyzed and her entire accumulated knowledge about the project is the collected data until achieving theoretical saturation. evaporating. Dakota developed some of the systems' tricki- Results: This paper introduces a descriptive theory of Sus- est, most important components.
    [Show full text]
  • Pdf: Software Testing
    Software Testing Gregory M. Kapfhammer Department of Computer Science Allegheny College [email protected] I shall not deny that the construction of these testing programs has been a major intellectual effort: to convince oneself that one has not overlooked “a relevant state” and to convince oneself that the testing programs generate them all is no simple matter. The encouraging thing is that (as far as we know!) it could be done. Edsger W. Dijkstra [Dijkstra, 1968] 1 Introduction When a program is implemented to provide a concrete representation of an algorithm, the developers of this program are naturally concerned with the correctness and performance of the implementation. Soft- ware engineers must ensure that their software systems achieve an appropriate level of quality. Software verification is the process of ensuring that a program meets its intended specification [Kaner et al., 1993]. One technique that can assist during the specification, design, and implementation of a software system is software verification through correctness proof. Software testing, or the process of assessing the func- tionality and correctness of a program through execution or analysis, is another alternative for verifying a software system. As noted by Bowen, Hinchley, and Geller, software testing can be appropriately used in conjunction with correctness proofs and other types of formal approaches in order to develop high quality software systems [Bowen and Hinchley, 1995, Geller, 1978]. Yet, it is also possible to use software testing techniques in isolation from program correctness proofs or other formal methods. Software testing is not a “silver bullet” that can guarantee the production of high quality software systems.
    [Show full text]
  • Software Guide the Computer with Growth Potential
    February 1980 Volume 3 Issue 2 NEW: Professional software guide The computer with growth potential The System Three is Cromemco's best selling small business computer. It's easy to see why. Not only is it ideal for the first time computer user. But perhaps more important, it can be expanded into a comprehensive business facility servicing many varied company requirements. Single -user system You can start small. A 64K computer with a megabyte of floppy disc storage costs under £4,000.* Perhaps your initial reason for choosing Cromemco was its flexible database management system-ideal for client records, order processing, sales analysis, inventory control, and many more business uses; or you might have required the full screen word processing system, capable of printing up to 20 original letters an hour; possibly you needed Cobol, Basic or Fortran to develop your own customised packages. Single -user System Three, with 64K memory, 2 discs, terminal and printer. Easy to use Ideal for small businesses. Whatever the reason, you were highly impressed with the ease with which your Will it expand? Multi-user system very first computer application got off the It was then you discovered that the Fortunately, we can readily expand your ground. So you added another. And terminal is the limiting factor, because ofCromemco. Unlike other makers' systems, another. And pretty soon quite a lot of the time taken to input data. If only you all we need to do is add some memory and a company business was running on your could connect a second terminal you ®TU-ART interface, and the multi-user Cromemco.
    [Show full text]