SlideShare a Scribd company logo
1 of 16
SE494-Final Presentation
Genfare Code Configurator
Group 4
Stanley Chang, David Rodriguez,
Mark Bauer, Seonggeun Cho
1
Team Introduction
Stanley Chang Mark Bauer
David Rodriguez Seonggeun Cho
2
Overview 1. Project Introduction
2. Analysis of Current Configurator
3. Solution Research
4. Proposed Solution
5. Project Development Goals
6. Final Deliverable
7. Unit/Efficiency Testing
8. Conclusion & Recommendations
3
Project Introduction
What does Genfare do?
Project focus
Challenge & Opportunity
Fare solution in public
transportation
Rework their main
product’s software
configurator
Legacy feature
Improvement upon original
Problem Statement
Problem: complexity → human error
Context: Rework time is 3x the initial development time
Scope: improve current tool/create a new tool
Goal: provide a tool that is easier to use → improve work efficiency &
reduce human error
Economic Impact
Reduce overall development cost
Reduce project development time
Improve customer satisfaction
4
Analysis of Current Configurator
Workflow
Setting file
Edit individual setting
- Name
- On/Off
Setting file
Setting1=0xA023
Setting2=”Hello world”
Setting1-0x8000 = ON
Setting1-0x4000 = OFF
….
Setting2=”Hello world”
Example Display
Setting1
● Setting1-0x8000 = ON
● Setting1-0x4000 = OFF
● ….
Setting2
● Setting2 =”Hello world”
Farebox
Interpretation
Not inside the scope
5
Example of UI Display
User Navigation
Select a category (green)
Edit individual setting (red)
OR
Edit category setting (orange)
Save by pressing save (purple)
6
Identified Problems: Usage Complexity
Why is it complicated?
Meaningless categories
How do we solve it?
Recategorize settings
Setting file SW architecture
Setting file only
stores name and
state
No separation
between database
and codebase
Root cause
Settings hardcoded based upon customers
needs in a chronological order
Figure 1. Unorganized
categories
Figure 3. Setting file components
Figure 2. Current file structure
7
Solution Research
Why are we building a new tool
Current tool issues:
● GUI and data are hard-coded
(need to change the program)
○ Cannot separate backend
○ Same as rebuilding from
scratch
● Re-categorize setting data
● Separate setting data from GUI
● Output backward compatibility
Research Goals
Specific goals:
● Categories should be meaningful to the user
● Categories should be mutually exclusive and complete with each other
● Abstraction - Each level of categories should have fewer entries than
present levels (57 - category level, 16 - base level)
Methodology:
● Statistical Analysis
● User interviews
Data Recategorization
Architecture for tool must:
● Maintain current data schema at base level
● Allow addition of data attributes (categories)
● Separate backend from frontend to allow independent development
Software Architecture
8
Proposed Solution
3-level Tree Structure
● Component (18 entries)
○ Component Behavior (average: 3)
■ Individual settings (average: 13)
N-Layer Architecture
Data Recategorization
Comparison to original goal
√ meaningful categories
√ mutually exclusive & complete
√ abstraction - fewer entries on average*
Original: 57 + 16 = 72 entries
New: 18+3+13 = 34 entries
* some categories have more than 20 individual settings, but
some settings are grouped & displayed as a single entry in the UI 9
Project Development Process
Tool should be able to:
● Utilize GUI to edit individual settings
● Create new projects and load existing projects
● Display settings in treeview using current
categorization
Minimum viable product definition:
● Implement frontend GUI
● Implement backend data schema
● Reimplement file comparison tool
● Reimplementing specific UI element (multiple
choice)
Development Milestones:
● Settings validator / error handler
○ Model option flag dependencies
● Cloud file storage
Possible Future Features:
● Unit Testing
○ Test fundamental features
○ Load/Save/Display
● Efficiency Testing
○ Time trials to configure settings
○ Prevalence of errors
Testing
10
Final Deliverable
What can it do currently?
● Read data from GFI.ini file
○ Setting name
○ Setting optionflag
○ Setting state
● Data structure for storing configuration setting
information
○ Setting categories
○ Setting descriptions
● Settings Configuration Screen
○ Treeview displays setting categories
○ Checkbox displays individual settings
11
Unit/Efficiency Testing
● Loads input files properly?
○ Load sample files from client, ensure settings
display properly
● Saves files properly?
○ Configure settings to match sample client
files, check if saved outputs are the same
● Displays GUI elements properly?
○ Press all buttons, interact with all elements,
and monitor output
● Reliability
○ Prevent memory leaks -> Valgrind
● Proposed method:
○ Random subjects configure settings on old
tool or new tool, time trials and error rate
analysis, compare results
● Problem:
○ Client could not provide enough test subjects
● Solution:
○ Waive efficiency tests, client was satisfied
with product, justified by internal economic
analysis, determined further testing to be
unnecessary
12
Unit Testing: Efficiency Testing:
Conclusion &
Recommendations
13
In the end, this project delivered:
1. A functionally complete tool that can be a
replacement for the current code configurator
2. Systematic workflow that reduces future
product development time by automating UI
configuration of the software
Upon the completion of current project, here’s a few
recommendations:
1. Expanding upon the configuration UI file to a
database for product development.
2. Implementing error reporting feature by creating
a relational database
Thank you
14
Appendix #1: Statistical analysis on setting use
frequency and use correlation between settings
Research Questions
How many of the settings are being actively used?
What settings are being actively used in the final product?
What kind of categories can we put settings into?
How are the settings related to each other?
Available information
40 final project setting files
● ~900 individual settings
● On / Off
Available Statistics
Occurrence - The number of times a specific setting is used
Correlation - The number of times a specific setting is used
when another setting is used
As shown in the graph above, 80.4% of the option flag settings are used
0%-10% of the time in the 40 GFI.INI files that were sampled. This shows
that there are a good amount of option flag settings that can be
categorized as redundant.
This also suggests that the correlation findings are inconclusive
because over 80% of the data points are going to be indeterminate (how
do you compare 0% against any other occurrence probability)
Analysis
15
Appendix #2: Data Categorization Tradeoff Analysis
Reorganization priority (in order of importance):
● Categories should be meaningful to the user
● Categories should be mutually exclusive and complete with each other
● Each level of categories should have fewer entries than present levels (57 - category level, 16 - base level)
Categorization Status Reasoning Failed criteria
Use frequency Rejected 80% of the entries are only used 0-
10% the time, cannot have even
categorization
Each level of categories should have fewer entries than
present
User preference
(hardware)
Rejected Meaningful, but base-level has 30-40
entries on average
Each level of categories should have fewer entries than
present
Statistical
correlation based
on use frequency
Rejected The correlation results has an
absolute error up to 60%, may lead to
bad categories
Categories should be meaningful to the user
User preference
(functionality)
Rejected Logistically impossible to finish within
project time-frame 16

