Advanced Topics in Software Engineering
Fall 2010: Methods and Tools for Software Modularity
Bill Griswold
Readings and Schedule
Note: Unless otherwise stated, a class meeting format is ``discussion''.
Details on the presentation format or the ``required'' status of a particular
reading is subject to change.
Most readings are provided as a download here.
Some of these are only accessible from the UCSD
campus or using the UCSD web proxy.
Week 0: Introduction
- Th 9/22 (Readings strictly optional - Griswold presents with discussion)
- W.W. Gibbs, Software's Chronic Crisis, Scientific American, pages 72-81, September, 1994.
- L.A. Belady and M.M. Lehman,
A Model of Large Program Development.
IBM Systems Journal, 15(3), 1976.
- D.L. Parnas, Why Software Jewels are Rare, Computer, 29(2), 1996.
Week 1: Early History of Modularity
- Tu 9/27
- Th 9/29 (read aloud in class; pre-read if never had OS)
Week 2: Object Orientation and Modularity
- Tu 10/4 - OO: Language Issues
- Wegner, P. 1987. Dimensions of object-based language design. In Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications (Orlando, Florida, United States, October 04 - 08, 1987). N. Meyrowitz, Ed. OOPSLA '87. ACM, New York, NY, 168-182. DOI= http://doi.acm.org/10.1145/38765.38823 (background)
- Snyder, A. 1986. Encapsulation and inheritance in object-oriented programming languages. In Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications (Portland, Oregon, United States, September 29 - October 02, 1986). N. Meyrowitz, Ed. OOPLSA '86. ACM, New York, NY, 38-45. DOI= http://doi.acm.org/10.1145/28697.28702 (main reading)
- Liskov, B. 1987. Keynote address - data abstraction and hierarchy. In Addendum To the Proceedings on Object-Oriented Programming Systems, Languages and Applications (Addendum) (Orlando, Florida, United States, October 04 - 08, 1987). L. Power and Z. Weiss, Eds. OOPSLA '87. ACM, New York, NY, 17-34. DOI= http://doi.acm.org/10.1145/62138.62141 (for clarification of second reading)
- Th 10/6 - OO: Design
- J. Rumbaugh et al., Object-oriented Modeling and Design,
Prentice Hall, 1991. (Chapters 2-3, 7-8.4)
Week 3
- Tu 10/11 - OO Design II: Pre-/post-condition semantics revisited
- Th 10/13 - Design Rules I
- Chapter 2 of: C.Y. Baldwin and K.B. Clark, Design Rules: The Power of Modularity, vol. 1, MIT Press, 2000.
Week 4
- Tu 10/18 - Design Rules II
- Chapter 3 of: C.Y. Baldwin and K.B. Clark, Design Rules: The Power of Modularity, vol. 1, MIT Press, 2000.
- Tu 10/20 - Design Rules III
- Sullivan, K. J., Griswold, W. G., Cai, Y., and Hallen, B. 2001. The structure and value of modularity in software design. In Proceedings of the 8th European Software Engineering Conference Held Jointly with 9th ACM SIGSOFT international Symposium on Foundations of Software Engineering (Vienna, Austria, September 10 - 14, 2001). ESEC/FSE-9. ACM, New York, NY, 99-108. DOI= http://doi.acm.org/10.1145/503209.503224
Week 5: Software Architecture
- Th 10/25 - Software Architecture I
- Th 10/27 - Design Session
- Preparation materials sent by e-mail
Week 6: Software Architecture, take II
- Tu 11/1 - Architecture vs. Components
- Th 11/3 - Micro Architecture
Week 7: Aspect-Oriented Programming
- Tu 11/8
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes,
J. M. Loingtier, and J. Irwin, Aspect-Oriented
Programming, 11th European Conference on Object-Oriented
Programming, Springer-Verlag, pp. 220-242, June, 1997.
- Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. 2001. Getting started with ASPECTJ. Commun. ACM 44, 10 (Oct. 2001), 59-65. DOI= http://doi.acm.org/10.1145/383845.383858
- Th 11/10
- Sullivan, K., Griswold, W., Rajan, H., Song, Y., Cai, Y., Shonle, M., and Tewari, N. 2010. Modular aspect-oriented design with XPIs. ACM Trans. Softw. Eng. Methodol. 20, 2 (Aug. 2010), 1-42. DOI= http://doi.acm.org/10.1145/1824760.1824762
Week 8
- Tu 11/15
- G. Kiczales,
Beyond the Black Box: Open Implementation. Software, IEEE,
January 1996.
- G. Kiczales, J. Lamping, C.V. Lopes, C. Maeda, A. Mendhekar, and G.
Murphy, Open Implementation Design Guidelines, Proceedings of the 19th
International Conference on Software Engineering, pp. 481-490,
April 1997. LINK
- Th 11/17 - Layering from the top down
- Hayes, J., Griswold, W. G., and Moskovics, S. 2000. Component design of retargetable program analysis tools that reuse intermediate representations. In Proceedings of the 22nd international Conference on Software Engineering (Limerick, Ireland, June 04 - 11, 2000). ICSE '00. ACM, New York, NY, 356-365. DOI= http://doi.acm.org/10.1145/337180.337221
Week 9
- Tu 11/22 - TBD
- Th 11/24 Thanksgiving Holiday!
Week 10: Tools, Inside and Out
- Tu 11/29 - Refactoring, Fluid, and ...
- Shonle, M., Griswold, W. G., and Lerner, S. 2007. Beyond refactoring: a framework for modular maintenance of crosscutting design idioms. In Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (Dubrovnik, Croatia, September 03 - 07, 2007). ESEC-FSE '07. ACM, New York, NY, 175-184. DOI= http://doi.acm.org/10.1145/1287624.1287650
- Th 12/1 TBD
Back to CSE 218 Course Page