c25d58a5371fc03c6a404cad9860e45d.ppt
- Количество слайдов: 52
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 2
From Grady Booch, The Future of Software April 2003 STC 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 4
Model of the Maturity of a Profession u u u u 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. 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 Adapted from Steve Mc. Connell, After the Gold Rush, Microsoft Press, 1999, p. 93 STC 6
Software Engineering is Becoming Recognized as an Engineering Profession u u u 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 7
IEEE CS Support of the Professional Development Necessary Infrastructure Support Example Products and Services of Professional Societies Curricula 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 Initial professional education CC 2001, CCSE Standards, Best Practices Ethical norms Code of Ethics Prof. certification CSDP Skills Development Possibly Certification Adapted from Steve Mc. Connell, After the Gold Rush, Microsoft Press April 2003 Licensing Full Professional Status STC 8
Software Engineering Body of Knowledge Project April 2003 STC James W. Moore - 9
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 STC 10
Key Interrelationships for a Core Body of Knowledge STC uen Infl s Influences nce April 2003 Consensus on a Core Body of Knowledge lue Development of Certification / Licensing Criteria and Exams Inf ces Development of Software Engineering Curricula Development of University Program Accreditation Criteria 11
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 April 2003 STC 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 Mac. Donell & 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 12
Industrial Advisory Board Corporate Support by: Project managed by: April 2003 STC 13
Reviewer Demographics Version 0. 1: 33 reviewers Version 0. 5: 195 reviewers Version 0. 7: 378 + 5 ISO nations April 2003 STC 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 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 16
Knowledge Areas u u u u u April 2003 Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration 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 Science 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 to Related Disciplines Not implemented in Stoneman STC 18
Overall SWEBOK 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 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 Requirement Analysis Key Issues in Software Design Software Structure and Architecture Formal Construction Methods Test Levels Visual Construction Methods Anticipation of Diversity Test Techniques Software Design Quality Analysis and Evaluation Requirements Validation Software Design Notations Requirements Management Software Design Strategies and Methods Formal Construction Methods Key Issues in Software Maintenance Techniques for Maintenance Linguistic Construction Methods Requirements Specification 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 Software Methods Testing Special to SQA or V&V Defect Finding Techniques Measurement in Software Quality Analysis 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 19
Uptake of SWEBOK u 1999 -2002: 32 conferences and workshops: u u u North America Europe Australia, New Zealand, Argentina, … u University u u u Editorial team presentations: u 2370 references to SWEBOK on Web in March 2003 u USA, Canada, Spain, Brazil, Japan, China, … Professional development u u u http: //www. swebok. org April 2003 u STC Software Engineering curriculum University lectures Research Papers Conferences & Workshops Certification & Licensing Government & Policy organizations Individuals 20
Examples of SWEBOK Uptake CSDP, CC 2001/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 2003 u STC 21
Software Engineering Standards April 2003 STC James W. Moore - 22
Roles of Software Engineering Standards u u u 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 P 1320. 1 (IDEF 0) 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 23
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 STC 24
Education SWE Body of Knowledge Software Engineering Standards in Context Certification Dependability Practice Fundamental Principles Process Definition Motivate Process Assessment Quality Management Project Management System Engineering Process Measurement Body of Standards Integrating Framework Best Practices IEEE ISO/IEC Do. D Umbrella Standard(s) Integrated Collection of Practice Standards IEEE ISO/IEC Competency Certification Organizational Adoption Buyer/Seller Agreement Critical System Assurance April 2003 STC 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 26
Principes fondamentaux du génie logiciel u 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: [Jabir 97] 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. 27
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: [Dupuis 97] April 2003 STC 28
Certified Software Development Professional April 2003 STC James W. Moore - 29
Certification u u u 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 $4 B by 2004. (IT training market $34 B. ) There are certification trainers, vendors, consultants and magazines. STC 30
IT Certifications u Information Week reports bonus pay growing for certifications (and falling for non-certified skills). Median bonus for certified IT skill in 4 Q 01 was 8. 3% of base pay. u IDC reports nine-month payback on company investment. Who was the big winner? Answer to come. April 2003 STC 31
Impact of Certification: The PMI Example u u Project Management Institute (100 K 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: u u u 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 32
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 April 2003 Computer Society web site for CSDP: http: //www. computer. org/certification STC 33
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 2002. About 250 certifications to date. April 2003 STC 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 35
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 April 2003 the CSDP written examination STC 36
11 Knowledge Areas for CSDP u u u April 2003 Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Process Software Tools and Methods Software Quality Business Practices & Engineering Economics STC Same as SWEBOK plus 37
Approximate Distribution of Questions April 2003 STC 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 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 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 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 42
Process of Becoming Certified u Complete application including: u u u Prepare for examination u 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 u u u Schedule the exam at a Prometric test center Take the exam u u u April 2003 STC Self-study using a recommended two-volume resource guide, or Take exam preparation tutorial 4 -hour, computer-based, 180 question, multiple-choice Pass/Fail is determined immediately Diagnostic scores for selfassessment in content areas are provided to candidates who do not pass 43
Taking the Test u The 2003 Testing Window is from April 1, 2003 to June 30, 2003. u The computerized exam can be taken at over 230 Prometric Testing Centers. u Special exam opportunity here at STC this week: u u u 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 44
Certification Renewal u Certificate is valid for 3 years u Renewal is based upon earning continuing education credits April 2003 STC 45
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 STC 46
Importance to Organizations u u u 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 47
Code of Ethics April 2003 STC James W. Moore - 48
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 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 49
Short Version States Eight Principles u u 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. u u 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. 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 51
IEEE CS Support of the Professional Development Necessary Infrastructure Support Example Products and Services of Professional Societies Curricula 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 Initial professional education CC 2001, CCSE Standards, Best Practices Ethical norms Code of Ethics Prof. certification CSDP Skills Development Possibly Certification Adapted from Steve Mc. Connell, After the Gold Rush, Microsoft Press April 2003 Licensing Full Professional Status STC 52