|
cmsc 838p, spring 2006: schedule |
Please review the reading list
and the guide to reviewing
and summarizing papers in 838P as needed.
Please email me your review or summary before class begins.
Please put [838P] in the subject line. And if at all possible,
please submit your work in PDF or HTML format.
Some additional tips for a successful review:
|
Date |
Topic |
Assignment (due before next class session) |
|
|
January 26th |
Quick tour of 838p and software engineering research |
Read pages 1-34 of Secure Coding and summarize. Also read about the principles assigned individually to you and be prepared to explain them to the rest of the class. |
|
|
January 31st |
"Why bad code happens to good people (part I)" |
Read No Silver Bullet and summarize. |
|
|
February 2nd |
"Why bad code happens to good people (part II)" |
||
|
February 7th |
Software engineering processes (spiral model, agile methods) |
No assignment |
|
|
February 9th |
Software specification, part I: visual formalisms |
Read STATEMATE: A Working Environment for the Development of Complex Reactive Systems and review it. |
|
|
February 14th |
Software specification, part II: visual "informalisms" and tabular formalisms |
Project proposal due on February 16th |
|
|
February 16th and 21st |
Software specification, part II: visual "informalisms" and tabular formalisms |
Read A Micromodularity Mechanism and review (due Thursday, 23 February). |
|
|
February 23rd |
Software specification, part III: set-based formalisms |
Complete the elevator specification assignment. For resources on SCR-style tables, see Chapter 6 in Software Fundamentals (available on reserve in the CS Library) and this overview. This assignment is due on Thursday, March 2nd. You can hand in a copy to me in class. |
|
|
February 28th |
No class (because I'm at a workshop) |
No assignment. |
|
|
March 2nd-9th |
The Alloy Analyzer |
Read Chapter 7 (a poorly-typeset version is here) and Chapter 10 of Software Fundamentals and review both (due March 14th). |
|
|
March 14th |
Parnas on Design, part I: Information hiding |
Project progress report is due on March 28th. |
|
|
March 16th |
Parnas on Design, part II: Program families |
Read Chapter 14 of Software Fundamentals and review (due March 28th). | |
|
March 28th |
Parnas on Design, part III: Subsets |
If your last name begins with A-K: read chapter 15 of Software Fundamentals
and review. |
|
|
April 4th |
Parnas on Design, part IV: More on information hiding |
As a group (A-K or L-Z), prepare a 20-minute presentation on Chapter 15 or 16. You will present on Tuesday, April 4th. |
|
|
April 6th |
Aspect-oriented programming |
Read Sections 1-4 of Kiczales-ECOOP97 and Sections 1-3 of Kiczales-ECOOP01. Write a 1-page paper that answers the questions "What is aspect-oriented programming?" and "What is AspectJ?". |
|
|
April 11th |
Aspect-oriented programming |
Install Eclipse and AspectJ (AJDT) on your laptop. Download TerpCalc source code as well. Look at the forum for more details... |
|
|
April 13th |
Aspect-oriented programming |
Read Ossher and Lieberherr and summarize. |
|
|
April 18th-20th |
Finish AOP |
Read Aldrich and review. This review is due on Tuesday, April 25th. |
|
|
April 25th-27th |
Software Architecture |
||
|
May 2nd-4th |
Inferring specifications, architectures, or design decisions by analyzing code (static analysis) or analyzing traces from test executions (dynamic analysis). Adding annotations to code that explicitly provide info about requirements, architectural decisions, and design decisions. |
||
|
May 9th-11th |
Project presentations |