'
ENGR 660 (Software Engineering II) Instructor's
Lecture Notes, Fall 2005
Engr 660: Software Engineering II
(Software Design)
Fall 2005
Lecture Notes
- Classic papers by David Parnas. In addition to the references
listed below, these are reprinted in the book:
D. M. Hoffman and
D. M. Weiss, Editors. Software Fundamentals: Collected Papers
by David L. Parnas, Addison-Wesley, 2001.
- D. L. Parnas. "On the Criteria to Be Used in Decomposing
Systems into Modules," Communications of the ACM,
Vol. 15, No. 12, pp. 1053-1058, December 1972.
(Chapter 7 of Software Fundamentals.)
- D. L. Parnas. "On the Design and Development of Program
Families," IEEE Transactions on Software Engineering,
Vol. SE-2, No. 1, pp. 1-9, March 1976.
(Chapter 10 of Software Fundamentals.)
- (Distributed but not discussed directly.)
K. H. Britton, R. A. Parker, and D. L. Parnas. "A Procedure
for Designing Abstract Interfaces for Device Interface Modules,"
Proceedings of the Fifth International Conference on Software
Engineering, pp. 195-204, March 1981.
(Chapter 15 of Software Fundamentals.)
- H. C. Cunningham, C. Zhang, and Y. Liu. Keeping secrets within a family:
Rediscovering Parnas, In Proceedings of the International
Conference on Software Engineering Research and Practicee
(SERP), pp. 712-718, CSREA Press, June 2004.
-
Lecture Notes on Data Abstraction.
Supplementary notes: Queue ADT
- ADT Case Study:
Ranked Sequence
- Introduction to
Object Orientation.
-
Domain model for Price Calculation homework
[ArgoUML file]
-
Tutorial on ArgoUML, prepared by Mei Zhang.
- H. C. Cunningham and J. Wang.
Building a Layered Framework for the Table Abstraction ,
In Proceedings of the ACM Symposium on Applied Computing,
March 2001. [Presentation]
Variant paper: H. C. Cunningham and J. Wang.
Applying Software Patterns in
the Design of a Table Framework, In Proceedings of the
Conference on Applied Research in Data Engineering, Acxiom
Data Engineering Laboratory, University of Arkansas at Little
Rock, November 2001. ADEL-WP-01-01.
-
Introduction to Pragmatic Unit Testing with JUnit,
prepared by Jian Weng.
-
Designing with Patterns, prepared by Yi Liu and Conrad Cunningham
for Software Architecture class.
- Eric Braude. Software Design: From Programming to
Architecture,, Wiley, 2005. Textbook slides:
Prologue
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 11
Chapter 12
Chapter 13
Chapter 14
-
Strategy Pattern,
prepared by Yi Liu and Conrad Cunningham for Software Architecture
class.
- Using the Divide and
Conquer strategy to teach Java framework design, by H. C.
Cunningham, Y. Liu, and C. Zhang. In Proceedings of the 3rd
International Conference on Principles and Practice of Programming in
Java (PPPJ), pp. 40-45, June 2004.
[Presentation]
PREVIOUS SEMESTER Fall 2003 -- Papers Discussed
- More classic papers by David Parnas. In addition to the references
listed below, these are reprinted in the book:
D. M. Hoffman and
D. M. Weiss, Editors. Software Fundamentals: Collected Papers
by David L. Parnas, Addison-Wesley, 2001.
- D. L. Parnas. "Designing Software for Ease of Extension and
Contraction," IEEE Transactions on Software Engineering,
Vol. SE-5, No. 1, pp. 128-138, March 1979.
(Chapter 14 of Software Fundamentals.)
- D. L. Parnas, P. C. Clements, and D. M. Weiss. "The Modular
Structure of Complex Systems," IEEE Transactions on Software
Engineering, Vol. SE-11, No. 3, pp. 259-266, March 1985.
(Chapter 16 of Software Fundamentals.)
- D. Garlan, R. Allen, and J. Ockerbloom. "Architectural
Mismatch: Why Reuse is So Hard," IEEE Software, Vol. 12,
No. 6, November 1995.
Instructor's
Notes on Architectural Mismatch.
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides.
Design Patterns: Elements of Reusable Object-Oriented Software,"
Addison-Wesley, 1995.
- "Introduction," Chapter 1, pages 1-31.
- "Strategy," Part of Chapter 5 on "Behavioral Patterns," pages
315-324.
- "Template Method," Part of Chapter 5 on "Behavioral Patterns,"
pages 325-330.
- Hans Albrecht Schmid. "Framework Design by Systematic
Generalization", In Mohamed E. Fayad and Ralph E. Johnson,
Editors, Domain-Specific Application Frameworks, Wiley,
2000.
- Ralph E. Johnson and Brian Foote. "Designing Reusable
Classes", Journal of Object-Oriented Programming,
Vol. 1, No. 2, pages 22-35, June/July 1988. Also available as
http://www.laputan.org/drc/drc.html.
- Mark Ardis, Nigel Daley, Daniel Hoffman, Harvey Siy, and David
Weiss. "Software Product Lines: A Case Study," Software Practice
and Experience, Vol. 30, No. 7, pp. 825-847.2000.
Useful Reference Materials
Other Items Not Used in 2003
- S. Vazhkudai and H. C. Cunningham.
A Reusable Framework for
Distributed Decision-making Protocols, In Proceedings
of the International Conference on Parallel and Distributed
Processing Techniques and Applications (PDPTA'2000), Las
Vegas, CSREA Press, June 2000.
- Hans Albrecht Schmid. "Creating Applications From Components:
A Manufacturing Framework Design," IEEE Software,
Vol. 13, No. 6, November 1997.
- Hans Albrecht Schmid. "OSEFA: Framework for Manufacturing",
In Mohamed E. Fayad, Douglas C. Schmidt, and Ralph E. Johnson,
Editors, Building Application Frameworks: Object-Oriented
Foundations of Framework Design, Wiley, 1999.
UP to ENGR 660 root document?
Copyright © 2004, H. Conrad Cunningham
Last modified: 2 December 2005