A Draft Reference Curriculum for a Masters Degree in Software Engineering: A Joint Industry, Academic, and Government Initiative

advertisement
A Draft Reference Curriculum for a Masters
Degree in Software Engineering: A Joint
Industry, Academic, and Government Initiative
Art Pyster
Stevens Institute of Technology
art.pyster@stevens.edu
Background
•
Software drives the performance of virtually all major systems.
•
Being able to produce software that can be trusted as reliable,
secure, safe, correct, and available while being delivered on-time
and within budget is a major challenge for both the government
and industry.
•
Many steps must be taken to meet that challenge - including
ensuring our workforce is well educated in software
engineering (SWE) principles and practices.
•
Yet, the last effort to create a reference curriculum for
graduate software engineering education was by the SEI in the
early 1990s.
Now creating new reference curriculum.
2
The Approach
1. Understand the current state of SWE graduate education
(November 2007)
2. Create GSwERC 0.25 with a small team, suitable for limited
review (February 2008)
3. Publicize effort through conferences, papers, website, etc
(continuous)
4. Obtain endorsement from ACM, IEEE, INCOSE, NDIA, and
other professional organizations (continuous)
5. Create GSwERC 0.50 suitable for broad community review
and early adoption (September/October 2008)
6. Create GSwERC 1.0 suitable for broad adoption (2009)
3
The Team
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Rick Adcock, Cranfield University and INCOSE
Edward Alef, General Motors
Bruce Amato, Department of Defense
Mark Ardis, Rochester Institute of Technology
Larry Bernstein, Stevens Institute of Technology
Barry Boehm, University of Southern California
Pierre Bourque, Quebec University and SWEBOK
volunteer
John Bracket, Boston University
Murray Cantor, IBM
Lillian Cassel, Villanova and ACM volunteer
Robert Edson, ANSER
Richard Fairley, Colorado Technical University
Dennis Frailey, Raytheon & Southern Methodist
University
Gary Hafen, Lockheed Martin and NDIA
Thomas Hilburn, Embry-Riddle Aeronautical
University
Greg Hislop, Drexel University and IEEE
Computer Society participant
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Dave Klappholz, Stevens Institute of Technology
Philippe Kruchten, University of British Columbia
James McDonald, Monmouth University
Ernest McDuffie, National Coordination Office for
NITRD
Bret Michael, Naval Postgraduate School
William Milam, Ford
Fernando Naveda, RIT and IEEE volunteer
Ken Nidiffer, Software Engineering Institute
Art Pyster, Stevens Institute of Technology
Doug Schmidt, Vanderbilt
Mary Shaw, Carnegie Mellon University
Ann E Sobel, Miami university and IEEE volunteer
Robert Suritis, IBM
Richard Thayer, California State University at
Sacramento
Richard Turner, Stevens Institute of Technology
Joseph Urban, National Science Foundation observer
Ricardo Valerdi, MIT & INCOSE
David Weiss, Avaya
4
Methodology to Understand
Current State
•
Diverse set of universities with Masters programs in SWE
-
Vary in size, geography, maturity, resources, target market, …
-
Focused on programs with degree in SWE or Computer Science with a SWE
specialization - not degrees in information technology and related areas
•
Used Software Engineering Body of Knowledge (SWEBOK) as the
primary framework for SWE competencies
•
Collected data from school websites
-
Degree, faculty size, student population, target market, …
-
Degree structure, individual course descriptions
-
Map between courses and SWEBOK
•
Validated data with one or more professors from each school
•
Analyzed for commonalities and uniqueness
5
Schools Studied
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Air Force Institute of Technology
Brandeis University
California State University – Fullerton
California State University – Sacramento
Carnegie Mellon University
Carnegie Mellon University West
DePaul University
Drexel University
Dublin City University (Ireland) *
Embry-Riddle Aeronautical University
George Mason University
James Madison University
Mercer University
Monmouth University
Naval Postgraduate School
16. Penn State University – Great Valley
17. Quebec University (Canada) *
18. Rochester Institute of Technology
19. Seattle University
20. Southern Methodist University
21. Stevens Institute of Technology
22. Texas Tech University
23. University of Alabama – Huntsville
24. University of Maryland University College
25. University of Michigan – Dearborn
26. University of Southern California
27. University of York (UK) *
28. Villanova University
15.
* Non-US Schools
6
Observations from 28 Schools
1.
SWE is largely viewed as a specialization of Computer Science - much
as systems engineering was often viewed as specialization of industrial
engineering or operations research years ago
2.
Faculty size is small - few dedicated SWE professors, making
programs relatively brittle
3.
Student enrollments are generally small compared to CS and to other
engineering disciplines
4.
Many programs specialize to specific markets such as defense systems
or safety critical systems
5.
The target student population varies widely - anyone with Bachelors
and B average to someone with CS degree and 2+ years of
experience
6.
Online course delivery is popular
7
More Observations
7.
Objective for graduates vary widely - software developer to researcher
to software manager
8.
Wide variation in depth and breadth of SWEBOK coverage in required
and semi-required* courses
9.
Many programs have required or semi-required courses that cover
material that is either not in the SWEBOK at all or is not emphasized in
the SWEBOK
10. Some significant topics are rarely mentioned - agility, software engineering
economics, systems engineering
11. Some topics are ubiquitous - formal methods and architecture
12. “Object-oriented” is the standard development paradigm - creating a
“clash” with many systems engineering programs that emphasize
structured methods
*A student has a 50% or greater probability of taking a semi-required course.
8
Entrance Requirements
100
Most programs offer leveling
courses for students lacking
entrance requirements
Many programs routinely waive
academic requirements for students
with industrial experience
90
80
%
P
r
o
g
r
a
m
s
70
60
50
40
30
20
10
0
Know how to
Program
Degree in Eng/Sci / Degree in Computing Industry Experience
Math
9
SWEBOK Coverage in
Required and Semi-Required Courses
REQ
3




