Iteration 3: Time to Release - UofMBryce/R.O.S.E GitHub Wiki

Iteration 3 continues with the development, implementation, and testing phase for ROSE. The submission for Iteration 3 includes additional application functionality, stronger software testing, minor code refactoring, and preparations for a final release. An updated software architecture diagram for Iteration 3 is included.

Additional application features for ROSE include add/delete recipes (extended from Iteration 2), rate recipes, search recipes, and create daily food menus (from recipes). The testing portion of this submission covers new application features testing, unit/integration testing with JUnit, and acceptance testing using Robotium. Code refactoring for this application shows method refactoring for overly large Java class files (Edit.java/SortRecipes.java) and GUI refactoring for the ROSE initial start screen layout (activity_init.xml).

The updated software architecture diagram highlights new application functionality by listing development files (.xml or .java) under their assigned layer functionalities. The three main layers of functionality are the Presentation layer, the Business Logic layer, and the Persistence layer. Discarded features for this iteration include creating/viewing/modifying a kitchen inventory (opposite feature of Shopping List), and implementing serving size calculations for food menus.

A project package breakdown for the ROSE application is as follows:

In the ‘java’ folder:
comp3350.rose (top level)

comp3350.rose.Business

  • Alphabetical.java
  • MyApplication.java
  • TopRated.java

comp3350.rose.Controller

  • DBInterface.java
  • DBSLInterface.java
  • MenuInterface.java

comp3350.rose.Database

  • dbHelper.java
  • dbSLHelper.java
  • MenuDatabase.java
  • menuHelper.java
  • RecipeDatabase.java
  • ShoppingListDatabase.java

comp3350.rose.model

  • Recipe.java
  • ShoppingList.java

comp3350.rose.Presentation

  • AddIngredients.java
  • AddInstructions.java
  • AddRecipe.java
  • Details.java
  • Edit.java
  • init.java
  • MenuViewer.java
  • SLDetails.java
  • SortRecipes.java
  • ViewRecipes.java

comp3350.rose.Stub

  • StubDB.java
  • StubMenu.java
  • StubSLDB.java

comp3350.rose.test

  • ROSEIntegrationTest.java
  • ROSEUnitTest.java

In the ‘res’ folder:
layout (top level)

  • activity_add_ingredients.xml
  • activity_add_instructions.xml
  • activity_add_recipe.xml
  • activity_details.xml
  • activity_edit.xml
  • activity_init.xml
  • activity_menu_viewer.xml
  • activity_shopping_list.xml
  • activity_sort_recipes.xml
  • activity_view_recipes.xml
  • content_add_ingredients.xml
  • content_add_instructions.xml
  • content_add_recipe.xml
  • content_details.xml
  • content_menu_viewer.xml