So, what is unique about BASA?
–Specifically addresses
software reuse
in a Telelogic Synergy environment
»here,“reuse” means
reuse with out change, not copy, paste, then change
»provides mechanisms for “customizing” these
read-only modules
–Emphasizes and establishes structures that emphasize the importance of well-defined interfaces in order to:
»increase portability
»increase understandability
»support
unit test
»discourage degradation of interface due to “premature optimization”
–Defines structures for developing modules outside of specific programs
»This is key to making modules “reusable”
»Reinforces the need to concentrate on a module’s interface independently of its implementation
»Enables unit/regression testing at the module level
–Scalable
»Definesstructures and methods that can be applied to both “simple” and “complex”modules
»Regardless of the domain, all BASA modules have the same basic structure
–Portable
»Structured so modules are not tied to a specific vendor’s set of tools
Module:
1. An independent “software component”,sometimes called a “building block” (bb_).
2. Modules can be hierarchical – they cancontain other modules. These are sometimes called “building block clusters” (bbc_).
3. A basa module contains three major components:

4. BASA has defined conventions for breaking a module’s API into multiple files:
–Configurable types
–Callouts
–Types shared by all of these
4.1 Configuration occurs through an API configuration file (<api>_acfg.h)
»The module supplies a
template for the _acfg filethat must be copied and filled in by the program.
»The template is supplied as
“<api>_acfg.h.txt”.It cannot directly satisfy the API’s need for
<api>_acfg.h.
4.2
The“_acbk”suffix is related to AUTOSAR which uses the term “callback”.
Analternative to an API callout is using XSAL’s message publishing capability
basa build strategy:
1.
flavor: combination of cpu and os to build.
2. Contraryto what some people believe, a Cygwin installation
other than the old (and crippled) one thataccompanies the QNX tools can be used (with a few simple configuration steps)