<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Functional Requirements</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>VTT Technical Research Centre of Finland P.</institution>
          <addr-line>O.Box 1100 FI­90571 Oulu</addr-line>
          ,
          <country country="FI">Finland</country>
        </aff>
      </contrib-group>
      <abstract>
        <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>
      </abstract>
      <kwd-group>
        <kwd>Domain­Specific Modelling</kwd>
        <kwd> requirements engineering</kwd>
        <kwd> tracing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>how important and for what reason a NFR really is. In the worst case, there may not
be concrete and accurate enough NFRs at all or the designers are not aware of them.</p>
      <p>
        The interconnection of requirements and software design is more than the simplest
junction  of  requirements,  that  being  the  output  of  RE  and  input  for  SE.  The
connection  exists  another  way  around  in  software  testing  and  requirements
verification,  when  the  evaluation  concerns  the  question  whether  the  defined
requirements really  are  met  by  the  software  [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ][
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].  Since  requirements  management
should  be  closely  bound  to  the  verification,  there  is  a  missing  link  between
requirements and verification, which is also closely related to the software design.
      </p>
      <p>
        The  NFR  Framework  is  a  systematic  approach  for  producing  and  documenting
proper  NFRs  through  graphical  modelling  [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].  However,  there  is  a  danger  that
applying  NFR  Framework  produces  requirements  which  can  be  difficult  to  evaluate
being  realized.  Yet,  all  requirements  should  be  expressed  in  terms  of  measurable
properties  to  enable  verification  [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].  In  the  case  of  NFRs  these  can  be  applicable
numeric measurements of performance, resource consumption, correctness, reliability,
security etc. Preferably there should be threshold values for success/failure evaluation
together  with  the  measurement  arrangements.  This  promotes  the  avoidance  of
interpretation  conflicts  between  stakeholders  and  promotes  instead  the  definition  of
accurate, realistic and useful requirements  in  the place of  overly optimistic or vague
requirements. A good requirement should be verifiable and unambiguous, quantifiable
and measurable.  This  closes  the  loop  between  RE,  design and  verification,  which  is
necessary to ensure the quality of the product.
      </p>
      <p>Without  a  common,  solid  tool  environment,  the  requirements  may  end  up  being
stored in separate documents that are not commonly referred to by designers and may
be  outdated  after  a  short  while.  For  designers,  the  requirements  should  be
transparently  traceable  to  the  original  rationale  as  well  as  to  other  related  design
entities.</p>
      <p>
        To  overcome  these  challenges,  our  common  goal  is  combining  RE  and  SE
workspaces  and  information  flow.  Since  the  NFR  Framework  is  essentially  about
graphical  modelling,  it  is  convenient  to  use  a  graphical  Model­driven  Development
(MDD)  environment to  implement the  NFR  Framework.  MDD  on  the  other hand is
based on the need to raise the design abstraction level closer to the problem domain.
Domain­Specific  Modelling  in  particular  (DSM)  [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]  has  a  promising  capability  for
adopting  the  problem  relevant  language  constraints  for  describing  the  system  under
development.  Since  SE  with  DSM  already  use  problem  terminology  (instead  of
solution terminology, such as, classes and objects), the mapping from requirements to
solution seems possibly straightforward. Thus we utilize DSM for SE in this case.
      </p>
      <p>In this paper, not only do we present the implementation of the NFR Framework in
MetaCase MetaEdit+1 language workbench, but we also extend the NFR Framework
Softgoal Interdependency Graph (SIG) with a concept of measurable NFRs to form a
NFR+  Framework. The  measurable  NFR  provides  evidence­based  information  for  a
requirements engineer to determine if the defined NFRs are achieved. They also serve
as a connection point and guide to software designers by stating the desired outcome
in  terms  of  NFRs.  It  is  argued  that  the  introduced  link  to  measurable  NFRs  is  an
important  step  to  close  the  gap  between  RE  and  SE.  The  NFR+  Framework  is
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.
2</p>
    </sec>
    <sec id="sec-2">
      <title>The NFR Framework</title>
      <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. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