More Related Content

Similar to Final Presentation.pptx

Case tools and modern process of system development
Case tools and modern process of system development Case tools and modern process of system development
Case tools and modern process of system development tushar217
 
How To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test AutomationHow To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test AutomationRanorex
 
Pressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsPressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsSeema Kamble
 
Parents connect final
Parents connect finalParents connect final
Parents connect finalMridul Kumar
 
Production ready big ml workflows from zero to hero daniel marcous @ waze
Production ready big ml workflows from zero to hero daniel marcous @ wazeProduction ready big ml workflows from zero to hero daniel marcous @ waze
Production ready big ml workflows from zero to hero daniel marcous @ wazeIdo Shilon
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software developmentPratik Devmurari
 
Datagrinch product experience
Datagrinch product experienceDatagrinch product experience
Datagrinch product experienceSandeep Supal
 
Sprint 44 review
Sprint 44 reviewSprint 44 review
Sprint 44 reviewManageIQ
 
Production-Ready BIG ML Workflows - from zero to hero
Production-Ready BIG ML Workflows - from zero to heroProduction-Ready BIG ML Workflows - from zero to hero
Production-Ready BIG ML Workflows - from zero to heroDaniel Marcous
 
HCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdfHCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdfudhayaveenaa
 
Quality Assurance: An Overview
Quality Assurance: An OverviewQuality Assurance: An Overview
Quality Assurance: An OverviewAnant Corporation
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.pptghkadous
 
Moodle Development Best Pracitces
Moodle Development Best PracitcesMoodle Development Best Pracitces
Moodle Development Best PracitcesJustin Filip
 
FlorenceAI: Reinventing Data Science at Humana
FlorenceAI: Reinventing Data Science at HumanaFlorenceAI: Reinventing Data Science at Humana
FlorenceAI: Reinventing Data Science at HumanaDatabricks
 
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010TEST Huddle
 
IRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware PerformanceIRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware PerformanceIRJET Journal
 

Similar to Final Presentation.pptx (20)

Case tools and modern process of system development
Case tools and modern process of system development Case tools and modern process of system development
Case tools and modern process of system development
 
How To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test AutomationHow To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test Automation
 
Pressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metricsPressman ch-22-process-and-project-metrics
Pressman ch-22-process-and-project-metrics
 
