|
|||||
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
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
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
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
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
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
Table of Contents:
|
|||||