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