6.894: Workshop in Software Design - Fall 1998
General Information
Catalog description //
Class
times //
Staff //
Course
Structure
MIT catalog description
Prereq.: 6.170, 6.033
H-Level Grad Credit
3-7-2
This is an experimental course whose focus is a hands-on investigation
of design problems in complex software systems. We will study a number
of advanced techniques motivated by these problems, some already adopted
by industry and others recently proposed, and evaluate them by designing
and prototyping a complex piece of software: a critical component of CTAS,
a new air-traffic control system being developed by NASA. Topics to be
covered include: object modelling, design patterns, data abstraction, concurrency.
Significant independent work expected. Enrollment may be limited.
Class meetings
MW 11-12:30 in 36-839
Staff
Course Structure
-
Lectures. There are two 90-minute lectures each week. Lectures fall
roughly into two categories. The earlier lectures are tutorial in nature,
and will focus on conveying fundamental techniques. As the term progresses,
the lectures become more seminar-like, with a focus shifting to recent
research ideas. Throughout the term, student participation will be expected.
-
Reading. Readings will be assigned for each lecture, to be done
in advance of the lecture. Reading material will be handed out in class
or will be available on the web. Readings will include tutorial material,
case studies and research papers.
-
Team work. Students will be divided into small teams to work
on a term-long project. The project is divided into 4 phases. In the reverse
engineering phase, teams will develop an understanding of the CTAS
software by reading descriptions produced by NASA and CSC, by reading code,
and by applying reverse engineering tools to code, and will record their
understanding with object models and entity life histories. In the design
phase, teams will develop candidate redesigns for portions or aspects
of the system. In the implementation phase, students will select
a part of their design and implement it in Java. In the reflection phase,
teams will reflect on their work, and evaluate it in the light of the techniques
learnt, and the CTAS system.
-
Presentations. At the end of each phase of the project, teams will
present their work to the entire class for discussion and review. Teams
will be expected to produce presentations in 3 forms: oral, on paper (to
be handed in to the lecturer a day before the presentation), and on the
web.
There will be no final or quizzes.
Questions or comments regarding 6.894? Send e-mail to Prof. Jackson
at
dnj@lcs.mit.edu.
Top //
6.894 home
//