swebok - SIGAda

advertisement
SWEBOK
James W. Moore, The MITRE Corporation
Terry B. Bollinger, The MITRE Corporation
Presented by
12-16 November 2000
SIGAda 2000 Conference: Ada Technology Update
Tutorial prepared for
Software Engineering
Body of Knowledge
Project managed by:
Corporate Support by:
SIGAda 2000
www.swebok.org
2
Presentation Objectives
‰
SWEBOK Project Status: Moore
‰
SWEBOK Overview: Moore
‰
Software Construction Knowledge Area:
Bollinger
SIGAda 2000
www.swebok.org
3
SWEBOK
SWEBOK Project Status
Guide to the Software
Engineering 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
SIGAda 2000
www.swebok.org
5
Recognized Profession?
‰
P. Starr, The Social Transformation of
American Medicine, BasicBooks, 1982:
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
SIGAda 2000
www.swebok.org
6
Model of the Maturity
of a Profession
‰
Ford and Gibbs:
v Education
v Accreditation
v Skills development
v Licensing/certification
G. Ford and N. E. Gibbs,
A Mature Profession of
Software Engineering,
Software Engineering
Institute, Carnegie
Mellon University,
Pittsburgh, Pennsylvania,
Technical CMU/SEI-96TR-004, January 1996.
v Professional development
v Code of ethics
v Professional society or societies
SIGAda 2000
www.swebok.org
7
Professional Development
Initial Professional
Development
Infrastructure
Support for the
Profession
Initial professional
education
Accreditation
Skills Development
Professional Society
Influence
Professional
societies
One or both
Certification
Licensing
Full
Professional
Status
SIGAda 2000
Professional
development
Code of ethics
www.swebok.org
Adapted from Steve
McConnell, After the
Gold Rush, Microsoft
Press, 1999, p. 93
8
Professional Development
Initial Professional
Development
Infrastructure
Support for the
Profession
Initial professional
education
Accreditation
Skills Development
Professional Society
Influences
Professional
societies
One or both
Certification
Licensing
Full
Professional
Status
SIGAda 2000
Professional
development
Code of ethics
www.swebok.org
Adapted from Steve
McConnell, After the
Gold Rush, Microsoft
Press, 1999, p. 93
9
Key Interrelationships for a
Core Body of Knowledge
www.swebok.org
ue
nc
Inf
l
es
SIGAda 2000
Influences
nc
Development of
Certification /
Licensing Criteria and
Exams
Consensus on
a Core Body of
Knowledge
lue
I nf
es
Development of
Software
Engineering
Curricula
Development of
University Program
Accreditation Criteria
10
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)
SIGAda 2000
www.swebok.org
11
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
‰
Provide a topical access to the Software Engineering
Body of Knowledge
‰
Provide a foundation for curriculum development and
individual certification and licensing material
SIGAda 2000
www.swebok.org
12
Intended Audience
‰
Public and private organizations
‰
Practicing software engineers
‰
Makers of public policy
‰
Professional societies
‰
Software engineering students
‰
Educators and trainers
SIGAda 2000
www.swebok.org
13
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).
SIGAda 2000
www.swebok.org
14
Specialized
Categories of Knowledge
in the SWEBOK
SIGAda 2000
Generally
Accepted
Focus of the
SWEBOK Guide
Advanced
and
Research
www.swebok.org
15
Software Engineer’s
Knowledge
Application
domain
knowledge
Advanced
SE
Knowledge
C.S.
Knowledge of a
Software Engineer
Specialized
SE
Knowledge
SWEBOK
Maths
...
SIGAda 2000
www.swebok.org
16
Two 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
SIGAda 2000
www.swebok.org
17
Project Team
‰
Editorial team
‰
Industrial Advisory Board
‰
Knowledge Area Specialists
‰
Reviewers
SIGAda 2000
www.swebok.org
18
Editorial Team
Alain Abran
Université du Québec à Montréal
Computer Science Dept.
C.P. 8888, Succ. Centre-Ville
Montréal, Québec
H3C 3P8 Canada
Tel.: (514) 987-3000 ext. 8900
Fax: (514) 987-8477
abran.alain@uqam.ca
Pierre Bourque
Université du Québec à Montréal
Computer Science Dept.
C.P. 8888, Succ. Centre-Ville
Montréal, Québec
H3C 3P8 Canada
Tel.: (514) 987-3000 ext. 0315
Fax: (514) 987-8477
bourque.pierre@uqam.ca
SIGAda 2000
Executive
Editors
Guide
Editors
www.swebok.org
James W. Moore
The MITRE Corporation
1820 Dolley Madison Blvd.
McLean, Virginia 22102-3481
USA
Tel: 703 883-7396
Fax: 703 883-5432
James.W.Moore@ieee.org
Robert Dupuis
Université du Québec à Montréal
Computer Science Dept.
C.P. 8888, Succ. Centre-Ville
Montréal, Québec
H3C 3P8 Canada
Tel.: (514) 987-3000 ext. 3479
Fax: (514) 987-8477
dupuis.robert@uqam.ca
19
Industrial Advisory Board
‰
‰
‰
‰
‰
‰
‰
‰
‰
‰
‰
Mario R. Barbacci, SEI, representing the IEEE Computer Society
Carl Chang, University of Illinois at Chicago, Editor Emeritus, IEEE Software,
representing Computing Curricula 2001
François Coallier, speaking as ISO/IEC JTC 1 / SC7 Chairman
Morven Gentleman, National Research Council of Canada
Paula Hawthorn, representing the ACM
Philippe Kruchten, Rational Software Corp.
Laure Le Bars, SAP Labs (Canada)
Dan Nash, Raytheon Systems Company
Bryan Pflug, The Boeing Company
Larry Reeker, National Institute of Standards and Technology
Dolores Wallace, National Institute of Standards and Technology
SIGAda 2000
www.swebok.org
20
A Three-Phase Approach for
Developing the Guide
Straw Man
Version
Experimentation
and Trial Usage
Stone Man Version
Iron Man Version
(Sub-phase 1)
Iron Man Version
(Sub-phase 2)
Rewriting
1998
SIGAda 2000
1999
2000
2001
www.swebok.org
2002
2003
21
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
v Roughly 5000 comments from 200 reviewers
in 25 countries
SIGAda 2000
www.swebok.org
22
Stone 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
SIGAda 2000
www.swebok.org
23
Baseline List of
Knowledge Areas
‰
‰
‰
‰
‰
‰
‰
‰
‰
‰
Requirements
Related Disciplines
Design
Construction
•• Computer
ComputerScience
Science(CC2001)
(CC2001)
•• Mathematics
Mathematics(CC2001)
(CC2001)
•• Project
ProjectManagement
Management
(PMBOK)
(PMBOK)
Testing
Maintenance
Configuration Management
Quality
Engineering Tools & Methods
Engineering Process
Engineering Management
SIGAda 2000
•• Computer
ComputerEngineering
Engineering
•• Cognitive
CognitiveSciences
Sciencesand
and
Human
HumanFactors
Factors
•• Systems
SystemsEngineering
Engineering
•• Management
Managementand
and
Management
ManagementScience
Science
www.swebok.org
24
Knowledge Area Description
Classification
of Topics
Topic
Descriptions
Matrix of Topics
& References
Classification
by Vincenti’s
Taxonomy
Classification
by Bloom’s
Taxonomy
References
References to
Related
Disciplines
Not implemented in Stoneman
SIGAda 2000
www.swebok.org
25
Knowledge 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
SIGAda 2000
www.swebok.org
26
SWEBOK
Overview of the SWEBOK
Guide to the Software Engineering Body of Knowledge
Software
Requirements v 0.7
Software Design
v 0.7
Software
Construction v 0.7
Software Testing
v 0.7
Software
Maintenance v 0.7
Requirements
Engineering
Process
Software Design
Basic Concepts
Linguistic
Construction
Methods
Basic Concepts
and Definitions
Maintenance
Activities
Reduction in Complexity
Requirements
Elicitation
Software
Architecture
Anticipation of Diversity
Test Levels
Organization
Aspect of
Maintenance
Structuring for Validation
Requirements
Analysis
Software
Requirements
specifications
Software Design
Quality Analysis
and Evaluation
Software Design
Notations
Use of External
Standards
Formal
Construction
Methods
Reduction in Complexity
Test Techniques
Problems of
Software
Maintenance
Test Related
Measures
Anticipation of Diversity
Requirements
Validation
Requirements
Management
Software Design
Strategies and
Methods
Structuring for Validation
Maintenance
Process
Management the
Test Process
Maintenance Cost
and Maintenance
Cost Estimation
Maintenance
Measurements
Use of External
Standards
Visual Construction
Methods
Techniques for
Maintenance
Reduction in Complexity
Anticipation of Diversity
Structuring for Validation
Use of External
Standards
SIGAda 2000
www.swebok.org
28
Guide to the Software Engineering Body of Knowledge
Software
Engineering
Management v 0.7
Software
Engineering
Process v 0.6
Software Quality
v 0.6
Software
Configuration
Management v 0.7*
Software
Engineering Tools
and Methods v 0.7
Measurement
Basic Concepts
and Definitions
Software Quality
Concepts
Management of
the SCM Process
Software Tools
Organizational
Management and
Coordination
Initiation and
Scope Definition
Planning
Terminology
Process
Measurement
Methodology in Process
Measurement
Process Definition
Types of Process
Definitions
Review and
Evaluation
Defining SQA and
V&V
Process
infrastructure
Process Measurement
Paradigms
Enactment
Software Requirements
Tools
Themes
Planning for SQA
and V&V
Activities and
Techniques for
SQA and V&V
Measurement
Applied to SQA
and V&V
Software
Configuration
Identification
Life Cycle Process
Models
Software
Configuration
Status Accounting
Notations for Process
Definitions
Project Close Out
Software Maintenance
Tools
Software Engineering
Process Tools
Software Quality Analysis
Tools
Software Configuration
Management Tools
Software Engineering
Management Tools
Infrastructure Support
Tools
Miscellaneous
Software Release
Management and
Delivery
Process Definition
Methods
Automation
Post-Closure
Activities
Software Construction
Tools
Software Testing Tools
Software
Configuration
Control
Software
Configuration
Auditing
Life Cycle Models
Software Design Tools
Qualitative Process
Analysis
Software
Development
Methods
Heuristic Methods
Formal Methods
Process
Implementation
and Change
SIGAda 2000
Paradigms for Process
Implementation and
Change
Guidelines for Process
Implementation and
Change
Evaluating Process
Implementation and
Change
Prototyping Methods
Miscellaneous
www.swebok.org
29
Requirements
‰
‰
‰
‰
‰
Requirements engineering process
v
v
Connection to life cycle
Contractual issues and project organization
Requirements elicitation
v
v
Stakeholder identification
Relationships established between the development team and the customer
Requirements analysis
v
v
v
Detect and to resolve conflicts
Discover the boundaries of the system and how it must interact with its environment
Elaborate user and system requirements to software requirements
Requirements validation
v
v
Check for omissions, conflicts and ambiguities
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.
SIGAda 2000
www.swebok.org
30
Design
‰
‰
‰
‰
‰
Design transforms requirements, stated in the problem domain, to
produce 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 architecture
v Structures and viewpoints, architectural descriptions, patterns and
object-oriented frameworks
v Architectural styles
Design notations
Design strategies and methods: general strategies, data-structurecentered design, function-oriented design and object-oriented design.
SIGAda 2000
www.swebok.org
31
Construction
‰
More to Come!
SIGAda 2000
www.swebok.org
32
Testing
‰
‰
‰
‰
‰
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
v
v
v
v
Specification-based
Code-based
Fault-based
Usage-based
Specialized
Organizing and controlling the test process
Automating the test process
SIGAda 2000
www.swebok.org
33
Maintenance
‰
‰
‰
‰
‰
‰
‰
‰
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
v
Formal types of maintenance and common activities
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
SIGAda 2000
www.swebok.org
34
Configuration 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
SIGAda 2000
www.swebok.org
35
Quality
‰
‰
‰
‰
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.
SIGAda 2000
www.swebok.org
36
Engineering Tools & Methods
‰
Development methods
v Impose structure to make activity systematic
v Provide notation, vocabulary, procedures, and guidelines for
checking
v Approaches: informal, mathematically-based, prototype-based
‰
Software tools
v Intended to assist the software engineering process
v Often designed to support particular methods,
v Development and maintenance, supporting activities and
management tools
v Integrated tool sets
v Tool assessment
SIGAda 2000
www.swebok.org
37
Engineering Process
‰
‰
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
v
‰
Analytic: qualitative evaluation, root-cause analysis, process simulation,
orthogonal defect classification, experimental and observational studies, and
personal software process
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
v
v
Process implementation and change
Infrastructure
Guidelines for process implementation and evaluation
SIGAda 2000
www.swebok.org
38
Engineering Management
‰
‰
‰
Process and measurement are inseparable.
v
v
Management without measurement suggests a lack of rigor
Measurement without management suggests a lack of purpose or context.
Measurement
v
v
v
v
Measurement program goals
Measurement selection
Data collection and model development
Implementation.
Management process
v
v
v
v
v
“In the large”
Development and implementation of standards
Project staffing
Team development
Life cycle activities
SIGAda 2000
www.swebok.org
39
SWEBOK
Software Construction
in the SWEBOK
Software Construction
(SWC) at a Glance
‰
16 pages in Stoneman version (0.7)
‰
17 references, 5 standards
‰
Three authors:
v Terry Bollinger (MITRE)
v Philippe Gabrini (UQÀM)
v Louis Martin (UQÀM)
SIGAda 2000
www.swebok.org
41
Terry Bollinger
‰
‰
‰
‰
‰
‰
‰
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
SIGAda 2000
www.swebok.org
42
Philippe Gabrini
‰
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
SIGAda 2000
www.swebok.org
43
Louis 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
SIGAda 2000
www.swebok.org
44
Definition
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Construction: The creation of usable
software via a suite of skills that include:
v coding
v self-validation
v self-testing
‰
Not just a mechanistic “translation” of
good design into working software!
‰
Construction burrows deeply into some
of the most difficult issues of SWE
www.swebok.org
45
Versus Design
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Design: Emphasis on dividing complex
problems into smaller chunks
‰
Construction: Emphasis on finding final,
executable solutions
‰
Design produces a framework, while
Construction produces an working result
v Both are exercises in problem solving
v Both use similar methods
www.swebok.org
46
Use of Tools
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Software construction tools are:
v Software-based
v Construction-oriented
v Examples:
½
½
½
½
‰
compilers
version control systems
design tools
documentation tools
Good tools bridge the gap between
v Fast & efficient (but dumb!) computers and
v Creative (but sloppy & forgetful!) humans
www.swebok.org
47
Self-Evaluation
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Integrated self-evaluation: “Open loop”
coding is not software construction…
‰
Construction uses explicit “self-checks”:
v Continuous checks
v Periodic checks
v Checks of interim results
v Checks of the process itself
‰
Examples: design reviews, module
compilations, unit tests, self-reviews
www.swebok.org
48
Standards
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
‰
v De facto standards (e.g., Windows)
v Explicit standards (e.g., XML)
‰
Standards affect construction powerfully:
v Bad choices fritter away time & resources
v Good standards choices:
½ simplify construction
½ increase marketability
½ reduce maintenance costs
‰
SIGAda 2000
Standards create “shared languages” of
powerful & low-cost baseline capabilities
The best standards enable innovation
www.swebok.org
49
SWC Spectrum
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Manual construction: People control
the overall process. Requires skills of:
v insightful problem break-down
v disciplined self-review and validation
v anticipation of future changes
‰
Automated construction: A tool or
environment controls key aspects of the
overall construction process
v overall process complexity is reduced
v allows broader participation in process
v less flexible (“domain specific”)
www.swebok.org
50
Manual
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
‰
‰
‰
Usually procedural (order-dependent)
Very large number of descriptive options
Emphasis on finding
new problem solutions
Process is defined by
user (versus by tools)
‰
Expensive, risky, and
often doable only by highly skilled people
‰
More likely to be defined by a standard
www.swebok.org
51
Automated
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Often non-procedural
(e.g., descriptive)
‰
Limited number of
construction options
‰
Emphasis on reusing
existing problem solutions
‰
Process is defined mostly by tools used
‰
Low-cost, safe, usable by many people
‰
Often custom to application area
www.swebok.org
52
Styles
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
‰
‰
‰
Styles are ways of “communicating” that
track closely to innate human capabilities
Not all styles of communication are
equally accessible to all people
Styles also vary greatly in how easily
they can be “explained” to computers
Construction relies on three main styles:
v Linguistic
v Formal
v Visual
www.swebok.org
53
Linguistic
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
‰
Linguistic construction uses computer
languages whose form resembles natural
languages such as French or English
v Usually conveyed as text (characters)
v Can also be conveyed via audio or tactile
‰
Pros:
v Nearly universal as a way
to communicate to people
v Efficient representations
‰
Cons
v Imprecise syntax (from computer’s view)
SIGAda 2000
www.swebok.org
54
Formal
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
‰
Formal construction uses the
precision and rigor of a formal
(mathematical or logical) style
Pros
v Great for conveying exact intent accurately
v Encourages completeness of thoughts
v Can provide powerful generalizations
‰
Cons
v Not readily accessible to all people!
v Can encourage overly narrow viewpoints
www.swebok.org
55
Visual
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
‰
Visual construction relies
on powerful spatial abilities
found in nearly all people
v Primarily visual (eyes)
v Tactile can be a stand-in
‰
Pros
v Highly parallel, remarkable “bandwidth”
v Powerful for structuring complex data
v Easy for people to understand and use
‰
Cons
v Harder for computers to “understand”
SIGAda 2000
www.swebok.org
56
Principles
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
‰
Principles of organization
are broad strategies that
people use to apply their
(finite) time and abilities to
the resolution of complex
problems. The four main strategies are:
v Reduction of complexity
v Anticipation of diversity
v Structuring for Validation
v Use of External Standards
SIGAda 2000
www.swebok.org
57
Reduction
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Reduction of complexity
deals with constraining the
scale of a problem to limits
that can be handled safely
‰
Three main strategies exist for reducing
complexity:
v Removal of Complexity
v Automation of Complexity
v Localization of Complexity
www.swebok.org
58
Reduction by Removal
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Reduction by removal
lowers total complexity
by eliminating needless
“noise” in the features
or structure of software.
‰
Examples:
v Axing unnecessary feature requirements
v Simplifying complex call structures
v Factoring out repeated operations or data
www.swebok.org
59
Reduction by Automation
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Reduction by Automation “eliminates”
complexity by solving it once and
automating the solution
‰
Examples:
v Compilers
v Operating systems
v Visual programming languages
www.swebok.org
60
Reduction by Localization
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Localization of complexity
factors out complexity and
keeps it within well-defined,
easy-to-maintain boundaries
‰
Localization is a powerful technique and
one of the indicators of good design:
v Modularity (all forms)
v Object-oriented design
v Coupling and cohesion criteria
www.swebok.org
61
Anticipation
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Anticipation of diversity deals with the
problem of changes over time.
‰
Change always happens.
‰
Failure to anticipate change
is a hallmark of bad design
‰
Anticipating future diversity:
v Requires an ability to “estimate” the future
v Is an implicit goal of many quality standards
www.swebok.org
62
Anticipation by Generalization
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Anticipation by generalization uses
isolated cases to help find a broader,
more powerful solutions
that bridge across them
‰
Generalization is a distinctly
mathematical concept, and is often
expressed in mathematical terms
‰
Good design in general also requires
generalization (e.g., for portability)
www.swebok.org
63
Anticipation by Experiment
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Anticipation by experiment recognizes
that even the best developers cannot
anticipate all the implications
of a complex system
‰
Various forms of
experimentation are used
to identify unexpected behaviors
‰
Testing (all forms) is experimentation
‰
Prototyping is also experimentation
www.swebok.org
64
Anticipation by Localization
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Anticipation by localization is a special
case of localization of complexity (since
changeability is a type of complexity)
‰
Locality of change indicates how well
software was constructed:
v Poor change locality: Common changes
result in the code being “touched” in many
different locations
v Good change locality: Common changes
result in the code being touched only once
www.swebok.org
65
Validation
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Structuring for validation means
building code in a way that specifically
recognizes the need to assure its overall
correctness.
‰
Structuring for validation amounts to
“instrumenting” designs in anticipation of
the need for testing and simulation
www.swebok.org
66
Standards
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
Use of external standards simplifies
construction by relying on the proven
concepts and capabilities implied by
external standards
‰
Use of standards must balance between:
v Advantages of accessing capabilities and
technologies implied by those standards
v Risk of failure of any specific standard
‰
Best strategy: Build in some hedging
www.swebok.org
67
Taxonomy
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
‰
(3 Styles) X (4 Principles)
= 12 Impact Areas
‰
Taxonomy classifies effects, since any
one technique (e.g., modularity) can
have multiple impacts
‰
Overall power of a technique can be
judged by how many areas it affects
‰
Power of a language can be estimated
by how many techniques it includes
www.swebok.org
68
References
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
1. [BEN00] Bentley, Jon, Programming
Pearls (Second Edition). AddisonWesley, 2000. (Chapters 2,3,4,11,13,14)
2. [BOO94] Booch, Grady, and Bryan,
Doug, Software Engineering with Ada
(Third edition). Benjamin/Cummings,
1994. (Parts II, IV, V)
3. [HOR99] Horrocks, Ian, Constructing the
User Interface with Statecharts. AddisonWesley, 1999. (Parts II, IV)
www.swebok.org
69
References
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
4. [KER99] Kernighan, Brian W., and Pike,
Rob, The Practice of Programming.
Addison-Wesley, 1999. (Ch. 1,2,3,5,6,9)
5. [MAG93] Maguire, Steve, Writing Solid
Code. Microsoft Press, 1993.
6. [McCO93] McConnell, Steve, Code
Complete. Microsoft Press, 1993.
7. [MEY97] Meyer, Bertrand, ObjectOriented Software Construction (Second
Edition). Prentice-Hall,1997.(Ch. 6,10,11)
www.swebok.org
70
References
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
8. [SET96] Sethi, Ravi, Programming
Languages – Concepts & Constructs
(Second Edition). Addison-Wesley, 1996.
(Parts II, III, IV, V)
9. [WAR99] Warren, Nigel, and Bishop,
Philip, Java in Practice – Design Styles
and Idioms for Effective Java. AddisonWesley, 1999. (Chapters 1, 2, 3, 4, 5, 10)
www.swebok.org
71
References
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
Further Readings
10. [BAR98] Barker, Thomas T., Writing
Software Documentation – A TaskOriented Approach. Allyn & Bacon, 1998.
11. [FOW99] Fowler, Martin, Refactoring –
Improving the Design of Existing Code.
Addison-Wesley, 1999.
12. [GLA95] Glass, Robert L., Software
Creativity. Prentice-Hall, 1995.
www.swebok.org
72
References
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
13. [HEN97] Henricson, Mats, and Nyquist,
Erik, Industrial Strength C++. PrenticeHall, 1997.
14. [HOR99] Horrocks, Ian, Constructing the
User Interface with Statecharts. AddisonWesley, 1999.
15. [HUM97] Humphrey, Watts S.,
Introduction to the Personal Software
Process. Addison-Wesley, 1997.
www.swebok.org
73
References
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
16. [HUN00] Hunt, Andrew, and Thomas,
David, The Pragmatic Programmer.
Addison-Wesley, 2000.
17. [MAZ96] Mazza, C., et al., Software
Engineering Guides. Prentice-Hall, 1996.
(Part IV)
www.swebok.org
74
References
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
Standards Relevant to SWC
a. IEEE Std 829-1983 (Reaff 1991), IEEE
Standard for Software Test
Documentation (ANSI)
b. IEEE Std 1008-1987 (Reaff 1993), IEEE
Standard for Software Unit Testing
(ANSI)
c. IEEE Std 1028-1988 (Reaff 1993), IEEE
Standard for Software Reviews and
Audits (ANSI)
www.swebok.org
75
References
Definition
Versus Design
Use of Tools
Self-Evaluation
Standards
SWC Spectrum
Manual
Automated
Styles
Linguistic
Formal
Visual
Principles
Reduction
Anticipation
Validation
Standards
Taxonomy
References
SIGAda 2000
d. IEEE Std 1063-1987 (Reaff 1993), IEEE
Standard for Software User
Documentation (ANSI)
e. IEEE Std 1219-1992, IEEE Standard for
Software Maintenance (ANSI)
www.swebok.org
76
SWEBOK
www.swebok.org
Download