Description: Description: Description: Description: Description: Description: Colorado State University Computer Science Department


CS517 Software Specification & Design
Spring 2012


 

Basic Course Information

Grading Information

Course Structure

Links

Project

 


Basic Course Information

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 Structure 

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

 


Project

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.


Grading Information

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%)


Professional Conduct

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.


Links to Related Materials

More links will be added to this section as the need arises.



Last modified: January 13, 2012