Graduate Seminar on Modularity

This Fall 2020 semester, I am teaching an advanced topics seminar on the idea of Modularity in Software Engineering. The goal of this seminar is to discuss some classic and recent papers on modularity in software engineering and programming languages.

We will be reading the following papers.

  1. Early ideas: Separation of Concerns, Information Hiding
  2. Peri Tarr, Harold Ossher, William Harrison, Stanley M. Sutton, Jr., “N degrees of separation: multi-dimensional separation of concerns”, ICSE ‘99: Proceedings of the 21st international conference on Software engineering, Los Angeles, California, USA, 1999.
  3. Luca Cardelli, “Program fragments, linking, and modularization”, In Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL ‘97). Association for Computing Machinery, New York, NY, USA, 266–277. DOI:
  4. Pierre America, “Designing an object-oriented programming language with behavioural subtyping”, In Foundations of Object-Oriented Languages. Lecture Notes in Computer Science, Vol. 489. Springer, 60–90.
  5. Matthew Flatt and Matthias Felleisen, “Units: cool modules for HOT languages”, In Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation (PLDI ‘98). Association for Computing Machinery, New York, NY, USA, 236–248. DOI:
  6. Krishna Kishore Dhara and Gary T. Leavens, “Forcing behavioral subtyping through specification inheritance”, In Proceedings of the 18th international conference on Software engineering (ICSE ‘96). IEEE Computer Society, USA, 258–267.
  7. Hridesh Rajan and Gary Leavens, “Ptolemy: A Language with Quantified, Typed Events” ECOOP ’08: 22nd European Conference on Object-Oriented Programming (Jul. 2008).
  8. Mehdi Bagherzadeh and Hridesh Rajan, “Panini: A Concurrent Programming Model for Solving Pervasive and Oblivious Interference”, Modularity’15: 14th International Conference on Modularity (Mar. 2015).
  9. Gary T. Leavens and David A. Naumann. “Behavioral Subtyping, Specification Inheritance, and Modular Reasoning” ACM Trans. Program. Lang. Syst. 37, 4, Article 13 (August 2015), 88 pages. DOI:
Written on October 7, 2020