COSC 4311 System Development 1995/96

Calendar description     Gunnar Gotshalks     Last updated 1995 July 27

Background and expectations

This is a course for fourth year honours students who, I assume, have already a background in the major topics, programming languages, operating systems, and software design.

System Development deals with the construction of systems of interacting processes. It takes a great deal of knowledge and experience to develop systems of interacting processes. In this course we can only touch on the highlights and get acquainted with various methods. The expectation is that you can learn enough of the methods and technical notations discussed in the course to be able to carry on learning on your own.


Required readings

The first two items are a package to be purchased at the Departmental Office. The textbook is to be purchased at the University Bookstore. There is a bibliography at the end of this document.
        Lecture Notes on Jackson System Development
        G. Gotshalks
        Winter Term 1995/96, about 50 pages

        Selected Readings for COSC4311, System Development
        Collected by G. Gotshalks
        Winter Term 1995/96, about 100 pages

        Z Guide for Beginners
        M. McMorran, S. Powell
        Blackwell Scientific Publications, about 250 pages

Course Workload

The course workload is comprised of class participation, readings, exercises, reports and a take-home test.

On class participation The course format is an interleaving of lecture and seminar style. I expect lots of participation and discussion. You will have to draw on your past experiences, current readings and exercises to ask and answer questions raised by myself and the other students. You will be evaluated on your participation.

On readings You will be reading one text book (on Z), a monograph on JSD, a selection of papers. In addition you will browse through parts of two additional texts (on reserve in Steacie Library); one on JSD and the other on CSP. You are asked to read relevant material before the class discussion on the topic.

On exercises Exercises will be given to be done for class discussions. These will be assigned in class and posted in the course directory.

Spend a reasonable amount of time on each exercise. Simply giving an effort leads to a learning experience and discussions. The major point of an exercise is to get all class members thinking about the same problem.

On reports There will be three reports submitted for evaluation. Each report will deal with each of the three parts of the three parts of the course -- JSD, CSP, Z.

On tests A single take home test has been scheduled for the course. The test will be essay style and consist of questions on all parts of the course and their relationship.


Lecture Schedule

The lecture schedule is a guideline to topics that will be covered and when they will be covered. Since the course is primarily in seminar style where we will attempt to cover as much as possible of each of three topics, the lecture schedule does not have a detailed contents, except for identifying the three parts of the course. There are two hour and a half lectures per week but three lectures are missed due to holidays overlapping with lecture days.
PART 1:  JSD -- September 11 .. October 16 -- about 8 lectures
PART 2:  CSP -- October   18 .. November 8 -- about 7 lectures
PART 3:  Z   -- November  13 .. December 6 -- about 8 lectures

Grading Scheme

You will receive a letter grade for each of the following items.
  Report 1  20%
  Report 2  20%
  Report 3  20%
  Final take home test  25%
  Participation  15%

The guideline below shows on what basis each grade will be given. The grading guideline is based on the University standard published in the York Calendar.

