CSE 1325 Animal Shelter Software Programming Code
Product BacklogProduct Name:
Mav’s Animal Shelter Software (MASS)
Team ID:
Team Member Name
Initials
Required
Sprint #
0
1
2
3
4
5
Remaining Completed This Sprint
22
Total
22
0
22
0
22
0
22
0
22
0
Comment
Total number of features (in column H)
1 Total features left at the end of Sprint #1
2 Total features left at the end of Sprint #2
3 …and so on
Note: Priority and specs for unfinis
Additional features may be propos
Feature ID
ANIMAL
Priority
1
Sprints
Required Bonus Est Planned Status
1
5
As a…
User
DOG
2
1
8
Staff
LANIM
3
1
8
Staff
CAT
MAINWIN
TOOLBAR
ABOUT
EXIT
DOGDIALOG
4
5
6
7
8
9
1
2
2
2
2
2
5
3
2
3
2
13
Staff
User
User
User
User
Staff
CATDIALOG
10
2
8
Staff
SHOWANIM
11
2
5
Staff
SAVE
12
3
8
Manager
LOAD
13
3
8
Manager
NEW
SAVEF
14
15
3
3
5
5
Director
Director
LOADF
16
3
3
Director
Page 1
Product Backlog
GENERIC
17
4
13
ITER
18
4
5
CLIENT
19
4
8
Staff
LCLIENT
ADOPT
LADOPT
20
21
22
4
5
5
5
13
8
Client
Client
Staff
Staff
NANIM
4
TBD
5
Client
PHOTO
4
TBD
8
Client
Page 2
Product Backlog
Page 3
Product Backlog
Complete Fields in Green!!!
Product Backlog Burn
Features Remaining at end of Sprint
Student ID
atures (in column H)
at the end of Sprint #1
at the end of Sprint #2
25
20
15
10
5
0
0
1
2
Note: Priority and specs for unfinished Features is subject to change at the end of each sprint at the whim of the Product Owne
Additional features may be proposed by the student but must be approved by the Product Owner in writing
I want to…
Track the name, gender, and age for all animals
So that I can…
Keep track of guests at our shelter
Create a new dog (or any other family of animals)
Track pets seeking good homes
Keep a list of animals
See what animals are available
Create and list cats (or 2nd animal family) as well
Display a main window with menu
Include a toolbar
Include an About dialog for toolbar icons (Help > About)
Exit the main program (File > Quit or x window control)
Use dialogs to create a new dog or 1st family (Animal > New)
Put 2nd pet type up for adoption
Use the program more easily
Click buttons for actions
Avoid legal trouble
Quit reliably
Track pets seeking good homes
Use dialogs to create a new cat or 2nd family (Animal > New) Track more pets seeking good homes
Display all animals in the main window (Animal > List
Available)
See the beloved animals that are
current guests of the shelter
Save the data to a default file (File > Save)
Persist our data through the years
Load the data from a default file (File > Open)
Persist our data through the years
Create a new shelter (File > New)
Save the data to a specified file (File > Save As)
Open additional shelters as needed
Backup or baseline a new shelter
Load the data from a specified file (File > Open)
Work with multiple shelters
Page 4
Product Backlog
Refactor Add (Animal) dialogs into generic class and add at
least one additional family of animals
Refactor to use iterators to access animals from Shelter
Quickly add additional animal families
to our guest list
Practice iterators (well?)
Create a new client (Client > New)
Track candidate adopters
List clients (Client > List)
Adopt an animal (Client > Adopt Animal)
List adopted animals (Client > List Adopted and Animal > List
Adopted)
See which clients are available
Adopt an animal!
See which client adopted which
animal
Bonus Features
Create new animals and / or clients during adoption
Simplify the adoption process
See photo and information about an available animal
Decide if it’s right for my family
Page 5
Product Backlog
Page 6
Product Backlog
Product Backlog Burn Chart
2
3
4
5
6
Sprints
nt at the whim of the Product Owner
wner in writing
Notes
Need enum for Gender and abstract Animal class with constructor, getters,
and toString. Validate that age is not negative else throw an exception.
Need Dog class that extends Animal along with DogBreed enum (may be
any animal family, not necessarily Dog).
Requires Shelter class with a shelter name and array list of animals. Need to
be able to add an animal and access the available animals.
Very similar to 1st type of pets
Baseline Nim
Baseline Nim; add 2 buttons for inserting the two animal families
Baseline Nim; need icons for the two animal families; use YOUR name
Baseline Nim
May be a series of JOptionPane dialogs or a single unified dialog
Similar to 1st
Update after every Insert operation (Animal > List Available will be needed
when clients are added in a later sprint). May be a label or similar widget in
the data area of the main window
Requires Animal.save(bw), Dog.save, Cat.save, Shelter.save;
Shelter.filename with getter and setter, and Mass.onSaveClick
Requires Animal.Animal(br), Dog.Dog, Cat.Cat, Shelter.Shelter and
Mass.onOpenClick; dialog and logic for handling “dirty” data
Requires Mass.onNewShelterClick
Requires Mass.onSaveAsClick, Shelter.setFilename; adding JFileChooser
Requires adding JFileChooser
Page 7
Product Backlog
Requires generic class for unified dialog to create new animal guests
Replace numAnimals and getAnimal with getAnimalIterator; update all users
of those methods
Requires Mass.onCreateClient; 1 dialog; class Client; Shelter.addClient and
fields
Requires Shelter.numClients and client; and Mass.onClientsList
Requires Shelter.adopted HashMap, new dialog
Requires 1 dialog to select the client and 1 dialog to select the animal;
Mass.onListAdoptedClick
Add “New Client” button to the client selection dialog; Add “New Animal”
button to the animal selection dialog; add logic to integrate smoothly
Requires existing animal selection dialog + 1 dialog derived from Animal >
New with a Gtk::Image, Mainwin::on_view_animal_click.
Page 8
Product Backlog
Page 9
Sprint 01 Backlog
Remaining
Total Tasks
Day 1 Left
Day 2 Left
Day 3 Left
Day 4 Left
Day 5 Left
Day 6 Left
Day 7 Left
Task ID
*** Create a new Sprint Backlog for EVERY SPRINT ***
Sprint Burn Chart
1.5
Completed (this day)
1
1
1
1
1
1
1
1
Feature ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Complete Fields in Green!!!
1
Feb 22
Mar 01
TBD
Tasks
Sprint #
Start on
End on
Demo on
0
0
0
0
0
0
0
1
0.5
0
1
2
3
4
Days
Assigned To Description
–> Add tasks to complete each feature for this sprint
Page 10
Sprint 01 Backlog
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Page 11
Sprint 01 Backlog
Sprint Burn Chart
4
5
6
7
8
Days
Status
Notes
Page 12
Sprint 01 Backlog
Page 13
Sprint 02 Backlog
Remaining
Total Tasks
Day 1 Left
Day 2 Left
Day 3 Left
Day 4 Left
Day 5 Left
Day 6 Left
Day 7 Left
Task ID
*** Create a new Sprint Backlog for EVERY SPRINT ***
Sprint Burn Chart
1.5
Completed (this day)
1
1
1
1
1
1
1
1
Feature ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Complete Fields in Green!!!
2
Mar 01
Mar 08
TBD
Tasks
Sprint #
Start on
End on
Demo on
0
0
0
0
0
0
0
1
0.5
0
1
2
3
4
Days
Assigned To Description
–> Add tasks to complete each feature for this sprint
Page 14
Sprint 02 Backlog
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Page 15
Sprint 02 Backlog
Sprint Burn Chart
4
5
6
7
8
Days
Status
Notes
Page 16
Sprint 02 Backlog
Page 17
Sprint 03 Backlog
Remaining
Total Tasks
Day 1 Left
Day 2 Left
Day 3 Left
Day 4 Left
Day 5 Left
Day 6 Left
Day 7 Left
Task ID
*** Create a new Sprint Backlog for EVERY SPRINT ***
Sprint Burn Chart
1.5
Completed (this day)
1
1
1
1
1
1
1
1
Feature ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Complete Fields in Green!!!
3
Mar 08
Mar 15
TBD
Tasks
Sprint #
Start on
End on
Demo on
0
0
0
0
0
0
0
1
0.5
0
1
2
3
4
Days
Assigned To Description
–> Add tasks to complete each feature for this sprint
Page 18
Sprint 03 Backlog
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Page 19
Sprint 03 Backlog
Sprint Burn Chart
4
5
6
7
8
Days
Status
Notes
Page 20
Sprint 03 Backlog
Page 21
Sprint 04 Backlog
Remaining
Total Tasks
Day 1 Left
Day 2 Left
Day 3 Left
Day 4 Left
Day 5 Left
Day 6 Left
Day 7 Left
Task ID
*** Create a new Sprint Backlog for EVERY SPRINT ***
Sprint Burn Chart
1.5
Completed (this day)
1
1
1
1
1
1
1
1
Feature ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Complete Fields in Green!!!
4
Apr 12
Apr 19
TBD
Tasks
Sprint #
Start on
End on
Demo on
0
0
0
0
0
0
0
1
0.5
0
1
2
3
4
Days
Assigned To Description
–> Add tasks to complete each feature for this sprint
Page 22
Sprint 04 Backlog
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Page 23
Sprint 04 Backlog
Sprint Burn Chart
4
5
6
7
8
Days
Status
Notes
Page 24
Sprint 04 Backlog
Page 25
Sprint 05 Backlog
Remaining
Total Tasks
Day 1 Left
Day 2 Left
Day 3 Left
Day 4 Left
Day 5 Left
Day 6 Left
Day 7 Left
Task ID
*** Create a new Sprint Backlog for EVERY SPRINT ***
Sprint Burn Chart
1.5
Completed (this day)
1
1
1
1
1
1
1
1
Feature ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Complete Fields in Green!!!
5
Apr 19
Apr 26
TBD
Tasks
Sprint #
Start on
End on
Demo on
0
0
0
0
0
0
0
1
0.5
0
1
2
3
4
Days
Assigned To Description
–> Add tasks to complete each feature for this sprint
Page 26
Sprint 05 Backlog
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Page 27
Sprint 05 Backlog
Sprint Burn Chart
4
5
6
7
8
Days
Status
Notes
Page 28
Sprint 05 Backlog
Page 29
Mav’s Animal Shelter Software
Due Tuesday, March 8 at 8 a.m.
CSE 1325 – Spring 2022 – Homework #6 – Sprint 2 – Revision 0 – 1
Assignment Background
This semester we will be developing the Mavs Animal Shelter Software (MASS), which manages a no-kill
shelter aiming to help companion animals of various types to adopt humans. Yes, I have a soft spot for warm
fuzzies. We need to keep track of the animals at our shelter, the human candidates for the animals to adopt,
and the animal – candidate matches made in heaven.
You are encouraged to replace Dog and Cat with other families of animals such as guinea pigs, tarantulas,
snakes, lizards, or parrots.
For the project, we will use a different class hierarchy, with the user interface at root and the data model in
package shelter.
Sprint 2
In this sprint, you will add a Graphical User Interface to the basic data model created during Sprint 1.
Plan your work in Scrum.xlsx, and include your planning and status information at cse1325/P06/docs/.
In your git-managed cse1325 directory cse1325/P06/, with reference to the UML diagram below, create the
MainWin class.
You may adapt code from Mass.java for the suggested solution for Sprint 1, the Nim project from Lecture 12,
and the example code provided in Lecture 12 and 13. Reference the code provided for package shelter in the
suggested solution for Sprint 1 while improving your own implementation, should you find it helpful, but do not
copy the package. Work with your own code for now.
The Mass and MainWin classes and build.xml are outside the package at cse1325/P06/. Always build (ant)
and run (java Mass) from the cse1325/P06/ directory.
Add, commit, and push all files to your private cse1325 GitHub repository.
Hints
shelter
The shelter package should require no modifications to be used by your GUI, although you are free to make
improvements and additions where you find them helpful. You have more flexibility on the project to (gently)
deviate from the UML class diagram.
MainWin
MainWin has two fields: The Shelter instance that manages your data, and the JLabel that displays your data
in the main window. The other objects you need can most likely be created in local scope – Swing will maintain
a reference to them once added to a container, so they will not be deleted by the garbage collector.
Your constructor MainWin should create the menu and toolbar along with their listeners / observers, and the
data label that will display the available animals.
onNewDogClick and onNewCatClick
These methods should collect the information needed to instance a new Animal subclass. Again, you are
encouraged to NOT use Dog and Cat, but something more creative, and your method names will change to
reflect the Animal families selected.
You may use a series of JOptionPane.showInputDialog and similar calls to collect each datum separately, and
it’s fine to start there. But if possible, once the rest of your code is working, try to replace this with a single
dialog as demonstrated (using JDialog and JOptionPane, your choice) in Lecture 13.
onAboutClick
Give credit for your icons, logo, and any code you incorporated into your assignment here. Also specify a
license for your code! See Lecture 04 starting with slide 44 and the accompanying video discussion at Canvas
> Modules > Lecture 04 > Chapter 8 if you’ve forgotten how to do this.
The HTML that you display in your About dialog might start something like this, for example.
Version 1.0
Copyright 2022 by George F. Rice
Licensed under Gnu GPL 3.0
Logo created by Papafox, used under the Pixabay License
onQuitClick
Exit the program. In Sprint 3, we’ll worry about not losing the user’s unsaved data here as well.
updateDisplay
Call this method after you change the data model – that is, after any call to Shelter.addAnimal.
Your Shelter.toString almost certainly returns plain text with embedded newlines. Unfortunately,
JLabel.setText will ignore the newlines. I use this quickie String manipulation to convert any plain text into
HTML with “” converted to their respective HTML encodings and the newlines converted into line
break tags. Help yourself, no acknowledgement required.
data.setText(“” + shelter.toString()
.replaceAll(“”, “>”)
.replaceAll(“\n”, “”)
+ “”);
Mass
Your main program should now simply instance MainWin. If written correctly, it will run automatically and
return when the window is closed.
Optionally, you may move your Command Line Interface (CLI) code to a separate class such as MainCli, and
use command line flags to switch between CLI and GUI. This is NOT required – just a thought.
Screenshots
Top-quality papers guaranteed
100% original papers
We sell only unique pieces of writing completed according to your demands.
Confidential service
We use security encryption to keep your personal data protected.
Money-back guarantee
We can give your money back if something goes wrong with your order.
Enjoy the free features we offer to everyone
-
Title page
Get a free title page formatted according to the specifics of your particular style.
-
Custom formatting
Request us to use APA, MLA, Harvard, Chicago, or any other style for your essay.
-
Bibliography page
Don’t pay extra for a list of references that perfectly fits your academic needs.
-
24/7 support assistance
Ask us a question anytime you need to—we don’t charge extra for supporting you!
Calculate how much your essay costs
What we are popular for
- English 101
- History
- Business Studies
- Management
- Literature
- Composition
- Psychology
- Philosophy
- Marketing
- Economics