Software Engineering 2004: ACM/IEEE-CS Guidelines for Undergraduate Programs in Software Engineering Joanne M. Atlee†
Richard J. LeBlanc, Jr.†
Timothy C . Lethbridge†
School of Computer Science University of Waterloo, Canada
[email protected]
College of Computing Georgia Institute of Technology
[email protected]
School of Information Technology and Engineering University of Ottawa, Canada
[email protected]
Ann Sob el†
J. Barrie Thompson†
School of Engineering and Applied Science Miami University
[email protected]
School of Computing and Technology University of Sunderland
[email protected] and (4) patterns for packaging the SEEK into courses and curricula for a wide variety of contexts. Finally, some views o n the volume’s use by educators and researchers are given.
ABSTRACT
This paper is an overview of Software Engineering 2004, the Software Engineering volume of the Computing Curricula 2001 project. We briefly describe the contents of the volume, the process used in developing the volume’s guidelines, and how we expect the volume to be used in practice.
2. SE2004 DEVELOPMENT A number of tactics were employed to encourage members of the SE academic, research, and industrial communities t o participate in the volume’s development: o Open meetings and workshops were held at major conferences (e.g., ICSE, CSEET), to solicit early views o n SE education, to provide feedback on work in progress, and to evaluate sections of the volume via active reviews. o An invited workshop, funded partly by the National Science Foundation, was held, during which leading SE educators and practitioners helped to identify the set of SE concepts and techniques that would constitute a core body of knowledge for SE undergraduate curricula. o Almost a hundred volunteers from the international SEeducation community were recruited to develop drafts of a core body of SE education knowledge (SEEK) and drafts of pedagogical guidelines for using such a body of knowledge to create undergraduate programs in SE. o Multiple rounds of public reviews were held via the Internet, to attain feedback on the proposed SEEK and o n drafts of the volume. Reviewers’ comments and responses to comments can be found on the project Web site [2]. o Recognized experts in academia, research, and industry were invited to review drafts of the SEEK and the volume. o Presentations at major conferences (e.g., ICSE, FSE, CSEET) were held to keep the community informed. o Articles appeared in community publications, such as FASE and ACM SIGSOFT Software Engineering Notes (e.g., [3]), to inform the community and to solicit participation in public reviews. In its annual report, the ACM Education Board commended the SE2004’s development, saying that it “sets a new standard for international involvement in the development and sponsorship of curriculum guidelines” and “sets a new standard for acquiring and responding to public comment” [1].
Categories and Subject Descriptors K.3.2 [Computers and Education]: Computer and Information Science Education – curriculum; D.2 [Software Engineering]
General Terms Standardization
Keywords Software engineering education
1. INTRODUCTION In autumn 1998, IEEE-CS and the ACM established a joint task force to produce a new version of their curricular guidelines for undergraduate programs in computing. The project was named Computing Curricula 2001 (CC2001) and has led to the production of five volumes of curricula guidelines, one of which is devoted to Software Engineering (SE). Work on the SE curricula evolved from the Software Engineering Education Project (SWEEP), which was set up by the ACM and IEEE-CS, to address education issues relevant t o software engineering. In late 2001, SWEEP was replaced by the ACM/IEEE-CS joint project group titled Computing Curricula – Software Engineering (CCSE). Work on the actual Software Engineering volume (SE2004) [4] began in earnest in early 2002 and finished in August 2004. The SE2004 volume contains a wealth of information for educators who seek advice on how to design and implement an undergraduate degree program in software engineering. The following four sections highlight some of the volume’s notable achievements: (1) the scope of the SE community’s participation in the volume’s development, (2) international consensus on a core body of software-engineering educational knowledge (the SEEK), (3) guidelines for developing curricula,
3. SEEK The SEEK comprises the essential and desirable knowledge and skills that any software-engineering program should try t o include in its curriculum. This body of knowledge includes knowledge from related disciplines (e.g., mathematics, computer science, engineering, economics) as well as softwareengineering knowledge. Table 1 shows part of the SEEK’s
Copyright is held by the author/owner(s). ICSE’05, May 15-21, 2005, St. Louis, Missouri, USA. Copyright 2005 ACM 1-58113-963-2/05/0005 †
On behalf of the CCSE Steering Committee
623
Software Modeling and Analysis knowledge area and the Modeling Foundations unit within that knowledge area. The SEEK specifies the minimum number of lecture hours that ought to be devoted to covering each knowledge area and unit, and the set of topics that fall under each unit. Each topic i s assessed as being essential (E), desirable (D), or optional (O) t o the core curriculum and is annotated with the degree to which students are expected to master the topic: to be able to recall the knowledge (k), to adapt the knowledge to new contexts (c), or to apply (a) the knowledge in solving problems. The SEEK does not purport to be complete. Rather, it captures practices and principles that are applicable to most software products, provide some assurance of quality, and can be covered adequately in an undergraduate-level program.
curriculum patterns, showing how courses can be combined into degree programs in various contexts, such as international contexts, computer-science vs. engineering contexts, and reduced course-load contexts. Table 2: Engineering-style curricular pattern (adapted from [4])
Year 1
a
E
Pre & post conditions, invariants
c
E
Introduction to mathematical languages (Z, VDM, etc.)
models
and
specification
c
E
Properties of modeling languages
k
E
Syntax vs. semantics (understanding model representations)
c
E
Explicitness (make no assumptions, or state all assumptions)
k
E
…
…
…
Year 2
Year 3 Sem 3A
Prog Fund
OO Paradigm
Data Str & Alg
Comp Arch
OS & Capstone Capstone Networks Database Proj Proj
Calc 1
Calc 2
Calc 3
Software Construct
Physics 2
Statistics
Sem 3B
Year 4
Sem 2A Sem 2B
Intro to HCI SE Discrete Discrete Linear Chemistry Math 1 Math 2 Algebra Tech Eng Engineering Gen Ed Writing Econ
Soft Arch & Design
Quality Req Anal Assurance Prof Tech Practice Elective Gen Ed
Gen Ed
Sem 4A
Sem 4B
Proj Mgmt
Tech Elective
Tech Elective Tech Elective
Tech Elective Tech Elective
Gen Ed
Gen Ed
Table 2 shows the pattern for a North American engineeringstyle program: the shaded boxes are SE courses, the courses i n roman font are SEEK-related courses, and the courses in italic font are non-SEEK courses that are required as part of an engineering education. In addition to the example curricula, the SE2004 volume discusses considerations in adapting curricula to alternative teaching environments (e.g., distance education), t o institutional environments (e.g., coordination with other university programs), and to alternative degree formats (e.g., associate-degree programs in the U.S.).
19
Modeling principles (decomposition, abstraction, generalization, projection/views, explicitness, use of formal approaches, etc.)
Sem 1B
Physics 1
Table 1: Partial Modeling and Analysis SEEK (adapted from [4]) k,c,a E,D,O Hours Software Modeling and Analysis 53 Modeling Foundations
Sem 1A
…
6. EXPECTED USERS
The SEEK differs from the Software Engineering Body of Knowledge (SWEBOK) [5] in that the SEEK focuses o n knowledge for an undergraduate curriculum, whereas SWEBOK focuses on knowledge used by a practicing software-engineer. Moreover, SWEBOK focuses on SE knowledge only and o n knowledge that a practitioner ought to have acquired from a combination of academics and four years of work experience.
The most obvious use of the SE2004 volume is guidance i n the creation of an undergraduate SE program. Academics who have strong backgrounds in SE are more likely to use the volume as an input, rather than a guide, in designing SE courses, specializations, or programs – along the lines that strong CS schools use the CC2001 Computer Science curricular guidelines. Schools and educators can use the SEEK and the curriculum guidelines to construct arguments for more SE courses and faculty. Researchers can look for SE knowledge that is missing from the SEEK, as indicators of open problems and of techniques that need to be simplified for an undergraduate audience.
4. CURRICULAR GUIDELINES For educators who are designing an SE program from scratch, the most useful part of the SE2004 volume may be the set of guidelines on SE curriculum and pedagogy. The guidelines provide advice on o Curriculum philosophy (e.g., SE be taught in ways that recognize that it is both a computing discipline and an engineering discipline) o Curriculum design (e.g., SE concepts and principles should be recurring themes throughout the curriculum) o Strategies for SE pedagogy (e.g., achieving important efficiencies and synergies by combining the learning of several types of knowledge) o Faculty background and skills Each of the guidelines is expanded to provide further advice on its application and warnings, where appropriate, regarding possible problems that could occur.
7. REFERENCES [1] ACM Education Board “Annual Report FY 2004”, http://www.acm.org/about_acm/commreports/fiscal_year _2004/ed_board_FY2004.pdf (December, 2004). [2] Computing Curricula – Software Engineering Web site at http://sites.computer.org/ccse/ (December, 2004). [3] T. Hilburn, “Computing Curriculum 2001 – Software Engineering”, FASE, Volume 12 Number 04 (Issue 147), April 15, 2002. [4] ACM/IEEE-CS Task Force on Computing Curricula (2004) “Computing Curricula – Software Engineering”, http://sites.computer.org/ccse/SE2004Volume.pdf.
5. EXAMPLE CURRICULA The SE2004 volume provides a number of example curricula showing how the SEEK can be taught according to the volume’s guidelines on curriculum and pedagogy. There are comprehensive course patterns, with mappings from course content to topics in the SEEK. There are also a number of
[5] Software Engineering Body of Knowledge Project (SWEBOK) and the Guide. http://www.swebok.org.
624