1. group 1 overview, conclusions, phase 3 re-submission

23
OVERVIEW Group 1 Liu, Shan Perez, Luis Tyler, Kelly Stephens, Henry Hwang, Sun Mok Guillermo, John Reivy UMUC CMIS 495 PROFESSOR: Dr. Paul Comitz Lean Bean Fitness Application PROBLEMS PROPOSED SOLUTIONS IMPLEMENTED SOLUTIONS RESULTS

Upload: luis-perez

Post on 22-Jan-2018

119 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

OVERVIEW

Group 1 Liu, Shan

Perez, Luis Tyler, Kelly

Stephens, Henry Hwang, Sun Mok

Guillermo, John Reivy

UMUC

CMIS 495 PROFESSOR:

Dr. Paul Comitz

Lean Bean

Fitness Application

PROBLEMS

PROPOSED SOLUTIONS

IMPLEMENTED SOLUTIONS

RESULTS

Page 2: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

Contents 1.0 Document Scope ...........................................................................................................................3

1.1 Product Description ...................................................................................................................3

1.2 Overview of Documentation ......................................................................................................3

1.3 Software Functions....................................................................................................................3

1.4 Developmental Overview...........................................................................................................4

1.5 Current Sprints / Objective Descriptions: ........................................ Error! Bookmark not defined.

2.0 Functional Block Diagram and Description. .....................................................................................6

3.0 Main Menu ...................................................................................................................................8

3.1 Problems ..................................................................................................................................8

3.2 Proposed Solutions....................................................................................................................8

3.3 Implemented Solutions..............................................................................................................8

3.4 Results......................................................................................................................................9

4.0 Profile ........................................................................................................................................ 10

4.1 Problems ................................................................................................................................ 10

4.2 Proposed Solutions.................................................................................................................. 10

4.3 Implemented Solutions............................................................................................................ 10

4.4 Results.................................................................................................................................... 11

5.0 Food Menu ................................................................................................................................. 12

5.1 Problems ................................................................................................................................ 12

5.2 Proposed Solutions.................................................................................................................. 12

5.3 Implemented Solutions............................................................................................................ 12

5.4 Results.................................................................................................................................... 13

6.0 Exercise Menu ............................................................................................................................ 14

6.1 Problems ................................................................................................................................ 14

6.2 Proposed Solutions.................................................................................................................. 14

6.3 Implemented Solutions............................................................................................................ 14

6.4 Results.................................................................................................................................... 15

7.0 Progress Report .......................................................................................................................... 16

7.1 Problems ................................................................................................................................ 16

7.2 Proposed Solutions.................................................................................................................. 16

7.3 Implemented Solutions............................................................................................................ 16

7.4 Results.................................................................................................................................... 17

8.0 Credits........................................................................................................................................ 18

Page 3: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

8.1 Problems ................................................................................................................................ 18

8.2 Proposed Solutions.................................................................................................................. 18

8.3 Implemented Solutions............................................................................................................ 18

8.4 Results.................................................................................................................................... 19

9.0 Lessons Learned.......................................................................................................................... 20

10.0 CONSOLEPROGRAM.JAVA ................................................................ Error! Bookmark not defined.

11.0 USERPROFILE.JAVA .......................................................................... Error! Bookmark not defined.

12.0 EXCERCISERECORD.JAVA.................................................................. Error! Bookmark not defined.

13.0 FOODRECORD.JAVA......................................................................... Error! Bookmark not defined.

14.0 MAINMENU.JAVA............................................................................ Error! Bookmark not defined.

15.0 PROFILE.JAVA.................................................................................. Error! Bookmark not defined.

16.0 FOODMENU.JAVA ........................................................................... Error! Bookmark not defined.

17.0 EXCERCISE.JAVA .............................................................................. Error! Bookmark not defined.

18.0 PROGRESSREPORT.JAVA .................................................................. Error! Bookmark not defined.

19.0 CREDITS.JAVA ................................................................................. Error! Bookmark not defined.

Table of Figures Figure 1: Overall Progress....................................................................................................................4

Figure 2: Developer Responsibilities:...................................................................................................5

Figure 3: Consolidated Timeline of Milestones......................................................................................5

Figure 4: UML and Flow Diagram .........................................................................................................6

Figure 5: Main Menu GUI ....................................................................................................................8

Figure 6: Main Menu Progress .............................................................................................................9

Figure 7: Description of Results (Progress Tables) featured in this document .........................................9

Figure 8: Profile GUI.......................................................................................................................... 10

Figure 9: Profile Progress .................................................................................................................. 11

