Computer Science 3080: "Software Engineering 2"
The Course Background section.
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.
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.
Summary of this Document
There are three main objectives in this course:
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.
- To understand the role and use of formal specification languages,
- To understand the object-oriented programming paradigm, and its role
in supporting software engineering.
- To acquire some knowledge of modern commercial software engineering
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.
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.
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.
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
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
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.
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:
- test1-1 first test set for exercise 1
- test1-3 second test set for exercise 1
- test2-1 first test set for exercise 2
- test2-2 second test set for exercise 2
- test2-3 third test set for exercise 2