2.1
      </p>
      <sec id="sec-2-1">
        <title>Softgoal Interdependency Graph</title>
        <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.</p>
        <p>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.</p>
        <p>
          Figure 1 shows an example of a  SIG as it appeared in the original book [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. 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.
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 [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] 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  [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]  provides
drawing  and  evaluating  capabilities  for  SIGs  within  the  open  source  UML/MDA
Platform  StarUML  [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].  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.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>NFR+ Framework</title>
      <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.
3.1</p>
      <p>
         Measurable Non­Functional Requirements
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  [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]  to  describe  measurable
NFRs.  In  [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]  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  [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ],  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  [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]  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.
3.2
      </p>
      <p> Meterization
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  2  shows  the  three  different
meterization  symbols  which  are  fail  (left),  pass  (right)  and  undefined  (centre).
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.</p>
      <p>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>
      <sec id="sec-3-1">
        <title>Implementation of NFR+ Framework</title>
        <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>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Demonstration of NFR+ Framework in a Laboratory Case</title>
      <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.
4.1</p>
      <sec id="sec-4-1">
        <title>Functional  and  Non­Functional  Requirements  for  an  Example  Image</title>
      </sec>
      <sec id="sec-4-2">
        <title>Processing Application</title>
        <p>
          Stream­oriented  computing  systems  are  characterized  by  parallel  computing
components that process potentially infinite sequences of data [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. 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  [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]  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.
        </p>
        <p>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:
• Average frame rate of the display should be 25fps with good video quality.
• Average throughput of the subsystem should be more than 10fps in average.
• Images produced by the subsystem should be of adequate quality.
4.2</p>
      </sec>
      <sec id="sec-4-3">
        <title>NFR+ Softgoal Interdependency Graphs</title>
        <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 3 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>
      </sec>
      <sec id="sec-4-4">
        <title>4.3.1 The Modelling Facilities</title>
        <p>
          In  this  paper,  we  use  a  refined  version  of  the  earlier  developed  M­Net  modelling
language [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ][
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] 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 [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] was used.
        </p>
        <p>
          Considering  the  testing  of  NFRs,  the  application  models  can  be  included  with
NFRs  and  monitoring  mechanisms  [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].  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.
4.3.2
        </p>
      </sec>
      <sec id="sec-4-5">
        <title>The Application Model</title>
        <p>An application model that satisfies the functional requirements is presented in Figure
4. 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
4)  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>
      </sec>
      <sec id="sec-4-6">
        <title>The Analysis of NFR+ Softgoal Interdependency Graphs</title>
        <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 5).  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>
      </sec>
      <sec id="sec-4-7">
        <title>Figure 5. SIG with test results.</title>
        <p>5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Discussion</title>
      <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.</p>
      <p>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  realization  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.</p>
      <p>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 large­
