Main topics that where discussed are as follows:
- The Course is split into the following topics:
- Part I: Introduction: We will be covering the development process through two case studies, and Two introduction papers, as well as in the course text.
- "Time, Clocks, and the Ordering of Events in a Distribted System" (Lamport, Leslie)
- "On the Criteria to be Used in Decomposing Systems into Modules" (Parans, David)
- "How to read an egineering paper" (Griswold, Bill) This is an introduction paper on reading other papers
- "Programming-in-the-large Versus Programming-in-the-small" (DeRemer, F and H.H. Kron)
- "Cultures of Prototyping" (Schrage, Michael; Winograd Text [course text])
- Part II: The Software Design Process and Documentation Support: This will be covered in 5 papers plus the Course Text
- "A Software Design Manifesto" (Kapor, Mitchell; Winograd Text)
- "Design of the Conceptual Model" (Liddle, David, Winograd Text)
- "Managing the Development of large software systems: concepts and techniques" (Royce, W. W.)
- "A Spiral Model of Software Development and Enhancement" (Boehm, Barry)
- "A Rational Design Process: How and Why to Fake it" (Parnas, David and Clements, Paul C.)
- "Embracing Change with Extreme Programming" (Beck, K)
- "How Microsoft Builds Software" (Cusumano, Michael and Richard Selby)
- "Using Documentation as a Software Design Medium" (Hester, S.D., Parnas, D.L., Utter, D.F.)
- "Design Languages" (Rheinfrank, John and Evenson, Shelley; Winograd Text)
- "Action-Centered Design" (Denning, Peter, and Durgan, Pamela; Winograd Text)
- Part III: Software Architectures: This section will be handled through 2 case studies, 5 papers, and the course text.
- "The Implementation of Reliable Distributed Mulitprocess Systems" (Lamport, Leslie)
- "The Byzantine Generals Problem" (Lamport, Leslie)
- "Comparing Architectural Design Styles" (Shaw, Mary)
- "Design patterns: Abstraction and reuse of object-oriented design" (Gamma, E., et. al)
- "Architectural Mismatch: Why Reuse Is So Hard" (Garlen, David, Allen, Robert, Ockerbloom, John)
- "Aspect-oriented Programming" (Kiczales, G., J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, et. al.)
- "The 4+1 View Model of Architecture" (Kruchten, Phillippe P.)
- "Foundations for the Study of Software Architecture" (Perry, Dewayne, E)
- "Keeping it Simple" (Brown, John Seely and Duguid, Paul; Winograd Text)
- Part IV: Formal Specifications and Verification: This section is handled in Three papers, plus the course text.
- "Larch: Lanuages and Tools for Formal Specification (Texts ad Monographs in Computer Science)"(Guttag, John V, et. al)
- "Specification Case Studies" (Hayes, Ian, et al.)
- "On the INevitable Intertwining of Specification and Implementation" (Swartout, William, Balzer, Robert)
- "Footholds for Design" (Gal, Shahaf; Winograd Text)
- Part V: Formal Testing: This will covered by one paper and the course text.
- "Toward a Theory of Test Data Selection" (Goodenough, J. B., and Gerhardt, S.L.)
- "Design as Practiced" (Norman, Donald; Winograd Text)
- Course Grades:
- Take-Home Prelim 1: 15 Points
- Take-Home Final: 15 Points
- Class Participation: 10 Points
- Projects: 40 Points
- 2 Individual Projects (see sylabus)
- 1 gourp Project (see sylabus)
- Journal Must be Kept
- For Readings:
- Bibliography (standard and Annotated)
- 1 Page description of how the paper fits in with class
- For Topics:
- 2 page essay describing how readings fit together (more info on sylabus)
- For Course:
- 2 page essay on how all readings fit together and the main points from class.
- Final Class Team Project Objectives:
- Working System
- Documentaion
- Poster
|