CIS 890: Development of High-Assurance Software Systems, Spring 2019


The course will cover techniques for developing high assurance systems – systems that are safety critical, security critical, or mission critical in nature. In contrast to general purpose systems, high assurance system development tends to place a more stronger emphasis on rigorous requirements and specifications, verification and validation, risk management, and certification. High assurance system development is more likely to be amenable to and benefit from formal verification techniques – techniques that use various forms of machine-checkable mathematics or logic to demonstrate that a system satisfies its specification. The goal of this course teach techniques for developing critical software that would usually not be covered in other courses in your computer science degree program. In particular, the course will focus on writing requirements for safety critical systems, formal architecture definition, risk management techniques including various forms of hazard analysis, safety systems, and automated verification. We will aim to illustrate an end-to-end development process for critical systems using examples of varying size.

Note:There is not enough time in the course to cover all topics relevant to safety-critical system development in detail. Topics chosen by the instructor in a particular semester will depend on the instructor’s current research activities.


For Spring 2019, the following topics will be covered...

  • Terms/concepts related to systems theory including control loops, sensing, actuating, etc.
  • Real-time OS concepts and real-time schedulability analysis based on FreeRTOS
  • Modeling embedded systems in AADL
  • Developing and simulated real-time embedded systems using the Sireum Slang development environment
  • Using the Arduino platform for building simple embedded systems
  • Using the ARM-based STM32 Discovery boards to build moderate size embedded systems
  • Applying concepts from above to safety-critical and IoT domains

Additional topics to be addressed by individual students depending on their interests...

  • Integrating the Slang, FreeRTOS, and STM 32 development context to support CAN-based communication
  • Connecting an embedded system to Amazon Web Services using Amazon’s IoT infrastructure
  • Using the hybrid systems annex of AADL to support modeling hybrid systems aspects of an embedded system
  • Developing Slang libraries for interfacing with sensors/actuators on STM32 boards


Objectives change depending on the instructor chosen content of the course. For Spring 2019, at the end of this course, you should be able to demonstrate the following knowledge and skills:

  • Be able to build a simple embedded system using Arduino
  • Be able to build a use a development tool-chain for STM32 on a realistic embedded systems project
  • Be able to use the Slang Embedded tools to model and build embedded systems
  • Run real-time schedulability analyses on an architectural specification of an embedded system

Meeting Times

Time:Tuedays (T) & Thursdays (U), 2:30pm - 3:45pm
Place:DUE3099A (CS Conference Room)


The course does not have any official prequisites, but CS 721 Real-Time Systems would be helpful.

There is quite a bit of programming in the course, so strong experience with programming and development environments will be helpful.


3 credits


John Hatcliff, Office: 2160 Engineering Hall, Office Hours: 3:45-5:30pm Tuesday and Thursday

Teaching Assistant

  • Venkat Margapuri


  • Individual Homework Assignments and Quizzes (35%)
  • Team Projects (55%)
  • Participation (10%)

Final letter grades are assigned based on the following scale: 90% to earn an A, and 80% to earn a B; 70% to earn a C, and 60% to earn a D.

This course includes both individual assignments and team projects. Individual assignments are expected to be completed “individually” (with no collaboration with other students). For team projects, each student is expected to make a unique and substantial contribution to the assigned project. Expectations for the project will be clarified by constructing a written contract that will summarize scope of the project, expected artifacts along with format and completeness of artifacts to be delivered, role and responsibilities of individual team members. The department does not assign a teaching assistant for this course. Because it will be difficult for the instructor to cover all the grading responsibilities for the course, the assessment mechanisms for the course will involve students in the course critiquing and evaluating work of other students (note that this type of activity will be overseen by the instructor to ensure quality).

Attendance Policy

In general, there will be NO make-up exams (and homework)! Special consideration will be given in only exceptional circumstances. Exceptional circumstances are generally limited to:

  • Emergencies: death in student’s immediate family, or near-death experience of the student.
  • Non-emergencies: certified excused absences for official university activities.

If you believe you qualify for exceptional treatment, you must notify the instructor prior to the date of the exam or exercise to be missed.

Statement Regarding Academic Honesty

Kansas State University has an Honor System based on personal integrity, which is presumed to be sufficient assurance in academic matters one’s work is performed honestly and without unauthorized assistance. Undergraduate and graduate students, by registration, acknowledge the jurisdiction of the Honor System. The policies and procedures of the Honor System apply to all full and part-time students enrolled in undergraduate and graduate courses on-campus, off-campus, and via distance learning. The honor system website can be reach via the following URL:

A component vital to the Honor System is the inclusion of the Honor Pledge which applies to all assignments, examinations, or other course work undertaken by students. The Honor Pledge is implied, whether or not it is stated: “On my honor, as a student, I have neither given nor received unauthorized aid on this academic work.” A grade of XF can result from a breach of academic honesty. The F indicates failure in the course; the X indicates the reason is an Honor Pledge violation.

Other Administrative Issues

  • Incompletenes: 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.
  • Drop Policy: It is your responsibility to drop the course if you are enrolled but decide not to complete the course — there are no “automatic” drops due to nonattendance. The University allows a retake of a course with removal of the prior grade, at most once per course, for a maximum of five courses.
  • Students with Disabilities: If you have any physical or learning disability which will make it difficult for you to carry out the work as I have outlined in this syllabus or which will require academic accommodations, please notify me the first two weeks of the course.
  • Harrassment: One purpose of your education is to help you develop skills, approaches, and abilities that are necessary for effective teamwork, and for your success in your profession and as a citizen. It is important that you understand your rights and responsibilities regarding the University’s Sexual and Racial Harassment policies (full text of the policies can be found on KSU’s web site at If you experience any situations, in or out of class, that seem inappropriate or that make you uncomfortable, a list of resources and courses of action to assist you can be found on the College of Engineering web site at
  • Expectations for Classroom Conduct: All student activities in the University, including this course, are governed by the Student Judicial Conduct Code as outlined in the Student Government Association By Laws, Article VI, Section 3, number 2. Students that engage in behavior that disrupts the learning environment may be asked to leave the class.
  • Campus Safety: Kansas State University is committed to providing a safe teaching and learning environment for student and faculty members. In order to enhance your safety in the unlikely case of a campus emergency make sure that you know where and how to quickly exit your classroom and how to follow any emergency directives. To view additional campus emergency information go to the University’s main page,, and click on the Emergency Information button.
  • Copyright Issues: Class and lecture notes for this course carry a copyright. Students are prohibited from selling (or being paid for taking) notes during this course to or by any person or commercial firm without the express written permission of the professor teaching this course.

For a more complete discussion of these issues see the course policies for the College of Engineering at Kansas State University: