My goal was to develop a few simple factors for coarse estimates of embedded systems (software & electronics) that are easy to remember. The factors should express the effort as a multiple of the effort for a standard development project.
You can find the factors in this table:
Practical Factor | Quality & Safety Level (Examples) | Goals
|
---|---|---|
1 (Base) | "Normal" Product Development | Function under normal conditions
|
3 | Structured Development | Maintainability, Extendability, Quality additional:
|
5 | Critical Development
| Basic Functional Safety additional:
|
7 | Highly Critical Development
| Full Functional Safety additional:
|
Lines of code (LOC) are a common, albeit not very accurate, measure of the scale of a software project. LOC for different programming languages are an even poorer measure for software projects. But since most functionally secure projects are implemented in C, the numbers are at least comparable in this respect.
This table shows which effort per line of code can be estimated by rule of thumb to implement functionally safe software projects.
Note that almost the same effort can be expected to "make safe" an existing software, since usually a profound refactoring of the software results from the safety requirements.
The order of magnitude for the efforts can be found in this table (where in the range your project falls depends mainly on its complexity, signal processing code e.g. easily reaches or exceeds the respective upper effort!)
Effort Ph/ kLOC | Quality & Safety Level (Examples) | Goals
|
---|---|---|
125..500 | Critical Development
| Basic Functional Safety |
400..2500 | Highly Critical Development
| Full Functional Safety |
Ph/ LOC: Person Hours/ Thousand Lines of Code
For very coarse initial estimates, the simple rate of 1 Ph/ LOC (one hour per line of code) can be used.
As mentioned, these factors are only suitable for an estimation "by rule of thumb". For a more accurate estimation of your concrete project we offer our estimation tools or contact us for a workshop.
What is the most important conclusion to be drawn from these figures, apart from their use in coarse estimates? KISS! ...Keep It Simple. Every feature multiplies in effort! Which can only be reduced by omitting as many unnecessary features as possible...
Andreas Stucki
Do you have other sources, numbers or experiences? Do you have additional questions? Do you have a different opinion? If so, email me or comment your thoughts below!
The references displayed as a table:
Quality Level | Practical Factor (see above) | Factors acc. [1] | Factors acc. [2] | Factors acc. [2] | Factors acc. [3] | Factors acc. [3] | Factors acc. [4] | Factors acc. [4] | Factors acc. [5]*** | Factors acc. [5] |
---|---|---|---|---|---|---|---|---|---|---|
Factors acc. [5] | ||||||||||
"Normal" Product Development | Base: 1 | Base: 1.0 | Base: 1.0 | Base: 2.0** | ||||||
Structured Development | 3 | 3.2 | Base: 1.0 | Base: 3.0 | Base: 1.0 | Base: 2.5* | ||||
Critical Development | 5 | 4.4 | 1.2 | 3.6 := 3.0 * 1.2 | 2.0..2.9 | 5.0..7.3 := 2.5 * (2.0..2.9) | 1.5..4.0 | 3.0..8.0 := 2.0 * 1.5..4.0 | 0.125..0.5 | Base: 5.0 ^= 0.25**** |
Highly Critical Development | 7 | 5.7 | 1.7 | 5.1:= 3.0 * 1.7 | 4.4..6.4 | 11..16 := 2.5 * (4.4..4.6) | 5.0..10.0+ | 5.0..20.0 := 2.0 * 5.0..10.0 | 0.4..2.5 | 8..50 := 20 * 0.4..2.5 |
* Note that the base for [3] is CMMI level 2/3, a lower level than [1] , where level 3 is assumed; in [2] also level 2/ 3 is presumed, but the numbers are nearer at [1]. As a result, the steps to safety levels for [3] are probably too high. This has been corrected in the choice of this base.
** The basis was also adapted here, since "Functional System" in the context of the source (automotive) probably already has an aSPICE level.
*** Ph/ LOC
**** geometric mean
And the corresponding links:
[1] V. Hilderman: Calculate Critical Safety Cost Easy : (only effort, no tools cost included)
[2] V. Hilderman: DO-178C Cost versus Benefits :
[3] Rockwell-Collins: Certification Cost Estimates for Future Communication Radio Platforms :
Refers to "industry established metrics" (p 26) and "industry averages" (p 27) of unknown source and to "Mentor Graphics" for hardware (p 27).
[4] How the ISO 26262: 2018 Update Affects You: The Cost of ASIL Compliance :
"For example, to plan, execute, verify, and document compliance, the following effort multipliers could be considered:
Functional System : 1
ASIL A : 1.5x – 3x
ASIL B : 2x – 4x
ASIL C : 5x – 8x
ASIL D : 10x+"
[5] Cost of highly safety critical software
"DAL A: 3..12 SLOC/ day
DAL B: 8..20 SLOC/ day
DAL C: 15..40 SLOC/ day
DAL D: 25..64 SLOC/ day"
SLOC: Source Line Of Code
This yields for DAL A/ B: 0.4..2.5 LOC/ h and for DAL C/ D: 2..8 LOC/ h.
[6] Coverity: Risk Mitigation for DO-178C
"In typical cases, the cost of DO-178 certification can range from $25 to $100 per line of code—
that’s $2.5 million to $10 million for 100,000 lines of code!" (p 1) results at an hourly rate of 50 USD in: 0.5..2 LOC/ h.
Projects? Ideas? Questions? Let's do a free initial workshop!
No Comments