<!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>Modeling Requirements with RED</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Harald Storrle</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department for Applied Mathematics and Computer Science Technical University of</institution>
          <country country="DK">Denmark</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Shortcomings in Requirements Engineering (RE) are known to be the prime source of software development project failures. Better education can help improve this situation, but a critical prerequisite is adequate (and a ordable) tooling for modeling and working with requirements speci cations. The author has been teaching a major Requirements Engineering class at the Technical University of Denmark (DTU) for six years, and the need of tool support to do practical case-study work is quite obvious. We had prior experience with commercial tools (DOORS, RequisitePro, and JIRA), and we have tried di erent approaches to tooling in the course, including the \pragmatic" solution (spreadsheets and text documents), an open source RE tool (OSRMT, with massive customization), and a UML tool (MagicDraw, with extensions). Neither of them proved to be helpful.1 Among their disadvantages are their high cost (licenses, customization, learning), vendor lock-in, a hard-wired development approach, eclectic coverage of requirements concepts, and inconsistent terminology. In a nutshell, existing tools are focused on practical software production and speci c customers while the concerns of education are less important. So, eventually, we decided to build our own tool, the Requirements Editor (RED). RED is speci cally created to address the needs of students and teachers, but it has matured beyond a mere academic prototype: based on personal experience with RE tools in large development projects, we believe it outperforms many existing commercial products.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Motivation</title>
    </sec>
    <sec id="sec-2">
      <title>Tool capabilities</title>
      <p>
        Previous versions of RED already provided a rich set of requirements editing
