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

Lectures
Daniel Jackson NE43-524  8-8471  dnj@lcs.mit.edu
Course Secretary
Neena Lyall NE43-523  3-6019  lyall@lcs.mit.edu


Course Structure

  1. 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.
  2. 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.
  3. 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.
  4. 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 //