CS2125 Paper Review Form - Winter 2018 Reviewer: Laura Walsh Paper Title: Meaningful Modeling: What's the Semantics of "Semantics"? Author(s): Harel, D. and Rumpe, B. 1) Is the paper technically correct? [x] Yes [ ] Mostly (minor flaws, but mostly solid) [ ] No 2) Originality [ ] Very good (very novel, trailblazing work) [ ] Good [x] Marginal (very incremental) [ ] Poor (little or nothing that is new) 3) Technical Depth [ ] Very good (comparable to best conference papers) [x] Good (comparable to typical conference papers) [ ] Marginal depth [ ] Little or no depth 4) Impact/Significance [ ] Very significant [ ] Significant [x] Marginal significance. [ ] Little or no significance. 5) Presentation [x] Very well written [ ] Generally well written [ ] Readable [ ] Needs considerable work [ ] Unacceptably bad 6) Overall Rating [ ] Strong accept (award quality) [ ] Accept (high quality - would argue for acceptance) [x] Weak Accept (borderline, but lean towards acceptance) [ ] Weak Reject (not sure why this paper was published) 7) Summary of the paper's main contribution and rationale for your recommendation. (1-2 paragraphs) The goal of this paper is to educate the reader on the difficulties of formally conveying the semantics of a program when using modeling languages like UML. The authors do a good job of making their audience aware that UML has acceptable constructs for formally outlining the syntax of a language, but poor tools for representing the semantics unambiguously. The paper is technically correct and well-written. Ideas are clearly presented and explained. The takeaway message of this paper is that language creators and developers alike are generally unsure of what semantics specifically are and that it is extremely difficult to formalize such unclear semantics within a modeling language. The main area in which I think this paper is lacking is that it presents the problems with defining semantics using UML, but does not propose any practical solutions to these problems. The attitude of the paper seems quite negative. For example, there is a sidebar section called "Wrong Ways to View Semantics", but no parallel section explaining the right ways to view semantics. If the goal of this paper is solely to educate its readership that it is very difficult to formally specify the semantics of a system using UML, then it has succeeded in meeting that goal. However, I believe a better goal would have been not just to identify the problems, but to offer solutions to rectify them. 8) List 1-3 strengths of the paper. (1-2 sentences each, identified as S1, S2, S3.) S1. There is a good use of examples in order to back up the ideas the authors are explaining. For example, Figure 1 (which shows the relationship between statement precision and language precision) and the Two Languages example (which illustrates the difference between semantics and syntax using two different simple languages) are effective in expressing the concepts of this paper more concretely. 9) List 1-3 weaknesses of the paper (1-2 sentences each, identified as W1, W2, W3.) W1. Negative examples are given to illustrate the difficulties in understanding semantics, but positive examples are not offered. For example, "wrong ways to view semantics" are detailed and the "doodling phenomenon" is explained as a negative outlook on diagrammatic representations of programs. W2. There is some contradiction in the introduction to the "degree of formality" section. The authors start by explaining that many people erroneously believe that a language isn't formal unless it "looks" formal (i.e. it contains many Greek letters and mathematical symbols). Then, at the start of the next paragraph, they state that "admittedly, there is a correlation between a language's mathematical appearance and its degree of formality". W3. A suggestion for formalizing the semantics of a program in UML is given, but it is a non-trivial solution which would probably not be able to be practically implemented. (In the "semantic mapping" subsection on page 5, it is said that "when defining a language's semantics, it is essential to explicitly and clearly associate each syntactic operator with its meaning as an operator over the semantic domain". This seems like it would be a large undertaking and it is not clear how this could be implemented.)