An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach
description
Transcript of An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach
![Page 1: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/1.jpg)
AN ADAPTIVE SORTING FEATURE FOR HOPE
ADAPTIVE AHP AND
USER MODEL DRIVEN APPROACH
Team Think For You
![Page 2: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/2.jpg)
Outline Introduction Process Requirements Engineering Architecture Detailed Design Testing Demo Extensibility Conclusions
![Page 3: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/3.jpg)
IntroductionThe Problem:
Who’s Affected?
Goals (How we solve the problem)Capture multiple types of contextual info. about user’s
past behaviorSort options using a combination of captured info. Display options in order of user’s most likely need
Too many options/config. settings in HOPE
![Page 4: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/4.jpg)
Our Process (Re)planning, Risk mitigation, issues resolution,
SDM, tradeoff analysis, WBS, SVN SW Dev. Process
Interleaving, Iterative (Agile) and IncrementalFluid Teams(RE, Arch, DD, Implementation, QA) 2 Iterations:
Iteration Activities
1 • Problem + Domain analysis• POC with 1 usage stat. type (frequency)
2 • 2 usage stat. type (frequency + time of day)• Adaptive AHP, integration and testing
![Page 5: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/5.jpg)
Requirements (Analysis) – One Example
![Page 6: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/6.jpg)
ArchitectureTeam TFY used Software Architecture Analysis Method (SAAM):
![Page 7: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/7.jpg)
ArchitectureThree options considered:
1. Delegate the responsibility of filtering things and actions to a module that wraps data access and updates statistics
2. Refactor existing architecture into a layered configuration, then extend business logic layer for context awareness
3. Map all the points of change in the current system to extend with context-sorting logic
![Page 8: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/8.jpg)
ArchitectureCandidate evaluation
Criterion\Option Option 1Delegate
Option 2Refactor
Option 3Map
Maintainability(e.g., understandability, ease of updating) + ++ --Integrability(e.g., in terms of concurrent features under development)
++ -- +-Implementation Cost(e.g., time) + -- -Extensibility(e.g. add, change, future growth) + ++ --Configurability(e.g., add settings to control behavior of feature) ++ ++ --
![Page 9: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/9.jpg)
ArchitectureCandidate evaluation
Criterion\Option Option 1Delegate
Option 2Refactor
Option 3Map
Maintainability(e.g., understandability, ease of updating) + ++ --Integrability(e.g., in terms of concurrent features under development)
++ -- +-Implementation Cost(e.g., time) + -- -Extensibility(e.g. add, change, future growth) + ++ --Configurability(e.g., add settings to control behavior of feature) ++ ++ --
![Page 10: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/10.jpg)
ArchitectureStatic perspective
UML component diagram
![Page 11: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/11.jpg)
ArchitectureInteraction perspective
UML sequence diagram(for things and verbs after user clicks on sort button)
![Page 12: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/12.jpg)
ArchitectureInteraction perspective
UML sequence diagram(for things and verbs after icon click event, upon icon selection)
![Page 13: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/13.jpg)
Detailed Design Methodology
OO modeling, SDM, issue and conflict resolution Scientific research Design patterns
Adapter, Template, Strategy, Observer... Design principles
High cohesion (single responsibility) and low coupling (data dependency)
![Page 14: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/14.jpg)
Detailed Designcom.utdallas.hope.contextualizer
com.utdallas.hope :: ThingsActivity
com.utdallas.hope :: Things
+onIconClick(in table : string, in icon : string)#updateStatistics(in table : string, in selectedIcon : string)
#db : SQLiteDatabase
Contextualizer
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
Criterion
+sort(in iconInfos : List<IconInfo>, in table : string) : List<IconInfo>+sort(in iconInfos : List<IconInfo>, in table : string, in subtable : string) : List<IconInfo>+update(in iconInfos : List<IconInfo>, in table : string, in selectedIcon : string)+update(in iconInfos : List<IconInfo>, in table : string, in subtable : string, in selectedIcon : string)
-db : SQLiteDatabase
AHP
+id : string+name : string+icon : string+text : string+statistics
IconInfo
1
1
+findAllThings() : List<IconInfo>+findAllThingsBy(in action : string) : List<IconInfo>+onVerbsThingsClick(in verb : string, in thing : string)#updateStatistics(in table : string, in selectedIcon : string)
ThingsContextualizer+findAllActions() : List<IconInfo>+findAllActionsBy(in thing : string) : List<IconInfo>+findAllCommentsBy(in thing : string) : List<IconInfo>+onThingsVerbsClick(in thing : string, in verb : string)+onThingCommentClick(in thing : string, in comment : string)#updateStatistics(in table : string, in selectedIcon : string)
ActionsContextualizer
+isEnabled : bool+ timeBlock1StartHour : short
ContextualizerConfiguration
1
#config
1
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
TimeCriterion
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
FrequencyCriterion
com.utdallas.hope :: ActionsActivity
com.utdallas.hope :: Actions
1
1
1
#AHP
1
1 1
1 1
1
1
11
#criterionArray1
*
![Page 15: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/15.jpg)
Detailed Design Adapter
Client+FindAll(in table)
Contextualizer
+sort(in table, in iconsInfos) : List<IconInfo>
AHP
AHP.sort(...)
![Page 16: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/16.jpg)
Detailed Designcom.utdallas.hope.contextualizer
com.utdallas.hope :: ThingsActivity
com.utdallas.hope :: Things
+onIconClick(in table : string, in icon : string)#updateStatistics(in table : string, in selectedIcon : string)
#db : SQLiteDatabase
Contextualizer
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
Criterion
+sort(in iconInfos : List<IconInfo>, in table : string) : List<IconInfo>+sort(in iconInfos : List<IconInfo>, in table : string, in subtable : string) : List<IconInfo>+update(in iconInfos : List<IconInfo>, in table : string, in selectedIcon : string)+update(in iconInfos : List<IconInfo>, in table : string, in subtable : string, in selectedIcon : string)
-db : SQLiteDatabase
AHP
+id : string+name : string+icon : string+text : string+statistics
IconInfo
1
1
+findAllThings() : List<IconInfo>+findAllThingsBy(in action : string) : List<IconInfo>+onVerbsThingsClick(in verb : string, in thing : string)#updateStatistics(in table : string, in selectedIcon : string)
ThingsContextualizer+findAllActions() : List<IconInfo>+findAllActionsBy(in thing : string) : List<IconInfo>+findAllCommentsBy(in thing : string) : List<IconInfo>+onThingsVerbsClick(in thing : string, in verb : string)+onThingCommentClick(in thing : string, in comment : string)#updateStatistics(in table : string, in selectedIcon : string)
ActionsContextualizer
+isEnabled : bool+ timeBlock1StartHour : short
ContextualizerConfiguration
1
#config
1
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
TimeCriterion
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
FrequencyCriterion
com.utdallas.hope :: ActionsActivity
com.utdallas.hope :: Actions
1
1
1
#AHP
1
1 1
1 1
1
1
11
#criterionArray1
*
![Page 17: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/17.jpg)
Detailed Design Template
+onIconClick(in table : string, in icon : string)#updateStatistics(in table : string, in selectedIcon : string)
Contextualizer
#updateStatistics(in table : string, in selectedIcon : string)
ThingsContextualizer
#updateStatistics(in table : string, in selectedIcon : string)
ActionsContextualizer
...updateStatistics(...)...
![Page 18: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/18.jpg)
Detailed Designcom.utdallas.hope.contextualizer
com.utdallas.hope :: ThingsActivity
com.utdallas.hope :: Things
+onIconClick(in table : string, in icon : string)#updateStatistics(in table : string, in selectedIcon : string)
#db : SQLiteDatabase
Contextualizer
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
Criterion
+sort(in iconInfos : List<IconInfo>, in table : string) : List<IconInfo>+sort(in iconInfos : List<IconInfo>, in table : string, in subtable : string) : List<IconInfo>+update(in iconInfos : List<IconInfo>, in table : string, in selectedIcon : string)+update(in iconInfos : List<IconInfo>, in table : string, in subtable : string, in selectedIcon : string)
-db : SQLiteDatabase
AHP
+id : string+name : string+icon : string+text : string+statistics
IconInfo
1
1
+findAllThings() : List<IconInfo>+findAllThingsBy(in action : string) : List<IconInfo>+onVerbsThingsClick(in verb : string, in thing : string)#updateStatistics(in table : string, in selectedIcon : string)
ThingsContextualizer+findAllActions() : List<IconInfo>+findAllActionsBy(in thing : string) : List<IconInfo>+findAllCommentsBy(in thing : string) : List<IconInfo>+onThingsVerbsClick(in thing : string, in verb : string)+onThingCommentClick(in thing : string, in comment : string)#updateStatistics(in table : string, in selectedIcon : string)
ActionsContextualizer
+isEnabled : bool+ timeBlock1StartHour : short
ContextualizerConfiguration
1
#config
1
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
TimeCriterion
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
FrequencyCriterion
com.utdallas.hope :: ActionsActivity
com.utdallas.hope :: Actions
1
1
1
#AHP
1
1 1
1 1
1
1
11
#criterionArray1
*
![Page 19: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/19.jpg)
Detailed Design Strategy
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
Criterion
+sort(in iconInfos : List<IconInfo>, in table : string) : List<IconInfo>+update(in iconInfos : List<IconInfo>, in table : string, in selectedIcon : string)
AHP
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
TimeCriterion
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
FrequencyCriterion
#criterionArray1
*
Concrete strategies
![Page 20: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/20.jpg)
Detailed Designcom.utdallas.hope.contextualizer
com.utdallas.hope :: ThingsActivity
com.utdallas.hope :: Things
+onIconClick(in table : string, in icon : string)#updateStatistics(in table : string, in selectedIcon : string)
#db : SQLiteDatabase
Contextualizer
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
Criterion
+sort(in iconInfos : List<IconInfo>, in table : string) : List<IconInfo>+sort(in iconInfos : List<IconInfo>, in table : string, in subtable : string) : List<IconInfo>+update(in iconInfos : List<IconInfo>, in table : string, in selectedIcon : string)+update(in iconInfos : List<IconInfo>, in table : string, in subtable : string, in selectedIcon : string)
-db : SQLiteDatabase
AHP
+id : string+name : string+icon : string+text : string+statistics
IconInfo
1
1
+findAllThings() : List<IconInfo>+findAllThingsBy(in action : string) : List<IconInfo>+onVerbsThingsClick(in verb : string, in thing : string)#updateStatistics(in table : string, in selectedIcon : string)
ThingsContextualizer+findAllActions() : List<IconInfo>+findAllActionsBy(in thing : string) : List<IconInfo>+findAllCommentsBy(in thing : string) : List<IconInfo>+onThingsVerbsClick(in thing : string, in verb : string)+onThingCommentClick(in thing : string, in comment : string)#updateStatistics(in table : string, in selectedIcon : string)
ActionsContextualizer
+isEnabled : bool+ timeBlock1StartHour : short
ContextualizerConfiguration
1
#config
1
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
TimeCriterion
+normalizeRatings(in iconInfos : List<IconInfo>) : List<IconInfo>+getIndex(in iconInfos : List<IconInfo>, in selectedIcon : string) : int
FrequencyCriterion
com.utdallas.hope :: ActionsActivity
com.utdallas.hope :: Actions
1
1
1
#AHP
1
1 1
1 1
1
1
11
#criterionArray1
*
![Page 21: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/21.jpg)
Detailed Design
![Page 22: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/22.jpg)
Detailed Design
![Page 23: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/23.jpg)
Testing Test plan Criteria for testing completeness
SRS Techniques:
Code InspectionScenario based white-box verification
○ detailed design sequence diagramsFunctional testingFormal verification using Alloy model finder
![Page 24: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/24.jpg)
DEMO
![Page 25: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/25.jpg)
Update ...
![Page 26: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/26.jpg)
Sort
![Page 27: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/27.jpg)
Conclusion Our Contributions to HOPE:
Use of contextual information to sort icons in order of user's most likely need
refactored HOPE code to make it more maintainableformal model checking to test aspects of our modeldesign is easily extensible to allow for future addition
of more types of contextual information as criteria in the sorting
Other Applications (Frequency and Time)TV ListingsMusic Playlist
![Page 28: An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach](https://reader034.fdocuments.in/reader034/viewer/2022051420/56815f55550346895dce3554/html5/thumbnails/28.jpg)
Questions?
?