Homework 6. Evaluate a language for secure camera-based HVAC control

[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 SecureTCE, a system intended to save money by controlling temperature more efficiently in buildings. Instead of using traditional building thermostats, SecureTCE uses inexpensive cameras to implement a so-called Thermal Comfort Estimation (TCE) 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 TCE systems, see:

A problem has come up when trying to market the TCE 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:

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. Crystal
  2. Go
  3. Rust

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 Go 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; the 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 SecureTCE 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.