kth.sePublications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Continuous Integration for Embedded Software with Modular Firmware Architecture
KTH, School of Electrical Engineering and Computer Science (EECS).
2023 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesisAlternative title
Kontinuerlig Integration för Inbäddad Programvara med Modulär Firmware-Arkitektur (Swedish)
Abstract [en]

Continuous Integration (CI) techniques are widely adopted in web and application development but have received limited attention in the embedded software domain. This thesis investigates the application of CI techniques in embedded software development through a case study at Cobolt AB, a company specializing in optoelectronics. The study aims to identify suitable CI techniques, assess implementation efforts, and evaluate the impact of CI adoption in this domain. A CI service is implemented using Jenkins as the automation server, following an iterative development and deployment process. The service incorporates multi-target compilation, automated unit testing, test reporting, visual CI feedback, and trunk-based development. These techniques prove effective for embedded software with a modular firmware architecture. However, automated system testing encounters limitations due to the need for manual interaction with hardware targets. Challenges encountered during implementation, such as learning CI tools, managing build tool dependencies, and addressing manual input requirements for system testing, are overcome through iterative implementation, distributed build architecture, and selective test automation. Developers’ resistance to CI adoption diminishes as they experience the positive impact of the CI service. CI adoption in the embedded domain brings benefits such as fast bug detection, increased developer motivation, higher confidence in code quality, and encouragement for standardization n. No noticeable negative impacts are observed. Future research should focus on integrating hardware-in-the-loop simulation systems for comprehensive automated system testing, exploring validation on multiple hardware targets, and studying the vertical scaling capabilities of distributed build architectures with Jenkins.

Abstract [sv]

Kontinuerlig integration (CI) tekniker används i stor utsträckning inom webboch applikationsutveckling, men har fått begränsad uppmärksamhet inom inbyggd programvarudomän. Denna avhandling undersöker tillämpningen av CI-tekniker inom inbyggd programvaruutveckling genom en fallstudie vid Cobolt AB, ett företag specialiserat på optoelektronik. Studien syftar till att identifiera lämpliga CI-tekniker, bedöma implementeringsinsatser och utvärdera effekten av CI-användning inom detta område. En CI-tjänst implementeras med Jenkins som automatiseringsserver, efter en iterativ utvecklings- och distribueringsprocess. Tjänsten inkluderar kompilering för flera målenheter, automatiserad enhetstestning, testrapportering, visuell CI-återkoppling och utveckling baserad på huvudgrenen. Dessa tekniker visar sig vara effektiva för inbyggd programvara med en modulär firmware-arkitektur. Dock begränsas automatiserad systemtestning av behovet av manuell interaktion med hårdvarumål. Utmaningar som uppstår under implementeringen, såsom att lära sig CIverktyg, hantera byggverktygsberoenden och hantera manuella indatakrav för systemtestning, övervinner genom iterativ implementering, distribuerade byggarkitekturer och selektiv testautomatisering. Utvecklarnas motstånd mot CI-användning minskar när de upplever de positiva effekterna av CI-tjänsten. CI-användning inom inbyggd programvaruutveckling medför fördelar som snabb upptäckt av fel, ökad utvecklar motivation, högre förtroende för kodkvalitet och främjande av standardisering. Inga märkbara negativa effekter observeras. Framtida forskning bör fokusera på att integrera hårdvaru-i-loop simulering för omfattande automatiserad systemtestning, utforska validering på flera hårdvarumål och studera de vertikala skalningsmöjligheterna hos distribuerade byggarkitekturer med Jenkins.

Place, publisher, year, edition, pages
2023. , p. 87
Series
TRITA-EECS-EX ; 2023:847
Keywords [en]
Continuous integration, Embedded software development, Modular firmware architecture, Jenkins, Software quality
Keywords [sv]
Kontinuerlig integration, Inbyggd programvaruutveckling, Modulär fastvara arkitektur, Jenkins, Programvarukvalitet
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:kth:diva-343145OAI: oai:DiVA.org:kth-343145DiVA, id: diva2:1835965
External cooperation
Cobolt AB
Subject / course
Embedded System Design
Educational program
Master of Science - Embedded Systems
Supervisors
Examiners
Available from: 2024-02-08 Created: 2024-02-07 Last updated: 2024-02-08Bibliographically approved

Open Access in DiVA

fulltext(1309 kB)582 downloads
File information
File name FULLTEXT01.pdfFile size 1309 kBChecksum SHA-512
0dad4e7528d4da934a53699eb00a7333fdfd4413cfd82e457820400634c66b8f5184ee6950b4612e61cb06ca431c405d1acccfa8c7aeab765fb299754a95d6d0
Type fulltextMimetype application/pdf

By organisation
School of Electrical Engineering and Computer Science (EECS)
Computer and Information Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 583 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 1050 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf