Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Calendar

Prof Bell
Tues 11:45am-1:25pm, Thurs 2:50pm-4:30pm, Richards Hall 325

Class meetings marked as “overview” will be lecture-focused, providing background material to help contextualize the topic. “Discussion” meetings will be highly interactive discussions centered on the required readings.

Please be sure to read the assigned paper before class. Most papers link into the ACM or IEEE library - you can sign in to those services using your Northeastern login (select “Sign in with institutional credentials” and then select Northeastern). Note that for the ACM library, you can create an ACM account and then link it to your Northeastern ID (“My Profile” -> “Institutional Affiliations”) so that you can stay logged in and not need to go through Duo every time that you would like to read a paper.

Week 1: Software Process
Tue, Jan 10
SW Process and Course Overview. Keynote, PDF
Thu, Jan 12
Process Discussion Notes
Required Readings:
  1. Software Aspects of Strategic Defense Systems. David Parnas. CACM 1985

Week 2: Modularity and Design
Tue, Jan 17
Overview: Modularity, Design and Patterns Keynote, PDF , Notes
Required Readings:
  1. Patterns of Software: Tales from the Software Community. Richard Gabriel, 1996. Read ‘Reuse Versus Compression’ (p3-7) and ‘The Quality Without a Name’ (p33-43)

Thu, Jan 19
Discussion: Modularity and Design Notes
Required Readings:
  1. Aspect-Oriented Programming. Kiczales et al. ECOOP 1997

  2. An empirical study on program comprehension with reactive programming. Salvaneschi et al. FSE 2014

Week 3: Open Source
Tue, Jan 24
Overview: Open Source History and Models Keynote, PDF
Thu, Jan 26
Discussion: Open Source Notes
Week 4: Mining Software Repositories
Tue, Jan 31
Overview: MSR, metrics Keynote, PDF
Thu, Feb 02
Discussion: Mining Software Repositories Notes
Required Readings:
  1. The Promises and Perils of Mining GitHub. Kalliamvakou et al. MSR 2014

  2. A Large-Scale Comparison of Python Code in Jupyter Notebooks and Scripts. Grotov et al. MSR 2022

Week 5: Testing: Overview and Oracles
Tue, Feb 07
Overview: Tests and Oracles Keynote, PDF
Reflection Paper Proposal Due at 11:00am
Thu, Feb 09
Discussion: Test Oracles Notes
Week 6: Testing: Inputs
Tue, Feb 14
Overview: Input Generation Techniques Keynote, PDF
Required Readings:
  1. An Empirical Study of the Reliability of UNIX Utilities. Miller, Fredriksen and So. CACM 1990

  2. How SQLite is Tested. If you are interested in how SQLite is made, optionally check out: SQLite amalgamation, license

Thu, Feb 16
Project Proposal Brainstorming
Week 7: Testing: Inputs
Tue, Feb 21
Discussion: Fuzzing Notes
Required Readings:
  1. Automated Testing of Graphics Shader Compilers. Donaldson et al. OOPSLA 2017

Thu, Feb 23
Project Proposal Discussions
Week 8: CI and Test Suite Maintenance
Tue, Feb 28
Overview: CI and cloud resources Keynote, PDF
Thu, Mar 02
Discussion: CI, more process Notes
Final Project Proposal Due at 11:00am
Week 9: Spring Break
Week 10: Paper Presentations
Tue, Mar 14
Students present their reflection papers
Reflection Paper Due at 11:00am
Thu, Mar 16
Students present their reflection papers
Week 11: Devops
Thu, Mar 23
Week 12: Expertise and Knowledge Sharing
Tue, Mar 28
Overview: Collaboration in SE Keynote, PDF
Project Status Update Due at 11:00am
Thu, Mar 30
Discussion: Being Great and Helping Others Notes
Required Readings:
  1. What Makes a Great Software Engineer? Li, Ko and Zhu. ICSE 2015

  2. An Exploratory Study of Sharing Strategic Programming Knowledge. Arab et al. CHI 2022

Week 13: More Human Factors
Tue, Apr 04
Discussion: SE and Data Science Notes
Thu, Apr 06
Discussion: Barriers to Diversity in SE
Week 14: Security
Tue, Apr 11
Overview: Security and SE, Malicious Components Keynote, PDF
Required Readings:
  1. What Are Weak Links in the Npm Supply Chain?. Zahan et al. ICSE 2022

  2. Practical Automated Detection of Malicious Npm Packages. Sejfia and Schäfer. ICSE 2022

Thu, Apr 13
Discussion: Security and Course Postmortem Notes
Required Readings:
  1. Why secret detection tools are not enough: It’s not just about false positives - An industrial case study. Rahman et al. Empirical Software Engineering, 2022

Week 15: Project Presentations
Tue, Apr 18
Students present their projects
Project Report Due at 11:00am
Thu, Apr 20
Students present their projects

© 2022 Jonathan Bell. Released under the CC BY-SA license