$29
[131 home > Homework]
Motivation
You’re working for a company Haversack Inc. that designs, build and installs heating, ventilation, and air conditioning (HVAC) systems for large customers. Haversack has a team working on SecureHEAT, a system intended to save money by controlling temperature more efficiently in buildings. Instead of using traditional building thermostats, SecureHEAT uses inexpensive cameras to implement a so-called Human Embodied Autonomous Thermostat (HEAT) system that monitors the faces of human occupants, calculates the occupants’ facial temperatures, and uses these calculations to control the buildings’ air temperatures. The cameras are attached to building power, and have no battery backup; they use a wireless network to connect to base stations at secure locations within the building. As the cameras’ embedded CPUs have limited processing power and memory, the base stations do the bulk of the calculations and use the results to control the building’s HVAC units.
For more on HEAT systems, see:
• U of Michigan. Turning faces into thermostats: Autonomous HVAC system could provide more comfort with less energy. ScienceDaily. 2020.
• Li D, Menassa CC, Kamat VR, Byon E. HEAT – Human Embodied Autonomous Thermostat. Build Environ. 2020;178:106879. doi:10.1016/j.buildenv.2020.106879.
A problem has come up when trying to market the HEAT system: many of your potential customers manage buildings that house banks, the military, intelligence services, prisons, or other organizations that require high security. These customers are concerned that software in the cameras will be penetrated, and will leak information to adversaries. Although Haversack has used a mixture of C and C++ to program such systems in the past, your customers have heard that C and C++ programs are vulnerable to these sorts of attacks. In order to address these concerns, your boss wants your team to investigate alternative programming languages that support the following properties well:
• The software running inside the cameras must be cleanly written and easy to audit.
• The software should be a freestanding program, with no separate operating system (as the OS itself would be a source of security holes).
• The software running should be as simple and stripped-down as possible. This rules out using higher-level languages like Python or Java, which assume components like interpreters or garbage collectors that your potential customers might not trust.
• The software must be capable of interfacing to low-level hardware devices, such as camera or network interfaces.
Your boss suggests that your team evaluate alternative programming languages as candidates for this application. Your boss is not expecting working prototypes for the proposed application, just a feasibility study of the languages.
Assignment
Consider the following three languages.
1. Odin
2. V
3. Zig
If your student-ID is the 9 digit integer S, choose the language numbered (S % 3) + 1 from the above list, where % denotes the integer remainder operator. For example, if your student ID is 220-296-859, choose the language Odin because (220296859 % 3) + 1 equals 2.
Do some research on the chosen language and its support software as a potential platform. Your research should include an examination of the language and system documentation to help determine whether it would be effective. We want to know whether the language supports the proposed application well.
Evaluate the features of the proposed language. What strengths and weaknesses do you see? What are the biggest problems you anticipate when using it for this application?
Write an executive summary that gives the language’s strengths and weaknesses, along with problems for this application. Your summary should focus on the technology’s effects on security, ease of use, flexibility, generality, performance, and reliability; thie idea is to explore the most-important language-relevant technical challenges in doing the proposed app.
The summary should be suitable for Haversack’s software executives, that is, for readers who have some expertise in software, and who know C and C++ reasonably well, along with all the languages already covered in this class.
The summary should be in 10-point font or larger and should be at most two pages. You can put references and appendixes in later pages, if you can’t get under the page limit: the appendixes can contain any source code or diagrams that don’t otherwise fit. Please keep the resources for written reports and oral presentations in mind, particularly its rubrics and its advice for citations to sources that you consulted.
In your evaluation, do not worry about whether the SecureHEAT team already knows the language or its infrastructure; you can assume that they’ll come up to speed quickly.
For the purpose of this assignment, assume the latest stable version of the language; you need not worry about portability to earlier versions. Specify the version number in your summary.
Submit
Submit a file hw6.pdf containing your summary.