Figure 10: Food Menu GUI ................................................................................................................ 12

Figure 11: Food Menu Progress ......................................................................................................... 13

Figure 12: Exercise Menu GUI ............................................................................................................ 14

Figure 13: Exercise Menu GUI Progress .............................................................................................. 15

Figure 14: Progress Report GUI.......................................................................................................... 16

Figure 15: Progress Report GUI Progress ............................................................................................ 17

Figure 16: Credits GUI ....................................................................................................................... 18

Figure 17: Credits GUI Progress ......................................................................................................... 19

Figure 18: Change Recommendations for Documentation: ................................................................. 21

Page 4: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

1.0 Document Scope

1.1 Product Description

The Lean Bean Fitness application is designed to provide the user several convenient options for

assistance with progress toward achieving weight loss goals by providing guidelines for maintaining

good nutrition habits. The software functions listed in the table below are assembled to assist in

exercise planning, meal planning, unique user profiling, and health conscious progress reporting.

Progress reporting allows the user to verify nutritional information such as daily calorie intake based on

daily diet.

Significant features of this product include a compelling and attractive Graphic User Interface (GUI). The interface provides a simplified approach for daily monitoring of healthy activities that complements users with a busy schedule. It promotes a gradual change of lifestyle toward improvement of the users health.

1.2 Overview of Documentation The primary objective of the Overview documentation is to provide software developers and

stakeholders a point of reference in the final phase of application development leading toward testing of

the finished product. It includes an overview describing software functions, developmental progress,

primary objectives, responsibilities, and milestones. Additionally, a functional block diagram is included

and supplemented with a detailed account of problems, proposed solutions, implemented solutions,

and results contributing to the completion of the final product.

1.3 Software Functions

Function Description of Primary Functions Provided

Main Menu Provides top-level selection for primary functions.

Profile Provides input for identification and physical condition information.

Food Menu Lists a variety of foods with calorie count.

Exercise Menu Lists a variety of exercises with expected calorie burning effect.

Progress Report Displays user progress including daily caloric intake.

Credits Displays the names of the application developers

Page 5: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

1.4 Developmental Overview.

Figure 1: Overall Progress

The current phase of source code development focuses 100% on GUI operability. The IDE Console test provides a comprehensive version of software functions around which to structure the GUI. It serves as a guide to ensure functional cohesion under development of multiple programmers. An IDE Console test provides a simplified version of the initial design which covers most of the high priority functions of the applications operability. At a minimum these functions are test scheduled for the final products GUI operability. This ensures the introductory 1.0 version of the application has functions driven by a completed and working GUI. Workings include GUI features matching the console based functions shown in the UML and Flow diagram figure 4. Development of a JAVA based application is the best option for completing a functional application within time constraints. Developments include a JAVA Swing GUI structure parallel to the “println” based structure of the functional block diagram, but using JFrames, JPanels, and Jbuttons, and image imports via “JButton profileButton = new JButton();

0 10 20 30 40

Console Program

Credits

Exercise

ExcerciseRecord

FoodMenu

FoodRecord

MainMenu

ProgressReport

UserProfile

Actual

Possible

Function Percent Complete

Actual Possible %

MainMenu 14 14 100%

UserProfile 17 17 100%

Profile 40 40 100%

FoodMenu 38 38 100%

FoodRec 7 7 100%

Excercise 36 36 100%

ExcerciseRec 7 7 100%

ProgressRep 29 29 100%

Credits 16 16 100%

DATA SOURCE DESCRIPTION: This document includes tables which show the total number of

methods for which GUI operability has been completed. The number of operable GUI elements

(possible) is compared to the (actual) number of GUI

Page 6: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

