summaryrefslogblamecommitdiffstats
path: root/spec/glossary/softwarecomponent.yml
blob: d3887e1ead77a8ed7d0ec960b5952ae538e20bc3 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                     

                                                                         
                
                   
      
                       
                          
                        




                                                                       
                         
 

                                               
 
                                                         
 
                                                          


                                                        
                   
 
                             





                                                                        
                                                                



                                                                               
SPDX-License-Identifier: CC-BY-SA-4.0
copyrights:
- Copyright (C) 2019 embedded brains GmbH (http://www.embedded-brains.de)
enabled-by: true
glossary-type: term
links:
- role: glossary-member
  uid: ../glossary-general
term: software component
text: |
  This term is defined by ECSS-E-ST-40C 3.2.28 as a "part of a software
  system".  For this project a *software component* shall be any of the
  following items and nothing else:

  * ${softwareunit:/term}

  * explicitly defined ${elf:/term} symbol in a
    ${sourcecode:/term} file

  * ${assemblerlanguage:/term} data in a source code file

  * ${clanguage:/term} object with static storage duration

  * C language object with thread-local storage duration

  * ${thread:/term}

  * ${interruptservice:/term}

  * collection of *software components* (this is a software architecture
    element)

  Please note that explicitly defined ELF symbols and assembler language
  data are considered a software component only if they are defined in a
  ${sourcecode:/term} file.  For example, this rules out symbols
  and data generated as side-effects by the toolchain (compiler, assembler,
  linker) such as jump tables, linker trampolines, exception frame information,
  etc.
type: glossary