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: TBD
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
·
use
constraint solving tools (e.g., the Alloy Analyzer and USE) to analyze software
models
·
use
the UML and OCL to rigorously model software
·
form
informed opinions about model-driven software development approaches
and have working knowledge of basic concurrency modeling and
model checking concepts.
Learning
Resources/Texts:
Required
Text:
·
Software Abstractions: Logic, Language, and Analysis;
Daniel Jackson; Revised Edition, The MIT Press
·
The Object-Oriented Constraint Language: Getting
Your Models Ready for MDA by Jos Warmer and Anneke Kleppe, 2004, Addison Wesley
Professional publishing, ISBN 0-321-17936-6.
Supplementary
Texts:
· 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
The
course consists of the following major components: lectures, studios and major assignments.
In a studio, students work in a group (3 to
4 persons) on software specification/modeling problems. On-campus students will
work and discuss their solutions in class on Monday and Wednesday of the studio
week.
The
following is the schedule that is followed in each studio week:
·
Saturday: Students start to work on
problems.
·
Monday-Thursday: Students discuss problems they
encounter on the RamCT bulletin board setup for the studio. A student can help
other teams by outlining fixes to posted problems, but they should not share
all details of their solutions.
·
Friday-Sunday: Students use the discussions
to improve their solutions. Final solutions must be posted on RamCT by Sunday
midnight if teams are to receive a grade for the studio. Other groups will rate
the solutions in the following week (see below).
In the
following week groups will evaluate and rate the solutions submitted by other
groups. The evaluations and ratings must be sent to cs517@cs.colostate.edu by
Sunday midnight of the rating week. These ratings will be used to determine a
grade for a studio solution. The lecturers will post the evaluations and
ratings on the bulletin board without the names of evaluators.
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 cheating 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 |
UML
Modeling review |
3 |
Using
the Object Constraint Language (OCL) |
4 |
Studio 1: UML modeling studio
1 |
5 |
Studio 2: Class
modeling with OCL |
6 |
Introduction
to Alloy |
7 |
Alloy
Logic, Language; |
8 |
Studio 3: Basic
Alloy modeling; Major Assignment 1
due: UML/OCL modeling |
9 |
SPRING BREAK |
10 |
Studio 4: Alloy
modeling with operations
|
11 |
Alloy
modeling with traces |
12 |
Modeling
concurrent systems: Concurrency models |
13 |
Linear
temporal properties |
14 |
An
introduction to Temporal Logic |
15 |
Studio 5:
Concurrent System Modeling Studio |
16 |
Project
presentations |
17 |
Major
Assignment 2 due: Alloy,
concurrency 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 lecturer must approve the software system.
Students are required to participate in online discussions.
A total of 10 discussion questions will be made available during the semester.
Each student must do the following to get a point for a discussion: (1) post
their answer to the questions, and (2) respond to the answers posted by at
least two other students. Partial points will not be given. Discussions will start on Sunday
and end on the following Sunday. To give students a fair chance of responding
to your answers please post your answers as soon as possible. As a guideline,
you should post your answer by Thursday of the discussion week to give other
students a chance to respond.
Marks
will be allocated as follows:
·
Quizzes (5%)
·
Discussions (5%)
·
Studios (25%)
·
Project (25%)
·
Major Assignment 1: UML/OCL (20%)
·
Major Assignment 2: Alloy, Concurrency modeling (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.
· Jan. 22: First CS517 lecture
· Feb. 23: Project proposal & plan due
· March 9: Major Assignment 1 due
· March 24: (on-campus) Last day for course withdrawal
· April 27: Project due
· May 11: Major Assignment 2 due
More
links will be added to this section as the need arises.
Last modified:
January 21, 2014