CIS 580: Paradigmatic Software Development
Spring 2009



Course Objectives


Catalog Description

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.

Textbooks

Grading


Course Outline

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
Spring Break, no classes
   
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