Spring 2015 CSc 307 Homework Assignments
Homework #1
1. Complete the SimSE
assignment.
Homework #2
2. Research the responsibilities required of the job you possess
on your team. Read the sections of the textbook relevant to
your job. See if there are any relevant resources on the
course web site. Write a job description for your role on
the team. Include any deliverables for which you are
responsible. Describe any tasks you must perform on a
regular basis. Type up the document in 12-point proportional
font and save as a PDF. Place your name and job title at the
top. One page maximum. Submit to PolyLearn.
Homework #3 - Learning
NetBeans
We will be using the NetBeans IDE for Java development in CPE
308 this quarter. NetBeans 7.x is available on the
lab workstations. You may also want to install it on your
personal computer. For integrated JUnit tests, please use
version 3.x.
Visit NetBeans Docs
and Support site. There are many screencasts, tutorials,
and articles. I suggest the "General Java Development" learning
trail, and from there the Java Quick Start Tutorial takes only
10 minutes. After that, Developing General Java Applications
tutorial takes about 30 minutes.
Complete this Java
review activity using NetBeans
Homework #4 - Practice with Trac.
Prerequisites: Your team change manager must have completed the Trac
SiteSetup
directions.
The Project
Overview mandates that each student keep track of their
project time. Create a ticket for yourself on your team Trac
reminding yourself to submit your time
log for week 1 to the team manager. Click "View Tickets"
and select an appropriate report for viewing. Complete the
task. Close the Trac ticket. View the report again.
Browse to the Sandbox page for your team wiki, e.g.
http://wiki.csc.calpoly.edu/teamname/wiki/SandBox
Create an entry for yourself like this
example. Refer to the guide on WikiFormatting,
use
a heading, bold, monospace, a hyperlink, a list, a trac link to a
ticket, and escaping WikiPageNames. Don't forget to add
a comment when you submit the page.
Create a new topic in your Trac discussion forum. Add yourself
as a subscriber and be sure you receive an email notification.
There is nothing else to submit for this assignment.
Homework #5
Read the outline of how to create
a schedule and study the worked
example.
1. Given the following information taken from a project's work
breakdown structure:
Activity
|
Predecessors
|
Duration
|
A
|
-
|
10
|
B
|
-
|
10
|
C
|
-
|
5
|
D
|
A
|
7
|
E
|
B
|
5
|
F
|
B
|
7
|
G
|
B
|
2
|
H
|
C
|
5
|
I
|
G, H
|
8
|
J
|
D, E
|
4
|
a. Draw a task network diagram.
b. Create a table of earliest start/finish dates.
c. Draw a timeline chart.
d. Create a schedule, assuming the project starts on Jan 3 2011.
(You may combine steps c and d if you are using a scheduling tool).
e. List the tasks on the critical path, and the earliest completion
date.
Submit a hardcopy of your work in class on the due date.
For Instructor: HTML
Gantt
chart .planner file
2. (Extra Credit) If your team decides to do this
activty, then everyone on the team must do it. It's a great way to
learn about each other's temperament and problem solving styles.
Complete the online
Keirsey-Bates Temperament Scorer.
Plan to take about 20 minutes.
When you finish the survey, you will be shown a
results page with an interpretation of your temperament. Print the
results page and bring it to class to discuss with your teammates.
Homework #6
Read Lethbridge chapter 4 to learn what should go in a requirements
document and how to create good requirements. Read the SRS for the
Crazy Eights project to see if it follows Lethbridge's
suggestions.
Write a critique of the Crazy Eights SRS (bullet list okay). Please
follow the writing guidelines in the syllabus. (Suggested
effort: one hour).
- Identify which sections of the Crazy Eights SRS correspond to
specific sections of the chapter.
- Identify any of Lethbridge's guidelines that were omitted or
left out of the Crazy Eights SRS.
- Identify which sections of the Crazy Eights SRS that are not
mentioned in the chapter.
- Evaluate the quality of individual items in the SRS. (Do
they satisfy the author's criteria in chapter 4.9?)
Include your name and team name in the heading of your paper. Submit
as a PDF document to PolyLearn.
Homework #7
Write a Use Case for the procedure for enrolling in a course with
PASS at Cal Poly.
Include your name and team name in the heading of your paper. Submit
as a PDF document to PolyLearn.
Homework #8
Follow the direction for this
assignment.
Bring a hardcopy of your typed work to class on the due date.
Retain your work until the instructor asks to collect it.
Homework #9
Download the software for our competitor's application, FormScanner.
Attempt to score the scans of exams in this zip
file. (The first image is the exam scoring key).
For each of principles 3 - 12 in 7.4 of book, discuss what aspects
of the software fulfill the principle, and what aspects
don't. (Don't critique the web site, only the software
itself). Include in your document the output produced from
FormScanner.
Put your name and team in the header of your document and submit as
a PDF to PolyLearn.
Homework #10
Complete the Working
with Subversion in NetBeans activity (Pizza Order
International). There is no written submission for this homework.
(Extra Credit) If your team decides to do this activity, then
everyone on the team must do it. It's a great way to learn about
each other's temperament and problem solving styles.
Complete this
online personality test.
Plan to take about 15 minutes.
When you finish the survey, you will be shown a results page with an
interpretation of your temperament. (Click "Start Reading").
Either print the results page introduction, or write down the URL,
and bring it to class to discuss with your teammates (and submit for
credit).
Homework #11
Use one of the suggested UML diagramming tools from the Tools List
(recommended: Violet)
to complete problems 1 and 2:
#1. Draw a UML Class Diagram showing the relationships for these
entities:
Bird, Kite, Flyable, air current, beak, feather, eagle, finch, tail,
string
#2. Draw a UML Class Diagram showing the relationships for these
entities:
MusicPlayer, CD player, iPod, Band, guitarist, drummer, drumset,
guitar, lead guitarist, rhythm guitarist, bass guitarist, song,
playlist
#3. Imagine a simple two player internet game called Game2D with
these features. Write a list of errors in this preliminary class
diagram for Game2D. List the errors you identify ranked from
most severe to least severe. Type your solution using the
course writing guidelines.
Print your solutions and bring them to class. We will discuss
the solutions as a group before submitting your papers, but they are
still due at the class starting time.
Homework #12
Complete the Self-Evaluation
and submit your typewritten document.
Complete the Peer-Evaluation.
Typed is preferred, but neatly handwritten is acceptable.
Homework #13
Create a UML Class Diagram for a design of a solution to the
Library problem (class handout). Include all attributes and method
signatures. You do not need to include user interface classes. Use
one of the suggested UML diagramming tools from the Tools List
(recommended: Violet)
You may make any reasonable assumptions about the requirements
that are missing from the problem statement; document your
assumptions on a separate page.
Homework #14
Your objective of this homework is to critique your team's design
for your version 1 product. Apply the design principles from the
textbook in the following manner:
For each of the eleven design principles in chapter 9,
- Identify a specific place in your code that violates that
principle.
- Describe why your design violates the principle.
- Describe how to improve your design to conform with the
principle (provide specific details where relevant).
If you can't think of a solution, describe how the downside of
your design can be minimized.
Please organize your document in the order of the principles in the
book and label each section with the name of the principle.
Include your name and team name in the heading of your paper. Submit
as a PDF document to PolyLearn.
Homework #15
One of the architectural patterns discussed in the readings is the
Model-View-Controller (MVC) pattern. In Java, this
pattern exists as the Observer-Observable classes. If
you haven't used this pattern before, here's a short
tutorial.
The TenLetterWordGame.zip
file contains a NetBeans project for a simple graphical word
game. All the code is located in a single file.
Refactor the application so that is uses
Observer/Observable. The GUI is the observer and should
have no game logic.
Create a zip file from your project folder and submit to PolyLearn.
Homework #16
1. Complete the Design
Rationale Exercises. Include your name and the
assignment number at the top. Submit a PDF to PolyLearn.
2. Repeat homework 13 with the video
store problem (pdf).
Homework #17
The assignment directions are here: Pseudocode
Type your solution into a plain text file using a text editor and
submit it to PolyLearn
Homework #18
The assignment directions are here: Intro
to JUnit Testing in NetBeans
Homework #19
Part A
Write a JUnit test class, DigraphTest, which performs
tests on all six methods in the Digraph class. (Digraph
is dependent on the Natural and LetterPair classes.)
Here are the necessary .class files: Digraph.class Natural.class LetterPair.class
Here they are in a single JAR file: Digraph.jar
(To add this JAR to a NetBeans project, open the project
Properties > Categories > Libraries > Compile-time
Libraries > Add JAR/Folder.)
Submit a single source file containing your completed,
executing, and passing JUnit tests to PolyLearn. Include your name
in an @author tag in the class header.
Instructor
Link
Part B
Homework #20
Read this short overview of writing
system tests cases and the QA criteria. (You don't have to
read the last section on scripting).
Read this short description of the format
for presenting system tests cases.
Inspect the first seven example test cases in this
list. Attempt to identify the most serious problem and
write a brief explanation
of how it could be improved.
Include your name and team name at the top of your document.
Print your document and bring it to class. We
will discuss the solutions as a group before submitting your papers,
but they are still due at the class starting time.
Homework #21
Write a system test script for the Jotto application. Follow these
directions (shown as "hwk 10").
Homework #22
Complete the JaCoCo
Plugin tutorial for NetBeans.
Create a NetBeans project for FileList.java.
Write a JUnit test class that achieves at least 97% line coverage.
Create a document containing your JUnit test source code
(monospaced font) and a screenshot of Results page showing
coverage of FileList.java. Submit as a PDF to PolyLearn.
Homework #23
Complete the Self-Evaluation
and submit your typewritten document.
Complete the Peer-Evaluation.
Typed is preferred, but neatly handwritten is acceptable.
Please don't staple; submit separately.
The Project Manager must also print and complete the
project survival test from your
required reading. Although the questions are in present tense, since your project is finished, assume they are posed in the past tense. Bring the completed document to the project retrospective to share with your team.