Software development in the context of various paradigms. The strategies and methods of the procedural, object-oriented, and functional paradigms are studied and practiced. The modeling of software processes will be considered from both the process and product view, as will the appropriateness and measures of effectiveness of these processes in the design of software systems.
The following schedule is a tentative outline of the topics and the approximate time when these topics will be discussed. Changes in the topics and/or the order in which they are presented may occur.
Check the web frequently for updated reading assignments and lecture slides.
| Week of | Topics | Reading/Assignment | Slides |
|---|---|---|---|
| Jan. 26 | Paradigms History of Software Development The Essence of Software |
Sommerville: Ch 1, 2 Why Software Is So Bad FBI System Overhaul Scrapped The FBI's Upgrade That Wasn't |
Introduction.pdf |
| Feb. 2 |
Computational Paradigms and Process Frameworks |
DFD homework assignment |
Computational.pdf |
| Feb. 9 |
Programming Paradigms Imperative Paradigm |
The Impact of Software Engineering Research on Modern Programming Languages | Imperative.pdf |
| Feb. 16 |
Functional Paradigm Note: Mon. holiday. Monday classes on Tuesday. |
Conception, Evolution, and Application of Functional Programming Languages | slides handouts |
| Feb. 23 |
Scheme programming A free scheme development environment |
Scheme programming assignment | |
| Mar. 2 |
Quality Paradigm, CMM and ISO Standards Universal, Worldly, and Atomic Process Models |
Sommerville: Ch 4, 27, 28 Glass: Ch 3 The Ethics of Safety-Critical Systems |
quality: slides handouts process: slides handouts |
| Mar. 9 | Requirements Elicitation Midterm Exam (Wed, Mar. 11) |
Sommerville: Ch 6, 7 Four Dark Corners of Requirements Engineering |
slides handouts |
| Mar. 16 | |||
| Mar. 23 |
Requirements Definition and Specification |
Sommerville: Ch 8 |
slides handouts |
| Mar. 30 | Formal Specification | Sommerville: Ch 10 |
slides handouts |
| Apr. 6 | Design Principles Architectural Design |
principles: slides handouts architectural: slides handouts |
|
| Apr. 13 | Detailed Design Software Development Metrics |
metrics: slides handouts | |
| Apr. 20 |
Metrics (continued) OO Software Development Note: Monday holiday. No Monday class. |
Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects | slides handouts |
| Apr. 27 | OO Process (continued) | slides handouts | |
| May. 4 | OO Analysis and Design | ||
| May 11 |
OO Design Patterns Agile Software Development Note:No Wednesday class (study day). |
Do Agile Methods Marginalize Problem Solvers? |
Agile: slides handouts AOP: slides handouts |
| Final Exam Monday, May 18, 6:30 - 9:30 PM |