The scenario is you are the lead software engineer for a NASA project to fly rou
ID: 3582184 • Letter: T
Question
The scenario is you are the lead software engineer for a NASA project to fly round-trip to the largest asteroid, Ceres, with a manned crew. What languages might you use for these different software components and why? Discuss in terms of the types of languages from Cauhan and also choose a specific language for each.
HERE IS THE SCENARIO IN FULL:
Guidance & Navigation, which is used to determine where the spacecraft is in relation to the Earth and Ceres, requiring intensively mathematical problems but do not require solutions very quickly. Your team is not very experienced and basically knows C++.
Propulsion & Attitude Control, which is used to thrust the spacecraft to the target in a fuel-efficient manner as well as maintain the orientation (which way the spacecraft is pointing), requiring less mathematical than G&N but does need very quick calculations in real-time. Your team is very experienced and knows C.
Situational Awareness, which is to keep the crew informed of various sub-system statuses and alarms, allowing them to readily see what is going on and act upon events or alarms. Your team is experienced in Java, but has a lot to develop in short order for training
Mission Control, which tracks the space vehicle as well as ground stations around the world that are used to communicate (out of three stations, only one may be in range to communicate with the vehicle at any given time), requiring both planning and real-time calculations. Your team is somewhat experienced, knows Java but needs to create web services across different types of platforms for program managers
Explanation / Answer
For Guidance & Navigation, which includes intensive mathematical problems, we should use language like Matlab or R programming. These are similar to C++ but provide much more mathematical functions to the user. The team can learn the language quickly and use it for complex mathematical problems with ease.
For Propulsion & Attitude Control, C like structured programming language is good since it provides all basic mathematical functions and also helps to implement programs in a structured manner. To achieve optimized and fast results, it is good to implement programs in a structured manner. Also, these languages provide access to peripherals and registers directly which can speed up operations.
For Situational Awareness, object oriented programming is good since each subsystem can be represented by classes and instances. Their individual status can be maintained and accessed in objects of the classes. Since the team is familiar to Java, it is better to stick to it. Any other object oriented language is also fine.
For mission control which requires web services. J2EE would be the preferred choice as it allows Java experienced programmers to quickly understand and implement it. J2EE also provides efficient ways to implement web services and is also easy to maintain.