Skip to main content

Über dieses Buch

Focus on masters' level education in software engineering. Topics discussed include: software engineering principles, current software engineering curricula, experiences with ex- isting courses, and the future of software engineering edu- cation.



Keynote Speech and Opening Discussion


People Are Our Most Important Product

The function of a keynote speech (if any) should be to give perspective. Coming from outside the software engineering research field, but from within the computer field, I would like to offer an outsider’s perspective on some current software engineering curricula proposals.
Frederick P. Brooks

Opening Discussion

Without Abstract
A. Nico Habermann

Section II


Software Engineering Principles

The Experimental Aspects of a Professional Degree in Software Engineering

Software engineering needs a support mechanism to aid in the transition of research results into practice. Such a mechanism for providing education, training and practical experience in software engineering could be provided by a special degree program: a Master of Software Engineering (MSE). The key to such a curriculum is the establishment of the equivalent of a teaching hospital through various software development organizations: a teaching software engineering laboratory. Combining classroom education with skill development, the professional software development laboratory will use the latest techniques and tools, and the practitioner will have the opportunity to gain experience in using them under the supervision of experts.
Victor R. Basili

Cognitive Science View of Software Engineering

The present foundations of software engineering are reviewed and found to be inadequate for an effective theory of software engineering. The properties that a foundation (or theory) of software engineering should have are developed. The present and possible future relationships between cognitive science and software engineering are explored. A cognitive based perspective on software engineering is outlined that offers the possibility of a coherent foundation for the field that will allow an ambitious and effective research agenda.
Gordon H. Bradley

Software Engineering Education: An Idealized Scenario

The ideal scenario for software engineering education in corporates a broadly based undergraduate program in computer science, mathematics, science, social sciences, business, and management; followed by one to two years of programmer-level work experience; followed by a professionally oriented masters program in software engineering; followed by a one to two year period of professional-level apprenticeship; followed, for some, by training at the doctoral level. Completion of each stage of the idealized program qualifies the graduate for a corresponding level of duties and responsibilities as a software engineer. This paper describes an idealized, comprehensive program of software engineering education, and is extracted from the technical report, “The Role of Academe in Software Engineering Education,” TR-85-19, Wang Institute, October, 1985.
Richard E. Fairley

Essential Elements of Software Engineering Education Revisited

Ten years ago an intellectual basis for software engineering education (SEE) was proposed that identified a set of components that should underlie any curriculum in the field [38]. Those components included computer science, management science, communication, problem-solving, and design; they stressed the integration of management and technical issues in software engineering.
Peter Freeman

Software Engineering and Computer Science: How Do They Differ?

“Thermodynamics owes much more to the steam engine than the steam engine owes to thermodynamics… if we look at the usual course of events in the historical record… there are very few examples where technology is applied science. Rather it is much more often the case that science is applied technology” (from “Sealing Wax and String: A Philosophy of the Experimenter’s Craft and its Role in the Genesis of High Technology,” Proceedings of the American Association for the Advancement of Science, annual meeting, 1983; D.D. Price).
Robert L. Glass

The Environment for the Software Engineer

The task of education and educators is threefold:
  • to teach basic principles that have a lasting value and can be applied in the analysis of events, phenomena and artifacts;
  • to provide insight into the current state of the art and the historic development that led to this state;
  • to teach a body of facts, procedures and mechanisms for the application of knowledge.
The fundamental aspects of education apply to every discipline, including software engineering, which has the objective of producing high quality software products and software tools. When software engineering emerged as a separate subdiscipline, most of the effort went into the development of concepts and methodologies. It has become clear in recent years that these concepts and methodologies will not be effective without the support of integrated tools and task-oriented programming environments. It is therefore necessary to pay sufficient attention in education to the engineering of these tools and environments.
A. Nico Habermann

Considerations for Graduate Software Engineering Education: An Air Force Perspective

