<!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>Establishing a Requirements Baseline by Functional Size Measurement Patterns</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ina Wentzlaff</string-name>
          <email>ina.wentzlaff@uni-due.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>paluno - The Ruhr Institute for Software Technology University of Duisburg-Essen</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>[Context] The requirements baseline is an agreed-upon set of desired product features committed to a specific release. It determines intra- and interproject planning and involved performance assessment. [Problem] To establish a credible baseline, one which fits into the limits e.g. time box of the project and which satisfies user expectations, a reasonable choice of requirements must be made. This demands commensurable units of measure for requirements that are meaningful to most decision makers in a project team. [Principle Idea] This work proposes the use of functional size measurement patterns as a reusable point of reference to classify requirements consistently and to estimate their functional size in a reproducible way. It develops measurable requirements patterns out of problem frames and a counting procedure, that facilitates determining function points for requirements in accordance with ISO/IEC 20926:2009. [Contribution] These patterns provide the project team with a bias-free anchor regarding the functional size of requirements with which they can correlate their requirements estimates and anticipated work plan. Establishing the requirements baseline with respect to these patterns eases the comparability of project outcomes and thus contributes to the predictability of project planning.</p>
      </abstract>
      <kwd-group>
        <kwd>Integrated Requirements Engineering</kwd>
        <kwd>Agile Project Prac- tice</kwd>
        <kwd>Planning Poker</kwd>
        <kwd>Problem Frames</kwd>
        <kwd>Functional Size Measurement</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Implementing software projects the agile way is all the rage. It is deemed to
be the fast track to deliver software features at low cost due to self-organizing
project controls. An agile development iteration follows a Plan-Do-Check-Adjust
(PDCA) cycle [10, page 88]. Each completed cycle brings an improvement of
the software increment i.e. of the product towards desired functionality. Sprint
events of the Scrum project process framework [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] can be categorized
accordingly, which is illustrated in Figure 1. In case multiple iterations are planned to
cumulate in a product, it is generally referred to as release planning [27, page
      </p>
    </sec>
    <sec id="sec-2">
      <title>Copyright c 2017 for this paper by its authors.</title>
      <p>Copying permitted for private and academic purposes.
216]. To this end, ’Requirements First’ is still the name of the game. Before any
development starts, the team needs to reach consensus on the work plan to be
done during the upcoming iteration, which depends on the agreed-upon
requirements baseline. In order to decide on it, a gamified decision-making process
known as Planning Poker [5, page 56] is played by the team to estimate
requirements. It is a modern adaption of the Wideband-Delphi estimation technique [4,
Page 335ff] originated in the 1980s.</p>
      <sec id="sec-2-1">
        <title>Project</title>
      </sec>
      <sec id="sec-2-2">
        <title>Stories</title>
      </sec>
      <sec id="sec-2-3">
        <title>Points</title>
      </sec>
      <sec id="sec-2-4">
        <title>PLAN</title>
        <p>desired
Kde4si2reDdr.</p>
        <p>~ |}</p>
        <p>I.</p>
        <p>Scrum Planning
II.
(Daily) Work</p>
        <p>DO
dfealitvuerreable
committed</p>
      </sec>
      <sec id="sec-2-5">
        <title>CHECK</title>
        <p>fedaotnuere
scored</p>
        <p>X X
III.</p>
        <p>Reviewq</p>
      </sec>
      <sec id="sec-2-6">
        <title>ADJUST</title>
        <p>feature</p>
        <p>credible
Baseline
iteration
b</p>
        <p>B
IV.</p>
        <p>
          Retrospective events
Estimating by Planning Poker starts with User Stories [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], which are brief
requirement statements. In the following, each is to be assigned with a point
value by the members of the project team. These Story Points serve to express
the size of a user story [5, page 36]. They justify the amount of functional scope
to be delivered for a story. The number of points is taken to organize the team’s
workload for an iteration. As the outcome of Planning Poker, the team commits
to a work plan i.e. the requirements baseline by the agreed-upon number of
points. Its commensurability manifests after the iteration is completed. Done
functionality that delivers desired product features and thus satisfies the work
plan scores the respective points for the baseline.
        </p>
        <p>The key benefits of requirements estimating in points are (i.) that they make
“the unit of estimation abstract, which makes it easier to commit to, and easier
to adjust your commitments to” [27, page 161], and (ii.) their self-correcting
nature [27, page 160]. “Even if a team is bad at estimating, as long as they’re
consistently bad, this makes a team’s commitments self-correcting” [27, page
159], which helps “to meet expectations more consistently” [27, page 161].</p>
        <p>
          A common criticism is that this consistency of estimates depends on the team,
