COSC 303                Large Systems Design                Spring, 2007


Course Description

Instructor:             Chris Nevison

Text:                      Object-Oriented Software Engineering, Lethbridge and Laganiere

Recommended:     Big Java, Horstmann
                               Core Java, v.1, Horstmann
                               Design Patterns, Gamma, Helm, Johnson, Vlissides

Class:                    MW 2:45-4:00               312 McGregory

Lab:                       Mon 4:00-6:00 pm         310 McGregory

Office Hours:        By appointment              303 McGregory


Course Objectives

The goal of this course is to learn about the process of developing large software systems, from the client's initial need to delivery of a tested and working system. This process includes analysis of the client's needs, development of precise specifications, design of the system, detailed design, development of tests for different stages of development, implementation (coding and integration), testing, and deployment. This is not a course on coding large programs; it is a course on the whole process, of which coding is a small part.

We will work with object-oriented design and programming, so we will need to develop an understanding of the essential ideas of object-oriented methods for design and coding. We will use Java as the target language. We will use UML (Unified Modeling Language) to describe our models and designs. We will use the tool Poseidon to develop UML diagrams. The last part of the course will be the development of a moderate size design, with the class working as a team. There will be programming labs during the course, but the final project will have as its objective a complete specification and design for a project, not an implementation!


Requirements

Work Journal - a journal of all work that you do for this course, including time spent, and evaluation of co-workers (15%)

Labs - there will be several labs early in the course designed to learn about the tools to be used (30%)

Quizzes and Homework - there will be regular online quizzes (using Blackboard) and homework on the reading (25%)

Project work - the class will work together as a software development team on a major project (30%)