Foundations of Software Engineering
COMP 7012 • Spring 2018
Dr. Scott Fleming, Instructor
Syllabus
eCourseware
Piazza
Helpful Resources
Schedule
Introduction
Mon 1/15
  - M. L. King, Jr. Holiday—no class
 
Wed 1/17
Mon 1/22
Boot Camp on Web App Development
Wed 1/24
Mon 1/29
Wed 1/31
  - Lecture: MVC and the View (slides)
 
  - Demo: Adding a (Mostly) Static View Page (video)
 
  - Demo: Adding an Image to a Web Page (video)
 
  - Assigned: Homework 3 (instructions)
 
Mon 2/5
  - Activity: Boot Camp Studio (Attendance Required!)
 
  - Demo: Using Git and GitHub for Version Control and Collaboration (slides,video)
 
  - Lecture: Databases and MVC Models (slides,video)
 
  - Demo: Creating a Model Class (video)
 
  - Assigned: Homework 4 (instructions)
 
Wed 2/7
  - Activity: Boot Camp Studio (Attendance Required!)
 
  - Demo: Creating Model Validations and Tests (video)
 
  - Due: Homework 2 (instructions)
 
  - Due: Homework 3 (instructions)
 
Mon 2/12
  - Lecture: MVC Controllers (slides)
 
  - Demo: Creating an Index Controller Action (video)
 
  - Demo: Creating a Show Controller Action (video)
 
  - Assigned: Homework 5 (instructions)
 
Wed 2/14
  - Demo: Creating New/Create Controller Actions (video)
 
  - Demo: Creating Edit/Update Controller Actions (video)
 
  - Demo: Creating a Destroy Controller Action (video)
 
  - Demo: Adding Alerts and Error Handling to Controller Actions (video)
 
  - Demo: Generating Controller Actions with Scaffolds (video)
 
  - Due: Homework 4 (instructions)
 
Mon 2/19
  - Lecture: Model Associations (slides)
 
  - Demo: Creating a Has-Many Association (video)
 
  - Assigned: Homework 6 (instructions)
 
Wed 2/21
Mon 2/26
  - Demo: Adding User Logins and Authentication with Devise (video)
 
  - Assigned: Project Proposals (instructions)
 
Wed 2/28
Mon 3/5
Wed 3/7
Initial Planning Iteration 0
Mon 3/12
  - Due: Project Proposals by 9am in eCourseware dropbox (instructions)
 
  - Activity: Project Selection and Team Assignments
 
Wed 3/14
  - Lecture: Software Engineering Process (slides)
 
  - Lecture: Software Requirements (slides)
 
  - Activity: Team meets with customer to create user stories (template); terminology used in the USs should be defined in a glossary (template)
 
Mon 3/19
  - Due: User Stories and Glossary Draft 1 by 10am in eCourseware dropbox; this set of USs should cover all the main features of the system, and each team member must have authored at least 5 USs
 
  - Assigned: Project Overview (instructions)
 
  - Assigned: Milestone 0 (instructions)
 
  - Activity: Peer Evaluation of User Stories and Glossaries (instructions)
 
Wed 3/21
  - Lecture: Planning and Estimation (slides)
 
  - Activity: Initial Project Planning: (1) Team creates initial designs (sitemap, wireframes, model classes), customer prioritizes USs, and (2) team chooses USs for Iteration 1 and fills out Iteration 1 Individual Assignment Specifications (instructions)
 
  - Assigned: Milestone 1 (instructions)
 
  - Assigned: Iteration 1 Individual Assignment Specification (instructions)
 
Development Iteration 1
Mon 3/26
  - Due Draft of Individual Assignment Specification for Iteration 1 by start of class in eCourseware dropbox and bring 4 printouts to class (instructions)
 
  - Activity: Peer Review of Individual Assignments (instructions)
 
  - Due: Corrected Individual Assignment Specification for Iteration 1 in eCourseware dropbox (instructions)
 
  - Due: Milestone 0 (instructions)
 
  - Assigned: Iteration 0 Teammate/Customer Evaluations (see email instructions)
 
Wed 3/28
  - Due: Marked up printouts of Individual Assignment Specs from last class by start of class
 
  - Demo: Feature Branch Workflow and Pull Requests in GitHub (video)
 
  - Due: Milestone 0 Teammate/Customer Evaluations by Fri (see email instructions)
 
Mon 4/2
  - Lecture: Software Testing (slides)
 
  - Demo: Functional (Controller) Testing in Rails plus Many-to-Many Model Associations (video)
 
Wed 4/4
Mon 4/9
  - Lecture: White-Box Testing (cont’d)
 
  - Assigned: Milestone 2 (instructions)
 
Wed 4/11
  - Interactive Demo Session (In-class)
 
Development Iteration 2
Mon 4/16
  - Due: Draft of Individual Assignment Specification for Iteration 2 by start of class in eCourseware dropbox and bring 4 printouts to class  (instructions)
 
  - Activity: Peer Review of Individual Assignments (instructions)
 
  - Lecture: Security Exploits and Countermeasures (slides)
 
  - Due: Corrected Individual Assignment Specification for Iteration 2 in eCourseware dropbox (instructions)
 
  - Due: Milestone 1 (instructions)
 
  - Assigned: Milestone 1 Teammate/Customer Evaluations (see email instructions)
 
Wed 4/18
  - Due: Marked up printouts of Individual Assignment Specs from last class by start of class
 
  - Lecture: Design Patterns Part 1: Observer, Singleton, & Adapter (slides)
 
  - Due: Milestone 1 Teammate/Customer Evaluations by Fri (see email instructions)
 
Mon 4/23
  - Lecture: Design Patterns Part 2: Builder & Memento (video,slides)
 
  - Activity: Project Studio (attendance optional)
 
Wed 4/25
  - Exam 2
    
  
 
  - Assigned: Milestone 2 Teammate/Customer Evaluations (see email instructions)
 
Mon 4/30
Wed 5/2
  - Interactive Demo Session (Public)
    
      - Special Time: 10:00–12:00
 
      - Special Place: UC Lobby
 
    
   
  - Due: Milestone 2 (instructions)
 
  - Due: Milestone 2 Teammate/Customer Evaluations by Thu (see email instructions)
 
  - Due: Complete your SETEs in my.memphis.edu by midnight, Thu!
 
Instructions
Project
Homeworks