The Mission Data System (MDS) is both a methodology and a software framework for designing flight, ground, and test systems. It is developed by NASA/JPL to address the challenge of designing reliable software that expands mission capabilities and allows efficient, effective reuse in various mission scenarios.
The Polaris Studio team is a team of four students in the Master of Software Engineering (MSE) program at Carnegie Mellon University. The Polaris team's project is to support the MDS by providing software to allow for the systematic separation and reintegration of essential MDS code and incidental MDS code. Essential code is sorftware which is particular to the physical platform, the physical environment of the mission, or the goals or nature of the mission itself; incidental code is all other software - architectural code, supporting code, or debugging code.By separating the essentials from the incidentals, the followings benefits can be achieved:
- Flexibility to embrace different environments: In a real mission deployment, there is a high ratio of essentials to incidentals due to various physical constraints. In contrast, a test environment would require a higher number of incidentals such as debugging code and real-time communication capability. The mixing of essentials and incidentals makes it is difficult to remove and add different incidentals to suit the various environments while ensuring the correctness of the essentials.
- Maintainability and reliability: As a system is maintained and evolved, the architecture tends to decay, which would reduce the reliability and maintainability. The clear separation of essentials provides the core of the system a defense against rotten incidental components. Also by orthogonalizing the different concerns, it provides more opportunity for effective inspection, analysis, and verification, which would improve the overall quality of the system
The objective, which the Polaris team aims to achieve by the end of the project, is to produce as completely as possible a tool chain which demonstrates the process of separating and recombining MDS incidental and essential code.