Handouts and Related Links

Required Reading:

bullet Therac Article (due January 16, 2007)
bullet Design Patterns (original paper): Gamma et al
bullet Designing Reusable Classes (original frameworks paper): Johnson and Foote
bullet Essays on Object-Oriented Software Engineering (E. Berard)

 

UML-Related Material

bullet UML Notation
bullet UML MetaModel
bullet UML Metamodel Dictonary
bullet OO links

Patterns and Frameworks

bullet Overview of Patterns
bullet Formalizing Patterns
bullet Wrapper/Facade Pattern Example (D. Schmidt)
bullet C++ Standard Template Library  (STL): Example of Design Patterns
bullet Glossary of commonly used terms
bullet A Learning Guide to Design Patterns (useful activity for really learning about patterns)  
bullet Design Patterns and Java
bullet Formal Methods/Java/Design Patterns
bullet Overview of Frameworks
bullet Documenting Frameworks (Johnson et al)
bullet Design and Implementation of Hierarchical Software Systems with Reusable Components (Batory and O'Malley)
bullet MVC (Model-View-Controller) Description (essential example of UI Framework)
bullet How to Build Frameworks:
bullet Patterns for framework evolution (Roberts and Johnson -- good overview of construction process)
bullet Intro to Object-Oriented Frameworks (Taligent -- process for developing frameworks)
bullet How to Design Frameworks (Johnson, Tutorial at OOPSLA93 -- good reference)
bullet Development of Successful Frameworks (OOPSLA97 Workshop Summary)
bullet Framework web pages:
bullet Univ. of Illinois Framework page
bullet Joe Yoder's Framework page (includes example framework implementations)
bullet Framework FAQ
bullet Component-Based Software Development
bullet Aspect-Oriented Programming

Object-Oriented Programming

bullet Java vs C++
bullet Java Tutorial  (from Sun)
bullet Extensive Java Information (lots of examples, tutorials, etc. )
bullet Java Lecture Notes (Dr. Dillon's Java Lecture Notes)

Security

bullet Common Criteria (Criteria to evaluate IT security developed by US and Canada)
bullet Intro to Common Criteria
bullet Security Patterns by Wasserman/Cheng

David Parnas:

bullet Background information:
bullet Biographical information: (AllExperts Link, answers.com)
bullet Interview when awarded ACM Fellow
bullet Collection of articles (publishing site)
bullet Editorial Overview of collection by Hoffman and Weiss

 

bullet

Articles to be covered in class: (obtained from MSU digital library for internal use only)

Tuesday, April 10:
bullet On the Criteria to be used in Decomposing Systems into Modules (Macklem)
bullet Communications of the ACM, Vol. 15, No. 12, December 1972 pp. 1053 - 1058
bullet On the Design and Development of Program Families (Brown)
bullet IEEE Transactions on Software Engineering, Vol. SE-2, No. 1, March 1976 pp. 1-9.

Thursday, April 12:
bullet Designing Software for Ease of Extension and Contraction (Hopkins)
bullet IEEE Transactions on Software Engineering, Vol. , No. 1, March 1979 pp. 128-138.
bullet SDI: A Violation of Professional Responsibility (Ramirez)
bullet Software Fundamentals: Collected Papers by David L. Parnas, Eds. D. Hoffman and D. M. Weiss, 2001.

bullet Template for Presentations (this only reflects the minimum information that should be included). Plan for a 25 minute presentation.

Aspect-oriented Software Development:

bullet Aspect-Oriented Programming
bullet Getting Started with AspectJ (Kiczales)
bullet Discussing Aspects of AOP (Elrad, Kiczales, Lieberherr, Aksit, Ossher)
bullet Sample programs in AspectJ
bullet Aspect-Oriented Modeling
bullet Handling Crosscutting Constraints in domain-specific modeling (J. Gray)
bullet Supporting Aspects in MDA (V. Kulkarni and S. Reddy)
bullet Aspect-oriented approach to early design modeling (R. France, G.  Georg, and S. Ghosh)
bullet Creating Security Mechanism Aspect Models from Abstract Security Aspect Models (G. Georg, R. France, and I. Ray)
bullet Aspect-oriented modeling of access control in web applications (Zhang et al, 2005 AOSD Workshop)

 

bullet Administrative Forms
bullet Survey
bullet Initial Assessment