<!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>Symbolic Representation of Models Improves Model Understanding and Tendency to Use Models { A Position Paper</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mira Balaban</string-name>
          <email>mira@cs.bgu.ac.il</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer Science Department, Ben-Gurion University of the Negev</institution>
          ,
          <country country="IL">ISRAEL</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>I have been teaching Object-Oriented (OO) Modeling [1] for a few years, then I taught an advanced course on Foundations of Software Engineering (SE) [2] for several years, and recently, I lead a workshop on developing a software engineering application [3]. In the Object-Oriented Modeling course we teach UML using a pragmatic view-point, i.e., emphasize how and when to use various features, based on their semantics and properties. In addition we teach a process of project development, using the taught models. In the Foundations of SE course we teach selected chapters including testing, project development methods, design patterns, refactoring, design by contract, and more. The workshop on project development consists of 5-student groups that collectively develop an application construction, guided by a sta member. Following such an extensive education, my expectations were that students will recognize the value of early modeling, and will get used to analyze and design software with models, as a standard practice. I was rather surprised to nd out that once out of the OO Modeling course, most students do not use models unless enforced. Moreover, somehow, most students live under the impression that models are kind of \annoying documents" that accompany software, and can be written as an afterthought, when software is submitted. This is, for example, the way that most students use models in their nal, year long project. In extreme cases students use automatic model creation procedures, available in advanced integrated development environments. This poor situation of actually using models as documentation rather than for analysis, design and development of software, can be explained by multiple factors, some essential to model nature, and others more pragmatic, based on available tools. On the pragmatic reasons we suggest four reasons: 1. Lack of model-level tool support, at the level of modern compilers. 2. Lack of support for model-code coordination all along the software life cycle. Development environments do not keep models consistent with code. Therefore, models become irrelevant very quickly, and programmers nd it di cult to preserve model-code agreement. 3. Software development environments do not support advanced modeling features. 4. There are no commercial model processing tools that enable model testing. USE [4,5] is an academic tool for UML/OCL class diagram validation, using instance creation and veri cation.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        On the more essential reasons, we point on two reasons:
1. There is a technical di culty in creation of visual models, while writing
symbolic speci cations poses no technical problems. The heavy-use of visual
tools does not help either.
2. The third essential reason involves the declarative nature of analytic
knowledge and the di culty of abstraction speci cation: Declarative expression
of (what is) knowledge is harder and requires deeper understanding and
analytic capabilities, in comparison to procedural (how to) knowledge [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
Model abstraction and constraint speci cation is way more demanding than
straightforward code writing. Indeed, it is not surprising that software
testing is more popular than contract speci cation, as in [
        <xref ref-type="bibr" rid="ref7 ref8">7,8</xref>
        ].
      </p>
      <p>Model properties: Formal de nition and visualization</p>
      <p>Traditionally models have been developed as visual notations, since they
were intended as intuitive sketches of business level abstractions. Models were
understood as a means for intuitive explanations, either to non-professionals, or
as a means for initial analysis or design of software. In most cases, there was
no intention of being coordinated with applications along their life cycle, and
smooth model evolution was not a goal.</p>
      <p>
        Some exceptions are the Statecharts model, and Description logics. The rst,
was developed as a visual Domain Speci c Language for automated realtime
systems. It was formally designed, implemented, and used in actual industrial
applications [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref9">9,10,11,12</xref>
        ]. Description logics [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] emerged from the traditional
semantic networks [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and the Frame-based system KL-ONE [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], in AI. They
are intended for conceptual automated reasoning and do not have a visual
representation. They serve as the basis for the OWL family of semantic web
languages [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
      <p>The need for symbolic de nition of models</p>
      <p>The emergence of the Model Driven Engineering (MDE) approach has changed
the picture with respect to models for software analysis and design. Automatic
translation, processing and code coordination require well-de ned speci cation
of semantics, processing, evolution and management techniques. Models are not
anymore just pictures drawn on a wipe board. Indeed, the OMG and other
industries supported a wide development of modeling languages, standards, and
tools. Nevertheless, while usage of models is growing in modeling Domain Speci c
Languages, they are still scarcely used in the process of application development.</p>
      <p>The thesis I try to raise in this position paper is that if models need to
live and evolve with the software, they should be appealing not only to naive
users, but also to the community of developers. The pragmatic reasons listed
above suggest four points for improving the performance of model processing
tools, but this is not within our reach. The two essential reasons involve the
technical di culties posed by visual speci cations and the essential di culty
of abstract and declarative speci cation. While the latter reason requires long
range education, the problem of visual speci cation can be solved relatively
easily. Developers, and even students, with some program writing experience,
prefer symbolic code writing over drawing visual models. One class in the
ObjectOriented Modeling course that I taught, has used the USE system for validation
of UML/OCL class diagrams. I noticed that after mastering the USE symbolic
speci cation of class diagrams, students preferred the symbolic writing, over
visual model drawing.</p>
      <p>The obvious conclusion is that while visualization is certainly advantageous
as a presentation layer, it is not appealing to programmers. That is:
Every MDE modeling language must have symbolic syntax, in addition
to its concrete visual syntax. Teaching of modeling languages must
concentrate on the dual existence of the visual and the symbolic syntax.</p>
      <p>The expectation is that the design of modeling languages using symbolic
syntax will improve their theoretical status. More concretely, the expectations
are as follows:
1. The distinction and inter-relationship between concrete and abstract syntax
will be de ned.
2. It will be clari ed that models are not visual presentation layers on top of
textual code, but rather abstraction layers on top of more concrete speci
cations.
3. The use of symbolic syntax will enable employment of standard language
techniques for de ning semantics and implementing application tools. The
Description Logics experience shows that symbolic theoretical language
development can yield deep and advanced theoretical and practical results.
4. The use of symbolic syntax will enable the development of testing tools.</p>
      <p>Finally, I hope that making models symbolic will clarify that models are
formal representation languages, at a higher abstraction level, rather than just
visual, intuitive, not executable pictures of problem aspects. I suggest that
modeling courses will follow the USE example, and teach a modeling language using
symbolic and visual representation.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>1. Analysis and Design of Software Systems: (</article-title>
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Foundations of Software Engineering. http://www.cs.bgu.ac.il/~fsen141/
          <string-name>
            <surname>Main</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Workshop on a Software Engineering Project. http://www.cs.bgu.ac.il/ ~wsep142/
          <string-name>
            <surname>Main</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Bremen Database Systems Group:
          <article-title>A UML-based Speci cation Environment- Version 3.0</article-title>
          . http://www.db.informatik.uni-bremen.de/projects/USE/ (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bohling</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Richters</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Validating UML and OCL Models in USE by Automatic Snapshot Generation</article-title>
          .
          <source>Journal on Software and System Modeling</source>
          <volume>4</volume>
          (
          <year>2005</year>
          )
          <volume>386</volume>
          {
          <fpage>398</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Winograd</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Flores</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Understanding computers and cognition - a new foundation for design</article-title>
          .
          <source>Addison-Wesley</source>
          (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Meyer, B.:
          <article-title>Applying'design by contract'</article-title>
          .
          <source>Computer</source>
          <volume>25</volume>
          (
          <year>1992</year>
          )
          <volume>40</volume>
          {
          <fpage>51</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. Mitchell, R.,
          <string-name>
            <surname>McKim</surname>
          </string-name>
          , J., Meyer, B.:
          <article-title>Design by contract, by example</article-title>
          .
          <source>Addison Wesley Longman Publishing Co., Inc</source>
          . (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Naamad</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The STATEMATE semantics of statecharts</article-title>
          .
          <source>ACM Transactions on Software Engineering and Methodology (TOSEM) 5</source>
          (
          <year>1996</year>
          )
          <volume>293</volume>
          {
          <fpage>333</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Politi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Modeling reactive systems with statecharts: the STATEMATE approach</article-title>
          .
          <source>McGraw-Hill</source>
          , Inc. (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Gery</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palachi</surname>
          </string-name>
          , E.:
          <article-title>Rhapsody: A complete life-cycle model-based development system</article-title>
          .
          <source>In: Integrated Formal Methods</source>
          , Springer (
          <year>2002</year>
          )
          <volume>1</volume>
          {
          <fpage>10</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kugler</surname>
          </string-name>
          , H.:
          <article-title>The rhapsody semantics of statecharts (or, on the executable core of the UML)</article-title>
          .
          <source>In: Integration of Software Speci cation Techniques for Applications in Engineering</source>
          . Springer (
          <year>2004</year>
          )
          <volume>325</volume>
          {
          <fpage>354</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nardi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.F.</given-names>
          </string-name>
          :
          <article-title>The Description Logic Handbook: Theory, Implementation and Applications</article-title>
          . (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Wood</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>What's in a link. Readings in Knowledge Representation</article-title>
          . Morgan Kaufmann (
          <year>1985</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Brachman</surname>
            ,
            <given-names>R.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmolze</surname>
            ,
            <given-names>J.G.</given-names>
          </string-name>
          :
          <article-title>An Overview of the KL-ONE Knowledge Representation System*</article-title>
          .
          <source>Cognitive science 9</source>
          (
          <year>1985</year>
          )
          <volume>171</volume>
          {
          <fpage>216</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , et al.:
          <article-title>OWL web ontology language overview</article-title>
          .
          <source>W3C recommendation 10</source>
          (
          <year>2004</year>
          ) 2004
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>