ipsaone / Software-Architecture

0 stars 0 forks source link

Preliminary Research on Software Architechture #10

Open TsyTi opened 3 years ago

ElliotPoinsignon commented 3 years ago

13974-1-10-20200214.pdf This doc summaries some open source Software Framework for cubesat application in order to speed up and make easier the development of cubesat software. Questions : Can we use one of this system ? Are they compatible with our OS (that we nned to determined) ? Are they really a gain in term of time knowing that learningto work with this software achitecture will be hard and long ? https://github.com/nasa/cFS The github of the open source software framework from nasa.

ElliotPoinsignon commented 3 years ago

https://www-verimag.imag.fr/~sifakis/papers_pdfs/Architecture-based%20DesignRep.pdf Speak about the use of BIP (Behaviour-Interaction-Priority) to make a robust software architecture to ensure maximum requirements just with the architecture and avoid structural deadlock. Questions : Can we use this kind of approach in our case ? Is it to difficult for student like us with no teacher to teach us about this kind of technologies ? More info about BIP for software architecture: ieee-software.pdf

ElliotPoinsignon commented 3 years ago

https://www.researchgate.net/publication/339280425_Development_of_a_flight_software_framework_for_student_CubeSat_missions More information about software achitecture for student cubesat. Speak about the cFS, kubos and CubedOS frameworks. They present also their own framework with a student-friendly and easy to use approach.

They develop it with a precise philosophie:

•  Focus on simplicity: always keep it simple. Don’t implement something if it is not strictly necessary.
•  Better explicit than implicit: never assume a user knows everything,better document each function and structure, also try not to use acronyms.
•  Easy to learn and use, even without documentation: an intuitive product is expected, because the target users are students.
•  Better static than dynamic: always try to use static allocation rather than dynamic, in order to avoid potential memory errors.
•  Better greedy than lazy: if it is not possible to implement with static allocation, use dynamic allocation only during initialization of the software. Reserve all memory that will be potentially needed during initialization, never during the normal execution of the mission.

The framework shall be modular and portable (more info about this notions page 189)

Their framework has 3 layers:

It can be use with multiple OS (linux, windows, freeRTOS) They mainly use C to code.

their framework github: https://github.com/olmanqj/sfsf