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.
The Essence of Software
Note: No Monday class (Martin Luther King, Jr. Day)
• Why Software Is So Bad
• FBI System Overhaul Scrapped (2005)
• The FBI's Upgrade That Wasn't (2006)
• FBI Two Years Behind (2010)
|Jan. 28||Computational Paradigms and Process Frameworks||
• Sommerville: 2.1 - 2.2
• Good Ideas, through the Looking Glass - Focus on Programming Language Features and Programming Paradigms (pp. 33-39).
|| Programming Paradigms
|Feb. 11||Functional Paradigm||
F# programming assignment
Note: No Mon. class (Presidents' Day), Mon. classes on Tue.
Quality Paradigm, CMM and ISO Standards
Universal, Worldly, and Atomic Process Models
|Glass: Ch 3||Quality.pdf
|Mar. 4||Requirements Elicitation||Elicitation.pdf|
|Mar. 11||Requirements Definition and Specification
Midterm Exam (Wed, Mar. 13)
|Four Dark Corners of Requirements Engineering||
|Mar. 25||Formal Specification||Formal.pdf|
|Can Graduating Students Design Software Systems?||
Software Development Metrics
Note: No Monday class (Patriots' Day)
|Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects|
|Apr. 22||OO Process||OOProcess.pdf|
Agile Software Development
|Term Paper Due Wednesday
Do Agile Methods Marginalize Problem Solvers?
|May. 4||Final Exam: Saturday, May 4, 11:30AM - 2:30PM|