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


CS517 Software Specification & Design
Spring 2014


 

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: 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


Course Structure 

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

 


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 lecturer must approve the software system.


Discussions

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.


Grading Information

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


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.


Important Dates

·      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


Links to Related Materials

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



Last modified: January 21, 2014