This post describes embedded software (SW) function specifications.
The SW function specification document is a document that describes the design details of individual functions in SW development. This specification document clearly describes the purpose of the function, input/output parameters, prerequisites, processing details, return values, exception handling, etc., and serves as a guideline for implementers to code accurately.
In addition, SW function specifications are used for information sharing and review within the team, test design in later stages, and understanding during maintenance, so they are not merely coding instructions, but important documents that support SW quality and productivity.
Maintaining consistency between specifications and implementation is essential for reliable development, and it is necessary to appropriately update and manage specifications in each phase of design, implementation, and testing.
Creation of SW function specifications
The creation of SW function specifications is based on the results of “SWE.1 SW Requirements Analysis” and “SWE.2 SW Architecture Design” in A-SPICE, for example, and is created in “SWE.3 SW Detailed Design and INIT Construction.”

SW Function Specification Items
The SW function specification items are as shown in the table below.
SWE | Specification Items | Summary of each item |
---|---|---|
2 or 3 | SW function classification | SW function classification: SW Component(SWC), UNIT, Interrupt, Library, Macro |
2 | SWC Name | If UNIT, name of affiliated SWC |
2 | SW State | SWC SW Status (In the case of UNIT, inherits the SWC to which it belongs) |
2 | SW Layer | SWC SW Layer (In the case of UNIT, inherits the SWC to which it belongs) |
2 | Processing timing | SWC Processing timing (cycle, event) (In the case of UNIT, inherits the SWC to which it belongs) |
2 | Dispatching priority | SWC Dispatching priority(Interrupt or Task/Thread)(In the case of UNIT, inherits the SWC to which it belongs) |
2 | Caller function name | If UNIT, caller function name |
2 | Call order | If UNIT, call order |
2 or 3 | SW functional declaration | SW functional declaration |
2 or 3 | Parameter Input | Type, name, LSB, and unit |
2 or 3 | Parameter Output | Type, name, LSB, and unit |
2 or 3 | Return | Type, name, LSB, and unit |
2 or 3 | Process Overview | Processing Overview of SW Functions |
2 or 3 | Process details | 1) Function input |
2 or 3 | 2) Pre-processing | |
2 or 3 | 3) Condition check | |
2 or 3 | 4) Conditional calculations and low-level function calls | |
2 or 3 | 5) Post-processing | |
2 or 3 | 6) Function output | |
1 or 3 | Constants | Type and name, LSB, unit, value (value calculation formula) |
2 or 3 | Macro constants | Name and LSB, unit, value (value calculation formula) |
3 | Local variable | Type and name, LSB, unit, initial value |
3 | Static variable | Type and name, LSB, unit, initial value |
2 or 3 | Global variable | Type and name, LSB, unit, initial value |