COM 401 Software Engineering

Home
Up

 


     Lecture Schedule (
tentative, read Important Notes below)

W

Lec

Topics

Agile Development Perspective

Lab

Topics and Projects Info

Supplementary Notes and
Plan-and-Document (P&D) Perspective

1

29/9


Lec 0


Lec 1
 
Course Overview
Intro to SaaS and Agile Development - Basic Concepts
What is Software Engineering?, Software as a Service, Service Oriented Architecture, Cloud Computing, Beautiful vs. Legacy Code, Software Quality Assurance: Testing, Productivity: Conciseness, Synthesis, Reuse, and Tools.
 

Introduction to Lab and Senior Design Project

Installing VMs, and Introduction to Courseware and development tools

   P&D:

bullet

Lec 1-Supp - Some Fundamentals

bullet

UML

 

bullet

Senior Design Project I Report Template

bullet

RAD Samples

2
6/10
  National Holiday - Kurban Bayramı      
3

13/10
Lec 1 Intro to SaaS and Agile Development - Processes
Software Development Processes: CMMI, Plan-and-Document Processes: Waterfall, Spiral, RUP. Agile Development.
 
Lec 3

SaaS Framework: Intro to Ruby
Overview and Introduction to Ruby, Everything is an Object, Every Operation is a Method Call

Form Teams

bullet

Ruby for beginners: tryruby.org   codecademy.com

 

4

20/10
Lec 10

Project Management: Scrum and Pairs
It Takes a Team: Size and Scrum, Pair Programming, Agile Design and Code Reviews?
This part will be given later:

Version Control for the 2-Pizza Team: Merge Conflicts, Effective Branching, Fixing Bugs: The Five R’s.

 
 

SaaS Framework: Intro to Ruby
Ruby OOP, All Programming is Metaprogramming, Blocks, Iterators, Functional Idioms, Mixins and Duck Typing

START Projects: Pick a REAL project from a REAL customer

bullet

Scrum in Under 10 Minutes

bullet

Scrum at Microsoft

bullet

The Pivotal Experience: Extreme Programming, Test Driven Development

 

5

27/10
Lec 2

Supp

The Architecture of SaaS Applications
The Web as a Client-Server System: TCP/IP Intro, Representation: HTML and CSS, 3-Tier (Shared-Nothing) Architecture and Scaling, Model-View-Controller Architecture, Active Record for Models, Controllers, Routes, and RESTfulness, Templete Views

Lec 4

SaaS Framework: Intro to Rails
Rails Basics: From Zero to CRUD, Databases and Migrations, Models: Finding, Updating, Deleting, Models: Active Record Basics, Controllers and Views, Debugging: When Things Go Wrong, Forms, Redirection and the Flash, Finishing CRUD

bullet

Getting Started with Rails

bullet

Rubby on Rails Tutorial, by M. Hartl, also teaches tools such as Git, GitHub, RSpec, and explains how to deploy programs to Heroku.
 

6

3/11
 


Saas Framework: Review of Ruby and Rails

 

Lec 5

SaaS Framework: Advanced Rails
DRYing Out MVC, Single Sign-On and Third-Party Authentication, Associations and Foreign Keys, Through-Associations RESTful Routes for Associations, DRYing Out Queries with Reusable Scopes

Iter 0-1: Meet w/customer, User stories on Tracker

bullet

Getting Started Pivotal Tracker, story-based project planning tool  

bullet

Cucumber Part 1 and Part 2

bullet

BDD with Rails


 

7

10/11
Lec 7 Requirements: BDD and User Stories
Introduction to Behavior-Driven Design and User Stories, SMART User Stories, Points, Velocity, and Pivotal Tracker, Agile Cost Estimation, ....

Introducing Cucumber and Capybara, Running Cucumber and Capybara, Lo-Fi UI Sketches and Storyboards, Enhancing Rotten Potatoes Again, Explicit vs. Implicit and Imperative vs. Declarative Scenarios, Plan-And-Document Perspective
   