profileButton.setIcon(new ImageIcon(--image URL--);”. The GUI classes interface with the main method for page navigation. Tasking for completion is as follows:

Figure 2: Developer Responsibilities:

Developer Application Feature

Sun Food Menu John Graphics / Page Layouts, Profile & Credits

Kelly Exercise Menu Louis Documentation & Coding Assistance

Shan Main Menu, Profile, & Progress Report Henry Documentation

Figure 3: Consolidated Timeline of Milestones

ANALYSIS PHASE

Features, functions

Users Development and User Environments

Possible implementation constraints The development team

TEST PLAN PHASE

Features and functions to be tested

Strategy and approach Policies and Procedures for testers to follow

Sample test cases

DESIGN PLAN PHASE

Architecture of the system as a whole

Data structures and fields within the programming “Look and feel” of graphical interfaces

SOURCE CODE DEVELOPMENT PHASE

Set goals/milestones to be reached throughout the week

Assign tasks and responsibilities to team members Record progress, as well as any ideas for changes during development

Page 7: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

2.0 Functional Block Diagram and Description.

Figure 4: UML and Flow Diagram

Page 8: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

DIAGRAM DESCRIPTION

This diagram describes the run of the program from start to finish.

When the program runs, the Main Menu interface will open. From here the user can select other interfaces to enter by using the buttons assigned to them.

Within each “sub-menu”, interact with the functions of that specific screen. For example, the user can select the Profile button to open the Profile interface, and

view or edit what they have set as their personal attributes.

The user can also move between the other interfaces, or return to the Main Menu,

again by using assigned buttons.

To close the application, the user must select the “exit” button from the Main

Menu

Page 9: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

3.0 Main Menu

Figure 5: Main Menu GUI

3.1 Problems

3.2 Proposed Solutions

3.3 Implemented Solutions

Problem: The Buttons are coded with setVisible(false). I know this is to have invisible buttons, but now they don't seem to be clickable. To test, I've entered some code to just print "hello" to the console, if I click the profileButton, but it doesn't seem to register.

Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);} Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);}

Page 10: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

3.4 Results

Figure 6: Main Menu Progress

1

1

1

1

1

1

1

1

1

1

1

1

1

1

GUI Main Menu 14

Figure 7: Description of Results (Progress Tables) featured in this document

The purpose of the results tables is to quantify the number of methods within each class for

which the coding has been completed. For example, the table above shows method names for

button actions performed. A “1” next to a method name indicates that coding for the method is

complete. The combined total of completed methods and GUI elements are highlighted in

yellow. These combined totals are used as the source of data for figure 1, “Overall Progress.”

Page 11: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

4.0 Profile

Figure 8: Profile GUI

4.1 Problems

4.2 Proposed Solutions

4.3 Implemented Solutions

Problem: The Buttons are coded with setVisible(false). I know this is to have invisible buttons, but now they don't seem to be clickable. To test, I've entered some code to just print "hello" to the console, if I click the profileButton, but it doesn't seem to register.

Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);} Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);}

Page 12: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

4.4 Results

Figure 9: Profile Progress

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1

User Profile 17 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

GUI Profile 40

Page 13: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

5.0 Food Menu

Figure 10: Food Menu GUI

5.1 Problems

5.2 Proposed Solutions

5.3 Implemented Solutions

Problem: The Buttons are coded with setVisible(false). I know this is to have invisible buttons, but now they don't seem to be clickable. To test, I've entered some code to just print "hello" to the console, if I click the profileButton, but it doesn't seem to register.

Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);} Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);}

Page 14: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

5.4 Results

Figure 11: Food Menu Progress

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1

1 Food Record 7

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

GUI Food Menu 38

Page 15: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

6.0 Exercise Menu

Figure 12: Exercise Menu GUI

6.1 Problems

6.2 Proposed Solutions

6.3 Implemented Solutions

Problem: The Buttons are coded with setVisible(false). I know this is to have invisible buttons, but now they don't seem to be clickable. To test, I've entered some code to just print "hello" to the console, if I click the profileButton, but it doesn't seem to register.

Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);} Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);}

Page 16: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

6.4 Results

Figure 13: Exercise Menu GUI Progress

1

1 1

1 1

1 1

1 1

1 1

1 1

1 1

1 Exercise Record 7

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

GUI Exercise 36

Page 17: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

7.0 Progress Report

Figure 14: Progress Report GUI

7.1 Problems

7.2 Proposed Solutions

7.3 Implemented Solutions

Problem: The Buttons are coded with setVisible(false). I know this is to have invisible buttons, but now they don't seem to be clickable. To test, I've entered some code to just print "hello" to the console, if I click the profileButton, but it doesn't seem to register.

Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);} Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);}

Page 18: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

7.4 Results

Figure 15: Progress Report GUI Progress

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

GUI Progress Report 29

Page 19: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

8.0 Credits

Figure 16: Credits GUI

8.1 Problems

8.2 Proposed Solutions

8.3 Implemented Solutions

Problem: The Buttons are coded with setVisible(false). I know this is to have invisible buttons, but now they don't seem to be clickable. To test, I've entered some code to just print "hello" to the console, if I click the profileButton, but it doesn't seem to register.

Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out the text property - make it blank, or else the black text will appear over the background image. then Right-click the button, and select Customize Code. It looks like this is the only way to change it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false); setContentAreaFilled(false); setBorderPainted(false);} Solution: For invisible buttons, Go to the Gui builder - Design tab, Click the button, and clear out

