<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Extending the NFR Framework with Measurable Non-Functional Requirements</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Anton</forename><surname>Yrjönen</surname></persName>
							<email>anton.yrjonen@vtt.fi</email>
							<affiliation key="aff0">
								<orgName type="institution">VTT Technical Research Centre of Finland</orgName>
								<address>
									<postBox>P.O.Box 1100</postBox>
									<postCode>FI-90571</postCode>
									<settlement>Oulu</settlement>
									<country key="FI">Finland</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Janne</forename><surname>Merilinna</surname></persName>
							<email>janne.merilinna@vtt.fi</email>
							<affiliation key="aff0">
								<orgName type="institution">VTT Technical Research Centre of Finland</orgName>
								<address>
									<postBox>P.O.Box 1100</postBox>
									<postCode>FI-90571</postCode>
									<settlement>Oulu</settlement>
									<country key="FI">Finland</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Extending the NFR Framework with Measurable Non-Functional Requirements</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">461D73F403FD0D3368274175D063CD34</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-19T16:23+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Domain-Specific Modelling</term>
					<term>requirements engineering</term>
					<term>tracing</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Accurate and correctly specified requirements are extremely important in ensuring the production of feasible software products. To assure that the requirements have actually been implemented, there has to be a trace link from requirements to implementation. Thus far requirement engineering has been a rather separate task from software design and implementation from the process point of view. This separation has a negative impact on requirements traceability and further, to product quality. Tracing of nonfunctional requirements (NFRs), such as performance, has been particularly cumbersome. Thus, in this paper we apply and extend the NFR Framework to bridge the gap between NFRs and implementation. We have implemented the extended NFR Framework, which we call NFR+ Framework, as a modelling language including a softgoal interdependency graph validation tool with a MetaCase MetaEdit+ language workbench. We extended the NFR Framework with a concept of measurable NFRs that enables to empirically verify the realization of defined NFRs in a product. The usage of the extended NFR Framework is demonstrated with a laboratory case.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Traditionally requirements engineering (RE) and software engineering (SE) are seen quite separate areas of research, profession and action <ref type="bibr">[1] [2]</ref>. This has resulted in a separation of the tools, processes and methods used in each of the tasks. For each purpose, individual tools have been created but the information flow and integrity from one task and tool to another has quite often lagged behind tool development and has often been realized afterwards in an inconvenient way, if at all. Due to lack of sufficient tool support and integrated processes, the same work may have been done twice, overlapping and unsynchronized. Designers might have had challenges to figure out what the requirements mean in terms of implementation and what actions are needed to achieve the desired level of satisfaction. The challenge is highlighted when concerning more ambiguous non-functional requirements (NFR) that concern the non-functional, a.k.a. quality attributes of the software <ref type="bibr" target="#b2">[3]</ref>. It is often unclear what side-effects there might be for choosing a certain solution to fulfil a requirement or demonstrated in a laboratorial case study of stream-oriented image processing applications.</p><p>The rest of the paper is structured as follows. In Section 2 the NFR Framework is described to set the background and baseline for our work. In Section 3, an extension for the NFR Framework is presented including the implementation details. The usage of the extension is demonstrated with a laboratorial case example in Section 4. The applicability of the developed solution is discussed in Section 5 and the paper is concluded in Section 6.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2</head><p>The NFR Framework</p><p>The NFR Framework offers a systematic approach for defining NFRs for products. It offers good visibility to all relevant NFRs and their interdependencies, and helps designers to understand the necessary actions for ensuring proper quality. It also captures and documents design decisions and rationales in addition to providing traceability for derived specifications and requirements. [6]</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Softgoal Interdependency Graph</head><p>The NFR Framework is mainly based on the SIG which is a graph of interconnected softgoals where each represents an NFR for the system under development. During requirements elicitation, abstract softgoals are decomposed to more detailed and concrete child softgoals which contribute with positive or negative impact or alternatively with logical AND/OR compositions to the parent softgoal. Each softgoal has a type and a topic. Decomposing a softgoal into subtopical and more specific types of softgoals, leads ultimately to so called operationalizations at the end nodes of the graph. Operationalizations are different kinds of implementation and design techniques that can be selected to ensure a feasible outcome. The operationalizations can be used as specifications for the system. Figure <ref type="figure" target="#fig_0">1</ref> shows an example of a SIG as it appeared in the original book <ref type="bibr" target="#b5">[6]</ref>. The cloud symbols drawn with thin lines are abstract NFR softgoals and the thicker clouds are concrete operationalizations. The relevant topic is annotated within square brackets that follow the type declaration. Within the NFR Framework itself specific catalogues for type and topic decompositions can exist, which state the common, allowed or desired decompositions. As the softgoals are decomposed during the NFR elicitation, the decomposition relationships connecting the softgoals and operationalizations state the interdependencies between the softgoals and operationalizations. When there is an arrow or a line, this means that the connected symbols have an interdependency the direction of which is towards the tip of an arrow; from the more concrete and specific, to the more generic and abstract softgoal. Instead of bilateral (connecting only two symbols) interdependency, there can also be logical AND/OR interdependencies that have exactly one higher level softgoal symbol attached to two or more subgoals. In addition to interdependencies between softgoals, Claims can be inserted to justify certain decisions of labels. In figure <ref type="figure" target="#fig_0">1</ref>, for example, there is a Claim that the negative contribution of " Validate access" does not harm " Response time" significantly.</p><p>Softgoals may be annotated with a label. The labels (see Table <ref type="table">1</ref>) are used to inform the status of softgoals and operationalizations. The label typically denotes a decision to select a certain method or technique for operationalizing a softgoal. For the more abstract softgoals, the label describes the status of all the other NFRs logically underneath it, since the children' s effect propagates upwards in the SIG through interdependencies.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Table 1. Softgoal labels</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Symbol Name Explanation</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Satisfied</head><p>The softgoal is fulfilled or chosen to be implemented.</p><p>w+ Weakly satisfied There is some positive support to the softgoal. u Undecided Realization of the softgoal neither confirmed nor denied.</p><p>w-Weakly denied There are some indicators against fulfilling the softgoal.</p><p>x Denied Softgoal can not be realized or is chosen not to be implemented.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Lightning Conflict</head><p>There are conflicting contributions to this softgoal. Some supporting, some against.</p><p>The bilateral interdependencies are attached with information about the contribution of the subgoal to the parent goal. They are annotated next to the contribution arrow symbol. The contributions are explained in Table <ref type="table" target="#tab_0">2</ref>. When evaluating the SIG, the contributions together with the labels of the child softgoals determine the parent softgoals' label. The contribution acts as a multiplier where a negative sign reverses the multiplied value of a label. -HURT Negated child label somewhat propagating to parent.</p><p>--BREAK Child label strongly is negated and propagated to parent.</p><p>? UNKNOWN Interdependency unknown, child does not affect to parent.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Tools for the NFR Framework</head><p>There is very little tool support for the NFR Framework in RE. Utilizing the NFR Framework has mostly been reliant upon drawing SIGs manually and further utilizing the resulting NFRs and operationalization decisions separately. However, there is some tool support. The NFR-Assistant <ref type="bibr" target="#b8">[9]</ref> is a stand-alone tool that can be utilized to draw SIGs and to derive softgoal labels based on the interdependencies, contributions and operationalization labels. The Softgoal Extension for StarUML <ref type="bibr" target="#b9">[10]</ref> provides drawing and evaluating capabilities for SIGs within the open source UML/MDA Platform StarUML <ref type="bibr" target="#b10">[11]</ref>. The StarUML extension includes the regular SIG graph features of NFR Framework. Due to its integration to an UML/MDA tool, the NFR outcome can be utilized in software modelling processes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">NFR+ Framework</head><p>We propose extensions to the NFR Framework in order to improve requirements traceability, to encourage the setting of more accurate and beneficial requirements and to enable early and up-to-date verification of requirements. We address specifically MDD by connecting requirements modelling to software modelling. We call this extended NFR Framework, NFR+ Framework.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Measurable Non-Functional Requirements</head><p>To enable verification of NFRs, specific pass/failure criteria in terms of numeric values, metrics and measurement arrangements must be included. We call these measurable NFRs. We utilize a template adapted from <ref type="bibr" target="#b11">[12]</ref> to describe measurable NFRs. In <ref type="bibr" target="#b12">[13]</ref> it is shown how measurable NFRs can be added to design models in order to define the part of a design model which is responsible of fulfilling a certain individual NFR. In <ref type="bibr" target="#b13">[14]</ref>, there is a run-time measurement technique described for collecting data and evaluating the performance characteristics of such partial design model. The mechanism utilizes code generation to inject probes into the source code to be tested, which also reports its observations back to the design tool. The run-time measurements can thus notify whether an individual NFR has been fulfilled or not. Such mechanism can be utilized to verify run-time NFRs such as those related to performance issues For evolution-time non-functional features, e.g., extensibility, methods such as ATAM <ref type="bibr" target="#b14">[15]</ref> can be utilized for evaluation. In the case of impartial, unrunnable code or the need for external off-line testing, the measured values can be manually inputted to measurable NFRs after tests have been conducted or when estimates have otherwise been formed. Regardless of the source of information the NFR is evaluated against, it is important to be able to connect this information to the rest of the models in order to be able to trace the impact to the whole system. This is done through meterization which extends the existing NFR framework to take into account the collected empirical verification data.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Meterization</head><p>Meterization is a special relationship that connects measurable NFRs to SIG softgoals. Its symbol resembles a gauge that displays the current status of the connected measurable NFR in graphical terms. Figure <ref type="figure" target="#fig_1">2</ref> shows the three different meterization symbols which are fail (left), pass (right) and undefined (centre).</p><p>Corresponding colour codes are red for fail, green for pass and yellow for undefined. The undefined state exists if the connected measurable NFR has not yet been evaluated within any of the design models. Contribution of the meterization symbol to the SIG softgoals is similar to the contributions of softgoals amongst each others with the exception that the EQUAL (=) contribution always overrides any other SIG contributions affecting any other connected softgoal. This emphasizes the empirical verification of defined measurable NFRs so that new tests can automatically alter the SIG state to correctly reflect the observed status of the implementation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>3.3</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Implementation of NFR+ Framework</head><p>The NFR+ Framework was implemented using MetaEdit+ (ME+), which is a commercial DSM tool created by MetaCase. ME+ includes tools to define Domain-Specific Modelling Languages (DSMLs) with GOPPRR (Graphs, Objects, Ports, Roles, Relationships) a metamodeling language and generators with MERL scripting language in addition to providing basic modelling facilities. ME+ also provides an Application Programming Interface (API) which is accessible by all SOAP-enabled (Simple Object Access Protocol) programming languages.</p><p>The measurable NFR model entity is defined in the NFR+ metamodel structurally in a requirements model entity which can be connected to SIG graphs with a meterization relationship that also describes the status of the measurable NFR with the meterization symbol. The requirements model entity itself does not contain any measured or otherwise evaluated values because the evaluation and measurement of each requirement type is dependent on the requirement type and application domain. Therefore, the requirement model entity finds special model entities called monitoring mechanisms that should be attached to the application models and finds the test and evaluation results from there. If no monitoring mechanisms are found, the meterization symbol is automatically set at " undecided" . Otherwise, the meterization symbol automatically indicates pass or failure depending on the test or evaluation result. Describing the other SIG concepts of the NFR Framework with ME+ metamodel is straightforward and thus deserves no detailed analysis here.</p><p>The SIG evaluation generator was implemented using MERL scripting language. The evaluation generator when initiated traverses the SIG graphs starting from the topmost softgoals. The evaluation is conducted in a recursive manner evaluating the subordinates of each softgoal first and propagating their labels through the interdependency contributions to the parent to eventually determine its new label. The evaluation is based on a predefined, but modifiable, contribution catalogue.</p><p>The contribution catalogue is a special SIG graph that defines the outcome of pairs of child labels and contributions. The SIG evaluation generator tries to find this unique graph from the currently active project in the ME+ tooling environment and checks the resulting parent label from the diagram if such is defined. Otherwise, defaults are used according to the original NFR Framework. The contribution catalogue can be modified to influence the evaluation. For example, normally a signal of an Accepted label propagated through HELP contribution results an Accepted label within the parent node. An alternative logic might be that such combination results only a Weak positive, instead of Accepted. If such change is needed, this could be achieved simply by changing one label within the contribution catalogue, the one describing this combination' s result</p><p>The SIG graph is updated after the model evaluation with an external application which is generated by the evaluation generator. An external application must be generated since ME+ currently does not allow the alteration of properties of objects within the graphs directly from the MERL scripts. The generated external application consists of Python script that manipulates the SIG graph via the ME+ API. In the end, the script is executed via external command to the Python interpreter and the model is accordingly updated.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Demonstration of NFR+ Framework in a Laboratory Case</head><p>In this section, the usage of NFR+ Framework is demonstrated in a laboratory case of image processing applications. The demonstration illustrates some of the possibilities the NFR+ Framework provides in order to promote requirements traceability.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Functional and Non-Functional Requirements for an Example Image Processing Application</head><p>Stream-oriented computing systems are characterized by parallel computing components that process potentially infinite sequences of data <ref type="bibr" target="#b15">[16]</ref>. Such systems are common e.g., in embedded systems, digital signal processing, image and video processing and cellular base stations. The primary purpose of such systems is to read data from an input stream, manipulate the data with a filter chain, and forward the manipulated data to a sink. Briefly, the system can be considered to be based on the Pipes-and Filters architecture pattern <ref type="bibr" target="#b16">[17]</ref> which consists of a set of data manipulation filters which are connected together with pipes. The filters do not share the state thus the filters can be connected together in arbitrary order as long as the semantics are correct. As a laboratorial case of stream-oriented computing systems, a subsystem of an image processing application, i.e. video camera, is utilized. The main responsibility of the example subsystem is to flip incoming 1Mpixel images 90 degrees to the right to match the tilt of a display which is utilized for displaying input images. The input images are also required to have sepia toning. The sepia-converted images must also be compressed to JPG format and saved to temporal data storage from where the images are forwarded to the next subsystem. NFRs for the subsystem are as follows:</p><p>• Average frame rate of the display should be 25fps with good video quality.</p><p>• Average throughput of the subsystem should be more than 10fps in average.</p><p>• Images produced by the subsystem should be of adequate quality.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">NFR+ Softgoal Interdependency Graphs</head><p>The functionalities can be divided into four task specific functional blocks, i.e. RotationFilter, SepiaConverter, Display and TemporalStorage which is responsible for JPG conversion and saving the manipulated images to data storage. There are also Resize filters available for altering the resolution. The functional blocks form topics for the SIG.</p><p>According to the preceding functional requirements and NFRs, the SIG presented in Figure <ref type="figure">3</ref> can be drawn. Overall subsystem satisfaction depends on the video quality the Display should provide, subsystem throughput and the image quality the subsystem forwards. The Display image quality depends on throughput of SepiaConversion, Rotation, and resolution of the viewed images where the priority is on frame rate. As presented, throughput of the filters, image compression and saving of the images into TemporalStorage are heavily affected by the image resolution. However, the image resolution affects the overall system satisfaction positively in addition to Display quality, therefore there is a distinct trade-off between throughput and image quality.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Figure 3. SIG for the example application.</head><p>As presented in the SIG, throughput of the overall subsystem can be improved by enabling a parallel image saving process as well as by enabling genuine parallel processing of the filters and compression. Since Python 2.5 does not currently support genuine parallel processing with standard threads, parallel processing of multiple images cannot be applied. However, threads can be applied to enhance IO processing.</p><p>The SIG is also accompanied by specific measurable NFRs as depicted in Figure <ref type="figure">3</ref>. The subsystem output performance subgoal is accompanied by an NFR that explicitly states that the throughput should be more than 10fps on average. Similarly, the frame rate of the Display is explicitly defined with the measurable NFR model entity. The connecting meterization symbols indicate the current status of measurable NFRs. With the SIG being constructed, it can be evaluated to specify labels of the softgoals. The evaluated SIG in figure <ref type="figure">3</ref> reveals that the subsystem does not satisfy its NFRs. The major problem with throughput of the filters seems to be caused by the lack of possibility for genuine parallel processing. However, it may be possible that the filters in serial processing mode might satisfy the requirements, thus the subsystem needs to be tested.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>4.3</head><p>Application Modelled with Extended M-Net</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>4.3.1</head><p>The Modelling Facilities In this paper, we use a refined version of the earlier developed M-Net modelling language <ref type="bibr" target="#b12">[13]</ref>[14] which enables modelling of simulations of parallel computing filter chains in the domain of stream-oriented computing systems. We have extended the M-Net with the capability for modelling image processing systems. The extended M-Net uses real image processing filters instead of simulations used in previous version. Otherwise the languages are the same. For M-Net, complete Python source code generation from models was developed including support for image processing. As a graphic library, the Python Imaging Library <ref type="bibr" target="#b17">[18]</ref> was used.</p><p>Considering the testing of NFRs, the application models can be included with NFRs and monitoring mechanisms <ref type="bibr" target="#b12">[13]</ref>. The monitoring mechanisms can be connected to those parts of interest in the application models to enable the monitoring of throughput of images i.e. the amount of images handled per second. The generated code is embedded with monitoring mechanisms that enable run-time reporting back to the application model via ME+ API.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3.2">The Application Model</head><p>An application model that satisfies the functional requirements is presented in Figure <ref type="figure" target="#fig_2">4</ref>. InputStream functions as a data source of bitmap images which are forwarded to PreResize filter. PreResize drops the image resolution by half thus causing a significant impact on image and video quality. This implements not using high resolution operationalization.</p><p>Resized images are forwarded from PreResize to SepiaConversion. Then the stream divides into two paths. The path to Display (the topmost path) leads to Rotation which rotates the images 90 degrees to the right and forwards the image to DisplayResize to decrease the image resolution even more to maximize the frame rate.</p><p>After sepia conversion in the lower part of the subsystem, the images are resized back to the required 1Mpixel by PostResize. The images are further forwarded to a switch which forwards the first input image to the first TemporalStorageA which immediately starts processing the data. The second image is forwarded to the TemporalStorageB which starts computing the image parallel to the previous data storage. This way the data storages receive every other image and therefore halve the amount of images to be handled per data storage. This solution is an implementation of parallel IO processing operationalization defined in the SIG. After image compression and saving, TemporalStorages forward the data to the Sink.</p><p>The measurable NFRs are presented also in the finalized application model (Figure <ref type="figure" target="#fig_2">4</ref>) and connected to the corresponding parts in the model to maintain a trace link between the NFRs presented in Section 4.1 and the application model. The application model is also accompanied by appropriate monitoring mechanisms connected to the measurable NFRs. After generating an executable and executing it, the application reports the measured values back to the application model. As shown, the frame rate of the Display is 26.7fps (see the dark rectangle on the top) and the throughput of the overall system is 15.4fps. It seems that the application now satisfies these requirements. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4">The Analysis of NFR+ Softgoal Interdependency Graphs</head><p>After the application has been modelled, generated and executed, analysis of the test results to the overall subsystem can be performed by scrutinizing the automatically updated SIG (see Figure <ref type="figure" target="#fig_3">5</ref>). As the overall subsystem throughput and Display frame rate are satisfactory, these are represented as " pass" meterization symbols. The impact of the measured performance values to the overall subsystem can be discovered by evaluating the SIG.</p><p>The measured values override previous conflicts but still there is a conflict in the " Good video quality" softgoal whose label is also propagated to overall subsystem satisfaction. This conflict is clearly caused by using low-resolution images as input to the Display. At this stage the requirements engineer and the application modeller should try to find a solution for the problem. The SIG clearly reveals that the only way to satisfy the overall subsystem satisfaction requirements is using higher resolution images. As discussed above, this on the other hand has a drastic impact on overall throughput. Thus, performance of the filters should be increased when using high-resolution images. If no solution can be found, the impact of the failure should now be traced to the other SIGs and the overall impact at the system level should be evaluated. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Discussion</head><p>The presented NFR+ Framework addresses the challenges of bridging the gap between RE and verification in a transparent fashion observable also through the SE phases. The original NFR Framework provides a solid and expressive framework for eliciting NFRs and binding them to functional requirements. However, the NFR Framework is mostly utilized only the elicitation process of the NFRs. To bridge the gap between requirements engineering and software engineering it is required that the SIGs in the NFR Framework are continuously taken into account in SE but that also the outcomes of SE should be utilized in RE. Our extension to the NFR Framework strives for just that. As presented, during SE, the elicited NFRs and operationalizations offer information about the design rationale. The measurable NFRs define a concrete instantiation for an abstract softgoal definition that cannot be, as such, usable for design input nor for verification purposes. The measurable NFRs represent additional and optional concretization in parallel with operationalizations. However, the direction of information is two-way. Whereas operationalizations are design specifications, measurable NFRs relay information to both directions to and from RE workspace. Measurable NFRs include concrete verification criteria, but also reflect the status of their re alizatio n in the SIGs representing all of the NFRs. As the dimension of adding concretization and information is orthogonal with operationalizations and functional requirements, we believe that this is an important step forward to closing the gap between RE and SE. The next step towards completely unified MDD-environment should include importing existing requirements from other tools into the SIGs and SW modelling environments automatically in order to avoid redundant work and management overheads. While the NFR+ Framework offers full tooling for starting a new project from scratch, there might be a vast requirements database in many realistic cases that are inherited from earlier products or versions. For practical reasons synchronizing with them would provide a great benefit. We plan to study this in the future.</p><p>Further studies are yet needed to find out the applicability of our approach in largescale real cases. For example managing the complexity of multiple, large design models and vast SIGs should be practically evaluated.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusion</head><p>In this paper an extended version of the NFR Framework, which we call the NFR+ Framework, was presented. In addition, tooling with MetaEdit+ language workbench for the framework was also presented. We have extended the NFR Framework by adding a concept of measurable NFR. Measurable NFRs can provide evidence-based information about achieving the preset or currently chosen NFR goals. They also serve as a connecting point and guide to software designers by stating the desired outcome. This linkage between requirements and design provides an approach for joining the separate areas of requirements engineering and software engineering. The solution serves as a communication tool between stakeholders by offering a formal common language and documentation. The NFR Framework also per se promotes the refinement of the requirements needed during elicitation into such a form that the design can be directly justified by them. In addition, the measurable NFRs guide the requirements engineers in their aim to create measurable requirements which will also serve as verification and thus provide overall quality monitoring view to the system under development. The traceability of requirements becomes transparently visible all the way from code-implementing design models to the highest level NFRs and vice versa.</p><p>We demonstrated our approach with a laboratory case and illustrated how the NFR+ can help in detecting problematic designs. We also showed how the interlinkage helps in verification of the NFRs during the whole time span of software development; from forming first SIGs to finally testing related implementations. This verification is based on connecting measurable NFRs to SIG through the meterizations.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 .</head><label>1</label><figDesc>Figure 1. Softgoal Interdependency Graph with a legend of symbols.</figDesc><graphic coords="4,160.08,147.36,275.04,197.76" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 .</head><label>2</label><figDesc>Figure 2. Meterization relationship symbols.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 4 .</head><label>4</label><figDesc>Figure 4. Image processing application modelled with M-Net.</figDesc><graphic coords="11,124.80,147.36,357.36,234.24" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 5 .</head><label>5</label><figDesc>Figure 5. SIG with test results.</figDesc><graphic coords="12,124.80,147.36,350.16,225.84" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="9,124.80,170.40,350.16,225.84" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 2 . SIG contributions</head><label>2</label><figDesc></figDesc><table><row><cell cols="2">Symbol Contribution</cell><cell>Explanation</cell></row><row><cell>++</cell><cell>MAKE</cell><cell>Child label is strongly propagated to parent.</cell></row><row><cell>+</cell><cell>HELP</cell><cell>Child label is somewhat propagating to parent.</cell></row><row><cell>=</cell><cell cols="2">EQUAL The two softgoals share the same label.</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">http://www.metacase.com</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>ACKNOWLEDGMENTS</head><p>The work presented here has been developed within the MoSiS project ITEA 2 -ip06035. MoSiS is a project within the ITEA 2 -Eureka framework.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Research directions in requirements engineering</title>
		<author>
			<persName><forename type="first">B</forename><surname>Cheng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Atlee</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">FOSE &apos; 07: 2007 Future of Software Engineering</title>
				<meeting><address><addrLine>Washington, DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="285" to="303" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Model-Driven Engineering for Requirements Analysis</title>
		<author>
			<persName><forename type="first">C</forename><surname>Baudry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Nebut</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><forename type="middle">L</forename><surname>Traon</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 11th IEEE International Enterprise Distributed Object Computing Conference (EDOC)</title>
				<meeting>the 11th IEEE International Enterprise Distributed Object Computing Conference (EDOC)</meeting>
		<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="459" to="459" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">The Impact of Maintainability on Component-based Software Systems</title>
		<author>
			<persName><forename type="first">M</forename><surname>Matinlassi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Niemelä</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">29th Euromicro Conference (EUROMICRO&apos; 03)</title>
				<meeting><address><addrLine>Turkey</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="25" to="32" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Fault Coverage in Testing Real-Time Systems</title>
		<author>
			<persName><forename type="first">A</forename><surname>En-Nouaary</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Khendek</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Dssouli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Sixth International Conference on Real-Time Computing Systems and Applications (RTCSA &apos; 99)</title>
				<meeting><address><addrLine>Hong Kong</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page" from="150" to="157" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Requirements and testing: seven missing-link myths</title>
		<author>
			<persName><forename type="first">D</forename><surname>Graham</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="15" to="17" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">L</forename><surname>Chung</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M B</forename><surname>Nixon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Yu</surname></persName>
		</author>
		<title level="m">Non-functional Requirements in Software Engineering</title>
				<meeting><address><addrLine>Reading, Massachusetts</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">An Early Start to Testing: How to Test Requirements</title>
		<author>
			<persName><forename type="first">S</forename><surname>Robertson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">EuroSTAR &apos; 96</title>
				<meeting><address><addrLine>Amsterdam</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1996">December 2-6, 1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">Domain-Specific Modeling -Enabling full code generation</title>
		<author>
			<persName><forename type="first">S</forename><surname>Kelly</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J-P</forename><surname>Tolvanen</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
			<publisher>John Wiley &amp; Sons</publisher>
			<biblScope unit="page">427</biblScope>
			<pubPlace>New Jersey</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">NFR Assistant: Tool Support for Achieving Quality</title>
		<author>
			<persName><forename type="first">Q</forename><surname>Tran</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Chung</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ASSET &apos;</title>
		<imprint>
			<biblScope unit="volume">99</biblScope>
			<biblScope unit="page" from="284" to="289" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><surname>S U P A K K U L</surname></persName>
		</author>
		<author>
			<persName><surname>; T H E S O F T G O A L U M L P R O F I L E ; O L . U R L</surname></persName>
		</author>
		<ptr target="http://www.utdallas.edu/~supakkul/tools/softgoal-profile/softgoal-profile.html" />
		<title level="m">A n N F R s M o d e l i n g T o</title>
				<imprint>
			<date type="published" when="2009-07">July 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title/>
		<author>
			<persName><surname>S T A R U M L , S T A R U M L -T H E O P E N S O U R C E U M L / M D A P L A T F O R M . U R L</surname></persName>
		</author>
		<ptr target="http://staruml.sourceforge.net/en/" />
		<imprint>
			<date type="published" when="2009-06">June 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Putting requirement management into praxis: dealing with nonfunctional requirements</title>
		<author>
			<persName><forename type="first">C</forename><surname>Ebert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Information &amp; Software Technology</title>
		<imprint>
			<biblScope unit="volume">40</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="175" to="185" />
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">A Tooling Environment for Quality-Driven Model-Based Software Development</title>
		<author>
			<persName><forename type="first">J</forename><surname>Merilinna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Räty</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">9th OOPSLA Workshop on Domain-Specific Modeling</title>
				<meeting><address><addrLine>Orlando, Florida, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Bridging the Gap between Quality Requirements and Implementation</title>
		<author>
			<persName><forename type="first">J</forename><surname>Merilinna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Räty</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Fourth International Conference on Software Engineering Advances (ICSEA 2009)</title>
				<meeting><address><addrLine>Porto, Portugal</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2009">September 20-25, 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m" type="main">ATAM: Method for architecture evaluation</title>
		<author>
			<persName><forename type="first">R</forename><surname>Kazman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Klein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Clements</surname></persName>
		</author>
		<idno>CMU/SEI-2000- TR-004 ESC-TR-2000-004</idno>
		<imprint>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page">83</biblScope>
		</imprint>
		<respStmt>
			<orgName>Carnegie Mellon University, Software Engineering Institute, Tech. Rep.</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<author>
			<persName><surname>Streamit</surname></persName>
		</author>
		<ptr target="http://www.cag.lcs.mit.edu/streamit/shtml/research.shtml" />
		<title level="m">Research overview page</title>
				<imprint>
			<date type="published" when="2009-07">July 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<title level="m" type="main">Pattern-oriented software architecture -a system of patterns</title>
		<author>
			<persName><forename type="first">F</forename><surname>Buschmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Meunier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Rohnert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Sommerlad</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Stal</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1996">1996</date>
			<publisher>Wiley</publisher>
			<biblScope unit="page">457</biblScope>
			<pubPlace>Chichester, New York</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<author>
			<persName><surname>Pythonware</surname></persName>
		</author>
		<ptr target="http://www.pythonware.com/products/pil/" />
		<title level="m">Python Imaging Library</title>
				<imprint>
			<date type="published" when="2009-07">July 2009</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