0: No coverage of topic
1: Some coverage but no
dedicated course
2: One dedicated course
3: Two or more dedicated courses
QLY
DES
2
TLS
CST
1
0
PRC
TST
MGT
MNT
CNF
• Required:
course
Student must take the
• Semi-Required:
50% or more probability
that course will be taken
REQ
DES
CST
TST
MNT
CNF
MGT
PRC
TLS
QLY
Sw Requirements
Sw Design
Sw Construction
Sw Testing
Sw Maintenance
Sw Config. Mgmt.
SwE Management
SwE Process
SwE Tools and Methods
Sw Quality
10
SWEBOK Coverage in
Required and Semi-Required Courses
11
Some Novel Required &
Semi-Required Courses
1.
2.
3.
4.
5.
6.
7.
8.
9.
Reverse Engineering (Drexel)
Software Evolution and Re-engineering
(Rochester)
Software Documentation (Penn State Great
Valley)
Software Risk Assessment in DoD (NPS)
Refactoring (Mercer)
Structured Document Interchange and
Processing (DePaul)
Avoiding Software Project Failures
(Carnegie Mellon – West)
Mathematical Foundations of Software
Engineering (Monmouth)
Global Software Development (Carnegie
Mellon)
10.
11.
12.
13.
14.
15.
16.
17.
Management of Outsourced Development
(Carnegie Mellon – West)
Professional, Ethical and Legal Issues for
Software Engineers (Cal. State Univ. –
Fullerton)
Managing Software Professionals (Carnegie
Mellon – West)
Lean & Agile Software Processes (Mercer)
Artificial Intelligence (Michigan - Dearborn)
Software Engineering Economics (GMU,
USC)
Computer Game Design & Implementation
(Michigan - Dearborn)
Service Oriented Architecture (Dublin City)
12
The Approach –
Create GSwERC 0.25
1. Understand the current state of SWE graduate education
(November 2007)
2. Create GSwERC 0.25 with a small team, suitable for
limited review (February 2008)
3. Publicize effort through conferences, papers, website, etc.
(continuous)
4. Obtain endorsement from ACM, IEEE, INCOSE, NDIA, and
other professional organizations (continuous)
5. Create GSwERC 0.50 suitable for broad community review
and early adoption (Summer 2008)
6. Create GSwERC 1.0 suitable for broad adoption (2009)
13
Reference Model Focus
• The principle purpose of GSwERC will be to provide a
framework for development and improvement of
curricula for software engineering education at the
master’s degree level.
• The master’s degree described by GSwERC will be a
professional degree targeting practicing software
engineers.
• Software engineering draws its foundations from a wide
variety of disciplines, with deepening ties to systems
engineering.
14
Expectations at Entry
• The equivalent of an undergraduate degree in
computing or an undergraduate degree in an
engineering or scientific field and a minor in computing.
The GSwERC Body of Knowledge more completely
defines the expected prerequisite knowledge, and
• The equivalent of an introductory course in software
engineering, and
• At least one year of practical experience in some
aspect of software engineering or software
development (likely to become two years in version 0.5
with more guidance on the nature of the experience)
15
Draft Expectations 1-5 at
Graduation for Version 0.5
1. Have mastered the Core Body of Knowledge (CBOK)
2. Have mastered at least one application domain and one
application type
3. Have mastered at least one knowledge area of sub-area
from the CBOK to at least the Bloom Synthesis level
4. Demonstrated how to make ethical professional decisions
and practice ethical professional behavior
5. Understand the relationship between software engineering
and systems engineering and be able to apply systems
engineering principles and practices in the engineering of
software
16
Version 0.5 Draft CBOK
Modified SWEBOK in several places, including:
•
Added Human Computer Interface Design to Software Design
Knowledge Area
•
Added Engineering Economics and Risk Management to SWE
Management Knowledge Area
•
Added two new Knowledge Areas – Systems Engineering
Fundamentals and Ethical and Professional Conduct
•
Changed Software Requirements to Requirements
Engineering to reflect integration between systems and
software engineering
17
Bloom’s Taxonomy
18
Draft Expectations 6-10 at
Graduation for Version 0.5
6. Be able to work effectively as part of a team, including teams that may be
international and geographically distributed, to develop quality software
artifacts, and to lead in one area of project development, such as project
management, requirements analysis, architecture, construction, or quality
assurance.
7. Show the ability to reconcile conflicting project objectives, finding acceptable
compromises within limitations of cost, time, knowledge, existing systems, and
organizations
8. Understand and appreciate the importance of feasibility analysis, negotiation,
effective work habits, leadership, and good communication with stakeholders
in a typical software development environment
9. Understand how to learn new models, techniques, and technologies as they
emerge, and appreciate the necessity of such continuing professional
development
10. Be able to analyze a current significant software technology, articulate its
strengths and weaknesses, and specify and promote improvements or
extensions to that technology
19
Curriculum Architecture
20
Curriculum Architecture
21
How One Student Might Go Through
Four Actual Masters Programs for Version
0.25
Scale: 1 = does not implement at all, 5 = fully implements
22
Reminder – Where We
Are Today
✔
1.
Understand the current state of SWE graduate education (November 30,
✔
2.
Create GSwERC 0.25 with a small team, suitable for limited review
✔
✔
3.
Publicize effort through conferences, papers, website, etc. (continuous)
4.
Obtain endorsement from ACM, IEEE, INCOSE, NDIA, and other
professional organizations (continuous)
5.
Create GSwERC 0.50 suitable for broad community review and early
adoption (Summer 2008)
6.
Create GSwERC 1.0 suitable for broad adoption (2009)
✔
2007)
(February 2008)
23
Download