Project 2 Instructions.html
Competency
In this project, you will demonstrate your mastery of the following competency:Implement appropriate language constructs for an object-oriented programming language
Scenario
You work for Global Rain, a software engineering company that specializes in custom software design and development. As a junior software developer, you are part of a software development team at Global Rain that collaborates to create software solutions for entrepreneurs, businesses, and government agencies around the world.
You have been newly assigned to a development team at Global Rain that is currently working on a project for an innovative international rescue animal training company, Grazioso Salvare. Grazioso Salvare is seeking a software application that will help track rescue animals, sometimes referred to as search and rescue animals, which are obtained and trained by the company to rescue humans or other animals from difficult (or even life-threatening) situations.
A portion of this work has already taken place on this project. Your team lead has assigned you to create one new class and modify the existing classes in the software application. You will deliver these class files to the team lead, who will consolidate them with the work from other team members and present the application to your client.
Directions
Grazioso Salvare has provided you with a specification document detailing its software needs. Other members of the Global Rain development team have started creating the RescueAnimal.java, Dog.java, and Driver.java class files. Your team lead has asked you to modify the existing classes and create a Monkey.java class as your contribution to the team.
To gain a clear understanding of the client’s software requirements, review the Grazioso Salvare specification document in the Supporting Materials section. As you read, pay close attention to the attributes and methods that you will need to implement into the program.Open the Virtual Lab by clicking on the link in the Virtual Lab Access module. Then open your IDE. Follow the IDE tutorial in the Supporting Materials section to upload Grazioso.zip into your IDE. This zipped folder contains three class files. Once you upload the files, compile the code. Although the program is not complete, it will compile without error.Read through the code for each class. This will help you understand what code has been created and what code must be modified or created to meet the software requirements.Before you begin modifying and creating classes, your team lead reminds you to demonstrate industry standard best practices in all your code to ensure clarity, consistency, and efficiency among all software developers working on the program. This includes ensuring the following:
In-line comments denote your changes and briefly describe the functionality of each method or element of the classAppropriate variable and method naming conventions are used throughout your codeOnce you have ...
Project 2 Instructions.htmlCompetencyIn this project, you .docx
1. Project 2 Instructions.html
Competency
In this project, you will demonstrate your mastery of the
following competency:Implement appropriate language
constructs for an object-oriented programming language
Scenario
You work for Global Rain, a software engineering company that
specializes in custom software design and development. As a
junior software developer, you are part of a software
development team at Global Rain that collaborates to create
software solutions for entrepreneurs, businesses, and
government agencies around the world.
You have been newly assigned to a development team at Global
Rain that is currently working on a project for an innovative
international rescue animal training company, Grazioso Salvare.
Grazioso Salvare is seeking a software application that will help
track rescue animals, sometimes referred to as search and rescue
animals, which are obtained and trained by the company to
rescue humans or other animals from difficult (or even life-
threatening) situations.
A portion of this work has already taken place on this project.
Your team lead has assigned you to create one new class and
modify the existing classes in the software application. You will
deliver these class files to the team lead, who will consolidate
them with the work from other team members and present the
application to your client.
Directions
Grazioso Salvare has provided you with a specification
document detailing its software needs. Other members of the
2. Global Rain development team have started creating the
RescueAnimal.java, Dog.java, and Driver.java class files. Your
team lead has asked you to modify the existing classes and
create a Monkey.java class as your contribution to the team.
To gain a clear understanding of the client’s software
requirements, review the Grazioso Salvare specification
document in the Supporting Materials section. As you read, pay
close attention to the attributes and methods that you will need
to implement into the program.Open the Virtual Lab by clicking
on the link in the Virtual Lab Access module. Then open your
IDE. Follow the IDE tutorial in the Supporting Materials
section to upload Grazioso.zip into your IDE. This zipped folder
contains three class files. Once you upload the files, compile
the code. Although the program is not complete, it will compile
without error.Read through the code for each class. This will
help you understand what code has been created and what code
must be modified or created to meet the software
requirements.Before you begin modifying and creating classes,
your team lead reminds you to demonstrate industry standard
best practices in all your code to ensure clarity, consistency,
and efficiency among all software developers working on the
program. This includes ensuring the following:
In-line comments denote your changes and briefly describe the
functionality of each method or element of the classAppropriate
variable and method naming conventions are used throughout
your codeOnce you have completed your pre-work, you are
ready to begin your assigned tasks. To start, modify the
RescueAnimal.java class file by adding accessor and mutator
methods for each class variable.Create the Monkey class, using
the specification document as a guide. The Monkey class must
do the following:
Inherit from the RescueAnimal classImplement all attributes
with appropriate data structuresInclude accessors and mutators
for all implemented attributesSelect a method from the Software
Requirements section of Grazioso Salvare’s specification
document. Using the selected method, modify the Driver.java
3. class file to do the following:
Implement the method you have chosenAdd attributes, as
needed, to support the required functionality
What to Submit
To complete this project, you must submit the following:
RescueAnimal.java Class File
Modify the RescueAnimal.java class file in accordance with the
requirements of the specification document. Be sure to include
in-line comments that explicitly identify the changes you made
as well as describe the functionality of the code.
Monkey.java Class File
Create a Monkey.java class file that meets the requirements laid
out in the specification document. Be sure to include in-line
comments that explicitly identify the changes you made as well
as describe the functionality of the code.
Driver.java Class File
Modify the Driver.java class file in accordance with the
requirements of the specification document. Be sure to include
in-line comments that explicitly identify the changes you made
as well as describe the functionality of the code.
Dog.java Class File
Submit the Dog.java class file, even though you were not
required to make changes to it for this project.
Supporting Materials
The following resource(s) may help support your work on the
project:
Grazioso Salvare Specification Document
Review the specification document provided by the Grazioso
Salvare client to learn about its software requirements and
perform your development work.
Grazioso.zip (Eclipse Project File)
This zipped folder contains the RescueAnimal.java, Dog.java,
and Driver.java class files. The RescueAnimal.java class
contains the class variables and a default constructor. In-line
4. comments are provided to indicate where the accessor and
mutator methods should be implemented. The Dog.java class
contains an instance variable, a constructor, an accessor
method, and a mutator method. You will use this class as part of
the application. No changes are required in the Dog.java class.
The Driver class will be used to run the application. It contains
an empty main() method with in-line comments indicating
where new functionality should be implemented.
Uploading Files to Eclipse Tutorial
You will write, test, and run each class file in an IDE. Review
this tutorial to learn how to upload the Eclipse Project file
(.jar), which contains all your class files, into your IDE.
Downloading Files From Eclipse Tutorial
You will write, test, and run your class files using an integrated
development environment (IDE). Review this tutorial to learn
how to save and export files from your IDE. Important: Do not
change the names of any class files.
The following rubric will be used to assess Project Two.
Familiarize yourself with this document as you work on the
project, and return to this rubric before you submit Project Two
to make sure you've included everything you need to be
successful.
Project Two RubricCriteriaExemplary Proficient Needs
Improvement Not Evident Value RescueAnimal.javaModifies a
class by adding accessor and mutator methods for each class
variable to meet software requirements (100%)Meets some
“Proficient” criteria, but with major errors; areas for
improvement may include functionality, syntax, or logic
(55%)Does not attempt criterion (0%)25 Monkey.javaCreates a
class that inherits from another class and implements all
attributes with appropriate data structures, accessors, and
mutators to meet software requirements (100%)Meets some
“Proficient” criteria, but with major errors; areas for
improvement may include functionality, syntax, or logic
(55%)Does not attempt criterion (0%)25 Driver.javaModifies
5. the Driver class to implement a selected method including all
attributes and functionality to meet software requirements
(100%)Meets some “Proficient” criteria, but with major errors;
areas for improvement may include functionality, syntax, or
logic (55%)Does not attempt criterion (0%)25 Industry Standard
Best Practices Exceeds proficiency in an exceptionally clear,
insightful, sophisticated, or creative manner
(100%)Demonstrates industry standard best practices including
appropriate in-line comments and variable and method naming
conventions (85%)Meets some “Proficient” criteria, but with
major errors (55%)Does not attempt criterion
(0%)25Total:100%
course_documents/Global Rain.png
course_documents/IT-145 Project Two Image.jpg
course_documents/IT 145 Grazioso Salvare Specification
Document.pdf
System Specification Document
About Our Company
Grazioso Salvare is a rescue animal training company that was
established in 1965. We have
locations in Chile, Greece, Japan, Madagascar, Singapore, South
Korea, Turkey, the United
Kingdom, and the United States. We have trained thousands of
dogs as rescue animals and are
starting to train monkeys as well.
Our Process
We obtain dogs from local breeders and animal shelters. Each
6. dog goes through a six- to nine-
month training regimen before they are put into service.
Grazioso Salvare uses the term
“service” to indicate that an animal has been provided to a
client. Once put into service, the
animals are considered rescue animals. A rescue animal,
sometimes referred to as a search and
rescue animal, is trained to rescue other animals or humans
from difficult (or even life-
threatening) situations. Part of our process is to record and
track several data points about the
rescue animals.
Dogs are given the status of “intake” before training starts.
Once in training, they move through
a set of five rigorous phases: Phase I, Phase II, Phase III, Phase
IV, and Phase V. While in
training, a dog is given the status of its current training phase
(e.g., “Phase I”). When a dog
graduates from training, it is given the status of “in service” and
is eligible for use by clients. If a
dog does not successfully make it through training, it is given
the status of “farm,” indicating
that it will live a life of leisure on a Grazioso Salvare farm. We
currently have a farm at each of
our training facilities, so there is no need to relocate animals.
Our Vision
In recent years, law enforcement agencies from several
countries have expressed an interest in
obtaining and training rescue animals that are more capable than
a traditional rescue dog.
Though dogs have proven very capable, recent research
indicates that primates have higher
7. levels of attention and greater potential to perform rescue
functions. To support this demand,
we started training monkeys to become rescue animals. We
currently have 19 monkeys of
various species in the training pipeline. To date, no monkeys
have been put into service as
rescue animals.
The Animals
Through years of experience, we have narrowed the list of dog
breeds eligible for rescue
training to the following:
• American pit bull terrier
• Beagle
• Belgian Malinois
• Border collie
• Bloodhound
• Coonhound
• English springer spaniel
• German shepherd
• German shorthaired pointer
• Golden retriever
• Labrador retriever
• Nova Scotia duck tolling retriever
• Rough collie
• Smooth collie
When we acquire a dog, we record the breed, gender, age,
weight, date, and the location
where we obtained them. There is usually a short lag time
between when we acquire a dog and
when they start training, which we document as well.
Additionally, we track graduation dates,
8. dates dogs are placed into “service,” and details about the dogs’
in-service placement (agency,
city, country, and name, email address, phone number, and
mailing address for the agency’s
point of contact).
Special Note on Monkeys
As we explore the use of monkeys as service animals, we want
our system to support monkey
tracking as well as dog tracking. We have identified the
following monkey species that are
eligible for our program:
• Capuchin
• Guenon
• Macaque
• Marmoset
• Squirrel monkey
• Tamarin
There are important data elements for monkeys in addition to
what we use for dogs. These
include tail length, height, body length, species, and
measurements for torso, skull, and neck.
Software Requirements
We desire a software application that will help us track the
animals we are currently training
and the animals that have been placed into service. Here are
some specifics:
9. • Ability to process requests for a rescue animal: In this case,
we would receive the type
of animal the customer wants and the country where the
customer resides. If we have
an animal in training in their country, we can reserve that
animal for the customer.
• Ability to update any information we have on our animals
• Ability to see what animals we have in each phase at each
location, including “intake”
and “farm”
• Ability to add animals (intake)
• Ability to transfer service animals to the farm or place in-
service
• Ability to view which animals are in-service
• Ability to process and receive reports from in-service agencies
on the retirement or
death of their rescue animal
System Specification DocumentAbout Our CompanyOur
ProcessOur VisionThe AnimalsSpecial Note on
MonkeysSoftware Requirements
course_documents/grazioso.zip
grazioso/.metadata/.bak_0.log
!SESSION 2019-09-11 10:22:24.931 -------------------------------
----------------
eclipse.buildId=4.5.2.M20160212-1500
java.version=1.8.0_91
10. java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32,
NL=en_US
Framework arguments: -product
org.eclipse.epp.package.java.product
Command-line arguments: -os win32 -ws win32 -arch x86_64 -
product org.eclipse.epp.package.java.product
!ENTRY org.eclipse.epp.logging.aeri.ide 2 16 2019-09-11
10:22:59.808
!MESSAGE Server ‘org.eclipse.epp.logging.aeri.ide.server’
failed with exception: java.lang.IllegalStateException: Expected
BEGIN_OBJECT but was STRING at line 1 column 1. ; version:
1.100.0.v20160217-0435
!STACK 0
com.google.gson.JsonSyntaxException:
java.lang.IllegalStateException: Expected BEGIN_OBJECT but
was STRING at line 1 column 1
at
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$A
dapter.read(ReflectiveTypeAdapterFactory.java:176)
at com.google.gson.Gson.fromJson(Gson.java:803)
at com.google.gson.Gson.fromJson(Gson.java:768)
at com.google.gson.Gson.fromJson(Gson.java:717)
12. !ENTRY org.eclipse.egit.ui 2 0 2019-09-11 10:23:49.158
!MESSAGE Warning: The environment variable HOME is not
set. The following directory will be used to store the Git
user global configuration and to define the default location to
store repositories: 'C:Usersc.george'. If this is
not correct please set the HOME environment variable and
restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different
configuration options.
This warning can be switched off on the Team > Git >
Confirmations and Warnings preference page.
!ENTRY org.eclipse.ui.ide 4 4 2019-09-12 12:50:30.689
!MESSAGE Problems saving workspace
!ENTRY org.eclipse.ui.ide 2 1 2019-09-12 12:50:30.734
!MESSAGE Problems occurred while trying to save the state of
the workbench.
!SUBENTRY 1 org.eclipse.core.resources 2 234 2019-09-12
12:50:30.734
!MESSAGE The project description file (.project) for 'grazioso'
was missing. This file contains important information about the
project. A new project description file has been created, but
some information about the project may have been lost.
13. !ENTRY org.eclipse.core.resources 2 10035 2019-09-12
12:50:31.818
!MESSAGE The workspace will exit with unsaved changes in
this session.
!ENTRY org.eclipse.epp.logging.aeri.core 2 1 2019-09-12
12:50:31.825
!MESSAGE AERI failed with an error. Please report this error:
null ; version: 1.100.0.v20160211-1103
!STACK 0
java.lang.NullPointerException
at
org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.
java:217)
at
org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(Co
ntextInjectionFactory.java:90)
at
org.eclipse.epp.logging.aeri.core.SystemControl.executeHandler
(SystemControl.java:103)
at
org.eclipse.epp.logging.aeri.core.SystemControl.isActive(Syste
mControl.java:65)
17. !ENTRY org.eclipse.epp.logging.aeri.core 2 1 2019-09-12
12:50:31.827
!MESSAGE AERI failed with an error. Please report this error:
null ; version: 1.100.0.v20160211-1103
!STACK 0
java.lang.NullPointerException
at
org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.
java:217)
at
org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(Co
ntextInjectionFactory.java:90)
at
org.eclipse.epp.logging.aeri.core.SystemControl.executeHandler
(SystemControl.java:103)
at
org.eclipse.epp.logging.aeri.core.SystemControl.isActive(Syste
mControl.java:65)
at
org.eclipse.epp.logging.aeri.core.util.LogListener.logging(LogL
istener.java:45)
at
org.eclipse.core.internal.runtime.RuntimeLog.logToListeners(R
untimeLog.java:161)
22. at java.lang.Thread.run(Unknown Source)
!ENTRY org.eclipse.epp.logging.aeri.core 2 1 2019-09-12
12:50:31.830
!MESSAGE AERI failed with an error. Please report this error:
null ; version: 1.100.0.v20160211-1103
!STACK 0
java.lang.NullPointerException
at
org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.
java:217)
at
org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(Co
ntextInjectionFactory.java:90)
at
org.eclipse.epp.logging.aeri.core.SystemControl.executeHandler
(SystemControl.java:103)
at
org.eclipse.epp.logging.aeri.core.SystemControl.isActive(Syste
mControl.java:65)
at
org.eclipse.epp.logging.aeri.core.util.LogListener.logging(LogL
istener.java:45)
at
36. !ENTRY org.eclipse.epp.logging.aeri.core 2 1 2019-09-12
12:50:31.837
!MESSAGE AERI failed with an error. Please report this error:
null ; version: 1.100.0.v20160211-1103
!STACK 0
java.lang.NullPointerException
at
org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.
java:217)
at
org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(Co
ntextInjectionFactory.java:90)
at
org.eclipse.epp.logging.aeri.core.SystemControl.executeHandler
(SystemControl.java:103)
at
org.eclipse.epp.logging.aeri.core.SystemControl.isActive(Syste
mControl.java:65)
at
org.eclipse.epp.logging.aeri.core.util.LogListener.logging(LogL
istener.java:45)
at
org.eclipse.core.internal.runtime.RuntimeLog.logToListeners(R
untimeLog.java:161)
at
org.eclipse.core.internal.runtime.PlatformLogWriter.logged(Plat
66. dle$EquinoxSystemModule$1.run(EquinoxBundle.java:159)
at java.lang.Thread.run(Unknown Source)
!ENTRY org.eclipse.epp.logging.aeri.core 2 1 2019-09-12
12:50:31.848
!MESSAGE AERI failed with an error. Please report this error:
null ; version: 1.100.0.v20160211-1103
!STACK 0
java.lang.NullPointerException
at
org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.
java:217)
at
org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(Co
ntextInjectionFactory.java:90)
at
org.eclipse.epp.logging.aeri.core.SystemControl.executeHandler
(SystemControl.java:103)
at
org.eclipse.epp.logging.aeri.core.SystemControl.isActive(Syste
mControl.java:65)
at
org.eclipse.epp.logging.aeri.core.util.LogListener.logging(LogL
istener.java:45)