Software Design (Engi-5895) 2016
Useful Links
Software examples
- Race.java. A simple illustration of the futility of using testing to show concurrent code is correct. My blog post on the same topic.
- Rat Race: Timer-based animation and the Model-View-Controller architecture. Also illustrates the Graphics class and timer-based animation.
- AnimationList: Demonstrates timer-based animation with animation actions and composite animation actions. This source is discussed in the slide set on Animation with Timers.
- Graphics examples: Illustrating some things you can do with the Graphics class.
- Othello-3: Added input and some other details to make a complete working game.
- The executable jar file
- To run the server:
java -cp othello.jar othello.ServerMain
- To run the client:
java -cp othello.jar othello.ClientMain
or "open" the jar file.
- Othello-2: Adds distributed computing using the remote concurrent observer pattern to othello-1. (Updated 2015 March 11)
- Othello-1: Adds concurrent observers and multiple view strategies to othello-0.
- Othello-0: Illustrates thread-based animation. Also illustrates the use of Java's Graphics class.
- Turtle-talk: Illustrates the command pattern (code generation rules), the observer pattern and the facade pattern.
- Sorting with observers: Illustrates the strategy pattern --arguably the command pattern-- for algorithms and the observer pattern for views.
- Not for the faint of heart: the Teaching Machine. The TM uses many patterns in many ways and illustrates a moderately complex design based on model and view. Not all the design in the TM is exemplary, however.
Books
- Read this first: Trouble accessing these books? If you can only see the free preview version of any of these books: (a) Close the Safari Books Online tab on your browser. (b) Clear all cookies from proquestcombo.safaribooksonline.com. (c) Try the link again.
- Also read this: When you are finished with a book for a while, sign out. This is very important.
- Horstmann and Cornell, Core Java 2., 9th edition. (Please sign out when you are done. Sign out using the "Memorial University" menu at the top of the Safari Books Online page.)
- Martin Fowler, UML Distilled, 3rd edition. (Please sign out when you are done. Sign out using the "Memorial University" menu at the top of the Safari Books Online page.)
- Freeman, Robson, Bates, & Sierra, Head First Design Patterns. (Please sign out when you are done. Sign out using the "Memorial University" menu at the top of the Safari Books Online page.)
Java tools
Model-View-Controller and related architectures
Design by contract and assertional programming
RMI
(c) Theodore Norvell