capabilities, including classic textual requirements, stakeholders, goals, glossaries,
sketch-style UML model fragments, and so on. Also, major tools like reporting,
search, logging/status information, inspection support, and user-de ned views
were provided. Finally, all the usual qualities and UI capabilities of an Eclipse
RCP application were available, which made RED a stable and easy to use tool
from the start. However, the new version 3.0 of RED signi cantly extends the
previous version [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], o ering many new modeling features. See Fig. 1 for an
incomplete overview of the current version of the meta-model.
      </p>
      <p>
        { Use Case Modeling: RED now provides fully edged Use Case modeling
capabilities, focusing on the tabular view, which Dobing and Parsons
describe as the most common form of use cases [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. It does provide aspects
such as cost and complexity to cover the most prevalent administrative
aspects and support important requirement management activities.
{ E ort Estimation and Prioritization: RED allows to aggregate cost/bene t
estimates over any selection of functions, e.g., subsystems. It also allows
sorting and contrasting of feature sets, and has built-in support for structured
semi-automatic e ort estimation based on the well-known Use Case Point
method [
        <xref ref-type="bibr" rid="ref3 ref5">3, 5</xref>
        ].
{ Personas and Storyboards: User centric systems require special
attention to usage scenarios which are best captured using prototype sketching
and personas [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. RED allows to enter personas, and provide them with
rich interactive storyboards speci ed as scenarios. Like Use Case scenarios,
storyboards may be enacted.
{ Complex Scenarios with Enactment: Scenarios may be used to enrich
use cases and many other speci cation elements (e.g., connectors, actors, or
personas). Beyond customary linear scenarios, we also o er a broad range of
complex interaction operators such as the ones known from UML interactions
(e.g., alt, par, loop). Steps may be speci ed textually, or by pictures so that
a sequence of steps can be reported much like a graphic novel. Beyond mere
speci cation, we also o er interactive enactment of scenarios, which is a
valuable method of validating behavior [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
{ Organization and System Structure Modeling: a simple form of
architecture modeling is provided with RED, that satis es both the requirements
suggested by ISO 42010 [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] (and its predecessor, IEEE P1471), and modeling
of organizational structures.
{ Multi-File Projects: with increasing project and team-size it becomes
progressively more important to support distributed collaboration. A rst step
towards this is the introduction of multi- le projects which allows us to
drastically reduce the number of edit con icts. Tools for importing old le
formats and interactively restructuring a project are included.
      </p>
      <p>RED strives to be open in every sense, thus we allow to include any kind
of documents into a RED project, acknowledging the fact that the most widely
used requirements tools (in particular in the early phases), are Word, Excel, and
PowerPoint. This kind of document can be stored in a RED project, and opened
from within RED (as far as the respective tools are available).
3</p>
    </sec>
    <sec id="sec-3">
      <title>Project History and Usage Experiences</title>
      <p>Faced with these requirements, we decided to create RED using the Eclipse
Rich Client Platform (ERCP). Since 2011, seven students have contributed to
RED through their MSc-thesis projects, and three more are currently on-going,
adding up to almost 300 ECTS points worth. A student programmer is employed
to coordinate and integrate the contributions, x bugs, and add small features
not tting into the larger projects.</p>
      <p>A rst version was deployed in September 2012 and since then, we have used
RED continuously in our RE courses.2 By now, RED has been used by students
for several thousand hours. The feedback received there was used to improve
the tool, and while initial reactions were mixed, they have gradually improved.
Students now use RED without problems.</p>
      <p>The latest version has not been eld tested yet, but developer tests suggests
no decrease in stability or usability, while the feature set has expanded
considerably. We believe that RED is now relatively close to commercial solutions with
regards to capabilities and qualities.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Architecture and Implementation</title>
      <p>RED has been created using the latest Eclipse platform available at the time
(Eclipse 3.7 \Indigo"). RED is organized in a set of components (\features" in
Eclipse terminology, see Fig. 2), each providing speci c bundles of concepts and
capabilities: the Core module provides the main UI of the application and the
back-bone of the meta-model. It supports a number of feature-modules, such
as Glossary, Speci cationElements and Help. We have also reused a number of
third-party plug-ins, including EPF RichText and AgileGrid, that increased the
code reuse ratio.</p>
      <p>The main rationale behind for using Eclipse is its proven ability to create rich,
cross-platform applications. Due to its plug-in-architecture, signi cant leverage
through reuse was achieved. Adopting a popular framework, we also ensured
maintainability and long-term development.</p>
      <p>One particular highlight in the release currently under development are the
visual editors. They will present an easy to use front-end for specifying many
of those elements of a requirements speci cation that we have come to expect
as being primarily visual, e.g., use case and goal models. They will supplement
the existing tabular and form-based editors. Adding a visual front end will allow
both faster modeling and more e ective communication of speci cations.
2 In this course, there are 50-60 students per year, working in groups of 4-6 for 13
weeks, spending approximately 25 hours per week for the course.</p>
      <p>CD RED Meta-Model</p>
      <sec id="sec-4-1">
        <title>Element</title>
        <sec id="sec-4-1-1">
          <title>ElementRelationship</title>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>SpecificationElement</title>
        <sec id="sec-4-2-1">
          <title>Vision</title>
        </sec>
        <sec id="sec-4-2-2">
          <title>Stakeholder</title>
        </sec>
        <sec id="sec-4-2-3">
          <title>Assumption</title>
        </sec>
        <sec id="sec-4-2-4">
          <title>UseCase</title>
        </sec>
        <sec id="sec-4-2-5">
          <title>Scenario</title>
        </sec>
        <sec id="sec-4-2-6">
          <title>Actor</title>
          <p>
            Another highlight is the Dynamic Online Extension Connector which is a
novel feature allowing to seamlessly integrate features at run-time via
webservices. This is useful to provide features which are di cult to integrate for
technical reasons (e.g., they are based on a di erent technology), that require
more resources than are readily available on a standard client desktop, that must
be deployed late, or that must be maintained and updated independently. It is
also a way to allow a wide spectrum of extensions to be provided by third parties,
avoiding IP issues. One example of such a service is Hypersonic [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ].
5
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Ongoing and Future Work</title>
      <p>We currently focus on providing a few missing features such as visual editors,
connectors for other formats such as ReqIF, and a teamwork server to support
distributed work, easy to use version control, and controlled natural language
checking facilities. Also, the recent set of additions prompts us to consolidate the
meta model and software architecture of RED once more. Further features are
currently postponed due to resource shortage, including support for star-card
based approaches as used for \agile" requirements.</p>
      <p>We are working on legal issues which, when resolved, will allow us to release
RED under a liberal licensing scheme. Clearly, this is the cornerstone both to
attracting outside contributions to further evolve RED, and to allow its usage
in industrial projects where it will realize its true potential.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Vlad</given-names>
            <surname>Acretoaie</surname>
          </string-name>
          and Harald Storrle. Hypersonic:
          <article-title>Model Analysis and Checking in the Cloud</article-title>
          . In Dimitris Kolovos,
          <string-name>
            <surname>Davide</surname>
            <given-names>DiRuscio</given-names>
          </string-name>
          , Nicholas Matragkas, Juan De Lara, Istvan Rath, and Massimo Tisi, editors,
          <source>Proc. Ws. BIG MDE</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Bill</given-names>
            <surname>Buxton</surname>
          </string-name>
          .
          <article-title>Sketching User Experiences: Getting the Design Right and the Right Design</article-title>
          . Morgan Kaufmann,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Mike</given-names>
            <surname>Cohn</surname>
          </string-name>
          .
          <article-title>Agile Estimation and Planning</article-title>
          . Prentice
          <string-name>
            <surname>Hall</surname>
            <given-names>PTR</given-names>
          </string-name>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Brian</given-names>
            <surname>Dobing</surname>
          </string-name>
          and
          <article-title>Je rey Parsons. How UML is used</article-title>
          .
          <source>Comm. ACM</source>
          ,
          <volume>49</volume>
          (
          <issue>5</issue>
          ):
          <volume>109</volume>
          {
          <fpage>113</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Stephan</given-names>
            <surname>Frohnho</surname>
          </string-name>
          and
          <string-name>
            <given-names>Gregor</given-names>
            <surname>Engels</surname>
          </string-name>
          .
          <article-title>Revised use case point method-e ort estimation in development projects for business applications</article-title>
          .
          <source>Proc. CONQUEST</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. ISO/IEC/IEEE 42010:
          <fpage>2011</fpage>
          -
          <article-title>Systems and software engineering - Architecture description</article-title>
          .
          <source>Technical report, ISO</source>
          ,
          <year>2011</year>
          . Retrieved 2014-
          <volume>07</volume>
          -06.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Keith</given-names>
            <surname>Phalp</surname>
          </string-name>
          and
          <string-name>
            <given-names>Karl</given-names>
            <surname>Cox</surname>
          </string-name>
          .
          <article-title>Using Enactable Models to Enhance Use Case Descriptions</article-title>
          .
          <source>In Proc. Intl. Ws. Software Process Simulation Modelling (ProSim, co-located ICSE)</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Harald</given-names>
            <surname>Sto</surname>
          </string-name>
          <article-title>rrle and Maciej Kucharek. The Requirements Editor RED</article-title>
          . In Bernard Carre, Houary Sahroui, and Harald Storrle, editors,
          <source>ECOOP, ECSA and ECMFA 2013: Joint Proceedings of Tools, Demos &amp; Posters</source>
          , pages
          <volume>32</volume>
          {
          <fpage>34</fpage>
          ,
          <year>2013</year>
          .
          <source>DTU Technical Report 2014-01.</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>