Training Reading List for New Comers
This reading list is to equip new MS students with basic knowledge required for the research of teh PSWlab. This seminars starts from April and ends in early June, just before final exam.
Each part of seminars consists of one main paper and one case study paper. You have to download and try a corresponding tool with various examples. Also you have two assignments for each part; one is easy and the other is a little bit harder.
For rewriting assignments, a key point is to get concrete understanding of the syntax of a corresponding language and to understand a model and requirements accurately. Therefore, do not rewrite a model blindly character by character, but pay careful attention to understand what you are typing.
Part I: Process Algebra Basics (2 weeks)
- Process Algebra by R.Cleaveland and S.Smolka (upto sect 3)
- End-to-End Deployment of Formal Methodology by M.Kim and I.Kang.
- Concurrent Workbench of New Century home page
- Manually rewrite the example of "End-to-End ..." and check that you have a same result from CWBNC tool.
- Redesign a system model of the example as you want. Then, prove that your model satisfies the requirement properties.
Part II: Model Checking Basics (2 weeks)
- The Model Checker SPIN by G.Holzmann
- Formal Analysis of a Space Craft Controller using SPIN by K.Havelund, etc.
- Spin home page
- Manually rewrite leader and leader2 examples in the spin's example directory and check that you have the same result from Spin
- Redesign a multiple reader/writer system model in Promela. Then, prove that your model satisfies the requirement properties.
Part III: Runtime Verification (2 weeks)
- Java-MaC: A Run-Time Assurance Approach for Java Programs by M.Kim, etc.
- Verisim: Formal Analysis of Network Simulations by K.Bhargavan, etc
- Java-MaC home page
- Manually rewrite PEDL and MEDL scripts in the MAV example (an example in the MaCSware 0.90) and instrument the MAV program to check that you get an expected result from the Runtime Checker.
- Instrument and check the multiple RW system described in Section 184.108.40.206 "Readers and Writers" of "Concurrent Programming in Java: Design Principles and Pattern" (2nd ed by Doug Lea). You should check requirement properties described in "End-to-End ..." by writing down corresponding PEDL and MEDL scripts for the requirements.
NOTE: Install a full package of Cygwin on your windows machine for your future convenience.