Title: Integrated Software and Systems Engineering Curriculum
1Integrated Software and Systems Engineering
Curriculum
A Graduate Software Engineering Reference
Curriculum (GSwERC) The Current State of SE
Masters Degree Programs
- Dr. Richard Turner
- Kahina LasferStevens Institute of Technology
- April 2008
- rturner_at_stevens.edu
2Background
- 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.
3Our Approach Where We Are Today
- Understand the current state of SWE graduate
education (November 30, 2007) - Create GSwERC 0.25 with a small team, suitable
for limited review (February 2008) - Publicize effort through conferences, papers,
website, etc. (continuous) - Obtain endorsement from ACM, IEEE, INCOSE, NDIA,
and other professional organizations (continuous) - Create GSwERC 0.50 suitable for broad community
review and early adoption (Summer 2008) - Create GSwERC 1.0 suitable for broad adoption
(2009)
?
?
?
?
?
4The Early Start 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
- Dennis Frailey, Raytheon Southern Methodist
University - Gary Hafen, Lockheed Martin and NDIA
- Thomas Hilburn, Embry-Riddle Aeronautical
University - Greg Hislop, Drexel University and IEEE volunteer
- 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, SEI
- Art Pyster, Stevens Institute of Technology
- Paul Robitaille, Lockheed Martin and INCOSE
- 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
- Osmo Vikman, Nokia, Finland
- David Weiss, Avaya
5Methodology 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
6Schools Studied
- Naval Postgraduate School
- Penn State University Great Valley
- Quebec University (Canada)
- Rochester Institute of Technology
- Seattle University
- Southern Methodist University
- Stevens Institute of Technology
- Texas Tech University
- University of Alabama Huntsville
- University of Maryland University College
- University of Michigan Dearborn
- University of Southern California
- University of York (UK)
- Villanova University
- 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
Non-US Schools
7Observations from 28 Schools
- 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 - Faculty size is small - few dedicated SWE
professors, making programs relatively brittle - Student enrollments are generally small compared
to CS and to other engineering disciplines - Many programs specialize to specific markets such
as defense systems or safety critical systems - The target student population varies widely -
anyone with Bachelors and B average to someone
with CS degree and 2 years of experience - Online course delivery is popular
8More Observations
- Objective for graduates vary widely - software
developer to researcher to software manager - Wide variation in depth and breadth of SWEBOK
coverage in required and semi-required courses - 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 - Some significant topics are rarely mentioned -
agility, software engineering economics, systems
engineering - Some topics are ubiquitous - formal methods and
architecture - 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.
9Programs Have Diverse Focuses
- Embedded real-time systems
- Entrepreneurial technology companies
- Quantitative software engineering
- Software economics
- Safety critical systems
- Development of defense systems
- Acquisition of defense systems
- Secure software engineering
- Highly dependable software systems
No focus dominated
10Differing Entrance Requirements
Many programs routinely waive academic
requirements for students with industrial
experience
Most programs offer leveling courses for students
lacking entrance requirements
Programs
11Number of Full-time and Adjunct Faculty
- Many software engineering faculty also teach
computer science - Heavy dependence on adjunct faculty
- Most faculty have industry experience
12Number of Students Currently Enrolled
13Percentage of Courses are Required
- On average, students take 11.6 courses for the
degree of which 8.3 are required. - For 43 of the programs, this includes a required
thesis, project or practicum, which is normally
the equivalent of 2 or 3 courses.
- Required Student must take the course
- Semi-Required 50 or more probability that
course will be taken
14SWEBOK Coverage in Required and Semi-Required
Courses
- 0 No coverage of topic
- 1 Some coverage but no dedicated course
- 2 One dedicated course
- 3 Two or more dedicated courses
sample
- Required Student must take the course
- Semi-Required 50 or more probability that
course will be taken
15Individual SWEBOK Coverage in Required and
Semi-Required Courses
16Composite SWEBOK Coverage in Required and
Semi-Required Courses
- No consistency in coverage across programs
- Requirements, design, and management are best
covered - Maintenance, configuration management, quality,
and tools are least covered
of Programs with one or more dedicated courses
17The Approach Create GSwERC 0.25
- Understand the current state of SWE graduate
education (November 30, 2007) - Create GSwERC 0.25 with a small team, suitable
for limited review (February 2008) - Publicize effort through conferences, papers,
website, etc. (continuous) - Obtain endorsement from ACM, IEEE, INCOSE, NDIA,
and other professional organizations (continuous) - Create GSwERC 0.50 suitable for broad community
review and early adoption (Summer 2008) - Create GSwERC 1.0 suitable for broad adoption
(2009)
18Selected Guidance for GSwERC Project (1)
- The principle purpose of GSwERC will be to
provide a framework for development and
improvement of curricula that provide software
engineering education at the masters degree
level. - The masters degree described by GSwERC will be a
professional degree targeting practicing software
engineers. Nevertheless, with slight
modification, GSwERC will serve as the foundation
for those with a research interest who ultimately
seek a doctoral degree. - Software Engineering draws its foundations from a
wide variety of disciplines. - All software engineering students must learn to
integrate theory and practice. - The rapid evolution and the professional nature
of software engineering require an ongoing review
of the corresponding curriculum
19Selected Guidance for GSwERC Project (2)
- GSwERC will go beyond knowledge elements to offer
significant guidance in terms of individual
curriculum components. - GSwERC will support the identification of the
fundamental skills and knowledge that all
graduates of a masters degree program in software
engineering must possess. - GSwERC will be international in scope.
- GSwERC will include exposure to aspects of
professional practice as an integral component of
the graduate curriculum. - GSwERC will identify prerequisite requirements
for students to enter a masters program in
software engineering
20Expectations 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
21Expectations at Graduation (1)
- 1. Show mastery of the software engineering
knowledge and skills, and professional issues
necessary to practice as a software engineer in a
variety of application domains with demonstrated
performance in at least one application domain. - 2. Understand the relationship between software
engineering and systems engineering and be able
to apply systems engineering principles and
practices in the engineering of software. - 3. Show mastery of software engineering in at
least one specialty such as embedded devices,
safety critical systems, highly distributed
systems, software engineering economics, or one
of the knowledge areas of the GSwERC Body of
Knowledge. - 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.
22Expectations at Graduation (2)
- 5. Reconcile conflicting project objectives,
finding acceptable compromises within limitations
of cost, time, knowledge, existing systems, and
organizations. - 6. Design appropriate software engineering
solutions that address ethical, social, legal,
and economic concerns. - 7. Understand and appreciate the importance of
feasibility analysis, negotiation, effective work
habits, leadership, and good communication with
stakeholders in a typical software development
environment. - 8. Learn new models, techniques, and technologies
as they emerge, and appreciate the necessity of
such continuing professional development. - Analyze a current significant software
technology, be able to articulate its strengths
and weaknesses, and be able to specify and
promote improvements or extensions to that
technology.
23Curriculum Architecture
24Courses Cut Across Boundaries
25A Program Track
26Slice of the Body of Knowledge
Bloom of Hours Hours
27Comparison of Four Real Masters Programs
Scale 1 does not implement at all, 5 fully
implements
28Reminder Where We Are Today
- Understand the current state of SWE graduate
education (November 30, 2007) - Create GSwERC 0.25 with a small team, suitable
for limited review (February 2008) - Publicize effort through conferences, papers,
website, etc. (continuous) - Obtain endorsement from ACM, IEEE, INCOSE, NDIA,
and other professional organizations (continuous) - Create GSwERC 0.50 suitable for broad community
review and early adoption (Summer 2008) - Create GSwERC 1.0 suitable for broad adoption
(2009)
?
?
?
?
?
Contacts Rich Turner, rturner_at_Stevens.edu Art
Pyster, art.pyster_at_Stevens.edu
29Backups
30Programs Prepare Graduates for Diverse Roles
Most programs prepare students to be practicing
software engineers. Two prepare students to
acquire software. Several prepare students to
manage teams of software engineers or to be
researchers.
- Develop and modify large, complex software
systems - Be an effective member of software development
team - Procure highly dependable, trustworthy
software-intensive systems - Understand and apply advanced SWE principles
vital to industry - Realize software products on time, within budget
and with known quality - Provide industrial leadership as a software
engineer - Prepare students for research
- Prepare students to be software engineers and
software process managers in industry and
government - Develop future chief engineers, head designers,
principal technical officers - Provide software development professional with a
sound educational basis for their work, and an
opportunity to broaden skills
31Department or School in which Degree is Offered
- School of Systems and Enterprises (Stevens)
- Dept. of Electrical and Computer Engineering
(AFIT, Drexel, Mercer) - Dept. of Engineering and Information Science
(Penn State Great Valley) - Dept. of Information and Technology Systems
(University of Maryland University College) - Division of Professional Studies (Brandeis)
Department or school names may vary slightly,
but are close to software engineering or
computer science
31
32Degree Offered
- MSE Master of Software Engineering
- MS in SWE Master of Science in Software
Engineering - MS in CS (SWE spec.) Master of Science in
Computer Science with specialization in Software
Engineering - MS in IT (SWE spec.) - Master of Science in
Information Technology with specialization in
Software Engineering
33Year that Program Started
34Some Novel Required Semi-Required Courses
- 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)
- 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)
35Special Emphasis Required and Semi-Required
Courses
HCI Human Computer Interfaces, Graphics
Visualization ALG Algorithms DBMS Databases
Information Management SS Safety
Security NET Networks, Internet Distributed
Systems
OS Operating Systems Middleware HW Hardware
Computer Engineering RES Research
Experimental Methods RTES Real-time Embedded
Systems
Programs
Shown are 9 categories with required or
semi-required courses in at least 10 of the
programs
36SWEBOK Coverage in Introductory Course(s)
- 0 No coverage of topic
- 1 Some coverage of topic
- 2 Significant coverage of topic
sample
- Only 39 of the programs offer an introductory
course - Most common reason for not offering course
expect students to have industrial experience
before entering program
Introductory / Foundation level course in
Software Engineering, as indicated in Course
Title or Description
37Individual SWEBOK Coverage in Introductory
Course(s)
38Composite SWEBOK Coverage in Introductory
Course(s)
- Reasonable consistency in coverage across
programs that offer an introductory course - Requirements and design are best covered
- Tools and quality are least covered
of Programs with coverage