1. Group 1 Overview, Conclusions, Phase 3 Re-submission
1. 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
3. 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 Recommendationsfor Documentation:.................................................................21
4. 1.0 Document Scope
1.1 Product Description
The LeanBean Fitnessapplicationisdesignedtoprovide the userseveral convenientoptionsfor
assistance withprogresstowardachieving weightlossgoals byprovidingguidelinesformaintaining
goodnutritionhabits. The software functions listedinthe table beloware assembledtoassistin
exercise planning,meal planning,unique userprofiling, andhealthconscious progressreporting.
Progressreportingallowsthe usertoverifynutritionalinformationsuchasdailycalorie intake basedon
dailydiet.
Significantfeaturesof thisproductinclude acompellingandattractive GraphicUser Interface (GUI).
The interface providesasimplifiedapproachfordailymonitoringof healthyactivitiesthatcomplements
userswitha busyschedule. Itpromotesagradual change of lifestyle towardimprovementof the users
health.
1.2 Overview of Documentation
The primaryobjective of the Overview documentationistoprovide software developersand
stakeholdersapointof reference inthe final phase of applicationdevelopmentleadingtowardtestingof
the finishedproduct. Itincludesanoverview describingsoftware functions,developmental progress,
primaryobjectives,responsibilities,andmilestones. Additionally, afunctional blockdiagramisincluded
and supplementedwithadetailedaccountof problems,proposedsolutions,implementedsolutions,
and resultscontributingtothe completionof 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
5. 1.4 Developmental Overview.
Figure1: Overall Progress
The current phase of source code developmentfocuses100% onGUI operability. The IDEConsole test
providesacomprehensive versionof softwarefunctionsaround whichtostructure the GUI. It servesas
a guide to ensure functionalcohesionunderdevelopmentof multiple programmers. AnIDEConsole
testprovides asimplifiedversion of the initial designwhichcoversmostof the highpriorityfunctionsof
the applicationsoperability. Ata minimumthese functionsare testscheduledforthe final productsGUI
operability. Thisensuresthe introductory1.0versionof the applicationhasfunctionsdrivenbya
completedandworkingGUI. Workingsinclude GUIfeaturesmatchingthe console basedfunctions
shownin the UML and Flow diagramfigure 4. Developmentof aJAVA basedapplicationisthe best
optionforcompletingafunctional applicationwithintimeconstraints.Developmentsinclude aJAVA
SwingGUI structure parallel tothe “println”basedstructure of the functional blockdiagram, butusing
JFrames,JPanels,andJbuttons,andimage importsvia“JButtonprofileButton=new JButton();
0 10 20 30 40
Console Program
Credits
Exercise
ExcerciseRecord
FoodMenu
FoodRecord
MainMenu
ProgressReport
UserProfile
Actual
Possible
Function PercentComplete
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: Thisdocumentincludestableswhichshow the total numberof
methodsforwhich GUI operability hasbeencompleted. The numberof operableGUIelements
(possible) iscomparedtothe (actual) numberof GUI
6. profileButton.setIcon(newImageIcon(--imageURL--);”. The GUI classesinterface withthe mainmethod
for page navigation. Taskingforcompletionisasfollows:
Figure2: 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
Figure3: Consolidated Timelineof 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
8. 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
9. 3.0 Main Menu
Figure5: MainMenu GUI
3.1 Problems
3.2 Proposed Solutions
3.3 Implemented Solutions
Problem: The Buttons are codedwith setVisible(false).Iknowthis is to have invisible buttons,but
now they don'tseemto be clickable.To test, I've enteredsome code to justprint "hello" tothe
console,ifI clickthe profileButton,but it doesn'tseemtoregister.
Solution:For invisible buttons, Goto the Gui builder - Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
Solution:For invisible buttons, Goto the Gui builder- Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
10. 3.4 Results
Figure6: MainMenuProgress
1
1
1
1
1
1
1
1
1
1
1
1
1
1
GUI Main Menu 14
Figure7: DescriptionofResults (Progress Tables) featured inthis document
The purpose of the resultstablesistoquantifythe numberof methodswithineachclassfor
whichthe codinghas beencompleted. Forexample,the table above showsmethodnamesfor
buttonactionsperformed. A “1” nextto a methodname indicatesthatcodingforthe methodis
complete. The combinedtotal of completedmethodsandGUI elementsare highlightedin
yellow. These combinedtotalsare usedasthe source of data for figure 1, “Overall Progress.”
11. 4.0 Profile
Figure8: ProfileGUI
4.1 Problems
4.2 Proposed Solutions
4.3 Implemented Solutions
Problem: The Buttons are codedwith setVisible(false).Iknowthis is to have invisible buttons,but
now they don'tseemto be clickable.To test, I've enteredsome code to justprint "hello" tothe
console,ifI clickthe profileButton,but it doesn'tseemtoregister.
Solution:For invisible buttons, Goto the Gui builder - Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
Solution:For invisible buttons, Goto the Gui builder- Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
13. 5.0 FoodMenu
Figure10:Food Menu GUI
5.1 Problems
5.2 Proposed Solutions
5.3 Implemented Solutions
Problem: The Buttons are codedwith setVisible(false).Iknowthis is to have invisible buttons,but
now they don'tseemto be clickable.To test, I've enteredsome code to justprint "hello" tothe
console,ifI clickthe profileButton,but it doesn'tseemtoregister.
Solution:For invisible buttons, Goto the Gui builder - Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
Solution:For invisible buttons, Goto the Gui builder - Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
15. 6.0 Exercise Menu
Figure12:Exercise Menu GUI
6.1 Problems
6.2 Proposed Solutions
6.3 Implemented Solutions
Problem: The Buttons are codedwith setVisible(false).Iknowthis is to have invisible buttons,but
now they don'tseemto be clickable.To test, I've enteredsome code to justprint "hello" tothe
console,ifI clickthe profileButton,but it doesn'tseemtoregister.
Solution:For invisible buttons, Goto the Gui builder - Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
Solution:For invisible buttons, Goto the Gui builder - Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
17. 7.0 Progress Report
Figure14:Progress Report GUI
7.1 Problems
7.2 Proposed Solutions
7.3 Implemented Solutions
Problem: The Buttons are codedwith setVisible(false).Iknowthis is to have invisible buttons,but
now they don'tseemto be clickable.To test, I've enteredsome code to justprint "hello" tothe
console,ifI clickthe profileButton,but it doesn'tseemtoregister.
Solution:For invisible buttons, Goto the Gui builder - Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
Solution:For invisible buttons, Goto the Gui builder- Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
19. 8.0 Credits
Figure16:Credits GUI
8.1 Problems
8.2 Proposed Solutions
8.3 Implemented Solutions
Problem: The Buttons are codedwith setVisible(false).Iknowthis is to have invisible buttons,but
now they don'tseemto be clickable.To test, I've enteredsome code to justprint "hello" tothe
console,ifI clickthe profileButton,but it doesn'tseemtoregister.
Solution:For invisible buttons, Goto the Gui builder - Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
Solution:For invisible buttons, Goto the Gui builder - Designtab, Clickthe button, and clear out
the textproperty - make it blank, or else the black text will appear over the background image.
then Right-clickthe button, and selectCustomize Code.It looks like this isthe only way to change
it. This Code Customizerwill pop up. For the button you selected,setVisible totrue,and add other
linesofcode belowit, making it clickable,but invisible.{.setvisible(true);.setOpaque(false);
setContentAreaFilled(false);setBorderPainted(false);}
21. 9.0 Lessons Learned
Withtwo versionsof the applicationunderdevelopment,progressoninterfacinghasbeenlimited
to the logical interface of the JAVA versionandthe layoutinterface of the Androidversion. The
majorityof code for the functionslistedhasonlyrecently beencompletedandaccompaniedwitha
workingtestdescription. UML figure updatescanbe accomplishedbyextractingthe class
structure fromthe IDE package explorer.Thegraphicelementsof the interface have seensignificant
progress.Howevertheyare more gearedtowardAndroidfunctionality.Leavingadditionaltasking
for the developmentof the logical interfacewithoutthe GUI tookprecedence toensure abasic
interface structure wascompletelylaiddefiningthe overall purpose of the application.
Concerningoperability,graphicswere loadedandbuttonsworkinginrelationtographicsthatmove
frompage (activity) topage.Were notsure how it will workondifferentdevicesbutitlooksgood
on the emulatorI'musing(Nexus5).We are notsure if the exercise graphicisgoingtowork.Rather,
the page will likelybe adrop downlistof exercisesthatthe userchoosesfrom.
It seemsthatGenymotion dohave avirtual androidenvironmentbutit'snoton the free versionof
the program. You can howeveruse the emulatorinsteadof ASemulationandIcan say that it's
faster.
We alsolookedathowthe GUI wouldcoincide withNetbeans.AndroidStudio andNetbeans'
interface are infact different. The resolutionwithinNetbeansisdifferent.The graphicsframes
needed tobe adjustedtoaround537 x 957 (widthx height) forthe graphic tofit. We foundthat
dealingwithXML/ 3XML and twodifferentIDEenvironmentsthattreatframe dimensions
differently turnedouttobe too time consuming.
Overall,the applicationgotbehindscheduleandsome functionalitieswere cutoff fromproposed
requirements.Althoughthe graphicsisthe application'sdesignstrength,the applicationasa whole
still lackedthe functionalitythatwasexpectedinthe final phase of the developmentprocess.
Future improvementscouldinclude abetterworkethicwithinthe groupmembersanda better
time managementwithinthe developmentphase of the application.
22. Figure18: ChangeRecommendations forDocumentation:
DesignPlan TASK: ADDRESSED(A) NOTADDRESSED(NA)
A NA
section1.2. Proceedwithdevelopmentof JAVA applicationdescription. X
section3.0 Proceedwithdevelopmentof JAVA application.
X
section3.1. Provide UML activitydiagramforJAVA swingapplication.
X
section4.2
Determine software database related functionsneededforstoring
profile andprogressreportingdata.
X
section4.4 & 5.0 Discussimplementationof GUInavigationviamainmethod
X
section5.2
Ensure all teammembers are sharingthe same developerIDE
environment(Netbeans). Discussthe use of IDE forpreliminary
testingof the applicationslogicalstructure andfunctions.
X
Test Plan A NA
More workneedstobe putintothe general descriptionof the
applicationspurpose,functions,andfeatures.
X
Shiftintroductoryreferencestoglossary. X
Specifyspecificapplicationsof all developertoolsinthe testing
process.
X
section2.4
Needsupportingtext for use and purpose of I/O tableswith the
testingprocedures.
X
section3.1
Reserve feature descriptionsforsupportingtextalongsideuse case
tables.
X
section3.2
Assemble all discussionof testingtechnics(approach,blackbox,
white box) inthissection.
X
section4.0
Finda bettersolutionforcrossreferencingthe similaritiesamong
testcase activitiestoreduce page flipping.
X
Annex A Include supportingtextforuse of tables(IAWsection2.4) X
23. (Figure 10 Cont….)
InitialAnalysis TASK: ADDRESSED(A) NOTADDRESSED(NA)
A NA
section1.2.
Proceedwithdevelopmentof JAVA applicationdescription. X
Our closesteffortthusfarhas beentoidentifyI/OandGUI screens
withouta concise general descriptionclose tofinalizationof
functionality.
X
Thisshouldsummarize currentdetailsof the I/Oandthe annotated
descriptionof the designplanGUI.
X
section1.3
Provide detailsforteammembers onhow the documented
referenceswill contribute toeachstage of development.
X
section2.1
2.1 ProductPerspective - Proceedwithdevelopmentof JAVA
applicationdescription.
X
section2.4 2.4 OperatingEnvironmentneedsemphasison JAVA Swing. X
Section2.5
(Constraints) Clarifysprintgoalswithpriorityforbase functionality.
(ConsolidatedTimeline)
X
Create projectbacklog.
(Use resultsanalysistablesincludedinthis document).
X
section2.6
Ensure developertestplandetailsare notincludedasuser
documentation.
X
section3.2 3XML will notbe used.
X
section4.0 Use Casesrequire more supportingtext. X
section5.0
Developmentplanschedule needed. Milestonescurrently
documentedmayneedtobe expandedorrepeated.
X
Needsoftware basedconfigurationmanagement. X