Computer Science 3080: "Software Engineering 2"

New Things

The Course Background section.

Overview

This page describes the subject CSC3080 available within the
Faculty of Computing and Information Technology, at Monash University. The lecturer is John Hurst, who also designed the subject.

The subject assumes csc2050 as a prerequisite. csc2050 has an emphasis of being a broad introduction to S/E, while csc3080 tackles the two topics of software reuse and software specification in more depth.

Summary of this Document

Course Objectives

There are three main objectives in this course:
  1. To understand the role and use of formal specification languages, particularly the Z notation.
  2. To understand the object-oriented programming paradigm, and its role in supporting software engineering.
  3. To acquire some knowledge of modern commercial software engineering practice.
The background and concepts of the formal specification of software are studied, and by the end of the course students are expected to be able to read and write formal specifications in Z, and relate them to realistic programs. The use of an object-oriented language is discussed, particularly in relation to some key ideas of software engineering, such as project management, software modularity, software development, software reuse and software architectures. Guest lectures will discuss the use of object orientation and software engineering concepts in a modern commercial software house.

Course Background

A 2 page handout describing the course background, assignment timetable, texts and lecture plan is available.

Background Material

It is assumed that students will develop skills in using LaTeX and Nuweb. LaTeX is used to allow typesetting of Z formal specifications. The LaTeX Guide is intended to get students started with LaTeX, while The Nuweb Guide is an introduction to the Nuweb literate programming tool. See The Literate Programming Library for further material on literate programming.

Lectures

The csc3080 lecture notes are all available on line, in the directory Lecture Note Directory. Both the source text (in TeX form) and Postscript versions are available.

The lectures are split into three parts, of weight 1/4, 1/4, 1/2, run in parallel through the semester. The first quarter is titled "Object Oriented Programming" (labelled `oo' in the notes), and is an introduction to OO techniques and their role in Software Engineering (particularly reuse). The second quarter is a series of guest lectures by Dr Graeme Port, of Open Software Associates concerning modern industry application of software engineering principles (labelled `so' in the synopsis, not available on-line). The second half is entitled "Formal Specification" (labelled `fs' in the notes), and is an introduction to the Z notation.

Synopsis

        Date        Tuesdays            Thursdays
L1      Mar  5      Introduction
L2      Mar  7                          fs-01 
L3      Mar 12      so-01
L4      Mar 14                          fs-02 
L5      Mar 19      oo-01
L6      Mar 21                          fs-03 
L7      Mar 26      so-02
L8      Mar 28                          fs-04 
L9      Apr  2      oo-02
L10     Apr  4                          fs-05 
L11     Apr 16      so-03
L12     Apr 18                          fs-06 
L13     Apr 23      oo-03
L14     Apr 30      so-04
L15     May  2                          fs-07 
L16     May  7      oo-04
L17     May  9                          fs-08 
L18     May 14                          fs-09 
L19     May 16                          fs-10 
L20     May 21      so-05
L21     May 23      oo-05
L22     May 28      so-06
L23     May 30      (cancelled)
L24     Jun  4      oo-06
L25     Jun  6                          fs-11 

Exercises

Assessment

There are 3 exercises worth 30% of the final mark. A 2 hour exam is worth the remaining 70%. Students must obtain a mark of 50% or better in both the practical assessment and the final examination, in order to pass the course overall. All lecture material is examinable.

Submission

Exercises are submitted for assessment through an electronic mechanism. This provides for automatic evaluation of the student's exercise, and returns an indication to the student as how well the exercise meets the specification. Where possible, the exercise is awarded marks automatically.

The submit program itself is described in /cs/cc/man/man1/submit.1 Add /cs/cc/man to your MANPATH and type man submit for instructions on how to use.

Handouts

There are 3 exercise handouts:
Exercise 1
To construct a C++ program that outputs an AFL football team ladder.
Exercise 2
To gain familiarity with Z specifications and reuse previously written software.
Exercise 3
Further reuse, in the context of inheritance and generalization of software.

Some test data for these exercises is available:

Other Software Engineering Links