Computer
Science Department
Course Coordinator: Robert B. France.
france at cs . colostate . edu
Tel: 970-491-6356
Fax: 970-491-2466
Lecture Times and Location (on-campus): Monday, Wednesday 3-4:15 PM; CS Building, Room 325
Office Hours: Monday, Wednesday 10-11AM; 1-2PM
Instructor for On-line course: TBD
Description:
The course will focus on advanced software modeling and specification
techniques. Topics include formal specification techniques, and model-driven
software development. Good working
knowledge of predicate logic, set theory, and basic knowledge of the UML is
assumed.
Prerequisite: IMPORTANT: You must have a very good background in (undergraduate level) Discrete Mathematics, in particular, you must be very familiar with predicate logic and basic set theory. Students who need to brush up on their logic and set theory should look over an undergraduate level discrete math book before the start of classes. I also recommend the text book on Discrete Mathematics in the Supplemental Text part below.
In addition, students must satisfy at least one of the following:
· Successful completion of CS414
· Significant industry experience in object-oriented programming and familiarity with the Unified Modeling Language (UML)
· Permission of instructor.
Course Objective: Upon completion of this course, students will be able to
· read and write formal specifications of software systems in Alloy
· be familiar with model checking concepts
· use the UML and OCL to rigorously model software
· form informed opinions about model-driven software development approaches
Learning Resources/Texts:
Required
Text:
Supplementary
Text:
An
Introduction to Discrete Mathematics, Formal System Specification, and Z; 2nd
Edition; D. C. Ince; Oxford University Press. This book can be used
to help students brush up on predicate logic and set theory skills.
Principles of Model
Checking; Christian Baier, Joost-Pieter
Katoen; The MIT Press. The material on concurrency modeling will be
taken from the early chapters of this book.
An on-line set of RamCT pages providing lecture notes and quizzes, in addition to asynchronous on-line discussions will be available.
Suggested Tools:
The Alloy tool can be obtained from the Alloy Community.
The Uppaal model checking tool can be obtained from here.
The following open-source UML modeling tools are recommended for use in this course:
· Topcased: An eclipse based modeling environment
· Papyrus: An eclipse based UML modeling tool
·
Use: A tool for
analyzing OCL constraints
Course consists of lectures, studios and major assignments. In a studio, students work with partners on modeling or specification exercises. During the week of the studios, students can get feedback on their models: For the on-campus students the studios will take place during class times; Online students can post their models and questions to the bulletin board for feedback from other students and from the lecturer. Each team must submit polished versions of their models the Monday after the week of a scheduled studio to be graded.
Major assignments replace exams in this course. A major assignment requires that each student develop and analyze formal specifications of a software system. Students must not collaborate on the major assignments - collaboration is a form of cheating and any evidence of such will be treated as required by the university. Two major assignments will be given in this class. The Lecture, Studio, and Major Assignment schedule is given below:
|
Week |
Topic |
|
1 |
Course Introduction; Predicate logic and set theory pre-test |
|
2 |
Software modeling review: A whirlwind tour of UML |
|
3 |
Studio 1: UML
modeling studio 1 |
|
4 |
Using the Object Constraint Language (OCL) |
|
5 |
Studio 2: Class
modeling with OCL |
|
6 |
Introduction to Alloy |
|
7 |
Alloy Logic, Language; Major Assignment 1: UML/OCL modeling |
|
8 |
Studio 3: Basic
Alloy modeling; |
|
9 |
SPRING BREAK |
|
10 |
Alloy modeling (operations, traces) |
|
11 |
Studio 4: Alloy
modeling |
|
12 |
Modeling concurrent systems: Concurrency models |
|
13 |
Linear temporal logic: An introduction |
|
14 |
Temporal logic cont'd |
|
15 |
Studio 5: Concurrent
System Modeling Studio Using Uppaal |
|
16 |
Project presentations; Major Assignment 2: Alloy modeling |
Students will work in groups (no more than 3 persons in a group) or individually on a project in which they will specify and analyze a software system using a formal specification/modeling approach. The software system must be approved by the lecturer.
Marks will be allocated as follows:
· On-line quizzes (5%)
· Discussions (5%)
· Studios (25%)
· Project (25%)
· Major UML/OCL Assignment (20%)
· Major Alloy Assignment (20%)
All students are expected
to conduct themselves professionally. We (the instructors) assume you are
familiar with the policies in the student information sheet for the department.
The department’s code of conduct can be found here. Students should
also be aware of professional codes of ethics, for example, the ACM SE
Code of Ethics and the IEEE-CS SE Code of Ethics.
More links will be added to this section as the need arises.
Last modified: January 13, 2012