SWECOM
SWECOM
SWECOM
Software
Engineering
Competency
Model
Software Engineering
Competency Model
Version 1.0
SWECOM
A Project of the IEEE Computer Society
Copyright and Reprint Permissions. Educational or personal use of this material is permitted without fee provided such copies 1) are not made for profit or in lieu of purchasing
copies for classes, and that this notice and a full citation to the original work appear on the
first page of the copy and 2) do not imply IEEE endorsement of any third-party products
or services. Permission to reprint/republish this material for commercial, advertising or
promotional purposes or for creating new collective works for resale or redistribution must
be obtained from IEEE by writing to the IEEE Intellectual Property Rights Office, 445 Hoes
Lane, Piscataway, NJ 08854-4141 or [email protected].
Reference to any specific commercial products, process, or service does not imply endorsement by IEEE. The views and opinions expressed in this work do not necessarily reflect
those of IEEE.
IEEE makes this document available on an as is basis and makes no warranty, express
or implied, as to the accuracy, capability, efficiency merchantability, or functioning of this
document. In no event will IEEE be liable for any general, consequential, indirect, incidental, exemplary, or special damages, even if IEEE has been advised of the possibility of
such damages.
Copyright 2014 IEEE. All rights reserved.
Paperback ISBN-10: 0-7695-5373-7
Paperback ISBN-13: 978-0-7695-5373-3
IEEE Computer Society Staff for This Publication
Angela Burgess, Executive Director
Anne Marie Kelly, Associate Executive Director, Director of Governance
Evan M. Butterfield, Director of Products and Services
John Keppler, Senior Manager, Professional Education
Dorian McClenahan, Education Program Product Developer
Kate Guillemette, Product Development Editor
Michelle Phon, Professional Education and Certification Program Coordinator
IEEE Computer Society Products and Services. The world-renowned IEEE Computer
Society publishes, promotes, and distributes a wide variety of authoritative computer science and engineering journals, magazines, conference proceedings, and professional education products. Visit the Computer Society at w
ww.computer.org for more information.
TABLE OF CONTENTS
Abstract
1. Introduction
12
16
7. SWECOM Validation
16
8. Acknowledgements
18
9. References
18
23
25
31
iii
ivSWECOM
41
49
57
67
73
89
101
107
115
123
129
141
145
147
153
ABSTRACT
This software engineering competency model (SWECOM) describes
competencies for software engineers who participate in developing
and modifying software-intensive systems. Skill areas, skills within
skill areas, and work activities for each skill are specified. Activities
are specified at five levels of increasing competency. Case studies of
how the SWECOM model can be used by a manager, an employee,
a new hire, or a curriculum designer are provided. The SWECOMStaffing Gap Analysis and Individual Gap Analysis worksheets are
included in an appendix.
1. INTRODUCTION
A competent person has the skills needed to perform, at a given level
of competency, the work activities assigned to him or her. Knowledge, in this competency model, is different from skill: knowledge is
what one knows, while skill is what one can do. This document presents a competency model for use by those who develop software,
their managers, human-resource personnel, curriculum designers,
and others listed in Appendix B of this document. An individual who
develops or maintains software might use this competency model
to assess his or her current competency levels for various software
engineering activities or to develop a plan for improving his or her
competencies (such as requirements elicitation, design synthesis,
software construction, test planning). A manager (project, functional, or line) might use this competency model to inventory staff
skills and identify areas for needed additions and improvements.
Additionally, a manager might use this model to counsel individual
employees, or HR personnel might use the model to identify needed
training and recruitment activities. Each activity in this competency
model is described at five levels of competency.
Skill areas in this competency model include skills that are decomposed into activities, rather than job roles, because job roles are
typically dependent on the organizational environment in which the
work activities occur. The activities in this model can be grouped
into job roles by organizations, organizational units, or projects to
satisfy their needs.
This competency model is termed the Software Engineering Competency Model (SWECOM). It has been validated by invited subject
1
2SWECOM
4SWECOM
SWECOM
Personal Effectiveness
Academic Competencies
Workplace Competencies
Cognitive Skills
Industry-Wide Technical
Competencies
Industry-Sector Technical
Competencies
Management Competencies
Occupation-Specific Requirements
6SWECOM
Examples
Inductive Reasoning
Deductive Reasoning
Heuristic Reasoning
Use of Abstraction
Hierarchical and Associative
Reasoning
Examples
Brainstorming
Prototype Development
Modeling and Simulation
Initiative
Enthusiasm
Work ethic
Willingness
Trustworthiness
8SWECOM
Communication
skills
Team
participation
skills
Technical
leadership skills
A crosscutting skill area is one that applies across all life cycle
skill areas (for example, quality assurance) and, in some cases, a
crosscutting skill may apply to other crosscutting skill areas (for
example, a software process model). Crosscutting skill areas are
sometimes called specialty disciplines that are practiced by specialists in those skill areas (such as safety, security, systems engineering). Software engineers who are competent in one or more life
cycle skill areas typically have some working knowledge of crosscutting skill areas.
The five life cycle skill areas and eight crosscutting skill areas of
SWECOM are listed in Tables 4 and 5, respectively. The references
cited in the tables are in the references section of this document;
they provide the knowledge foundations for each skill area.
Table 4. Software Engineering Life Cycle Skill Areas and
Skills
Life Cycle Skill Areas
Skills
10SWECOM
Skills
Software Transition
Software Support
Software Maintenance
Skills
Skills
Requirements
Design
Construction
Testing
Process
Quality
Requirements
Design
Construction
Testing
Process
Quality
Software Configuration
Management Skills
References:
[Aiello 2010]
[Babich 1986]
[IEEE 828-2012]
[SWEBOK 2014]
Plan SCM
Conduct SCM
Manage Software Releases
Human-Computer Interaction
Skills
References:
[ISO 9241-210:2010]
[Rogers 2011]
[SWEBOK 2014]
Requirements
Interaction Style Design
Visual Design
Usability Testing and Evaluation
Accessibility
The activities for each skill in Tables 4 and 5 are listed in each skill
areas Tables A and B; see below. Table A lists the activities for each
skill and Table B lists activities by competency level. SWECOM does
not address competency in using tools or adherence to prescribed
standards to accomplish activities because these will be specific to
organizations and projects.
12SWECOM
Participates (P),
Leads (L), and
Creates (C).
For the requirements prototyping activity cited above, a Technician would be competent to use software tools while following
instructions (F) to create prototypes. An Entry Level Practitioner
would be competent to assist in creating prototypes and to develop
prototypes under supervision (A); a Practitioner would create prototypes and interact with customers and users in evaluating the
prototypes (P); a Technical Leader would supervise and lead prototyping activities (L); and a Senior Software Engineer would create
new approaches to prototyping (C).
There may be situations where an Entry Level Practitioner might be
competent, for example, to lead a prototyping activity, or a Technical
Leader might be competent to create a new approach to prototyping,
so notations are used in SWECOM to distinguish specific competencies from the named competency levels when it is appropriate.
A Practitioner, for example, might be competent to either participate in an activity (P) or lead the activity (L), depending on the
scope and complexity of the work to be accomplished. In this case,
the activity is labeled (P/L) at the Practitioner level. Similarly, an
Entry Level Practitioner might be competent to assist or fully participate in an activity, which would be labeled (A/P).
SWECOM does not prescribe the knowledge level or years of
experience associated with these competency levels; however, the
following general guidelines are typical:
An individual who is competent at the Technician level to perform
the activities in one or more skills or skill areas might have some
advanced education (for example, a two-year US associates degree
or equivalent), one or more industrial certifications, and any number of years of experience.
An individual who is competent as an Entry Level Practitioner to
perform the activities in one or more skills or skill areas would probably have requisite knowledge equivalent2 to that provided by an
2 Knowledge equivalence might be gained by a combination of education, mentoring,
training, and on-the-job experience.
14SWECOM
ABET-accredited software engineering degree program or equivalent and zero to four or five years of relevant experience.3
An individual who is competent at the Practitioner level to perform the activities in one or more skills or skill areas would probably
have knowledge equivalent to or greater than that of an Entry Level
Practitioner, might have a masters degree in software engineering or a related discipline, and would probably have more than five
years of experience in the relevant skill areas.
An individual who is competent as a Technical Leader for one or
more SWECOM activities, skills, or skill areas would likely have relevant knowledge and experience equal to or greater than that of a
Practitioner plus the behavioral attributes and skills needed to be an
effective technical leader.
A Senior Software Engineer is an individual who is competent
to develop policies, procedures, and guidelines for the technical
processes and work products within an organizational unit that is
engaged in software engineering.
These characterizations of education and experience are examples and not to be interpreted as prescriptive requirements.
Some activities may not have corresponding lower level activities.
For example, conducting an impact analysis to determine the effect
of modifying or adding requirements for product security or performance might be a Practitioner skill and not an activity that a person
at a lower level of competency would be competent to perform.
An individual may be at different levels of competency for different skill areas, skills within skill areas, and activities within skills,
depending on his or her educational background, work experiences,
and aptitude. The SWECOM activities, skills, and skill areas are presented as a framework that can be tailored to fit the needs of individual organizations, programs, and projects. Some organizations
may choose to use SWECOM in a prescriptive manner by requiring
software engineers who are competent in a skill area at a given
competency level to be competent in all of the skills and activities
in that skill area at that level and at all lower levels. Other organizations, programs, and projects may use SWECOM to pick and
3 Relevant experience is the experience needed to acquire ability, at a given level of
competency, for a SWECOM skill area, skill, or activity.
choose skill areas, skills, and activities needed for particular missions, programs, or projects without regard to other competencies
and competency levels.
An example of activities competency levels from the requirements management skill within the software requirements skill area
illustrates the approach taken in subsequent sections of this competency model; see Table 6. In general, these notations correspond
to the five levels of competency. In some cases, an individual at a
lower level of skill competency may be competent to perform some
activitiesbut not allat a higher level. For example, an Entry Level
Practitioner may be competent to perform traceability analysis (P),
or a Practitioner may be competent to lead certain activities (L).
Table 6. Competency Levels for Software Requirements
Management Work Activities
Skill Area: Software Requirements
Skill: Requirements Management
Competency
Levels
Activities
Technician
1. Follows
defined
procedures
to support
requirements
management (F)
Entry Level
Practitioner Practitioner
Team
Leader
Senior
Software
Engineer
1. Modifies
existing
1. Assists
1. Impleand crerequire1. Prepares
ments
ates new
ments
requirerequireguidelines,
managements
ments
templates,
ment
managemanagetools, and
through
ment plans
ment plans
techniques
the use of
for projects
for projects
for requireappropriate
(L)
(P/L)
ments
tools (A)
management (C)
Note that in some cases (such as for the Practitioner level in Table
6) an individual may be competent to either participate in or lead
a work activity such as implementing a requirements management
plan. Whether that individual is competent to participate or lead
may depend on the size, scope, and complexity of the project and
product; in such cases, the notation is (P/L).
16SWECOM
7. SWECOM VALIDATION
SWECOM has been validated by 22 subject matter reviewers and 40
public reviewers.
Many narrative review comments were received from both subject matter reviewers (SMEs) and public reviewers. The SWECOM
author team adjudicated all comments and informed reviewers of
their decisions.
Members of the SWECOM team interviewed six software engineering professionals. The purpose of the interviews was to determine the value of a software engineering competency model and the
relevancy and usefulness of various SWECOM elements (for example, cognitive attributes, behavioral attributes and skills, skill areas,
competency levels, and so forth). These interviews also allowed
the SWECOM developers to conduct a sanity check on SWECOM
before releasing a draft for external review.
SWECOM Validation 17
18SWECOM
8. ACKNOWLEDGEMENTS
Appendix A lists individuals who developed this competency model,
the subject matter expert reviewers, the public reviewers, and those
who were interviewed.
9. REFERENCES
[Abran 2010] Alain Abran, Software Metrics and Software
Metrology, Wiley-IEEE Computer Society Press, 2010.
[ACM 2004] ACM/IEEE-CS Joint Task Force on Computing
Curricula, Software Engineering 2004, Curriculum Guidelines for
Undergraduate Degree Programs in Software Engineering, Aug.
2004; www.acm.org/education/curricula.html.
[Aiello 2010] Bob Aiello and Leslie Sach, Configuration Management
Best Practices: Practical Methods that Work in the Real World,
Addison-Wesley Professional, 2010.
[Allen 2008] Julia Allen et al., Software Security Engineering: A
Guide for Project Managers, Addison-Wesley Professional, 2008.
[Babich 1986] Wayne A. Babich, Software Configuration
Management: Coordination for Team Productivity, AddisonWesley, 1986.
[BITS 2012] BITS Software Assurance Framework, Financial
Services Roundtable, 2012; www.bits.org/publications/security/
BITSSoftwareAssurance0112.pdf.
[Bozzano 2010] Marco Bozzano and Adolfo Villafiorita, Design and
Safety Assessment of Critical Systems, CRC Press, 2010.
References19
20SWECOM
References21
22SWECOM
Glossary of Terms 23
24SWECOM
Gap Analysis: the process of specifying the competencies an individual or organization has, the competencies needed, and gaps
between what is had and what is needed.
Senior Software Engineer: an individual who is competent to
create newand modify existingprocesses, procedures, methods, and tools for performing activities, groups of activities
within skills, and skills within skill areas.
Practitioner: an individual who is competent to perform an activity with little or no supervision.
Skill: a grouping of logically related activities.
Skill Area: a grouping of logically related skills.
Technical Leader: an individual who is competent to lead and
direct participants in the performance of activities in a skill or
skill area.
Technician: an individual who is competent to follow instructions
while performing an activity.
Usability Test: a test case that states what the user needs to do
but does not tell the user how to do it. It measures the user
interfaces ability to support user behavior.
REFERENCES
[ACM 2004] ACM/IEEE-CS Joint Task Force on Computing
Curricula, Software Engineering 2004, Curriculum Guidelines for
Undergraduate Degree Programs in Software Engineering, Aug.
2004; www.acm.org/education/curricula.html.
[Laplante 2009] Phillip A. Laplante, Requirements Engineering for
Software and Systems, 2nd ed., CRC Press, 2009.
[Robertson 2012] Suzanne Robertson and James C. Robertson,
Mastering the Requirements Process: Getting Requirements
Right, 3rd ed., Addison-Wesley Professional, 2012.
[SWEBOK 2014] P. Bourque and R.E. Fairley, eds., Guide to the
Software Engineering Body of Knowledge, Version 3.0, IEEE
Computer Society, 2014; www.swebok.org.
25
26SWECOM
Software Requirements
Elicitation
Software Requirements
Analysis
Software Requirements
Specification
Software Requirements
Verification and Validation
Software Requirements
Process and Product
Management
The following notations are used in Table B11: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B11
Software Requirements Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
1. Identifies
important
stakeholders. (P/L)
1. Assists
in engaging different stakeholders to
determine
needs and
requirements. (A)
2. Engages
different
stakeholders to
determine
needs and
requirements. (P)
2. Assists
in applying
different
methods to
the project
as appropriate to elicit
requirements. (A)
3. Applies
different
methods to
the project
as appropriate to elicit
requirements. (P)
Technical
Leader
Senior
Software
Engineer
28SWECOM
Table B11
Software Requirements Skill Sets and Activities by Competency Level
Levels
Software Requirements
Analysis
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
1. Selects
appropriate
methods
to engage
and communicate
with stakeholders in
requirements
activities.
(L)
1. Assists
requirements engineers with
preparation
of surveys
and other
elicitation
instruments.
(F/A)
4. Assists
in negotiating conflicts
between
stakeholders in
requirements elicitation. (A)
1. Selects
the most
1. Assists
appropriin domain
ate domain
analysis. (A) analysis
methods.
(P/L)
Senior
Software
Engineer
1. Creates
new ways
to engage
and communicate
with stakeholders,
the management
team, and
developers
in requirements
activities
(C)
2. Negotiates
conflicts
between
stakeholders in
requirements elicitation. (P/L)
1. Leads
identification of
emergent
properties
and requirements
throughout
the software development life
cycle. (P)
1. Creates
new domain
analysis
methods.
(C)
Table B11
Software Requirements Skill Sets and Activities by Competency Level
Levels
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
2. Identifies
emergent
properties
and requirements
throughout
the software development life
cycle. (P)
Software
Requirements
Analysis
Skill
Sets
1. Assists
with preparation of
requirements for
consistency
with internal and
published
standards.
(F/A)
1. Prepares
requirements documentation
including
descriptions
of interfaces and
functional
and nonfunctional
requirements. (P)
1. Selects
the most
appropriate
formal and
informal
notations
for describing interfaces and
functional
and nonfunctional
requirements. (P/L)
1. Leads
development of the
SRS. (L)
2. Selects
the most
appropriate
formal and
informal
notations
for describing interfaces and
functional
and nonfunctional
requirements. (L)
1. Creates
new
requirements
specification
methods.
(C)
30SWECOM
Table B11
Software Requirements Skill Sets and Activities by Competency Level
Levels
Software Requirements
Process Management
Skill
Sets
Technician
Entry
Level
1. Reviews
specifications of
requirements for
errors and
omissions.
(P)
2. Assists in
prototype
construction
and testing.
(F/A)
Practitioner
1. Reviews
specifications of
requirements for
errors and
omissions.
(L)
1. Selects
the most
appropriate
formal and
informal
requirements validation and
verification
techniques.
(L)
Senior
Software
Engineer
1. Creates
new
requirements validation and
verification
techniques.
(C)
2. Creates
prototypes
of different
types as
needed. (P)
3. Assists
in negotiating conflicts
between
stakeholders in
requirements verification. (A)
1. Follows
and applies
defined
processes
for requirements
engineering
with guidance. (F/A)
Technical
Leader
1. Assists
in applying defined
processes
for requirements engineering. (A)
1. Performs
tradeoff
analysis of
requirements
activities.
(P/L)
2. Negotiates
conflicts
between
stakeholders in
requirements
verification.
(P/L)
1. Sets
strategy
and direction for the
requirements process across
projects
and functional units
of an organization. (L)
REFERENCES
[IEEE 1016-2009] IEEE Std. 1016-2009, IEEE Standard for
Information Technology-Systems DesignSoftware Design
Descriptions, IEEE, 2009.
[IEEE 12207-2008] IEEE Std. 12207-2008, IEEE Standard for
Systems and Software EngineeringSoftware Life Cycle
Processes, IEEE, 2008.
[IEEE 15528-2008] IEEE Std. 15528-2008, IEEE Standard for
Systems and Software EngineeringSystem Life Cycle
Processes, IEEE, 2008.
[SWEBOK 2014] P. Bourque and R.E. Fairley, eds., Guide to the
Software Engineering Body of Knowledge, Version 3.0, IEEE
Computer Society, 2014; www.swebok.org.
31
32SWECOM
Table A12
Software Design
Skill Sets
Software Design
Fundamentals
Software Design
Strategies and Methods
Software Architectural
Design
The following notations are used in Table B12: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B12
Software Design Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
1. Assists
software
designers
with tools
and techniques for
gathering
information
about application and
use of software design
fundamentals. (F/A)
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Applies
enabling
1. Assists
techniques
in the appli- (such as
cation of
abstraction,
enabling
coupling/
techniques
cohesion,
in the
information
design of
hiding, and
software
so forth) to
components the design
and modof software
ules. (A)
components
and modules. (P)
1. Analyzes
and makes
1. Evaluates
recomthe effecmendations
tiveness of
related to
the applicaorganization of softtion-wide
ware design
application
enabling
of software
techniques.
design fun(P/L)
damentals.
(C)
2. As appropriate in
2. Assists
the domain
in the
of applicaapplication
tion, applies
of design
appropritechniques
ate design
in the areas
techniques
of concurin the areas
rency, event
of concurhandling,
rency, event
data perhandling,
sistence, or
data perdistributed
sistence, or
software.
distributed
(A)
software.
(P)
2. Provides
direction
and advice
on methods
and techniques to
be used in
the areas
of concurrency, event
handling, or
distributed
software.
(L)
34SWECOM
Table B12
Software Design Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
3. Assists
in the application of
exception
handling
and fault
tolerance
techniques
in the
design of
software
components
and modules. (A)
3. Applies
exception
handling
and fault
tolerance
techniques
in the
design of
software
components
and modules. (P)
4. Assists
in the use
of restructuring and
refactoring
methods in
the design
of software
components
and modules. (A)
4. Uses
restructuring and
refactoring
methods in
the design
of software
components
and modules. (P)
Technical
Leader
Senior
Software
Engineer
Table B12
Software Design Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
1. Provides
assistance
in the
installation
and use of
tools appropriate for
a projects
designated
design
strategy
and methodology
(such as an
incremental objectoriented
approach).
(F/A)
Entry
Level
1. Assists in
the application of the
designated
software
design
strategy
and methodology to
create a
software
design
(such as an
incremental objectoriented
approach).
(A/P)
Practitioner
1. Applies
the designated software design
strategy
and methodology to
create a
software
design
(such as an
incremental objectoriented
approach).
(P)
Technical
Leader
Senior
Software
Engineer
1. Determines
the process and
strategy to
be used in
software
design at
the project
level (such
as top-down
or bottomup, stepwise refinement, use
of patterns
and pattern
languages,
iterative
and incremental processes, and
so forth).
(L)
1. Examines
and
assesses
the effectiveness,
across an
organization, of the
application
of software
design
strategies
and methods. (M)
2. Selects
the appropriate
design
methodology (such
as objectoriented,
functionoriented,
componentbased) and
strategies
to be used
at the project level.
(L)
2. Analyzes
and makes
recommendations
related to
organization-wide
software
design
strategies
and methodologies.
(M)
36SWECOM
Table B12
Software Design Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
3. Provides
guidance
and advice
on the use
of software
design
strategies
and methods. (L)
4. Evaluates
the effectiveness of
the application of the
selected
software
design
methodology. (P/L)
2. Determines
design
alternatives and
performs
trade-off
analysis.
(P/L)
5. Determines
design
alternatives and
performs
trade-off
analysis. (L)
3. Creates
new techniques
evaluating
software
design quality. (M)
Table B12
Software Design Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
1. Provides
assistance
in the
installation
and use of
software
architecture
tools. (F/A)
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Applies
standard
notations,
diagramming techniques,
models, and
1. Assists
patterns
in architec- (such as
tural design architectasks asso- tural styles,
ciated with
structural
use of stan- and behavdard notaioral modtions, diaels, GoF
gramming
patterns,
techniques, structured
models, and systems
patterns.
design
(A)
models,
and UML) to
model the
high-level
organization
of a software system. (P/L)
1. Provides
direction
and advice
on standard
notations,
diagramming techniques,
models, and
patterns to
be applied.
(L)
1. Analyzes
and makes
recommendations
related to
organization-wide
software
architectural
design. (M)
2. Applies
a selected
software
design pattern to the
design of
a software
component
or module.
(A/P)
2. Evaluates
the effectiveness of
the creation
of software
architecture. (P/L)
2. Determines
new methods and
techniques
to be used
in architectural
design. (M)
2. Creates
multiple
views of the
software
system.
(P/L)
38SWECOM
Table B12
Software Design Skill Sets and Activities by Competency Level
Levels
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
3. Uses
design patterns and
frameworks
to design
mid-level
software
components
or modules.
(P)
Software
Architectural
Design
Skill
Sets
1. Selects
appropriate
1. Assists
tools and
software
techniques
design(such as
ers with
design
tools and
1. Facilitates reviews,
1. Participates
techniques
software
static analyin software
for collectdesign
sis, simuladesign
ing design
reviews.
tion and
reviews. (P)
metrics and
(P/L)
prototypevaluating
ing, design
software
metrics)
design qualto ensure
ity. (F/A)
a software
designs
quality. (L)
2. Carries
out static
analysis
tasks to
evaluate
design quality. (P)
2. Leads
static analysis tasks
to evaluate
design quality. (P/L)
1. Analyzes
and makes
recommendations
related to
organization-wide
design quality evaluation and
analysis
techniques.
(M)
Table B12
Software Design Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
3. Assists
in development and
use of simulation and
prototypes
to evaluate
software
design quality. (A)
Practitioner
Technical
Leader
Senior
Software
Engineer
3. Develops
and uses
simulation
and prototypes to
evaluate
software
design quality. (P)
2. Uses the
results of
software
design
quality
evaluation
activities
to assess
the quality of the
design and
to decide
on corrective action,
if needed.
(P/L)
3. Provides
guidance
and direction related
to the need
for requirements
change
resulting
from design
review.
(P/L)
2. Creates
new techniques for
evaluating
software
design quality. (M)
REFERENCES
[ACM 2004] ACM/IEEE-CS Joint Task Force on Computing
Curricula, Software Engineering 2004, Curriculum Guidelines
for Undergraduate Degree Programs in Software Engineering,
August 2004; www.acm.org/education/curricula.html.
[Fowler 1999] M. Fowler et al., Refactoring: Improving the Design
of Existing Code, Addison-Wesley, 1999.
[Hunt 1999] A. Hunt and D. Thomas, The Pragmatic Programmer:
From Journeyman to Master, Addison-Wesley, 1999.
[McConnell 2004] S. McConnell, Code Complete, 2nd ed., Microsoft
Press, 2004.
41
42SWECOM
Software Construction
Planning
Managing Software
Construction
Integrating and
Collaborating
The following notations are used in Table B13: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B13
Software Construction Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Selects
appropriate
processes
and models
1. Assists in for conthe selecstructing
tion of
software on
appropriate individual
processes
projects
and models (such as
for software compilation,
construcgeneration. (F/P)
tion from
domainspecific
languages).
(L)
1. Creates
or proposes
new processes and
models for
software
construction. (C)
2. Assists in
the selection of
appropriate
languages
and tools
for software
construction. (F/P)
2. Creates
new languages and
tools for
software
construction. (C)
44SWECOM
Table B13
Software Construction Skill Sets and Activities by Competency Level
Levels
Technician
Entry
Level
Practitioner
3. Assists in
the selection of
appropriate frameworks,
platforms,
and environments
for software
construction. (F/P)
Skill
Sets
Technical
Leader
2. Selects
appropriate
languages
and tools
for software
construction on individual projects. (L)
Senior
Software
Engineer
3. Creates
or proposes
new frameworks, platforms, and
environments. (C)
3. Selects
appropriate frameworks, platforms, and
environments for
individual
projects. (L)
1. Assists in
the installation of
tools and
repositories
for version
control and
configuration management.
(A)
1. Uses
standard
tools and
processes
for version
control and
configuration management.
(P)
2. Collects
standard
measures of
code quality
and size. (P)
1. Establishes
project
1. Monitors standards
standard
for version
measures of control and
code quality configuraand size. (P) tion management.
(L)
1. Establishes
organization
standards
for version
control and
configuration management.
(L)
2. Sets
organization
standards
for code
quality and
size. (L)
Table B13
Software Construction Skill Sets and Activities by Competency Level
Levels
Technician
Entry
Level
Practitioner
Technical
Leader
1. Assists in
the installation of tools
and repositories for
design and
coding. (A)
Detailed Design and Coding
Senior
Software
Engineer
3. Creates
new tools
and processes for
version
control and
configuration management.
(C)
Managing Software
Construction
Skill
Sets
1. Creates
code to
implement
detailed
designs. (P)
1. Creates
and reviews
detailed
designs and
code that
meet quality requirements. (P)
2. Refactors
code when
needed. (P)
2. Suggests
and performs
appropriate
code refactoring when
needed. (L)
3. Follows
project and
organization
standards
for designs
and code.
(F)
3. Selects
or establishes project standards for
designs and
code. (P)
4. Uses
appropriate
design patterns. (P)
4. Suggests
and uses
appropriate
design patterns. (L)
1. Measures
and monitors
an organizations use of
design patterns. (L)
1. Establishes
organization
standards
for detailed
designs and
code. (L)
2. Creates
new design
patterns.
(C)
46SWECOM
Table B13
Software Construction Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
5. Uses
defensive
coding
techniques
to minimize
propagation
of errors
and threats.
(P)
Practitioner
Technical
Leader
5. Suggests
and uses
defensive
coding
techniques
to minimize
propagation
of errors
and threats.
(L)
6. Documents
code
through
comments
to support
software
maintenance. (P)
7. Generates
code and
systems
from models (such
as UML) as
appropriate.
(P)
6. Writes
executable
models
suitable for
code generation as
appropriate.
(P/L)
2. Plans
and initiates modeldriven
development processes as
appropriate.
(L)
Senior
Software
Engineer
Table B13
Software Construction Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
1. Assists in
the installation of tools
for debugging and
testing. (A)
1. Uses
appropriate
tools and
techniques
for debugging. (P)
Practitioner
1. Ensures
project
standards
for unit test
coverage
are followed. (P)
2. Creates
and executes unit
tests for all
delivered
code. (P)
Technical
Leader
Senior
Software
Engineer
1. Establishes
project
standards
for unit test
coverage.
(L)
1. Establishes
organization
standards
for unit
testing. (L)
2. Selects
appropriate
debugging
tools and
techniques
for a project. (L)
2. Creates
new unit
testing tools
and methods. (C)
1. Assists
in selection
of project
tools and
processes
for integration. (P)
1. Establishes
organization
standards
for integration tools
and processes. (L)
3. Achieves
test coverage goals
set by project and
organization
standards.
(P)
1. Assists in
installation
of integration tools.
(A)
1. Follows
project
integration
strategy
and processes. (P)
2. Assists
in creation
of code
inspection
packages.
(A)
2. Performs
integration
testing as
part of the
integration
process. (P)
1. Leads
code
reviews and
inspections.
(L)
2.
Establishes
organization
standards
for reviews
and inspections. (L)
48SWECOM
Table B13
Software Construction Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
3. Assists
in scheduling code
inspections.
(A)
4. Sets up
build-andinstall environments
where the
software
packages
can be integrated. (P)
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
3. Collaborates
with other
team members in
development activities (such
as pair programming,
informal
reviews).
(P)
3. Creates
new integration
tools and
processes.
(C)
4. Participates
in projectdefined
reviews and
inspections.
(P)
4. Creates
new code
review and
inspection
methods.
(C)
REFERENCES
[IEEE 730-2002] IEEE Std. 730-2002, IEEE Standard for Software
Quality Assurance Plans, IEEE, 2002.
[IEEE 829-1998] IEEE Std. 829-1998, IEEE Standard for Software
Test Documentation, IEEE, 1998.
[IEEE 1012-2012] IEEE Std. 1012-2012, IEEE Standard for System
and Software Verification and Validation, IEEE, 2012.
49
50SWECOM
Software Testing
Infrastructure
Software Testing
Techniques
Software Testing
Measurement and Defect
Tracking
NOTE: Throughout the industry, a large number of testing techniques have been and are used. Whenever testing techniques are
discussed in this skill area, it could potentially refer to any of those
techniques; in such cases, testing is in italics. In a few instances,
testing refers to a specific technique and is not in italics.
The following notations are used in Table B14: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B14
Software Testing Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
1. Identifies
unit and
integration
testing success and
failure criteria. (P)
2. Follows
software
test plan.
(P)
Technical
Leader
Senior
Software
Engineer
1. Identifies
stakeholders participating
in demonstration
and testing
activities.
(P)
1. Establishes
organizational procedures for
testing. (P)
1. Establishes
organizational procedures for
testing. (L)
2. Designs
and implements a
software
test plan.
(P)
2. Identifies
customer
representatives and
other stake
holders
participating in the
acceptance
testing and
demonstrations. (L)
Practitioner
52SWECOM
Table B14
Software Testing Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
3. Establishes
the criteria
for unit test
execution
completion,
such as
code coverage, defect
intensity,
and so
forth. (P)
3. Identifies
success and
failure criteria for testing. (L/P)
3. Identifies
project test
objectives.
(L)
4. Develops
unit test
plan. (P)
4. Develops
demonstration or
other test
plans. (P)
4. Identifies
success
and failure
criteria for
system and
acceptance
testing. (P)
5. Assists
with the
development of the
test plan.
5. Establishes
criteria for
demonstration readiness. (A/P)
5. Identifies
test completion criteria. (P)
6. Selects
the most
appropriate
demonstration, testing
technique.
(P)
Senior
Software
Engineer
Table B14
Software Testing Skill Sets and Activities by Competency Level
Levels
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
7. Establishes
the criteria for test
completion, such
as defect
arrival
rate, defect
intensity,
and so
forth. (P)
Skill
Sets
8. Establishes
criteria for
regression
testing,
such as
defect density and so
forth. (P/L)
1. Sets up
the necessary test
and demonstration
environment. (P)
2. Installs
the necessary tools.
(P)
1. Defines
the neces1. Selects
sary setup
approprifor testing
ate unit test
and demtechniques.
onstration.
(P/L)
2. Selects
the most
appropriate testing
tools. (P)
2. Identifies
the appropriate documentations
necessary
for the testing activities. (P)
1. Identifies
testing tools
and test
data warehousing
across projects. (P)
1. Identifies
organizational testing tools
and data
warehousing across
projects. (L)
2. Creates
new test
documentation
(in other
words, test
plan, defect
recording, and so
forth). (L/P)
54SWECOM
Table B14
Software Testing Skill Sets and Activities by Competency Level
Levels
Software Testing
Infrastructure
Skill
Sets
Technician
3. Develops
the appropriate infrastructure
for data
warehousing. (P)
Entry
Level
Practitioner
3. Designs
and implements the
test environment.
(P)
3. Designs
the test
environment. (L/P)
1. Performs
manual test
activities
(in other
words, data
entry, test
case execution, and so
forth). (P)
1. Designs
and executes unit
test cases.
(P)
1. Specifies
appropriate test
cases for
the selected
testing
technique.
(L/P)
2. Executes
regression
testing. (P)
2. Assists
with the
development of the
test cases.
(P)
3. During
demonstration, monitors customer use
and records
customer
feedback
for product
improvement. (A)
3. Executes
integration
and system
test cases.
(P)
Technical
Leader
1. Designs
system test
plan and test
cases. (L)
2. Identifies
automated
testing
opportunities. (L/P)
Senior
Software
Engineer
1. Creates
new testing (in other
words, unit,
integration,
stress, and so
forth) techniques. (C)
Table B14
Software Testing Skill Sets and Activities by Competency Level
Levels
Technician
Entry
Level
4. Ensures
the system
is ready
for demonstration by
performing
acceptance
test. (P/L)
Software Testing
Techniques
Skill
Sets
Practitioner
Technical
Leader
Senior
Software
Engineer
2. Executes
test cases.
(L/P)
3. Develops
automated
test case
scenarios.
(L/P)
1. Performs
all appropriate
data warehousing
(gathering
execution
data, data
entry, data
archiving,
and so
forth). (P)
1. Collects
appropriate
data associated with
test execution. (P)
1. Collects
appropriate
data associated with
test execution. (L/P)
1. Conducts
root cause
analysis.
(L/P)
2. Generates
appropriate reports
associated
with test /
demonstration execution. (P)
2. Evaluates
test execution results 2. Conducts
and identiroot cause
fies approanalysis. (P)
priate
rework. (P)
2. Analyzes
test data
to decide
on further
testing
activities.
(L)
1. Creates
new root
cause analysis techniques. (P)
56SWECOM
Table B14
Software Testing Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
3. Collects
appropriate
data associated with
executing
test cases.
(P)
4. Provides
test result
report to
appropriate
stakeholders. (P)
Entry
Level
3. Monitors
test progress by
evaluating defect
arrival
rate, failure
intensity,
and so
forth. (A/P)
Practitioner
Technical
Leader
3. Using the
test results,
assigns
appropriate
rework to
team members. (P)
3. Uses
the data to
evaluate
test effectiveness. (L)
4. Uses
test execution data
and rework
results
to evaluate test
effectiveness and
decide for
additional
testing or
regression
testing. (P)
4. Evaluates
test results
to identify
appropriate process
improvement
opportunities. (P)
5. Monitors
test progress by
evaluating defect
arrival
rate, failure
intensity,
and so
forth. (P)
5. Monitors
overall test
progress
by evaluating defect
arrival
rate, failure
intensity,
and so
forth. (L)
Senior
Software
Engineer
58SWECOM
REFERENCES
[IEEE 12207-2008] IEEE Std. 12207-2008, IEEE Standard for
Systems and Software EngineeringSoftware Life Cycle
Processes, IEEE, 2008.
[IEEE/ISO/IEC 24765-2010] IEEE/ISO/IEC 24765:2010 Systems and
Software EngineeringVocabulary, IEEE, 2010.
[Lapham 2006] M. Lapham and C. Woody, Sustaining SoftwareIntensive Systems, CMU/SEI-2006-TN-007, Software
Engineering Institute, 2006; http://resources.sei.cmu.edu/
library/asset-view.cfm?assetID=7865.
[SWEBOK 2014] P. Bourque and R.E. Fairley, eds., Guide to the
Software Engineering Body of Knowledge, Version 3.0, IEEE
Computer Society, 2014; www.swebok.org.
Table A15
Software Sustainment
Skill Sets
Software Transition
Software Support
Software Maintenance
60SWECOM
The following notations are used in Table B15: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B15
Software Sustainment Skill Sets and Activities by Competency Level
Levels
Software Transition
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Participates
in developing transition plans.
(P)
1. Leads
development
of transition
plans. (L)
1. Modifies
existing and
creates new
guidelines
for transition
plans. (C)
2. Participates
in the identification of
stakeholders for transition and
operational
requirements. (P)
2. Leads in
the identification of
stakeholders for transition and
operational
requirements. (L)
2. Modifies
existing
and creates
new guidelines for
the identification of
stakeholders. (C)
3. Participates
in the identification of
system and
software
constraints.
(P)
3. Leads in
the identification of
system and
software
constraints.
(L)
4. Identifies
applicable
systems
and software operational standards. (P)
4. Modifies
existing and
develops
new systems and
software
operational
standards.
(L)
Table B15
Software Sustainment Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Software Transition
1. Assists in
identifying
applicable
systems
and software operational standards. (A)
1. Follows
instructions
to help
develop
software
transition
and operational documentation.
(F)
2. Assists in
the development of
software
transition
and operational documentation.
(A)
Practitioner
5. Leads in
the development of
software
transition
and operational documentation.
(L)
Technical
Leader
Senior
Software
Engineer
5. Approves
software
transition
and operational documentation.
(L)
6. Leads in
the installation of software. (L)
6. Approves
new software installations. (L)
2. Follows
instructions
to help
install software. (F)
3. Assists in
the development of
training
material for
operational
support
personnel.
(A)
7. Develops
training
material for
operational
support
personnel.
(P)
7. Approves
training
material for
operational
support
personnel.
(L)
3. Assists
in training
operational
support
personnel.
(A)
4. Trains
software
operational
support
personnel.
(P)
8. Leads
software
operational
training. (L)
Installs
software.
(P)
3. Modifies
existing and
creates new
templates
for software
transition
and operational documentation.
(C)
62SWECOM
Table B15
Software Sustainment Skill Sets and Activities by Competency Level
Levels
Software Transition
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
5. Performs
software
system activation and
check-out
procedures.
(P)
9. Develops
software
system activation and
check-out
procedures.
(P)
8. Approves
software
system activation and
check-out
procedures.
(L)
6. Assists in
determining
the impacts
of software
changes on
the operational environment.
(A)
7. Assists
in system
acceptance.
(A)
10. Participates
in determining the
impacts of
software
changes on
the operational environment.
(P)
11. Participates
in system
acceptance.
(P)
Senior
Software
Engineer
9. Leads in
determining
the impacts
of software
changes on
the operational environment.
(L)
4. Modifies
existing and
creates new
guidelines
for determining the
impacts of
software
changes on
the operational environment.
(C)
10. Leads
system
acceptance.
(L)
5. Modifies
existing and
develops
new system
acceptance
methods,
tools, and
techniques.
(C)
Table B15
Software Sustainment Skill Sets and Activities by Competency Level
Levels
Software Support
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
1. Operates
operational
software
configuration management
tools. (A)
1. Performs
operational
software
configuration
management.
(P)
1. Develops
operational
software
configuration management
plans. (L)
1. Approves
operational
software
configuration management
plans. (L)
2. Follows
instructions
to perform
operational
software
assurance
tasks. (F)
2. Performs
operational
software
assurance.
(P)
2. Leads
operational
software
assurance
activities.
(L)
2. Develops
software
assurance
plans. (L)
3. Installs
COTS
and other
software
updates. (P)
3. Updates
COTS and
other software technologies to
maintain
currency.
(P)
3. Leads
maintenance
of COTS
and other
software
technologies
to maintain
currency. (L)
4. Diagnoses
and
responds
to reported
software
defects,
anomalies,
and operational incidents and
events. (P)
4. Leads
software
help desk
activities.
(L)
4. Develops
software
help desk
plans. (L)
3. Creates
policies that
cover help
desk operations. (C)
Senior
Software
Engineer
1. Modifies
existing and
creates new
standards
and frameworks for
operational
software
configuration management.
(C)
64SWECOM
Table B15
Software Sustainment Skill Sets and Activities by Competency Level
Levels
Software Maintenance
Software Support
Skill
Sets
Technician
5. Operates
tools to
collect
operational
data under
supervision.
(F)
Entry
Level
Practitioner
Technical
Leader
5. Analyzes
operational
data. (P)
5. Acquires
tools and
supervises
analysis of
operational
data. (L)
4. Develops
plans for
collecting
and processing
operational
data. (L)
6. Assists in
implementing software
retirement
procedures.
(A)
6. Implements
software
retirement
procedures.
(P)
5. Develops
software
retirement
plans. (L)
1. Leads
1. Assists in
1. Implements developimplementsoftware
ment of
ing software
maintesoftware
maintenance promaintenance processes and
nance processes and
plans. (P)
cesses and
plans. (A)
plans. (L)
1. Participates
in obtaining baseline
software
artifacts.
(P)
2. Obtains
and maintains
software
baseline
artifacts.
(P)
2. Identifies
software
baseline
artifacts.
(L)
Senior
Software
Engineer
2. Modifies
existing and
creates new
methods,
tools, and
techniques
for collecting and
processing
operational
data. (C)
1. Modifies
existing and
creates new
software
maintenance policies, processes, and
procedures.
(C)
Table B15
Software Sustainment Skill Sets and Activities by Competency Level
Levels
Software Maintenance
Skill
Sets
Technician
2. Assists in
performing
preventative maintenance and
software reengineering
activities.
(A)
Entry
Level
Practitioner
Technical
Leader
3. Performs
problem
identification. (P)
3. Performs
change
impact
analysis. (P)
2. Leads
problem
identification and
technical impact
analysis. (P)
4. Assists
in making
changes to
software
(corrective,
adaptive,
perfective).
(A)
4.
Implements
plans and
makes
changes to
software
(corrective,
adaptive,
perfective).
(P)
3. Leads
development of
plans and
supervises
making
changes to
software
(corrective,
adaptive,
perfective).
(L)
4. Plans
5. Performs 5. Leads
for and
preventapreventasupervises
tive mainte- tive mainte- preventanance and
nance and
tive maintesoftware re- software re- nance and
engineering engineering software reactivities.
activities.
engineering
(P)
(L)
activities.
(L)
6. Assists in
monitoring
and analyzing software
maintenance activities. (A)
6. Monitors
and analyzes software maintenance
activities.
(P)
5. Leads
monitoring
and analysis
of software
maintenance activities. (L)
Senior
Software
Engineer
2. Modifies
existing and
creates new
policies and
procedures
for making
changes to
software
(corrective,
adaptive,
perfective).
(C)
3. Modifies
existing and
creates new
policies and
procedures
for preventative maintenance and
software reengineering.
(C)
Software process models and life cycle models skills are concerned
with process definition and tailoring, implementation, workflow,
assessment, measurement, management, and improvement of the
software life cycle processes, including processes both for guiding a specific set of activities and for postmortem. The skills apply
to a range of software process paradigms that range from plandriven processes (sometimes called predictive processes) to agile
processes (sometimes called adaptive processes) and the spectrum
of processes between the two.
A key element of software processes is measurement and assessment of the effectiveness of individual activities and their combinations for software projects. The key purpose of process assessment
is to identify process activities and combinations that need to be
modified to better achieve project goals.
Software process model and life cycle model skills apply across
most of the other skill areas in this document, including both life
cycle and crosscutting skill areas.
REFERENCES
[IEEE 12207-2008] IEEE Std. 12207-2008, IEEE Standard for
Systems and Software EngineeringSoftware Life Cycle
Processes, IEEE, 2008.
67
68SWECOM
Software Development
Life Cycle Implementation
Process Implementation
and Management
The following notations are used in Table B16: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B16
Software Process and Life Cycle Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
1. Provides
assistance
in the
installation
and use of
tools appropriate for
a projects
designated
life cycle
model. (F/A)
Entry
Level
1. Carries
out process
activities
specified
in a life
cycle process model
script. (A/P)
Practitioner
1. Leads a
small team
in execution
of some
portion of
a life cycle
process
model (such
as software
design).
(P/L)
Technical
Leader
Senior
Software
Engineer
1. Selects
a life cycle
model process for a
software
team. (L)
1. Determines
the need for
and selects
or develops
an organization-wide
life cycle
model. (C)
2. Assists
in selection of a
department
or organizational-wide
life cycle
process
model. (P/L)
2. Selects
department- or
organization-wide
process
models. (C)
3. Advises
on process
infrastructure, training, and
tools. (C)
70SWECOM
Table B16
Software Process and Life Cycle Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
1. Provides
assistance
in the
installation
and use of
tools for
defining and
modifying
software
processes.
(F/A)
Entry
Level
1.
Interprets
and adapts
a software
process to
individual
process
responsibilities and
tasks. (A/P)
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Provides
review of
defined and
tailored
processes.
(A/P)
1. Leads
definition
and tailoring of
software
processes
for a project
team or for
a software
engineering activity
(such as
requirements engineering,
design, and
so forth).
(L/C)
1. Conducts
research
into effective software
process
definition
and tailoring. (C)
2. Tailors
a software
process to
the work
of a small
team. (P/L)
2. Provides
guidance
to others
involved
in tailored
processes
(individual
and team).
(L)
2. Leads
definition
and tailoring of
organization-wide
software
processes.
(L/C)
Table B16
Software Process and Life Cycle Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
1. Provides
assistance
in the
installation
and use of
tools for
implementing, managing, and
measuring
software
processes.
(F/A)
Entry
Level
Practitioner
Technical
Leader
1. Leads
small teams
1. Collaborates
in the
in the
implemenexecution
tation and
of a team
execution of
software
a software
process.
process.
(P/L)
1. Leads
large teams
or multiteam projects in the
implementation and
execution of
a software
process. (L)
2. Provides
guidance
and advice
to indi2. Implements
viduals on
and manthe impleages indimentation
vidual
and manprocesses.
agement
(F/A)
of their
personal
processes.
(P/L)
2. Provides
guidance
and advice
to software
teams on
how to
implement
and manage
software
processes.
(L/C)
3. Serves
as a member of a
software
engineering process group
(SEPG). (P)
Senior
Software
Engineer
1. Provides
organization-wide
guidance
and advice
on how to
implement
and manage
software
processes.
(C)
2. Provides
guidance
and advice
3. Serves as on the forleader of an mation,
SEPG. (L)
structure,
and responsibilities of
SEPGs. (C)
72SWECOM
Table B16
Software Process and Life Cycle Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
1. Provides
assistance
in the
installation
and use of
tools for
assessing
and improving software
processes.
(F/A)
Entry
Level
Practitioner
Technical
Leader
1. Assists
in collecting data for
assessment
of a software
process. (A)
1. Leads
small teams
in collecting data for
assessment
of software
processes.
(P/L)
1. Leads
software
teams in
collecting
data for
assessment
of software
processes.
(P/L)
2. Collects
data relevant to
individual
process
execution.
(F/A)
2. Analyzes
process
assessment
data and
implements
improvement of
small team
software
processes.
(P/L)
2. Analyzes
process
assessment
data and
implements
improvement of
team software processes.
(P/L)
3. Assesses
and implements
improvement of an
individual
software
process.
(A/P)
3. Leads
the SEPG
3. As a mem- in providing
ber of an
guidance
SEPG, proon departvides input
ment- or
on software
organizaprocess
tion-wide
improvement. software
(A/P)
process
improvement. (L/C)
Senior
Software
Engineer
1. Conducts
research
into the
effectiveness and
improvement of
software
processes.
(C)
2. Uses
assessment
data, team
reports,
and SEPG
reports to
establish
organization
procedures
and standards for
software
process
improvement. (C)
Systems are collections of interconnected components that interact with other systems and the environment in which they are
embedded. They include natural systems, such as our solar system, and human-made systems, such as digital computers. Modern
engineered systems range from household appliances to medical
devices, automobiles, spacecraft, and nuclear reactors. Engineered
systems are increasingly reliant on software to provide functionality, behavior, interconnections among components, and external
interfaces to environments that may be complex and ill defined.
Software engineers are often members, and may be leaders, of
teams that develop and modify large and/or complex systems composed of diverse kinds of components, including software. Not all
software engineers will be, or need to be, competent software systems engineers; however, those software engineers who participate
as members of systems engineering teams for software-intensive
systems should have the skills required to participate in systems
engineering projects. The skills and activities in this skill area apply
to development of systems for which software is a critical component but for which software may not be the primary cost item or the
key technology to be exploited.
Not all software-intensive systems are engineered systems in the
traditional sense. For example, an enterprise information system
(EIS) may be dependent on software but the time, effort, and cost of
procuring and installing hardware and infrastructure software may
far exceed the time, effort, and cost of developing business-specific
73
74SWECOM
REFERENCES
[IEEE 12207-2008] IEEE Std. 12207-2008, IEEE Standard for
Systems and Software EngineeringSoftware Life Cycle
Processes, IEEE, 2008.
[IEEE 15528-2008] IEEE Std. 15528-2008, IEEE Standard for
Systems and Software EngineeringSystem Life Cycle
Processes, IEEE, 2008.
[SEBoK 2013] A. Pyster and D.H. Olwell, eds., The Guide to the
Systems Engineering Body of Knowledge (SEBoK), The Trustees
of the Stevens Institute of Technology, v. 1.2, 2013; http://
sebokwiki.org.
[SWEBOK 2014] P. Bourque and R.E. Fairley, eds., Guide to the
Software Engineering Body of Knowledge, Version 3.0, IEEE
Computer Society, 2014; www.swebok.org.
Table A17
Software Systems
Engineering Skill Sets
Concept Definition
76SWECOM
Table A17
Software Systems
Engineering Skill Sets
System Requirements
Engineering
System Design
Requirements Allocation
Component Engineering
Table A17
Software Systems
Engineering Skill Sets
System Sustainment
Planning
The following notations are used in Table B17: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
1. Uses
tools and
follows
directions
to prepared
depictions
and documentation
of tailored
development models. (F)
Entry
Level
1. Assists in
integrating
the selected
software
development model
into the
systems
development
model. (A)
Practitioner
1. Participates
in integrating the
selected
software
development model
into the
system
development
model. (P)
Technical
Leader
Senior
Software
Engineer
1. Prepares
frameworks
1. Participates
for integratin selection
ing an orgaof the sysnizations
tem develsystem and
opment
software
life cycle
developmodel. (P)
ment models. (C)
2. Leads
selection
of the software development
life cycle
model. (L)
78SWECOM
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
3. Leads
integration
of the software development
model into
the system development
model. (L)
2. Participates
in systems
engineering
meetings
and prepares meeting minutes
to include
decisions
made, open
issues,
other relevant discussions,
and action
items. (A)
4. Participates
in/leads
tailoring
of policies,
procedures,
and templates, and
selection of
applicable
standards
for projects
and programs. (P/L)
2. Modifies
existing
models and
creates new
models and
ways of
integrated
software
engineering
and system
engineering
development models. (C)
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Technician
Entry
Level
Practitioner
Technical
Leader
Concept Definition
Senior
Software
Engineer
3. Determines
applicable
policies,
procedures,
standards,
and guidelines and
tailors them
for an organizations
system and
software
development models. (C)
Skill
Sets
1. Assists
by locating
identified
stakeholders. (A)
1. Identifies
potential
stakeholders by
examining
historical
data and
having
discussions with
appropriate
personnel
inside and
outside the
systems
engineering
team. (A/P)
1. Develops
lists of
stakeholders and
categorizes
their likely
interests.
(P/L)
1. Prepares
criteria for
identifying
stakeholders. (L)
1. Develops
new techniques for
identifying
stakeholders. (C)
80SWECOM
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Concept Definition
2. Arranges
stakeholder
meetings.
(A)
3. Attends
stakeholder
meetings
and takes
meeting
minutes. (A)
4. Follows
directions
to prepare
elements
of the
Concept of
Operations.
(F)
Practitioner
Technical
Leader
2. Attends
stakeholder
meetings
and solicits
stakeholder
needs,
wants, and
desires. (P)
2. Leads
stakeholder
meetings.
(L)
3. Leads
development of
scenarios,
storyboards,
prototypes,
and use
cases. (L)
3. Facilitates
development of the
Concept of
Operations.
(L)
Senior
Software
Engineer
2. Attends
stakeholder
meetings to
document
stakeholder
needs,
wants, and
desires. (P)
3. Develops
elements
of the
Concept of
Operations.
(A)
4. Obtains
stakeholder
consensus on the
Concept of
Operations.
(L)
5. Develops
acceptance
criteria. (P)
2. Develops
new methods, tools,
and techniques for
concept
definition.
(C)
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
1. Attends
meetings
and documents the
system
development environment
and technology constraints. (P)
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Establishes
the system
development environment
and identifies technology constraints. (P)
1. Establishes
the system
development environment
and identifies technology constraints. (L)
1. Establishes
organizational
policies and
procedures
for system
requirements engineering. (P)
2. Modifies
existing
and develops new
methods,
tools, and
techniques
for system
requirements engineering. (C)
2. Procures
and operates traceability tools
to establish
and maintain traceability. (P)
1. Provides
training on
traceability
procedures
and tools.
(A)
2. Identifies
systemlevel traceability
requirements and
tools. (P)
2. Identifies
systemlevel traceability
requirements and
tools. (L)
3. Follows
instructions to
document
the system
requirement
specification. (F)
2. Assists
in development of
the system
requirements specification. (A)
3. Participates
in development of
the system
requirements specification. (P)
3. Leads
development of
the system
requirements specification. (L)
82SWECOM
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Technician
4. Documents
plans, procedures,
and scenarios for
system
integration,
verification,
validation,
and deployment. (A)
System Design
Skill
Sets
System Requirements
Engineering
Levels
Entry
Level
Practitioner
Technical
Leader
3. Assists
in development
of plans,
procedures, and
scenarios
for system
integration,
verification,
validation,
and deployment. (A)
4. Participates
in development
of plans,
procedures, and
scenarios
for system
integration,
verification,
validation,
and deployment. (P)
4. Leads
the development
of plans,
procedures, and
scenarios
for system
integration,
verification,
validation,
and deployment. (L)
1. Assists in
developing
alternative
solution
concepts
and conducting
trade studies to identify major
system
components. (A)
1. Participates
in developing alternative solution
concepts
and conducting
trade studies to identify major
system
components. (P)
1. Leads
development of
alternative
solution
concepts
to identify
major system components. (L)
2. Participates
in identifying system
2. Participates
compoin making
nents as
buy/build
well as the
decisions
interfaces
for software
and relacompotionships
nents. (P)
among
components. (P)
2. Leads/
participates
in making
buy/build
decisions
for major
system
components. (L/P)
Senior
Software
Engineer
1. Develops
policies and
procedures
for system
design in an
organization. (C)
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
System Design
3. Assists
in selecting
components
to be procured. (A)
1. Identifies
sources of
software
components
to be procured. (A)
Practitioner
3. Recommends buy/
build decisions for
software
components. (P)
Technical
Leader
Senior
Software
Engineer
3. Approves
buy/build
decisions
for software. (L)
4. Procures
selected
software
components. (L)
5. Participates
in system
design
meetings to
avoid isolated stovepipe units
of software.
(P)
4. Leads/
participates
in system
design
meetings to
avoid isolated stovepipe units
of software.
(P/L)
2. Develops
new
approaches
to system
design to
avoid isolated stovepipe units
of software.
(C)
84SWECOM
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Practitioner
1. Assists in
identifying
allocable
and nonallocable
requirements. (A)
1. Identifies
allocable
and nonallocable
requirements. (P)
2. Attends
meetings
2. Documents
and records
allocation
minutes
of requireto allocate
ments
require(functional,
ments
behavioral,
(functional,
structural,
behavioral,
quality) and
structural,
interfaces
quality) and
to software
interfaces
components
to software
and other
components
major sysand other
tem compomajor sysnents. (F)
tem components. (P/L)
2. Participates
in meetings
to allocate
requirements
(functional,
behavioral,
structural,
quality) and
interfaces
to software
components
and other
major system components. (P)
1. Documents
allocable
and nonallocable
requirements. (F)
Requirements Allocation
Entry
Level
Technical
Leader
1. Leads/
participates
in meetings
to identify
and allocate
requirements
(functional,
behavioral,
structural,
quality) and
interfaces
to software
components
and other
major system components. (L/P)
Senior
Software
Engineer
1. Develops
new methods, tools,
and techniques for
requirements allocation and
flowdown.
(C)
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Component
Engineering
Requirements Allocation
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
3. Participates
in meetings
to refine
requirements allocated to
software.
(P)
3. Leads
meetings
to refine
requirements allocated to
software.
(L)
3. Operates
traceability
tools and
generates
traceability
reports. (F)
3. Develops
bi-directional
traceability
between
system
requirements and
software
requirements. (P)
4. Leads
traceability from
system
requirements to
software
requirements. (L)
4. Assists
in clarifying
and refining requirements
allocated to
software.
(A)
4. Participates
in clarifying
and refining requirements
allocated to
software.
(P)
5. Leads in
clarifying
and refining requirements
allocated to
software.
(L)
1. Assists
in determining and
documenting needed
kinds of
software
components. (A)
1. Leads in
determin1. Determines ing needed
needed
kinds of
software
software
compocomponents
nents. (P)
for a project
or program.
(L)
Senior
Software
Engineer
1. Modifies
existing and
develops
new methods, tools,
and techniques for
component
engineering. (C)
86SWECOM
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
System Integration
and Verification
Component Engineering
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
1. Documents
buy/build
decisions
for software
components. (A)
2. Assists in
determining
buy/build
decisions
for software
components. (L)
2. Determines
buy/build
decisions
for software
components. (P)
2. Leads the
buy/build
decisionmaking
process for
software
components. (L)
2. Maintains
baselines
of software
components. (A)
3. Develops
and integrates software components.
(A/P)
3. Develops
and integrates software components.
(P/L)
3. Establishes
procedures
to develop
and integrate software components. (L)
Senior
Software
Engineer
4. Provides
liaison from
software
engineering
to systems
engineering and
other major
component
engineering. (L)
1. Assists in
integration
of software
with other
system
components. (A)
1. Assists
in system
verification
activities.
(A)
1. Participates
in integration of software with
other system components. (P)
1. Leads
integration
of software
with other
system
components. (L)
1. Modifies
existing
and provides new
methods of
integrating
software
with other
system
components. (C)
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Technician
Skill
Sets
Entry
Level
2. Assists
in providing liaison
to software
component
engineers.
(A)
Practitioner
Technical
Leader
2. Participates
in system
verification
activities.
(P)
2. Leads/
participates
in system
verification
activities.
(L/P)
3. Provides
liaison to
software
component
engineers.
(P)
3. Leads/
participates
in providing liaison
to software
component
engineers.
(L)
1. Operates
tools for
performing simulated and
live system
tests. (F)
1. Assists
in performing simulated and
live system
tests. (A)
1. Participates
in simulated and
live system
tests. (P)
1. Leads/
participates
in simulated and
live system
tests. (P/L)
2. Operates
tools for
performing system
acceptance
testing. (F)
2. Assists
in system
acceptance
testing. (A)
2. Participates
in system
acceptance
testing. (P)
2. Establishes
system
acceptance
criteria. (L)
Senior
Software
Engineer
1. Modifies
existing
and develops new
methods,
tools, and
techniques
for system
validation
and deployment. (C)
88SWECOM
Table B17
Software Systems Engineering Skill Sets and Activities
by Competency Level
Levels
Technician
Entry
Level
Practitioner
3. Serves
as liaison
to software
component
engineers
during system validation and
deployment.
(P)
Skill
Sets
Technical
Leader
3. Leads/
participates
in system
acceptance
testing.
(P/L)
4. Leads
in providing liaison
to software
component
engineers
during system validation and
deployment.
(P/L)
1. Assists in
planning for
system sustainment.
(A)
1. Participates
in identifying stakeholders and
developing
a transition
plan and
requirements for
operational
support. (P)
1. Establishes
criteria and
procedures
for system
sustainment.
2. Prepares
for operational support. (P)
2. Leads/
participates
in planning
for system
sustainment. (L)
Senior
Software
Engineer
90SWECOM
construction skill area) or as other skill areas (for example, configuration management).
Software Quality Control (SQC) includes all competencies associated with ensuring a quality product. In other words, an organization ensures that the software product will meet its quality goals
through SQC. Software quality control may also be referred to as
Software Validation and Verification; there are, however, some
minor differences between the two terms.
Software Verification and Validation consists of fundamental
competencies that a software engineer should possess in order to
produce a high-quality product. Some of these competencies are
needed throughout the software development life cycle (for example, reviews) and some are more specific to a specific phase of the
project (for example, testing, which is covered in the software testing skill area).
Within software industries, some of the above terminologies have
been used interchangeably. The purpose of this competency model
is not to debate the proper use of these terminologies but to identify some of the major skills and corresponding activities that are
required of software engineers in order to deliver high-quality products. Table A presents the skill areas and corresponding activities
performed within those skill areas. Table B presents competency
levels for the activities. It is important to note that, in this document, some of the activities associated with a specific skill may
belong to either SQA or SQC.
REFERENCES
[IEEE 730-2002] IEEE Std. 730-2002, IEEE Standard for Software
Quality Assurance Plans, IEEE, 2002.
[IEEE 829-2008] IEEE Std. 829-2008, IEEE Standard for Software
and System Test Documentation, IEEE, 2008.
[IEEE 1012-2012] IEEE Std. 1012-2012, IEEE Standard for System
and Software Verification and Validation, IEEE, 2012.
92SWECOM
Table A18
Software Quality
Skill Sets
Software Quality
Management (SQM)
Reviews (review,
walkthrough, inspection)
Audits (concentrate on
both product and process,
but are done by an
independent, internal or
external, organization)
Statistical Control
The following notations are used in Table B18: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B18
Software Quality Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
1. Follows
defined
quality processes and
standards.
(P)
2. Assists
with establishing the
appropriate
infrastructure (such
as defect
tracking
tools) to
support
organizations quality goals.
(A)
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Follows
quality
standards
for the
product and
supporting
processes.
(P)
1. Establishes
a culture
of produc1. Establishes
ing quality
quality
products
standards
and of folfor the
lowing
product.
quality
(P/L)
processes
across projects. (P/L)
1. Creates
new and
improved
quality
practices
for delivering highquality
products.
(C)
2. Follows
defined
quality
models. (P)
2. Selects
appropriate SQM
processes
that support
the identified quality
goals for
the project.
(P)
2. Creates
new processes. (C)
3. Uses
appropriate
tools and
resources
to develop
quality
products.
(P)
3. Identifies
quality
characteristics and
attributes
for the
product and
establishes
priorities.
(P)
3. Examines
and
2. Establishes
assesses
quality
the effecstandards,
tiveness of
models, and
a specific
processes
SQM profor projects.
cess across
(P/L)
an organization. (C)
94SWECOM
Table B18
Software Quality Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
3. Analyzes
the advantages and
disadvantages of
alternative SQM
processes
and tools
that can be
used for
achieving
organizational goals
for product
quality. (P)
Senior
Software
Engineer
4. Assists
with identification of
the different quality
characteristics and
attributes
for the
product.
(A/P)
4. Identifies
the quality
models that
need to be
followed for
the project.
(P)
5. Ensures
that product-quality
goals are
achieved.
(P)
5. Creates/
modifies
5. Develops
SQM prothe Quality
4. Develops
cesses to
Assurance
the QA plan
achieve
(QA) plan
for the projhigher-qualfor the proj- ect. (L)
ity products
ect. (P)
and processes. (C)
6. Collects
quality metrics and
prepares
quality
documentation to be
shared with
appropriate
stakeholders. (P)
6. Identifies
appropriate stakeholders
who have
authority and
accountability
regarding
the quality process
and quality
product. (P)
5. Identifies
organizational measures that
support
achieving
productquality
goals
(across
projects).
(P/L)
4. Makes
recommendations
related to
organization-wide
SQM processes. (C)
6. Proposes/
Designs
new tools
to improve
the achievement of
productquality
goals. (L)
Table B18
Software Quality Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
7. Develops
and updates
an appropriate
traceability
matrix for
the product.
(P)
7. Identifies
appropriate
measures
that support
achieving
productquality
goals. (P/L)
8. Identifies
appropriate
tools and
resources
that need
to be used
in order
to achieve
productquality
goals. (P/L)
9. Verifies
that quality
goals and
requirements are
met. (P/L)
10. Identifies
continuous
improvement
opportunities across
the project.
(L)
Technical
Leader
6. Identifies
continuous
improvement
opportunities across
projects. (L)
Senior
Software
Engineer
96SWECOM
Table B18
Software Quality Skill Sets and Activities by Competency Level
Levels
Reviews
Skill
Sets
Technician
1. Assists
with necessary logistics associated with
reviews and
inspections,
including
but not limited to:
a. meeting
logistics,
(P)
b. performing all
appropriate data
warehousing, (P)
and
c. generating
appropriate reports
associated
with the
meeting.
(P)
Technical
Leader
Senior
Software
Engineer
Entry
Level
Practitioner
1. Participates
as an active
member of
the review
team in
order to
achieve the
goals of the
activity. (P)
1. Identifies
appropriate review
processes
needed to
achieve
productquality
goals. (P/L)
1. Identifies
appropriate
organization-wide
review
processes.
(P/L)
1. Creates
new or
customizes
review processes to
meet organizational
needs. (C)
2. Uses
appropriate
checklists
called for by
the review
organizer.
(P)
2. Identifies
appropriate
personnel
that need to
participate
in review
activities.
(P)
2. Conducts
across-theorganization
data analysis for the
purpose of
root cause
analysis. (P)
2. Develops
new root
cause analysis techniques. (C)
Table B18
Software Quality Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
Reviews
3. Based
on the
review data,
identifies
3. Collects
3. Identifies appropriate
appropriappropriate corrective
ate and
measures
actions to
accurate
that need to be impledata that is
be collected mented
called for by
as part of
across projthe review
the product ects for the
organizer.
review. (P)
purpose
(P)
of achieving product
improvement. (P/L)
4. Produces
appropriate documentation
called for by
the quality
management plan.
(P)
4. Identifies
appropriate artifacts
under the
review and
corresponding checklist. (P)
5. Follows
appropriate
practices
defined by
the quality
management plan.
(P)
5. Analyzes
collected
product
data for the
purpose of
root cause
analysis and
assessment
of review
effectiveness. (P)
Senior
Software
Engineer
98SWECOM
Table B18
Software Quality Skill Sets and Activities by Competency Level
Levels
Reviews
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
6. Identifies
appropriate corrective actions
in order
to achieve
product
improvement. (P)
Audits
7. Leads
the review
team. (P)
1. Establishes
audit infrastructure by
identifying:
a. appropriate
organization to
conduct
1. Establishes
1. Plans,
the audit,
the environ1. Participates orga(P)
ment necin audits.
nizes, and
b. products
essary to
(P)
conducts
and proconduct the
audits. (P/L) cesses that
audit. (A/P)
need to be
included in
audits, (P)
and
c. stakeholders
receiving
the audit
results. (P)
1. Creates
new audit
processes.
(C)
Table B18
Software Quality Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Statistical Control
Audits
2. Classifies
issues identified by
audits. (P)
Technical
Leader
Senior
Software
Engineer
2. Analyzes
audit
results for
continuous
improvement. (P)
3. Establishes
and implements
appropriate
resolution
strategies
for identified issues.
(P)
1. Establishes
the environment
necessary
for data collection and
warehousing. (P)
1. Collects
a set of
quality data
under statistical control. (P)
1. Analyzes
the collected data.
(L)
1. Identifies
a set of
quality data
under statistical control. (P)
2. Deploys
a set of
control processes. (P)
2. Identifies
a set of
subjective
and objective variances for
the data.
(P)
3. Evaluates
the effectiveness of
the control
processes.
(A)
3. Analyzes
the collected data.
(L)
1. Creates
or modifies
organizational statistical quality control
gates. (C)
100SWECOM
Table B18
Software Quality Skill Sets and Activities by Competency Level
Levels
Statistical Control
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
4. Establishes
and implements a set
of control
processes.
(P)
5. Evaluates
the effectiveness of
the control
processes.
(P)
Senior
Software
Engineer
REFERENCES
[Allen 2008] Julia Allen et al., Software Security Engineering: A
Guide for Project Managers, Addison-Wesley Professional, 2008.
[BITS 2012] BITS Software Assurance Framework, Financial
Services Roundtable, 2012; www.bits.org/publications/security/
BITSSoftwareAssurance0112.pdf.
[Hilburn 2013] Thomas Hilburn et al., Software Assurance
Competency Model, Technical Note CMU/SEI-2013-TN-004,
Software Engineering Institute, Mar. 2013; http://resources.sei.
cmu.edu/library/asset-view.cfm?assetID=47953.
[Merkow 2010] M. Merkow and L. Raghavan, Secure and Resilient
Software Development, CRC Press, 2010.
101
102SWECOM
Requirements
Design
Construction
Process
Quality
The following notations are used in Table B19: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B19
Software Security Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Requirements
1. Identifies
security
risks (such
as misuse
cases). (P)
2. Creates
requirements that
capture
security
issues. (P)
3. Performs
initial threat
modeling.
(P)
Technical
Leader
Senior
Software
Engineer
1. Creates
or proposes
new methods for
recognizing security
vulnerabilities. (C)
104SWECOM
Table B19
Software Security Skill Sets and Activities by Competency Level
Levels
Design
Skill
Sets
Technician
Entry
Level
Practitioner
1. Follows
recommended
design
principles
to create
secure systems (such
as providing multiple
layers of
protection, using
access control mechanisms, and
encrypting
sensitive
data). (F)
1. Models
threats and
associated
risks of new
and modified systems. (P)
2. Uses
appropriate, secure
design patterns. (F)
2. Identifies
the attack
surface
(in other
words, the
areas of
potential
weakness
exploited by
attackers)
of new and
modified
systems.
(P)
Technical
Leader
Senior
Software
Engineer
Table B19
Software Security Skill Sets and Activities by Competency Level
Levels
Construction
Skill
Sets
Technician
Entry
Level
Practitioner
1. Follows
recommended
secure coding principles to
avoid security vulnerabilities
(such as
buffer overflow, input
validation).
(F)
1. Selects
or establishes project coding
standards
to avoid
security
vulnerabilities. (P)
2. Follows
recommended
coding
standards
to avoid
security
vulnerabilities
(such as
validating
input and
preventing
exception
handling
mechanisms from
revealing
too much
information
about applications and
systems).
(F)
2. Reviews
and
approves
coding
standards
to avoid
security
vulnerabilities. (P)
Technical
Leader
1. Establishes
organization coding
standards
to avoid
security
vulnerabilities. (L)
Senior
Software
Engineer
1. Creates
new coding
standards
to avoid
security
vulnerabilities. (C)
106SWECOM
Table B19
Software Security Skill Sets and Activities by Competency Level
Levels
Quality
Process
Skill
Sets
Technician
Entry
Level
1. Assists
in the collection of
metrics for
security
assessment
processes.
(A)
1. Follows
project
standards
in the collection of
security
assessment
metrics. (F)
1. Assists in
the installation of
static analysis tools.
(A)
1. Performs
code
reviews
to identify
security
vulnerabilities. (P)
2. Uses
static analysis methods
to identify
security
vulnerabilities. (P)
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Establishes
organization
standards
for security
assessment
processes.
(L)
1. Selects
appropriate
static analysis tools
to identify
security
vulnerabilities. (P/L)
1. Creates
new static
analysis
methods or
tools. (C)
REFERENCES
[Bozzano 2010] Marco Bozzano and Adolfo Villafiorita, Design and
Safety Assessment of Critical Systems, CRC Press, 2010.
[Hilburn 2013] Thomas Hilburn et al., Software Assurance
Competency Model, Technical Note CMU/SEI-2013-TN-004,
Software Engineering Institute, Mar. 2013; http://resources.sei.
cmu.edu/library/asset-view.cfm?assetID=47953.
107
108SWECOM
Table A20
Software Safety
Skill Sets
Requirements
Design
Construction
Testing
Process
Quality
110SWECOM
The following notations are used in Table B20: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B20
Software Safety Skill Sets and Activities by Competency Level
Levels
Requirements
Skill
Sets
Technician
Entry
Level
Practitioner
1. Assists
in collecting data for
the creation
of a hazard
list. (F/A)
1. Using
tools, con1. Creates
ducts forand verifies mal system
preliminary hazard
hazard lists. analyses
(A/P)
verifying
safety models. (P)
2. Assists
in the identification of
top-level
mishaps
and their
causes.
(F/A)
2. Uses
software
tools to
build safety
models
(FTA, ETA,
FMEA).
(A/P)
3. Assists
with the
installation
of safety
and reliability tools.
(F/A)
3. Assists
in safety
requirements identification.
(F/A)
2. Identifies
safety
requirements. (P)
Technical
Leader
1. Verifies
completeness and
correctness
of safety
requirements. (/L)
2. Interacts
with system and
software
engineers
to assure
that safety
requirements are
complete
and realizable. (L)
Senior
Software
Engineer
Table B20
Software Safety Skill Sets and Activities by Competency Level
Levels
Technician
Entry
Level
1. Assists in
identifying
mitigation
techniques
for defined
safety
requirements.
(F/A)
Design
Practitioner
Technical
Leader
1. Implements
design solutions to
assure that
the hazards
are mitigated and
the safety
requirements are
met. (A)
1. Proposes
and selects
design solutions to
assure the
hazards are
mitigated.
(P)
1. Verifies
completeness and
correctness of the
design,
including
safety hazards and
safety qualities. (P/L)
2. Follows
the recommended
design principles. (P)
2. Supervises
the design
team.
Analyzes
risk and
verifies
design from
a safety
perspective.
(P/L)
2. Leads the
project in
deciding the
proposed
architectural solutions to
mitigate
hazards. (L)
2. Leads the
project in
deciding the
proposed
architectural solutions to
mitigate
hazards. (L)
Senior
Software
Engineer
1. Creates
or proposes new
methods
for safety
assessment, mitigation, and
verification.
(C)
3. Assures
that safety
requirements are
included in
the overall system
requirements. (P)
Requirements
Skill
Sets
3. Evaluates
risk related
to design
for safety.
(P/L)
1. Creates
or proposes new
design solutions, leading to the
increased
safety
of new
designs. (C)
112SWECOM
Table B20
Software Safety Skill Sets and Activities by Competency Level
Levels
Technician
Testing
Entry
Level
1. Implements
large code
components
and their
interfaces,
considering
safe coding
practices to
avoid safety
violations.
(A/P)
Construction
Skill
Sets
1. Assists in
the installation of tools
and infrastructure
for safety
requirements testing. (F/A)
1. Performs
testing
using tools
with a focus
on safety
requirements.
(A/P)
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Implements
the architecture and
design to
ensure code
safety. (P
/ L)
1. Establishes
organization
standards
to ensure
code safety.
(L/C)
2. Manages
the interfacing of
large code
components
with special
attention
to potential safety
issues. (P/L)
2. Oversees
and verifies that
the safety
aspects of
the design
are implemented in
the produced code.
(L)
1. Selects
appropriate testing
techniques
to assure
the safety
of the application. (P)
1. Contributes
expertise
to establish
1. Establishes
new orgaorganization
nization
standards
guidelines
for safety
related to
validatesting the
tion and
safety of
verification.
software(L/C)
intensive
applications. (C)
1. Creates
new standards to
ensure code
safety. (C)
Table B20
Software Safety Skill Sets and Activities by Competency Level
Levels
Technician
Entry
Level
Process
Testing
Skill
Sets
1. Assists in
the collection of data
to establish
the project
safety case.
(F/A)
1. Identifies
artifacts
required to
establish
the safety
case, following
industry
standards.
(A/P)
Practitioner
Technical
Leader
2. Applies
applicable
industry
standards
to assure
that the
product
meets
industry
safety criteria. (P)
2. Manages
the project, being
responsible
for overall
safety and
meeting
industry
guidelines.
(L)
1. Contributes
to and
verifies the
completeness of the
safety case,
following
selected
industry
criteria. (P)
1. Leads the
safety team
responsible
for the project safety
case. (L)
2. Establishes
organization
standards
for safety
assessment
processes
and selection of
safety criteria. (L/C)
Senior
Software
Engineer
1. Contributes
expertise
to establish better
means of
assessing
safety. (C)
114SWECOM
Table B20
Software Safety Skill Sets and Activities by Competency Level
Levels
Quality
Skill
Sets
Technician
1. Assists
in the collection of
safety QM
data. (A)
Entry
Level
1. Collects
safety QM
data and
reports the
project status. (A/P)
Practitioner
1. Supervises
collection
of QM data
and their
compatibility with the
safety case.
(P/L)
Technical
Leader
1. Manages
the overall project
quality with
a focus
on safety
aspects. (L)
Senior
Software
Engineer
1. Contributes
expertise
to improve
means of
measuring
and establishing the
safety quality of the
product and
process. (C)
configuration identification
configuration control
configuration status accounting
configuration auditing
release management and delivery
Skills for each of these elements and the associated activities are
indicated in Table A21. The following acronyms are used in Table
A21 and throughout this skill area:
SCM: Software Configuration Management
SCMP: Software Configuration Management Plan
SCI: Software Configuration Item
SDLC: Software Development Life Cycle
115
116SWECOM
REFERENCES
[Aiello 2010] Bob Aiello and Leslie Sach, Configuration Management
Best Practices: Practical Methods that Work in the Real World,
Addison-Wesley Professional, 2010.
[Babich 1986] Wayne A. Babich, Software Configuration
Management: Coordination for Team Productivity, AddisonWesley, 1986.
[IEEE 828-2012] IEEE Std. 828-2012, IEEE Standard for
Configuration Management in Systems and Software
Engineering, IEEE, 2012.
[SWEBOK 2014] P. Bourque and R.E. Fairley, eds., Guide to the
Software Engineering Body of Knowledge, Version 3.0, IEEE
Computer Society, 2014; www.swebok.org.
Table A21
Software Configuration
Management Skill Sets
Plan SCM
Conduct SCM
Follow SCMP.
Use SCM tools.
Control path branching and path integration
during development.
Generate, classify, and manage problem
reports.
Maintain and update SCM baselines.
Prepare SCM reports.
Conduct SCM audits.
Manage Software
Releases
118SWECOM
The following notations are used in Table B21: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B21
Software Configuration Management Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Plan SCM
1. Operates
SCM tools.
(F)
2. Operates
and maintains the
SCM library
under technical leader
supervision.
(F)
Entry
Level
Senior
Software
Engineer
Practitioner
Technical
Leader
1. Participates
in determining
impact of
constraints
on SCM
imposed
by policies,
contract,
and SDLC.
(P)
1. Determines
constraints
and impacts
of constraints
on SCM
imposed
by policies,
contracts,
and SDLC.
(L)
1. Develops
new ways of
organizing
to perform
SCM. (C)
2. Assists in
developing,
updating,
and maintaining the
SCMP. (A)
2. Develops
and maintains the
SCMP. (L)
2. Adopts
an existing way of
organizing
for SCM and
tailors a
template for
the SCMP.
(L)
2. Develops
new templates and
ways of
planning for
SCM. (C)
3. Provides
measurement data
for SCM
measures.
(P)
3. Assists
in specifying the SCM
measures
to be used.
(A)
3. Specifies
the SCM
measures
to be used.
(L)
3. Develops
new measures and
measurements for
SCM. (C)
1. Assists in
determining
impact of
constraints
on SCM
imposed
by policies,
contract,
and SDLC.
(A)
Table B21
Software Configuration Management Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Plan SCM
4. Assists in
identifying
software
configuration items
(SCIs). (A)
5. Assists
in selecting
and procuring SCM
tools. (A)
6. Sets up
an SCM
library for
a project
under technical leader
supervision.
(L)
Practitioner
4. Participates
in identifying
SCIs and
the relationships
among
them. (P)
5. Procures
SCM tools.
(P)
Technical
Leader
Senior
Software
Engineer
4. Identifies
SCIs and
the relationships
among
them. (L)
4. Develops
procedures for
identifying
SCIs and
the relationships
among
them. (C)
5. Specifies
SCM tools.
(L)
5. Specifies
new SCM
tools and
ways of
combining existing
SCM tools.
(C)
6. Specifies
the template for,
and supervises setting up, the
SCM library.
(L)
6. Specifies
new ways of
organizing
SCM libraries. (C)
120SWECOM
Table B21
Software Configuration Management Skill Sets and Activities
by Competency Level
Levels
Conduct SCM
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Operates
tools to
generate
SCM status
and audit
reports. (F)
1. Tailors
and adopts
mechanisms for
1. Evaluates
1. Implements
requesting,
and reports
and docuevaluatto CCB the
ments
ing, and
impacts of
approved
approving
proposed
changes to
software
changes to
SCIs.
changes,
SCIs. (P)
including
deviations
and waivers. (P)
1. Revises
existing and
develops
new mechanisms for
requesting,
evaluating, and
approving
software
changes,
including
deviations
and waivers. (C)
2. Generates,
classifies,
and manages problem reports.
(F/A)
2. Generates,
classifies,
and manages problem reports.
(P)
2. Generates,
classifies,
and manages problem reports.
(L)
2. Appoints
members
and convenes the
CCB. (L)
2. Develops
new mechanisms for
SCM status
accounting.
(C)
3. Assists
in using
adopted
mechanisms for
requesting,
evaluating, and
approving
software
changes,
including
deviations
and waivers. (A)
3. Uses
established
procedures
for populating and
maintaining
the SCM
library. (P)
3. Leads
CCB in
making yes/
no decisions
on change
requests.
(L)
3. Develops
new processes and
procedures
for generating
SCM audit
reports. (C)
Table B21
Software Configuration Management Skill Sets and Activities
by Competency Level
Levels
Conduct SCM
Skill
Sets
Technician
Entry
Level
4. Assists
in establishing and
maintaining
the mechanisms for
recording
and reporting SCM
information and
generating
SCM audit
reports. (A)
Provides
SCM audit
reports
as scheduled and
requested.
(P)
Practitioner
Technical
Leader
4. Uses
established
mechanisms to
record and
report SCM
information.
(P)
4. Ensures
that
approved
changes
are made
and documented. (L)
5. Develops
and tailors
tools for
generating
SCM audit
reports. (P)
5. Maintains
mechanisms for
recording
and reporting SCM
information.
(L)
6. Establishes
and maintains mechanisms for
generating
SCM audit
reports. (L)
Senior
Software
Engineer
122SWECOM
Table B21
Software Configuration Management Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
1. Operates
tools
to build
software
releases.
(A/P)
1. Participates
in developing software
release
plans. (A/P)
1. Participates
in developing software
release
plans. (P)
2. Uses
software
release
tools to
produce
software
releases.
(A)
2. Participates
in the building and
verifying
of software
releases.
(P)
2. Leads the
building and
verifying
of software
releases.
(L)
2. Modifies
existing
and creates
new tools
for building
software
releases.
(C)
3. Participates
in the
3. Implements
building of
release
software
plans. (P)
releases.
(P)
Technical
Leader
1. Develops
software
release
plans. (L)
Senior
Software
Engineer
1. Modifies
existing and
develops
new formats and
procedures
for implementing
software
release
plans. (C)
2. Modifies
existing
and creates
new tools
for building
software
releases.
(C)
124SWECOM
REFERENCES
[Abran 2010] Alain Abran, Software Metrics and Software
Metrology, Wiley-IEEE Computer Society, 2010.
[IEEE 12207-2008] IEEE Std. 12207-2008, IEEE Standard for
Systems and Software EngineeringSoftware Life Cycle
Processes, IEEE, 2008.
[IEEE 15528-2008] IEEE Std. 15528-2008, IEEE Standard for
Systems and Software EngineeringSystem Life Cycle
Processes, IEEE, 2008.
[IEEE 15939-2008] IEEE Std. 15939-2008, Standard Adoption
of ISO/IEC 15939:2007 System and Software Engineering
Measurement Process, IEEE, 2008.
[SWEBOK 2014] P. Bourque and R.E. Fairley, eds., Guide to the
Software Engineering Body of Knowledge, Version 3.0, IEEE
Computer Society, 2014; www.swebok.org.
Table A22
Software Measurement
Skill Sets
Plan Measurement Process
Perform Measurement
Process
The following notations are used in Table B22: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B22
Software Measurement Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Defines
attributes of
1. Participates
the process
in identifyand product
ing meameasures
sures for an
to be used
organizathroughout
tion. (P)
an organization. (C)
1. Participates
in identifying measurement
needs for a
project or
program.
(P)
2. Leads
identification of measurement
needs for a
project or
program.
(L)
2. Develops
new ways
to identify measurement
needs. (C)
2. Assists
in selecting
measures
and measurement
scales. (A)
3. Selects
measures
and measurement
scales. (L)
3. Defines
new measures and
measurement
scales. (C)
3. Establishes
data collection and
analysis
methods.
(P)
4. Reviews
and
approves
data collection and
analysis
methods.
(L)
4. Develops
new data
collection
and analysis
methods.
(C)
126SWECOM
Table B22
Software Measurement Skill Sets and Activities by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Practitioner
Technical
Leader
Senior
Software
Engineer
4. Participates
in setting
target values and
thresholds.
(P)
5. Participates
in establishing report
formats and
reporting
procedures.
(P)
6. Establishes
report formats and
reporting
procedures.
(L)
5. Develops
new report
formats and
reporting
procedures.
(C)
6. Identifies
measurement tools
and manual
procedures.
(P)
7. Reviews
and
approves
measurement tools
and manual
procedures.
(L)
6. Develops
new measurement
tools and
manual
procedures.
(C)
1. Assists in
planning for
data storage. (A)
7. Plans for
data storage. (P)
8. Reviews
and
approves
plan for
data storage. (L)
2. Assists
in selecting
data collection and
analysis
methods.
(A)
8. Selects
data collection and
analysis
methods.
(P)
9. Approves
data collection and
analysis
methods.
(L)
Table B22
Software Measurement Skill Sets and Activities by Competency Level
Levels
Plan
Measurement
Process
Skill
Sets
Technician
1. Procures
and installs
measurement tools.
(L)
1. Uses
measurement tools
to collect
data. (P)
2. Maintains
valid data
in a repository. (P)
Entry
Level
3. Assists in
identifying
measurement tools
and manual
procedures.
(A)
Practitioner
Technical
Leader
9. Selects
measurement tools
and manual
procedures.
(A)
10. Approves
measurement tools
and manual
procedures.
(A)
1. Uses
manual procedures to
collect data.
(P)
2. Assists in
validating
collected
data. (A)
3. Identifies
and rec3. Generates ommends
and distrib- improveutes reports ments to
(P)
the measurement
process. (A)
1. Validates
collected
data. (P)
Senior
Software
Engineer
1. Leads
and coordinates the
measurement process. (L)
1. Periodically
reviews
methods,
tools, and
techniques
used to
perform the
measurement process. (C)
2. Approves
tactical
improvements to
the measurement
process. (L)
2. Modifies
existing and
develops
new review
methods,
tools, and
techniques
used to
perform the
measurement process. (C)
REFERENCES
[Buxton 2007] Bill Buxton, Sketching User Experiences: Getting
the Design Right and the Right Design, Morgan Kaufmann
Publishers, 2007.
[ISO 9241-210:2010] ISO 9241-210:2010, Ergonomics of HumanSystem Interaction, ISO, 2010.
129
130SWECOM
Table A23
Human-Computer
Interaction Skill Sets
Requirements
Visual Design
Accessibility
132SWECOM
The following notations are used in Table B23: Follow (F), Assist
(A), Perform (P), Lead (L), Create (C).
Table B23
Human-Computer Interaction Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Requirements
1. Identifies
stakeholders to provide HCI
requirements. (P)
1. Assists
in identifying target
users. (A)
Practitioner
Technical
Leader
Senior
Software
Engineer
1. Reviews
identification of
stakeholders to provide HCI
requirements. (P)
1. Modifies
existing and
1. Coordinates
creates new
work activimethods
ties for
and tools
stakeholder
for stakeidentificaholder idention. (L)
tification.
(C)
2. Assists
in selecting
a process
model for
HCI interface development. (P)
2. Determines
which process model
approach
will be used
by the HCI
team to
develop the
interface.
(L)
3. Recommends HCI
tools for
project use.
(A)
3. Selects
HCI tools
for project
use. (P)
4. Reviews
and refines
2. Identifies target user
target users identificaand their
tion and
attributes.
describes
(P)
their relevant attributes. (P)
2. Modifies
existing and
creates new
methods
and tools
for target
user identification. (C)
Table B23
Human-Computer Interaction Skill Sets and Activities
by Competency Level
Levels
Requirements
Skill
Sets
Technician
2. Follows
directions
to create
simple prototypes for
use in eliciting user
interface
requirements. (F)
Entry
Level
Practitioner
3. Assists
in identifying user
interface
requirements. (A)
5. Leads
identification of user
interface
requirements. (L)
4. Designs
and creates
prototypes
for use
in eliciting user
interface
requirements. (P)
6. Reviews
and refines
prototypes,
tests for
elicitation, and
refines user
interface
requirements. (P)
Technical
Leader
4. Leads
review and
refinement
of user
interface
requirements. (L)
3. Modifies
existing and
creates new
methods
and tools
for prototyping. (C)
7. Uses
prototypes
to elicit and
refine user
interface
requirements. (P)
8. Identifies
technical
interface
requirements
(between
the user
interface
and system
components). (P)
Senior
Software
Engineer
5. Identifies
constraints
on user
interface
implementation. (L)
134SWECOM
Table B23
Human-Computer Interaction Skill Sets and Activities
by Competency Level
Levels
Technician
Entry
Level
Practitioner
9. Designs
the details
of the
technical
interface
requirements
(between
the user
interface
and system
components). (P)
Requirements
Skill
Sets
Technical
Leader
6. Defines
the technical interface
requirements
(between
the user
interface
and system
components). (L)
Senior
Software
Engineer
4. Modifies
existing and
creates new
methods
and tools
for specifying technical interface
requirements. (C)
7. Selects
applicable
standards.
(L)
1. Follows
instruction
to assist
in documenting
use cases,
scenarios,
interaction
dialogs,
and storyboards. (F)
1. Documents
use cases,
scenarios,
interaction
dialogs,
and storyboards. (P)
1. Reviews
and refines
use cases,
scenarios,
interaction
dialogs,
and storyboards. (L)
1. Leads
and coordinates
interactionstyle design
activities.
(L)
2. Assists in
identifying
user input
errors. (A)
2. Assists
in identifying user
input errors
and error
handling
approaches.
(A)
2. Identifies
user input
errors
and error
handling
approaches.
(P)
2. Selects
and refines
user error
handling
approaches.
(P)
1. Modifies
existing and
creates new
methods
and tools
for interaction-style
design. (C)
Table B23
Human-Computer Interaction Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
3. Assists in
identifying
interaction
modes. (A)
4. Establishes
two-way
traceability
between
3. Documents
use cases,
two-way
scenarios,
traceability
interaction
to requiredialogs, and
ments and
storyboards
to test
and specases and
cific user
test scenarinterface
ios. (P)
requirements and
acceptance
criteria. (P)
Practitioner
Technical
Leader
3. Applies
metaphors
and conceptual models
to define
interaction
style. (P)
3. Selects
metaphors
and conceptual models.
(L)
4. Identifies
and refines
interaction
modes. (P)
4. Works
with the
system
design team
to establish
component
interfaces
between
the user
interface
and system
components. (L)
Senior
Software
Engineer
2. Modifies
existing and
creates new
methods
and tools
for interaction-style
design. (C)
136SWECOM
Table B23
Human-Computer Interaction Skill Sets and Activities
by Competency Level
Levels
Interaction
Style Design
Skill
Sets
Technician
4. Follows
directions
to develop
or refine
interface
prototypes.
(F)
Entry
Level
5. Develops
interface
prototypes.
(P)
Practitioner
Technical
Leader
5. Reviews
and refines
interface
prototypes.
(P)
1. Revises/
1. Assists
1. Designs
approves
in designing
page/screen final page/
page/screen
layout. (P)
screen laylayout. (A)
outs. (L)
Visual Design
Senior
Software
Engineer
2. Assists
in selecting
from existing icons
and designing new
icons. (A)
2. Selects
from existing icons
and designs
new icons.
(P)
2. Revises/
approves
icons and
identifies
new icons
as needed.
(L)
3. Assists
in selecting color
theme, font
styles, and
font sizes.
(A)
3. Selects
color
theme, font
styles, and
font sizes.
(P)
3. Revises/
approves
color
theme, font
styles, and
font sizes.
(L)
4. Assists
in menu
design. (A)
4. Designs
menus. (P)
4. Reviews
and refines
menu
designs. (L)
1. Modifies
existing and
creates new
methods
and tools
for visual
design. (C)
Table B23
Human-Computer Interaction Skill Sets and Activities
by Competency Level
Levels
Visual Design
Skill
Sets
Technician
Entry
Level
Practitioner
5. Reviews
selections
for color
theme, font
styles, and
font sizes,
and checks
selection
against
applicable
standards.
(P)
1. Follows
instructions
to assist in
the creation
of mockups and
sketches.
(F)
Technical
Leader
Senior
Software
Engineer
5. Approves
visual
design components
and reviews
design with
stakeholders and/
or target
users. (L)
5. Creates
mockups and
sketches.
(P)
6. Reviews
and revises
mockups and
sketches
with stakeholders. (P)
1. Analyzes
design with
a usability
checklist.
(P)
1. Selects
and tailors
one or more
usability
checklists.
(P)
1. Leads
and coordinates
usability
testing and
evaluation
activities.
(L)
2. Assists in
identifying
representative test
subjects
from the
target user
group. (A)
2. Identifies
representative test
subjects
from the
target user
group. (F)
2. Approves
selection of
one or more
usability
checklists.
(L)
1. Modifies
existing and
creates new
methods
and tools
for usability
testing. (C)
138SWECOM
Table B23
Human-Computer Interaction Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
3. Assists
in obtaining
test subjects. (A)
Practitioner
3. Reviews
results of
checklist
analysis
and recommends
design
changes.
(P/F)
4. Obtains
test subjects. (P)
3. Approves
selection of
test subjects. (L)
4. Reviews,
refines, and
finalizes
usability
tests. (L)
1. Writes
user tests
that evaluate user
behavior.
(A)
4. Assists
in designing usability
tests. (A)
5. Designs
usability
tests. (P)
2. Assists
in conducting usability
tests and
collecting
data. (A)
5. Conducts
usability
tests and
collects
data. (P)
6. Supervises
usability
testing.
(P/L)
6. Analyzes
results of
usability
testing. (P)
7. Makes
recommendations
based on
analysis
of usability testing
results. (P)
3. Follows
instructions
to assist
in analyzing results
of usability
testing. (F)
Technical
Leader
5. Reviews
and
approves
recommendations
and results
of usability
testing. (L)
Senior
Software
Engineer
Table B23
Human-Computer Interaction Skill Sets and Activities
by Competency Level
Levels
Skill
Sets
Technician
Entry
Level
Accessibility
1. Assists in
identifying
accessibility
needs for
user interfaces. (A)
Practitioner
Technical
Leader
1. Identifies
accessibility
needs for
user interfaces. (P)
1. Leads
and coordinates
accessibility
activities.
(L)
2. Develops
acceptance
criteria and
tests for
accessibility aspects
of the user
interface.
(P)
2. Determines
which
accessibility needs
must be
addressed
in the user
interface.
(L)
2. Assists in
identifying
the needs
for international
accessibility
(languages,
cultural
considerations, and
so forth).
(A)
3. Identifies
the needs
for international
accessibility
(languages,
cultural
considerations, and
so forth).
(P)
3. Determines
the extent
to which the
user interface must
accommodate needs
for international
accessibility. (L)
3. Uses the
selected
tools and
techniques
for implementing
required
accessibility. (A)
4. Selects
tools and
techniques
for providing required
accessibility. (P)
Senior
Software
Engineer
1. Develops
new tools
and techniques for
providing
accessible
interface
elements.
(C)
24. APPENDIX A:
CONTRIBUTORS
SWECOM Team Members
Interviewees
141
142SWECOM
Public Reviewers
Sultan M. Al Khatib, UK
Jim Albers, USA
Asghar Ali, Canada
Simich Arturo, Peru
Augusto E. Bernuy, Peru
Ulloa Rubio Bertha, Peru
Miklos Biro, Austria
Rafael Capilla, Spain
Lynn Robert Carter, USA
JiMna Cho, South Korea
Kyeong-Ho Choi, South Korea
Julio Cordoba Retana, Costa Rica
Mauricio N. Coria, Argentina
Varuna Eswer, India
Ernesto Exposito, France
Hemer Figueroa, Colombia
Garth Glynn, UK
Michael A. Jablonski, USA
SeungWon Jung, South Korea
Hwang Jung Sik, South Korea
Umut Kahramankaptan, Belgium
Pankaj Kamthan, Canada
Perry Kapadia, USA
Rameshchandra Bhaskar Ketharaju, India
Martin Kropp, Switzerland
Timothy C. Lethbridge, Canada
John Macasio, Philippines
Ana M. Moreno, Spain
Sam Mori, South Korea
Kiron Rao, India
Stephen C. Schwarm, USA
Jo SeongChan, South Korea
Clifford Shaffer, USA
Peraphon Sophatsathit, Thailand
Chedu Suh, South Korea
Chris Taylor, USA
144SWECOM
25. APPENDIX B:
SWECOM INTENDED AUDIENCES
146SWECOM
26. APPENDIX C:
SWECOM USE CASES
148SWECOM
4. Human resource personnel conduct an initial screening of applicants, using the job description and competency model as a
guide.
5. The manager and/or human resource personnel use SWECOM to choose the best candidate who meets the needs of the
organization.
Post Conditions:
1. The manager has identified skill areas that apply to the team
members present and future roles and responsibilities.
2. The result of the gap analysis will be used as part of the team
members evaluation and preparation of an improvement plan.
150SWECOM
Post Conditions:
1. The skill area (or areas) and the level (or levels) of competency
to be achieved have been identified.
2. The curriculum designer has access to and familiarity with SWECOM and the Staffing or Individual Gap Analysis worksheet.
Trigger: An academic or industrial organization has identified
the need to improve the identified competencies of students or
employees and has commissioned a curriculum designer to prepare a competency-based curriculum for one or more skills or skill
areas at a stated level (or levels) of competency to be achieved.
Normal Flow:
27. APPENDIX D:
GAP ANALYSIS WORKSHEETS
Staffing Gap Analysis Worksheet
Date Completed: [xxx]
Organizational Unit: [xxx]
Completed by: [names and titles of those completing the worksheet]
Competencies (from Tables A and B of the SWECOM Skill Areas)
Skills
Have
Need
Gap
154SWECOM
Have
Need
Gap
Have
Need
Gap
156SWECOM
Have
Need
Gap
Have
Need
Gap
158SWECOM
Have
Need
Gap
Software Support
Software Maintenance
Software Process and Life Cycle Skills
Software Development Life Cycle Implementation
Process Definition and Tailoring
Process Implementation and Management
Process Assessment and Improvement
Software Systems Engineering Skills
System Development Life Cycle Modeling
Concept Definition
System Requirements Engineering
System Design
Requirements Allocation
Component Engineering
System Integration and Verification
System Validation and Deployment
System Sustainment Planning
Software Quality Skills
Software Quality Management (SQM)
Reviews
Audits
Statistical Control
Software Security Skills
Requirements
Design
Note: Have indicates that competencies for all activities for a skill at the
indicated level have been demonstrated (e.g., L2); Gap indicates the difference
Note: Need includes the activity numbers for which competency must be
demonstrated to advance to the next level for that skill (e.g., L3: A2, A5, or
perhaps L3: all)
Have
Need
Gap
Construction
Testing
Process
Quality
Software Safety Skills
Requirements
Design
Construction
Testing
Process
Quality
Software Configuration Management Skills
Plan SCM
Conduct SCM
Manage Software Releases
Software Measurement Skills
Plan Measurement Process
Perform Measurement Process
Human-Computer Interaction Skills
Requirements
Interaction Style Design
Visual Design
Usability Testing and Evaluation
Accessibility
Note: Have indicates that competencies for all activities for a skill at the
indicated level have been demonstrated (e.g., L2); Gap indicates the difference
Note: Need includes the activity numbers for which competency must be
demonstrated to advance to the next level for that skill (e.g., L3: A2, A5, or
perhaps L3: all)