Write programs by applying concepts and principles of object-oriented programming Scenario.

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

Write programs by applying concepts and principles of object-oriented programming
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 that collaborates to create solutions for entrepreneurs, businesses, and government agencies worldwide.

As part of a development team at Global Rain, you will design and develop custom software for a local pet boarding and grooming business, Pet Boarding and Grooming (Pet BAG). Pet BAG wants to modernize its operations by introducing custom software that will help replace inefficient paper-based processes. Your Global Rain team will collaborate to develop an app with the following initial functional areas: pet check-in and pet check-out.

As part of this team, you have been tasked with completing some preliminary work. This work consists of writing a Java class, writing pseudocode, and creating a flowchart. You will provide these deliverables to your supervisor.

Directions
Your supervisor has given you a specification document that details Pet BAG’s software needs and includes a UML class diagram. Using this document, you will create both a Java class and a summary report. Your summary report will include pseudocode, a flowchart for one method (pet check-in or pet check-out), and an explanation of how your work meets object-oriented principles (OOP).

Pet.java Class File
Before you begin, you must understand what your client needs the software to do and what work your team has already done. Review the Pet BAG Specification Documentation in the Supporting Materials section, which includes a UML class diagram. Think about the real-world objects that you must represent in your code. These objects are your first-level blueprints. Pay close attention to the class hierarchy, attributes, and behaviors. Consider how these classes will interact with one another and what information must be passed between them.
To begin, open the Virtual Lab by clicking the link in the Virtual Lab Access module. Then open your integrated development environment (IDE) and create the Pet class based on the specifications in the UML class diagram. The Pet class must include the following criteria:
All attributes with appropriate data structures
Note that the types are not specified in this UML class diagram. You must consider the most appropriate data type for each attribute.
At least one constructor method
You may use a default constructor. To score “exemplary” on this criterion, your constructor must initialize values for the petType, petName, petAge, and daysStay attributes.
Accessors and mutators for all attributes
Note: You are only being asked to create one class. Though the UML diagram shows the Pet class as part of a larger application, you are not required to connect it to other classes or to try and run it as a program for this project. Instead, you are practicing creating a class from a UML class diagram.

Global Rain Summary Report
When you are done implementing the Pet class, refer to the Pet BAG Specification Document and select either the pet check-in or check-out method. These methods are detailed in the Functionality section of the specification document.
Make certain you properly comment your code. Commenting code provides human-readable explanations of the code’s functionality. The comments make it easier for other developers or even the original coder to understand and maintain the code after some time. Clear and concise comments provide documentation. Comments offer insights into the logic, purpose, and usage of different sections of the code. Comments become especially valuable in collaborative projects or when handing over code to other developers. Comments can also help identify potential issues, edge cases, or important considerations that help communication between developers. Well-documented code accelerates the development process and contributes to overall maintainability, which reduces the likelihood of errors and makes code more adaptable to changes and improvements.
Open the summary report template in the What to Submit section. In the template, write pseudocode that lays out a plan for your chosen method. Make certain that you logically organize each step and that your method meets the specifications in the document for either the check-in or check-out process. Your pseudocode must not exceed one page. Maintain high-level pseudocode. You do not need to write pseudocode for every line of potential Java code.
Remember, you will not create the actual code for the method. You only must write pseudocode for one method.
Based on the pseudocode you wrote, create a flowchart using a tool of your choice for the method you selected. Your flowchart will help your team communicate how you plan to develop the software for your client. Your flowchart must be confined to one page. Make certain you include the following items in your flowchart:
Start and end points
Appropriate decision branching
Flowchart aligned to the check-in or check-out process
Note: You may draw your flowchart by hand and take a clear picture of it, or you may use a flowcharting tool. Refer to the Insert Pictures resource in the Supporting Materials section to help insert your flowchart in your summary report.

Based on your software design and development experience, your supervisor has asked you to articulate your programming approach. This explanation will help ensure clarity, consistency, and efficiency among all developers working on this app. Specifically, you have been asked to briefly explain how you applied object-oriented programming (OOP) principles and concepts such as encapsulation and inheritance in your software development work thus far. Your explanation should be one paragraph or four to six sentences.
What to Submit
To complete this project, you must submit the following components. For each submission, be certain to add detailed in-line comments.

Pet.java Class File
As part of your tasks for the software development team, create the Pet class in your IDE. To submit this deliverable, save the Pet class file as Pet.java. Use the Downloading Files From Eclipse Tutorial if you need help with this task. Do not mix up the .java extension with the .class extension. You must submit the files with the .java extension.

Global Rain Summary Report
As a junior software developer, you will use the Global Rain Summary Report Template to complete the report. Your report must contain your pseudocode, flowchart, and explanation of the OOP principles you applied.

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

Reading: Pet BAG Specification Document
Review this specification document provided by your supervisor to understand Pet BAG’s software requirements. You will use the UML class diagram to implement the Pet class. You will use the requirements in the Functionality section to create your flowchart and write your pseudocode.

Reading: Downloading Files From Eclipse
You will write, test, and run your class files using an IDE. Review this tutorial to learn how to save and export files from your IDE. Important: Do not change the names of any existing class files.

Reading: Add Shapes
This optional reading may show you how to add shapes such as boxes, circles, and arrows to your documents. You may use this tutorial to help you create a flowchart for your summary report.

Reading: How to Make a Flowchart
This optional tutorial may show you how to use Lucidchart to make a flowchart. You may use this tutorial to help you create a flowchart for your summary report.

Reading: Insert Pictures
This optional reading may show you how to insert a picture into a Word document. Use this tutorial to help you add your flowchart to your summary report.

Resources: Commented Code Word Document and Commented Code Java Document
These documents provide a code sample with code comments.

Last Completed Projects

topic title academic level Writer delivered