ITPro7

profilehybridtek
IT_Pro7.pdf

Project Two Guidelines and Rubric

Competencies

In this project, you will demonstrate your mastery of the following competencies:

Implement appropriate language constructs for an object-oriented programming language

Write programs using object-oriented conven�ons in accordance with industry standard best prac�ces

Scenario

You work for Global Rain, a so�ware engineering company that specializes in custom so�ware design and development. As a junior

so�ware developer, you are part of a so�ware development team at Global Rain that collaborates to create so�ware solu�ons for

entrepreneurs, businesses, and government agencies around the world.

You have been newly assigned to a development team at Global Rain. This team is currently working on a project for an innova�ve

interna�onal search and rescue animal training company, Grazioso Salvare. Grazioso Salvare is seeking a so�ware applica�on that

will help track search and rescue animals, some�mes referred to as rescue animals. These rescue animals are obtained and trained by

the company to rescue humans from difficult (or even life-threatening) situa�ons.

A por�on of the work on this project has already been done. Your team lead has assigned you to create one new class and modify

the exis�ng driver class in the so�ware applica�on. You will deliver all the class files to the team lead, who will consolidate them

with the work from other team members and present the applica�on to your client.



IT-145-X4232 Found in App Development 21EW4 JG

Direc�ons

Your team lead has given you a specifica�on document detailing Grazioso Salvare’s so�ware needs. Other members of the Global

Rain development team have already started crea�ng the RescueAnimal.java, Dog.java, and Driver.java class files. Your team lead has

asked you to modify the exis�ng Driver.java class and create a Monkey.java class as your contribu�on to the team.

Required Pre-work

1. To gain a clear understanding of the client’s requirements, review the Grazioso Salvare Specifica�on Document, located in

the Suppor�ng Materials sec�on. As you read, pay close a�en�on to the a�ributes and methods that you will need to

implement into the program.

2. Open the Virtual Lab by clicking on the link in the Virtual Lab Access module. Then open the Eclipse IDE. Follow the

Uploading Files to Eclipse Tutorial to upload the Grazioso.zip files into Eclipse. Both the tutorial and the zipped folder are

located in the Suppor�ng Materials sec�on. The Grazioso.zip folder contains three class files. Once you upload the files,

compile the code. Although the program is not complete, it should compile without error.

3. Read through the code for each class that you have been given. This will help you understand what code has been created

and what code must be modified or created to meet the requirements.

Once you have completed the pre-work, you are ready to begin your assigned tasks.

Monkey.java Class

1. Your team lead reminded you to demonstrate industry standard best prac�ces in all of your code to ensure clarity,

consistency, and efficiency among all so�ware developers working on the program. In your code for each class, be sure to

include the following:

In-line comments that denote your changes and briefly describe the func�onality of each method or element of the

class

Appropriate variable and method naming conven�ons

2. In a new Java file, create the Monkey class, using the specifica�on document as a guide. The Monkey class must do the

following:

Inherit from the RescueAnimal class

Implement all a�ributes to meet the specifica�ons

Include a constructor. You may use a default constructor. To score “exemplary” on this criterion, you must include

the more detailed constructor that ini�alizes values for all a�ributes. Refer to the constructor in the Dog class for an

example.

Include accessors and mutators for all implemented a�ributes

Driver.java Class

In this class, you will modify and implement several different methods. You will need to refer back to the code from the other classes

to properly implement these methods.

1. As a reminder, you must demonstrate industry standard best prac�ces, such as in-line comments to denote changes and

describe func�onality and appropriate naming conven�ons throughout the code that you create or modify for this class.

2. First, you will modify the main() method. In main(), you must create a menu loop that does the following:

Displays the menu by calling the displayMenu() method. This method is in the Driver.java class.

Prompts the user for input

Includes input valida�on. If the user inputs a value not on the menu, the program should print an error message.

Takes the appropriate ac�on based on the value that the user entered.

IMPORTANT: In the Module Five milestone you were asked to create a menu loop but were not required to include input

IMPORTANT: In the Module Five milestone, you were asked to create a menu loop but were not required to include input

valida�on. Be sure to include input valida�on for your Project Two submission.

3. Next, you will complete the intakeNewDog() method. Your completed method should do the following:

Prompt the user for input

Include input valida�on. Note: The required input valida�on has already been included in the starter code; be sure to

review it.

Set data for all a�ributes based on user input

Add the newly instan�ated dog to an ArrayList

Hint: Remember to refer to the accessors and mutators in the Dog and RescueAnimal classes as you create this method.

4. Next, you will implement the intakeNewMonkey() method. Before you do this, you will need to create a monkey ArrayList in

the Driver.java class. Refer to the dog ArrayList for an example. Then, begin implemen�ng the intakeNewMonkey() method.

Your completed method should do the following:

Prompt the user for input

Include input valida�on for the monkey’s name and species type. If the user enters an invalid op�on, the program

should print an error message.

Set data for all a�ributes based on user input

Add the newly instan�ated monkey to an ArrayList

Hint: Remember to refer to the accessors and mutators in your Monkey and RescueAnimal classes as you create this

method.

IMPORTANT: In the Module Five milestone, you began implemen�ng this method but were not required to include input

valida�on. Be sure to include input valida�on for your Project Two submission.

5. Next, you will implement the reserveAnimal() method. Your completed method should do the following:

Prompt the user for input. The user should enter their desired animal type and country.

If there is an available animal which meets the user’s input criteria, the method should access an animal object from

an ArrayList. If there are mul�ple animals that meet these criteria, the program should access the first animal in the

ArrayList. The method should also update the “reserved” a�ribute of the accessed animal.

If there is not an available animal which meets the user’s input criteria, the method should output feedback to the

