swebok

advertisement
SWEBOK
Introduction to the SWEBOK
Guide and Project
Pierre Bourque
Internet Seminar given to 3IL Students
20 March 2007
ÉTS
© IEEE
www.swebok.org
1
Corporate Support by:
Project managed by:
© IEEE
www.swebok.org
2
1
IEEE Computer Society
~
Institute of Electrical and Electronics Engineers:
™ 360,000 members in 175 countries.
™ Publishes 30% of the world’s technical literature
within its scope of interest.
~
The Computer Society is the largest of IEEE’s 37
technical societies:
™ 100,000 members, 40% outside the US.
™ Founded in 1946, the world’s oldest and largest
association of computing professionals.
© IEEE
www.swebok.org
3
Trial Version (2001)
© IEEE
www.swebok.org
4
2
2004 Version
© IEEE
www.swebok.org
5
Guide to the Software Engineering
Body of Knowledge (SWEBOK®)
~
Began as a collaboration among IEEE CS, ACM
and the Université du Québec à Montréal
~
International participation from industry,
professional societies, standards bodies,
academia, authors
~
Over 500 hundred software engineering
professionals have touched the document
~
Release of Trial Version in 2001
® Registered in U.S. Patent Office
© IEEE
www.swebok.org
6
3
2004 SWEBOK Guide
~
Available on www.swebok.org
~
The 2004 Version was endorsed by the project’s
Industrial Advisory Board in January 2004 and
approved by the IEEE Computer Society Board of
Governors in February 2004
~
Also published in book form by the IEEE Computer
Society Press and in Japanese by Ohmsha
~
Also published as ISO Technical Report 19759
~
Current draft versions in Arabic, French and Spanish
www.swebok.org
© IEEE
7
List of Knowledge Areas
~
Software Requirements
~
Software Design
~
Software Construction
~
Software Testing
~
Software Maintenance
~
Software Configuration Management
~
Software Quality
~
Software Engineering Tools & Methods
~
Software Engineering Process
~
Software Engineering Management
© IEEE
www.swebok.org
8
4
Presentation Objectives
~
Give an overview of the emerging
international consensus on the “core
body of knowledge” of software
engineering
~
Briefly present the development
process used to reach this emerging
consensus
www.swebok.org
© IEEE
9
Presentation Plan
~ Project
© IEEE
background
~
Project scope, objectives, audience and
development process
~
Contents of the Guide
~
Evolution of the Guide
~
Conclusion
~
Appendix: Breakdown of topics
www.swebok.org
10
5
What is Software
Engineering?
~
IEEE 610.12:
™ “(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).”
www.swebok.org
© IEEE
11
Recognized Profession?
~
Starr*:
™ Knowledge and competence validated by
the community of peers
™ Consensually validated knowledge rests
on rational, scientific grounds
™ Judgment and advice oriented toward a
set of substantive values
*
© IEEE
P. Starr, The Social Transformation of American Medicine:
BasicBooks, 1982.
www.swebok.org
12
6
Development of a Profession
Initial
professional
education
Accreditation
Skills
Development
Professional
societies
One or both
Certification
Licensing
Professional
development
Full
Professional
Status
Code of
ethics
Adapted from Steve
McConnell, After the
Gold Rush, Microsoft
Press, 1999, p. 93
www.swebok.org
© IEEE
13
Presentation Plan
~
Project background
~
Project scope, objectives, audience
and development process
~
Contents of the Guide
How you can leverage the Guide within your
organization
Evolution of the Guide
Conclusion
Breakdown of topics
~
~
~
~
© IEEE
www.swebok.org
14
7
Project Objectives
~
Characterize the contents of the
Software Engineering Body of
Knowledge
~
Provide a topical access to the
Software Engineering Body of
Knowledge
~
Promote a consistent view of software
engineering worldwide
www.swebok.org
© IEEE
15
Project Objectives
~
Clarify the place of, and set the
boundary of, software engineering with
respect to other disciplines (computer
science, project management, computer
engineering, mathematics, etc.)
~
© IEEE
Provide a foundation for curriculum
development and individual certification
and licensing material
www.swebok.org
16
8
Intended Audience
~
Public and private organizations
~
Practicing software engineers
~
Makers of public policy
~
Professional societies
~
Software engineering students
~
Educators and trainers
www.swebok.org
© IEEE
17
What Are we Not Trying
to Accomplish?
© IEEE
~
Not a curriculum development effort!
~
Not an all-inclusive description of the
sum of knowledge in the field
~
Not all categories of knowledge
www.swebok.org
18
9
Categories of Knowledge
in the SWEBOK
Specialized
Generally
Accepted
~
Advanced
and
Research
Target of the
SWEBOK Guide
«Applicable to most projects,
most of the time, and
widespread consensus about
their value and usefulness»
Project Management
Institute - PMI
North American Bachelor’s degree + 4 years of experience
www.swebok.org
© IEEE
Application
domain
knowledge
Advanced
SE
Knowledge
C.S.
Specialized
SE
Knowledge
Guide to the
SWEBOK
Stoneman
19
Knowledge
of a
Software
Engineer
Maths
...
© IEEE
www.swebok.org
20
10
Three Underlying Principles
of the Project
~
Transparency: the development process is
itself published and fully documented
~
Consensus-building: the development
process is designed to build, over time,
consensus in industry, among professional
societies and standards-setting bodies and
in academia
~
Available free on the web
www.swebok.org
© IEEE
21
Project Team
© IEEE
~
Editorial Team of the Guide
~
Industrial Advisory Board
~
Associate Editors of the Knowledge
Areas
~
Reviewers
www.swebok.org
22
11
Roles of the Industrial
Advisory Board
~
Provide input to ensure relevance to
various audiences
~
Review and approve strategy and
deliverables
~
Oversee development process
~
Assist in promoting the Guide to the
Software Engineering Body of Knowledge
~
Lend credibility to the project
23
www.swebok.org
© IEEE
A Three-Phase Approach for
Developing the Guide
Straw Man
Phase
Stone Man Phase
Iron Man Phase
(Sub-phase 1)
Iron Man
Phase
(Subphase 2)
Trial
Trial
Version
Version
1998
© IEEE
1999
2000
2001
www.swebok.org
2004
2004
Version
Version
2002
2003
24
12
Formal resolutions
~
Industrial Advisory Board (2001)
~
IEEE CS Board of Governors (2001)
™ "The Board of Governors of the IEEE Computer Society
accepts the Guide to the Software Engineering Body of
Knowledge (Trial Version) as fulfilling its development
requirements and is ready for field trials for a period of
two years“
~
IEEE CS Board of Governors (Feb. 2004)
™ Officially approved the 2004 Version
~
Official recognition as ISO Technical Report 19759
25
www.swebok.org
© IEEE
Trial Version Review Process
Version 0.1
Limited number of domain experts
Review
Cycle 1
Selected users
Version 0.5
Review
cycle 2
Community
Version 0.7
Review
Cycle 3
Version 0.9
© IEEE
www.swebok.org
26
13
Trial Version Review Process
~
Transparency and consensus-building
™ All intermediate versions of documents
are published and archived on
www.swebok.org
™ All comments are made public as well as
the identity of the reviewers
™ Detailed comment disposition reports are
produced for Review Cycle 2 and 3
© IEEE
www.swebok.org
© IEEE
www.swebok.org
27
28
14
Comment Resolution
www.swebok.org
© IEEE
29
Data on reviewers
Trial Version
~
Version 0,1: 33
~
Version 0,5: 195
~
Version 0,7: 378
™ + ISO reviews from 5 countries
© IEEE
www.swebok.org
30
15
Geographic Distribution of Reviewers
Trial Version
~
USA:
~
Europe: 18%
55%
™ 90 reviewers from 25 countries
~
Canada: 10%
~
Australia: 5%
~
Asia:
~
Latin America: 4%
5%
31
www.swebok.org
© IEEE
Education level of reviewers
(Version 0,7)
3%
24%
34%
39%
© IEEE
www.swebok.org
Ph.D.
Masters
Bach
Other
32
16
Number of employees at
reviewer location (Version 0,7)
31%
37%
0-50
50-500
Over 500
32%
33
www.swebok.org
© IEEE
Number of years of practical
experience (Version 0,7)
9%
32%
21%
0-9
38%
10-19
20-29
© IEEE
www.swebok.org
34
17
A Three-Phase Approach for
Developing the Guide
Straw Man
Phase
Experimentation
and Trial Usage
Stone Man Phase
Iron Man Phase
(Sub-phase 1)
Revision
Iron Man
Phase
(Subphase 2)
Trial Version
Version
Trial
1998
1999
2000
2001
2004
2004
Version
Version
2002
2003
35
www.swebok.org
© IEEE
Reviewers (2004 Version)
~
~
~
~
Registered reviewers: 573
Number of countries: 55
Number of comments: 1020
Number of reviewers
submitting comments: 124
Number of represented
countries: 21
Years in the field
60
Number of Reviewers
~
50
48
40
44
30
20
10
13
17
2
0
0-9 years
10-19 years
20-29 years
30-39 years
40-49 years
Years in industry
50
Number of Reviewers
45
40
47
41
35
30
25
28
20
15
10
8
5
0
0-9 years
© IEEE
www.swebok.org
10-19 years
20-29 years
30-39 years
36
18
Project Overview
Presentation Plan
~
Project background
~
Project scope, objectives, audience and
development process
~ Contents
of the Guide
~
Evolution of the Guide
~
Conclusion
~
Appendix: Breakdown of topics
www.swebok.org
© IEEE
37
Deliverables:
© IEEE
~
Consensus on a list of Knowledge
Areas
~
Consensus on a list of topics and
relevant reference materials for each
Knowledge Area
~
Consensus on a list of Related
Disciplines
www.swebok.org
38
19
Knowledge Areas and
Related Disciplines
~
Software Requirements
~
Software Design
~
Software Construction
Related Disciplines
~
•
•
Software Testing
•
Software Maintenance
•
Software Configuration Management •
Software Eng. Management
•
•
Software Eng. Tools & Methods
•
Software Engineering Process
~
Software Quality
~
~
~
~
~
Computer Engineering
Computer Science
Mathematics
Project Management
Management
Quality Management
Software Ergonomics
Systems Engineering
39
www.swebok.org
© IEEE
Knowledge Area Description
Classification
of Topics
Topic
Descriptions
© IEEE
Matrix of Topics
& References
Classification
by Vincenti’s
Taxonomy
Classification
by Bloom’s
Taxonomy
References
References
to Related
Disciplines
Not implemented
www.swebok.org
40
20
Guide to the Software Engineering Body of Knowledge
2004 Version
Software
Requirements
Software Design
Software
Construction
Software
Requirements
Fundamentals
Software Design
Fundamentals
Basic Concepts
of Construction
Sofware
Testing
Fundamentals
Requirements
Process
Key Issues in
Software Design
Managing
Construction
Test Levels
Requirements
Elicitation
Software Structure
and Architecture
Practical
Considerations
Test Techniques
Requirements
Analysis
Software Design
Quality Analysis
and Evaluation
Test Related
Measures
Requirements
Specification
Software Design
Notations
Test
Process
Requirements
Validation
Software Design
Strategies and
Methods
Software Testing
Software
Maintenance
Software
Maintenance
Fundamentals
Key Issues in
Software
Maintenance
Maintenance
Process
Techniques for
Maintenance
Practical
Considerations
41
www.swebok.org
© IEEE
Guide to the Software Engineering Body of Knowledge
(2004 Version)
Software
Configuration
Management
Software
Engineering
Management
Software
Configuration
Management
Fundamentals
Initiation and
Scope
Definition
Keys
Issues in
SCM
Software
Configuration
Control
Software
Configuration
Status Accounting
Process
Implementation
and Change
Software
Project
Planning
Process
Definition
Software Project
Enactment
Process
Assessment
Software
Engineering Tools
and Methods
Software Tools
Software Requirements
Tools
Software Design Tools
Software Construction
Tools
Software Testing Tools
Software Quality
Related
Disciplines
Software Quality
Fundamentals
Computer
Engineering
Software Quality
Management
Processes
Computer
Science
Practical
Considerations
Management
Software Maintenance
Tools
Review and
Evaluation
Process and
Product
Measurement
Software Engineering
Process Tools
Software
Configuration
Auditing
Software Engineering
Management Tools
Infrastructure Support
Tools
SW Engineering
Measurement
Mathematics
Software Quality Tools
Software Configuration
Management Tools
Closure
Software Release
Management and
Delivery
Software
Engineering
Process
Miscellaneous Tool
Issues
Project
management
Quality
management
Software
Ergonomics
Software Methods
Heuristic Methods
Systems
engineering
Formal Methods
Prototyping Methods
Miscellaneous Method
Issues
© IEEE
www.swebok.org
42
21
www.swebok.org
© IEEE
43
Summary of changes
in 2004 Version
© IEEE
~
Standardization of the contents of the chapters in
terms of table of contents, topic breakdown,
terminology, reference citations and writing style
~
Structural improvements in breakdown of topics:
Software Construction, Software Engineering
Management, Software Quality, Software
Engineering Process
~
Better representation of text in topic breakdown :
Software Requirements, Software Testing, Software
Maintenance
www.swebok.org
44
22
Summary of changes
in 2004 Version
~
New chapter on Related Disciplines (instead
of an appendix)
~
Better representation of standards in
chapters and a new Appendix devoted to
standards
~
Updating of reference material
~
Handling of trial usage feedback
~
Handling of reviewer comments
www.swebok.org
© IEEE
45
Presentation Plan
© IEEE
~
Project background
~
Project scope, objectives, audience and
development process
~
Contents of the Guide
~
Evolution of the Guide
~
Conclusion
~
Appendix: Breakdown of topics
www.swebok.org
46
23
Evolution of the SWEBOK
Guide
~
Next planned version is 2009
~
Main focus of changes
™ Harmonization of IEEE software engineering professional
products with the SWEBOK Guide as the cornerstone
~
Time-boxed block updates
™ To ensure currency
™ To permit structural evolution while ensuring internal
consistency
™ To permit synchronization with coordinated efforts
™ To allow “follower” efforts to perform their own planning
www.swebok.org
© IEEE
47
Evolution of the SWEBOK
Guide
~
Involvement with stakeholder groups
™ To support existing audiences
~
Openness and transparency
™ To appeal to new audiences
™ To give credibility to the product
~
© IEEE
Technical excellence
www.swebok.org
48
24
Presentation Plan
~
Project background
Project scope, objectives, audience and
development process
Contents of the Guide
How you can leverage the Guide within your
organization
Evolution of the Guide
~
Conclusion
~
Appendix: Breakdown of topics
~
~
~
~
© IEEE
www.swebok.org
49
Concluding Remarks
~
© IEEE
Consensus on the core body of
knowledge is key in all disciplines
and pivotal for the evolution toward
a professional status
www.swebok.org
50
25
www.swebok.org
www.swebok.org
© IEEE
51
Presentation Plan
~
Project background
Project scope, objectives, audience and
development process
Contents of the Guide
How you can leverage the Guide within your
organization
Evolution of the Guide
Conclusion
~
Appendix: Breakdown of topics
~
~
~
~
~
© IEEE
www.swebok.org
52
26
Guide to the Software Engineering Body of Knowledge
2004 Version
Software
Requirements
Software Design
Software
Construction
Software
Requirements
Fundamentals
Software Design
Fundamentals
Basic Concepts
of Construction
Sofware
Testing
Fundamentals
Requirements
Process
Key Issues in
Software Design
Managing
Construction
Test Levels
Requirements
Elicitation
Software Structure
and Architecture
Practical
Considerations
Test Techniques
Requirements
Analysis
Software Design
Quality Analysis
and Evaluation
Test Related
Measures
Requirements
Specification
Software Design
Notations
Test
Process
Requirements
Validation
Software Design
Strategies and
Methods
Software Testing
Software
Maintenance
Software
Maintenance
Fundamentals
Key Issues in
Software
Maintenance
Maintenance
Process
Techniques for
Maintenance
Practical
Considerations
53
www.swebok.org
© IEEE
Guide to the Software Engineering Body of Knowledge
(2004 Version)
Software
Configuration
Management
Software
Engineering
Management
Software
Configuration
Management
Fundamentals
Initiation and
Scope
Definition
Keys
Issues in
SCM
Software
Configuration
Control
Software
Configuration
Status Accounting
Process
Implementation
and Change
Software
Project
Planning
Process
Definition
Software Project
Enactment
Process
Assessment
Software
Engineering Tools
and Methods
Software Tools
Software Requirements
Tools
Software Design Tools
Software Construction
Tools
Software Testing Tools
Software Quality
Related
Disciplines
Software Quality
Fundamentals
Computer
Engineering
Software Quality
Management
Processes
Computer
Science
Practical
Considerations
Management
Software Maintenance
Tools
Review and
Evaluation
Process and
Product
Measurement
Software Engineering
Process Tools
Software
Configuration
Auditing
Software Engineering
Management Tools
Infrastructure Support
Tools
SW Engineering
Measurement
Mathematics
Software Quality Tools
Software Configuration
Management Tools
Closure
Software Release
Management and
Delivery
Software
Engineering
Process
Miscellaneous Tool
Issues
Project
management
Quality
management
Software
Ergonomics
Software Methods
Heuristic Methods
Systems
engineering
Formal Methods
Prototyping Methods
Miscellaneous Method
Issues
© IEEE
www.swebok.org
54
27
55
www.swebok.org
© IEEE
Software Design
1. Software Design
Fundamentals
2. Key Issues in
Software Design
3. Software Structure
and Architecture
General design
concepts
Concurrency
The context of
software design
Control and handling
of events
Architectural
structures and
viewpoints
The software design
process
Distribution of
components
Architectural styles
(macroarchitectural
patterns)
Enabling techniques
Error and exception
handline and fault
tolerance
Design patterns
(microarchitectural
patterns)
Interaction and
presentation
4. Software Design
Quality Analysis and
Evaluation
Quality attributes
Quality analysis and
evaluation techniques
5. Software
Design Notations
Structural
descriptions
(static view)
Behavior descriptions
(dynamic view)
Measures
Families of programs
and frameworks
Data persistence
6. Software Design
Strategies and
Methods
General Strategies
Function-oriented
(structured) design
Object-oriented
design
Data-structrure
centered design
Component-based
design (CBD)
Other methods
Figure 1 Breakdown of topics for the Software Design KA
© IEEE
www.swebok.org
56
28
Software Construction
Basic Concepts
of Construction
Reduction of Complexity
Managing
Construction
Construction Methods
Construction Planning
Role of Standards in
Construction
Construction design
Coding
Anticipation of Change
Constructing for
Validation
Practical
Considerations
Construction
Measurement
Construction Testing
Construction Quality
Integration
Construction Tools
Construction Languages
Figure 1. Breakdown of topics for the Software Construction KA.
57
www.swebok.org
© IEEE
Software Testing
1. Software
Testing
Fundamentals
2. Test Levels
3. Test
Techniques
4. Test Related
Measures
Testing-Related
Terminology
The Target of the
Test
Based on tester's intuition
and experience
Evaluation of the
Program Under
Test
Management
Concerns
Keys Issues
Objectives of
Testing
Specificationbased
Evaluation of the
Tests Performed
Test Activities
Relationships of
Testing to Other
Activities
5. Test Process
Code-based
Fault-based
Usage-based
Based on nature
of application
Selecting and
Combining
Techniques
© IEEE
www.swebok.org
58
29
S oftw are M ain ten an ce
Fu n d amen tals
K ey Issu es in
S oftware
Main ten an ce
Main ten an ce
Process
T ech n iq u es for
Main ten an ce
Definitions and
Term inology
Technical
M aintenance P rocess
M odels
P rogram C om prehension
Nature of
M aintenance
M anagem ent
M aintenance Activities
R e-engineering
Need for M aintenance
M aintenance C ost and
M aintenance C ost
Estim ation
R everse Engineering
M ajority of
M aintenance C osts
S oftware M aintenance
M easurem ent
Im pact Analysis
Evolution of S offware
C ategories of
M aintenance
59
www.swebok.org
© IEEE
Software Configuration Management
1. Software
Configuration
Management
Fundamentals
Identifying
Items to be
Controlled
Software
Configuration
Software
Configuration
Items
Software
Configuration
Item
Relationships
Software
Versions
2. Keys Issues
in SCM
3. Software
Configuration
Control
Organizational
Context for
SCM
Constraints and
Guidance for
SCM
Planning for
SCM
Requesting,
Evaluating and
Approving
Software
Changes
SCM
Organization and
Responsibilities
Software Change
Request Process
SCM Resources
and Schedules
Implementing
Software
Changes
Acquiring
Software
Configuration
Items
Tool Selection
and
Implementation
Vendor/
Subcontractor
Control
Software
Library
Interface Control
Baseline
Software
Configuration
Control Board
4. Software
Configuration
Status
Accounting
Software
Configuration
Status
Information
Software
Configuration
Status
Reporting
5. Software
Configuration
Auditing
Software
Functional
Configuration
Audit
Software
Physical
Configuration
Audit
6. Software
Release
Management
and Delivery
Software
Building
Software
Release
Management
In-Process
Audits of a
Software
Baseline
Deviations and
Waivers
Software
Configuration
Management
Plan
Surveillance of
Software
Configuration
Management
SCM Measures
and
Measurement
In-Process
Audits of SCM
© IEEE
www.swebok.org
60
30
Software Engineering
Management
Initiation and
Scope Definition
Software Project
Planning
Software Project
Enactment
Review and
Evaluation
Closure
Determination
and Negotiation
of Requirements
Process Planning
Feasibility
Analysis
Process for
Requirements
Review/Revision
SW Engineering
Measurement
Implementation
of Plans
Determining
Satisfaction of
Requirements
Determining
Closure
Establish and Sustain
Measurement
Commitment
Determine
Deliverables
Supplier Contract
Management
Reviewing and
Evaluating
Performance
Closure
Activities
Plan the
Measurement
Process
Effort, Schedule
and Cost
Estimation
Implementation
of Measurement
Process
Perform the
Measurement
Process
Resource
Allocation
Monitor Process
Evaluate
Measurement
Risk Management
Control Process
Quality
Management
Reporting
Plan Management
61
www.swebok.org
© IEEE
Software Engineering
Process
Process
Implementation
and Change
© IEEE
Process and
Product
Measurements
Process
Definition
Process
Assessment
Process Infrastructure
Life Cycle Models
Process Assessment
Models
Process Measurement
Activities
Software Life Cycle
Processes
Process Assessment
Methods
Software Products
Measurement
Models for Process
Implementation and
Change
Notations for
Process Definitions
Quality of Measurement
Results
Practical Considerations
Process Adaptation
Software Information
Models
Automation
Process Measurement
Techniques
www.swebok.org
62
31
Software Engineering Tools and Methods
I. Software Tools
II. Software Methods
Software Requirements
Tools
Heuristic Methods
Requirements modeling
Traceability
Structured methods
Data-oriented methods
Object-oriented methods
Software Design Tools
Software Construction
Tools
Program editors
Compilers
Interpreters
Debuggers
Software Testing Tools
Software
Engineering
Tools and
Methods
Domain specific methods
Formal Methods
Specification languages
Refinement
Verification
Prototyping Methods
Test generators
Test execution frameworks
Test evaluation
Test management
Performance analysis
Styles
Prototyping target
Evaluation techniques
Software Maintenance
Tools
Miscellaneous Method
Issues
Comprehension
Re-engineering
Method evaluation
Software Engineering
Process Tools
Process modeling
Process management
Integrated CASE environments
Process-centered software
engineering environments
Software Quality Tools
Inspection
Static analysis
Software Configuration
Management Tools
Defect, enhancement, issue and
problem tracking
Version managment
Release and build
Software Engineering
Management Tools
Project planning and tracking
Risk management
Measurement
Infrastructure Support
Tools
Interpersonal communication
Information retrieval
System administrative and
support
Miscellaneous Tools
Issues
Tool integration techniques
Meta tools
Tool evaluation
63
www.swebok.org
© IEEE
Software Quality
Software Quality
Fundamentals
Software Quality
Management
Processes
Software Engineering
Culture and Ethics
Software Quality
Assurance
Application Quality
Requirements
Value and Costs
of Quality
Verification and
Validation
Defect
Characterization
Models and
Quality
Characteristics
Reviews and
Audits
Software Quality
Management
Techniques
Software Quality
Measurement
Quality Improvement
© IEEE
Practical
Considerations
www.swebok.org
64
32
Download