bullet

Intro to Pivotal Tracker

bullet

Software Estimation in Depth - Steve McConnell, Construx

  P&D:

bullet

Requirements Engineering-Classical Plan-and-Document Perspective

bullet

IEEE IEEE Std 830-1998 - Software Requirements Specifications (SRS)

8

17/11
  Midterm Exam  

Iter 0-2: Lo-fi mockup & storyboard & Initial stories on Tracker

 

9

24/11
Lec 8 Testing: Test-Driven Development
Intro to Rspec and Unit Tests, FIRST, TDD, and Red-Green-Refactor, Seams and Doubles, Expectations, Mocks, Stubs, Setup
Lec 6 SaaS Client Framework: JavaScript

Iter 1 (deploy + new stories)

bullet

Cucumber/RSpec Cycle Part 1 / Part 2

bullet

HTML, CSS, etc.: W3 Schools   codecademy.com   codeavengers

10

1/12
  Testing: Test-Driven Development
Fixtures and Factories, TDD for the Model and Stubbing the Internet, Coverage, Unit vs. Integration Tests, Other Testing Concepts; Testing vs. Debugging, Plan-And-Document Perspective on Software Testing

 

Iteration 1 Demonstration and Evaluation


 
 
11

8/12
Lec 9 Maintenance: Legacy, Refactoring, and Agile
What Makes Code “Legacy” and How Can Agile Help? Exploring a Legacy Codebase, Establishing Ground Truth With Characterization Tests, Metrics, Code Smells, and SOFA, Method-Level Refactoring, The Plan-And-Document Perspective, Reflections, Fallacies, Pitfalls
  Iter 2 (deploy + new stories)

 

12

15/12
Lec 11 Design Patterns for SaaS Classes
Patterns, Antipatterns, and SOLID Class Architecture, Just Enough UML, Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Dependency Injection Principle, Demeter Principle, The Plan-And-Document Perspective on Design Patterns

 

Iteration 2 Demonstration and Evaluation



 
bullet

Introduction to Design Patterns

bullet

Design Patterns Examples in Java


 

13

22/12
Lec 12 Performance, Releases, Reliability, and Security
From Development to Deployment, Quantifying Availability and Responsiveness, Continuous Integration and Continuous Deployment, Upgrades and Feature Flags, Monitoring
  Iter 3 (deploy + new stories)  
14

29/12
  Performance, Releases, Reliability, and Security
Caching: Improving Rendering Time and Database Performance, Avoiding Abusive Queries, Security: Defending Customer Data in Your App, Fallacies and Pitfalls and Concluding Remarks
  Iteration 3 Final Demonstration and Evaluation


 
 

   Important Notes

bullet

This is the syllabus (Course Information Form) given to students at the beginning of the semester.

bullet

The lecture schedules given in the syllabus are tentative and updated here weekly. Look at this table once a week.

bullet

Almost all the slides used during the semester will be available here.

bullet

You can download the previous year’s lecture slides before the class from this address.

bullet

You can download the new lecture slides presented in the class after the lecture from this page.

bullet

I may skip several slides during the lecture (The slides given would be generally too much!). They are included in the course material for completeness and to provide a good reference for your future professional engineering life.

bullet

To follow the lecture and understand the materials presented in class better, get the lecture slides and take the print-outs of them, and please bring them to class.

bullet

Purposes for bringing slides to class: 1) To allow better concentration in lecture by reducing note-taking pressure and to provide a study-aid before and after lecture.

bullet

2) You can take your notes on these slides and be active during the lecture. You digest material much better when you actively take notes from step-to-step demonstrations given by your instructor than by just sitting and watching slides.

bullet

Disclaimers: (a) I may not follow these slides exactly in class (b) I may also use the whiteboard and give some extra notes which will not be posted here as needed in class (c) Students are responsible for what I say and teach in class. (d) Reading these slides is not a substitute for attending lecture.

 

Home | COM 401 Software Engineering | Policies and Regulations