ZeePedia

Table of Contents

INTRODUCTION >>
img
Software Engineering 2004
Curriculum Guidelines for Undergraduate
Degree Programs in Software Engineering
A Volume of the Computing Curricula Series
August 23, 2004
.
The Joint Task Force on Computing Curricula
IEEE Computer Society
Association for Computing Machinery
This material is based upon work supported by the
National Science Foundation under Grant No. 0003263
img
Preface
This document was developed through an effort originally commissioned by the ACM Education
Board and the IEEE-Computer Society Educational Activities Board to create curriculum
recommendations in several computing disciplines: computer science, computer engineering,
software engineering and information systems. Other professional societies have joined in a
number of the individual projects. Such has notably been the case for the SE2004 (Software
Engineering 2004) project, which has included participation by representatives from the
Australian Computer Society, the British Computer Society, and the Information Processing
Society of Japan.
Development Process
The SE2004 project has been driven by a Steering Committee appointed by the sponsoring
societies. The development process began with the appointment of the Steering Committee co-
chairs and a number of the other participants in the fall of 2001. More committee members,
including representatives from the other societies were added in the first half of 2002. The
following are the members of the SE2004 Steering Committee:
Co-Chairs
Rich LeBlanc, ACM, Georgia Institute of Technology, U.S.
Ann Sobel, IEEE-CS, Miami University, U.S.
Knowledge Area Chair
Ann Sobel, Miami University, U.S.
Pedagogy Focus Group Co-Chairs
Mordechai Ben-Menachem, Ben-Gurion University, Israel
Timothy C. Lethbridge, University of Ottawa, Canada
Co-Editors
Jorge L. Díaz-Herrera, Rochester Institute of Technology, U.S.
Thomas B. Hilburn, Embry-Riddle Aeronautical University, U.S.
Organizational Representatives
ACM: Andrew McGettrick, University of Strathclyde, U.K.
ACM SIGSOFT: Joanne M. Atlee, University of Waterloo, Canada
ACM Two-Year College Education: Elizabeth K. Hawthorne, Union County College,
U.S.
Australian Computer Society: John Leaney, University of Technology Sydney, Australia
British Computer Society: David Budgen, Keele University, U.K.
Information Processing Society of Japan: Yoshihiro Matsumoto, Musashi Institute of
Technology, Japan
IEEE-CS Technical Committee on Software Engineering: J. Barrie Thompson,
University of Sunderland, U.K.
SE2004 Volume ­ 8/23/2004
ii
img
Acknowledgements
The National Science Foundation, the Association of Computing Machinery, and the IEEE
Computer Society have supported the development of this document.
Since its inception, many individuals have contributed to the SE2004 project, some in more than
one capacity. This work could not have been completed without the dedication and expertise of
these volunteers. Appendix B lists the names of those that have participated in the various
development and review stages of this document. Special thanks go to Susan Mengel of Texas
Tech University who served as an original co-chair of the Steering Committee and performed the
initial organizational tasks for the SE2004 project.
SE2004 Volume ­ 8/23/2004
iii
img
Table of Contents
Preface........................................................................................................................................... ii
Acknowledgements ...................................................................................................................... iii
Chapter 1:
Introduction ............................................................................................................1
1.1  Purpose of this Volume .................................................................................................1
1.2  Where we fit in the Computing Curriculum picture .....................................................1
1.3  Development Process of the SE2004 Volume ..............................................................2
1.3.1  Education Knowledge Area Group ........................................................................2
1.3.2  Pedagogy Focus Area Group ..................................................................................3
1.3.3  Full Volume Development .....................................................................................3
1.4  Structure of the Volume ................................................................................................4
Chapter 2:
The Software Engineering Discipline ....................................................................5
2.1  The Discipline of Software Engineering .......................................................................5
2.2  Software Engineering as a Computing Discipline ........................................................6
2.3  Software Engineering as an Engineering Discipline.....................................................7
2.3.1  Characteristics of Engineering ...............................................................................7
2.3.2  Engineering design .................................................................................................8
2.3.3  Domain-specific software engineering ...................................................................8
2.4  Professional Practice .....................................................................................................9
2.4.1  Rationale .................................................................................................................9
2.4.2  Software Engineering Code of Ethics and Professional Practices .......................10
2.4.3  Curriculum Support for Professional Practice......................................................10
2.5  Prior Software Engineering Education and Computing Curriculum Efforts ..............10
2.6  SWEBOK and other BOK Efforts ..............................................................................11
Chapter 3:
Guiding Principles ................................................................................................13
3.1
SE2004 Principles .......................................................................................................13
3.2
Student Outcomes .......................................................................................................14
Chapter 4:
Overview of Software Engineering Education Knowledge .................................17
4.1
Process of Determining the SEEK ..............................................................................17
4.2
Knowledge Areas, Units, and Topics..........................................................................17
4.3
Core Material ..............................................................................................................18
4.4
Unit of Time ................................................................................................................18
4.5
Relationship of the SEEK to the Curriculum ..............................................................19
4.6
Selection of Knowledge Areas ....................................................................................19
4.7
SE Education Knowledge Areas .................................................................................20
4.8
Computing Essentials ..................................................................................................21
4.9
Mathematical and Engineering Fundamentals ............................................................23
4.10
Professional Practice ................................................................................................24
4.11
Software Modeling and Analysis.............................................................................25
4.12
Software Design.......................................................................................................27
4.13
Software Verification and Validation ......................................................................28
SE2004 Volume ­ 8/23/2004
iv
img
4.14
Software Evolution ..................................................................................................29
4.15
Software Process ......................................................................................................30
4.16
Software Quality ......................................................................................................31
4.17
Software Management .............................................................................................32
4.18
Systems and Application Specialties .......................................................................33
Chapter 5:
Guidelines for SE Curriculum Design and Delivery ............................................36
5.1
Guideline Regarding those Developing and Teaching the Curriculum ......................36
5.2
Guidelines for Constructing the Curriculum ...............................................................37
5.3
Attributes and Attitudes that should Pervade the Curriculum and its Delivery ..........39
5.4
General Strategies for Software Engineering Pedagogy .............................................44
5.5
Concluding Comment .................................................................................................46
Chapter 6:
Courses and Course Sequences ............................................................................47
6.1  Course Coding Scheme ...............................................................................................48
6.2  Introductory Sequences Covering Software Engineering, Computer Science and
Mathematics Material ...........................................................................................................49
6.2.1  Introductory Computing Sequence A: Start software engineering in first year. ..51
6.2.2  Introductory Computing Sequence B: Introduction to software engineering in
second year .........................................................................................................................52
6.2.3  Introductory Mathematics Sequences...................................................................53
6.3  Core Software Engineering Sequences .......................................................................54
6.3.1  Core Software Engineering Package I..................................................................55
6.3.2  Core Software Engineering Package II ................................................................56
6.3.3  Software Engineering Capstone Project ...............................................................57
6.4  Completing the Curriculum: Additional Courses .......................................................57
6.4.1  Courses covering the remaining compulsory material .........................................57
6.4.2  Non-SEEK courses ...............................................................................................58
6.5  Curriculum Patterns ....................................................................................................59
Chapter 7:
Adaptation to Alternative Environments ..............................................................65
7.1  Alternative Teaching Environments ...........................................................................65
7.1.1  Students at different physical locations ................................................................66
7.1.2  Students in class at different times .......................................................................66
7.2  Curricula for Alternative Institutional Environments .................................................67
7.2.1  Articulation problems ...........................................................................................67
7.2.2  Coordination with other university curricula .......................................................67
7.2.3  Cooperation with other institutions ......................................................................68
7.3  Programs for Associate-Degree Granting Institutions in the United States and
Community Colleges in Canada ...........................................................................................69
7.3.1  Special programs ..................................................................................................70
Chapter 8:
Program Implementation and Assessment ...........................................................71
8.1  Curriculum Resources and Infrastructure ...................................................................71
8.1.1  Faculty ..................................................................................................................71
8.1.2  Students ................................................................................................................71
8.1.3  Infrastructure ........................................................................................................71
8.1.4  Industry Participation ...........................................................................................72
SE2004 Volume ­ 8/23/2004
v
img
8.2
Assessment and Accreditation Issues..........................................................................72
8.3
SE in Other Computing-Related Disciplines ..............................................................73
Bibliography for Software Engineering Education .....................................................................75
Appendix A: Detailed Descriptions of Proposed Courses ...........................................................83
Appendix B: Contributors and Reviewers .................................................................................118
Index ..........................................................................................................................................127
SE2004 Volume ­ 8/23/2004
vi