Software Design for Cyber-Physical Systems
Topics
- Cyber-Physical Systems (CPS)
- Introduction to Lingua Franca
- Software Engineering Principles for CPS
- Concurrent and Timed Models of Computation
- The Role of Determinism
- Parallel Execution on Multicore
- Coordination of Distributed Software
- The Tradeoff Between Consistency and Availability
- Introduction to Semantics
Teaching Methods
This will be a lecture with discussions. Students will be assigned some programming exercises of varying difficulty.
Examination Modalities
There will not be an exam. Instead, students will turn in well-commented code on assigned exercises and participate actively in discussion.
Reading and Programming Assignments
- Due Wednesday, May 11: Inverted Pendulum Controller
- Due Wednesday, May 18: Aircraft Door System
- Due Monday, May 30: Distributed Aircraft Door System
Software
The above assignments include (open access) reading and require (open source) software. You will need to install at least one Lingua Franca tool. I recommend the Eclipse-based IDE called Epoch, but if you familiar with Microsoft Visual Studio Code, that also works well. If you prefer old-fashioned command-line tools, those are available as well.
If you are using a Windows laptop, then you will need to install a Linux virtual machine or otherwise get access to a Linux or Mac machine to do the third assignment. The distributed version of Lingua Franca is not supported on Windows.
Previous Knowledge
Some programming experience in any of C, C++, Python, JavaScript, or Rust.
Outline
A- Introduction to CPS
- Motivation for Lingua Franca (Video)
- Determinism (video)
- Time in Lingua Franca
- Limits of Determinism (video)
- Parallel Execution (video)
- Concurrent Models of Computation (video of the Deterministic Concurrency portion)
- Distributed Systems (video)
- The CAL Theorem (tradeoffs video and CAL theorem video)
- Reactor Semantics (Part 1 video, partial-order semantics and Part 2 video, metric-space semantics).
- Models Revisited (a href="https://youtu.be/o5l6FdQvn20">video)