<!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>
      <journal-title-group>
        <journal-title>Oslo, Norway, October</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Towards a Systematic Approach for Software Synthesis</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Hamid Bagheri</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kevin Sullivan</string-name>
          <email>sullivan@virginia.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Virginia</institution>
          ,
          <addr-line>151 Engineer's Way, Charlottesville, VA 22903</addr-line>
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2010</year>
      </pub-date>
      <volume>4</volume>
      <issue>2010</issue>
      <fpage>101</fpage>
      <lpage>105</lpage>
      <abstract>
        <p>Development of software-intensive systems nowadays rely extremely on middleware platforms as a major building block especially to handle the distribution issues. This dependency has become even more crucial in the distributed embedded systems environment. As such, the architectural choices of such systems are being driven by middleware platforms. However, diversity and high frequency of evolution in middleware platforms lead to architectural models becoming obsolete relatively rapidly, which is in distinct contrast to the resistance nature of software architecture to frequent change. We believe that the key to this is to abstract away from architectural platforms and their induced architectural styles to more abstract representation of applications. In recent work we have shown that architecture-independent application models, developed using modern model-based development (MBD) techniques, can be mapped to application architectures in a variety of architectural styles. Although the work provided an important proof of concept, the styles, or architectural spaces, to which application models were being mapped were simple, idealized styles. Di Nitto and Rosenblum recognized that middleware and similar platforms induce defacto architectural styles. In this paper, we discuss some of the related issues we are addressing in our research towards a systematic approach for software synthesis.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Software-intensive systems are continuously growing in size and complexity. In
recent years, they have ever more migrated from the traditional, localized setting
to highly distributed, and embedded environments. While software engineering
researchers and practitioners have recognized software architecture as a
promising means of managing the complexity of software systems in general [
        <xref ref-type="bibr" rid="ref15 ref17">17, 15</xref>
        ],
other studies have shown its significant role in developing distributed embedded
systems [
        <xref ref-type="bibr" rid="ref11 ref16">16, 11</xref>
        ].
      </p>
      <p>
        Distributed embedded systems, furthermore, rely extremely on middleware
