SW EBOK Software Engineering Software Engineering Body of Knowledge Body of Knowledge Tutorial prepared for Tutorial prepared for SIGAda SIGAda 2000 Conference: 2000 Conference: Ada Ada Technology Update Technology Update 12 12 - - 16 November 2000 16 November 2000 Presented by Presented by James W. Moore, The MITRE Corporation James W. Moore, The MITRE Corporation Terry B. Terry B. Bollinger Bollinger , The MITRE Corporation , The MITRE Corporation
77
Embed
Software Engineering Body of Knowledge - · PDF fileGuide to the Software Engineering Body of Knowledge Process Measurement ... metrics. Software ... Software testing consists of the
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
SWEBOK
So
ftw
are
En
gin
eeri
ng
So
ftw
are
En
gin
eeri
ng
Bo
dy
of
Kn
owle
dg
eB
od
y o
f K
now
led
ge
Tu
tori
al p
rep
ared
fo
rT
uto
rial
pre
par
ed f
or
SIG
Ad
aS
IGA
da
2000
Co
nfe
ren
ce:
2000
Co
nfe
ren
ce:
Ad
aA
da
Tec
hn
olo
gy U
pd
ate
Tec
hn
olo
gy U
pd
ate
1212-- 1
6 N
ove
mbe
r 20
0016
No
vem
ber
2000
Pre
sen
ted
by
Pre
sen
ted
by
Jam
es W
. Mo
ore
, Th
e M
ITR
E C
orp
ora
tio
nJa
mes
W. M
oo
re, T
he
MIT
RE
Co
rpo
rati
on
Ter
ry B
.T
erry
B. B
olli
nge
rB
olli
nge
r , T
he M
ITR
E C
orp
ora
tio
n, T
he M
ITR
E C
orp
ora
tio
n
www.swebok.org 2SIGAda 2000
Project managed by:
Corporate Support by:
www.swebok.org 3SIGAda 2000
Presentation ObjectivesPresentation Objectives
� SWEBOK Project Status: Moore
� SWEBOK Overview: Moore
� Software Construction Knowledge Area: Bollinger
SWEBOK
SW
EB
OK
Pro
ject
Sta
tus
SW
EB
OK
Pro
ject
Sta
tus
www.swebok.org 5SIGAda 2000
Guide to the Software Guide to the Software Engineering Body of KnowledgeEngineering Body of Knowledge� Initiated as a collaboration between IEEE CS,
ACM and UQAM.
� International participation from industry, professional societies, standards bodies, academia, authors
� By the time the project is finished literally thousands of individuals will have touched it
� About to complete the middle of three phases
� Web site -- http://www.swebok.org
www.swebok.org 6SIGAda 2000
Recognized Profession?Recognized Profession?
� P. Starr, The Social Transformation of American Medicine, BasicBooks, 1982:
vKnowledge and competence validated by the community of peers
vConsensually validated knowledge rests on rational, scientific grounds
v Judgment and advice oriented toward a set of substantive values
www.swebok.org 7SIGAda 2000
Model of the Maturity Model of the Maturity of a Professionof a Profession
� Ford and Gibbs:
vEducation
vAccreditation
vSkills development
v Licensing/certification
vProfessional development
vCode of ethics
vProfessional society or societies
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.
www.swebok.org 8SIGAda 2000
Initial Professional Development
Initial professional education
Skills Development
One or both
Full Professional
Status
Certification Licensing
Infrastructure Support for the
Profession
Accreditation
Professional development
Code of ethics
Professional societies
Professional Society Influence
Adapted from Steve McConnell, After the Gold Rush, Microsoft Press, 1999, p. 93
Professional DevelopmentProfessional Development
www.swebok.org 9SIGAda 2000
Initial Professional Development
Initial professional education
Skills Development
One or both
Full Professional
Status
Certification Licensing
Infrastructure Support for the
Profession
Accreditation
Professional development
Code of ethics
Professional societies
Professional Society Influences
Adapted from Steve McConnell, After the Gold Rush, Microsoft Press, 1999, p. 93
Professional DevelopmentProfessional Development
www.swebok.org 10SIGAda 2000
Development ofSoftware
EngineeringCurricula
Development ofCertification /
Licensing Criteria andExams
Development ofUniversity Program
Accreditation Criteria
Consensus ona Core Body of
Knowledge
Influ
ence
s Influences
Influences
Key Interrelationships for a Key Interrelationships for a Core Body of KnowledgeCore Body of Knowledge
www.swebok.org 11SIGAda 2000
Window of Opportunity?Window of Opportunity?
� ACM / IEEE-CS Code of Ethics
� Texas Board of Professional Engineers
� Computer Science Curriculum 2001
� Rochester Institute of Technology (and others) are offering undergraduate degrees in Software Engineering
� CSAB & ABET are cooperating on accreditation
� Possible software liability issues: Y2K, etc.
� Increased interest in the establishment of a profession (After the Gold Rush was #752 on Amazon.com)
� Continuing focus on organizational engineering capability (ISO 9000, CMM)
www.swebok.org 12SIGAda 2000
Project ObjectivesProject 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
� Provide a topical access to the Software Engineering Body of Knowledge
� Provide a foundation for curriculum development and individual certification and licensing material
www.swebok.org 13SIGAda 2000
Intended AudienceIntended Audience
� Public and private organizations
� Practicing software engineers
� Makers of public policy
� Professional societies
� Software engineering students
� Educators and trainers
www.swebok.org 14SIGAda 2000
What is Software Engineering?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 15SIGAda 2000
GenerallyAccepted
Advanced
Sp
ecia
lized
andResearch
Focus of the SWEBOK Guide
Categories of Knowledge Categories of Knowledge in the SWEBOKin the SWEBOK
Two Underlying Principles of Two Underlying Principles of the Projectthe 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
A ThreeA Three--Phase Approach for Phase Approach for Developing the GuideDeveloping the Guide
Experimentation and Trial Usage
Rewriting
www.swebok.org 22SIGAda 2000
Stone Man Review ProcessStone Man Review Process
� Transparency and consensus-building
vAll intermediate versions of documents are published and archived on www.swebok.org
vAll comments are made public as well as the identity of the reviewers
vDetailed comment disposition reports are produced
vRoughly 5000 comments from 200 reviewers in 25 countries
www.swebok.org 23SIGAda 2000
Stone Man DeliverablesStone Man Deliverables
� 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
� Available free on the web
www.swebok.org 24SIGAda 2000
• Computer Science (CC2001)
• Mathematics (CC2001)
• Project Management (PMBOK)
• Computer Engineering
• Cognitive Sciences andHuman Factors
• Systems Engineering
• Management and Management Science
• Computer Science (CC2001)
• Mathematics (CC2001)
• Project Management (PMBOK)
• Computer Engineering
• Cognitive Sciences andHuman Factors
• Systems Engineering
• Management and Management Science
Related Disciplines
Baseline List Baseline List ofofKnowledge AreasKnowledge Areas
� Requirements
� Design
� Construction
� Testing
� Maintenance
� Configuration Management
� Quality
� Engineering Tools & Methods
� Engineering Process
� Engineering Management
www.swebok.org 25SIGAda 2000
Classification of Topics
Matrix of Topics & References References
Topic Descriptions
Classification by Vincenti’s
Taxonomy
Classification by Bloom’s Taxonomy
References to Related
DisciplinesNot implemented in Stoneman
Knowledge Area DescriptionKnowledge Area Description
www.swebok.org 26SIGAda 2000
Knowledge Area SpecialistsKnowledge Area Specialists
� Requirements: Pete Sawyer and Gerald Kotonya, UK
� Design: Guy Tremblay, Canada
� Construction: Terry Bollinger, USA; Philippe Gabrini, Louis Martin, Canada
� Testing: Antonia Bertolino, Italy
� Maintenance: Tom Pigoski, USA
� Configuration Management: John Scott and David Nisse, USA
� Quality: Dolores Wallace and Larry Reeker, USA
� Tools and Methods: Dave Carrington, Australia
� Process: Khaled El Emam, Canada
� Management: Stephen MacDonald and Andrew Gray, New-Zealand
SWEBOK
Ove
rvie
w o
f th
e S
WE
BO
KO
verv
iew
of
the
SW
EB
OK
www.swebok.org 28SIGAda 2000
SoftwareRequirements v 0.7
Software Testingv 0.7
RequirementsEngineering
Process
RequirementsElicitation
RequirementsAnalysis
RequirementsValidation
RequirementsManagement
Basic Conceptsand Definitions
Test Levels
Test Techniques
Test RelatedMeasures
Management theTest Process
SoftwareRequirementsspecifications
SoftwareConstruction v 0.7
Software Designv 0.7
LinguisticConstruction
Methods
FormalConstruction
Methods
Visual ConstructionMethods
Software DesignBasic Concepts
SoftwareArchitecture
Software DesignQuality Analysisand Evaluation
Software DesignNotations
Software DesignStrategies and
Methods
Reduction in Complexity
Anticipation of Diversity
Structuring for Validation
Use of ExternalStandards
Reduction in Complexity
Anticipation of Diversity
Structuring for Validation
Use of ExternalStandards
Reduction in Complexity
Anticipation of Diversity
Structuring for Validation
Use of ExternalStandards
SoftwareMaintenance v 0.7
MaintenanceActivities
MaintenanceProcess
OrganizationAspect of
Maintenance
Problems ofSoftware
Maintenance
Maintenance Costand MaintenanceCost Estimation
MaintenanceMeasurements
Techniques forMaintenance
Guide to the Software Engineering Body of Knowledge
www.swebok.org 29SIGAda 2000
Guide to the Software Engineering Body of Knowledge
ProcessMeasurement
Automation
SoftwareEngineering
Management v 0.7
SoftwareEngineering
Process v 0.6
MeasurementBasic Conceptsand Definitions
Process Definition
ProcessImplementation
and Change
Themes
Life Cycle Models
Process DefinitionMethods
Types of ProcessDefinitions
Life Cycle ProcessModels
Notations for ProcessDefinitions
Methodology in ProcessMeasurement
Process MeasurementParadigms
Paradigms for ProcessImplementation and
ChangeGuidelines for Process
Implementation andChange
Evaluating ProcessImplementation and
Change
OrganizationalManagement and
Coordination
Initiation andScope Definition
Planning
Enactment
Review andEvaluation
Project Close Out
Post-ClosureActivities
Processinfrastructure
Terminology
Qualitative ProcessAnalysis
Software Qualityv 0.6
Software QualityConcepts
Defining SQA andV&V
Planning for SQAand V&V
Activities andTechniques forSQA and V&V
MeasurementApplied to SQA
and V&V
SoftwareConfiguration
Management v 0.7*
Management ofthe SCM Process
SoftwareConfigurationIdentification
SoftwareConfiguration
Control
SoftwareConfiguration
Status Accounting
SoftwareConfiguration
Auditing
Software ReleaseManagement and
Delivery
Software Design Tools
SoftwareEngineering Toolsand Methods v 0.7
SoftwareDevelopment
Methods
Software Tools
Heuristic Methods
Formal Methods
Prototyping Methods
Software RequirementsTools
Software Testing Tools
Software MaintenanceTools
Software EngineeringProcess Tools
Software ConstructionTools
Miscellaneous
Software Quality AnalysisTools
Software ConfigurationManagement Tools
Software EngineeringManagement Tools
Infrastructure SupportTools
Miscellaneous
www.swebok.org 30SIGAda 2000
RequirementsRequirements
� Requirements engineering process
v Connection to life cycle
v Contractual issues and project organization
� Requirements elicitation
v Stakeholder identification
v Relationships established between the development team and the customer
� Requirements analysis
v Detect and to resolve conflicts
v Discover the boundaries of the system and how it must interact with its environment
v Elaborate user and system requirements to software requirements
� Requirements validation
v Check for omissions, conflicts and ambiguities
v Ensure that requirements follow prescribed quality standards
� Requirements management: change management and maintaining requirements in a state that accurately mirrors the software to be, or that has been, built.
www.swebok.org 31SIGAda 2000
DesignDesign
� Design transforms requirements, stated in the problem domain, toproduce a description of a solution--system components and interfaces--refined to a level of detail suitable for construction.
� Design quality and metrics: quality attributes, quality assurance, metrics.
� Software architecturev Structures and viewpoints, architectural descriptions, patterns and
object-oriented frameworksv Architectural styles
� Design notations
� Design strategies and methods: general strategies, data-structure-centered design, function-oriented design and object-oriented design.
www.swebok.org 32SIGAda 2000
ConstructionConstruction
� More to Come!
www.swebok.org 33SIGAda 2000
TestingTesting
� Software testing consists of the dynamic verification of the behavior of a program on a finite set of test cases, suitably selected from the usually infinite domain of executions, against the specified expected behavior.
� Test levels: Test phases for large systems ✖ Testing for specific properties
� Test techniques and corresponding measures
v Specification-based
v Code-based
v Fault-based
v Usage-based
v Specialized
� Organizing and controlling the test process
� Automating the test process
www.swebok.org 34SIGAda 2000
MaintenanceMaintenance
� Modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment.
� Maintenance activities and roles
v Formal types of maintenance and common activities
v Process is critical to the success.
� Standard maintenance processes
� Organizing for maintenance (may be different than for development)
� Software evolution
� Cost: life cycle costs as well as costs for individual evolution and maintenance tasks
� Maintenance measurements
� Tools and techniques
www.swebok.org 35SIGAda 2000
Configuration ManagementConfiguration Management
� System: Collection of components organized to accomplish specified functions.
� CM is the discipline of identifying the configuration of systems at discrete times to control changes and maintain integrity and traceability.
� Concepts are universal, but implemented differently for HW and SW.
� Primary activities
v Management of the CM process
v Configuration identification
v Configuration control
v Configuration status accounting
v Configuration auditing
v Software release management and delivery
www.swebok.org 36SIGAda 2000
QualityQuality
� Includes software product quality and processes for software quality assurance and software verification and validation activities
� Although different terminology is currently used, there is some consensus about the attributes that define software quality and dependability over a range of products. These definitions provide the base knowledge from which individual quality products are planned, built, analyzed, measured, and improved. The definitions are discussed in the defining quality products sub-area.
� Software quality assurance is a process designed to assure a quality product; it is a planned and systematic pattern of all actions necessary to provide adequate confidence that the product conforms to specified technical requirements. Software verification and validation is an process to provide an objective assessment of software products and processes throughout the software life cycle, that is, the verification an validation process provides management with visibility into the quality of the product.
� These two processes form the backbone of the software quality analysis: definition of quality analysis, process plans, activities and techniques for quality analysis, and measurement in software quality analysis.
� Development methodsv Impose structure to make activity systematicv Provide notation, vocabulary, procedures, and guidelines for
checking v Approaches: informal, mathematically-based, prototype-based
� Software toolsv Intended to assist the software engineering processv Often designed to support particular methods, v Development and maintenance, supporting activities and
� Process definition: types of process definitions, life cycle models, life cycle process models, notations for process definitions, process definition methods, and automation
� Process evaluation: approaches for the qualitative and quantitative analysis of software processes, including measurement
v Analytic: qualitative evaluation, root-cause analysis, process simulation, orthogonal defect classification, experimental and observational studies, and personal software process
v Benchmarking: identifying an ’excellent’ organization in a field and documenting its practices and tools, including process assessment models and methods
� Process implementation and change: paradigms, infrastructure, and critical success factors for successful process implementation and change
v Process implementation and change
v Infrastructure
v Guidelines for process implementation and evaluation
www.swebok.org 39SIGAda 2000
Engineering ManagementEngineering Management
� Process and measurement are inseparable. v Management without measurement suggests a lack of rigorv Measurement without management suggests a lack of purpose or context.
� Measurementv Measurement program goalsv Measurement selectionv Data collection and model developmentv Implementation.
� Management processv “In the large” v Development and implementation of standardsv Project staffingv Team developmentv Life cycle activities
SWEBOK
So
ftw
are
Co
nst
ruct
ion
So
ftw
are
Co
nst
ruct
ion
in t
he
SW
EB
OK
in t
he
SW
EB
OK
www.swebok.org 41SIGAda 2000
Software ConstructionSoftware Construction(SWC) at a Glance(SWC) at a Glance
� 16 pages in Stoneman version (0.7)
� 17 references, 5 standards
� Three authors:
vTerry Bollinger (MITRE)
vPhilippe Gabrini (UQÀM)
v Louis Martin (UQÀM)
www.swebok.org 42SIGAda 2000
TerryTerry BollingerBollinger
� Works at The MITRE Corporation, a non-profit company that does U.S. government research and development work in advanced technologies
� Assistant Editor for IEEE Software
� Co-author of IEEE Software issue on Linux
� Author of influential articles on reuse and process
� IEEE Millennium Medal winner
� Extensive experience “in the trenches” in industry
� Likes to annoy Capability Maturity Model advocates
www.swebok.org 43SIGAda 2000
PhilippePhilippe GabriniGabrini
� Université du Quebec à Montréal(University of Quebec at Montreal)
� Directeur, Département d'informatique(Director, Information Processing Dept.)
� Long-time member of the Canadian Computer Science Accreditation Council
� Broad, long-term experience in software engineering accreditation issues
www.swebok.org 44SIGAda 2000
Louis MartinLouis Martin
� Université du Quebec à Montréal(University of Quebec at Montreal)
� Professor of Business Information Processing (colleague of Philippe)
� Extensive background in applied software construction topics
� Helped in particular with selection and development of reference materials
www.swebok.org 45SIGAda 2000
DefinitionDefinition
DefinitionVersus DesignUse of ToolsSelf-EvaluationStandardsSWC Spectrum
� Manual construction: People control the overall process. Requires skills of:v insightful problem break-downv disciplined self-review and validationv anticipation of future changes
� Automated construction: A tool or environment controls key aspects of the overall construction processv overall process complexity is reducedv allows broader participation in processv less flexible (“domain specific”)
www.swebok.org 51SIGAda 2000
ManualManual
DefinitionVersus DesignUse of ToolsSelf-EvaluationStandardsSWC Spectrum
� Linguistic construction uses computer languages whose form resembles natural languages such as French or Englishv Usually conveyed as text (characters)v Can also be conveyed via audio or tactile
� Pros:v Nearly universal as a way
to communicate to peoplev Efficient representations
� Consv Imprecise syntax (from computer’s view)
www.swebok.org 55SIGAda 2000
FormalFormal
DefinitionVersus DesignUse of ToolsSelf-EvaluationStandardsSWC Spectrum
� Principles of organizationare broad strategies thatpeople use to apply their(finite) time and abilities tothe resolution of complexproblems. The four main strategies are:
v Reduction of complexity
v Anticipation of diversity
v Structuring for Validation
v Use of External Standards
www.swebok.org 58SIGAda 2000
ReductionReduction
DefinitionVersus DesignUse of ToolsSelf-EvaluationStandardsSWC Spectrum