<!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>Applying Layering Concept to the Software Requirements Analysis and Architectural Design</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yunarso Anang</string-name>
          <email>anang@stis.ac.id</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yoshimichi Watanabe</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computational Statistics, Institute of Statistics Jl. Otto Iskandardinata No. 64C</institution>
          ,
          <addr-line>Jakarta 13330</addr-line>
          ,
          <country country="ID">Indonesia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Interdisciplinary Graduate School of Medicine and Engineering, University of Yamanashi 4-3-11 Takeda</institution>
          ,
          <addr-line>Kofu, Yamanashi 400-8511</addr-line>
          ,
          <country country="JP">Japan</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Considering software architecture concurrently and iteratively with software requirements, has been illustrated as a way to increase productivity and stakeholder satisfaction in the twin peaks model software development process. Because this model exposed only the tip of the iceberg, and lacks of concrete de nitions and techniques, an approach of utilizing this model in the real world has been proposed by applying the concept of the product development process based on Quality Function Deployment. In this paper, we will go further of giving more detail about how to de ne the requirements along with software architecture. In order to provide a method to de ne a robust software architecture but to be adaptable to the presence of changing requirements, we apply layering concept to the software requirements analysis and architectural design.</p>
      </abstract>
      <kwd-group>
        <kwd>requirements analysis</kwd>
        <kwd>architectural design</kwd>
        <kwd>layer</kwd>
        <kwd>volatility</kwd>
        <kwd>abstraction</kwd>
        <kwd>twin peaks model</kwd>
        <kwd>quality function deployment</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>A software development project typically starts with extracting some software
requirements from the stakeholders. After that, the developer team uses those
software requirements as the input for architectural design to de ne the
architecture of the software system to be built. This process is typical of software
development based on the waterfall model.</p>
      <p>In such development process, the software requirements have become a
constraint in the architectural design process. In this process, rather than developing
from the scratch, most projects are adopting one of the well known and explicit
architectural patterns, or selecting a software architecture by reusing the already
trusted components providing the framework for the software application.
However, since this framework also prescribe the capability such as the extensibility
of the application, if improperly selected in the architectural design, it might be
di cult to x in the latter process. The constraint of architectural design can
also impede the changes in the software requirement itself, when the changes
cannot be implemented in the already selected architecture. As the result, the
stakeholder might not have enough satis ed with the nal product.</p>
      <p>
        Software requirements are the important elements to be considered rst in