as a major building block to handle the distribution issues [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. However, because
of the pervasiveness of middleware platforms, the architectural choices are being
driven by such platforms and since they are both changing rapidly and are very
diverse, the architecture of most of software-intensive systems and distributed
embedded systems, in particular, are accidental nowadays [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This is in distinct
contrast to the way that software architecture is designated to be, i.e. software
architecture typically comprises the early decisions made about a system, and
is consequently very difficult to change [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. As such, there is a pressing need to
understand how to make architectural changes much more readily.
      </p>
      <p>
        We believe that the key to this is to abstract away from architectural styles
and architectural platforms to more abstract representation of applications. In
recent work [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] we demonstrated the feasibility of separating and combining
formal representations of application properties and architectural styles,
respectively. In doing so, we defined style-specific architectural mappings that relate
style-independent application models to architectural models in given styles.
      </p>
      <p>We have continued studying the notion of architectural mappings and the
ways in which they can be defined and exploited in system development. In this
paper we discuss some of the issues we are addressing in our work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Previous Work</title>
      <p>
        Our earlier work [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] suggests that the concept of application type, parallel to the
notion of architectural style, is important, and that it is possible to separate, and
combine formal representations of, application contents and architectural styles,
respectively. To that end, we formulate the mapping problem as one of finding
satisfying solutions to a specification that combines an application model of a
given application type, with an architectural style specification, and with rules
for mapping application models of the given type to architectural models in the
given style. We have implemented such mappings using Alloy as a language and
satisfaction engine [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        In view of the increasing platform diversity and complexity of
softwareintensive systems, model-based development (MBD) approach has become a
viable means to address system-integration issues in the early phases of
development. In recent work [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] we showed that software architectural styles can serve as
analogs to choices of platforms in model-based development, and that the
concept of application type leads naturally to an abstract, user-friendly approach to
application modeling. That is, the proposed separation of concerns supports a
model-based development and tools approach to architectural-style-independent
application modeling, and architecture synthesis with style as a separate design
variable. More precisely, by providing a prototype tool, Monarch [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], we
illustrated how an approach giving as inputs the formal specifications of application
descriptions and architectural styles can be implemented in a computationally
effective manner by being placed within the formal framework of MBD.
      </p>
      <p>These work provided a proof of concept of the feasibility of the proposed
formal architectural mappings in an automated way. However, it suffers from
some shortcomings especially with respect to the pervasiveness of middleware in
system development. In the next section, we discuss some of the ongoing issues
we are addressing in our work.
3
3.1</p>
    </sec>
    <sec id="sec-3">
      <title>Proposed Work</title>
      <sec id="sec-3-1">
        <title>Middleware-induced architectural styles</title>
        <p>
          Middleware infrastructures are emerging to be used extensively as a major
building block in facilitating system development especially in the large-scale
distributed systems. Notwithstanding the several categories of middleware
platforms, there are numerous middleware infrastructures from which to choose such
as TAO [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], Aura [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], PolyORB [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] and even Enterprise JavaBeans (EJB) [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>
          An approach that may be commonly used and could be ineffective and
counterproductive in practice is that a middleware is chosen first with respect to
its provided services and in turn leads to an unnecessary impact over the
system’s architecture. In contrast, deferring middleware decisions has several
advantages such as separation of concerns and promoting level of abstraction in
the early phase of software design [
          <xref ref-type="bibr" rid="ref12 ref17">12, 17</xref>
          ]. Furthermore, a middleware decision
is not independent of the system’s architecture. As such, decisions made during
the development of the system’s architecture may limit the decision space of the
middleware that will be used to implement the system.
        </p>
        <p>
          Problems can arise when the architectural styles chosen for the application
conflict with the assumptions of the chosen middleware. Blair et al. [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] argue
that the architectural models can be used in systematic synthesis of
middleware configurations. Particularly, it would be helpful to consider structural and
behavioral constraints implied by middleware infrastructures as architectural
styles [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. Formal definition of these styles will allow architects to exploit these
styles in a way that avoids unintentional mismatch between the required
application’s properties and the constraints imposed by the middleware-induced
architectural styles.
        </p>
        <p>
          Although a number of approaches explored to separate and relate middleware
infrastructures and architectural styles induced by them in various domains (e.g.
embedded systems [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], web-based systems [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]) insufficient progress has been
made on mapping architecture-independent application models into the
modern and practical, middleware-induced architectural styles and in turn, into the
realized architecture implementations. We envisage an approach that is based
on model-based development to mapping architecture-independent application
models, considered as platform-independent models, to the realized architecture
implementations in conformance with the architectural styles that are induced by
middleware platforms and other complex and practical application frameworks.
This approach can be used to automate the derivation of the architectural models
(Platform-specific models) from the application models (Platform-independent
model) that refines application types.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Code Generation</title>
        <p>
          The architectural styles so derived promise benefits for both development and
maintenance. However, formal specifications often lack bindings to
implementationlevel constructs. Thereby, it is particularly difficult to verify the fidelity of the
developed software system with respect to the formally generated architectural
model. To use generated architectural models and stylistic guidelines extracted
from the middleware platforms in an effective manner, they should be provided
with support for their implementation [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Implementing architectural models
further is an issue of considerable importance that relates design decisions to
implementation elements that realize those decisions [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], which in turn, leads
to a gap between the architectural concepts from one side and the constructs of
the target programming language from the other side.
        </p>
        <p>
          There are various kind of tools intended for supporting the implementation
of considerable part of code on varying programming languages. However, to our
best knowledge neither of them pay enough attention to the key role that
architectural styles can play in filling the implementation gap. The lack of flexibility
on the subject of the architectural styles is a significant limitation of current
approaches to code generation from architectural models [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. That is, the
architect is forced to develop models in a specific architectural style supported by
a given approach, rather than a suitable style chosen by the architect.
        </p>
        <p>
          In this regard, architectural frameworks are emerged to support specific
architectural styles. In concrete terms, an architectural framework is a software
technologies built upon the functionalities provided by the programming language
and the operating system that provides services with respect to supported
architectural styles [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. Architectural frameworks are practical technologies that
facilitate the system’s development in conformance to specific architectural styles.
They are considered as a significant strategy for bridging the gap between
architectural models and their associated implemented technologies. We
investigate the extensions of our work to include subsequent mappings for synthesis
of executable code from formally derived architectural models on the basis of
architectural styles for a wide variety of such frameworks that support
architectural styles to which the architectural models conform, which in turn returns
the responsibility for stylistic decisions to the architect.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>In this paper we have discussed the role of architectural mappings in
synthesis of software implementations from abstract application models. We have also
touched upon a number of issues we are exploring in our study of
architectural mappings. Consequently, we believe that architectural mappings represent
a promising approach to addressing the challenges of software-intensive systems
and especially of the embedded systems, and will continue to be a focus of our
ongoing research in this domain.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>1. Monarch tool suite. http://monarch.cs.virginia.edu/.</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>H.</given-names>
            <surname>Bagheri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Song</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Sullivan</surname>
          </string-name>
          .
          <article-title>Architectural style as an independent variable</article-title>
          .
          <source>In Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering (ASE'10)</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>H.</given-names>
            <surname>Bagheri</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Sullivan</surname>
          </string-name>
          . Monarch:
          <article-title>Model-based development of software architectures</article-title>
          .
          <source>In Proceedings of the 13th International Conference on Model Driven Engineering Languages and Systems (Models'10)</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>G. S.</given-names>
            <surname>Blair</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Blair</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Issarny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Tuma</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zarras</surname>
          </string-name>
          .
          <article-title>The role of software architecture in constraining adaptation incomponent-based middleware platforms</article-title>
          .
          <source>In IFIP/ACM International Conference on Distributed systems platforms</source>
          , pages
          <fpage>164</fpage>
          -
          <lpage>184</lpage>
          , New York, United States,
          <year>2000</year>
          . Springer-Verlag New York, Inc.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>G. Booch.</surname>
          </string-name>
          <article-title>The accidental architecture</article-title>
          .
          <source>IEEE Software</source>
          ,
          <volume>23</volume>
          (
          <issue>3</issue>
          ):
          <fpage>9</fpage>
          -
          <lpage>11</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>L.</given-names>
            <surname>DeMichiel and M. Keith</surname>
          </string-name>
          . Enterprise JavaBeans specification documentation,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S.</given-names>
            <surname>Giesecke</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Bornhold</surname>
          </string-name>
          .
          <article-title>Style-based architectural analysis for migrating a web-based regional trade information system</article-title>
          .
          <source>In First International Workshop on Web Maintenance and Reengineering (WMR</source>
          <year>2006</year>
          )
          <article-title>in conj</article-title>
          .
          <source>with CSMR</source>
          <year>2006</year>
          , volume
          <volume>193</volume>
          , pages
          <fpage>15</fpage>
          -
          <lpage>23</lpage>
          , Bari, Italy,
          <year>2006</year>
          . CEUR Workshop Proceedings.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>V.</given-names>
            <surname>Issarny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Caporuscio</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Georgantas</surname>
          </string-name>
          .
          <article-title>A perspective on the future of middleware-based software engineering</article-title>
          .
          <source>In 2007 Future of Software Engineering</source>
          , pages
          <fpage>244</fpage>
          -
          <lpage>258</lpage>
          . IEEE Computer Society,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>D.</given-names>
            <surname>Jackson</surname>
          </string-name>
          .
          <article-title>Alloy: a lightweight object modelling notation</article-title>
          .
          <source>ACM Transactions on Software Engineering and Methodology (TOSEM)</source>
          ,
          <volume>11</volume>
          (
          <issue>2</issue>
          ):
          <fpage>256</fpage>
          -
          <lpage>290</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>S.</given-names>
            <surname>Malek</surname>
          </string-name>
          .
          <article-title>Effective realization of software architectural styles with aspects</article-title>
          .
          <source>In Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA</source>
          <year>2008</year>
          ), pages
          <fpage>313</fpage>
          -
          <lpage>316</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>S.</given-names>
            <surname>Malek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mikic-Rakic</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          .
          <article-title>A Style-Aware architectural middleware for Resource-Constrained, distributed systems</article-title>
          .
          <source>IEEE Trans. Softw</source>
          . Eng.,
          <volume>31</volume>
          (
          <issue>3</issue>
          ):
          <fpage>256</fpage>
          -
          <lpage>272</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>E. D.</given-names>
            <surname>Nitto</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Rosenblum</surname>
          </string-name>
          .
          <article-title>Exploiting ADLs to specify architectural styles induced by middleware infrastructures</article-title>
          .
          <source>In Proceedings of the 21st international conference on Software engineering</source>
          , pages
          <fpage>13</fpage>
          -
          <lpage>22</lpage>
          , Los Angeles, California, United States,
          <year>1999</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>D.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Cleeland</surname>
          </string-name>
          .
          <article-title>Applying patterns to develop extensible ORB middleware</article-title>
          .
          <source>Communications Magazine</source>
          , IEEE,
          <volume>37</volume>
          (
          <issue>4</issue>
          ):
          <fpage>54</fpage>
          -
          <lpage>63</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>M. Shaw</surname>
            , R. DeLine,
            <given-names>D. V.</given-names>
          </string-name>
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>T. L.</given-names>
          </string-name>
          <string-name>
            <surname>Ross</surname>
            ,
            <given-names>D. M.</given-names>
          </string-name>
          <string-name>
            <surname>Young</surname>
            , and
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Zelesnik</surname>
          </string-name>
          .
          <article-title>Abstractions for software architecture and tools to support them</article-title>
          .
          <source>IEEE Trans. Softw</source>
          . Eng.,
          <volume>21</volume>
          (
          <issue>4</issue>
          ):
          <fpage>314</fpage>
          -
          <lpage>335</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>M.</given-names>
            <surname>Shaw</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          .
          <source>Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall</source>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Sousa</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          . Aura:
          <article-title>An architectural framework for user mobility in ubiquitous computing environments</article-title>
          .
          <source>In Proceedings of the 3rd Working IEEE/IFIP Conference on Software Architecture</source>
          , pages
          <fpage>29</fpage>
          -
          <lpage>43</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>R. N.</given-names>
            <surname>Taylor</surname>
          </string-name>
          , N. Medvidovic, and
          <string-name>
            <given-names>E.</given-names>
            <surname>Dashofy</surname>
          </string-name>
          .
          <source>Software Architecture: Foundations, Theory, and Practice</source>
          . Wiley,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>T.</given-names>
            <surname>Vergnaud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hugues</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pautet</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Kordon</surname>
          </string-name>
          .
          <article-title>PolyORB: a schizophrenic middleware to build versatile reliable distributed applications</article-title>
          .
          <source>In Reliable Software Technologies - Ada-Europe</source>
          <year>2004</year>
          , pages
          <fpage>106</fpage>
          -
          <lpage>119</lpage>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>