Parents connect final
Parents connect finalParents connect final
Parents connect final
 
Production ready big ml workflows from zero to hero daniel marcous @ waze
Production ready big ml workflows from zero to hero daniel marcous @ wazeProduction ready big ml workflows from zero to hero daniel marcous @ waze
Production ready big ml workflows from zero to hero daniel marcous @ waze
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Datagrinch product experience
Datagrinch product experienceDatagrinch product experience
Datagrinch product experience
 
Sprint 44 review
Sprint 44 reviewSprint 44 review
Sprint 44 review
 
Production-Ready BIG ML Workflows - from zero to hero
Production-Ready BIG ML Workflows - from zero to heroProduction-Ready BIG ML Workflows - from zero to hero
Production-Ready BIG ML Workflows - from zero to hero
 
HCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdfHCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdf
 
Quality Assurance: An Overview
Quality Assurance: An OverviewQuality Assurance: An Overview
Quality Assurance: An Overview
 
Bai giang-spm-13feb14
Bai giang-spm-13feb14Bai giang-spm-13feb14
Bai giang-spm-13feb14
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
 
Moodle Development Best Pracitces
Moodle Development Best PracitcesMoodle Development Best Pracitces
Moodle Development Best Pracitces
 
Costing ass4
Costing ass4Costing ass4
Costing ass4
 
FlorenceAI: Reinventing Data Science at Humana
FlorenceAI: Reinventing Data Science at HumanaFlorenceAI: Reinventing Data Science at Humana
FlorenceAI: Reinventing Data Science at Humana
 
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
Anders Claesson - Test Strategies in Agile Projects - EuroSTAR 2010
 
Visual Studio Profiler
Visual Studio ProfilerVisual Studio Profiler
Visual Studio Profiler
 
IRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware PerformanceIRJET- Deep Learning Model to Predict Hardware Performance
IRJET- Deep Learning Model to Predict Hardware Performance
 

Recently uploaded

How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docxPoojaSen20
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 

Recently uploaded (20)

How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 

