CARLETON UNIVERSITY

Department of Systems and Computer Engineering

94.586 Object-Oriented Design of Real-time Systems

Winter term 2000-2001

Instructor: Murray Woodside

Room 4484 ME, tel 520-5721, email cmw@sce.carleton.ca

Who may take this course

The calendar says this course requires permission of the department, which means the permission of the instructor. You will get permission if your background falls under one of these:
  I intend to be quite strict in enforcing these requirements. This is not a make-up course.

There are also restrictions on numbers. Preference will be given to program students registered in the department, and in programs served by the department. Special students will have to talk to the instructor and space for special students may be very limited.

To obtain the instructor's permission, email to me with your description of the qualifying background. You may meet me to discuss your background: Dec. 20 9.00 - 3.00, or Jan 9 9.00 - 10.00. The first class will not occur until Jan 9 at 1.00 - 2.300.
 

First lecture Jan 9

Because of a conference trip in the first week of January, the course will begin a week late. This time will be made up later. Thus the first lecture starts at 1.00 PM on Jan 9.

Goals of this Course

We consider systems with distributed components driven by events and messages from the environment, and between components. The ability to deal with concurrent, and possibly unpredictable event streams in a timely manner is the key to these systems. Examples are found in network applications such as e-commerce and other web-enabled applications, in distributed applications linked by middleware such as CORBA, in telecommunications software, in control systems, in business client-server systems, and in multimedia systems. some of these systems have a single task interacting with its environment, but most have a number of collaborating tasks.

The course concentrates on specification of architecture and behaviour. Architecture means decomposition into collaborating components, guided by requirements and technology. Architecture will be regarded in a Conceptual view, Module view, Execution view and Code view, as described by Hofmeister, Nord and Soni. Behaviour is specified by Use Cases, Use Case Maps and communicating state machines. The course will use the Use Case Map Navigator and a UML-RT CASE tool for defining architectures and their behaviour. It will also consider other equivalent models such as SDL and StateCharts.

Students will learn how to develop and analyze Use Cases and Use Case Maps, how to partition a system into concurrent objects and into finer-grained objects for data, functions, interface management, and system control. Software architecture styles will be considered at the concurrency level and below.

Assumed knowledge:. Students should have had a first course in software engineering, including object-oriented design, and some experience with object-oriented programming (in a language such as C++ or Java). The course will use UML notations with a minimal review, so prior understanding of UML will be an asset. However it should be possible to pick this up with a little extra reading. Since understanding and communicating requirements and solutions is the essence of software engineering, a good command of the English language is required.

Textbook

Designing Concurrent, Distributed, and Real-time Applications with UML, by Hassan Gomaa, pub Addison-Wesley, 2000. (The course will make a considerable use of this book. It includes a systematic design sequence which we shall partly follow, and substantial case studies).

Suggested Reading

The Unified Modeling language User Guide, by G. Booch, J. Rumbaugh, I. Jacobson, 1998. (One of many standard references to UML),

Use Case Maps for Object-oriented Systems, by Ray J.A. Buhr, Ron S. Casselman, 1996. (The standard reference on Use Case Maps; additional reference material is available at http://www.usecasemaps.org).

Applied Software Architecture, by Christine Hofmeister, Robert Nord, Dilip Soni, Addison-Wesley, 1999.

Doing Hard Time, by B.P. Douglass, 1999 (More of a collection of bits and pieces than our text, and without the large case studies).

Software Architecture, by Mary Shaw and David Garlan, Prentice-Hall, 1996.

Course Outline

Evaluation

Assignments (50%), Midterm exam (20%), Final exam (30%)

Assignments must be done individually, no sharing of solutions. The final assignment will be a substantial design problem. Assignments will use the UCM Navigator, Rational ROSE for Real-Time and Telelogic TAU (for SDL) as design tools, which will require doing the assignments in the Department's laboratories.

The course material will be defined by the classroom presentation, and classroom notes will extend the text material in many ways. Thus attendance at lectures is essential to completing the course.
 

Handouts