Assignment 9

Due: Monday, December 1st in the Distribution Center

Name: YOUR NAME
Student ID: YOUR ID NUMBER

1. Testability (30%)

A. Think back to testing the BlackJack game in assignment 8. What features of the original BlackJack4.java would make it hard to test?

TYPE YOUR ANSWER HERE: 3-5 SHORT BULLETS.

B. How could you refactor or revise the original BlackJack4.java to make it more testable using JUnit?

TYPE YOUR ANSWER HERE: 3-5 SHORT BULLETS.

2. UML Deployment Diagrams (40%)

A. Draw a UML deployment diagram that represents the following situation. A university enrollment web application can be system tested on one machine that runs all of the following software components: Apache web server, Tomcat application server, MySQL database server. The web server depends on the application server, and the application server depends on the database.

USE RationalRose or ArgoUML TO DRAW A DEPLOYMENT DIAGRAM. PRINT IT OUT AND STAPLE IT TO THESE PAGES.

B. Draw a UML deployment diagram that represents the following situation. A university enrollment web application will use five machines in production: two machines running Apache, one machine running Tomcat, one MySQL server, and one spare machine. The spare normally does nothing, but has all the software installed and could be used to quickly replace any single failed machine. You can assume that the actual data is stored on a RAID storage device that will never fail. (Note: using a spare server is only acceptable when a few hours of downtime is acceptable. For a really critical systems, you would want automatic fail-over that results in only seconds of downtime.)

USE RationalRose or ArgoUML TO DRAW A DEPLOYMENT DIAGRAM. PRINT IT OUT AND STAPLE IT TO THESE PAGES.

3. Developer Documentation (20%)

A. Describe the purpose of the following javadoc tags: author, param, return, throws.

TYPE YOUR ANSWER HERE: FOUR SHORT PARAGRAPHS.

B. Edit the following paragraph to make it a specific user story about two developers using the @deprecated tag.

EDIT THIS PARAGRAPH: Jack created a library with about 40 public methods in its API. In another group at the company, Beth used that library to build a complex software product. Meanwhile, Jack realized that the original API was redundant and had too many confusing options. So, he redesigned the API to have only 30 supported public methods. He marked all the other 10 methods as @deprecated and entered comments to explain SOMETHING. Some of the methods that Jack deprecated were used by Beth. Beth noticed the change when she saw SOMETHING. Beth then DID SOMETHING. Six months later, Jack DID SOMETHING to the deprecated methods.

4. Finding out more (20%)

List 4 to 7 URLs, books, or articles that describe design for testability, UML deployment diagrams, javadoc, or other tools for building and managing end user or developer documentation. For each item, briefly describe why you think that resource would be useful to you or your classmates. Do not list the books and URLs that have been given to you in class.

TYPE YOUR ANSWER HERE: 4-7 SHORT PARAGRAPHS

example use case templatesample test plan templateProject plan template