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