scale  real  cases.  For  example  managing  the  complexity  of  multiple,  large  design
models and vast SIGs should be practically evaluated.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <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.</p>
      <p>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>
    </sec>
    <sec id="sec-7">
      <title>ACKNOWLEDGMENTS</title>
      <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>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] Cheng,  B.  and  Atlee,  J.:  Research  directions  in  requirements  engineering.  In  FOSE  '
          <volume>07</volume>
          : 2007  Future  of  Software  Engineering,  Washington,  DC,  USA, 
          <year>2007</year>
          .  IEEE  Computer Society, pp. 
          <fpage>285</fpage>
          -
          <lpage>303</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Baudry</surname>
          </string-name>
          ,  C.,  Nebut,  C.  and  Traon,  Y.  L.:  Model­Driven 
          <article-title>Engineering  for  Requirements Analysis</article-title>
          .  In  Proceedings  of  the  11th  IEEE  International  Enterprise  Distributed  Object Computing Conference (EDOC),
          <year> 2007</year>
          , pp 
          <fpage>459</fpage>
          ­
          <lpage>459</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Matinlassi</surname>
          </string-name>
          ,  M.  and  Niemelä,  E.:  The  Impact  of  Maintainability  on 
          <source>Component­based Software Systems. In 29th Euromicro Conference (EUROMICRO'03)</source>
          , Turkey, 
          <year>2003</year>
          , pp.
          <fpage>25</fpage>
          ­
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>En­Nouaary</surname>
          </string-name>
          ,  A.,  Khendek,  F.  and  Dssouli,  R.:  Fault  Coverage  in  Testing 
          <string-name>
            <surname>Real­Time Systems</surname>
          </string-name>
          .  In  Sixth  International  Conference  on 
          <article-title>Real­Time  Computing  Systems </article-title>
          and Applications (RTCSA '
          <volume>99</volume>
          ), Hong Kong, 
          <year>1999</year>
          , pp. 
          <fpage>150</fpage>
          ­
          <lpage>157</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Graham</surname>
          </string-name>
          ,  D.:  Requirements 
          <article-title>and  testing:  seven  missing­link  myths</article-title>
          .  In  IEEE  Software,
          <volume>19</volume>
          (
          <issue>5</issue>
          ), 
          <year>2002</year>
          , pp. 
          <fpage>15</fpage>
          ­
          <lpage>17</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Chung</surname>
          </string-name>
            L.,  Nixon,  J.  M.  B.  and  Yu,  A.:
          <article-title>  Non­functional  Requirements  in  Software Engineering</article-title>
          . Springer, Reading, Massachusetts, 
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Robertson</surname>
          </string-name>
          , S.:  An  Early  Start to Testing:  How  to Test  Requirements.  In  EuroSTAR '96, Amsterdam, December 
          <fpage>2</fpage>
          ­
          <lpage>6</lpage>
          , 
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Kelly</surname>
          </string-name>
          , S. and Tolvanen, 
          <string-name>
            <surname>J­P.: </surname>
          </string-name>
          Domain­Specific Modeling 
          <article-title>- Enabling full code generation</article-title>
          . John Wiley &amp; Sons, New Jersey, 
          <year>2008</year>
          , 427p., ISBN: 
          <fpage>978</fpage>
          ­0­
          <fpage>470</fpage>
          ­03666­2.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Tran</surname>
          </string-name>
          ,  Q.  and  Chung,  L.:  NFR  Assistant:  Tool  Support  for  Achieving  Quality.  In  ASSET '
          <fpage>99</fpage>
          , 
          <year>1999</year>
          , pp. 
          <fpage>284</fpage>
          -
          <lpage>289</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Supakkul</surname>
          </string-name>
          ,  S.:  The  Softgoal  UML  Profile:  An  NFRs  Modeling  Tool.  URL: http://www.utdallas.edu/~supakkul/tools/softgoal­profile/softgoal­profile.html  [Visited July 
          <year>2009</year>
          ].
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>[11] StarUML,  StarUML  ­  The  Open  Source  UML/MDA  Platform.  URL: http://staruml.sourceforge.net/en/ [Visited June 2009].</mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Ebert</surname>
          </string-name>
          ,  C.
          <article-title>:  Putting  requirement  management  into  praxis:  dealing  with  nonfunctional requirements</article-title>
          . Information &amp; 
          <string-name>
            <surname>Software</surname>
          </string-name>
           Technology 
          <volume>40</volume>
          (
          <issue>3</issue>
          ): 
          <fpage>175</fpage>
          ­
          <lpage>185</lpage>
          , 
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Merilinna</surname>
          </string-name>
          ,  J.  and  Räty,  T.:
          <article-title>  A  Tooling  Environment  for  Quality­Driven  Model­Based Software  Development</article-title>
          .  In  9th  OOPSLA  Workshop  on  Domain­Specific  Modeling, Orlando, Florida, USA, 
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Merilinna</surname>
          </string-name>
          ,  J.  and  Räty,  T.:
          <article-title>  Bridging  the  Gap  between  Quality  Requirements </article-title>
          and Implementation.  In  The  Fourth  International  Conference  on  Software  Engineering Advances (ICSEA 
          <year>2009</year>
          ), September 
          <fpage>20</fpage>
          ­
          <lpage>25</lpage>
          , 
          <year>2009</year>
           ­ 
          <string-name>
            <surname>Porto</surname>
          </string-name>
          , Portugal.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Kazman</surname>
          </string-name>
          ,  R.,  Klein,  M.  and  Clements,  P.:  ATAM: 
          <article-title>Method  for  architecture  evaluation</article-title>
          . Carnegie Mellon University, Software Engineering Institute, Tech. Rep. CMU/SEI­2000
          <string-name>
            <surname>­</surname>
          </string-name>
          TR­004
          <string-name>
            <surname> ESC­TR­</surname>
          </string-name>
          2000­
          <volume>004</volume>
          , 
          <year>2000</year>
          , 
          <volume>83</volume>
           p.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>[16] StreamIt, Research overview page, URL: http://www.cag.lcs.mit.edu/streamit/shtml/research.shtml [Visited  July 2009]</mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Buschmann</surname>
          </string-name>
          ,  F.,  Meunier,  R.,  Rohnert,  H.,  Sommerlad,  P.  and  Stal,  M.
          <article-title>:  Pattern­oriented software architecture - a system of patterns</article-title>
          . Chichester, New York: Wiley, 
          <year>1996</year>
          , 
          <volume>457</volume>
           p.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>[18] PythonWare,  Python  Imaging  Library:  URL:  http://www.pythonware.com/products/pil/ [Visited July 2009]</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>