user le�ng them know that no animals of that type and loca�on are available.

6. Finally, you have been asked to implement a printAnimals() method that provides easy-to-read output displaying the details

of objects in an ArrayList.

To demonstrate this criterion in a “proficient” way, your implemented method must successfully print the ArrayList of

dogs or the ArrayList of monkeys.

To demonstrate this criterion in an “exemplary” way, your implemented method must successfully print a list of all

animals that are “in service” and “available”.

What to Submit

To complete this project, you must submit the following:

Grazioso.zip (Eclipse Project File)

Your submission for this project should be a zipped folder that contains all four of the following files. Use the Downloading Files

from Eclipse Tutorial in the Suppor�ng Materials sec�on to help you download these files.

RescueAnimal.java Class File: You were not required to make changes to this file, but you must include it as part of your

submission.

Dog.java Class File: You were not required to make changes to this file, but you must include it as part of your submission.

Monkey.java Class File. You created this class from scratch, implemen�ng a�ributes, a constructor, accessors, and mutators.

You should have included in-line comments and clear variable naming conven�ons.

Driver.java Class File. You were given some starter code within this file, and were asked to modify or implement a menu loop

and methods to intake dogs, intake monkeys, reserve animals, and print animals. You were also asked to include input

valida�on for certain methods and in-line comments describing your changes.

Suppor�ng Materials

The following resource(s) may help support your work on the project:

Grazioso Salvare Specifica�on Document

Review the specifica�on document provided by the Grazioso Salvare client to learn about its so�ware requirements and perform

your development work.

Grazioso.zip (Eclipse Project File)

This Eclipse Project folder contains the RescueAnimal.java, Dog.java, and Driver.java class files that were created by other members

of your team. Be sure to review the RescueAnimal.java and Dog.java classes carefully, though you are not required to modify them.

The Driver.java class file will run the applica�on. In-line comments have been included to describe code that was already created

and to iden�fy places that you will need to modify.

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 (ZIP), 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 exis�ng class files.

Project Two Rubric

Criteria Exemplary Proficient Needs Improvement Not Evident Value

Monkey.java:

Crea�ng a Class

Exceeds proficiency

by crea�ng a

detailed constructor

that ini�alizes values

for all a�ributes

(100%)

Creates a class that

inherits from another

class and implements

all a�ributes with

appropriate data

structures, a

constructor,

accessors, and

mutators to meet

so�ware

requirements (85%)

Shows progress

toward proficiency,

but with errors or

omissions; areas for

improvement may

include

implemen�ng

inheritance, a�ribute

use, accessor or

mutator method

defini�ons,

func�onality, syntax,

or logic (55%)

Does not a�empt

criterion (0%)

15

Driver.java: Menu

Loop

N/A Creates a loop that

displays a menu,

reads user input, and

takes ac�on based

on the input (100%)

Shows progress

toward proficiency,

but with errors or

omissions; areas for

improvement may

include using loop

syntax, or taking the

correct ac�on based

on user input (55%)

Does not a�empt

criterion (0%)

15

Driver.java:

intakeNewDog()

Method

N/A Completes a method

that prompts the

user for input, sets

data for a�ributes,

and adds an object

to an array (100%)

Shows progress

toward proficiency,

but with errors or

omissions; areas for

improvement may

include include

implemen�ng

method, using

a�ributes,

func�onality, syntax,

or logic (55%)

Does not a�empt

criterion (0%)

10

Driver.java:

intakeNewMonkey()

Method

N/A Implements a

method that prompts

the user for input,

sets data for

a�ributes, and adds

an object to an

ArrayList (100%)

Shows progress

toward proficiency,

but with errors or

omissions; areas for

improvement may

include

implemen�ng

method, using

a�ributes,

func�onality, syntax,

or logic (55%)

Does not a�empt

criterion (0%)

15

Driver.java: Input

Valida�on for

Menu Loop and

intakeNewMonkey()

Method

Exceeds proficiency

in an excep�onally

clear, insigh�ul, or

sophis�cated

manner (100%)

Validates user input

by checking for

invalid values and

prin�ng an error

message if invalid

input occurs (85%)

Shows progress

toward proficiency,

but with errors or

omissions; areas for

improvement may

include using input

valida�on in all

required areas or

helpfulness of error

messages (55%)

Does not a�empt

criterion (0%)

7.5

Driver.java:

reserveAnimal()

Method

N/A Implements a

method that prompts

the user for input

and handles the

input appropriately

by accessing and

upda�ng an object’s

a�ribute or

outpu�ng feedback

to the user (100%)

Shows progress

toward proficiency,

but with errors or

omissions; areas for

improvement may

include

implemen�ng

method, using

a�ributes,

func�onality, syntax,

or logic (55%)

Does not a�empt

criterion (0%)

15

Driver.java:

printAnimals()

Method

Exceeds proficiency

by a prin�ng an

ArrayList using more

advanced logic

(100%)

Implements a

method that

provides easy-to-

read output

displaying the details

of objects in an

ArrayList (85%)

Shows progress

toward proficiency,

but with errors or

omissions; areas for

improvement may

include prin�ng

readable output,

including required

details for the object,

or logic of the

method (55%)

Does not a�empt

criterion (0%)

15

Industry Standard

Best Prac�ces

Exceeds proficiency

in an excep�onally

clear, insigh�ul, or

sophis�cated

manner (100%)

Demonstrates

industry standard

best prac�ces

including appropriate

in-line comments

and variable and

method naming

Shows progress

toward proficiency,

but with errors or

omissions; areas for

improvement may

include detail of in-

line comments or

Does not a�empt

criterion (0%)

7.5

conven�ons (85%) appropriateness of

naming conven�ons

(55%)

Total: 100%