Title: The Defined Process: The Software Engineering Body of Knowledge SWEBOK
1The Defined ProcessThe Software Engineering
Body of Knowledge (SWEBOK)
- Nora Houari
- Chad La Fournie
- Paul Werbicki
2Definitions
- Engineering The application of science and
mathematics by which properties of matter and the
sources of energy are made useful to people - SE The application of a systematic,
disciplined, quantifiable approach to
development, operation and maintenance of
software that is, the application of engineering
to software.
3SE and Engineering
- Why?
- Software has evolved from individual activity to
highly organized team effort - To help solve the software crisis
- Certification
- Legitimacy
4Components of a Profession
5Why Now?
- Background
- 1993 - The Joint IEEE-CS and ACM Steering
Committee - 1998 - Software Engineering Coordinating
Committee (SWECC) - Various bodies are beginning to issue SE
certifications - TBPE
- APEGBC
- PEO
6Timeline
7The SWEBOK Guide
- Objectives
- Promote a consistent view of SE worldwide
- Clarify the place and boundaries of SE relative
to other related disciplines - Define/characterize the contents of the SE
discipline - Provide access to the various components of the
SWEBOK - Provide a foundation for curriculum development
and individual certification and licensing
8The SWEBOK Guide Contd
- A guide to describe the core of the SE Body of
Knowledge - Broken into Knowledge Areas
9Knowledge Areas
- Establishes boundaries that identify engineering
disciplines - May share common boundaries with other
disciplines - Does not attempt to describe all of the knowledge
within SE
10Knowledge Areas Contd
- Captures a subset of generally accepted
knowledge or the core of SE
11Knowledge Areas Contd
- There are 10 KAs in the SWEBOK
- Each KA contains a reasonable topic list
presenting sound information about SE - Excludes specific knowledge regarding application
domains, business, technology, SLCs and
development methods - Compatible with what is generally found in
industry
12Knowledge Area Contd
- Each KA follows the KA Description Specification
- Includes description, topics, related areas and
reference materials.
13The Repeatable Process
- The first 5 KAs cover the repeatable process
- Requirements
- Design
- Construction
- Testing
- Maintenance
- Define KA used in the development of software
management processes - Together the are comparable to the definition of
CMM level 2 excluding business specific knowledge
14Software Requirements
- Requirements engineering process
- Requirements elicitation
- Requirements analysis
- Software requirements specification
- Requirements validation
- Requirements management
- How does this compare to SENG 611 Requirements
Engineering?
15Software Design
- Basic concepts
- Key issues of software
- Structure and architecture
- Software design quality analysis and evaluation
- Design notation
- Software design strategies and methods
- Does SENG 609.23 Object Oriented Analysis and
Design cover these topics?
16Software Construction
- Considered to be the fundamental act of SE
- The construction of working, useful software
through programming, validation and testing. - Three styles of construction
- Linguistic
- Formal
- Visual
17Software Construction Contd
- Principles of construction
- Reduction of complexity
- Anticipation of diversity
- Structuring for validation
- Use of external standards
- Where does the Software Engineer learn to
construct software? - Is Computer Science a required related discipline?
18Software Testing
- Basic concepts
- Test levels
- Test techniques
- Test-related measures and management
- Are enough of these topics covered in SENG 609.11
Software Reliability and Testing?
19Software Maintenance
- Basic concepts
- Maintenance process
- Key issues
- Techniques for maintenance
- Is there a SENG course that covers software
maintenance?
20Related Disciplines
- Computer Science
- Mathematics
- Projects Management
- Computer Engineering
- Cognitive Science and Human Factors
- Systems Engineering
- Management and Management Science
21The Defined and Managed Process
- The last 5 KAs cover the defined and managed
process - Software Configuration Management
- Software Engineering Management
- Software Engineering Process
- Software Engineering Tools and Methods
- Software Quality Analysis
- Together they are are comparable to the
definition of CMM level 3 and 4
22Software Configuration Management (SCM)
- Management of the SCM Process
- Software Configuration Identification
- Software Configuration Control
- Software Configuration Status Accounting
- Software Configuration Auditing
- Software Release Management and Delivery
- Is there a SENG course that covers SCM?
23Software Engineering Management
- Organizational Management
- Process/ Project Management
- Software Engineering Measurement
- Are enough of these topics covered in SENG
609.32 Software Quality MGMT Practices, - and SENG 609.18 software Engineering Decision
Making?
24Software Engineering Process
- Software Engineering Process Concepts
- Process Infrastructure
- Process Measurement
- Process Definition
- Qualitative Process Analysis
- Process Implementation and change
- Does SENG 609.24 Agile Software Processes , and
SENG 691 Manage Software ENGG RES Process cover
these topics?
25Software Engineering Tools and Methods
- Software Tools requirements tools, design tools,
Construction tools, testing tools, maintenance
tools , engineering process tools, quality tools,
configuration management tools, engineering
management tools, infrastructure support tools,
Miscellaneous tools issues - Software Methods
- Heuristic
- Formal
- Prototyping
- Miscellaneous
- Are enough of these tools and methods covered in
the CPSC and SENG courses?
26Software Quality
- Software Quality Concepts
- Purpose and Planning of SQA and VV
- Activities and Techniques for SQA and VV
- Measurement Applied to SQA and VV
- Are enough of these topics covered in SENG 623
Software Quality Management, and SENG 609.33
Software Quality and Quality Assurance?
27A complete SWEBOK based Education Program
Software Engineering Tools and Methods
Software Engineering Process
Software Engineering Management
Software Quality
Software Configuration Management
SWEBOK
Software Maintenance
Software Requirement
Software Testing
Software Construction
Software Design
28SE Practices, Education and Foundations Current
Status
SE Practices
SE Education
SE Foundations
29SE To be a matured Discipline
SE Practices
SE Education
SE Foundations
30SWEBOK and SQA (Humphrey)
- Quality A main goal of SWEBOK
- Helps to define the role of the SQA team
- SQA reporting
- Why SQA organizations fail to have an impact
- Lack of knowledge / Inexperienced people
- Lack of development standards and procedures
31Challenges
- Withdrawal of the ACM
- ACM interests and priorities
- Professional development
- Development and maturation of computing
disciplines - Public interest and critical systems
- Software quality
- Other Reasons
- Core BOK vs. specific
- Haste to certify
32Challenges Contd
- Professional Engineer (PE) exams
- Areas are covered that are outside the CPSC or SE
domain - Including SE in the exam is not yet possible
- Rate of change in SE is high
- Who should take the exam?
- SE is not included in any depth
33Challenges Contd
- Challenges
- Creativity and individuality
- Can a consensus be reached?
- Guarantee a product or a level of quality?
34Conclusion
- Next Steps
- Seeking collaboration
- Redefining the core
- Evaluation of field testing
- Questions
- Does the SENG program adequately cover the KAs in
the SWEBOK? - Does SWEBOK fulfill its goals?
- Can SE become a true Engineering discipline?
Should it?
35References
- Guide to the Software Engineering Body of
Knowledge Trial Version, 2001,
http//www.swebok.org/stoneman/version09.html - Trip, Leonard L., Professionalization of Software
Engineering Next Steps, 1999, http//www.swebok.o
rg/documents/x3009.pdf - A Summary of the ACM Position on Software
Engineering as a Licensed Engineering
Profession, http//www.acm.org/serving/se_policy/
selep_main.html - An Assessment of Software Engineering Body of
Knowledge Efforts A Report to the ACM Council,
http//www.acm.org/serving/se_policy/bok_assessmen
t.pdf - Humphrey, W.S. (1990). Managing the Software
Process. Addison-Wesley Publishing Company, New
York, NY.