CSSE 377 -
Software Architecture and Design 2 -
Fall 2010-11

[1]

Here's a summary of Useful Links to other places -

Link

Description

The Table of Smells

Describes the ways to detect when you should refactor some code. It�s the same table that's in the back of Martin Fowlers book, Refactoring: Improving the Design of Existing Code, plus links to Java examples on Fowler's Refactoring web site (see below).

Martin Fowler�s Refactoring site

Key links to other refactoring sites, plus Dr. Fowler's own basic introductory ideas about refactoring.

CRC - Georgia Tech Tutorial (see CRCProject.doc) or UMKC Tutorial

Two basic tutorials on how to use the CRC method to begin designing from requirements documents and knowledge.

UML - Rational or OMG (preferred)

Three links on how to use UML effectively in design work.

GoF in UML models

The design patterns from Gamma et al, expressed in UML.

Bob Tarr's tutorial

Basics of software patterns, including (on slides 11-13) the standard template for writing your own.

Cognitive Dimensions of Notations Resource Site

This is the HCI design-related site referenced related to assessing usability of information artifacts.

Article on Refactoring, Coupling & Cohesion

"Refactoring - Improving Coupling and Cohesion of Existing Code," by Bart Du Bois, Serge Demeyer, and Jan Verelst. I'm currently trying to get us legitimate access to this article.

Shaw & Garland's Architectural Styles (Sec 3)

"An Introduction to Software Architecture," by David Garlan and Mary Shaw, January 1994, CMU-CS-94-166. Read Sec 3, pp. 8 - 19.

Safari resources for this course... -->

 

How to get to Safari:

 

On the Rose home page Quick links pick "Logan Library". There, click on Logan Library Databases and then on that page pick "Safari Tech Books Online." At some point you have to identify yourself with your Rose Login. Safari will let you then pick and read any book we are authorized to read (possibly restricted if someone else is currently reading that book). Searching by author name usually delivers the right book on the first try.

Recommended Safari books for this course are:

UML Distilled: A Brief Guide to the Standard Object Modeling Language, Second Edition By Martin Fowler, Kendall Scott

 

Extreme Programming Explained

By Kent Beck

 

Pair Programming Illuminated

By Laurie Williams, Robert Kessler

 

Other "design pattern" books - search for these by subject. Let me know if you find good ones! (Unfortunately you also have to wade through books on Perl programming and such.)

 

 

Brad Appleton's tutorial

This is Patterns and Software: Essential Concepts and Terminology, by Brad Appleton

 

"Qualities for multi-ethnic customer relations"

I had a good link giving advice on client relations - dealing with people who are not necessarily like the developers. Still looking!

"A few interesting links about lateral thinking" - The theory, and some puzzles

A link explaining this creativity method, and a sample of the classic brain teaser puzzles that use lateral thinking.

Examples of architecture documents on the web: 1, 2, 3, 4

These examples all show current practice, though some are better than others at highlighting quality attributes, and none use the scenarios or views that we do.

 

 

 



[1] Result of an "online tall bike design exercise," from hpv.tricolour.net/ vic-tallbike.html.