CS 450/550
Software Design and Development
Fall 2001 - 3 credits


General Information

Instructor

Jeanna Matthews
Office: Science Center 389
Phone: 268-6288
E-mail: jnm@clarkson.edu
Homepage: http://www.clarkson.edu/~jnm/

Times

Class Times: MW 3-3:50 PM, Science Center 340
Lab: M 10-10:50, New Snell 241
Office Hours: TBA

Required Texts

Steve McConnell, Code Complete: A Practical Handbook of Software Construction. Microsoft Press, ISBN: 1-55615-484-4.
Frederick P. Brooks, The Mythical Man Month, 20th Anniversary Edition, Addison-Wesley, ISBN 0-201-83595-9

Other helpful references

Roger S. Pressman, Software Engineering, A Practioner's Approach, 5th edition,McGraw-Hill, ISBN 0073655783, http://www.mhhe.com/engcs/compsci/pressman .

Webpages

I will rely heavily on this class web page for distributing information to the class. Please check it at least once before each class.

Here are some other helpful sites:

Software Engineering Institute at CMU, http://www.sei.cmu.edu/
Guide to Software Engineering Body of Knowledge, http://www.swebok.org/
Brad Appleton's Software Engineering Links, http://www.enteract.com/~bradapp/links/swe-links.html
Software Engineering Webliography, http://polaris.umuc.edu/~skerby/help/wbib_swe.htm

Class mailing list

Post to cs450@clarkson.edu
Web Archive of cs450@clarkson.edu

Official Course Description

This course will expose students to the methods of developing large software systems in an industrial environment. Working in teams, students will design, implement, and test large projects. The work will include oral presentations and written reports.

Prerequisites

CS344 or equivalent

Objectives

Give students a taste of how programming in industry is different and more complicated than programming for a course project
Expose students to tools and approaches that have been developed for managing this complexity

Outcomes

Students will complete a large programming project in teams
Students will learn about and produce documentation that should accompany large software products
Students will learn to think about software from the perspective of designers, programmers, maintainers, users and owners
Students will understand and experience the full software lifecyle
Students will learn tools to help them become more efficient programmers

Group Project

A major component of this course will be a large group software project. Throughout the semester, you will be required to propose project ideas, choose team members, produce design documents and work schedules, submit periodic progress reports and give a final oral presentation of your groups work as well as a final experience paper reflecting on your experience. Your grade on this project will be a combination of a group project grade, grades on individual components and an evaluation by your team members.

Homework

In addition to the group project, there will be individual homework assignments. Some will be programming assignments and others will be written assignments.

Late Policy

Meeting deadlines responsibly and consistently is an important skill to develop for software engineering. If you expect to miss a deadline, you must contact me directly *at least* one week in advance and request an extension. Work submitted late without an extension will receive a 25% penalty on the first day and a 50% penalty on the second day. After the second day, I will not accept the work for a grade. However, due to the sequential nature of the work in this course, many assignments will need to be completed even if they are completed after the point where they receive credit. I reserve the right to enforce absolute deadlines for some assignments (i.e. no late work will be accepted).

Exams

There will be no exams in this course.

Attendance and Participation

Participating in class discussions is an important part of this course so attendance is required and will be a portion of your grade.

Grade

Notes on Academic Integrity

All work you submit must be your own individual work unless explictly indicated. In particular, work taken from books, the Internet, other students or any other source may not be submitted as your own. One violation of this policy will result in no credit for the assignment in question. A second violation will result in a fialing grade for the class. Additional information about rights, obligations and procedures related to academic integrity can be found in Section IV of Clarkson's official regulations.

Projects

Ideas

See case studies that accompany the Pressman textbook. These are student projects from a similar course at the University of Michigan.

Deliverables

Project Plan Documents

Project Design Documents

Final Deliverables


Syllabus

Date Lecture Topic Chapter Other Notes
Mon
8/27
Welcome, Class Organization and Objectives
Mon
8/27
Welcome, Class Organization and Objectives Think about ideas for group projects. Post to class mailing list.
Wed
8/29
2: What is software and software engineering? Pressman 1, 2 Write a description of your previous programming experience suitable for posting to the class.
Some questions to get you started
Mon
9/3
LAB: Describe first assignment, Makefiles, Overview of Documentation
Mon
9/3
Software Process Models Pressman 2
Wed
9/5
Personal Software Process
Mon
9/10
LAB: Debuggers, gdb, ddd McConnell 26 Homework 1 due
Mon
9/10
Code Quality McConnell 4,5
Wed
9/12
IBM Software Engineering Presentation
Mon
9/17
LAB: Mixer for project groups
Mon
9/17
Software Project and Product Metrics Estimation Techniques Pressman 4,5; McConnell 21,22
Wed
9/19
Risk Management, Project Scheduling Pressman 6,7
Mon
9/24
LAB: Discussion Mythical Man Month 1-3 1 page Reaction to Mythical Man Month 1-3 due
Mon
9/24
Software Construction and Prerequisites to Construction McConnell 1,2,3
Wed
9/26
Software Quality Assurance and Configuration Management Pressman 8, 9 Project Plan Documents Due
Mon
10/1
NO CLASS: FALL RECESS
Wed
10/3
What is Design? What are Design Documents? Pressman 13
Mon
10/8
LAB: Source Control (CVS, Visual Source Safe)
Mon
10/8
Design Principles and Concepts Characteristics of Good Design
Wed
10/10
Heuristics for Achieving Good Design; Architectural Design McConnell 6, 7; Pressman 14
Mon
10/15
LAB: gprof, gcov, Purify
Mon
10/15
Software Testing, White Box Testing Pressman 17, McConnell 25
Wed
10/17
Software Testing, Black Box Testing Pressman 18
Mon
10/22
LAB:Code Style McConnell 8, 9, 18, 19
Mon
10/22
(SOSP) Software Quality McConnell 23
Wed
10/24
Discussion of Mythical Man Month 4-6 1 page reaction to Mythical Man Month 4-6 due
Mon
10/29
LAB: Code Reviews Overview McConnell 24
Mon
10/29
In class Code Reviews
Wed
10/31
In Class Code Reviews Design Documents Due
Mon
11/5
PROJECT REVIEW MEETINGS
Mon
11/5
PROJECT REVIEW MEETINGS
Wed
11/7
PROJECT REVIEW MEETINGS
Mon
11/12
LAB:
Mon
11/12
User Requirement Analysis
Wed
11/14
User Interface Design
Mon
11/19
Performance Tuning McConnell 28, 29
Mon
11/19
LAB:
Wed
11/21
NO CLASS: THANKSGIVING
Mon
11/26
Object Oriented Analysis
Mon
11/26
LAB:
Wed
11/28
UML and Design Patterns
Mon
12/3
PROJECT PRESENTATIONS (videotaped)
Mon
12/3
PROJECT PRESENTATIONS (videotaped)
Wed
12/5
PROJECT PRESENTATIONS (videotaped)
Mon
12/10
FINALS WEEK