The Pricing Handbook / Appendix 19C
19. Software Pricing
19C. SAMPLE SOFTWARE WORK BREAKDOWN STRUCTURE
The following sample Work Breakdown Structure is based on the sample Software WBS contained in NRaD’s Software Size, Cost and Schedule Estimation Process, modified for this handbook. It is oriented to the development of a MIL-STD-498 or DoD-STD-2167A software product. The sample WBS is very detailed and is meant to be tailored to each project's specific tracking needs and requirements.
- PROJECT MANAGEMENT
- Project Management Plan
- Define task execution plans
- Define project schedule/milestones
- Define prelim SW functional requirements
- Develop project WBS
- Define SW management metrics process
- Define/allocate project functions
- Hardware engineering
- Software engineering
- Configuration Management
- Software Quality Assurance
- Inspect, Validate & Verify (IV&V)
- Project support
- Software metrics
- Determine staffing
- Determine SWE tool requirements
- Determine training requirements
- Plan activities/reviews
- Management Reporting
- SOFTWARE ESTIMATION
- Preliminary project estimate
- Establish cost estimation methodology/tools
- ID similar functions/historical projects
- Identify project objectives and requirements
- Plan the activities/initial WBS
- Estimate product size
- Estimate cost and effort
- Estimate schedule
- Identify potential risk areas
- Set up cost estimate tracking metrics
- Review/refine with project personnel
- System Requirements Phase Estimate
- Establish software estimate file
- Develop top-level SW requirements WBS
- Develop baseline software estimates
- Formal inspection/approval of estimate
- Refine/record/track estimates
- Software Requirements Phase Estimate Update
- Update top-level design WBS
- Update baseline requirements phase estimates
- Conduct formal inspection of estimate
- Refine/record/track estimates periodically
- Design Phase Estimate Update
- Develop detailed CUT WBS
- Update baseline CUT estimates
- Formal inspection of estimate
- Refine/record/track estimates periodically
- Code and Unit Test Phase Estimate Update
- Update detailed WBS
- Update/revise estimates
- Update/revise risk assessment
- Update preliminary maintenance estimate
- Refine/record/track estimates periodically
- Formal inspection of estimate
- Integration Phase Estimate Update
- Update detailed WBS
- Update/revise estimates
- Update/revise risk assessment
- Update/revise maintenance estimate
- Refine/record/track estimates periodically
- Formal inspection of estimate
- Post-Deployment Phase Estimate
- Close out/report final cost/schedule/size
- RISK MANAGEMENT
- Preliminary Risk Management Plan
- Identify potential risk areas
- Analyze risk areas
- Prioritize risks
- Identify risk tracking metrics
- Write Plan
- Risk Management Plan review/inspection
- Update Risk Management Plan
- Baseline Risk Management Plan
- Update/revise risk assessment
- SOFTWARE METRICS
- Software Metrics plan
- Process Effectiveness Metrics
- Process Cost Metrics
- Cost/Schedule Tracking Metrics
- Performance Measurement Indicators
- Software Quality Metrics
- Update/revise Metrics Plan
- Track/analyze cost/schedule/size estimate variances
- Track/analyze cost estimating effort and tool costs
- Track/analyze cost/schedule variance
- Track/analyze requirements and design progress
- Track/analyze code and test progress
- Track/analyze person-months effort
- Track/analyze program size
- Track/analyze computer resources utilization
- Track/analyze requirements stability
- Track/analyze design stability
- Track/analyze complexity metrics
- Track/analyze modules metrics
- Track/analyze testing metrics
- Track/analyze defects metrics
- Track/analyze product and operational metrics
- Formal reports
- Report final project analysis
- SYSTEM ENGINEERING
- Analyze operational requirements
- Hardware/software trade-off studies
- Sizing/timing studies
- Define computer resource constraints
- Memory
- Throughput
- I/O channel utilization
- I/O throughput
- Storage
- Database overhead
- Identify risks
- Preliminary System Segment Specification (SSS)
- Define system states
- Define modes of operation
- Define system capability
- Define external inter. requirements
- Write external interface descriptions
- Define physical characteristics
- Define system quality requirements
- Reliability
- Maintainability
- Availability
- Environmental conditions
- Transportability
- Flexibility and expansion
- Specify design/construct requirements
- Define system workmanship requirements
- Define system interchange requirements
- Define system safety requirements
- Define system security requirements
- Determine Government Furnished Equipment
- Define computer resource reserve capacity
- Define system logistics
- Specify personnel requirements
- Define training requirements
- Determine for each System/Segment
- Purpose
- Description
- Identify capabilities
- Identify requirements precedence
- Validate and Verify (V&V) requirements
- QA provisions
- Inspection responsibility
- Special Tests and exams
- Requirements cross reference
- Preliminary Interface Requirement Specification (IRS)
- Identify HWCIs/CSCIs interfaces
- Draw interface diagram(s)
- Identify for each interface
- Timing
- Protocol
- Priority
- Unit of measure
- Limits/ranges
- Data elements
- Precision
- SSS/IRS inspection(s)/review(s)
- System Requirements Review (SRR)
- Update SSS
- Baseline SSS
- Update Preliminary IRS
- CONFIGURATION MANAGEMENT (CM)
- Preliminary CM Plan
- CM Plan review/inspection
- Update CM Plan
- Baseline CM Plan
- Set Up Configuration Control Board (CCB)
- Conduct/maintain Configuration Status (CS) accounting
- Prepare Configuration Status Report (CSR)
- Conduct Functional Configuration Audit (FCA)
- Conduct Physical Configuration Audit (PCA)
- Process Engineering Change Proposals (ECPs)
- Process System Change Notices (SCNs)
- Generate inputs to the Software Version Document (SVD)
- Prepare Version Control Reports
- SOFTWARE QUALITY ASSURANCE (SQA)
- Preliminary SQA Plan
- Plan SW quality metrics process
- SQA Plan inspection(s)/review(s)
- Update SQA Plan
- Baseline SQA Plan
- SOFTWARE DEVELOPMENT PLAN (SDP)
- Preliminary SDP
- Define formal review procedures/criteria
- Define Software Development Library procedures
- Define corrective action process
- Define Problem/Change Report Format
- Define design standards
- Define coding standards
- Define testing approach
- Define requirements traceability process
- SDP inspection(s)/review(s)
- Update SDP
- Baseline SDP
- INTERFACE REQUIREMENTS
- Analyze Preliminary IRS
- Interface Design Document
- Interface 1 to N define
- Data elements
- Message descriptions
- Priority
- Communications protocol
- Interface inspection(s)/walk-through(s)
- Interface rework
- Interface Design Document (IDD) inspection(s)
- IDD rework
- Participate in Preliminary Design Review (PDR)
- Update Interface Design Document
- Baseline Interface Design Document
- DATABASE REQUIREMENTS
- Preliminary Database Design Document (DDD)
- Analyze database requirements
- Identify data requirements
- Perform database studies
- Database Design Document inspection(s)
- Participate in PDR
- Update Database Design Document
- Baseline Database Design Document
- DEVELOPMENTAL SOFTWARE
- Analyze system requirements
- Identify software requirements
- Determine derived software requirements
- Identify candidate COTS software
- Identify candidate reusable software
- Perform feasibility studies
- Select computer language(s)
- Allocate functions/identify CSCIs
- Determine software requirement testability
- CSCI 1 to N
- FUNCTIONAL REQUIREMENTS
- Analyze CSCI requirements
- Preliminary Software Requirements Specification
- Identify internal interfaces
- Identify functional/derived requirements
- engineering
- data elements
- safety
- security
- human engineering
- Identify software quality factors
- Identify design constraints
- Identify qualification methods
- Trace requirements to SSS
- Software Requirements Specification (SRS) inspection(s)/review(s)
- Software Specification Review (SSR)
- Update SRS
- Baseline SRS
- PRELIMINARY DESIGN
- Preliminary Design analysis
- Identify CSUs
- Identify internal interfaces
- Identify external interfaces
- Preliminary Software Design Documents (SDDs)
- Overview
- Architecture
- Memory/processing time allocation
- CSCI design description
- CSU 1 - N
- Identify allocated requirements
- Identify CSUs
- Identify relationships between CSUs
- Data flow and execution control
- Identify derived requirements
- Trace requirements to SRS
- CSU inspection(s)/walk-through(s)
- CSU design rework
- Preliminary SDD inspection(s)/review(s)
- Preliminary Design Review (PDR)
- Update Preliminary SDD
- DETAILED DESIGN
- Detailed SDD
- CSU 1 - N
- Describe constraints
- Describe input/output data elements
- Describe local data elements
- Describe interrupts and signals
- Describe algorithms
- Describe data structures
- Describe local datafiles/database
- Describe limitations
- Trace requirements to Preliminary SDD
- CSU inspection(s)/walk-through(s)
- CSU design rework
- SDD inspection(s)/review(s)
- SDD rework
- Critical Design Review (CDR)
- Update SDD
- Baseline SDD
- CODE and UNIT TEST
- CSU 1 - N
- Design/document unit test
- Code and compile
- Write comments/header
- Code inspection(s)/walk-through(s)
- Rework
- Testing and analysis
- Rework
- Maintain Software Development Folder (SDF)
- Turn over accepted CSU to CM
- TEST READINESS REVIEW
- CSU INTEGRATION and TESTING
- Analyze Software Test Report
- Perform necessary rework
- Perform CSU regression testing
- Update SDFs
- TEST READINESS REVIEW
- CSCI INTEGRATION and TESTING
- Analyze Software Test Report
- Perform necessary rework
- Perform CSU regression testing
- Update SDFs
- SOFTWARE INTEGRATION & TESTING
- Software Test Plan
- Determine general test requirements
- Determine test classes
- stress
- timing
- erroneous input
- maximum capacity
- Determine test levels
- CSCI
- CSCI to CSCI integration
- CSCI to HWCI integration
- System
- Determine test definitions
- Test 1 - N
- determine objective
- determine special requirements
- identify test type/class
- determine qualification method
- cross reference to SRS requirements
- determine type of data to record
- identify assumptions/constraints
- determine test schedule
- identify data analysis techniques
- Perform Integration & Testing
- System
- Integrate CSCIs
- Write System Test Description
- Conduct Test Readiness Review
- Perform testing and analysis
- Write System Test Report
- Rework
- Regression testing
- CSCI
- Integrate CSUs
- Write Software Test Description
- Conduct Test Readiness Review
- Perform testing and analysis
- Write Software Test Report
- Rework
- Regression testing
- CSU
- Integrate CSUs
- Write Software Test Description
- Conduct Test Readiness Review
- Perform testing and analysis
- Write Software Test Report
- Testing and analysis
- Rework
- Regression testing
|