CS 4500: Software Development
Spring 2013

[ Administrivia | Outline ]


Instructor: William D Clinger
Home page: http://www.ccs.neu.edu/course/cs4500wc/
Directory: /course/cs4500wc
Piazza signup: https://piazza.com/northeastern/spring2013/cs4500
Piazza: https://piazza.com/northeastern/spring2013/cs4500/home

Required Textbook: Ian Sommerville. Software Engineering, Ninth Edition. Pearson, 2011.

Catalog description:

Considers software development as a systematic process, involving specification, design, documentation, implementation, testing, and maintenance. Examines software process models; methods for software specification; modularity, abstraction, and software reuse; issues of software quality. Students, possibly working in groups, will design, document, implement, test, and modify software projects.
Prerequisites: CS 3500 (object-oriented design) and CS 3800 (theory of computation)

The course will be organized around a semester project. During the early part of the course, most homework assignments will emphasize individual writing. During the second half of the course, most project work will be done in teams. Students should expect to present some of their work to groups of other students, including at least one presentation before the entire class. The semester project will involve writing a program that runs on a CCIS Linux machine.

The writing, presentation, software projects, and other assignments will account for about three quarters of the final grade. A midterm will account for about one quarter. No final exam will be given, but project walkthroughs and demonstrations will be conducted during the last week of class.

This is not a course in software engineering, primarily because we will avoid most of the management issues. Software engineering does, however, provide the context for our discussion of the more technical aspects of software quality.

Security is an important aspect of software development. In this course, students are expected to protect the software they develop from plagiarists and thieves. The quality of this protection will be graded.

Tentative Outline

8 Jan Introduction
The Tar Pit
The Mythical Man-Month
Chapter 1 (Introduction)
Chapter 2 (Software Processes)
Chapter 4 (Requirements Engineering)
15 Jan Passing the Word
Interchangeable parts and black-box testing
Software process models
Calling the Shot
Project-specific theory and standards
Chapter 3 (Agile Software Development)
Chapter 8 (Software Testing)
Chapter 6 (Architectural Design)
22 Jan Software Architecture and Design
Scaling up, part 1:
  asymptotic complexity & efficiency
Chapter 7 (Design and Implementation)
The Story of Mel, a Real Programmer
Chapter 22 (Project Management)
29 Jan The Surgical Team
Plan To Throw One Away
Case studies
5 Feb Testing & debugging
Reliability & security
12 Feb Scaling up, part 2: reuse
19 Feb Scaling up, part 3
26 Feb Sharp Tools
Hatching a Catastrophe
Silver bullets
5 Mar No class: spring break
12 Mar Architectural reviews
19 Mar Architectural reviews
26 Mar Midterm exam
2 Apr Code reviews
9 Apr Code reviews
16 Apr Code reviews

Last updated 26 February 2013.

Valid XHTML 1.0!