CS 350/550

Software Design and Development

Fall 2007 - 3 credits

General Information


Chris Lynch
Office: Science Center 377
Phone: 268-2384
E-mail: clynch@clarkson.edu


Class Times: TTh 4:00-5:15 PM, Science Center 334
Office Hours: TTh 1:30-4:00

Required Texts

Bernd Bruegge and Allen H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns, and Java, 2nd edition (2004), Prentice Hall, ISBN 0-13-0471100

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.


CS344 or equivalent


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


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 customors, 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.

I would especially like to see projects that projects that have real customers identified or perhaps that target computing contests such as the IBM Linux challenge.

Here are the final class project submissions from previous semesters: Fall 2004 , Fall 2003 and Fall 2001 .


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. I do not expect to accept late work.

Due to the sequential nature of the work in this course, many assignments will need to be completed even if they are not completed on time and for credit.

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.


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 failing 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.

Tentative Course Schedule

  1. (Chapters 1-3) Introduction, UML, Project Management .
  2. (Chapter 4) Requirements.
  3. (Chapter 5) Analysis.
  4. (Chapters 6-7) System Design.
  5. (Chapters 8-9) Object Design.
  6. (Chapter 10) Implementation.
  7. (Chapter 11) Testing.
  8. (Chapters 12-16) Project Management.