checklists support completeness, the priorization questionnairesupports the focussedness of the NFRs.• a template, which embeds use cases into a full-fledgedrequirements document and provides specific placesfor documenting NFRs. This template supports traceabilityfrom NFRs to FRs, completeness and focussedness.• the use of rationales to justify each NFR. Using rationalessupports minimality of the set of NFRs.The paper is structured as follows. In Section 2, wesketch our terminology and explain the notation of thequality model. Then, we present our approach by way ofan example. Section 4 summarizes our experience andSection 5 discusses related work. We conclude <strong>with</strong> anoutlook on future work.2. TerminologyThis section describes the foundation of our approach.Subsection 2.1 points out a metamodel that describes thebasic concepts of our approach. Subsection 2.2 gives anoverview on the “quality model”, which instantiates partsof the metamodel.2.1. MetamodelThe metamodel (see Figure 1) describes the main conceptsof our approach. Our experience showed, that certaindecisions have to be made during the elicitation ofNFRs (e.g. does a quality aspect affect a user task, orrather AOs?). The concepts described in the metamodelsupport these decisions. In the following, we explain themost important elements.• A quality attribute (QA) is a non-functional characteristicof a system, user task, system task, or organization.Quality attributes of the organization include developmentprocess specific aspects.The distinction between different types of qualityattributes is important for our elicitation process. Eachtype of quality attribute is elicited differently (see Section3). QAs can be refined into further QAs. In addition,QAs can have positive or negative influences oneach other. A more detailed description of the types ofQAs and their relationships can be found in Section2.2.• A system (e.g., “wireless control and monitor system”)can be refined into a set of subsystems (e.g., “wirelessnetwork”, “mobile device”). Architectural requirements(e.g., “the system shall have a database”) constrainthe system.• We distinguish between two types of tasks: user tasksand system tasks. <strong>Use</strong>r tasks are tasks, a certain userhas to perform. They are supported by the system(e.g., “monitoring of certain machines”), but includesome user involvement. System tasks are tasks the systemperforms. In contrast to user tasks, the user is notinvolved in system tasks. Tasks can be refined intofurther tasks. <strong>Use</strong>r tasks can be refined into more finegraineduser tasks. Furthermore, user tasks can be refinedinto parts carried out by the user and systemtasks (e.g., a user task “monitoring machine x” is refinedinto a set of system tasks such as “system displaysalarm message if machine runs out of filling”).A task is described by one or more FRs.refined intoTaskdescribes1*1refined into11..*Organization<strong>Use</strong>r TaskSystem TaskSystem2..*constrainsFunctional Requirement1111*****OrganizationQuality Attribute<strong>Use</strong>r TaskQuality AttributeSystemTaskQuality AttributeSystemQuality AttributeArchitectural RequirementRequirement*Meansachieved by1refined into**influencesQuality Attribute* 1measured by*has influence on*constrains*1 **Non-functional Requirement1..*justifies1*1..*1..*MetricdeterminesValueRationale1 1..*Figure 1: The metamodel
• A NFR describes a certain value (or value domain) fora QA that should be achieved in a specific project.The NFR constraints a QA by determining a value fora metric associated <strong>with</strong> the QA. For example, theNFR “The database of our new system shall handle1000 queries per second.” constraints the QA “workloadof database”. The value is determined based onan associated metric “Number of jobs per time unit”.For each NFR, a Rationale states reasons for its existence(e.g., “the user will be unsatisfied if it takesmore than 2 seconds to display alarm message”).• We distinguish problem-oriented refinement (refinementof NFRs according to the constrained QAs) fromsolution-oriented refinement of QAs. The latter ismade explicit in terms of means. A means is used toachieve a certain set of NFRs. In many cases, a meansdescribes an AO that can be applied to the architectureto achieve a certain QA (e.g., “load balancing” is usedto achieve a set of NFRs concerning the QA “workloaddistribution”). However, a means can also beprocess related (e.g., the means “automatic test casegeneration” is used to fulfill NFRs regarding “reliability”).2.2. Quality modelIn Figure 2, QAs are represented by white rectangles.Grey rectangles are means that have influence on the relatedQA and ovals are metrics to measure the relatedquality attribute. There are five different types of QAs inthis quality model (see also metamodel):• General QAs such as “Time Behaviour” are used tostructure the QAs on lower levels.• Organizational QAs, such as “Experience”, concernthe organizational aspects. This also includes developmentprocess related aspects, such as requireddocumentations, reviews, etc.• System QAs, such as “Capacity”, are QAs related tothe system and its subsystems (e.g., related to the database,secondary storage or network).• <strong>Use</strong>r Task QAs, such as “Usage Time”, are related totasks in which the system and the user are involved.• System Task QAs, such as “Response Time”, are relatedto system tasks, i.e., tasks that are carried out bythe system, not including the user any more (e.g., calculationof results).Only the latter four QAs are constraint by NFRs. The firsttype of QA serves as a structuring for the hierarchical decompositionof the more fine-grained QAs. This structureis also used for the template for documenting the NFRs.How the NFRs for the QAs are elicited, depends on thetype of the QA they constrain. This is described in Section3.Four types of relationships can be found in such a qualitymodel that relates the various kinds of QAs, means and<strong>Efficiency</strong>RequiredDocumentationTime Behaviour<strong>Efficiency</strong>ComplianceResourceUtilisationExperienceQuality AttributeCustomer ViewQuality Attribute<strong>Use</strong>r TaskQuality AttributeQuality AttributeDeveloper ViewQuality AttributeSystem TaskQuality AttributeParallelismLocalityType and positionof devicesWorkloadDistributionQuality AttributeSystemQuality AttributeUsage TimeBoot / Start TimeWorkloadCapacityMeansQuality AttributeOrganizationQuality AttributeThroughput(network)Mbit/sec.Response Time#jobs/ time unit% of resourceconsumption% of resourceconsumptionCost /unitLoad BalancingFigure 2: Quality model for efficiencyMetricA quality model instantiates parts of our metamodel. Itdescribes typical refinements of high-level QAs into morefine-grained QAs, metrics, and means. The idea of thequality model is to refine QAs into QAs that are measurable,i.e., to QAs to which a metric can be associated. Inaddition, it describes relationships between different QAs.Therefore, it captures experience of previous projects.Our quality model is similar to the goal graphs of, for instance,[12], but emphasizes dependencies, and distinguishesbetween different types of QAs. Figure 2 gives anexample for such a quality model for the QA “efficiency”.metrics. The metamodel in Figure 1 describes the generaltypes of relationships.• A QA, such as “efficiency”, is refined into more detailedQAs, such as “time behaviour” and “resourceutilization”.