This paper presents a graduate curriculum for software engineering education, as proposed by the Air Force Institute of Technology (AFIT). In order to define such a curriculum, it is first necessary to define what is meant by the term “software engineer,” and what capabilities are expected in a graduate of such a program. The process of “software engineering” is examined in the context of requirements for software system development and management within the Air Force. These requirements help define the fundamental concepts and techniques, as well as the support tools, which must be integrated into an effective curriculum for software engineering. The program presented incorporates both the theory and practice of software engineering. The proposed curriculum for a Master of Science degree with a major in software engineering is based on AFIT’s experience with software engineering education and its ongoing contact with many Air Force agencies involved in software development. Many of AFIT’s student thesis efforts have involved large-scale software developments which often extend from student to student over several years. This paper presents this program, along with supporting discussion of program objectives and course content.
Walter D. Seward, Thomas C. Hartrum, Gary B. Lamont, Duard S. Woffinden

Why Is Software Engineering So Difficult?

The development of computer software has taken on significant proportions in relation to other aspects of system development. As a result, overall system development efforts have become more difficult rather than easier in recent years. This weak link effect has done little to enhance the overall image of the field often called “software engineering.”
The inability to accurately define software engineering undoubtedly presages some of the difficulties of the discipline (if I can go so far as to call it a discipline). Most attempts at definition involve a set of general properties at one of three levels: the software development level (the micro view), the software lifecycle level (the macro view), or the system development level (the system view).
If we assume one of these definitions then we should be able to isolate and categorize the problems with software engineering from this perspective. It appears to me that there are four major categories of difficulties to address if we are to truly make software engineering a discipline of its own. These categories are:
  • the eclectic software engineer
  • the lack of a physical product
  • the complex problem set
  • the lack of good tools
This paper discusses these areas in some detail, not with an eye toward defining the solution set, rather with an eye toward a more rational definition of the problem.
William E. Richardson

Technology Selection Education for Software Engineers

Rocky Mountain Institute of Software Engineering
Creating and improving an adequate software engineering work force requires several different types of continuing education for software professionals. Task-oriented education is needed to make already well-educated managerial and technical personnel effective for specific jobs, projects and organizations. Improvement-oriented education is needed to upgrade experienced personnel with a working knowledge of new software engineering technology. Selection-oriented education is needed to provide an exposure to new techniques and concepts sufficient to impart an appreciation of the technology’s cost/benefit and allow well-founded decisions about whether or not to adopt it. We discuss the need for selection-oriented education, the characteristics of a successful selection-oriented education program, the requirements it levies against other education programs, and the attempt being made at the Rocky Mountain Institute of Software Engineering to provide such a program.
William E. Riddle, Lloyd G. Williams

Graduate-level Software Engineering Education: A Practitioner’s Viewpoint

The definition of what software engineering is and what constitutes a software engineer are issues of continuing question and debate. In a sense, we find ourselves at the mercy of having created a title that has not yet been well reconciled with a body of scientific knowledge a la electrical or other fields of engineering. A consensus on its meaning is still ahead of us, the widespread acceptance of software engineering as an appropriate label reflects a pervasive sense of urgency that programming professionals must operate within certain bounds of discipline and control that become inherent in the profession. The breadth of acceptance of software engineering, as an urgent professional discipline need, embraces industry, government, and academia. Each of these segments of the community has made and continues to make significant contributions to the rapid evolution of the programming profession. As a result, we are in a position today to develop recommendations on the content of an academic program which can, in a concerted fashion, accelerate the cultivation of a software engineering profession. This paper will, based on my experiences, recommend a direction for a graduate-level program in software engineering. It does not attempt to define a specific set of courses and sequencing.
S. E. Smith

Some Observations on the Nature of the Software Engineering “Problem” and Their Implications for Software Engineering Education

The term “software engineering” is somewhat synonymous with “methodology.” Yet, methodology should not play a major role in professional education, because a methodology is a tool, which will become obsolete: it should be taught, but it should be treated as a tool, not as the central topic of the discipline.
William A. Wulf

