an adaptive sorting feature for hope adaptive ahp and user model driven approach

28
AN ADAPTIVE SORTING FEATURE FOR HOPE ADAPTIVE AHP AND USER MODEL DRIVEN APPROACH Team Think For You

Upload: woody

Post on 16-Feb-2016

39 views

Category:

Documents


0 download

DESCRIPTION

Team Think For You. An adaptive Sorting Feature for HOPE adaptive AHP and User Model Driven Approach. Outline. Introduction Process Requirements Engineering Architecture Detailed Design Testing Demo Extensibility Conclusions. Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: An  adaptive Sorting Feature for HOPE adaptive AHP  and  User  Model Driven Approach

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

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

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

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

Requirements (Analysis) – One Example

Page 6: An  adaptive Sorting Feature for HOPE adaptive AHP  and  User  Model Driven Approach

ArchitectureTeam TFY used Software Architecture Analysis Method (SAAM):

Page 7: An  adaptive Sorting Feature for HOPE adaptive AHP  and  User  Model Driven Approach

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

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

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

ArchitectureStatic perspective

UML component diagram

Page 11: An  adaptive Sorting Feature for HOPE adaptive AHP  and  User  Model Driven Approach

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

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

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

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

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

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

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

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

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

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

Detailed Design

Page 22: An  adaptive Sorting Feature for HOPE adaptive AHP  and  User  Model Driven Approach

Detailed Design

Page 23: An  adaptive Sorting Feature for HOPE adaptive AHP  and  User  Model Driven Approach

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

DEMO

Page 25: An  adaptive Sorting Feature for HOPE adaptive AHP  and  User  Model Driven Approach

Update ...

Page 26: An  adaptive Sorting Feature for HOPE adaptive AHP  and  User  Model Driven Approach

Sort

Page 27: An  adaptive Sorting Feature for HOPE adaptive AHP  and  User  Model Driven Approach

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

Questions?

?