software development. Software architecture, which is de ned based on software
requirements, is also the important thing to be thought in order to ful ll the
given requirements at the time the architectural design performed. Software
architecture also needs to have the exibility to deal with future change of software
or user requirements. The twin peaks model has been proposed to emphasize that
developers should equally give status to the speci cation of requirements and
architectures [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Compared to Boehm's spiral life cycle model [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], the twin peaks
model provides a ner-grain one, a life cycle that acknowledges the need to
develop software architectures that are stable, but still adaptable, in the presence
of changing requirements. However, though the concept is well explained, there
is no detail or concrete explanation of what and how to apply, and, at the time,
the software-development community has not yet recognized that such a model
represents acceptable practice.
      </p>
      <p>
        Since the result of requirements analysis a ects the overall result of the
nal product, and it is important to ensure customer will be satis ed with the
nal product, we will further discuss the method of requirements analysis. In
our research, we propose the use of Quality Function Deployment (QFD) as a
method to clarify the voices of the customer, and de ne the product quality as
well as the business functions of the product based on them, and take them in
the whole development process of the product [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. An approach of combining the
QFD based software requirements analysis with the twin peaks model has been
proposed [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The approach provides a concrete method of de ning and
deploying software requirements concurrently with software architecture's components,
using the QFD's well-known two-dimensional tables.
      </p>
      <p>In this paper, in order to provide a more detail and concrete method in
establishing stable software architecture but to have a range of exibility over
changing requirements, we apply the concept in layered architectural patterns
to the software requirements analysis and architectural design. The concept is
hereinafter referred to as the layering concept.</p>
      <p>The rest of this paper is organized as follows. Section 2 presents the concept
in layered architectural pattern. Section 3 discusses how we apply the layering
concept in requirements analysis and architectural design. In the section, we also
show how we evaluate the approach using an example. Finally, we conclude this
paper in Section 4.
2</p>
      <p>The Concept in Layered Architectural Patterns
Software architecture is a description of subsystems, components, and
relationships among them, required for building a software system. Software
architectural design is a process whose purpose is to provide a design for the software
that implements and can be veri ed against the requirements.</p>
      <p>
        Among various numbers of software architectures, those that are found
particularly useful for families of systems are often codi ed into architectural
patterns. From several architectural patterns already established [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], we chose the
layered architectural pattern, because its layering concept has the bene ts to
separate functionalities into distinct layers, and it can support exibility and
maintainability if it appropriately de ned.
      </p>
      <p>
        The layering concept helps to structure applications that can be decomposed
into groups of subtasks in which each group of subtasks is at a particular level
of abstraction. Layers are sorted vertically, where that having the lowest level of
abstraction is placed at the bottom, and that on the uppermost level of
abstraction is placed on the top. The lower layer has less chance of modifying than those
above it. One of software architectural designs applying the layering concept is
the principal 3-layer architecture: presentation, domain, and data source [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], as
summarized in Fig. 1.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Presentation</title>
    </sec>
    <sec id="sec-3">
      <title>Domain</title>
    </sec>
    <sec id="sec-4">
      <title>Data Source</title>
      <sec id="sec-4-1">
        <title>Layer 3 Display of information,</title>
        <p>capturing user input</p>
      </sec>
      <sec id="sec-4-2">
        <title>Layer 2 Functionalities in the</title>
        <p>business logic</p>
        <p>Layer 1 bCaocmkemnudnsiecravtiicoens with the</p>
        <p>The principal 3-layer architecture has a di erent level of abstraction in each
layer. Starting from the bottom, data source layer has the lowest level of
abstraction. It means data source should have the smallest potential to change.
Changing in data source may have a big impact to the upper layers. In contrary,
changes in the application layer, such as changing the color of display or even
changing the user interface from desktop to web-based, do not propagate to the
lower levels. However, this layer may have a bigger chance of changing compared
to lower levels.
3</p>
        <p>Applying Layering Concept to the Requirements
Analysis and Architectural Design
Software requirements analysis consists of activities including requirements
elicitation, requirements analysis, requirements speci cation, validation, and
management activities. The requirements analysis activity is the most important step
in the overall development process, as in this activity, the requirements will be
classi ed. The appropriateness of the classi cation will decide how the
requirements would be handled in the architectural design. The software requirements
de ned in this activity will in uence how rigid or stable the software architecture
will be designed, and at the same time, that will, indirectly, decide how easy to
accommodate in the presence of changing requirements. We need a method of
classi cation which can give an input to the architectural design whose result is
adaptable to the future changing of requirements.</p>
        <p>
          In the previous section, we have discussed how the layering concept
benets to increase the extensibility of software development and the exibility to
accommodate changes in requirements. We propose applying the same concept
in classifying requirements. We consider the volatility or chance of changing of
requirements to be the base of applying the layering concept. There are few
researches studying the volatility of software requirements such as in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ][
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], but
mainly they only study the impact of requirements volatility or its statistics in
the development process.
        </p>
        <p>It is stated that some requirements will change during the life cycle of the
software, and even during the development process itself. For example, in an
online new student admission application, requirements for functions to make
the registration online are likely to be less volatile than requirements to support
integration of the admission fee payment. The former re ects a fundamental
feature in the admission application, while the latter may change as the payment
method may vary from manual payment to automatic payment via online
banking application which may need a system integration with banking application.
It is useful if some estimate of the likelihood that a requirement will change
can be made. Flagging potentially volatile requirements can help the software
engineer to establish a design that is more tolerated of change.</p>
        <p>Fig. 2 shows how we apply the layering concept to the requirements analysis
and architectural design. First, the requirements will be sorted based on their
degree of volatilities. The sorted requirements then will be used in architectural
design, which is in this case, they are mapped into the 3-layer architecture.
layered requirements
architectural
design
n
i
a
m
o
d
e
c
ro
u
s
a
t
a
layered architecture d
n
o
itte
a
n
s
e
r
p
higher layer
higher level of abstraction
higher degree of volatility
more chance of changing
less chance of changing
lower degree of volatility
lower level of abstraction
lower layer</p>
        <p>
          To illustrate the approach described above, we evaluate it using an
example. The example is taken from the paper introducing the requirements analysis
method using QFD [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. The example is about the virtual software of web based
system which provides management of pictures taken while the user traveling.
We use the result of the method described in the paper as the input of our
proposed approach as shown in left side of table in Fig. 3.
        </p>
        <sec id="sec-4-2-1">
          <title>Scene</title>
          <p>Manage
Pictures
Manage
Pictures
snDatabase
o
it
c
n
u
F
l
a
n
o
i
itdManage
dAAccount
s
n
o
it
c
nDesign Album Layout Automatically
FLayout
u
c
i
s
a
B</p>
          <p>Register Payment
Order Printing Information</p>
        </sec>
        <sec id="sec-4-2-2">
          <title>Result of Requirements Analysis using QFD</title>
        </sec>
        <sec id="sec-4-2-3">
          <title>Functional Requirements</title>
          <p>obtain ner-grain result.</p>
          <p>Conclusions
In a standard list of software life cycle processes, such as that in ISO/IEC/IEEE
Standard 12207:2008, software design consists of two activities that t between
software requirements analysis and software construction. Nuseibeh has already
proposed the twin peaks model by giving the equal status of the speci cation of
requirements and architecture, and to provide more detail and concrete method,
Watanabe et al. has proposed to combine the method of software requirements
analysis based on QFD with the twin peaks model.</p>
          <p>In this paper, we have proposed applying the layering concept to requirements
analysis and architectural design, in order to obtain layered requirements and
a layered architecture. This layered structure provides a stable architecture but
adaptable in the presence of changing requirements.</p>
          <p>Although we have provided illustrations for our approach, we exposed only
a concept or likely an idea. More work remains to evaluate the validity of the
method and the e ectiveness of the approach in a real project.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Anang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amemiya</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yoshikawa</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Watanabe</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shindo</surname>
          </string-name>
          , H.:
          <article-title>A Software Tool for Making a Two-way Table Like a Quality Table</article-title>
          .
          <source>In: Proceedings of 11th International Symposium on Quality Function Deployment</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Boehm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>A Spiral Model of Software Development and Enhancement</article-title>
          .
          <source>Computer</source>
          <volume>21</volume>
          (
          <issue>5</issue>
          ),
          <volume>61</volume>
          {
          <fpage>72</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Brown</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Craig</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hester</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pitt</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stinehour</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weitzel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amsden</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jakab</surname>
            ,
            <given-names>P.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Enterprise Java Programming with IBM WebSphere</article-title>
          . Addison
          <string-name>
            <surname>Wesley</surname>
          </string-name>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bushmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meunier</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rohnert</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Somerlad</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stal</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Pattern-oriented Software Architecture: A System of Patterns</article-title>
          . John Wiley &amp; Sons (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Dev</surname>
          </string-name>
          , H.,
          <string-name>
            <surname>Awasthi</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>A Systematic Study of Requirement Volatility during Software Development Process</article-title>
          .
          <source>International Journal of Computer Science Issues</source>
          <volume>9</volume>
          (
          <issue>2</issue>
          ),
          <volume>527</volume>
          {
          <fpage>533</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Japanese</given-names>
            <surname>Standards</surname>
          </string-name>
          <article-title>Association: JIS Q 9025:2003 Performance Improvement of Management Systems { Guidelines for Quality Function Deployment</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Nuseibeh</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Weaving the Software Development Process Between Requirements and Architectures</article-title>
          .
          <source>In: Proceedings of 23rd International Conference on Software Engineering</source>
          , International Workshop on Software Requirements to Architectures
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Singh</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vyas</surname>
          </string-name>
          , R.:
          <source>Requirements Volatility in Software Development Process</source>
          .
          <source>International Journal of Soft Computing and Engineering (4)</source>
          ,
          <volume>259</volume>
          {
          <fpage>264</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Watanabe</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kawakami</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Iizawa</surname>
          </string-name>
          , N.:
          <article-title>Software Requirements Analysis Method using QFD</article-title>
          .
          <source>In: Proceedings of 18th International Symposium on Quality Function Deployment</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Watanabe</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yoshikawa</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shindo</surname>
          </string-name>
          , H.:
          <article-title>Software Development Method based on Twin Peaks Model with QFD</article-title>
          .
          <source>In: Proceedings of 19th International Symposium on Quality Function Deployment</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>