Current Software Engineering Curricula

Adapting to Changing Needs: A New Perspective on Software Engineering Education at Texas Christian University

In response to the need for skilled software engineers, Texas Christian University, in the Fall of 1978, established a Master’s Degree in Software Engineering, the first such degree program of its kind in the country. After three years of experience with this program, the curriculum was revised in 1981 to reflect the changing needs of the software engineering profession. This revised curriculum, currently in place at Texas Christian University, is described and evaluated. Avenues of future curriculum expansion are explored.
James R. Comer, David J. Rodjak

The Software Engineering First Degree at Imperial College, London

This brief paper, with its appendix, provides a broad view of the four year Master of Engineering course at Imperial College. A more complete description, including fuller syllabi will, it is expected, be available at the workshop.
M. M. Lehman

The Master of Software Engineering Program at Seattle University after Six Years

In 1977–78 Seattle University initiated a series of discussions with representatives from local business and industry. In those discussions, software engineering emerged as a critical area of need for specialized educational programs. As a result of this cooperative effort, Seattle University established the Master of Software Engineering [MSE] program. This program is now in its seventh year of operation and has produced four graduating classes. Rather than preparing students to enter the software engineering profession, the MSE program is a way for those already engaged in software engineering to improve their educational background and technical skills. The program is intended to cover both the technical and management aspects of software engineering. This paper discusses the philosophy, objectives, and implementation of the program.
Everald E. Mills

Academic/Industrial Collaboration in a Postgraduate Master of Science Degree in Software Engineering

This paper outlines the organisation of a new Master of Science (MSc) in Software Engineering that has been set up as a specialist conversion course1 for graduates who have had some experience of computer programming. The most distinctive feature of the programme is that this degree involves the participation of an industrial partner in providing some of the teaching and a period of industrial placement. Some observations upon the first year of this degree have been included.
David Budgen, Peter Henderson, Chic Rattray

Experiences With Existing Courses

Skills versus Knowledge in Software Engineering Education: A Retrospective on the Wang Institute MSE Program

The author was a faculty member for three years (1982–1985) in the Master of Software Engineering (MSE) program (hereafter abbreviated as WIMSE) at the Wang Institute of Graduate Studies. This paper distills that experience, organized in the form of questions on the following topics:
  • What is a software engineer?
  • What is software engineering?
  • What has been learned about software engineering education?
A framework for analyzing the WIMSE experience will be constructed and followed throughout the questions, with interspersed recommendations appropriate for the SEI Education Workshop. The purpose of this paper is to provide some informal and subjective (and probably idealized) observations on the WIMSE curriculum to complement the more formal and objective information that is available in [2]. The state of software engineering is also seen from the view of software engineering education.
Susan L. Gerhart

Experience with a Software Engineering Project Course

This paper presents an approach to meeting the academic objectives of advanced software engineering project courses. The objectives are increased competence and confidence of the students in carrying out software development projects. The academic context includes a simulated industrial context. Part of the industrial context consists of industrial roles played for the student team by the instructor and others. The project itself is divided into tasks related to deliverables and collateral responsibilities. The software production model is a combination of the waterfall, iterative enhancement and document-driven techniques. A software development environment is mentioned although the details are presented elsewhere. A list of project courses offered at Wang Institute (1982–85) is appended. Further detail is given for four project courses conducted by the author.
W. M. McKeeman

Software Engineering Project Laboratory: The Bridge Between University and Industry

The study of computer science, which concentrates programming languages, compiler construction, and operating system courses, does not adequately prepare an individual to build large software systems. This paper describes a two semester software engineering laboratory course to develop a student’s understanding of software engineering and its relationship with computer science. This laboratory course also is intended to help computer science students make the transition from the school environment to the professional environment. It provides an opportunity to practice software engineering in an industrial/business situation under an engineering or product acquisition type contract. In addition the students assume project responsibilities broader in scope than they would normally have the opportunity to assume in their first years of employment. Problems and issues in instructing and managing a software engineering course of this type are discussed.
Richard H. Thayer, Leo A. Endres

