Course Homepage

This is the home page for CSCI/CSIS 656: Software Design and Implementation.
Class Time: 5:30PM - 8:15PM Wednesday
Location: LGC 140
Instructor: George Rudolph
Office Hours: 5:00PM - 5:30PM at LGC, or by appointment

Course Description

An introduction to the issues, techniques, strategies, representations and patterns used in designing and implementing software. Possible design topics include: specification of internal interfaces, architectural design, data design, user interface design, design tools, and evaluation of design. Possible implementation topics include: language-oriented issues,construction technologies, tools, and formal construction methods.


Major Topics

  • Architecture, Design & Implementation
  • Object-Orientation
  • UML & Modeling
  • Refactoring for Architecture
  • "Necessary & Sufficient" Code & Documentation
  • "Some things are 'better' than others" and other questions

Course Outcomes

Upon successful completion of this course, a student will be able to

  • Design and document small, medium and large software architectures from requirements
  • Apply object-oriented principles to software design
  • Refactor existing code to achieve specific architectural qualities
  • Evaluate alternative designs according to principles of good architecture and design
  • Implement a medium to large software program that requires the effort of more than one person

Text & Materials


Software Architecture: Foundations, Theory and Practice
by Taylor, Medvidoviĉ, Dashofy.
Copyright 2009, John Wiley & Sons
ISBN-13: 978-0470-16774-8

Other Materials

You may use any tools for diagrams that you like, as long as the notation is consistent and correct, and you have a way to submit diagrams electronically. Your text mentions a tool suite called ArchStudio, available at its project website. You are welcome to try this out if you have Java and use Eclipse, but this is NOT mandatory--use what is effective.

Other Policies

The class lectures are recorded for later viewing, however attendance in class is expected. If you must arrive late or leave early, please notify your instructor beforehand, if possible.

Assignments will be submitted electronically. Details will be discussed on the first day of class.

Any student who misses 9 or more hours of class may receive an "F", at the discretion of the instructor.

Bringing laptops to class is ok, as long as you pay attention to the instructor.

Study groups, which may be digital, mobile and virtual, are ok, but each person must submit their own work, as required by academic integrity. For team assignments and projects, you are expected to work together.

Please set cellphones, iPods and any other such communication devices to silent mode.


Important notices may appear here as needed.