the text property - make it blank, or else the black text will appear over the background image.

then Right-click the button, and select Customize Code. It looks like this is the only way to change

it. This Code Customizer will pop up. For the button you selected, setVisible to true, and add other

lines of code below it, making it clickable, but invisible. { .setvisible(true); .setOpaque(false);

setContentAreaFilled(false); setBorderPainted(false);}

Page 20: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

8.4 Results

Figure 17: Credits GUI Progress

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

GUI Credits 16

Page 21: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

9.0 Lessons Learned

With two versions of the application under development, progress on interfacing has been limited to the logical interface of the JAVA version and the layout interface of the Android version. The majority of code for the functions listed has only recently been completed and accompanied with a working test description. UML figure updates can be accomplished by extracting the class structure from the IDE package explorer.The graphic elements of the interface have seen significant progress. However they are more geared toward Android functionality. Leaving additional tasking for the development of the logical interface without the GUI took precedence to ensure a basic interface structure was completely laid defining the overall purpose of the application. Concerning operability, graphics were loaded and buttons working in relation to graphics that move from page (activity) to page. Were not sure how it will work on different devices but it looks good on the emulator I'm using (Nexus 5).We are not sure if the exercise graphic is going to work. Rather, the page will likely be a drop down list of exercises that the user chooses from. It seems that Genymotion do have a virtual android environment but it's not on the free version of the program. You can however use the emulator instead of AS emulation and I can say that it's faster. We also looked at how the GUI would coincide with Netbeans. Android Studio and Netbeans'

interface are in fact different. The resolution within Netbeans is different. The graphics frames

needed to be adjusted to around 537 x 957 (width x height) for the graphic to fit. We found that

dealing with XML / 3XML and two different IDE environments that treat frame dimensions

differently turned out to be too time consuming.

Overall, the application got behind schedule and some functionalities were cut off from proposed

requirements. Although the graphics is the application's design strength, the application as a whole

still lacked the functionality that was expected in the final phase of the development process.

Future improvements could include a better work ethic within the group members and a better

time management within the development phase of the application.

Page 22: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

Figure 18: Change Recommendations for Documentation:

Design Plan TASK: ADDRESSED(A) NOT ADDRESSED (NA)

A NA

section 1.2. Proceed with development of JAVA application description. X

section 3.0 Proceed with development of JAVA application. X

section 3.1. Provide UML activity diagram for JAVA swing application.

X

section 4.2 Determine software database related functions needed for storing profile and progress reporting data.

X

section 4.4 & 5.0 Discuss implementation of GUI navigation via main method X

section 5.2 Ensure all team members are sharing the same developer IDE environment (Netbeans). Discuss the use of IDE for preliminary testing of the applications logical structure and functions.

X

Test Plan A NA

More work needs to be put into the general description of the applications purpose, functions, and features.

X

Shift introductory references to glossary. X

Specify specific applications of all developer tools in the testing process.

X

section 2.4 Need supporting text for use and purpose of I/O tables with the testing procedures.

X

section 3.1 Reserve feature descriptions for supporting text alongside use case tables.

X

section 3.2 Assemble all discussion of testing technics (approach, black box, white box) in this section.

X

section 4.0 Find a better solution for cross referencing the similarities among test case activities to reduce page flipping.

X

Annex A Include supporting text for use of tables (IAW section 2.4) X

Page 23: 1. Group 1 Overview, Conclusions, Phase 3 Re-submission

(Figure 10 Cont….)

Initial Analysis TASK: ADDRESSED(A) NOT ADDRESSED (NA)

A NA

section 1.2. Proceed with development of JAVA application description.

X

Our closest effort thus far has been to identify I/O and GUI screens without a concise general description close to finalization of functionality.

X

This should summarize current details of the I/O and the annotated description of the design plan GUI.

X

section 1.3 Provide details for team members on how the documented references will contribute to each stage of development.

X

section 2.1 2.1 Product Perspective - Proceed with development of JAVA application description.

X

section 2.4 2.4 Operating Environment needs emphasis on JAVA Swing. X

Section 2.5 (Constraints) Clarify sprint goals with priority for base functionality. (Consolidated Timeline)

X

Create project backlog. (Use results analysis tables included in this document).

X

section 2.6 Ensure developer test plan details are not included as user documentation.

X

section 3.2 3XML will not be used. X

section 4.0 Use Cases require more supporting text. X

section 5.0 Development plan schedule needed. Milestones currently documented may need to be expanded or repeated.

X

Need software based configuration management. X