The grades for each individual piece of work will be combined using a weighted average of the point values associated with each grade. The point values are the mid-points of the equivalence between letter and point value --- `.5' is raised.

A+ (9) Exceptional = Thorough knowledge of concepts and/or techniques and exceptional skill or great originality in the use of those concepts and techniques in satisfying the requirements of a piece of work or course.

A (8) Excellent = Thorough knowledge of concepts and/or techniques together with a high degree of skill and/or some elements of originality in satisfying the requirements of a piece of work or course.

B+ (7) Very Good = Thorough knowledge of concepts and/or techniques together with a fairly high degree of skill in the use of those concepts and techniques in satisfying the requirements of a piece of work or course.

B (6) Good = Good level of knowledge of concepts and/or techniques together with a considerable skill in using them in satisfying the requirements of a piece of work or course.

C+ (5) Competent = Acceptable level of knowledge of concepts and/or techniques together with considerable skill in using them to satisfy the requirements of a piece of work or course.

C (4) Fairly Competent = Acceptable level of knowledge of concepts and/or techniques together with some skill in using them to satisfy the requirements of a piece of work or course.

D+ (3) Passing = Slightly better than minimal knowledge of required concepts and/or techniques together with some ability to use them in satisfying the requirements of a piece of work or course.

D (2) Barely Passing = Minimum knowledge of concepts and/or techniques needed to satisfy the requirements of a piece of work or course.

E (1) Marginally failing.

F (0) Failing.


Timetable

Due dates for reports and tests
Follows the Faculty of Pure and Applied Science dates.

Report 1:  Monday, October 23
Report 2:  Monday, November 13
Report 3:  Monday, December 11

Take home test: given out  Wednesday, December 6
                      due  Wednesday, December 20

Miscellaneous Dates affecting the course.
  First day of classes (fall term) : September 11
  Last day to enrol in the course  : September 23
  Rosh Hashana                     : September 25 no classes
  Yom Kippur                       : October 4    no classes
  Thanksgiving                     : October 9    no classes
  Last day to drop the course      : November 11
  Last day of classes (fall term)  : December  6

Bibliography

---------- The following are on 2 hour reserve in Steacie Library. ----------
[GOTS92]  G. Gotshalks, Designer's Guide for Using FlexOr,
          IBM Technical Report TR74.083, 1992,  XRX ???

[JACK83]  M. Jackson, System Development, QA76.9 S88 J33 1983

[JACK75]  M. Jackson, Principles of Program Design, QA76.6 J32

[INGE79]  L. Ingevaldsson, JSP, A Practical Method of Programming,
          QA76.6 I5 23

[HOAR85]  C.A.R. Hoare, Communicating Sequential Processes,
          QA76.6 H57 1985

[SPIV89]  J.M. Spivey, The Z Notation: A Reference Manual, 2'nd edition,
          Prentice-Hall, 1992.         

---------- The following is the contents of the selected readings. ----------

[BLUM94]  B.I. Blum, A Taxonomy of Software Development Methods,
          Comm. ACM, Vol 37, No. 11, November 1994.

[JACK87]  M. Jackson, Power and Limitations of Formal Methods for Software
          Fabrication, JIT, 2,2, June 1987.

[JAVE87]  S. Javey, An Exercise in JSD: Derivation of Executable
          Specifications, Informal draft, Dept. of Computer Science, York
          University, 1987.

[PARN90]  D.L. Parnas, A.J. van Schouwen, S.P. Kwan, Evaluation of Saftey
          Critical Software, Comm. ACM, Vol. 33, No. 6, June 1990.

[SAND89]  B. Sanden, An Entity-Life Modeling Approach to the Design of
          Concurrent Software, Comm. ACM, Vol 32, No. 3, March 1989.

[SRID85]  K.T. Sridhar, C.A.R. Hoare, JSD Expressed in CSP, Technical
          Monograph PRG-51, Oxford University Computing Laboratory, 1985.

[CSP notation]  Table of CSP notation taken from C.A.R. Hoare, Communicating
          Sequential Processes, pp 18-22, Prentice-Hall, 1985.

---------- The following is a list of interesting books on software design. ----------

[BOOC91]  G. Booch, Object Oriented Design with Applications,
          Benjamin/Cummings, 1991.

[BUDG94]  D. Budgen, Software Design, Addison-Wesley, 1994.

[CAME83]  J.R. Cameron, JSP & JSD: The Jackson Approach  to Software
          Development, IEEE Computer Society Tutorial, 1983
          QA 76.6 C33 86 1983.

[JACK75]  M. Jackson, Principles of Program Design, QA76.6 J32

[JACK83]  M. Jackson, System Development, Prentice-Hall, 1983.  Out of print.
          QA76.9 S88 J33 1983.

[HINC95]  M.G. Hinchey, S.A. Jarvis, Concurrent Systems: Formal Development
          in CSP, McGraw-Hill, 1995

[HOAR85]  C.A.R. Hoare, Communicating Sequential Processes,
          Prentice-Hall, 1985.  QA76.6 H57 1985.

[INCE92]  D.C. Ince, An Introduction to Discrete Mathematics, Formal System
          Specification, and Z, 2'nd edition, Clarendon Press, 1992.

[MCMO93]  M. McMorran, S. Powell, Z Guide for Beginners, Blackwell Scientific
          Publications, 1993.  ISBN 0-632-03117-4

    Hard to get.  Current contact.
    Alfred Waller Limited, Publishers
    Orchards, Fawley, Near Henley-on-Thames, Oxon RG9 6JF
    Tel: (0491) 638694      Fax: (0491) 638833

[MART87]  J. Martin, Recommended Diagramming Standards for Analysts and
          Programmers: A Basis for Automation, Prentice-Hall, 1987.
          T 57.6 M3485 1987

[RUMB91]  J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorenson,
          Object-Oriented Modelling and Design, Prentice-Hall, 1991.

[SPIV92]  J.M. Spivey, The Z Notation: A Reference Manual, 2'nd edition,
          Prentice-Hall, 1992.

[SUTC88]  A. Sutcliffe, Jackson System Development, Prentice-Hall, 1988.
          QA 76.9 S88 S88 1988

Students with an account on Ariel can find additional files in the following directory.
        ariel.cs.yorku.ca:/cs/course/4311