The goal of this class project is to provide you with hands-on experience with the modeling and analysis of complex systems. It is intended to be open-ended, and to allow you to explore an area of the course material that you want to know more about. The project can be done individually or in groups of up to 3 students. If you have not yet found a project group and would like to work in one, please contact the teaching staff as soon as possible.

Project deliverables

The project deliverables will be broken down in three main components:

  1. Proposal (5%): A two page proposal that describes the problem you are trying to solve and illustrates how you will use the concepts we learned in class to tackle the problem. Due by the end of day on Tuesday 10/16/18 .
  2. Paper (20%): A conference-style paper of at least 6 pages that presents the problem and related literature, discusses your approach in detail and then summarize your results and findings. You must use the Usenix LaTeX template to typeset your paper. Due on the last day of classes.
  3. Presentation (10%): A presentation of your research and findings to be given during our class workshop. The date of the workshop will be announced after the registrar has announced the final exam dates. If you will be traveling during the final exams period, please do let us know as soon as possible.

Project proposal

The project proposal is intended to push to think about an area of systems engineering that your are interested in, perform a literature review to check on the latest open-ended research questions, and develop an approach to tackle some of these problems using the tools and techniques that we have developed and will develop in class. The proposal is due on Compass2g by the end of the day on Tuesday 10/16/18.

Your proposal should be a minimum of two pages (using the provided LaTeX template) that must include the following:

  • An introduction section that describes your area of interest and the problem that you trying to tackle. One way to think about the introduction section is for it to be your sales pitch. You have to convince us why is your problem important and why we should care about.
  • A related work section that describes previous approaches to solve this problem and why do you think they were not enough to address the problem. You must cite at least 3 papers from major conferences that deal with the problem you are trying to solve (papers appearing in the Hawaii International Conference on XXX do not count!). See below for a list of major conferences in the systems area.
  • An approach section that describes your approach, the tools you are going to be using and the challenges you anticipate you will be running into (e.g. the model will be too large to solve, simulation will take too long, etc.). For each challenge, describe an initial idea about how you think you will overcome them.

We will provide you with feedback on your proposals as soon as possible. Please make use of office hours for sanity checks on your ideas prior to submitting your proposals.

Relevant Conferences

Below you will find a list of conferences that might be useful for you when thinking about your projects and that will definitely help you in finding good prior work. Please note that this list is far from being exhaustive and thus you might find other (well ranked) conferences that might be helpful. In case you do and you would like us to add them to the list, please feel free to contact the teaching staff.

  • The ACM International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS): link
  • The Usenix Symposium on Operating Systems Design and Implementation (OSDI): link
  • The ACM Symposium on Operating System Principles (SOSP): link
  • The Usenix Symposium on Networked Systems Design and Implementation (NSDI): link
  • The Usenix Security Symposium (aka Security): link
  • The IEEE Symposium on Security and Privacy (aka Oakland): link
  • The ACM Conference on Computer and Communication Security (CCS): link
  • The International Conference on Very Large Data Bases (VLDB): link
  • The Annual Conference International on Mobile Computing and Networking (MobiCom): link
  • The ACM Annual Conference of the ACM Special Interest Group on Data Communication (SIGCOMM): link
  • The ACM Internet Measurement Conference (IMC): link
  • The ACM Workshop on Hot Topic in Networks (HotNets): link
  • The IEEE International Conference on Computer Communications (INFOCOM): link
  • The International Conference on emerging Networking EXperiments and Technologies (CoNEXT): link
  • The IEEE International Conference on Dependable Systems and Networks (DSN): link
  • The IEEE International Conference on Distributed Computing Systems (ICDCS): link
  • The IEEE International Symposium on Reliable Distributed Systems (SRDS): link
  • The IEEE International Symposium on Software Reliability Engineering (ISSRE): link
  • The International Conference on Quantitative Evaluation of SysTems (QEST): link

Sample Project Ideas

Find below a couple of sample project ideas. These ideas are only to serve as samples, so please feel free to suggest new ideas based on your preferences and area of work.

Sample project 1: Learning Fault Trees

Our ability to collect and store data regarding system performance and failures is increasing rapidly. Machine learning can be a powerful tool to help us make sense of the vast amounts of data, and can be used to help build better system models. Meike Nauta et al demonstrate one such approach in their paper LIFT: Learning Fault Trees from Observational Data. Projects could extend the ideas in the paper in a number of ways: by applying the approach to different data sets, using the approach to create models that conform to other formalisms (such as attack trees, reliability block diagrams, or stochastic Petri nets), or refining the approach itself (such as adding the ability to learn XOR gates).

Sample project 2: Modeling cryptocurrencies

A large number of interesting cryptocurrency projects have been proposed and are in various stages of development, but it is difficult to know how they will operate once they have been implemented. Modeling can help forecast the effectiveness of cryptocurrency projects, and explore different design alternatives. Chris Cordi, a recent UIUC alumnus, shows one such modeling project in his thesis Simulating High-Throughput Cryptocurrency Payment Channel Networks. The thesis simulates different payment channel network designs. Projects could extend the thesis, or simulate other cryptocurrency proposals or designs and model them in a similar fashion.

Sample project 3: Modeling Transportation Systems

The DSN2017 paper Smart Maintenance via Dynamic Fault Tree Analysis: A Case Study on Singapore MRT System analyzes Singapore’s train maintenance schedule through fault trees. A project could extend the paper in several ways. First, the paper claims that 116274 states form a state space that “is too large for computation”, but it may be possible to compute it using Mobius or some other tool. Second, the paper could be extended to support modeling preemptive maintenance. Third, projects could also do a sensitivity analysis to determine which components have the largest impact on the mean time to failure.

Sample project 4: Random Number Generators

Simulators typically depend on high-quality pseudo-random number generators (PRNG). A project could investigate the different types of PRNGs, how they work, their relative strengths and weaknesses, and how to test the quality of a PRNG. The following paper could help with the initial stages of an investigation into this topic.

Sample project 5: Healthcare Systems

Healthcare applications for modeling can be both interesting and have a high societal impact. The paper Hospital Inventory Management Through Markov Decision Processes at runtime demonstrates this with a paper that suggests a way to schedule when drugs should be reordered. The paper could be extended to allow the technique to coordinate the reorder schedule for several drugs at once, or to analyze temporal aspects (i.e. can the approach utilize the fact that some drugs may be in higher demand during certain seasons or on certain days of the week?).

Sample project 6: Network simulations

One project I am particularly interested in is the extension of the ns-3 simulator to provide a scalable framework for running Distributed Denial of Service (DDoS) experiments using real world network topologies. The approaches for achieving that need to be well established in the field of simulation and also provide for scalable experiments and statistically significant results.

Useful tools:

In addition to general purpose programming languages and software packages, you might find the following tools useful: