CIS 842 Official course description
Specification and Verification of Reactive Systems (CIS 842)
Purpose:
The trend in modern software construction is toward
concurrent and distributed systems. In addition,
the amount of software in embedded systems such as micro-controllers
in automobiles, aircraft, medical devices, military equipment, etc. is
increasingly dramatically. Unfortunately, the inherent size and
complexity of such systems prohibit classical validation techniques,
such as testing and technical inspections, from providing high levels
of assurance of reliability and correctness. This is an especially
important issue in embedded systems, because embedded software must be
extremely reliable before it is deployed since failures
can mean loss of life and/or huge financial costs. Moreover, it
is usually hard to update embedded software once it is deployed.
Although originally applied to hardware systems,
finite-state verification (FSV) techniques such as model-checking
are emerging as the front-runner
in the race to automate high-quality assurance of software. In FSV,
a computational system's behavior is modeled as a finite-state
transition system (an automaton);
properties to be verified are stated in a complementary
formalism such as temporal logic formulas
or finite state automata.
Property verification
is performed by mechanically
enumerating all reachable states in the transition system and
checking that the property holds at each state.
Although this technique takes worst-case
exponential time, it has been used nonetheless to
validate crucial properties of
on-board spacecraft controllers,
network protocols,
graphical user interfaces,
railway interlocking systems, and industrial control
systems.
In this course, we will study various model-checking techniques with
the goal of applying those techniques to real concurrent software systems to
address the problems described above.
While we will study foundational issues related to explicit-state
model-checking algorithms and abstraction, the emphasis will be on
- understanding
the methodology and processes that one needs to go through to
apply model-checking to software and
- developing an in-depth understanding of existing model-checking tools
-- particularly, the Bogor
model-checker developed by in the SAnToS research group at Kansas State.
Far from being removed from practice,
software model-checking is being actively investigated and applied
at a number of industrial and government research labs.
In addition to model-checking tools developed at Kansas State,
we will be discussing developed at Bell Labs (Spin,Verisoft),
NASA Ames (JPF), and Microsoft Research (SLAM).
Schedule:
Lecture: Lectures will be held Tuesday and Thursday 9:30 - 10:45 in Nichols Hall 127. The schedule will be quite "flexible" -- meaning the classes may be cancelled frequently due to instructor travel or due to the course shifting into a more project-oriented mode.
Prerequisites:
Officially, CIS 771. Unofficially, significant Java programming experience and
some basic knowledge of logic and software specifications.
Credits:
Instructors:
- John Hatcliff,
Nichols 324, Office Hours: 10:45a.m. -- 11:45a.m. Tuesday and Thursday
(hatcliff@cis.ksu.edu)
Marking Scheme:
- Homeworks (30%)
- Quizes (20%)
- Course Project (with written & oral presentation/defense) (50%)
The course homeworks and projects will focus on use and modification
of the Bogor model-checker.
Grading Policy:
The course web-page will give the due dates for all of the
homework. This is to facilitate your planning and time-management.
Given this we expect assignments to be turned in on the due date unless
prior arrangements have been made; late assignments receive the
following penalties:
- < 30 hours late -- .5% reduction for each 10 minute increment past
the submission deadline
- > 30 hours late -- no credit
Grading scale:
- A: 90% -- 100%
- B: 80% -- 89%
- C: 70% -- 79%
- D: 60% -- 69%
- F: below 60%
Note: To receive a grade of A in the course, you
must receive at least a B on the course project
(to receive a B, you must get a C, etc.).
Otherwise, your grade will be assigned at the discretion of the instructor.
Computer Access:
This course involves a significant amount of programming
using Java and other software tools. All of these
these can be accessed by you (for free) and installed on your
own machine.
If you prefer, we have everything you need on our CIS department
machines so you should can get an account on our machines. See the computing
systems page for information on how to get an account and use our
machines.
Attendance policy:
Faithful attendance to all lectures is strongly
urged but not required. You are responsible for any material presented
or referenced during lectures.
Other Administrative Issues
- Incompletes:
An incomplete (I) final grade will
be given only by prior arrangement in exceptional
circumstances conforming to departmental policy
in which the bulk of course work has been completed
in passing fashion.
- Academic Misconduct:
Plagiarism and cheating are serious offenses and may be
punished by failure on the exam, paper or project;
failure in the course; and/or expulsion from the
university. For more information refer to the ``Academic
Conduct'' policy in the Student Life Handbook,
which may be found in the KSU Campus Phone Book.
- Students with Disabilities:
If you have any condition, such as a physical or learning
disability, which will make it difficult for you to carry
out the work as we have outlined it or which will require
academic accommodations, please notify me in the first
two weeks of the course.
Some of these policies are also addressed by official
statements
from the KSU College of Engineering which will be considered a part
of this syllabus
Maintained by John Hatcliff
[HOME]