swebok - PublicationsList.org

advertisement
SWEBOK
ÉTS
© IEEE
The Emerging Consensus on the
Software Engineering Body of
Knowledge
Pierre Bourque
R. Dupuis, A. Abran, J. W. Moore, L. Tripp
QAAM/QAI Conference
Baltimore
October 22, 2003
www.swebok.org
1
Corporate Support by:
Project managed by:
© IEEE
www.swebok.org
2
Trial version
Can be
downloaded from
www.swebok.org
free of charge
© IEEE
Now
Available in
Japanese
www.swebok.org
3
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
¤
By the time the project is finished many hundreds
of individuals will have touched it
¤
Release of Trial Version in 2001
¤
Currently completing the third phase of this threephase project leading to the 2004 Version
© IEEE
www.swebok.org
4
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
5
Presentation Objectives
© IEEE
¤
Give an overview of the emerging
international consensus on the “core
body of knowledge” of software
engineering
¤
Explain how you can leverage the
SWEBOK Guide within your
organization
www.swebok.org
6
Presentation Plan
¤ Project background
¤
Project scope, objectives, audience
and plan
¤
Contents of the Guide
¤ How you can leverage the Guide within
your organization
¤ Conclusions
© IEEE
www.swebok.org
7
What is Software
Engineering?
¤
IEEE 610.12:
v “(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.
v (2) The study of approaches as in (1).”
© IEEE
www.swebok.org
8
Recognized Profession?
¤
Starr*:
v Knowledge and competence validated by
the community of peers
v Consensually validated knowledge rests
on rational, scientific grounds
v Judgment and advice oriented toward a
set of substantive values
*
© IEEE
P. Starr, The Social Transformation of American Medicine:
BasicBooks, 1982.
www.swebok.org
9
Professional Development
Initial
professional
education
Accreditation
Skills
Development
Professional
societies
One or both
Certification
Licensing
Full
Professional
Status
© IEEE
Professional
development
Code of
ethics
www.swebok.org
Adapted from Steve
McConnell, After the
Gold Rush, Microsoft
Press, 1999, p. 93
10
Presentation Plan
¤
Project background
¤ Project
scope, objectives,
audience and plan
© IEEE
¤
Contents of the Guide
¤
How you can leverage the Guide within your
organization
¤
Conclusion
www.swebok.org
11
Project Objectives
© IEEE
¤
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
12
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
13
Intended Audience
© IEEE
¤
Public and private organizations
¤
Practicing software engineers
¤
Makers of public policy
¤
Professional societies
¤
Software engineering students
¤
Educators and trainers
www.swebok.org
14
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
15
Specialized
Categories of Knowledge
in the SWEBOK
© IEEE
Generally
Accepted
Focus of the
SWEBOK Guide
Advanced
and
Research
www.swebok.org
16
Generally Accepted
¤ «Applicable
to most projects, most of
the time, and widespread consensus
about their value and usefulness»
ØProject Management Institute - PMI
¤ Bachelor
© IEEE
+ 4 years of experience
www.swebok.org
17
Application
domain
knowledge
Advanced
SE
Knowledge
C.S.
Specialized
SE
Knowledge
Guide to the
SWEBOK
Stoneman
Knowledge
of a
Software
Engineer
Maths
...
© IEEE
www.swebok.org
18
Three Underlying Principles
of the Project
© IEEE
¤
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
19
Project Team
© IEEE
¤
Editorial team
¤
Industrial Advisory Board
¤
Knowledge Area Specialists
¤
Reviewers
www.swebok.org
20
Editorial Team
¤
Project “Champion”:
v Leonard Tripp, 1999 President,
IEEE Computer Society
v President, Professional Practices Committee
¤
Executive Editors:
v Alain Abran, ETS
v James W. Moore, The MITRE Corp.
¤
Editors:
v Pierre Bourque, ETS
v Robert Dupuis, UQAM
© IEEE
www.swebok.org
21
Roles of the Industrial
Advisory Board
© IEEE
¤
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
www.swebok.org
22
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
1998
© IEEE
1999
2000
2001
www.swebok.org
2004
Version
2002
2003
23
Formal resolutions
¤
Industrial Advisory Board (2001)
¤
CS Board of Governors (2001)
v "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
ISO Technical Report (2004)
www.swebok.org
24
Phase 2: Stone Man Review Process
Version 0.1
Limited number of domain experts
Review
Cycle 1
Version 0.5
Selected users
Review
cycle 2
Community
Version 0.7
Review
Cycle 3
Version 0.9
© IEEE
www.swebok.org
25
Stone Man Review Process
¤
Transparency and consensus-building
v All intermediate versions of documents
are published and archived on
www.swebok.org
v All comments are made public as well as
the identity of the reviewers
v Detailed comment disposition reports are
produced for Review Cycle 2 and 3
© IEEE
www.swebok.org
26
Data on reviewers
¤
Version 0,1: 33
¤
Version 0,5: 195
¤
Version 0,7: 378
v + ISO reviews from 5 countries
© IEEE
www.swebok.org
27
Geographic Distribution of
Reviewers
¤
USA:
¤
Europe: 18%
55%
v 90 reviewers from 25 countries
© IEEE
¤
Canada: 10%
¤
Australia: 5%
¤
Asia:
¤
Latin America: 4%
5%
www.swebok.org
28
Education level of reviewers
(Version 0,7)
3%
24%
34%
39%
© IEEE
www.swebok.org
Ph.D.
Masters
Bach
Other
29
Number of employees at
reviewer location (Version 0,7)
31%
37%
0-50
50-500
Over 500
32%
© IEEE
www.swebok.org
30
Number of years of practical
experience (Version 0,7)
9%
32%
21%
0-9
38%
10-19
20-29
© IEEE
www.swebok.org
31
Project Overview
Presentation Plan
¤
Project background
¤
Project scope, objectives, audience and plan
¤ Contents
© IEEE
of the Guide
¤
How you can leverage the Guide within your
organization
¤
Conclusion
www.swebok.org
32
Stone Man 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
33
List of
Knowledge Areas
¤
Software Requirements
¤
Software Design
¤
¤
¤
¤
¤
¤
¤
¤
© IEEE
Related Disciplines
• Computer Science (CC2001)
Software Construction
• Mathematics (CC2001)
Software Testing
• Project Management
Software Maintenance
(PMBOK)
Software Configuration Management • Computer Engineering
• Cognitive Sciences and
Software Eng. Management
Human Factors
Software Eng. Tools & Methods
• Systems Engineering
Software Engineering Process
• Management and
Management Science
Software Quality
www.swebok.org
34
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 in Trial Version
www.swebok.org
35
Guide to the Software Engineering Body of Knowledge
Guide to the Software
Engineering
Body of Knowledge
(Trial
Version)
(Trial Version)
Software
Requirements
Software Design
Software
Construction
Software Testing
Software
Maintenance
Requirement
Engineering
Process
Software Design
Basic Concepts
Reduction in
Complexity
Testing Basic
Concepts and
Definitions
Basic Concepts
Requirements
Elicitation
Key Issues in
Software Design
Anticipation of
Diversity
Requirement
Analysis
Software Structure
and Architecture
Structuring for
Validation
Test Levels
Maintenance
Process
Key Issues in
Software
Maintenance
Test Techniques
Techniques for
Maintenance
© IEEE
Requirements
Specification
Software Design
Quality Analysis
and Evaluation
Requirements
Validation
Software Design
Notations
Requirements
Management
Software Design
Strategies and
Methods
(a)
(b)
Use of External
Standards
Test-Related
Measures
Managing the Test
Process
(c)
www.swebok.org
(d)
(e)
36
Guide to the Software Engineering Body of Knowledge
Guide to the Software
Engineering
Body of Knowledge
(Trial
Version)
(Trial Version)
Software
Configuration
Management
Software
Engineering
Management
Software
Engineering
Process
Software
Engineering Tools
and Methods
Software Quality
Management of
the SCM Process
Organizational
Management
Software
Engineering
Process Concepts
Software Tools
Software Quality
Concepts
Software
Configuration
Identification
Software
Configuration
Control
Process/Project
Management
Software
Engineering
Measurement
Software Requirements
Tools
Process
Infrastructure
Software Design Tools
Software Construction
Tools
Process
Measurement
Software Testing Tools
Definition &
Planning for Quality
Techniques
Requiring Two or
More People
Software Maintenance
Tools
Software
Configuration
Status Accounting
Software
Configuration
Auditing
Process Definition
Software Engineering
Process Tools
Qualitative Process
Analysis
Software Quality Tools
Process
Implementation
and Change
Software Engineering
Management Tools
Software Configuration
Management Tools
Infrastructure Support
Tools
Miscellaneous Tool
Issues
Software Release
Management and
Delivery
Support to Other
Techniques
Testing Special to
SQA or V&V
Defect Finding
Techniques
Measurement in
Software Quality
Analysis
Software Methods
Heuristic Methods
Formal Methods
Prototyping Methods
Miscellaneous Method
Issues
© IEEE
(f)
(g)
(h)
www.swebok.org
(d)
(i)
(j)
37
Software Requirements
Software Requirements
Requirements
Engineering
Process
Requirements
Elicitation
Requirements
Analysis
Requirement
Specification
Requirements
Validation
Requirements
Management
Process Models
Requirements
Sources
Requirements
Classification
Requirements
Definition
Document
Conduct of
Requirements
Reviews
Change
Management
Process Actors
Elicitation
Techniques
Conceptual
Modeling
Software
Requirements
Specification (SRS)
Prototyping
Requirements
Attributes
Process Support
and Management
Architectural
Design and
Requirements
Allocation
Document
Structure and
Standards
Model Validation
Requirements
Tracing
Process Quality
and Improvement
Requirements
Negotiation
Document Quality
Acceptance tests
© IEEE
www.swebok.org
38
Software Design
Software Design
I. Software Design
Basic Concepts
II. Key Issues in
Software Design
General design
concepts
Concurrency
The context of
software design
Control and
handling of events
The software
design process
Distribution
Enabling
techniques for
software design
Exception handling
III. Software
Structure and
Architecture
Architectural
structures and
viewpoints
Architectural styles
and patterns
(macroarchitecture)
Design patterns
(micro-architecture)
Interactive systems
Persistence
Design of families
of programs and
frameworks
IV. Software
Design Quality
Analysis and
Evaluation
Quality attributes
Quality analysis
and evaluation
tools
Software design
reviews
V. Design
Notations
Structural
descriptions
(static view)
Behavior
descriptions
(dynamic view)
VI. Software
Design Strategies
and Methods
General Strategies
Function-oriented
design
Object-oriented
design
Static analysis
Data-structrure
centered design
Simulation and
prototyping
Other methods
Measures
Function-oriented
(structured) design
measures
Object-oriented design
measures
© IEEE
www.swebok.org
39
Software Construction
Software Construction
© IEEE
Reduction in
Complexity
Anticipation of
Diversity
Structuring for
Validation
Use of External
Standards
Linguistic
Construction
Methods
Linguistic
Construction
Methods
Linguistic
Construction
Methods
Linguistic
Construction
Methods
Formal
Construction
Methods
Formal
Construction
Methods
Formal
Construction
Methods
Formal
Construction
Methods
Visual
Construction
Methods
Visual
Construction
Methods
Visual
Construction
Methods
Visual
Construction
Methods
www.swebok.org
40
Software Testing
A. Testing
Basic
Concepts and
Definitions
A1. TestingRelated
Terminology
A2. Theoretical
Foundations
A3.
Relationships of
Testing to Other
Activities
Software
Testing
B. Test Levels
B1. The Target
of the Test
B2. Objectives
of Testing
C. Test
Techniques
D. Test Related
Measures
E. Managing
the Test
Process
C1.1 Based on
Tester's intuition
and experience
D1. Evaluation
of the Program
Under Test
E1.
Management
Concerns
C1.2
Specificationbased
D2. Evaluation
of the Tests
Performed
E2. Test
Activities
C1.3 CodeBased
C1.4 FaultBased
C1.5 UsageBased
C1.6 Based on
Nature of
Application
C2.1 Black-Box
Techniques
C2.1 White-Box
Techniques
C3. Selecting
and Combining
Techniques
© IEEE
www.swebok.org
41
Software Maintenance
Software Maintenance
Basic Concepts
Definitions and
Terminology
Majority of
Maintenance
Costs
The Nature of
Maintenance
Maintenance
Process
Key Issues in
Software
Maintenance
Process Models
Technical
Maintenance
Activities
Management
Cost and
Estimation
Measures
Techniques for
Maintenance
Program
comprehension
Re-engineering
Reverse
Engineering
Impact Analysis
Evolution of
Software
Need for
Maintenance
Categories of
Maintenance
© IEEE
www.swebok.org
42
Software Configuration Management
Software Configuration Management
Management
of the SCM
Process
Software
Configuration
Identification
Organizational
Context for
SCM
Identifying
Items to be
Controlled
Constraints
and Guidance
for SCM
Software
Configuration
Planning for
SCM
Software
Configuration
Management
Plan
Software
Configuration
Items
Software
Configuration
Items
Relationships
Software
Configuration
Control
Requesting,
Evaluating
and Approving
Software
Changes
Implementing
Software
Changes
Software
Configuration
Status
Accounting
Software
Configuration
Auditing
Software
Configuration
Status
Information
Software
Functional
Configuration
Audit
Software
Configuration
Status
Reporting
Software
Physical
Configuration
Audit
Deviations
and Waivers
Software
Versions
Software
Release
Management
and Delivery
Software
Building
Software
Release
Management
In-Process
Audits of a
Software
Baseline
Baseline
Acquiring
Software
Configuration
Items
Software
Library
© IEEE
www.swebok.org
43
Software Engineering Management
Software Engineering Management
Organizational
Management
Process/Project
Management
Policy
Management
Initiation and
scope definition
Personnel
Management
Planning
Communication
Management
Portfolio
Management
Procurement
Management
© IEEE
Enactment
Review and
Evaluation
Closure
www.swebok.org
Software
Engineering
Measurement
Goals
Measurement
Selection
Measuring
Software and its
Development
Collection of data
Software
Measurement
Models
44
Software Engineering Process
Sofware Engineering Process
Software
Engineering
Process
Concepts
Themes
Terminology
Process
Infrastructure
Process
Measurement
Process
Definition
Qualitative
Process
Analysis
Process
Implement.
and Change
Software
Engineering
Process Group
Methodology in
Process
Measurement
Types of
Process
Definitions
Process
Definition
Review
Experience
Factory
Process
Measurement
Paradigms
Life Cycle
Framework
Models
Root Cause
Analysis
Paradigms for
Process
Implementation
and Change
Software Life
Cycle Process
Models
Notations for
Process
Definitions
Guidelines for
Process
Implementation
and Change
Evaluating the
Outcome of
Process
Implementation
and Change
Process
Definition
Methods
Automation
© IEEE
www.swebok.org
45
Software Engineering Tools and Methods
Software
Engineering
Tools and
Methods
I. Software Tools
II. Software Methods
Software
Requirements Tools
Heuristic Methods
Software Design
Tools
Data-oriented methods
Structured methods
Object-oriented methods
Domain specific methods
Software Construction
Tools
Software Testing
Tools
Software Maintenance
Tools
Software Engineering
Process Tools
Software Quality Tools
Formal Methods
Specification languages
Refinement
Verification
Prototyping Methods
Styles
Prototyping target
Evaluation techniques
Miscellaneous Method
Issues
Method evaluation
Software
Configuration
Management Tools
Software Engineering
Management Tools
Infrastructure Support
Tools
Miscellaneous Tools
Issues
© IEEE
www.swebok.org
46
Software Quality
Software Quality
Software Quality
Concepts
Purpose and
Planning of SQA
and V&V
Activities and
Techniques for
SQA and V&V
Measurement
Applied to SQA
and V&V
Measuring the
Value of Quality
Common Planning
Activities
Static Techniques
Fundamentals of
Measurement
ISO 9126 Quality
Description
Dependability
The SQA Plan
Dynamic
Techiques
The V&V Plan
Other SQA and
V&V Testing
Special Types of
Systems and
Quality Needs
Measures
Measurement
Analysis
Techniques
Defect
Characterization
Additional Uses
of SQA and
V&V data
© IEEE
www.swebok.org
47
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
1998
© IEEE
1999
2000
2001
www.swebok.org
2004
Version
2002
2003
48
Presentation Plan
© IEEE
¤
Project background
¤
Project scope, objectives, audience and plan
¤
Contents of the Guide
¤
How you can leverage the Guide
within your organization
¤
Conclusions
www.swebok.org
49
Current Usage of the Guide
¤
As of June 2003 = 2,680 SWEBOK
references
¤ About
65% of references to SWEBOK
occur in education/training (#2, practice,
18%)
© IEEE
www.swebok.org
50
Applications of the Guide
¤
Industry & Government
v job description
Ø Bombardier Transportation
v hiring
v staffing of projects
v career planning
v contracting
© IEEE
www.swebok.org
51
Applications of the Guide
¤
Professional development
v internal training, corporate universities
v course design
v self-assessment
v individual training
© IEEE
www.swebok.org
52
Example Usage in
Professional Development:
Construx
¤ Software
Development Company
¤ Steve McConnell
¤ Ladder:
vLevels of performance/knowledge in SE
vKnowledge acquisition based on SWEBOK
Knowledge Areas
vReading and other activities permit you
climb the ladder
© IEEE
www.swebok.org
53
How SWEBOK Was Used
Next six slides from a presentation
done at the Conference on Software
Engineering Education snd Training,
Cincinnati, March 2002.
Copyright © James Mason and Dennis
J. Frailey, 2002
© IEEE
www.swebok.org
54
Security Industry
Automation Corporation
¤ Build/Operate
NYSE/AMEX trading
systems
¤ High
volume, transaction processing
systems that demand the highest levels
of reliability.
¤ Financial
markets depend on these
systems
¤ SIAC
© IEEE
must provide reliability assurances
www.swebok.org
55
Using SWEBOK to Align SIAC
Needs with the Body of
Knowledge
SOFTWARE
REQUIREMENTS
ENGINEERING
EMPLOYEE 1
EMPLOYEE 2
EMPLOYEE 3
EMPLOYEE 4
SPECIALTIES ALIGNED WITH SWEBOK KNOWLEDGE AREAS
SOFTWARE
SOFTWARE
SOFTWARE
DESIGN
CONSTRUCTION
T EST
ENGINEERING
ENGINEERING
SOFTWARE
ENGINEERING
MANAGEMENT
X
X
X
X
X
X
X
• Opportunity to plan expeditiously
• Intuitive acceptance of the structure
• Individual and organization planning were supported
© IEEE
www.swebok.org
56
SIAC Desired Course Structure
¤
Executive style on-site classes, supplemented by
distance education Core Curricula
Plus
Concentration in a
"Specialty"
Software
Requirements
Engineering
Software
Design
Engineering
Software
Construction
Engineering
Program
Software
Test
Engineering
Software
Engineering
Management
Description
Core Curricula
3-graduate courses in the "foundation knowledge"
Software Requirements Engineering
Software Design Engineering
Software Construction Engineering
2-graduate courses supporting the area
of concentration -- per "specialty"
Software Test Engineering
© IEEE
www.swebok.org
57
NTU Program
¤
National Technological University broadcasts
courses from about 3 dozen universities over
satellite to hundreds of industrial companies
¤
Software engineering program started about
1995, based on SEI model curriculum
¤
Same challenges as SMU, plus
vkeep up with distance education technologies
vform a cogent program out of many universities
© IEEE
www.swebok.org
58
Using SWEBOK to Examine the
NTU Software Engineering
Program
¤ The
problem here was that courses
come from many universities, and there
needs to be a model by which to
correlate their content and determine
equivalencies, overlaps, etc.
© IEEE
www.swebok.org
59
Things that were Learned -
NTU
¤
The SWEBOK categories made an excellent
system for categorizing courses
vAnd will be used for course numbering in the
future
© IEEE
¤
Holes and overlaps in course coverage were
considerably more apparent
¤
The SWEBOK provides a “neutral” basis for
discussion when universities disagree about
what should be covered
www.swebok.org
60
Example Usages in
Education
¤
Course Design/Assessment:
v Arizona State, etc.
¤
Program Design/Assessment:
v University of Iceland
v Southern Methodist University
v Stevens Institute of Technology
v National Technological University
v École de technologie supérieure
v Monash University
© IEEE
www.swebok.org
61
Known Usage in Education
¤ Accreditation
Criteria
vJapan
vCanada
¤ Numerous
mentions in conference
material
¤ References
in PhD dissertations
¤ References
in SE education related
sites
© IEEE
www.swebok.org
62
Applications of the Guide
¤
Licensing & Certification
v licensing exam questions
v study material
v in software engineering and other IT
fields
v could be on subsets of Knowledge Areas
© IEEE
www.swebok.org
63
Identifying Opportunities in
Your Organization
© IEEE
¤
How could the Guide be used in your
organization ?
¤
What other applications do you see in
your organization ?
www.swebok.org
64
Project Overview
Presentation Plan
¤
Project background
¤
Project scope, objectives, audience and plan
¤
Contents of the Guide
¤
How you can leverage the Guide within your
organization
¤ Conclusion
© IEEE
www.swebok.org
65
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
66
www.swebok.org
© IEEE
www.swebok.org
67
Download