since (the meaning of) points assigned to requirements or a user story relates to
an estimator’s “experience and good feel rather than on formal criteria” [9, page
1343]. Team virtualization, membership turnover, silo mentality, etc. impacts the
team’s capability to establish a common respectively shared understanding on
their requirements estimates. In each iteration they suffer from a bootstrapping
problem [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]: what is the baseline they will compare to, which accounts for keeping
their estimates consistent.
        </p>
        <p>
          Establishing consistency of estimates from one iteration to another is
obtainable by finding comparable requirements that require “a similar amount of
work” [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. These ’representative requirements’ serve the team as a point of
reference to which they can correlate their project planning activities. In order to be
applicable as a ’reference baseline’, they need to comply with mutually accepted
best practices or standards.
        </p>
        <p>With the bootstrapping problem in mind, it cannot be assumed that
historical data about requirements estimates exist nor that these compare to the
team estimates i.e. that the same principles and methods have been followed
to establish them. Commensurable units of measure for requirements reusable
in any project are needed to keep the baseline consistent. These units must be
meaningful to most decision makers in a project team to “bridge any gaps in
understanding [. . . ] between clients and developers” [9, page 1343].</p>
        <p>This work proposes to unify consideration of requirements and their
respective amount of work expressed as a point value by means of patterns. Therefore,
it joins the use of problem frames as best practices to classify requirements
consistently, which are introduced in Section 1.1, and ISO/IEC 20926 as a
standard for functional size measurement to determine the requirements’ size in a
reproducible way, which is introduced in Section 1.2.
1.1</p>
        <p>
          Requirements Classification by Problem Frames
Problem Frames are patterns, which characterize classes of recurring problem
situations [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. They are used to classify a set of requirements into simple i.e.
self-contained subproblems, which allow to derive specifications in a reproducible
way. This approach has been developed by Michael A. Jackson since 1995 [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]
to deal with problem complexity in Requirements Engineering.
        </p>
        <p>Using Problem Frames to classify requirements helps to identify the kind of
functionality that is of relevance to the problem. They allow to find a proper
machine behavior, i.e. specification, which can be created by the developer and
that will make what is required by the user [19, Page 106]. Therefore, the machine
to be built i.e. the software application has to control a specific part of the
problem in a way as the requirement demands [19, Page 107]. A problem frame
indicates this part by a requirement constraint on the respective problem domain.</p>
        <p>
          In general, each problem frame is a unique combination of problem domains
and their respective shared phenomena, which differ in their type, quantity, and
correlation. The functionality of a software as describable by problem frames
establishes one of the following three kinds of machine control: a constrained
X L99 Le(X)ical domain “is a physical representation of data” [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. The machine
controls reads or writes of these data.
        </p>
        <p>
          D L99 (D)isplay domain is “an output device for the machine” [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. On behalf
of the machine, it provides “information to other problem domains” [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
C L99 (C)ausal domain is provided with information controlled by the machine
to invoke specific behavior of this problem domain.
        </p>
        <p>CD!Y2</p>
        <p>CDM!E1
machine domain</p>
      </sec>
      <sec id="sec-2-7">
        <title>CCCoololelelcectcttDDDaatatataa</title>
        <p>interface CA!E2
developer view
e.g. functional specification
problem domain</p>
      </sec>
      <sec id="sec-2-8">
        <title>Candidate Data</title>
        <p>X
requirements
FUR02</p>
      </sec>
      <sec id="sec-2-9">
        <title>Candidate E3</title>
        <p>B domain type
client or user view
e.g. user story
Legend for interfaces and their {shared phenomena}:
E1{store40FormData}, E2{fillIn40FormData,FormData1..40}, E3{fillInCandidateData},
Y2{FormData1..40}, Y4{collectCandidateData}</p>
        <p>
          For example, in Figure 2 a set of requirements named FUR02 builds a
subproblem for a Student Recruitment Web Portal [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], that fits the “simple
workpieces” [19, page 96] problem frame. These requirements are concerned with
collecting a candidate’s personal data necessary to prepare the candidate’s
application to a study program. They belong to a problem class which accounts
for functionality that enables the processing i.e. storage of personal data.
Function Point Analysis [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] according to the International Function Point Users
Group [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] is a functional size measurement (FSM) method, which is
standardized in ISO/IEC 20926 [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. It has become of vital importance in the early phases
of software projects, since it is of use as input to effort estimation in project
planning. Function Point Analysis was originally created by Allan Albrecht in 1979,
who suggested a measure for developers productivity [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
        </p>
        <p>This technology-agnostic approach makes use of logical so-called base
functional components to classify functional, user-recognizable requirements (FUR)
into an “elementary unit of FUR defined by and used by an FSM Method for
measurement purposes” [17, page 2, section 3.8]. Their size is determined within
the counting process and expressed by a number in function points.</p>
        <p>
          Functional size measurement introduces a means for quantifying
requirements specifications. However, it is no Requirements Engineering method, since
its prime purpose is not to result in a comprehensive requirements specification.
Actually, its quality depends on a good requirements specification [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
        </p>
        <p>In this connection, identification of the application boundary, which is a
“conceptual interface between the software under study and its users” [17, page 3,
section 3.9] is crucial. The base functional components are counted with respect
to the application boundary as illustrated in Figure 3. In order to determine the
functional size of some requirements consistently, they need to be decomposed
to fit the base functional components in a reproducible way.
ILF</p>
        <p>EI
boundary
application EQ / EO EQ / EO
user</p>
        <p>EIF
application
other</p>
        <p>
          The measurement process according to ISO/IEC 20926 [17, page 8]
distinguishes data functions and transactional functions. Data functions such as
Internal Logical File (ILF), and External Interface File (EIF) relate to requirements
that are concerned with data storage needs. An ILF is some ”information
maintained within the boundary of the application being measured” [17, page 6,
section 3.39], in contrast to an EIF, which is some ”information, which is
referenced by the application being measured, but which is maintained within the
boundary of another application” [17, page 5, section 3.29]. Requirements that
are concerned with different kinds of data processing are considered by
transactional functions. These are synonyms for the following elementary processes:
EI External Input (EI) is an “elementary process that processes [. . . ]
information sent from outside the boundary” [17, page 4, section 3.27], its
primary intent is to “maintain an ILF [. . . ]” [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
        </p>
        <p>
          EQ ! External Inquiry (EQ) is an “elementary process that sends [. . . ]
information outside the boundary” [17, page 5, section 3.28], its primary
intent is to “present information to a user. It presents only data that is
retrieved [. . . ]” [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
        </p>
        <p>
          EO ! External Output (EO) is an “elementary process that sends [. . . ]
information outside the boundary and includes additional processing logic
beyond that of an external inquiry” [17, page 5, section 3.30], its
primary intent is to “present information to a user. It presents data that is
calculated or derived [. . . ]” [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
        </p>
        <p>Given that an elementary process is the “smallest unit of activity that is
meaningful to the user” [17, page 4, section 3.21], it specifies what the software
shall do in terms of different kinds of processing and functionality, respectively.
This drives decomposition of FUR comparable to problem frames.
2</p>
        <sec id="sec-2-9-1">
          <title>Requirements Work Packages</title>
          <p>
            “At the start of each development iteration, [. . . ] Groups of user stories are
associated with a generic ’feature’. The complexity of each feature is then
estimated” [9, page 1343]. Thus, the challenge is to set up commensurable units
of requirements, i.e. requirements work packages [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] in the following, that
maintain a consistent level of detail and address a comparable kind of functionality.
Problem Frames tackle this challenge.
          </p>
          <p>
            On the one hand, they allow for classifying requirements into self-contained
subproblems, which maintain requirements description at a consistent level of
detail, as long as their underlying frames belong to the same hierarchy of
patterns. Each Problem Frame in Table 1 belongs to the set of Basic FSM Patterns
“that apply to a complete yet single functional process” as defined in [
            <xref ref-type="bibr" rid="ref26">26</xref>
            ].
          </p>
          <p>On the other hand, each set of requirements grouped by a problem frame
is concerned with a particular kind of functionality, which is indicated by the
constrained problem domain as discussed in Section 1.1. It can be compared
and mapped to the primary intent of an elementary process as discussed in
Section 1.2, which indicates similarly the kind of functionality or respective
processing to be sized in a function point count. Table 1 provides for this relation
by a bullet point.</p>
          <p>As a result, Table 1 lists 17 Basic FSM patterns, which allow to set up
requirements work packages. These patterns provide for a grouping of
requirements, which relate to measurable base functional components. They can be sized
according to the rules of functional size measurement. A respective requirements
sizing method is presented in Section 3.</p>
          <p>
            Table 1 makes use of a short cut representation for problem frames introduced
in prior work [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]. In each row, it simply enumerates relevant elements of a frame
without changing its semantics. For instance, the “simple workpieces” problem
frame as applied in Figure 2 is given by row #02 in this short cut, tabular form.
3
          </p>
        </sec>
        <sec id="sec-2-9-2">
          <title>Requirements Sizing Method</title>
          <p>
            This work proposes to use a customized requirements sizing method to provide
for consistent and reproducible requirements estimates. It is applicable within
planning of a project iteration as supplementary method to Planning Poker and
given in detail in the Frame Counting Agenda [
            <xref ref-type="bibr" rid="ref28">28</xref>
            ]. This counting procedure
adopts the steps of the ISO/IEC 20926 [17, section 5, pages 8–19, and 21]
functional size measurement process to become effective for determining function
points based on requirements work packages, such as developed in Section 2,
and by means of the complexity and size metrics for data and transactional
functions as defined by Tables A.1–A.5 in ISO/IEC 20926:2009 [17, page 23].
With regard to its process description, it follows the agenda concept [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ].
          </p>
          <p>
            Figure 4 depicts the requirements work package “Collect Candidate Data” in
a stereotype notation as applied in the UML4PF [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ] eclipse plugin for modeling
problem frames. Domains that take the role of base functional components e.g.
Candidate Data as ILF, Candidate as EIF, and Collect Data as an EI, can be
easily identified and jointly considered in the counting process due to this uniform
problem representation. That way, the size of a requirements work package is
determined with special attention to the steps Determine Data Functions and
Determine Transactional Functions of the counting procedure, which are the
most critical and error-prone steps at once [12, page 205] as has been observed
in industrial practice [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ].
          </p>
          <p>«subProblem» FUR02 Collect Candidate Data</p>
          <p>CDM!{store40FormData}, CD!{FormData1..40 }
«machine» Collect Data transactional function (EI)
«lexicalDomain» Candidate Data data function (ILF)
{collectCandidateData}</p>
          <p>«constrains»
«requirements» FUR02
CA!{fillIn40FormData, FormData1..40}
«refersTo»
{fillInCandidateData}
«biddableDomain» Candidate data function (EIF)</p>
          <p>
            Establishing requirements work packages based on functional size
measurement patterns also prevents a malpositioned application boundary [
            <xref ref-type="bibr" rid="ref25">25</xref>
            ], which
is a major source of difficulties in identifying base functional components and
is therefore a root cause of wrong counts. In order to limit this risk of wrong
counts, the proposed requirements sizing method provides validation conditions,
which safeguard the application boundary and its involved base functional
components. These validation conditions care for the associated counting rules in
compliance with ISO/IEC 20926.
4
          </p>
        </sec>
        <sec id="sec-2-9-3">
          <title>Discussion</title>
          <p>
            To give an example of the outcome produced by the requirements sizing method
as introduced in Section 3, it is applied to a Student Recruitment Web Portal [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ].
Table 2 lists several ’features’ of this web portal together with their respective
point values, which have been established by use of the patterns and method
proposed in this work. Details on how to obtain function points for a feature are
given in the Frame Counting Agenda [
            <xref ref-type="bibr" rid="ref28">28</xref>
            ].
          </p>
          <p>The list in Table 2 can be used by the project team to set up the requirements
baseline for a project iteration. These requirement estimates allow to organize
the Sprint Backlog, i.e. to commit to a set of requirements work packages, which
are then to be done in the time box of a project iteration. A requirement work
package, for which the team successfully delivers desired product features after
completing the iteration, can be scored for the requirements baseline respectively.</p>
          <p>Statistics on these baseline scores can be used to adjust iteration planning [27,
page 170]. A credible baseline is established depending on measurable project
outcome (scored points), which demonstrably fits into the time box of a project
project outcome (points scored)
iteration, e.g. credibilitybaseline = requirements baseline (points planned) . Thus, a
requirements baseline, which is established by means of functional size
measurement patterns, relates to fulfilled requirements, i.e. satisfied user expectations,
rather than to individual team estimates.</p>
        </sec>
        <sec id="sec-2-9-4">
          <title>Related Work</title>
          <p>
            In [
            <xref ref-type="bibr" rid="ref20">20</xref>
            ] an “initial investigation” on the general applicability of problem frames to
functional size measurement is outlined to be promising. That work is resumed
in [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ], where problem frames are used to set up UML sequence diagrams for
user requirements as a means that is “fairly easy to measure”. In contrast to the
aforementioned, this work proposes to use problem frames i.e. functional size
measurement patterns as the first class means for requirements priorization and
enactment by a project team.
6
          </p>
        </sec>
        <sec id="sec-2-9-5">
          <title>Conclusion</title>
          <p>
            The contribution of this work is twofold: As discussed in Section 2, it takes the
problem frames approach to obtain recognizable classes of requirements, which
are capable of relating user requirements with more measurable, technical
specifications. They allow to transfer requirements into self-contained subproblems
i.e. work packages, that are meaningful as units of work that the team can
commit to and score for the baseline of a project iteration, and as units of measure
for requirement’s functional size. As discussed in Section 3, this work proposes
to use a counting procedure for the functional size measurement patterns in
Table 1, that is based on a match of the problem frame concept with that of base
functional components. These contributions serve the estimator to obtain
reproducible results, i.e. function point estimates for requirements, that comply with
a standard for functional size measurement, i.e. ISO/IEC 20926 [
            <xref ref-type="bibr" rid="ref17">17</xref>
            ]. This
provides for estimates consistency, which is fundamental to establish a comparative
requirements and involved performance baseline [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ].
7
          </p>
        </sec>
        <sec id="sec-2-9-6">
          <title>Future Work</title>
          <p>
            This work implements an Integrated Requirements Engineering approach [
            <xref ref-type="bibr" rid="ref24">24</xref>
            ].
It establishes uniform requirement components by means of patterns, which are
meaningful to clients and developers as the project’s collaborators. To
investigate the use of this means to establish a commensurable point of reference
for requirements and their involved performance baseline, the proposed
requirements patterns and sizing method needs to be evaluated on the basis of more
sample applications than the Student Recruitment Web Portal.
          </p>
          <p>With regard to the client, it is intended to investigate how tender preparation
and mockup creation relate to requirements work packages. With regard to the
developer, it is planed to investigate how an appropriate design or reusable
software components can be chosen with respect to a requirements work packages,
that fit the project time box.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Albrecht</surname>
          </string-name>
          .
          <article-title>Measuring Application Development Productivity</article-title>
          .
          <source>In Proc. of SHARE</source>
          , GUIDE, and IBM App. Dev. Symp., pages
          <fpage>83</fpage>
          -
          <lpage>92</lpage>
          . IBM,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>G. B.</given-names>
            <surname>Alleman</surname>
          </string-name>
          .
          <article-title>Performance-Based Project Management</article-title>
          . AMACOM,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. V. d. Bianco and
          <string-name>
            <given-names>L.</given-names>
            <surname>Lavazza</surname>
          </string-name>
          .
          <article-title>Applying the COSMIC Functional Size Measurement Method to Problem Frames</article-title>
          .
          <source>In Proc. 14th ICECCS. IEEE</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>B. W.</given-names>
            <surname>Boehm</surname>
          </string-name>
          . Software Engineering Economics. Prentice Hall,
          <year>1981</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>M.</given-names>
            <surname>Cohn</surname>
          </string-name>
          .
          <source>Agile Estimating and Planning. PHPTR</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M.</given-names>
            <surname>Cohn</surname>
          </string-name>
          .
          <article-title>Establishing a Common Baseline for Story Points</article-title>
          . http://bit.ly/ 2dk13Gl,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>M.</given-names>
            <surname>Cohn</surname>
          </string-name>
          .
          <article-title>The Best Way to Establish a Baseline When Playing Planning Poker</article-title>
          . http://bit.ly/2i5g1GF,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>I.</given-names>
            <surname>Côté</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Hatebur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Heisel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I.</given-names>
            <surname>Wentzlaff</surname>
          </string-name>
          .
          <article-title>A Systematic Account of Problem Frames</article-title>
          .
          <source>In Proc. of the EuroPLoP. UVK</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>M.</given-names>
            <surname>Daneva</surname>
          </string-name>
          , E. van der Veen, C. Amrit,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghaisas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Sikkel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Ajmen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Ramteerthkar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Wieringa</surname>
          </string-name>
          .
          <article-title>Agile requirements prioritization in large-scale outsourced system projects: An empirical study</article-title>
          .
          <source>Journal of systems and software</source>
          ,
          <volume>86</volume>
          (
          <issue>5</issue>
          ):
          <fpage>1333</fpage>
          -
          <lpage>1353</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>W. E.</given-names>
            <surname>Deming</surname>
          </string-name>
          .
          <article-title>Out of the Crisis</article-title>
          . MIT-CAES,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>D.</given-names>
            <surname>Garmus</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Herron</surname>
          </string-name>
          .
          <article-title>Function Point Analysis - Measurement Practices for Successful Software Projects</article-title>
          .
          <source>Addison-Wesley</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>C.</given-names>
            <surname>Hazan</surname>
          </string-name>
          .
          <source>The 13 Mistakes of Function Point Counting</source>
          , chapter
          <volume>11</volume>
          , pages
          <fpage>197</fpage>
          -
          <lpage>214</lpage>
          . In International Function Point Users Group [
          <volume>16</volume>
          ],
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>M.</given-names>
            <surname>Heisel</surname>
          </string-name>
          .
          <article-title>UML4PF eclipse plugin</article-title>
          . http://www.uml4pf.org/.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>M.</given-names>
            <surname>Heisel</surname>
          </string-name>
          .
          <article-title>Agendas - A Concept to Guide Software Development Activites</article-title>
          .
          <source>In Proc. Systems Implementation</source>
          <year>2000</year>
          , pages
          <fpage>19</fpage>
          -
          <lpage>32</lpage>
          . C&amp;H, London,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>A.</given-names>
            <surname>Hunger</surname>
          </string-name>
          . Student Recruitment Web Portal. http://bit.ly/2kmU2Ja,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. International Function Point Users Group.
          <article-title>The IFPUG Guide to IT and Software Measurement</article-title>
          . Taylor &amp; Francis Group,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. ISO/IEC 20926:
          <year>2009</year>
          .
          <article-title>Software and systems engineering - Software measurement - IFPUG functional size measurement method 2009</article-title>
          . ISO,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>A</article-title>
          .
          <string-name>
            <surname>Jackson. Software Requirements</surname>
          </string-name>
          &amp;
          <article-title>Specifications: a lexicon of practice, principles and prejudices</article-title>
          . Addison-Wesley, New York, NY, USA,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>A</article-title>
          .
          <string-name>
            <surname>Jackson</surname>
          </string-name>
          .
          <article-title>Problem Frames - Analyzing and Structuring Software Development Problems</article-title>
          . Addison-Wesley,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>L.</given-names>
            <surname>Lavazza</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>del Bianco</surname>
          </string-name>
          .
          <article-title>Functional size measurement based on problem frames: A case study</article-title>
          .
          <source>In Proc. of the 3rd IWAAPF. ACM</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. IFPUG.
          <source>IFPUG CPM 4.3</source>
          .
          <fpage>1</fpage>
          -
          <string-name>
            <given-names>Function</given-names>
            <surname>Point Counting Practices</surname>
          </string-name>
          <article-title>Manual (CPM) Version 4</article-title>
          .3.1. International Function Point Users Group,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>R.</given-names>
            <surname>Meli</surname>
          </string-name>
          . Software Measurement in Procurement Contracts, chapter
          <volume>29</volume>
          , pages
          <fpage>561</fpage>
          -
          <lpage>583</lpage>
          . In International Function Point Users Group [
          <volume>16</volume>
          ],
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>K.</given-names>
            <surname>Schwaber</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sutherland</surname>
          </string-name>
          . Scrum GuideTM. http://bit.ly/1rulpv2,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. I. Sommerville. Integrated Requirements Engineering: A Tutorial.
          <source>IEEE Software</source>
          ,
          <volume>22</volume>
          (
          <issue>1</issue>
          ):
          <fpage>16</fpage>
          -
          <lpage>23</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>Total</given-names>
            <surname>Metrics</surname>
          </string-name>
          .
          <article-title>Function Point FAQs</article-title>
          . http://bit.ly/2jtEe9X,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>S.</given-names>
            <surname>Trudel</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.-M. Desharnais</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Cloutier</surname>
          </string-name>
          .
          <article-title>Functional Size Measurement Patterns: A Proposed Approach</article-title>
          . In IWSM Mensura, Berlin,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>K.</given-names>
            <surname>Waters</surname>
          </string-name>
          .
          <source>All about Agile. Createspace</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>I. Wentzlaff. Frame</given-names>
            <surname>Counting</surname>
          </string-name>
          <article-title>Agenda (</article-title>
          .
          <source>pdf)</source>
          . http://bit.ly/2jaDTYY,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>