“…Several attempts to define a general set of requirements common to all nanosatellites forming the basis of the software architecture have been reported in the literature [4], [13]. The most repetitive features include modularity [1], [3], [14], reusability [2], [5], [11], [15], extensibility [15], [1], portability [5], [15], [14] re-configurability [16], scalability [5], [14], fault tolerance [3], [17], and autonomy [1], [3], [17]. Frequently, the definition of a particular feature varies slightly from one solution to the other.…”