April 2003STCJames W. Moore - 1 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 STCJames W. Moore - 2 From Grady Booch, The Future of Software
April 2003 STCJames W. Moore - 3 From Grady Booch, The Future of Software
April 2003 STCJames W. Moore - 4 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
April 2003 STCJames W. Moore - 5 Model of the Maturity of a Profession u Education u Accreditation u Skills development u Licensing/certification u Professional development u Code of ethics u Professional society or societies 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.
April 2003 STCJames W. Moore - 6 Individual Engineer’s Development Initial professional education Skills Development One or both Full Professional Status CertificationLicensing Infrastructure Support for the Profession Accreditation Professional development programs Code of ethics Professional Societies Adapted from Steve McConnell, After the Gold Rush, Microsoft Press Software Engineering as a Profession: A Model Adapted from Steve McConnell, After the Gold Rush, Microsoft Press, 1999, p. 93
April 2003 STCJames W. Moore - 7 Software Engineering is Becoming Recognized as an Engineering Profession u IEEE-CS/ACM Computing Curriculum 2001 completed. Basic curriculum is completed. Four specialty volumes are planned: Computer Science, Computer Engineering, Software Engineering, Information Systems. u Merger of CSAB and ABET completed. A single organization now accredits all university programs in computer science, information systems, software engineering and computer engineering. u RIT granted the first-in-US Software Engineering bachelor degrees in (Degree requires five years, including coop work.) Accreditation process is now underway. u IEEE-CS Software Engineering Body of Knowledge published in book form. Trial usage is underway leading to revision circa Several universities are using it to rationalize curriculum, e.g. SMU, NTU, NJIT. u Licensing of software engineers underway in Texas, BC, Ontario, Quebec, other countries.
April 2003 STCJames W. Moore - 8 IEEE CS Support of the Professional Professional Development Initial professional education Skills Development Possibly Full Professional Status CertificationLicensing Necessary Infrastructure Support Example Products and Services of Professional Societies Adapted from Steve McConnell, After the Gold Rush, Microsoft Press CurriculaCC2001, CCSE AccreditationABET/CSAB Body of knowledgeSWEBOK Prof. literatureIT Pro, Software Prof. interactionChapters, Elec. Communities Prof. trainingDVP, Tutorials, Distance Learning Design solutionsStandards, Workshops Practice normsStandards, Best Practices Ethical normsCode of Ethics Prof. certificationCSDP
April 2003STCJames W. Moore - 9 Software Engineering Body of Knowledge Project
April 2003 STCJames W. Moore - 10 Software Engineering Body of Knowledge: Project Objectives u Promote a consistent view of software engineering worldwide u Clarify the place of, and set the boundary of, software engineering with respect to other disciplines u Characterize the contents of the Software Engineering Body of Knowledge - SWEBOK u Provide a topical access to the Software Engineering Body of Knowledge u Provide a foundation for curriculum development and individual certification and licensing material
April 2003 STCJames W. Moore - 11 Key Interrelationships for a Core Body of Knowledge Development of Software Engineering Curricula Development of Certification / Licensing Criteria and Exams Development of University Program Accreditation Criteria Consensus on a Core Body of Knowledge Influences
April 2003 STCJames W. Moore - 12 Project Organization Editorial team u Project “Champion”: u Leonard Tripp, 1999 President, IEEE Computer Society u Executive Editors: u Alain Abran, École de Technologie Supérieure u James W. Moore, The MITRE Corp. u Editors: u Pierre Bourque, École de Technologie Supérieure u Robert Dupuis, UQAM Industrial Advisory Board u Provided funding so that the SWEBOK Guide will always be free. u Provided practical advice u Provided early feedback Knowledge Area Specialists u Pete Sawyer & Gerald Kotonya, UK u Guy Tremblay, Canada u Terry Bollinger, USA, Louis Martin & Philippe Gabrini, Canada u Antonia Bertolino, Italy u Tom Pigoski, USA u John Scott & David Nisse, USA u Stephen MacDonell & Andrew Gray, New Zealand u Khaled El Emam, Canada u David Carrington, Australia u Dolores Wallace & Larry Reeker, USA Reviewers u Three review cycles u Approximately 500 reviewers, 42 countries u Approximately 10,000 comments
April 2003 STCJames W. Moore - 13 Project managed by: Corporate Support by: Industrial Advisory Board
April 2003 STCJames W. Moore - 14 Reviewer Demographics Version 0.1: 33 reviewers Version 0.5: 195 reviewers Version 0.7: ISO nations
April 2003 STCJames W. Moore - 15 What Software Engineers Should Know Math Application Domain Knowledge Advanced SWE Knowledge Guide to the SWEBOK C.S. etc. Specialized SWE Knowledge
April 2003 STCJames W. Moore - 16 Types of Knowledge Generally Accepted Advanced Specialized 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 STCJames W. Moore - 17 Knowledge Areas u Software Requirements u Software Design u Software Construction u Software Testing u Software Maintenance u Software Configuration Management u Software Eng. Management u Software Eng. Tools & Methods u Software Engineering Process u Software Quality Computer Science Mathematics Project Management Computer Engineering Cognitive Sciences Human Factors Systems Engineering Management Management Science Related Disciplines
April 2003 STCJames W. Moore - 18 Knowledge Area Description Classification of Topics Matrix of Topics & References References Topic Descriptions Classification by Vincenti’s Taxonomy Classification by Bloom’s Taxonomy References to Related Disciplines Not implemented in Stoneman
April 2003 STCJames W. Moore - 19 Overall SWEBOK Guide
April 2003 STCJames W. Moore - 20 Uptake of SWEBOK u : 32 conferences and workshops: u North America u Europe u Australia, New Zealand, Argentina, … u Editorial team presentations: u USA, Canada, Spain, Brazil, Japan, China, … u 2370 references to SWEBOK on Web in March 2003 u University u Software Engineering curriculum u University lectures u Research Papers u Professional development u Conferences & Workshops u Certification & Licensing u Government & Policy organizations u Individuals
April 2003 STCJames W. Moore - 21 Examples of SWEBOK Uptake u CSDP, CC2001/SE, and planned CS SW Portal are traceable to SWEBOK. u A large defense contractor has experimented with the Guide to calibrate skills descriptions in proposals. u An FFRDC has rewritten its “Software Systems Engineer” job description in terms of the SWEBOK knowledge areas. u Construx, Inc. has rewritten its position descriptions in terms of the Guide, structures its professional development around the Guide. u NTU and SMU have rationalized their software engineering offerings using the SWEBOK. u SWEBOK provides the taxonomical basis for VISEK, a SWE Portal funded by the German government. u SWEBOK contributed to “SW Development” portion of a BOK developed by the Canadian Council of Professional Engineers for use in provincial licensing programs. u SWEBOK influenced (how much?) IFIP committee on IT professionalism. u International Organization for Standardization (ISO) is adopting SWEBOK as a “Technical Report.”
April 2003STCJames W. Moore - 22 Software Engineering Standards
April 2003 STCJames W. Moore - 23 Roles of Software Engineering Standards u Specify techniques to develop software faster, cheaper, better, IEEE (Measures for Reliable SW) u Provide consensus validity for “best practices” that cannot be scientifically validated, IEEE 1008 (Unit Testing) u Provide a systematic treatment of “ilities”, IEEE 730 (SW Quality Assurance) u Provide uniformity in cases where agreement is more important than small improvements, IEEE P (IDEF0) u Provide a framework for communication between buyer and seller, IEEE/EIA (SW Life Cycle Processes) u Give precise names to concepts that are fuzzy, complex, detailed and multidimensional, IEEE 1028 (SW Reviews) More exciting More effective
April 2003 STCJames W. Moore - 24 A standard is a name for an otherwise fuzzy concept In a complex, multidimensional trade space of solutions... … a standard gives a name to a bounded region. It defines some characteristics that a buyer can count on.
April 2003 STCJames W. Moore - 25 Software Engineering Standards in Context SWE Body of Knowledge Fundamental Principles ISO/IEC Integrating Framework IEEE DoD ISO/IEC Umbrella Standard(s) IEEE ISO/IEC Integrated Collection of Practice Standards IEEE Motivate Education Certification Practice Body of Standards Quality Management Project Management System Engineering Process Definition Process Assessment Process Measurement Best PracticesCompetency Certification Organizational Adoption Buyer/Seller Agreement Critical System Assurance Dependability
April 2003 STCJames W. Moore - 26 Standards should Balance Principles and Practice Standards Observe d “Best” Practices A priori Principles 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. 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 STCJames W. Moore - 27 Principes fondamentaux du gnie logiciel Principes fondamentaux du génie logiciel Principles of Engineering and other Disciplines Principles of Software Engineering Practice Standards Implemented “Best” Practices SWE Principles are specific cases of general engineering principles. SWE Principles organize, explain and validate the practice standards. Practices are deployed based on the practice standards. Some SWE Principles may be generalized to principles for the engineering of complex systems. SWE Principles should be “abstractions” of practice standards. Practice standards should be recordings of observed best practices. u A collaboration between the IEEE Computer Society and the Université du Québec à Montréal and the École de Technologie Supérieure. Source: [Jabir97]
April 2003 STCJames W. Moore - 28 Examples of Fundamental Principles u Currently, 16 candidates. Examples are … u 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. u 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 2003STCJames W. Moore - 29 Certified Software Development Professional
April 2003 STCJames W. Moore - 30 Certification u There are now 185,000 Certified Novell Engineers and 267,000 Microsoft Certified Software Engineers. u Market projected at $4B by (IT training market $34B.) There are certification trainers, vendors, consultants and magazines. u Certification is a voluntarily gained recognition by peers. There are 3 types: professional, product-related, training-related. u Certification ≠ Licensing ≠ Accreditation u IT certifications have exploded from about 200 to more than 400 in three years.
April 2003 STCJames W. Moore - 31 IT Certifications u IDC reports nine-month payback on company investment. Who was the big winner? Answer to come. u 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.
April 2003 STCJames W. Moore - 32 Impact of Certification: The PMI Example u Project Management Institute (100K members growing at 20-30% per year) offers a Project Management Professional (PMP) certification. u PMP is based on education, experience, examination, plus adherence to code of conduct. u PMI provides PMBOK, self-assessment material, books, training courses, seminars, and examination. Process is ISO 9001 certified. u Success: u 30,000 PMPs in 26 countries. u Many employers (e.g. State of California) require it of project managers. u Salary bonus for PMP is top one surveyed – median bonus is 14% of base pay.
April 2003 STCJames W. Moore - 33 IEEE CS Certified Software Development Professional u 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. u Computer Society web site for CSDP:
April 2003 STCJames W. Moore - 34 IEEE Computer Society CSDP u Certification based: u education, u experience (9000 hours), u examination, u code of ethics, and u continuing education. u Exam based on a Body of Knowledge and professional standards – 3.5 hours, 180 questions. u Developed with Chauncey Group (a subsidiary of Educational Testing Service) to be fair, reliable and valid. u First test in April About 250 certifications to date.
April 2003 STCJames W. Moore - 35 Examination Development Exam Specification Determine content weights Job Analysis Describe the job domain Identify needed skills Exam questions Write questions Review at workshop Validate exam Beta test Analyze questions Set cut score Assemble exam Select questions according to content weights Review results Approval by IEEE
April 2003 STCJames W. Moore - 36 Requirements for CSDP Certification u Education u Bachelor or equivalent university degree u Experience u 9000 hours of experience in 6 of the 11 Software Engineering Knowledge Areas u Proof of Professionalism u Review and acknowledge the Software Engineering Code of Ethics and Professional Practice u Examination u Pass the CSDP written examination
April 2003 STCJames W. Moore Knowledge Areas for CSDP u Software Requirements u Software Design u Software Construction u Software Testing u Software Maintenance u Software Configuration Management u Software Engineering Management u Software Engineering Process u Software Tools and Methods u Software Quality u Business Practices & Engineering Economics Same as SWEBOK plus
April 2003 STCJames W. Moore - 38 Approximate Distribution of Questions
April 2003 STCJames W. Moore - 39 Examination Topics (1 of 4) Business Practices and Engineering Economics (3-4%) Economics Ethics Professional Practice Standards Software Requirements (13-15%) Requirements engineering process Requirements elicitation Requirements analysis SW requirements specification Requirements validation Requirements management 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
April 2003 STCJames W. Moore - 40 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 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
April 2003 STCJames W. Moore - 41 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 STCJames W. Moore - 42 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 STCJames W. Moore - 43 Process of Becoming Certified u Complete application including: u resumé u transcript or diploma u report of education u verification of reading Code of Ethics u report of experience in at least 6 of the 11 knowledge areas u Prepare for examination u Self-study using a recommended two-volume resource guide, or u Take exam preparation tutorial u Schedule the exam at a Prometric test center u Take the exam u 4-hour, computer-based, 180- question, multiple-choice u Pass/Fail is determined immediately u Diagnostic scores for self- assessment in content areas are provided to candidates who do not pass
April 2003 STCJames W. Moore - 44 Taking the Test u The 2003 Testing Window is from April 1, 2003 to June 30, u The computerized exam can be taken at over 230 Prometric Testing Centers. u Special exam opportunity here at STC this week: u Discount on pre-exam tutorial. u Discount on exam itself. u Free retest within one year (so you can use the exam for your own personal gap analysis).
April 2003 STCJames W. Moore - 45 Certification Renewal u Certificate is valid for 3 years u Renewal is based upon earning continuing education credits
April 2003 STCJames W. Moore - 46 Importance to Individuals u Self-assessment of professional knowledge u Differentiation from less qualified individuals u Credibility of qualifications for employment or contracts u Professional recognition But certification is not a guarantee of competency.
April 2003 STCJames W. Moore - 47 Importance to Organizations u Hiring: A method to credibly assess qualifications. u Salary Management: A rational way to provide salary bonuses for vital IT skills. u Training: A structure for a development program leading to a recognizable result. u Competency: A method to assess strengths in important areas. u Consulting: A means to assert qualifications to consult in important areas. u Suppliers: A way to evaluate the ability of suppliers to perform.
April 2003STCJames W. Moore - 48 Code of Ethics
April 2003 STCJames W. Moore - 49 Software Engineering Code of Ethics and Professional Practices u Developed by a Joint IEEE-CS/ACM Task Force on Software Engineering Ethics and Professional Practices. Approved in “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 STCJames W. Moore - 50 Short Version States Eight Principles u Public: Software engineers shall act consistently with the public interest. u 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. u Product: Software engineers shall ensure that their products and related modifications meet the highest professional standards possible. u Judgment: Software engineers shall maintain integrity and independence in their professional judgment. u Management: Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance. u Profession: Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. u Colleagues: Software engineers shall be fair and supportive of their colleagues. u 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.
April 2003 STCJames W. Moore - 51 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: Temper all technical judgments by the need to support and maintain human values Only endorse documents either prepared under their supervision or within their areas of competence and with which they are in agreement Maintain professional objectivity with respect to any software or related documents they are asked to evaluate Not engage in deceptive financial practices such as bribery, double billing, or other improper financial practices Disclose to all concerned parties those conflicts of interest that cannot reasonably be avoided or escaped 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 STCJames W. Moore - 52 IEEE CS Support of the Professional Professional Development Initial professional education Skills Development Possibly Full Professional Status CertificationLicensing Necessary Infrastructure Support Example Products and Services of Professional Societies Adapted from Steve McConnell, After the Gold Rush, Microsoft Press CurriculaCC2001, CCSE AccreditationABET/CSAB Body of knowledgeSWEBOK Prof. literatureIT Pro, Software Prof. interactionChapters, Elec. Communities Prof. trainingDVP, Tutorials, Distance Learning Design solutionsStandards, Workshops Practice normsStandards, Best Practices Ethical normsCode of Ethics Prof. certificationCSDP