Moore-stc2003 - IEEE Computer Society

advertisement
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
Download