Making Software Development a Professional Discipline: The IEEE Computer Society’s Program James W. Moore The MITRE Corporation May 2003 The opinions contained in this presentation are those of the author and do not necessarily represent those of The MITRE Corporation or its sponsors. April 2003 STC James W. Moore - 1 From Grady Booch, The Future of Software April 2003 STC James W. Moore - 2 From Grady Booch, The Future of Software April 2003 STC James W. Moore - 3 What is Software Engineering? (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). -- IEEE Std 610.12 April 2003 STC James W. Moore - 4 Model of the Maturity of a Profession April 2003 Education Accreditation Skills development Licensing/certification Professional development Code of ethics Professional society or societies STC G. Ford and N. E. Gibbs, A Mature Profession of Software Engineering, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, Technical CMU/SEI-96-TR-004, January 1996. James W. Moore - 5 Software Engineering as a Profession: A Model Individual Engineer’s Development Infrastructure Support for the Profession Initial professional education Accreditation Professional Societies Skills Development One or both Certification Licensing Full Professional Status April 2003 Professional development programs Adapted from Steve Code of ethics AdaptedMcConnell, from Steve After the McConnell, After the Gold Gold Rush, Rush, Microsoft Press Microsoft Press, 1999, p. 93 STC James W. Moore - 6 Software Engineering is Becoming Recognized as an Engineering Profession April 2003 IEEE-CS/ACM Computing Curriculum 2001 completed. Basic curriculum is completed. Four specialty volumes are planned: Computer Science, Computer Engineering, Software Engineering, Information Systems. Merger of CSAB and ABET completed. A single organization now accredits all university programs in computer science, information systems, software engineering and computer engineering. RIT granted the first-in-US Software Engineering bachelor degrees in 2001. (Degree requires five years, including coop work.) Accreditation process is now underway. IEEE-CS Software Engineering Body of Knowledge published in book form. Trial usage is underway leading to revision circa 2004. Several universities are using it to rationalize curriculum, e.g. SMU, NTU, NJIT. Licensing of software engineers underway in Texas, BC, Ontario, Quebec, other countries. STC James W. Moore - 7 IEEE CS Support of the Professional Professional Development Initial professional education Necessary Infrastructure Support Curricula CC2001, CCSE Accreditation ABET/CSAB Body of knowledge SWEBOK Prof. literature IT Pro, Software Prof. interaction Chapters, Elec. Communities Prof. training DVP, Tutorials, Distance Learning Design solutions Standards, Workshops Practice norms Standards, Best Practices Ethical norms Code of Ethics Prof. certification CSDP Skills Development Possibly Certification Adapted from Steve McConnell, After the Gold Rush, Microsoft Press April 2003 Licensing Full Professional Status Example Products and Services of Professional Societies STC James W. Moore - 8 Software Engineering Body of Knowledge Project April 2003 STC James W. Moore - 9 Software Engineering Body of Knowledge: Project Objectives Promote a consistent view of software engineering worldwide Clarify the place of, and set the boundary of, software engineering with respect to other disciplines Characterize the contents of the Software Engineering Body of Knowledge - SWEBOK Provide a topical access to the Software Engineering Body of Knowledge Provide a foundation for curriculum development and individual certification and licensing material April 2003 STC James W. Moore - 10 Key Interrelationships for a Core Body of Knowledge Development of Software Engineering Curricula Consensus on a Core Body of Knowledge Development of Certification / Licensing Criteria and Exams April 2003 Influences STC Development of University Program Accreditation Criteria James W. Moore - 11 Project Organization Editorial team Project “Champion”: Leonard Tripp, 1999 President, IEEE Computer Society Executive Editors: Alain Abran, École de Technologie Supérieure James W. Moore, The MITRE Corp. Editors: Pierre Bourque, École de Technologie Supérieure Robert Dupuis, UQAM Knowledge Area Specialists Pete Sawyer & Gerald Kotonya, UK Guy Tremblay, Canada Terry Bollinger, USA, Louis Martin & Philippe Gabrini, Canada Antonia Bertolino, Italy Tom Pigoski, USA John Scott & David Nisse, USA Stephen MacDonell & Andrew Gray, New Zealand Khaled El Emam, Canada David Carrington, Australia Dolores Wallace & Larry Reeker, USA Industrial Advisory Board Provided funding so that the SWEBOK Guide will always be free. Provided practical advice Provided early feedback April 2003 Reviewers Three review cycles Approximately 500 reviewers, 42 countries Approximately 10,000 comments STC James W. Moore - 12 Industrial Advisory Board Corporate Support by: Project managed by: April 2003 STC James W. Moore - 13 Reviewer Demographics Version 0.1: 33 reviewers Level of Education Version 0.5: 195 reviewers Doctor Master Bachelor Other Version 0.7: 378 + 5 ISO nations USA Europe Canada Australia Asia L. America Unknown April 2003 Number of Employees 0-50 50-500 500+ STC James W. Moore - 14 Application Domain Knowledge Advanced SWE Knowledge C.S. Specialized SWE Knowledge Guide to the SWEBOK What Software Engineers Should Know Math etc. April 2003 STC James W. Moore - 15 Specialized Types of Knowledge Generally Accepted Advanced and Research Focus of the SWEBOK Guide Generally accepted: “Applies to most projects most of the time and widespread consensus validates its value and effectiveness.” -- PMI In operational terms, we target the SWEBOK at bachelor’s degree plus four years of experience. April 2003 STC James W. Moore - 16 Knowledge Areas April 2003 Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Eng. Management Software Eng. Tools & Methods Software Engineering Process Software Quality STC Related Disciplines • • • • • • • • • Computer Science Mathematics Project Management Computer Engineering Cognitive Sciences Human Factors Systems Engineering Management Management Science James W. Moore - 17 Knowledge Area Description Classification of Topics Topic Descriptions April 2003 Matrix of Topics & References Classification by Vincenti’s Taxonomy Classification by Bloom’s Taxonomy References References to Related Disciplines Not implemented in Stoneman STC James W. Moore - 18 Overall SWEBOK Guide Guide to the Softw are Engineering Body of Knowledge (Version 0.95) Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Requirement Engineering Process Software Design Basic Concepts Reduction in Complexity Testing Basic Concepts and Definitions Basic Concepts Management of the SCM Process Organizational Management Software Engineering Process Concepts Linguistic Construction Methods Requirements Elicitation Key Issues in Software Design Formal Construction Methods Test Levels Visual Construction Methods Requirement Analysis Software Structure and Architecture Anticipation of Diversity Key Issues in Software Maintenance Test Techniques Techniques for Maintenance Linguistic Construction Methods Requirements Specification Software Design Quality Analysis and Evaluation Requirements Validation Software Design Notations Requirements Management Software Design Strategies and Methods Formal Construction Methods Maintenance Process Software Configuration Control Test-Related Measures Software Configuration Status Accounting Managing the Test Process Software Configuration Auditing Visual Construction Methods Structuring for Validation Software Configuration Identification Linguistic Construction Methods Software Release Management and Delivery Formal Construction Methods Visual Construction Methods Process/Project Management Process Infrastructure Software Engineering Measurement Process Measurement Software Engineering Tools and Methods Software Quality Software Tools Software Quality Concepts Software Requirements Tools Software Design Tools Software Construction Tools Software Testing Tools Software Maintenance Tools Process Definition Qualitative Process Analysis Process Implementation and Change Software Engineering Process Tools Definition & Planning for Quality Techniques Requiring Two or More People Support to Other Techniques Software Quality Tools Software Configuration Management Tools Software Engineering Management Tools Infrastructure Support Tools Miscellaneous Tool Issues Testing Special to SQA or V&V Defect Finding Techniques Measurement in Software Quality Analysis Software Methods Heuristic Methods Use of External Standards Formal Methods Linguistic Construction Methods Prototyping Methods Formal Construction Methods Miscellaneous Method Issues Visual Construction Methods April 2003 STC James W. Moore - 19 Uptake of SWEBOK 1999-2002: 32 conferences and workshops: North America Europe Australia, New Zealand, Argentina, … University Editorial team presentations: 2370 references to SWEBOK on Web in March 2003 USA, Canada, Spain, Brazil, Japan, China, … Professional development http://www.swebok.org April 2003 STC Software Engineering curriculum University lectures Research Papers Conferences & Workshops Certification & Licensing Government & Policy organizations Individuals James W. Moore - 20 Examples of SWEBOK Uptake CSDP, CC2001/SE, and planned CS SW Portal are traceable to SWEBOK. A large defense contractor has experimented with the Guide to calibrate skills descriptions in proposals. An FFRDC has rewritten its “Software Systems Engineer” job description in terms of the SWEBOK knowledge areas. Construx, Inc. has rewritten its position descriptions in terms of the Guide, structures its professional development around the Guide. NTU and SMU have rationalized their software engineering offerings using the SWEBOK. SWEBOK provides the taxonomical basis for VISEK, a SWE Portal funded by the German government. SWEBOK contributed to “SW Development” portion of a BOK developed by the Canadian Council of Professional Engineers for use in provincial licensing programs. SWEBOK influenced (how much?) IFIP committee on IT professionalism. International Organization for Standardization (ISO) is adopting SWEBOK as a “Technical Report.” April 2003 STC James W. Moore - 21 Software Engineering Standards April 2003 STC James W. Moore - 22 Roles of Software Engineering Standards Specify techniques to develop software faster, cheaper, better, IEEE 982.1 (Measures for Reliable SW) Provide consensus validity for “best practices” that cannot be scientifically validated, IEEE 1008 (Unit Testing) Provide a systematic treatment of “ilities”, IEEE 730 (SW Quality Assurance) Provide uniformity in cases where agreement is more important than small improvements, IEEE P1320.1 (IDEF0) Provide a framework for communication between buyer and seller, IEEE/EIA 12207 (SW Life Cycle Processes) Give precise names to concepts that are fuzzy, complex, detailed and multidimensional, IEEE 1028 (SW Reviews) More exciting More effective April 2003 STC James W. Moore - 23 A standard is a name for an otherwise fuzzy concept … a standard gives a name to a bounded region. In a complex, multidimensional trade space of solutions ... It defines some characteristics that a buyer can count on. April 2003 STC James W. Moore - 24 Education SWE Body of Knowledge Software Engineering Standards in Context Certification Dependability Practice Quality Management Fundamental Principles Process Definition Motivate Process Assessment Project Management System Engineering Process Measurement Body of Standards Integrating Framework Best Practices IEEE ISO/IEC IEEE ISO/IEC DoD Umbrella Standard(s) Integrated Collection of Practice Standards IEEE ISO/IEC Competency Certification Organizational Adoption Buyer/Seller Agreement Critical System Assurance April 2003 STC James W. Moore - 25 Standards should Balance Principles and Practice Standards should exist in a “tension” balancing the integrating and organizing forces of a priori principles with the messy real-world demands of observed effective practices. A priori Principles Standards Observe d “Best” Practices In many cases, a priori considerations are provided by science and mathematics. Sometimes they are provided by custom or by marketing forces. In the case of software engineering, we have to invent them. April 2003 STC James W. Moore - 26 Principes fondamentaux du génie logiciel A collaboration between the IEEE Computer Society and the Université du Québec à Montréal and the École de Technologie Supérieure. SWE Principles are specific cases of general engineering principles. Principles of Engineering and other Disciplines Source: [Jabir97] April 2003 SWE Principles organize, explain and validate the practice standards. Principles of Software Engineering Some SWE Principles may be generalized to principles for the engineering of complex systems. Practices are deployed based on the practice standards. Practice Standards SWE Principles should be “abstractions” of practice standards. STC Implemented “Best” Practices Practice standards should be recordings of observed best practices. James W. Moore - 27 Examples of Fundamental Principles Currently, 16 candidates. Examples are … Since change is inherent in software, plan for it and manage it. Comme le logiciel est, de par sa nature même, sujet au changement, il faut planifier et gérer ce changement. Since tradeoffs are inherent to SWE, make them explicit and document them. Les compromis étant inhérents au GL, il faut les rendre explicites et les documenter. Source: [Dupuis97] April 2003 STC James W. Moore - 28 Certified Software Development Professional April 2003 STC James W. Moore - 29 Certification April 2003 Certification is a voluntarily gained recognition by peers. There are 3 types: professional, product-related, training-related. Certification ≠ Licensing ≠ Accreditation IT certifications have exploded from about 200 to more than 400 in three years. There are now 185,000 Certified Novell Engineers and 267,000 Microsoft Certified Software Engineers. Market projected at $4B by 2004. (IT training market $34B.) There are certification trainers, vendors, consultants and magazines. STC James W. Moore - 30 IT Certifications Information Week reports bonus pay growing for certifications (and falling for non-certified skills). Median bonus for certified IT skill in 4Q01 was 8.3% of base pay. IDC reports nine-month payback on company investment. Who was the big winner? Answer to come. April 2003 STC James W. Moore - 31 Impact of Certification: The PMI Example Project Management Institute (100K members growing at 20-30% per year) offers a Project Management Professional (PMP) certification. PMP is based on education, experience, examination, plus adherence to code of conduct. PMI provides PMBOK, self-assessment material, books, training courses, seminars, and examination. Process is ISO 9001 certified. Success: April 2003 30,000 PMPs in 26 countries. Many employers (e.g. State of California) require it of project managers. Salary bonus for PMP is top one surveyed – median bonus is 14% of base pay. STC James W. Moore - 32 IEEE CS Certified Software Development Professional IEEE Computer Society has rolled out the Certified Software Development Professional (CSDP) program. Possesses fundamental knowledge and understanding of computing principles and concepts and their application to the definition, design, construction, testing, and maintenance of software. Is able to provide appropriate design with technical and economic tradeoffs of modules, subsystems, and systems in accordance with standards of practice, specifications, and principles of behavior of software as required to perform the functions as stated in the software requirements. April 2003 Computer Society web site for CSDP: http://www.computer.org/certification STC James W. Moore - 33 IEEE Computer Society CSDP Certification based: education, experience (9000 hours), examination, code of ethics, and continuing education. Exam based on a Body of Knowledge and professional standards – 3.5 hours, 180 questions. Developed with Chauncey Group (a subsidiary of Educational Testing Service) to be fair, reliable and valid. First test in April 2002. About 250 certifications to date. April 2003 STC James W. Moore - 34 Examination Development Job Analysis Exam Specification Describe the job domain Identify needed skills Determine content weights Assemble exam Validate exam Select questions according to content weights Review results Beta test Analyze questions Set cut score April 2003 STC Exam questions Write questions Review at workshop Approval by IEEE James W. Moore - 35 Requirements for CSDP Certification Education Bachelor or equivalent university degree Experience 9000 hours of experience in 6 of the 11 Software Engineering Knowledge Areas Proof of Professionalism Review and acknowledge the Software Engineering Code of Ethics and Professional Practice Examination Pass April 2003 the CSDP written examination STC James W. Moore - 36 11 Knowledge Areas for CSDP April 2003 Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Tools and Methods Software Quality Business Practices & Engineering Economics STC Same as SWEBOK plus James W. Moore - 37 Approximate Distribution of Questions Tools/Methods 3% Business 4% Quality 7% Process 3% Reqmts 14% Mgmt 11% CM 4% Design 23% Maintenance 4% Testing 16% April 2003 Construction 11% STC James W. Moore - 38 Examination Topics (1 of 4) Business Practices and Engineering Economics (3-4%) • Economics • Ethics • Professional Practice • Standards Software Design (22-24%) • SW design concepts • SW architecture • SW design quality analysis and evaluation • SW design notations and documentation • SW design strategies and methods • Human factors in SW design • SW and system safety Software Requirements (13-15%) • Requirements engineering process • Requirements elicitation • Requirements analysis • SW requirements specification • Requirements validation • Requirements management April 2003 STC James W. Moore - 39 Examination Topics (2 of 4) Software Construction (10-12%) • Construction planning • Code design • Data design and management • Error processing • Source code organization • Code documentation • Construction QA • System integration and deployment • Code tuning • Construction tools April 2003 Software Testing (15-17%) • Types of tests • Test levels • Testing strategies • Test design • Test coverage of code • Test coverage of specifications • Test execution • Test documentation • Test management STC James W. Moore - 40 Examination Topics (3 of 4) Software Maintenance (3-5%) • SW maintainability • SW maintenance process • SW maintenance measurement • SW maintenance planning • SW maintenance management • SW maintenance documentation Software Engineering Management (10-12%) • Measurement • Organization management and coordination • Initiation and scope definition • Planning • Software acquisition • Enactment • Risk management • Review and evaluation • Project closeout • Post-closure activities Software Configuration Mgmt (3-4%) • Management of SCM process • SW configuration identification • SW configuration control • SW configuration status accounting • SW configuration auditing • SW release management and delivery April 2003 STC James W. Moore - 41 Examination Topics (4 of 4) Software Engineering Process (2-4%) • Process infrastructure • Process measurement • Process definition • Qualitative process analysis • Process implementation and change Software Quality (6-8%) • SW quality concepts • Planning for SQA and V&V • Methods for SQA and V&V • Measurement applied to SQA and V&V Software Engineering Tools and Methods (2-4%) • Management tools and methods • Development tools and methods • Maintenance tools and methods • Support tools and methods April 2003 STC James W. Moore - 42 Process of Becoming Certified Complete application including: Prepare for examination resumé transcript or diploma report of education verification of reading Code of Ethics report of experience in at least 6 of the 11 knowledge areas Schedule the exam at a Prometric test center Take the exam April 2003 STC Self-study using a recommended two-volume resource guide, or Take exam preparation tutorial 4-hour, computer-based, 180question, multiple-choice Pass/Fail is determined immediately Diagnostic scores for selfassessment in content areas are provided to candidates who do not pass James W. Moore - 43 Taking the Test The 2003 Testing Window is from April 1, 2003 to June 30, 2003. The computerized exam can be taken at over 230 Prometric Testing Centers. Special exam opportunity here at STC this week: April 2003 Discount on pre-exam tutorial. Discount on exam itself. Free retest within one year (so you can use the exam for your own personal gap analysis). STC James W. Moore - 44 Certification Renewal Certificate is valid for 3 years Renewal is based upon earning continuing education credits April 2003 STC James W. Moore - 45 Importance to Individuals Self-assessment of professional knowledge Differentiation from less qualified individuals Credibility of qualifications for employment or contracts Professional recognition But certification is not a guarantee of competency. April 2003 STC James W. Moore - 46 Importance to Organizations April 2003 Hiring: A method to credibly assess qualifications. Salary Management: A rational way to provide salary bonuses for vital IT skills. Training: A structure for a development program leading to a recognizable result. Competency: A method to assess strengths in important areas. Consulting: A means to assert qualifications to consult in important areas. Suppliers: A way to evaluate the ability of suppliers to perform. STC James W. Moore - 47 Code of Ethics April 2003 STC James W. Moore - 48 Software Engineering Code of Ethics and Professional Practices Developed by a Joint IEEE-CS/ACM Task Force on Software Engineering Ethics and Professional Practices. Approved in 1998. “The short version of the code summarizes aspirations at a high level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.” April 2003 STC James W. Moore - 49 Short Version States Eight Principles April 2003 Public: Software engineers shall act consistently with the public interest. Client and employer: Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest. Product: Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. Judgment: Software engineers shall maintain integrity and independence in their professional judgment. STC Management: Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. Profession: Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. Colleagues: Software engineers shall be fair and supportive of their colleagues. Self: Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession. James W. Moore - 50 Example from Long Version Principle 4 JUDGMENT Software engineers shall maintain integrity and independence in their professional judgment. In particular, software engineers shall, as appropriate: 4.01. Temper all technical judgments by the need to support and maintain human values. 4.02 Only endorse documents either prepared under their supervision or within their areas of competence and with which they are in agreement. 4.03. Maintain professional objectivity with respect to any software or related documents they are asked to evaluate. 4.04. Not engage in deceptive financial practices such as bribery, double billing, or other improper financial practices. 4.05. Disclose to all concerned parties those conflicts of interest that cannot reasonably be avoided or escaped. 4.06. Refuse to participate, as members or advisors, in a private, governmental or professional body concerned with software related issues, in which they, their employers or their clients have undisclosed potential conflicts of interest. April 2003 STC James W. Moore - 51 IEEE CS Support of the Professional Professional Development Initial professional education Necessary Infrastructure Support Curricula CC2001, CCSE Accreditation ABET/CSAB Body of knowledge SWEBOK Prof. literature IT Pro, Software Prof. interaction Chapters, Elec. Communities Prof. training DVP, Tutorials, Distance Learning Design solutions Standards, Workshops Practice norms Standards, Best Practices Ethical norms Code of Ethics Prof. certification CSDP Skills Development Possibly Certification Adapted from Steve McConnell, After the Gold Rush, Microsoft Press April 2003 Licensing Full Professional Status Example Products and Services of Professional Societies STC James W. Moore - 52