Enter Search Request 




Number of documents to retrieve
Sort type
WCU is a University of North Carolina Campus
 
CS 363 Syllabus
Software Development

Revised: January 2006 (David Luginbuhl)

Course Description

Techniques for design and construction of reliable, maintainable, and useful software systems.  3 credit hours. Prerequisites: CS 151.

Objectives

Students will work on UML design and Java implementation of projects while learning about applicable object-oriented design patterns.

This is chiefly a course on object-oriented design. Students will use UML to express designs. General design principles such as using composition rather than inheritance, using interfaces, and encapsulation will be covered. Students will learn to use design patterns such as Adapter, Strategy, Factory, and the Delegation Event Model. The following parts of the Java programming language will be used and explained: concurrency, inner classes, and GUI programming. The second half of the course will focus on JavaBeans: Java's component architecture. The completion of a sequence of projects will help students understand the value of using the design principles.

Text

It is difficult to find a single text that covers all of the topics in this course.  There will probably be more than one text for this course.  The texts are chosen to cover as many of the following topics as possible.

  • Object-Oriented Design
  • UML
  • Design Patterns
  • Software Components (JavaBeans)
  • Designing with Threads
  • GUI Programming or Human Computer Interfaces Design (HCI)

In the fall of 2002, the texts used were Refactoring by Martin Fowler and a book on design patterns in Java.

Grading Procedure

Grading procedures and factors influencing course grade are left to the discretion of individual instructors, subject to general university policy.

Attendance Policy

Attendance policy is left to the discretion of individual instructors, subject to general university policy.

Course Outline

  • Introduction to UML:
              o The Unified Modeling Language.
  • Low-level patterns:
              o Coding standards
              o Naming standards
              o Behavior patterns
              o State patterns
  • JavaBeans Component Architecture:
              o Events
              o Persistence
              o Bound and constrained properties
              o Reflection and introspection
  • Object-Oriented Design Principles:
              o Loose coupling and tight cohesion
              o Encapsulation
              o Inheritance vs. composition
              o Interfaces: when and how to use them
  • Higher-level patterns:
              o Proxy
              o Factory
              o Adapter
              o Observer
              o Strategy
  • Other Design Topics:
              o Designing with Threads
              o GUI programming and HCI
Copyright 2009 by Western Carolina University       •     Cullowhee. NC 28723       •      Contact WCU
Maintained by the Office of Web Services       •      Map & Directions       •      Mapquest It       •      Emergency Information       •      Text-Only