Software Development Process
To ensure excellent software quality, well-defined development processes are in use. They are based on modern and established frameworks (e.g. scrum for agile software development) which are adapted to the specific requirements and conditions. Continuous improvement of processes and tools is allowing to speed up the development and deployment further - without losing our high quality standard.
According to current standards of software engineering, TARA runs the continuous integration process. On a daily basis automated jobs are executed:
- static code analysis
- automated document generation from source code
- build components and (test) applications for PCs and the target platforms
- unit test execution including code coverage analysis
- running unit tests on several platforms
- doing system testing (e.g. automated execution of DTG tests and HbbTV Test Suite)
Failed jobs notify the responsible engineer. With this approach upcoming issues will be detected in an early stage and it helps to have the software continuously up and running.
The artifacts of the jobs (e.g. libraries, test result documentations, ..) speed up the deployment process enormously. This allows simultaneous release on various platforms and the prerequisites of Continuous Delivery are given.
At TARA, a modular software architecture is the key to manage the growing complexity in TV software today. It enables lean and flexible solutions, which are adjusted to customer requirements and can also grow and be maintained in the future. Modules are complemented with individual documentation and stand-alone tests (without hardware dependencies). They can be extended individually or replaced with an alternative solution.
Embedded Development on PC
All software development at TARA is first done on PC to benefit from advanced PC tools and to allow enhanced debugging possibilities. Rapid prototyping and simulation, including live TV reception, furthermore speed up the development process. In a second step, the software is verified on various target platforms.
Portability ensures economic re-use and multiplication of existing software. At TARA, the implementation of all core modules is done in ANSI-C to guarantee portability. Dedicated abstraction layers for hardware (HAL) and OS (OSAL) ensure easy adaptation across various platforms.
Automated, reproducible testing is a fundamental part of software development at TARA. Identical unit and system tests are executed for all of TARA's products on PC, as well as on embedded platforms, e.g. in TARA's own, fully automated test center. To cover a wide variety of test cases, synthetic DVB test streams are generated with in-house tools, e.g. for scenarios which are not found in current live broadcasts.