Software Projects in an Academic Environment

This paper describes our experience in using a programming project as an adjunct to a graduate-level course in software engineering. It discusses the strengths and weaknesses of the project as a teaching tool.
David B. Wortman

Exercises in Software Engineering

Typical software engineering courses teach principles in lectures and readings, then apply them in the development of a single program (requiring several months). We recently taught a software engineering class that incorporated many smaller exercises (requiring several hours). The class was successful. Students were able to experiment with a broad set of ideas, and make interesting mistakes without jeopardizing the grades of their development team. This paper describes some tools and techniques we taught, and suggests how they might be incorporated into typical software engineering classes.
Jon Louis Bentley, John A. Dallen

Future of Software Engineering Education

Trends in National Science Foundation Funded Research and Their Impact on Software Engineering Education

Trends in software engineering education are discussed from the point of view of the changing environment for both education and research in computer science and engineering. Programs of the National Science Foundation and other federal agencies along with substantial contributions from private industries and foundations have dramatically changed the research infrastructure. These changes have generated important consequences for both graduate and undergraduate education.
W. Richards Adrion, Bruce H. Barnes

Software Engineering: Anomalies in Today’s Education and a Prospectus for the Future

“The only things that are new today are in the history that we have forgotten.” The purpose of this effort is to set up a beacon in front of a few of the pitfalls that exist and lie ahead in the advance of software engineering as the focus of computing for the late 80’s, 90’s and into the 21st century.
The United States Government, the Department of Defense, and the Navy specifically have and are spending literally billions of dollars on software development, maintenance, and training. Yet these billions are delivering orders of magnitude less returns in field equipment efficiency, goal attainment, and mission-critical systems being delivered on time. The software crisis or gap in software management tools to handle tomorrow’s problems today can be met and bridged. This paper will introduce a few of the tools that exist today, and describe how using current technology, these tools might enable our scholars, future scholars, and professional programmers to conceive, build, and manage the programming systems needed.
George F. Rowland

Education for the Future of Software Engineering

The discipline of software engineering is developing rapidly. Its practitioners must deal with an evolving collection of problems and with new technologies for dealing with those problems. Software engineering education must anticipate new problems and technologies, providing education in the enduring principles of the field in the context of the best current practice. Since changes in the discipline cannot be completely anticipated, software engineers must be able to assume responsibility for their own continuing professional development. This paper describes significant changes now taking place in the field of software engineering and proposes some goals and objectives for the professional education of software engineers.
Mary Shaw



Without Abstract
Norman E. Gibbs, Richard E. Fairley



Report of the Software Engineering Principles Working Group

This is the presentation made by A. Nico Habermann, Carnegie-Mellon University, summarizing the discussions of the working group on software engineering principles. This group was charged with determining the fundamental principles on which software engineering, and thus a curriculum, can be based.
A. Nico Habermann

Report of the Current Software Engineering Curricula Working Groups

Report of the Subgroup on Existing Curricula
This is the presentation made by Al Pietrasanta, IBM Corporation, summarizing the discussions of the subgroup on existing curricula. This subgroup was charged with examining the programs at various schools to see what lessons could contribute to the development of the SEI graduate curriculum.
A. L. Pietrasanta

Report of the Current Software Engineering Curricula Working Groups

Report of the Subgroup on Best Curriculum
This is the presentation made by Jon Bentley of AT&T Bell Laboratories, summarizing the discussions of the subgroup on best curriculum. This subgroup concentrated on identifying the best that can be done now to improve software engineering education.
John Bentley

Report of the Future Software Engineering Curriculum Working Group

This is the presentation made by Dick Fairley, Wang Institute, summarizing the discussions of the working group on future software engineering curriculum. This working group was charged with the task of looking 10 years into the future of software engineering to examine the educational needs for the practitioners in the 1990’s.
Dick Fairley


Weitere Informationen