Carl J. DanieleOffice of the Chief Engineer Training Coordinator
Mark Goldman
GSFC Senior Human Resources Development Specialist
Presentation IncludesDefinition and Development of a DACUM
Presentation Developed by Mark Goldman of NASA Goddard Space Flight Center
Use of DACUM Process to Develop a Curriculum for Software Engineering at NASAPresentation Developed by Carl Daniele of Carl
J. Daniele Consulting
10/10 2
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
Mark Goldman, Senior Human Resources Development Specialist
NASA/GSFC, Code 114
301-286-8852
DACUM
Presented on February 22, 2012
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
4
•An Acronym for Developing A CurriculUM•A process for:
•Job analysis•Occupational analysis
•Used by:•Vocational/Technical Educators•Business & Industry Trainers•Government & Military Agencies
•Used because it’s:•Effective
•Quick•Low cost
What Is DACUM?
February 22, 2012
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
DACUM Philosophy
• Expert workers can describe and define their job more accurately than anyone else
• An effective way to define a job is to precisely describe the tasks that expert workers perform
• All tasks, in order to be performed correctly, demand certain knowledge, skills, tools, and worker behaviors
10/105
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
Major DACUM Workshop Outcomes
• Precisely stated job tasks/duties• General knowledge and skills• Worker behaviors, traits, attitudes for success• Tools and equipment• Future trends/concerns• Terms/Acronyms (optional)
10/106
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
Who Serves on a DACUM Panel?
• Individuals who are:• ‘Top Performers’ at their jobs• Willing to share their knowledge and experience with
others• Able to participate for two consecutive days with a
qualified DACUM facilitator
10/107
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
What’s the ‘Flow’ of the DACUM Session?
• Orient the panel• Review/modify occupation definition• Brainstorm areas of responsibility and identify ones to be
used• Identify specific tasks performed within each duty area• List: Knowledge, skills and abilities; tools and equipment;
and traits and attitudes• Review/refine duty and task statements• Sequence task and duty statements• Other options as desired ( e.g. identifying future tasks
and/or advanced or entry level tasks, etc.)• Identify panelists to participate in Phase 2 (curriculum plan
development)10/108
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
What is Phase 2 All About?
• New panel formed:• Representatives of first panel• ‘Higher ups’ from the occupation’s organization(s)• Course developers• Trainers
• One day• Develop Curriculum Plan
10/109
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
How Does Phase 2 Work?• Between Phase 1 and Phase 2, all data points
placed on cards• At session, facilitator presents each data point, in
order, to the panel• Panel determines where the item is best learned:
• Prerequisite• Classroom
• Academic course• Short training class
• On-the-job learning (OJL)• Structured/formal• Unstructured/informal
• E-Learning10/1010
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
The Phase 2 Session is Complete – Now What?
• Existing courses (including e-learning) are included in the curriculum, either as is or modified based on the session results
• Courses/modules identified not currently available are developed or procured
• On-the-job learning (OJL) experiences are identified or developed
• “Road Map” for professional development is created (or modified if one already exists)
10/1011
Use of DACUM Process to Develop a Curriculum for Software Engineering at NASACarl J. Daniele ConsultingCarl J DanieleTraining Coordinator for the Office of the Chief EngineerContract through NASA Glenn Research Center8631 Ashwood DriveStrongsville, Ohio 44149-1122Phone: 440-238-8059Cell: 440-476-7353
10/10 12
NASA Software Engineering DACUM HistoryDate Activity
November 14 – November 15 , 2005 in Greenbelt, MD
Phase 1 Panel Met
November 30 – December 1, 2005 in Greenbelt, MD
Phase 2 Panel Met
April 27 – 28, 2006 in Greenbelt, MD
Phase 3 Panel Met (baselined DACUM 5.6)
August 18, 2011 In Greenbelt , MD
Review/Update Session Goddard Space Flight Center (Updated course information for 15 of 16 Courses)
November 17, 2011 in Huntsville, AL
Updated course information for last Course
December 16, 2011
Baseline Document 5.6 was updated per the DACUM updates and sent to NASA Centers to review.
December 16, 2011
NASA Ames Research Center Proposed Addition of new DACUM Course in Human Computer Interface
10/10 13
10/10 14
10/10 15
Early Career Courses Mid-Career Courses Later Career Course
0. Courses Outside
OCE
1. Found of Aerospace
at NASA (FOU)
2. SWE 101
3. Reqs. Dev.&Mgmt (incl.
Inspections)
4. SW Implem
.5. SW
Testing
6. SWE 201
(incl. Maint.)
7. SW Config. Mgmt.
8. SW Desig
n9. SW
for Embed
ded Syste
ms
10. SWE
Assurance and
Safety
11. SWE 301
12. SW &
Process Metrics
13. SW Estimations
14. SW
Process Improvement
15. SW Acquis
ition
16. Formal
Methods for SW
H1 Provide feedback to team members
K13 Knowledge of spacecraft and aeronautics systems and architecture
E7 Knowledge of monitoring contractor performance
Ax1 Define and validate Scope
C1 Write code consistent with design specification
D1 Generate test documents (plans/procedures consistent with requirements)
Ax Requirements management (duplicate card, refresher from course #3)
F11 Perform configuration management
B1 Select architecture
Z40 Knowledge of Architectural Design of Real-Time Software (duplicate card)
F14 Perform SW hazard analyses
Ax Requirements Management (duplicate card, refresher from course #3)
G12 Analyze metrics
G3 Estimate SW schedule
G12 Analyze metrics (duplicate card)
E2 Develop SW part of SOW for RFP and task orders
L1 Formal modeling to capture the logic and discrete mathematic elements of a system/subsystem
H2 Develop teamwork
K16 Knowledge of aerospace environment
F7 Participate in peer reviews/inspections
Ax2 Develop SW requirements (including derived SW requirements)
C2 Conduct unit tests
D3 Develop test tools and simulations
B6 Perform trade analyses
Z18 Data Management
B2 Identify SW components
Z41 Knowledge of Hardware and SW Co-design Techniques
F15 Perform SW safety analyses
B7 Develop and execute acquisition strategy
Z69 Identify measurement goals & objectives at all levels - projects through Agency
Gx Software size-estimation attributes (e.g. complexity)
I3 Maintain organizational assets (e.g. templates, metrics)
E3 Develop SW acquisition/contractor requirements for RFP
L2 Formal specifications
CURRENT DACUM (Blue – word change; Yellow – no change; White – added requirement; green - delete )
10/10 16
Ax1 Define and validate ScopeAx2 Develop SW requirements (including derived SW requirements)Ax3 Manage requirements and maintain traceability([3] Note: Traceability is maintained throughout the SW lifecycle and a repeated theme throughout the curriculum.)
A1 Elicit requirementsA2 Develop software requirements from operations conceptA3 Analyze requirements and associated risksA4 Validate Requirements (ex.. prototype, simulation, inspection, etc.)A5 Identify verification methodsA6 Document interface requirementsA7 Document SW requirements (e.g. SRS [SW Requirement Specifications], system requirements, etc.)F13 Perform traceability (bidirectional)K17 Knowledge of how to write requirements
Z08 Participate in trade studiesZ09 Knowledge of SW Requirements toolsZ103 Knowledge of NPR 7150.2, NASA and Center Standards, and CMMI direction and guidance related to software requirements and managementZ111 How to monitor and control software requirement creep/volatility (moved from SW Estimations class)
Z123 Use of state machines and discrete logic to model requirementsQ14 Knowledge of value of IV&V during requirements developmentQ15 Knowledge of use case developmentQ16 Knowledge of Requirements PhasingQ17 Knowledge of Requirements Volatility Z115 Knowledge of value of SW related peer reviews/ inspections Z116 Peer reviews/ inspections process (e.g., planning, checklist, readiness & completion criteria, tracking actions, recording basic measurements, correction of problems, and follow up)Z117 Knowledge of peer reviews/ inspections roles and responsibilitiesZ118 Peer reviews/ inspections tailoring guidelinesZ124 Knowledge of NPR 7150.2, NASA Preferred Standards, and CMMI direction and guidance related to peer review/inspection direction and guidance related to peer review/inspection
3. Requirements Development and Management including Inspections
10/10 17
NASA Software Engineering Excellence Training (SWEET)
Software Engineering Body of Knowledge (SWEBOK) ACM - IEEE Software Engineering 2004
3. Software Requirements Development and Management Software Requirements The Software Engineering DisciplineA1. Elicit Requirements Requirements Elicitation Eliciting requirements
A2. Develop operations concept Requirements Process Requirements fundamentals
A3. Analyze Requirements Requirements AnalysisRequirements specification & documentation
A4. Validate Requirements Requirements Validation Requirements validation
A5. Identify verification methods Requirements Specification
A6. Document Interface Requirements Software Requirements Fundamentals
A7. Document Software Requirements Practical Considerations Ax Define and validate Scope
Ax Develop SW requirements (including derived SW requirements) Ax Manage requirements and maintain traceability([3] Note: Traceability is maintained throughout the SW lifecycle and a repeated theme throughout the curriculum.) F13 Perform traceability (bidirectional) K17 How to write requirements Z08 Participate in trade studies Z09 SW Requirements tools Software Requirements Tools Z103 NPR 7150.2, NASA Core Standards, NASA Preferred Standards, and CMMI direction and guidance related to SW requirements and management Z123 Use of state machines and discrete logic to model requirements
Comparison of SWEET to SWEBOK and IEEE
Curriculum CheckRESULTS – In both cases the NASA SWE
DACUM required more specific information for each of the topics and reflected the particular ways that NASA does business (e.g. NASA Standard 7150.2a)
10/10 18
10/10 19
NASA SWE DACUM Course STATUS
1. Foundations of Aerospace at NASA
Current APPEL Course
2. SWE 101 NASA Size Defense Acquisition University Course – Software Acquisition Management 101
3. Requirements Development and Management
NASA Centers Recommend Courses
4. Software Implementation NASA Centers Recommend Courses
5. Software Testing NASA Centers Recommend Courses
6. SWE 201 NASA will Develop
7. Software Configuration Management
NASA Centers Recommend Courses
8. Software Design NASA Centers Recommend Courses
10/10 20
NASA SWE DACUM Course STATUS
9. Software For Embedded Systems
NASA Centers Recommend Courses
10. Software Engineering Assurance and Safety
NASA Centers Recommend Courses
11. SWE 301 Course Exists – Developed by NASA
12. Software and Process metrics
NASA Centers Recommend Courses
13. Software Estimations NASA Centers Recommend Courses
14. Software Process Improvement
NASA Centers Recommend Courses
15. Software Acquisition NASA Centers Recommend Courses
16. Formal Methods for Software
NASA Centers Recommend Courses
NASA Centers Recommend Courses Courses Requirements from the DACUM will
be divided between the NASA CentersCenters Review existing Courses
(Commercial, APPEL, National Safety Center(NSC) Safety Technical Excellence Program (STEP), SATERN, etc.)
Centers Provide Recommendations to OCEOCE makes a “Make-Buy” Decision
10/10 21
Proposed Schedule for Course DevelopmentProgram will be called Software Engineering
Technical Excellence Training (SWEET)SWE 101 available by 9/30/2012Foundations of Aerospace at NASA – available
APPEL Course All other Courses – Training is currently provided
by the OCE for many of the DACUM Topics. Much of the information for the DACUM Courses is currently available commercially or in-house. The SWEET curriculum is proposed to be available by 9/30/2013
10/10 22
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
BACKUP – Mark Goldman
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
What Does the DACUM Session Look Like?
• 5-12 panelists (sometimes more) at tables facing a large blank wall in a classroom, conference room, etc.
• Facilitator at the front• Recorder to one side of the facilitator• Guests/observers in the back
10/1024
Goddard Space Flight Center
Office of Human Capital ManagementGoddard Space Flight Center
Office of Human Capital Management
How is the Data Captured?
• The recorder captures each data point on :• A 8 ½ x 11 sheet of paper (for duty areas)• A 5x8 index card (for tasks)
• The papers/cards are placed on the wall by the facilitator using a temporary adhesive
• The facilitator captures lists of knowledges/skills/abilities; tools & equipment; and traits/attitudes on flip charts near the end of the process
10/1025
10/10 27
10/10 28
The NASA Software Engineer develops, acquires,
manages, maintains and researches software systems
using disciplined, quantifiable, systematic approaches.
10/10 29
A1 A2 A3 A4 A5 A6 A7
A. Develop Software
Requirements
Elicit requirements
Develop operations
concept
Analyze requirements
Validate requirements
(e.g. prototype, simulation)
Identify verification methods
Document interface
requirements
Document software
requirements (e.g. SRS [Software
Requirement Specs], system
requirements)
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12
B. Design Software
Select architecture
Identify software
components
Analyze data flow
Analyze control flow
Choose algorithm
Perform trade analysis
Decide make/buy
Identify software
development environment
Certify software
development architecture
Design external
interfacesVerify design
Generate design
documentation
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11
C. Implement Software
Write codeConduct unit
testsDebug code Analyze code Inspect code
Integrate software
components
Integrate software and
hardware
Perform margin
analyses
Verify code meets coding
standards
Generate user
documentation
Generate 'as-built'
document
C12 C13
Update design
documents
Generate version
description document
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12
D. Verify Software
Generate test documents (plans/proc)
Identify test environment
Develop test tools and
simulations
Certify test environment
Test softwareGenerate problem reports
Analyze test results
Verify code by analysis
Perform 'proof of
correctness' (formal
methods)
Document verification
results
Support hardware/soft
ware integration
testing
Deploy software
NASA SWE TASKS
10/10 30
E1 E2 E3 E4 E5 E6 E7 E8 E9 E10
EE. Acquire Software
(ADV .)
Interact with Procuremen
t ( a lot!)
Develop SOW for
RFP
Develop software system
requirements for RFP
Develop DRD (Data
Requirements
Documents)
Develop evaluation
criteria
Evaluate proposals
Monitor contractor
performance
Participate in technical
audits
Evaluate deliverables
Accept product formally
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11
FF. Manage
Crosscutting Processes
Maintain software
Collect metric data
Research new
technology
Manage change
requests
Participate in software
change boards
Manage problem reports
Participate in peer reviews
Conduct peer reviews
Participate in formal reviews
Conduct formal
reviews (ADV)
Perform CM
F12 F13 F14 F15 F16 F17 F18
Prototype solutions
Perform traceability
(bi-directional)
Perform software hazard
analysis
Perform software safety
analysis
Perform software FMEA
(Failure Modes Effects
Analysis)
Perform software reliability analysis
Perform IT security
assessments
G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12
G
G. Manage Software
Development (ADV.)
Classify criticality of
software
Estimate cost
Estimate schedule
Generate planning
documents
Plan build content
Comply with HQ
policies/requirements
Manage software
engineering processes
Manage software
resources (technical,
human, budget)
Manage software
schedules
Monitor software
development progress
Manage risks
Analyze metrics
H1 H2 H3 H4 H5 H6 H7
HH. Manage Software
Team
Provide feedback to
team members
Develop teamwork
Monitor team
members
Develop team
competencies
Maintain team's
technical credibility
Provide input for
employee evaluations
Resolve interpersona
l conflicts
NASA SWE TASKS
10/10 31
I1I2 I3 I4
I. Support Organization
Write proposals in response to
RFPs
Set up labs
Maintain organization
al assets (e.g.
templates, metrics)
Improve software
engineering processes
J1J2 J3 J4 J5 J6 J7 J8 J9 J10 J11
J. Continue Professional Development
Participate in professional organization
s
Attend classes
Attend conferences
Present at conferences (ADV)
Read journals
Mentor people
(ADV)Be mentored
Obtain professional certifications
Obtained advanced degrees
Rotate assignments
Teach
J12 J13 J14 J15
Attend colloquia
Review lessons learned
Network (meet and talk with
colleagues)
Play
NASA SWE TASKS
10/10 32
10/10 33
Early Career Courses Mid-Career Courses Later Career Course
0. Courses Outside OCE
1. Intro Aerospa
ce at NASA
2. SWE 101
3. Reqs. Dev.&Mgmt (incl.
Inspections)
4. SW Implem
.5. SW
Testing
6. SWE 201
(incl. Maint.)
7. SW Config. Mgmt.
8. SW Design
9. SW for
Embedded
Systems
10. SW
Safety &
Reliability
11. SWE 301
12. SW &
Process Metri
cs
13. SW Estimati
ons
14. SW Proces
s Improvement
15. SW Acquis
ition
16. Formal Methods for
SW
H1 Provide feedback to team members
K13 spacecraft and aeronautics systems and architecture
E7 monitoring contractor performance
A1 Elicit requirements
C1 Write code consistent with design specification
D1 Generate test documents (plans/procedures consistent with requirements)
Ax Requirements management (duplicate card, refresher from course #3)
F11 Perform configuration management
B1 Select architecture
Z41 Hardware and SW Co-design Techniques
F14 Perform SW hazard analyses
Ax Requirements Management (duplicate card, refresher from course #3)
G12 Analyze metrics
G3 Estimate SW schedule
G12 Analyze metrics (duplicate card)
E2 Develop SW part of SOW for RFP and task orders
L1 Formal modeling to capture the logic and discrete mathematic elements of a system/subsystem
H2 Develop teamwork
K16 aerospace environment
F7 Participate in peer reviews/inspections
A2 Develop operations concept
C2 Conduct unit tests
D3 Develop test tools and simulations
B6 Perform trade analyses
Z18 Data Management
B2 Identify SW components
Z42 Board Support Package Design
F15 Perform SW safety analyses
B7 Decide make/buy
Z69 Identify measurement goals & objectives
Gx SW size estimations
I3 Maintain organizational assets (e.g. templates, metrics)
E3 Develop SW acquisition/contractor requirements for RFP
L2 Formal specifications
Baseline 5.6 NASA Software Engineering DACUMCourse coverage (Green fully; Orange partially; Red little)
10/10 34
NASA Software Engineering Excellence Training (SWEET)
Software Engineering Body of Knowledge (SWEBOK) ACM - IEEE Software Engineering 2004
8. Software Design Software Design Software Design
B1 Select Architecture Software Design Fundamentals Architectural design
B2. Identify software components Key Issues In Software Design Detailed design
B3. Analyze data flow Software Structure and Architecture Design support tools and evaluation
B4. Analyze Control FlowSoftware Design Quality Analysis and Evaluation Human computer interface design
B5. Choose Algorithm Software Design Notations Design strategies
B6. Perform Trade Studies Software Design Strategies and Methods Design conceptsB7. Decide make/buy Software Design Tools
B8. Identify Software Development Environment
B9. Certify Software Development Architecture
B10. Design external interfaces
B11. Verify design
B12. Generate Design Documentation Bx Intermediate design technologies (similar card) F13 Perform traceability (bidirectional)
Z34 Architectural SW design Z35 Detailed SW design Z36 SW system architectures Z37 design patterns Z38 SW design development tools
Z39 Object-Oriented Design Z40 Architectural Design of Real-Time SW
Z123 Use of state machines and discrete logic to model designs
Use the Course/Competency Matrix (horizontal)
2. Software Acquisition
2A. Acquisition Processes, Contract Management and contractor performance ● ● ●
3. Software Engineering Life Cycle Processes
3A. Operational Concept ● ● 3B. Software Product Requirements Development ● ● 3C. State Machines and Discrete Logic for Modeling ● ● ● 3D. Software Design ● ● ● ● 3E. Software Implementation: Coding, Debugging, Unit Testing, Integration, Optimizing, and Documentation ● ● ● 3F. Embedded Systems Software Implementation ● ● 3G. Software Engineering Tools and Equipment ● ● ● ● ● ● ● ● 3H. Peer Reviews/inspections ● ● ● ● 3I. Software Testing Techniques and Environments ● ● ● ● ● 3J. Software Deployment, Transition to Operations, and Maintenance ● 3K. Software Engineering Processes and Process Improvement ● ● ● ● ● ● 3L. Software Assurance ● ● ● 3M. Software Safety and Reliability ● 3N. Verification and Validation ● ● ● ● ● ●
4. Software Engineering Management
4A. Software Engineering Planning and Management ● ● ● ●
4B. Software Metrics ● ● ● ● ● ● ●
4C. Risk Management ● ● ●
4D. Software Estimation ● ●
4E. Requirements Management ● ● ●
mmm
Software
Engineering
Competencies
Software Acquisiti
on
Software Engineering Management
Acquisition Processe
s, Contra
ct Management and
Contractor P
erform
ance
Software Engineering Planning and management
Software Estimation
Risk Management
Software Metrics
Requirements M
anagement
Softwar
e Safe
ty an
d Reliab
ility
Softw
are
Assu
ranc
e
Info
rmati
on T
echn
olog
y Se
curit
y
Ope
ratio
nal
Conc
ept
Soft
war
e Pr
oduc
t Re
quire
men
ts D
evel
opm
ent
Stat
e m
achi
nes a
nd D
iscre
te Lo
gic
for M
odel
ing
Softw
are
Desig
n
Embedded Systems
Software Implementation
Software Testing Techniques and Environments
Verification and Validation
Software Engineering Processes
and Process Improvement
Formal M
odeling and Validation
Configuration and Change Control
Software Assurance
Processes
Softw
are
Requ
irem
ents
Deve
lopm
ent
Proc
ess
Peer Reviews/Inspections
Software Product Im
provement Processes
Softw
are E
ngine
ering
Too
ls an
d
Equipm
ent
Software Design Proce
ss
Software Implementation: Coding,
Debugging, Unit Testing, Integration,
Optimizing, and Documentation
Software Deployment, Transition to
Operations, and Maintenance
Post Software Delivery Process
Software Implementation Process
Software Testing Process
Software Classification
Competencies
10/10 40
K13 Knowledge of spacecraft and aeronautics systems and architecture
K16 Knowledge of aerospace environment
K20a Knowledge of NASA policies and procedures
Q2 Knowledge of Impact of software on Modern Aerospace Systems
1. Foundations of Aerospace at NASA Course
Current NASA SWE DACUM Course Requirements
Color Code
Blue Updated wording
Yellow Original Wording
White Added
10/10 41
E7 Knowledge of monitoring contractor performance
F7 Participate in peer reviews/inspections
K1 Knowledge of software development life cycles/methodologies
K2 Knowledge of software engineering processes
K3a Knowledge of prototyping techniques
Kx1 Knowledge of software requirements development
K4 Knowledge of design technologies/tools (reinforced/amplified in SW Design course)
K5 Knowledge of user interfaces
K6 Knowledge of software testing techniques
K18 Knowledge of flight and ground systems (originally referred to as ‘embedded systems’)
Kx2 Knowledge of NASA Advanced Technology, Basic and Applied Research, and Institutional systems
K19 Knowledge of risk management (As applicable to software systems. Checklist of software risks, reading knowledge of NASA risk matrix, understanding of NASA continuous risk management process diagram, etc.) matrix, understanding of NASA continuous risk management process diagram, etc.)
K20b Knowledge of NASA engineering and software policies and procedures including the classification of software) ([2] a common thread throughout the curriculum is coverage of the related NPR 7150.2 requirements including 2210)
K21 Knowledge of Quality Management (QM) systems (originally referred to as ‘Knowledge of applicable ISO standards) (reinforced/amplified in SW 201, SW 301 and Software Process Improvement courses)
K23 DELETE SW process improvement (e.g. CMMI) (originally referred to as ‘CMMI’) (reinforced/amplified in SW Process Improvement course)
Ka industry SW standards and usage of SW standards at NASA Centers, including standards program description
Z01 Knowledge of acquisition processes
Z02 Knowledge of software assurance and IV&V
Z03 Knowledge of verification and validation Z04 Knowledge of formal review processZ05 Knowledge of configuration managementZ06 Knowledge of SW metrics (include uses and benefits of)Q1 Knowledge of Software Engineering Standards (replace K23)
Q3 Knowledge of Software System Architecture (intro)
Q4 Intro to Model Based DevelopmentQ5 Intro to User-Centered Design
Q6 Knowledge of Software implementation techniques/methodologies
Q7 Knowledge of estimation techniques
Q8 Knowledge of basic cyber-security
2. Software Engineering 101 (SWE 101) Course
10/10 42
Ax1 Define and validate ScopeAx2 Develop SW requirements (including derived SW requirements)Ax3 Manage requirements and maintain traceability([3] Note: Traceability is maintained throughout the SW lifecycle and a repeated theme throughout the curriculum.)
A1 Elicit requirementsA2 Develop software requirements from operations conceptA3 Analyze requirements and associated risksA4 Validate Requirements (ex.. prototype, simulation, inspection, etc.)A5 Identify verification methodsA6 Document interface requirementsA7 Document SW requirements (e.g. SRS [SW Requirement Specifications], system requirements, etc.)F13 Perform traceability (bidirectional)K17 Knowledge of how to write requirements
Z08 Participate in trade studiesZ09 Knowledge of SW Requirements toolsZ103 Knowledge of NPR 7150.2, NASA and Center Standards, and CMMI direction and guidance related to software requirements and managementZ111 How to monitor and control software requirement creep/volatility (moved from SW Estimations class)
Z123 Use of state machines and discrete logic to model requirementsQ14 Knowledge of value of IV&V during requirements developmentQ15 Knowledge of use case developmentQ16 Knowledge of Requirements PhasingQ17 Knowledge of Requirements Volatility Z115 Knowledge of value of SW related peer reviews/ inspections Z116 Peer reviews/ inspections process (e.g., planning, checklist, readiness & completion criteria, tracking actions, recording basic measurements, correction of problems, and follow up)Z117 Knowledge of peer reviews/ inspections roles and responsibilitiesZ118 Peer reviews/ inspections tailoring guidelinesZ124 Knowledge of NPR 7150.2, NASA Preferred Standards, and CMMI direction and guidance related to peer review/inspection direction and guidance related to peer review/inspection
3. Requirements Development and Management including Inspections Course
10/10 43
C1 Write code consistent with design specification
C2 Conduct unit tests
C3 Debug code
C4 Analyze code
C5 Inspect code
C6 Integrate SW components
C7 Integrate SW on to hardware platform
C8 Perform margin analysis
C9 Verify code meets coding and documentation standards
C10 Generate user documentation
C11 Generate ‘as built’ documentation
C12 Update design documents
C13 Generate version description document
Ca Configuration control of implementation products
Cb DELETE use of style guides in code development
Cc Create Executables
Cd Perform Design Traceability (bidirectional)
Ce Knowledge of Auto coding techniques and tools
Cf Knowledge of Code and Data Partitioning techniques
F18 Implement SW consistent with Cyber security design
Z10 Integrate with reused/modified SW, legacy SW, COTS, and open source
D8 DELETE Verify code by analysis
Z11 Knowledge of SW code development tools
Z104 Maintain/update data dictionary
Z105 Develop unit test plans and procedures
Z121 Knowledge of NPR 7150.2, NASA and Center Standards, and CMMI direction and guidance related to software implementation
Z204 Conduct performance testing
Z205 Optimize code
Q23 Include domain/environmental considerations
Q25 Knowledge of Debugging Strategies
Q45 Knowledge of Static Analysis Tools
4. Software Implementation Course
10/10 44
D1 Generate test documents (plans/procedures consistent with requirements)
D3 Develop test tools and simulations
D5 Test SW
D6 Generate problem reports
D7 Analyze test results
D8 Verify code by analysis (moved from Course 4)
D11 Support hardware/SW integration testing
Da Knowledge of SW’s role in system testing
Db Knowledge of hardware-in-the-loop testing of SW systems
Dc Perform End-to-end SW testing
F13 Perform traceability (bidirectional)
Kx Perform testing COTS, MOTS software and open source
Z12 Document test results
Z13 Knowledge of SW testing tools
Z120 Knowledge of NPR 7150.2, NASA Standards, and CMMI direction and guidance related to software design
Z202 Off nominal testing
Z203 Certification testing ([5] A theme throughout the set of courses includes the varying levels of rigor and techniques needed to develop and maintain SW up through human rated space systems.)
Q24 Knowledge of types of software testing
Q26 Validate software
Q27 Knowledge of test completion criteria
Q28 Accredit software testing tools
Q29 Develop test environment
Q30 Perform test reviews
5. Software Testing Course
10/10 45
Ax Requirements management (duplicate card, refresher from course #3)
B6 Perform trade analyses
D9 Knowledge of formal specifications, model checking, and formal verification (formal methods)
E8 Participate in technical audits
E9 Evaluate contract deliverables
F2 Collect and evaluate metric data
F5 Participate in SW change boards
F8 Conduct peer reviews/inspections
F9 Participate in formal reviews
F18 Perform cyber security design (duplicate card
G1 Identification of SW classifications (duplicate card)
G4 Generate planning documents (including life cycle planning )
G5 Plan Build Content
I1 In support of organization write proposals
K1 Knowledge of software development lifecycles (similar card; e.g. waterfall, incremental, spiral, agile)
K3 Knowledge of prototyping
K7 Knowledge of software planning process (cost estimate, WBS, earned value management, etc.)
K18a More in-depth knowledge of flight and ground systems (similar card)
K23 Additional knowledge of software process improvement (e.g. CMMI) (similar card, progression of knowledge from SW Engineering 101)
K25a Knowledge of computational modeling and simulations techniques
K32a Knowledge of estimation techniques (cost, scope, schedule …)
Z14 Monitoring contract performance
Z15 Integration of SW life cycles with system life cycles
Z16 Overview of SW development tools and equipment (including where NASA does trial studies and research on tools)
Z105 Knowledge of NPR 7150.2, NASA and Center Standards, NASA Preferred and Center Standards, and CMMI direction and guidance related to SE 201 topics
Z106 Generate teaming agreements including contractor teams ([6] Teaming/intergroup coordination should be a common thread throughout the curriculum.)
Z125 Plan for SW assurance activities
Z200 Knowledge of Intermediate NASA Advanced Technology, Basic and Applied Research, and Institutional systems
Q9 Testing techniques and tools review/refresher
Q10 CM Review/Refresher
Q11 Knowledge of Stakeholder Management
6. Software Engineering 201(SWE 201) Including Maintenance Course
10/10 46
D12 DELETE Deploy SW
F1 Maintain SW
F4 Manage change requests
F6 Manage problem reports
Z17 Knowledge of Reverse engineering tools and techniques
Z107 Deployment of SW and transition to operations (replaces D12)
DELETE G5 Plan build content
Z108 Knowledge of SW maintenance plans and procedures
Z109 Knowledge of NPR 7150.2, and Center Standards, and CMMI direction and guidance related to software maintenance
6. Software Engineering 201 (SWE 201) Including Maintenance
continued
10/10 47
F11 Perform configuration management
Z18 Data Management
Z19 CMMI Process Area for Configuration Management
Z20 NPR 7150.2, NASA and Center Preferred Standards direction and guidance related to SW configuration management
Z21 How to prepare a SW CM plan — activities, schedules, responsibilities, resources, tools
Z22 Selecting work products to control
Z23 Selecting appropriate levels of control — informal, semi-formal, formal
Z24 SCM requirements and activities performed by SW engineering and other groups
Z25 Defining check-in/check-out procedures
Z26 Developing organizational SW CM policies and procedures
Z27 Establishing and maintaining SW baselines
Z28 Establishing and maintaining a configuration management library system
Z29 Establishing and running a SW Configuration Control Board (SCCB)
Z30 Tracking and controlling changes to work product
Z31 Conducting SW CM audits - the unique CMMI requirements for PPQA and SW CM
Z32 Production, storage, update and retrieval of SCM reports and records
Z33 Selecting and using SCM tools
Z201 Collecting and analyzing configuration management metrics
Q31 Knowledge Of PDLM Tools with Respect to CM
Q40 Knowledge of Change Management
7. Software Configuration Management Course
10/10 48
B1 Select architecture
B2 Identify SW components
B3 Analyze data flow
B4 Analyze control flow
B5 Choose algorithm
B10 Design external interfaces (including user interfaces)
B11 Verify design
B12 Generate design documentation
Bx Identify Intermediate design technologies/tools (similar card)
C8 Perform margin analysis (duplicate card)
F13 Perform traceability (bidirectional)
F18 Perform Cyber security Design
Z34 Knowledge of Architectural SW design
Z35 Knowledge of Detailed SW design
Z36 Knowledge of SW system architectures
Z37 Knowledge of design patterns
Z38 Knowledge of SW design development tools
Z39 Knowledge of Object-Oriented Design
Z40 Knowledge of Architectural Design of Real-Time Software
Z120 Knowledge of NPR 7150.2, NASA Standards, and CMMI direction and guidance related to software testing
Z123 Use of state machines and discrete logic to model designs
Q18 Knowledge of Software Architecture Analysis Techniques
Q19 Conduct Formal Design Reviews
Q20 Knowledge of Software Safety Critical Design Techniques
Q21 Evaluate Legacy Systems
8. Software Design Course
10/10 49
Z40 Knowledge of Architectural Design of Real-Time Software (duplicate card)
Z41 Knowledge of Hardware and SW Co-design Techniques
Z41a Capability to design hardware and software
Z42 Fundamental Knowledge of Board Support Package Capabilities
Z43 Knowledge of Compiler, linkers design
Z44 Knowledge of Emulator design techniques
Z44a Ability to use emulator design techniques
Z45 Knowledge of Embedded SW design
Z45a Ability to test embedded design
Z45b Knowledge of embedded software testing techniques (including design for testing)
Z46 Defining and managing margins (by phase)
Z47 Knowledge of Real-time kernels
Z48 Knowledge of Operating systems and SW executives (including real time operating systems and COTS operating systems)
Z49 Capability to develop software drivers
Z50 Knowledge of Real time and embedded programming considerations and constructs
Z51 Knowledge of Microprocessors/Microcontrollers
Z52 Understanding Embedded Systems I/O
Z53 Knowledge of Digital Signal Processors
Z54 Knowledge of Data bus, interfaces, and protocols
Z55 Knowledge of and design considerations for the selection of Single Board Computers
9. Software For Embedded Systems Course
10/10 50
Z56 Knowledge of and design considerations and selection of FPGAs, ASICs (hardware logic devices)
Z56a Capability to conduct trade studies between software and hardware logic devices (FPGAs, ASICS)
Z57 Knowledge of Embedded system development tools
Z58 Knowledge of Hardware in the loop testing of Software systems (duplicate card)
Z58a Ability to perform hardware in the loop testing of software systems
Z59 DELETE End-to-end testing (duplicate card)
Z60 Ability to estimate and track memory size and through put
Z123 Knowledge of state machines and discrete logic
Z123a Ability to model embedded systems/subsystem
Z206 Knowledge of Debugging techniques
Z206a Ability to use Debugging techniques
Q50 Knowledge of Fault tolerance techniques for embedded software
Q51 Knowledge of fault tolerance management techniques for embedded software
Q52 Knowledge of design considerations for safety critical embedded software
Q53 Knowledge of Assurance Techniques for embedded software
Q54 Knowledge of physical security considerations and access controls for embedded systems
Q55 Knowledge of unique management considerations for the development of embedded software
Q56 Knowledge of Embedded Software Standards
Q57 Knowledge of the management of embedded software system development (acquisition)
9. Software For Embedded Systems (continued)
10/10 51
F14 Perform SW hazard analyses
F15 Perform SW safety analyses
F16 Perform SW FMEA (Failure Modes Effects Analysis)
F17 Perform SW reliability analyses
Z61 Knowledge of SW safety management and planning
Z62 Knowledge of SW assurance and IV&V
Z63 Knowledge of NASA Safety standard requirements and practices
Z64 Knowledge of Human rated and Mission Critical SW techniques
Z65 Knowledge of NASA SW best practices for SW safety and reliability
Z66 Perform Traceability to FMEAs, hazard analyses, safety analyses
Z110 Knowledge of NPRs, NASA Standards, and CMMI (e.g., PPQA) direction and guidance related to SW safety and reliability.
Q32 Knowledge of Fault tree analysis
Q33 Support Process and product quality audits
10. Software Engineering Assurance and Safety Course
10/10 52
Ax Requirements Management (duplicate card, refresher from course #3)
B7 Develop and execute acquisition strategy
B8 Identify SW development environment
B9 Certify SW development environment
D2 Identify test environment
D4 Certify test environment
F10 Conduct formal reviews (advanced tasks)
G1 Identification of SW classifications ([7] Note: NASA’s SW classification definitions are contained in NPR 7150.2. NASA criteria for determining whether SW is “safety critical” is contained in NASA-STD 8739.8))
G7 Manage SW engineering processes
G8 Manage SW resources (technical, human, budget)
G9 Manage SW schedules
G10 Monitor SW development progress
G11 Manage risks
H4 Develop team competencies
K31 Project management skills
Z67 Knowledge of SW Development/Management Planning
Z74 Using Metrics in project planning (duplicate card)
Z106 Generate and manage teaming agreements (duplicate card) (include Contractors on team)
Z207 Knowledge of NPR 7150.2, NASA and Center Core Standards, NASA Preferred Standards, and CMMI direction and guidance related to SE 301 topics
Q12 Taylor SWE Processes to Project (will replace G1 in SWE 301 eventually)
Q13 Manage Stakeholders
Q14 Knowledge of value of IV&V during requirements development (duplicate card
Q22 Manage intellectual property
Q31 Knowledge Of PDLM Tools with Respect to CM (duplicate card)
Q37 Collect and Submit Lessons Learned
Q38 Apply Past Lessons Learned
11. Software Engineering 301 (SWE 301) Course
10/10 53
G12 Analyze metrics
Z69 Identify measurement goals & objectives at all levels - projects through Agency
Z70 Identify metrics
Z71 Knowledge of the benefits of measurement
Z72 Knowledge of management issues and indicators
Z73 Knowledge of performance analysis
Z74 Knowledge of using metrics in project planning
Z75 Knowledge of analyzing earned value
Z76 Implementing project measures and coverage of CMMI unique guidance for Measurement Analysis
Z77 Identify key areas of concern and uses of measurement for project management
Z78 Define indicators based upon what a project manager would want to know
Z79 Use measurement to support decision making
Z80 Understand where measurement is used from the perspective of a generic management process (NPR 7150.2) and a reference model such as CMMI
Z81 use measurement data to communicate more clearly to all project stakeholders
Z82 Trending analysis (both within a given project and organizational for local, Center, & Agency needs)
Q34 Collect Metrics
12. Software and Process Metrics Course
10/10 54
G3 Estimate SW schedule
Gx Software size-estimation attributes (e.g. complexity)
Gy Throughput estimating
K32 SW estimation skills overview (cost, scope, schedule, etc.)
T9 SW cost estimation tools/methods
Z84 Defining Your Project Scope
Z85 Adjusting For the Environment
Z86 "What If" Modeling
Z87 Knowledge of Scheduling and Project Constraints
Z88 Project Risk and Sensitivity Analysis
Z89 Software Case Studies/Class Demonstrations
Z90 How to identify risks
Z91 How to identify, collect, and report on data that impacts SW estimates
Z111 DELETE How to monitor and control SW requirement creep and volatility
Z92 How to monitor and control project SW costs and schedule
Z93 Keys to successful implementation of a SW estimation and tracking strategy
Q35 Knowledge of how to use trades to ask for money
Q36 Identify resources
13. Software Estimations Course
10/10 55
G12 Analyze metrics (duplicate card)
I3 Maintain organizational assets (e.g. templates, metrics)
I4 Improve SW engineering processes (e.g. IDEAL Model, Information mapping, process change method, etc.)
K23 SW process improvement (using CMMI)
Z208 Perform SCAMPI-A/B/C appraisals
Z209 Perform Team Support related to CMMI
Q39 Knowledge of characteristics of a good process
14. Software Process Improvement Course
10/10 56
E2 Develop SW part of SOW for RFP and task orders
E3 Develop SW acquisition/contractor requirements for RFP
E4 Develop SW DRD (Data Requirements Document)/CDRL
E5 Develop proposal evaluation criteria
E6 Evaluate suppliers and proposals
E7 Monitor contractor performance (including insight and oversight, duplicate card)
E9 Evaluate contract deliverables (duplicate card)
E10 Accept product formally
Z94 Supporting the development of Concept of Operations
Z95 Develop CDRL (Contract Data Requirements List)
Z96 Define Metrics, Reviews, etc. for SW as part of a contractual RFP or task order for evaluation of products and processes
Z97 Define product specification standards
Z98 Define quality surveillance plan and define incentives
Z99 How to write a Request for Proposal to obtain the SW data needed to perform an independent estimate
Z100 How to structure Contract Line Item Numbers to obtain the data needed to track project progress and cost
Z112 Define and validate the scope of the acquisition
Z113 Identify some of the major problems, symptoms, and potential impacts encountered when acquiring SW-intensive systems and proven techniques to avoid them
Z114 Recovery methods when SW acquisition related problems challenge a project
Z122 NPR 7150.2, NASA Standards, and CMMI direction related to SW that needs to be rolled down to the contractor
Q41 Knowledge of FAR/Escrow as related to software Acquisition and Intellectual Property
Q42 Knowledge of general (NASA and Center) acquisition strategies for COTS software
Q43 Execute Performance Evaluation Plan
Q44 Knowledge of Alternate Acquisition Strategies
15. Software Acquisition Course
10/10 57
L1 Formal modeling to capture the logic and discrete mathematic elements of a system/subsystem
L2 Formal specifications
L3 Model checking
L4 Formal verification techniques
Q46 Knowledge of Tools and techniques for formal methods.
16. Formal Methods for Software Course
Final SWEET FrameworkIncludes CoursesIncludes On-The-Job TrainingIncludes Credit for Previous TrainingAllows for Substitution of other courses to
meet DACUM CoursesMay Use NSC SMA Technical Excellence
Program (STEP) as a Possible Template for Structure
10/10 58
STEP FrameworkOverall STEP Program Commitment
59
Estimated Hours per STEP LevelSTEP Training Elements Level 1 Level 2 Level 3 Level 4
Core Training 3 24 40 N/A
Discipline Training 18 100 137 137
Domain Training 4 40 TBD TBD
Total Academic Hours 25 164 177 (+TBD) 137 (+TBD)
On-the-Job Training N/A 200 400 400
Reference Material N/A varies varies varies
Years of work experience N/A 1y-3y 3y-5y 8y-10yComplete Enrichment Experience N/A Yes Yes Yes
Pass a Comprehensive Level Test N/A N/A Yes-Written N/A
Pass Peer Review Panel N/A N/A N/A Yes
Pass a Qualification Board N/A N/A Yes Yes
Continuing Education N/A 16 24 32