Master Thesis MSTR-2017-68

BibliographyRamakrishnan, Ganesh Ayalur: Leveraging continuous integration in space avionics - a design using declarative build automation paradigm.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Master Thesis No. 68 (2017).
76 pages, english.

There are several benefits when Continuous Integration (CI) is adopted for a software development project. This provides for a mechanism to reduce the burden on developers during the build and test of the developed software, as well as help release the product on-time. Other benefits include capturing errors quite early in the development cycle, easier integration at defined intervals over the course of software development, and faster, comprehensive feedback to developers. However, in an embedded domain, adopting CI is a challenging activity. If the project size and complexity is high, there will be a large number of activities which need to be covered in the CI workflow. Not all tools used in software development provide seamless interfaces to the CI tool. There is a need to design the interface framework which can quickly grow to be complex and time consuming. An effective CI workflow follows a set of best practices. Build automation is one of them. The existing literature does not provide comprehensive information to address the effect that the build automation tools have on the design and implementation of a CI framework in an embedded avionics domain. Tools like GNU Make and Apache Ant are primarily used for the build and test stages of development. However, these build tools are imperative in nature. As the build logic increases in complexity, the conciseness of build scripts reduces. The build runtimes should also not be large as the feedback cycle time would be longer. This study aims to design a CI workflow for a space satellite On-Board Software(OBSW) development project. The objective is to bring out the limitations and challenges of using a conventional imperative build approach during the set-up of a CI framework for the project. The proposal is to adopt a build tool which is based on declarative build paradigms and provide for mechanisms to easily integrate with CI tools. This study is carried out as an action research (AR) with study results expressed as quantitative or qualitative metrics. A prototypical CI chain is implemented with a Jenkins CI server and Gradle as the primary build tool. Parameters such as performance, maintenance complexity of build logic, and features such as integration to a CI tool, reproducible builds are investigated.

Full text and
other links
Department(s)University of Stuttgart, Institute of Software Technology, Software Engineering
Superviser(s)Wagner, Prof. Stefan; Lieder, Johannes
Entry dateMay 29, 2019
   Publ. Computer Science