• No results found

PRACTICAL EXPERIENCE IN USING CONTINUOUS INTEGRATION WITHIN THE DEVELOPMENT OF A NANOSATELLITE SOFTWARE

N/A
N/A
Protected

Academic year: 2021

Share "PRACTICAL EXPERIENCE IN USING CONTINUOUS INTEGRATION WITHIN THE DEVELOPMENT OF A NANOSATELLITE SOFTWARE"

Copied!
11
0
0

Loading.... (view fulltext now)

Full text

(1)

PRACTICAL EXPERIENCE IN USING CONTINUOUS

INTEGRATION WITHIN THE DEVELOPMENT OF A

NANOSATELLITE SOFTWARE

(2)

TUBiX20 missions

– Single-failure-tolerance and modularity – Distributed, redundant nodes

– Centralized power- and data bus

– Reuse of hard- and software on different levels → common infrastructure

TechnoSat

– Technology demonstration mission – Launch in H1 2016

TUBIN

– Earth observation mission – Launch in H1 2017

(3)

Concurrent Software Development

Continuous Integration

– Well-structured version control management practice – Frequent integration of new features into the mainline – Automated analysis, build, test and deploy

→ Integration as series of small steps instead of single complex task → Early tests make software more robust reduces debugging time → Progress becomes more transparent for planning and evaluation – Network of nodes with common infrastructure

– Developed by different engineers – Extern supplier of SW components

?

(4)

Version control system organization

Private branches

– Scratchpad for feature development

– Collision-free push/pull → push-on-logout

– Rewriting commit history → “hack now, clean up later” Mainline branches

– Aspect: main line of a single node – Master: system-wide integration – Contain only mature, reviewed code

→ Local flexibility, global quality assurance → Clean and short history

→ No merge conflicts

→ One central backup is sufficient

(5)

Automated build server

→ Reference toolchain configuration → Instant feedback on

– Failed builds

– Code coverage [3]

– Static analysis results [4] – Remote unit test results

[1] build server trigger push feedback analysis documentation [2] unit tests deliverables

277 void splint (float *xa, float *ya, float *y2a, 278 int32_t n, float x, float *y) { 286 int32_t klo=0; 287 int32_t khi=n-1; 288 int32_t k; 289 float h; 290 float a, b, yi; 291 while ((khi-klo)>1) { 292 k=(khi+klo)/2; 293 if (xa[k]>x) 294 khi=k; 295 else 296 klo=k; 297 } 298 h = xa[khi] - xa[klo]; 299 if (equals(h,0.0)) 300 a = (xa[khi] - x)/h; 301 b = (x - xa[klo])/h;

302 yi = a * ya[klo] + b * ya[khi] + ((a*a*a - a) * y2a[klo] + (b*b*b - b) * y2a[khi]) * h * h/6.0; 303 *y = yi;

304 }

'a' declared without an initial value The left operand of '*' is a garbage value

(6)

Remote unit testing

Unit tests of board software in a PC environment – Fast and convenient

– Do not cover hardware-dependent part of embedded software – Different toolchain → different results

Conventional embedded testing frameworks

– Test harness and tests linked into single binary – No automated upload and execution

ECatch test framework – Based on Catch [5]

– Developed in TechnoSat project – Test harness remains on host

– Facilitates test upload and result reporting

drivers etc. high-level

UART

→ Automated unit testing on target hardware

(7)

Conclusions

Summary

– TechnoSat and TUBIN: TUBiX20 missions

– Bus concept: modularity and re-use for hard- and software – Key process steps and tools of continuous integration

Experience

– Establishing a version control workflow pays off

– Automated tests and analysis support software verification to a great extent – Systematic development approach saves time

Lessons learned

– Continuous Integration should be considered directly from the beginning – Setup of workflow and toolchain demands time

(8)

Thank you!

Co-Authors

– Alexander Graf – Merlin Barschke

TechnoSat funding

– German Aerospace Center (DLR)

(9)

References

[1] http://www.git-scm.com/ [2] https://jenkins-ci.org/ [3] https://gcc.gnu.org/onlinedocs/gcc/Gcov.html [4] http://clang-analyzer.llvm.org/ [5] https://github.com/philsquared/Catch

(10)

Practical experience: high-level modules

– Fusion of AOCS sensor data

– Determine inner state and environmental quantities

Challenges

– Numerous external and internal influence factors – Dynamic and complex scenarios

Unit test coverage

– Orbit and environmental models – State determination modules

Benefits

– Verified code base

– Flexible and reproducible tests for FDIR mechanisms – Reference for hardware in the loop tests

(11)

Practical experience: hardware dependencies

– Lower layers of the UHF communication software

Challenge

– Test-coverage

– Ambiguous component documentation

Test-driven development

– Early tests refined the developer’s understanding of the hardware

– Functional tests with two equal peripherals of the same microcontroller

Benefits

– ECatch remote test upload and execution → low turn-around time – Hardware in the loop tests: improved confidence in the code base

Further steps

References

Related documents

повышается также скорость входа протонов в матрикс (рис.. Влияние МрТр на трансмембранный обмен ионов в митохондриях. Открывание МРТР, как уже было показано нами

Při snaze definovat designové myšlení a design služeb narazíme na několik problémů. Existují různé výklady obou pojmů, které se zaměřují na odlišné aspekty v závislosti

Abstract: The water and wastewater industries have many areas or “islands” of operations that offer significant opportunities to lower costs while maintaining or even

Abstract: This report discusses recent developments of psychotraumatology mainly related to the recently published ICD-11, but also from a societal point of view.The selected aspects

For example: the number of consecutive losing trades before an alarm goes off; the timeframe and number of bars for a MACD calculation; the time period for a countdown etc..

cognitive models of reasoning; (ii) deduction (in the form we administered it) results in activations of neuronal regions associated with language (syntactic) processing rather

Detection of hepatic vitellogenin mRNA using rt-PCR in male Xenopus laevis frogs after injection with ethinyl-estradiol at various doses………... Protein concentration of sera from

It appears clearly that the interaction network is very different from a random graph with the same size: the degree distribution is heterogeneous, the clustering coefficient is