SWE 623: Formal Methods in Software Engineering


Objective (as stated in the course catalog)

This is a course in formal mechanisms for specifying, validating and verifying software systems. Program verification through Hoare's method and Dijkstra's weakest preconditions. Formal specification and refinement towards implementation. Integration of formal methods with existing programming languages, and the application of formal methods to requirements analysis, testing, safety analysis, and object-oriented approaches.

This Class

This semester, the class will devote 1/2 of the time to traditional topics such as logic based specification and correctness analysis. The second half of the class will be devoted to topics that apply formal methods to the semantic web - a current topic of academic and industrial interest. I would welcome any suggestions from students in the selection of topics for the second half, and may not be followed as exactly stated here. I expect the students to devote this part of their time to come up with their own project.

Prerequisites

SWE Foundation courses + SWE 619 (alternatively CS 540 and CS571)

Course Material

  1. The Object Constraint Language by Jos Warmer and Anneke Kleppe, ISBN 0-201-37940-6.
  2. Modelling and Reasoning about Systems by Huth and Ryan, ISBN 0-521-65602-8.
  3. Supplimentary reading material supplied during the class.

Teaching

  1. Class Meetings:Tuesday 7:20pm-10pm in Inovation Hall 134
  2. Instructor: Duminda Wijesekera, email: dwijesek@gmu.edu
  3. Instructor Office Hours:, Tuesday 6pm-7pm in ST II Rm 351
  4. Teaching Assistant:Naren B. Kodali email: kodali@ise.gmu.edu
  5. TA Office Hours:Not determined yet
  6. TA's Project and Information Webpage

Grading Policy

Grades are computed as: Assignments: 35%, Quizzes: 30%, Final Project: 35%. Late Submissions: Quizes cannot be retaken. Homework assignments allowed under exceptional circumstances with prior approval of the instructor only.

Quizzes

Each class begins with a short quiz. Each quiz covers material from the previous session(s). The goal of the quizzes is to keep students abreast of the material covered in class. There are no exams.

Project

The intent is to give students the opportunity to apply material from the class in greater depth than homework assignments allow. A good way to think about the project is to imagine submitting your work as a technical paper to a scientific conference. (An outstanding project might well end up in exactly this situation.) The instructor/TA's role is to approve project proposals and to referee the final product. While the instructor/TA is more than happy to discuss potential project ideas with any student, the instructor will not supply a "canned" project recipe.

Announcements

  1. The paper by Liskov and Wing
  2. Homework #3 has been revised and the new due date is October 07 in class - further extending the due date of October 02.
  3. Oct 08: Powerpoint transparency added for inheritance.
  4. Oct 08: Syllabus updated to reflect the current teaching schedule.
  5. Reading for Prolog: There are many references for Logic Programming in general and for Prolog specifically. The GMU library laso has a many books on this topic. An example text book is "Prolog" by Clocksin and Mellish.
  6. Classes on 11/04 and 11/11 will be taught by Naren B. Kodali.
  7. All final projects due by December 08th.
  8. Homework 5 has been revised to correctr a mistake in question #3.
  9. The class on 11/25 will be taught by William H. Winsborough. Please obtain the slides for the class from here.
    6 Slides per page
    2 Slides per page


Approximate Schedule


Meeting Date Topic Reading Assignment
1 08/26 Introduction
Review of UML and OCL
Waremer and Kleppe Ch 1-3 Homework 1
2 09/02 Propositional Logic - Page 1-18 of
Propositional and Predicate Logic
Begin HR Ch1 and 2
3 09/09 Predicate Logic - Pages 18-41 of
Propositional and Predicate Logic
Finish HR Ch 1 and 2 Homework 2
4 09/16 Program Verification (Floyd-Hoare Logic) HR 4.1-4.4 Homework 3
5 09/23 Continue Floyd-Hoare Logic HR 4.1-4.4
6 09/30 Types and inheritance Paper by Liskov and Wing Homework 4
7 10/07 Finish types and inheritance
Begin Prolog
Paper by Liskov and Wing
** 10/14 Fall break: No Classes Fall Break
8 10/21 Continue Prolog( Modern programming Languages - Adam Webber) Prolog Slides Set 1, Set 2, Set 3 Homework 5
9 10/28 Description logic( Slides from Ian Horrocks- Univ of Manchester) Descricption Logic Slides(PDF)
10 11/04 The Semantic Web and Ontologies(Slides from IPSI, Fraunhofer, Ivana Vujovic et al) Semantic Web,Ontologies Slides(PPT)
11 11/11 Details of RDF, DAML+OIL and OWL Papers TBD
12 11/18 Searching the web
logically and procedurally
Papers TBD Homework 6
13 11/25 Logic, proof and trust for the semantic web
Case study: RuleML: Lecture by Dr.William Winsborough
6 Slides per page
2 Slides per page
14 12/2 Course wrap up Papers TBD


Some Useful Web Pages

  1. Oxford Formal Methods