a uml profile for goal-oriented and use case-driven representation of nfrs and frs
DESCRIPTION
A UML Profile for Goal-Oriented and Use Case-Driven Representation of NFRs and FRs. Sam Supakkul Titat Software LLC [email protected]. Lawrence Chung The University of Texas at Dallas [email protected]. Non-Functional Requirements (NFRs) crucial but inadequately addressed. - PowerPoint PPT PresentationTRANSCRIPT
A UML Profile for Goal-Oriented and Use Case-Driven
Representation of NFRs and FRs
Sam SupakkulTitat Software [email protected]
Lawrence ChungThe University of Texas at
Non-Functional Requirements (NFRs) crucial but inadequately addressed
f i b e r c u t
N e t w o r k E l e m e n t
E l e m e n t M a n a g e m e n t
S y s t e m ( E M S )
N e t w o r k E l e m e n t
N e t w o r k E l e m e n t
A l a r m F l o o d t o
E M S
Networt Element
Element Management System (EMS)
Send alarm* *
NFRs clarify/constrain FRs:
Part of EMS that collects alarms (FR) must also handle alarm flood (scalability NFR) and provide fault tolerant (high availability NFR)
But NFRs often ignored or casually addressed
FRs NFRs specified casually:1. System shall handle alarm
flood up to 5,000 alarms/sec.2. System shall be available 24x7
Problem: No traceability from NFRs to design and code
An ideal approach for addressing Non-Functional Requirements (NFRs)
1. Model NFRs in relation to FRs
2. Map integrated reqs. to analysis/design
3. Map design to code
Modeling NFRs in relation to FRs Need modeling constructs for NFRs Need framework for integrating NFRs and FRs
Proposing goal-oriented and use case driven NFRs modeling
Network Element Send alarm
Element Management System
Availability:24x7
[Supakkul and Chung, SERA 04, LNCS 05]
Scalability: handlealarm flood up to5,000 alarm/sec.
NFR softgoals associated with use case elements for context Availability
affects the entire system
Scalability affects only parts related to this communication
What to do with softgoals from the use case model?
High speedconnection
some+
Large servercapacity
some+
Higher volume[NE-Send alarm.alarm]
Sustained timeperformance[NE-Send alarm.alarm]
Buffer alarms beforeprocessing
some+
some+
Multiple smallerservers
Single largeserver
some+
some- some+
X
Scalability[NE-Send alarm.alarm]
Availability[EMS]
Apply the NFR Framework in an SIG (Softgoal Interdependency Graph)
Informal["No backupwhen the singleserver failsl"]
some+
[Mylopoulos and Chung 92, Chung et. al 2000]
NFR Softgoal
OperationalizationClaim
AND Decomposition
Satisficing Contribution
We now have some confidence of meeting the NFRs!
1. Refine NFR softgoals2. Explore design alternatives (operationalizations)
4. Make trade-offs analysis and finalize design decisions3. Record arguments to justify decisions
Naming convention = Type [Topic]Type = Availability, Topic = EMS
Questions for analysts and tool makers
Network Element Send alarm
Scalability: handlealarm flood up to5,000 alarm/sec.
Element Management System
Availability:24x7
Where else in the use case model I can associate NFRs?
How do I support this integration in my UML tool ?
Scalability[NE-Send alarm.alarm]
High speedconnection
X
some+
some+
Higher volume[NE-Send alarm.alarm]
Sustained timeperformance[NE-Send alarm.alarm]
Large servercapacity
Availability[EMS]
Multiple smallerservers
Single largeserver
some+
some- some+ some+
Buffer alarms beforeprocessing
some+
Informal["No backupwhen the singleserver failsl"]
some+
Can I model this?NFR1
NFR2 NFR3 NFR4
Operationalization1
Operationalization2
Operationalization3
Operationalization4
- +
How is the NFR Framework integrated with UML?
Answers are in the proposed UML profile
What is UML profile? Standard UML extension mechanism For specializing UML for different purposes By defining
metamodel for a specific purpose (e.g. J2EE, NFRs ) well-formedness rules to enforce semantics extension points in the UML metamodel
Advantages of UML profile? Precise description of concepts (via metamodel) More friendly than formalization Automatically supported by UML tools (via XMI)
Answering the question: Can I model this?
NFR1
NFR2 NFR3 NFR4
Operationalization1
Operationalization2
Operationalization3
Operationalization4
- +
{or}
“OR” DecompositionCT (Contribution)
well-formedness rule in OCL (Object Control Language)
NFRSoftgoal(Proposition)
OperationalizinSG
“AND” DecompositionCT (Contibution)
{complete, disjoint} means that Contribution cannot be both
DecompositionCT and SatisficingCT
means that the type of parent and offspring must be the same for a decomposition
means that NFR1 can be parent of at most one
Decomposition
Confusing! This “OR” DecompositionCT is also 2
SatisficingCT’s at the same time
Metamodel representing concepts in the NFR Framework
AmbiguousNFR1 or (NFRs and NFR 4) ?(NFR2 or NFR3) and NFR4 ?
Operationalization is a means to achieve NFR not a refined NFR
Answering the question: How is the NFR Framework integrated with UML?1. Define metamodel for the NFR Framework2. Define well-formedness rules in OCL3. Define extension points in the UML metamodel
{or}
Softgoal::SIG Profile
√√
→
Topic extends Element
Softgoal extends Class
Type extends Class
Contribution extends AssociationClass
SIG extends Artifact
Proposition extends Element
Answering the question: where else in the use case model I can associate NFRs
Active Actor Use Case
characteristics of orconstraint placed by the
active actor
user interface,access,
communicationrelated NFRs function related
NFRs
Subject
global NFRs, orsystem related
NFRs
Passive Actor
characteristics of orconstraint placed on the
passive actor
NFRs can be associated with• Actor• Use case• Actor-Use case-Communication• Subject (system boundary)
Context UsecaseTopic inv:self.base.classifier.isKindOf(Usecase) orself.base.classifier.isKindOf(Actor) orself.base.classifier.isKindOf(Classifier) orself.base.classifier.isKindOf(ActorUsecaseCommunication) enforced by OCL
Availability[EMS]
How do we use the profile to model NFRs with UML?
Timeliness[AmbulanceDispatch]
Timeliness[AmbulanceDispatch,IncidentPrioritization]
Timeliness[AmbulanceDispatch,AmbAsgnmnt]
Standard support via XMI: classes with stereotypes
Customize to display SIG
Reviewing the approach for addressing NFRs
Problem: NFRs crucial but ignored or casually addressed
Approach:1. Model NFRs in relation to FRs
Use the NFR Framework to model NFRs Integrate NFRs with FRs in the use case model
2. Map integrated reqs. to analysis/design
3. Map design to code
√
ConclusionsContributions: A UML profile that• uses metamodel to semi-formally describe the NFR
Framework• integrates the NFR Framework with UML• helps prevent modeling errors
Future work: • Map the UML profile to XMI• Evaluate with actual UML tools• Framework for mapping the integrated requirements
to design and code
A UML Profile for Goal-Oriented and Use Case-Driven
Representation of NFRs and FRs
Sam SupakkulTitat Software [email protected]
Lawrence ChungThe University of Texas at
Thank you!