140 likes | 155 Views
Proposing a goal-oriented approach to model Non-Functional Requirements (NFRs) in relation to Functional Requirements (FRs) for traceability in design and code. Explore the NFR Framework for integration in UML.
E N D
A UML Profile for Goal-Oriented and Use Case-Driven Representation of NFRs and FRs Sam Supakkul Titat Software LLC ssupakkul@ieee.org Lawrence Chung The University of Texas at Dallas chung@utdallas.edu
Non-Functional Requirements (NFRs) crucial but inadequately addressed 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: • System shall handle alarm flood up to 5,000 alarms/sec. • System shall be available 24x7 Problem: No traceability from NFRs to design and code
An ideal approach for addressing Non-Functional Requirements (NFRs) • Model NFRs in relation to FRs • Map integrated reqs. to analysis/design • 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 NFR softgoals associated with use case elements for context Availability affects the entire system Scalability affects only parts related to this communication [Supakkul and Chung, SERA 04, LNCS 05]
What to do with softgoals from the use case model? Apply the NFR Framework in an SIG (Softgoal Interdependency Graph) 1. Refine NFR softgoals 2. Explore design alternatives (operationalizations) 3. Record arguments to justify decisions 4. Make trade-offs analysis and finalize design decisions We now have some confidence of meeting the NFRs! NFR Softgoal Naming convention = Type [Topic] Type = Availability, Topic = EMS AND Decomposition Claim Operationalization Satisficing Contribution [Mylopoulos and Chung 92, Chung et. al 2000]
Questions for analysts and tool makers • Can I model this? • Where else in the use case model I can associate NFRs? • How do I support this integration in my UML tool ? • 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? “OR” DecompositionCT (Contribution) NFRSoftgoal (Proposition) well-formedness rule in OCL (Object Control Language) “AND” DecompositionCT (Contibution) Ambiguous NFR1 or (NFRs and NFR 4) ? (NFR2 or NFR3) and NFR4 ? means that the type of parent and offspring must be the same for a decomposition Operationalization is a means to achieve NFR not a refined NFR means that NFR1 can be parent of at most one Decomposition {complete, disjoint} means that Contribution cannot be both DecompositionCT and SatisficingCT Metamodel representing concepts in the NFR Framework OperationalizinSG Confusing! This “OR” DecompositionCT is also 2 SatisficingCT’s at the same time {or}
Answering the question: How is the NFR Framework integrated with UML? √ • Define metamodel for the NFR Framework • Define well-formedness rules in OCL • Define extension points in the UML metamodel √ → SIG extends Artifact Proposition extends Element Softgoal extends Class Type extends Class Contribution extends AssociationClass Topic extends Element
Answering the question: where else in the use case model I can associate NFRs • NFRs can be associated with • Actor • Use case • Actor-Use case-Communication • Subject (system boundary) Context UsecaseTopic inv: self.base.classifier.isKindOf(Usecase) or self.base.classifier.isKindOf(Actor) or self.base.classifier.isKindOf(Classifier) or self.base.classifier.isKindOf(ActorUsecaseCommunication) enforced by OCL
How do we use the profile to model NFRs with UML? Customize to display SIG Standard support via XMI: classes with stereotypes
Reviewing the approach for addressing NFRs Problem: NFRs crucial but ignored or casually addressed Approach: • Model NFRs in relation to FRs • Use the NFR Framework to model NFRs • Integrate NFRs with FRs in the use case model • Map integrated reqs. to analysis/design • Map design to code √
Conclusions • Contributions: • 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 Supakkul Titat Software LLC ssupakkul@ieee.org Lawrence Chung The University of Texas at Dallas chung@utdallas.edu Thank you!