In Milestone Two, you will focus your skills finalizing your final project code by submitting a class complete with accessor/mutator, constructor, and "custom" programmer-defined methods.
Submit your assignment here. Make sure you’ve included all the required elements by reviewing the guidelines and rubric.
Milestone Two Guidelines and Rubric
The Recipe Class
Overview
In your final project, you will create a program that will help you manage a collection of recipes. The Recipe class you build for this milestone will hold all the details of the recipe, the methods to create a new recipe, and a method to print a recipe. In your final project submission, this class will also contain a custom method to add a new feature. In your submission for Milestone Two, you will include commented out pseudocode for this method.
Prompt
In this milestone, you submit the final project version of your Recipe class. Your submission should include the Recipe.java file and a Recipe_Test.java file.
Your Recipe class should include the following items:
· Instance variables: recipe Name, servings, recipe Ingredients, and total Recipe Calories
· Accessors and mutators for the instance variables
· Constructors
· A print Recipe() method
· A create New Recipe() method to build a recipe from user input
· Pseudocode for the custom method selected from the list in Stepping Stone Lab Five
Your Recipe_Test.java file containing a main() method that:
· Uses a constructor to create a new recipe
· Accesses the print Recipe() method to print the formatted recipe
· Invokes the create New Recipe() method to accept user input
Specifically, the following critical elements of the final project are addressed:
I. Data Types: Your Recipe class should properly employ each of the following data types that meet the scenario’s requirements where necessary:
a. Utilize appropriate numerical and string data types to represent values for variables and attributes in your program.
b. Populate a list or array that allows the management of a set of values as a single unit in your program.
II. Algorithms and Control Structure: Your Recipe class should properly employ each of the following control structures as required or defined by the scenario where necessary:
a. Utilize expressions or statements that carry out appropriate actions or that make appropriate changes to your program’s state as represented in your program’s variables.
b. Employ the appropriate conditional control structures that enable choosing between options in your program.
c. Utilize iterative control structures that repeat actions as needed to achieve the program’s goal.
III. Methods: Your Recipe class should properly employ each of the following aspects of method definition as determined by the scenario’s requirements where necessary:
a. Use formal parameters that provide local variables in a function’s definition.
b. Use actual parameters that send data as arguments in function calls.
c. Create both value-returning and void functions to be parts of expressions or stand-alone statements in your program.
d. Invoke methods that access the services provided by an object.
e. Describe a user-defined method that provides custom services for an object.
f. Create unit tests that ensure validity of the methods.
IV. Classes: Construct classes for your program that include the following as required by the scenario where necessary:
a. Include attributes that allow for encapsulation and information hiding in your program.
b. Include appropriate methods that provide an object’s behaviors.
V. Documentation: Utilize inline comments directed toward software engineers for the ongoing maintenance of your program that explain the decisions you made in the construction of the classes in your program.
What to Submit
Your complete program should be submitted as a zip file of the exported project containing the Recipe.java and Recipe_Test.java files.
Milestone Two Rubric
Criteria |
Proficient (100%) |
Needs Improvement (80%) |
Not Evident (0%) |
Value |
Data Types: Numerical and String |
Utilizes appropriate numerical and string data types that represent values for variables and attributes in the program, meeting the scenario’s requirements |
Utilizes appropriate numerical and string data types that represent values for variables and attributes, but use of data types is incomplete or illogical, contains inaccuracies, or lacks accordance with the scenario’s requirements |
Does not utilize numerical and string data types that represent values for variables and attributes in the program |
6 |
Data Types: List or Array |
Populates a list or array that allows the management of a set of values as a single unit in the program, meeting the scenario’s requirements |
Populates a list or array that allows the management of a set of values as a single unit in the program, but population is incomplete or illogical, contains inaccuracies, or lacks accordance with the scenario’s requirements |
Does not populate a list or array that allows the management of a set of values as a single unit in the program |
6 |
Algorithms and Control Structures: Expressions or Statements |
Utilizes expressions or statements that carry out appropriate actions or that make appropriate changes to the program’s state as represented in the program’s variables and meet the scenario’s requirements |
Utilizes expressions or statements that carry out actions or that make changes to the program’s state as represented in the program’s variables, but use of expressions or statements is incomplete or illogical, contains inaccuracies, or lacks accordance with the scenario’s requirements |
Does not utilize expressions or statements that carry out actions or that make changes to the program’s state as represented in the program’s variables |
6 |
Algorithms and Control Structures: Conditional Control Structures |
Employs the appropriate conditional control structures, as the scenario defines, that enable choosing between options in the program |
Employs the conditional control structures that enable choosing between options in the program, but use of conditional control structures is incomplete or illogical, contains inaccuracies, or lacks accordance with the scenario’s definition |
Does not employ the conditional control structures that enable choosing between options in the program |
7 |
Algorithms and Control Structures: Iterative Control Structures |
Utilizes iterative control structures that repeat actions as needed to achieve the program’s goal as required by the scenario |
Utilizes iterative control structures that repeat actions to achieve the program’s goal, but use of iterative control structures is incomplete or illogical, contains inaccuracies, or lacks accordance with the scenario’s requirements |
Does not utilize iterative control structures that repeat actions to achieve the program’s goal |
7 |
Methods: Formal Parameters |
Uses formal parameters that provide local variables in a function’s definition as determined by the scenario’s requirements |
Uses formal parameters that provide local variables in a function’s definition, but use of formal parameters is incomplete or illogical, contains inaccuracies, or lacks accordance with the scenario’s requirements |
Does not use formal parameters that provide local variables in a function’s definition |
7 |
Methods: Actual Parameters |
Uses actual parameters that send data as arguments in function calls as determined by the scenario’s requirements |
Uses actual parameters that send data as arguments in function calls, but use of actual parameters is incomplete or illogical, contains inaccuracies, or lacks accordance with the scenario’s requirements |
Does not use actual parameters that send data as arguments in function calls |
7 |
Methods: Value-Returning and Void Functions |
Creates both value-returning and void functions to be parts of expressions or stand-alone statements in the program as determined by the scenario’s requirements |
Creates both value-returning and void functions to be parts of expressions or stand-alone statements in the program, but functions are incomplete or illogical, contain inaccuracies, or lack accordance with the scenario’s requirements |
Does not create both value-returning and void functions to be parts of expressions or stand-alone statements in the program |
7 |
Methods: Access Services Provided |
Invokes methods that access the services provided by an object as required by the scenario |
Invokes methods that access the services provided by an object, but called methods are incomplete or illogical, contain inaccuracies, or lack accordance with the scenario’s requirements |
Does not invoke methods that access the services provided by an object |
7 |
Methods: User-Defined Methods |
Employs user-defined methods that provide custom services for an object as specified in the program requirements |
Employs user-defined methods that provide custom services for an object, but use of user-defined methods is incomplete or illogical, contains inaccuracies, or lacks accordance with the specifications in the program requirements |
Does not employ user-defined methods that provide custom services for an object |
9 |
Methods: Unit Tests |
Creates unit tests that ensure validity of the methods as required by the scenario |
Creates unit tests that ensure validity of the methods, but unit tests are incomplete or illogical, contain inaccuracies, or lack accordance with the scenario’s requirements |
Does not create unit tests that ensure validity of the methods |
7 |
Classes: Attributes |
Includes attributes, as required by the scenario, that allow for encapsulation and information hiding in the program |
Includes attributes that allow for encapsulation and information hiding in the program, but inclusion is incomplete or illogical, contains inaccuracies, or lacks accordance with the scenario’s requirements |
Does not include attributes that allow for encapsulation and information hiding in the program |
7 |
Classes: Behaviors |
Includes appropriate methods that provide an object’s behaviors, as required by the scenario |
Includes methods that provide an object’s behaviors, but inclusion of methods is incomplete or illogical, contains inaccuracies, or lacks accordance with the scenario’s requirements |
Does not include methods that provide an object’s behaviors |
7 |
Inline Comments |
Utilizes inline comments directed toward software engineers for the ongoing maintenance of the program that explain the decisions made in the construction of the classes in the program |
Utilizes inline comments that explain the decisions made in the construction of the classes in the program, but inline comments are incomplete or illogical, contain inaccuracies, or lack applicability towards software engineers for the ongoing maintenance of the program |
Does not utilize inline comments that explain the decisions made in the construction of the classes in the program |
10 |
Total: |
100% |