Final Presentation.pptx

  • 1. SE494-Final Presentation Genfare Code Configurator Group 4 Stanley Chang, David Rodriguez, Mark Bauer, Seonggeun Cho 1
  • 2. Team Introduction Stanley Chang Mark Bauer David Rodriguez Seonggeun Cho 2
  • 3. Overview 1. Project Introduction 2. Analysis of Current Configurator 3. Solution Research 4. Proposed Solution 5. Project Development Goals 6. Final Deliverable 7. Unit/Efficiency Testing 8. Conclusion & Recommendations 3
  • 4. Project Introduction What does Genfare do? Project focus Challenge & Opportunity Fare solution in public transportation Rework their main product’s software configurator Legacy feature Improvement upon original Problem Statement Problem: complexity → human error Context: Rework time is 3x the initial development time Scope: improve current tool/create a new tool Goal: provide a tool that is easier to use → improve work efficiency & reduce human error Economic Impact Reduce overall development cost Reduce project development time Improve customer satisfaction 4
  • 5. Analysis of Current Configurator Workflow Setting file Edit individual setting - Name - On/Off Setting file Setting1=0xA023 Setting2=”Hello world” Setting1-0x8000 = ON Setting1-0x4000 = OFF …. Setting2=”Hello world” Example Display Setting1 ● Setting1-0x8000 = ON ● Setting1-0x4000 = OFF ● …. Setting2 ● Setting2 =”Hello world” Farebox Interpretation Not inside the scope 5
  • 6. Example of UI Display User Navigation Select a category (green) Edit individual setting (red) OR Edit category setting (orange) Save by pressing save (purple) 6
  • 7. Identified Problems: Usage Complexity Why is it complicated? Meaningless categories How do we solve it? Recategorize settings Setting file SW architecture Setting file only stores name and state No separation between database and codebase Root cause Settings hardcoded based upon customers needs in a chronological order Figure 1. Unorganized categories Figure 3. Setting file components Figure 2. Current file structure 7
  • 8. Solution Research Why are we building a new tool Current tool issues: ● GUI and data are hard-coded (need to change the program) ○ Cannot separate backend ○ Same as rebuilding from scratch ● Re-categorize setting data ● Separate setting data from GUI ● Output backward compatibility Research Goals Specific goals: ● Categories should be meaningful to the user ● Categories should be mutually exclusive and complete with each other ● Abstraction - Each level of categories should have fewer entries than present levels (57 - category level, 16 - base level) Methodology: ● Statistical Analysis ● User interviews Data Recategorization Architecture for tool must: ● Maintain current data schema at base level ● Allow addition of data attributes (categories) ● Separate backend from frontend to allow independent development Software Architecture 8
  • 9. Proposed Solution 3-level Tree Structure ● Component (18 entries) ○ Component Behavior (average: 3) ■ Individual settings (average: 13) N-Layer Architecture Data Recategorization Comparison to original goal √ meaningful categories √ mutually exclusive & complete √ abstraction - fewer entries on average* Original: 57 + 16 = 72 entries New: 18+3+13 = 34 entries * some categories have more than 20 individual settings, but some settings are grouped & displayed as a single entry in the UI 9
  • 10. Project Development Process Tool should be able to: ● Utilize GUI to edit individual settings ● Create new projects and load existing projects ● Display settings in treeview using current categorization Minimum viable product definition: ● Implement frontend GUI ● Implement backend data schema ● Reimplement file comparison tool ● Reimplementing specific UI element (multiple choice) Development Milestones: ● Settings validator / error handler ○ Model option flag dependencies ● Cloud file storage Possible Future Features: ● Unit Testing ○ Test fundamental features ○ Load/Save/Display ● Efficiency Testing ○ Time trials to configure settings ○ Prevalence of errors Testing 10
  • 11. Final Deliverable What can it do currently? ● Read data from GFI.ini file ○ Setting name ○ Setting optionflag ○ Setting state ● Data structure for storing configuration setting information ○ Setting categories ○ Setting descriptions ● Settings Configuration Screen ○ Treeview displays setting categories ○ Checkbox displays individual settings 11
  • 12. Unit/Efficiency Testing ● Loads input files properly? ○ Load sample files from client, ensure settings display properly ● Saves files properly? ○ Configure settings to match sample client files, check if saved outputs are the same ● Displays GUI elements properly? ○ Press all buttons, interact with all elements, and monitor output ● Reliability ○ Prevent memory leaks -> Valgrind ● Proposed method: ○ Random subjects configure settings on old tool or new tool, time trials and error rate analysis, compare results ● Problem: ○ Client could not provide enough test subjects ● Solution: ○ Waive efficiency tests, client was satisfied with product, justified by internal economic analysis, determined further testing to be unnecessary 12 Unit Testing: Efficiency Testing:
  • 13. Conclusion & Recommendations 13 In the end, this project delivered: 1. A functionally complete tool that can be a replacement for the current code configurator 2. Systematic workflow that reduces future product development time by automating UI configuration of the software Upon the completion of current project, here’s a few recommendations: 1. Expanding upon the configuration UI file to a database for product development. 2. Implementing error reporting feature by creating a relational database
  • 15. Appendix #1: Statistical analysis on setting use frequency and use correlation between settings Research Questions How many of the settings are being actively used? What settings are being actively used in the final product? What kind of categories can we put settings into? How are the settings related to each other? Available information 40 final project setting files ● ~900 individual settings ● On / Off Available Statistics Occurrence - The number of times a specific setting is used Correlation - The number of times a specific setting is used when another setting is used As shown in the graph above, 80.4% of the option flag settings are used 0%-10% of the time in the 40 GFI.INI files that were sampled. This shows that there are a good amount of option flag settings that can be categorized as redundant. This also suggests that the correlation findings are inconclusive because over 80% of the data points are going to be indeterminate (how do you compare 0% against any other occurrence probability) Analysis 15
  • 16. Appendix #2: Data Categorization Tradeoff Analysis Reorganization priority (in order of importance): ● Categories should be meaningful to the user ● Categories should be mutually exclusive and complete with each other ● Each level of categories should have fewer entries than present levels (57 - category level, 16 - base level) Categorization Status Reasoning Failed criteria Use frequency Rejected 80% of the entries are only used 0- 10% the time, cannot have even categorization Each level of categories should have fewer entries than present User preference (hardware) Rejected Meaningful, but base-level has 30-40 entries on average Each level of categories should have fewer entries than present Statistical correlation based on use frequency Rejected The correlation results has an absolute error up to 60%, may lead to bad categories Categories should be meaningful to the user User preference (functionality) Rejected Logistically impossible to finish within project time-frame 16

Editor's Notes

  1. Main issue: Complexity Identified prob that yields complexity: Data structure Why does that yields complexity: Chronological order of dev process + Hardware constraint Soln: Recategorization Why not on the current tool?: bc of tool architecture What about tool architecture?: Hardcoded - Front/Back not separated What then?: Building a new tool with recategorized settings For what: Reduce complexity -> Reduce rework and error rate We cannot change the current file structured. Therefore we can only modify the poor architecture. We cannot apply the recategorized settings mention that we can't change this as it's interpreted by the farebox as well and we need to maintain backwards compatibility