an nfr pattern approach to dealing with non-with non ...supakkul/papers/sam...model elements not...
TRANSCRIPT
An NFR Pattern Approach to Dealing An NFR Pattern Approach to Dealing An NFR Pattern Approach to Dealing An NFR Pattern Approach to Dealing with Nonwith Nonwith Nonwith Non----Functional RequirementsFunctional RequirementsFunctional RequirementsFunctional Requirements
Sam SupakkulTom HillLawrence ChungThe Univ. of Texas at Dallas
Julio CSP LeitePUC-Rio, Brazil
Thein Than TunThe Open University, UK
Presenter: Sam Supakkul
OutlineOutlineOutlineOutlineMotivationThe Approach
NFR PatternsPattern OrganizationPattern ReuseTool Support
Case StudyConclusion
Authors:Is it beautiful to you?
Dealing with Dealing with Dealing with Dealing with NFRsNFRsNFRsNFRs involves many concepts and involves many concepts and involves many concepts and involves many concepts and activitiesactivitiesactivitiesactivities
!!Aesthetic++
Cost
[softgoal] [side-effect]
[alternatives]
[selection]Layered shells Dome Pyramid
--
[side-effect]
! Memorable
+++ ++ -
++-++
[criticalityl]
++ Make + Help -- Break - Hurt
Some aspects of Some aspects of Some aspects of Some aspects of NFRsNFRsNFRsNFRs are achieved by are achieved by are achieved by are achieved by mitigating known problemsmitigating known problemsmitigating known problemsmitigating known problems
!! Security of credit card info
Break-in wireless networkMasquerade user loginSteal credit card info
- / --
Cost++/+/-/--Password encryptionBiometric authentication2-factor authentication
- / --!Trustworthiness
++ Make + Help -- Break - Hurt
++/+/-/--
Having insufficient knowledge of Having insufficient knowledge of Having insufficient knowledge of Having insufficient knowledge of Having insufficient knowledge of Having insufficient knowledge of Having insufficient knowledge of Having insufficient knowledge of NFRsNFRsNFRsNFRsNFRsNFRsNFRsNFRs can lead to can lead to can lead to can lead to can lead to can lead to can lead to can lead to dire consequencesdire consequencesdire consequencesdire consequencesdire consequencesdire consequencesdire consequencesdire consequences
(2(2ndnd) Biggest credit card ) Biggest credit card thefttheft45.7M credit cards stolen45.7M credit cards stolen$20M in fraudulent transactions$20M in fraudulent transactions
TJX used security measuresTJX used security measuresID/password authenticationID/password authenticationData encryptionData encryption
1. Break-in wireless network2. Masquerade user login3. Steal credit card info
TJX unable to prevent the hacker But TJX did not know enoughBut TJX did not know enoughPotential security problemsPotential security problemsApplicable mitigationsApplicable mitigationsProper tradeoff among Proper tradeoff among NFRsNFRs
Having sufficient knowledge of Having sufficient knowledge of Having sufficient knowledge of Having sufficient knowledge of Having sufficient knowledge of Having sufficient knowledge of Having sufficient knowledge of Having sufficient knowledge of NFRsNFRsNFRsNFRsNFRsNFRsNFRsNFRs is difficult is difficult is difficult is difficult is difficult is difficult is difficult is difficult because NFR knowledge isbecause NFR knowledge isbecause NFR knowledge isbecause NFR knowledge isbecause NFR knowledge isbecause NFR knowledge isbecause NFR knowledge isbecause NFR knowledge isDifficult to captureDifficult to capture
Problems, solutions, domainProblems, solutions, domainComplete, correctComplete, correctConceptual modeling and reasoningConceptual modeling and reasoning
Difficult to organizeDifficult to organizeCataloging knowledgeCataloging knowledgeRelating similar knowledgeRelating similar knowledge
General General –– SpecificSpecificClass Class –– InstanceInstance
Combining knowledgeCombining knowledgeDifficult to reuseDifficult to reuse
Choosing appropriate knowledgeChoosing appropriate knowledge(Re(Re--)creating visual models)creating visual models
This talk presents a patternThis talk presents a patternThis talk presents a patternThis talk presents a pattern----based approach to based approach to based approach to based approach to capturing, organizing, and reusing NFR knowledgecapturing, organizing, and reusing NFR knowledgecapturing, organizing, and reusing NFR knowledgecapturing, organizing, and reusing NFR knowledge
Objective patternObjective patternObjective patternObjective pattern Problem patternProblem patternProblem patternProblem pattern
Alternatives patternAlternatives patternAlternatives patternAlternatives pattern
Selection patternSelection patternSelection patternSelection patternCapturing
Organizing
Reusing
classificationinstantiation
generalization
specialization
aggregation
decomposition
Tool support
1234
5 6 7
Capturing
Organizing
ReusingCapturing
Organizing
Tool support
ReusingCapturing
Organizing
4 kinds of NFR patterns for capturing different kinds 4 kinds of NFR patterns for capturing different kinds 4 kinds of NFR patterns for capturing different kinds 4 kinds of NFR patterns for capturing different kinds of NFR knowledgeof NFR knowledgeof NFR knowledgeof NFR knowledge
Objective patternObjective patternObjective patternObjective pattern Problem patternProblem patternProblem patternProblem pattern
Alternatives patternAlternatives patternAlternatives patternAlternatives pattern
Selection patternSelection patternSelection patternSelection pattern 1234
5 6 7
Capturing
An objective pattern captures a definition of an An objective pattern captures a definition of an An objective pattern captures a definition of an An objective pattern captures a definition of an NFR as a NFR as a NFR as a NFR as a softgoalsoftgoalsoftgoalsoftgoal (and sub(and sub(and sub(and sub----goals) to be achievedgoals) to be achievedgoals) to be achievedgoals) to be achieved
An objective pattern
Name: Name: Name: Name: Name: Name: Name: Name: FISMA Security ObjectivesFISMA Security Objectives
CredentialCredentialCredentialCredentialCredentialCredentialCredentialCredentialSources:Sources: US FISMA Act of 2002US FISMA Act of 2002Authors:Authors: Sam SupakkulSam SupakkulEndorsements:Endorsements:Known uses:Known uses: US government agenciesUS government agencies
Applicability Applicability Applicability Applicability Applicability Applicability Applicability Applicability (5W2H questions)(5W2H questions)Domain Domain (Who)(Who):: GovernmentGovernmentTopic Topic (What)(What):: Information, dataInformation, dataType Type (Why)(Why):: SecuritySecurityPhase Phase (When)(When):: RequirementsRequirementsArtifact Artifact (Where)(Where):: World World [per the WRSPM ref. model][per the WRSPM ref. model]Application Application (How)(How):: AutomatedAutomatedImplication Implication (How much)(How much):: RegulationRegulation
KnowledgeKnowledgeKnowledgeKnowledgeKnowledgeKnowledgeKnowledgeKnowledge
Demo video: Demo video: Demo video: Demo video: applying an objective patternapplying an objective patternapplying an objective patternapplying an objective pattern
Tools usedThe NFR Pattern Assistant (utdallas.edu/~supakkul/tools/NFRPassist)The RE-Tools (utdallas.edu/~supakkul/tools/RE-Tools)
In the catalog
During the requirements engineering of a project
A problem pattern captures softA problem pattern captures softA problem pattern captures softA problem pattern captures soft----problems or problems or problems or problems or obstacles to achieving an NFR obstacles to achieving an NFR obstacles to achieving an NFR obstacles to achieving an NFR softgoalsoftgoalsoftgoalsoftgoal
A problem pattern
An alternatives pattern captures alternative means An alternatives pattern captures alternative means An alternatives pattern captures alternative means An alternatives pattern captures alternative means or alternative solutions with sideor alternative solutions with sideor alternative solutions with sideor alternative solutions with side----effect informationeffect informationeffect informationeffect information
An alternative-solutions pattern
+++
Trustworthiness [Security]
Retina authentication
Fingerprint authentication
!w(!)=0.5
w(+)=0.5 w(++)=1.0
+++
Trustworthiness [Security]
Retina authentication
Fingerprint authentication
!r(++!)=6r(+!)=7
w=0.25+... w=0.5+...
r=7+... r=6+...
Weight-based quantitative selection
RankRankRankRank----basedbasedbasedbased qualitative selection12
345 6 7
WeightWeightWeightWeight----basedbasedbasedbasedSelectionSelectionSelectionSelection ==== HighestHighestHighestHighest cumulative weightweightweightweight
weight(Fingerprint) = w(!Trust.) x w(+) + …= 0.25 + …
Widely used, but subjective
Rank-basedSelection = Bestestestest cumulative rankingrankingrankingranking
rank(Fingerprint) = r(+!Trust.) + …= 7 + …
Less subjective, but need a ranking scale
alternatives
A selection pattern captures A selection pattern captures A selection pattern captures A selection pattern captures an application independent selection schemean application independent selection schemean application independent selection schemean application independent selection scheme
Demo video: Demo video: Demo video: Demo video: applying a weightapplying a weightapplying a weightapplying a weight----based selection patternbased selection patternbased selection patternbased selection pattern
+W+W
Tools usedThe NFR Pattern Assistant (utdallas.edu/~supakkul/tools/NFRPassist)The RE-Tools (utdallas.edu/~supakkul/tools/RE-Tools)
Before
After
Patterns may be organized along the Patterns may be organized along the Patterns may be organized along the Patterns may be organized along the generalization, aggregation, and classification dim. generalization, aggregation, and classification dim. generalization, aggregation, and classification dim. generalization, aggregation, and classification dim.
Objective patternObjective patternObjective patternObjective pattern Problem patternProblem patternProblem patternProblem pattern
Alternatives patternAlternatives patternAlternatives patternAlternatives pattern
Selection patternSelection patternSelection patternSelection patternCapturing
Organizing
Reusing
classificationinstantiation
generalization
specialization
aggregation
decomposition
Tool support
1234
5 6 7
Capturing
Organizing
ReusingCapturing
Organizing
Tool support
ReusingCapturing
Organizing
A specialized pattern captures more specific A specialized pattern captures more specific A specialized pattern captures more specific A specialized pattern captures more specific knowledge than that of the generalized patternknowledge than that of the generalized patternknowledge than that of the generalized patternknowledge than that of the generalized pattern
R1
R2
R3
R4
P2
super-pattern sub-pattern
R1'
R2'
R5
P1
P1 specializes P2
Generalization
Aggregation
Classification
[Payment Card Industry][US FISMA Law]
The specialized pattern is more specific The specialized pattern is more specific The specialized pattern is more specific The specialized pattern is more specific in breadth or in depthin breadth or in depthin breadth or in depthin breadth or in depth
Payment Card Industry (PCI):Payment Card Industry (PCI):Security = ConfidentialitySecurity = Confidentiality
US Law:US Law:Security = Confidentiality, Integrity, Avail.Security = Confidentiality, Integrity, Avail.
PCI concerned withPCI concerned withAccountability beyond PrivacyAccountability beyond Privacy
R2'
R5
R1
R2
R3
R4
P2
super-pattern sub-pattern
R1'
R2'
R5
P1
More specific in breadthMore specific in breadthMore specific in breadthMore specific in breadthMore specific in breadthMore specific in breadthMore specific in breadthMore specific in breadth More specific in depthMore specific in depthMore specific in depthMore specific in depthMore specific in depthMore specific in depthMore specific in depthMore specific in depth
Generalization
Aggregation
Classification
P2 P1 P2 P1
A composite pattern assembles smaller patterns to A composite pattern assembles smaller patterns to A composite pattern assembles smaller patterns to A composite pattern assembles smaller patterns to capture a larger chunk of related knowledgecapture a larger chunk of related knowledgecapture a larger chunk of related knowledgecapture a larger chunk of related knowledge
P1
P4
P3P2
P1 combines P2,P3,P4where P2 succeeds P3 and P3 succeeds P4
Generalization
Aggregation
Classification
A pattern can be used as a template to A pattern can be used as a template to A pattern can be used as a template to A pattern can be used as a template to instantiate occurrence patternsinstantiate occurrence patternsinstantiate occurrence patternsinstantiate occurrence patterns
B1 is a binding specificationO1 is a specialization of M1 or O1 is sub-goal of M1w.r.t. reference model R1
Generalization
Aggregation
Classification
Dealing with NFR knowledge is defined by 5 Dealing with NFR knowledge is defined by 5 Dealing with NFR knowledge is defined by 5 Dealing with NFR knowledge is defined by 5 operationsoperationsoperationsoperations
Objective patternObjective patternObjective patternObjective pattern Problem patternProblem patternProblem patternProblem pattern
Alternatives patternAlternatives patternAlternatives patternAlternatives pattern
Selection patternSelection patternSelection patternSelection patternCapturing
Organizing
Reusing
classificationinstantiation
generalization
specialization
aggregation
decomposition
Tool support
1234
5 6 7
Capturing
Organizing
ReusingCapturing
Organizing
Tool support
ReusingCapturing
Organizing
An actionAn actionAn actionAn action----oriented perspectiveoriented perspectiveoriented perspectiveoriented perspective
CredentialsAuthorsSourcesEndorsementsKnown UsesApplicabilityWhoWhatWhyWhenWhereHowHow much
Source Model Target Modelpatternize apply
compose
RefinementRules
PatternPatternPatternPatternoperationsoperationsoperationsoperations
ExampleExampleExampleExample
We define 25 refinement rules for tool supportWe define 25 refinement rules for tool supportWe define 25 refinement rules for tool supportWe define 25 refinement rules for tool support2 for Objective, 8 for Problem, 10 for Alternatives, 5 for Selec2 for Objective, 8 for Problem, 10 for Alternatives, 5 for Selec2 for Objective, 8 for Problem, 10 for Alternatives, 5 for Selec2 for Objective, 8 for Problem, 10 for Alternatives, 5 for Selectiontiontiontion
Objective patternObjective patternObjective patternObjective pattern Problem patternProblem patternProblem patternProblem pattern
Alternatives patternAlternatives patternAlternatives patternAlternatives pattern
Selection patternSelection patternSelection patternSelection patternCapturing
Organizing
Reusing
classificationinstantiation
generalization
specialization
aggregation
decomposition
Tool support
1234
5 6 7
Capturing
Organizing
ReusingCapturing
Organizing
Tool support
ReusingCapturing
Organizing
Refinement rules are extracted by Refinement rules are extracted by Refinement rules are extracted by Refinement rules are extracted by “patternizepatternizepatternizepatternize”and used for model transformation by and used for model transformation by and used for model transformation by and used for model transformation by “applyapplyapplyapply”
Security
Security
Confidentiality
Integrity
Availability
Privacy
ProprietaryAuthenticity Non-repudiation
Timeliness
Reliability
Transform
Before After
succeedsucceed succeed
SecuritySecurity
Confidentiality
Integrity
Availability
Confidentiality
Privacy
Proprietary
ConfidentialityIntegrity
Authenticity Non-repudiation
IntegrityAvailability
TimelinessReliability
Availability
Before After
Before After Before After Before After
NFRDecompositionRefinement rule
Extractedrule graph
Target M
Target M’
The The The The The The The The NFR Pattern AssistantNFR Pattern AssistantNFR Pattern AssistantNFR Pattern AssistantNFR Pattern AssistantNFR Pattern AssistantNFR Pattern AssistantNFR Pattern Assistant for pattern supportfor pattern supportfor pattern supportfor pattern supportfor pattern supportfor pattern supportfor pattern supportfor pattern supportThe The The The The The The The RERERERERERERERE--------ToolsToolsToolsToolsToolsToolsToolsTools for knowledge modelingfor knowledge modelingfor knowledge modelingfor knowledge modelingfor knowledge modelingfor knowledge modelingfor knowledge modelingfor knowledge modeling
capturing
organizing
reusing
StarUML
extension
framework
The NFR Pattern
Assistant
The RE-Tools
utdallas.edu/~supakkul/tools/RE-Tools
utdallas.edu/~supakkul/tools/NFRPassist
…(TBD)The i* FrameworkThe i* FrameworkThe i* FrameworkThe i* Framework KAOSKAOSKAOSKAOS Problem FramesProblem FramesProblem FramesProblem FramesThe NFR FrameworkThe NFR FrameworkThe NFR FrameworkThe NFR Framework UMLUMLUMLUML
The approach and the tools have been applied The approach and the tools have been applied The approach and the tools have been applied The approach and the tools have been applied The approach and the tools have been applied The approach and the tools have been applied The approach and the tools have been applied The approach and the tools have been applied to the TJX caseto the TJX caseto the TJX caseto the TJX caseto the TJX caseto the TJX caseto the TJX caseto the TJX case
Build for reuse
1 composite, 5 primitive
Build with reuse
Sample results Break-in wireless networkMasquerading user loginSteal credit card info
for
capture reuse
reuse knowledge from TJXin a different project
Limitations (future work)Limitations (future work)Limitations (future work)Limitations (future work)
Tool/usability relatedModel elements not captured with the original positionPattern search and selection are currently manualSome knowledge not captured (need 2 more rules)Need to support more FRs and NFRs integrated knowledgeLimited concurrently pattern sharing across groups
Approach relatedCostly and time-consuming to learn the notation and the toolNeed more case studiesNeed to support dealing with NFRs during architecture/design
Summary: The difficulty of capturing, organizing, reusing of Summary: The difficulty of capturing, organizing, reusing of Summary: The difficulty of capturing, organizing, reusing of Summary: The difficulty of capturing, organizing, reusing of NFR knowledge can be alleviated by the approachNFR knowledge can be alleviated by the approachNFR knowledge can be alleviated by the approachNFR knowledge can be alleviated by the approach
Difficult to captureDifficult to captureProblems, solutions, domainProblems, solutions, domainComplete, correctComplete, correctConceptual modeling and reasoningConceptual modeling and reasoning
Difficult to organizeDifficult to organizeCataloging knowledgeCataloging knowledgeRelating similar knowledgeRelating similar knowledge
General General –– SpecificSpecificClass Class –– InstanceInstance
Combining knowledgeCombining knowledgeDifficult to reuseDifficult to reuse
Choosing appropriate knowledgeChoosing appropriate knowledgeReRe--creating visual modelscreating visual models
Objective, problem, alternatives, selection patternsCredentialsCaptured softgoal graphs
By name, type, applicability
Specialization, composition, instantiation
Applicability infoRefinement rules, tool support
Features in the approachFeatures in the approachFeatures in the approachFeatures in the approach
Thank you… Questions & Comments?
Objective patternObjective patternObjective patternObjective pattern Problem patternProblem patternProblem patternProblem pattern
Alternatives patternAlternatives patternAlternatives patternAlternatives pattern
Selection patternSelection patternSelection patternSelection patternCapturing
Organizing
Reusing
classificationinstantiation
generalization
specialization
aggregation
decomposition
Tool support
1234
5 6 7
Capturing
Organizing
ReusingCapturing
Organizing
Tool support
ReusingCapturing
Organizing