This seminar will offer a collection of diverse topics broadly grouped under advanced model-based techniques.

The topics listed below will be voted for and shared at a kickoff meeting in the first week of the semester (Fr, 21. Apr. 2017, 10:00 - 11:00 in F 2 211):

Topics (Tentative)

Description

Research in the social sciences provides a definition of "Fairness" and a set of properties (of a given process), which guarantee that the process is regarded (by humans) as being fair.  Such properties include transparency (so the involved people have enough information to understand why certain decisions and actions were taken), and the option to have some (limited) impact on the results.
This seminar topic will work out a concrete example, e.g., calculation of salaries and bonuses by a program, and use it to discuss if research on automated consistency management techniques (with its own set of well-behavedness properties normally specified as round-tripping laws) is able to adequately address "fairness".
I.e., is it possible to develop a synchroniser that is guaranteed to be fair by construction?

Material/Further Information

Check out http://bx-community.wikidot.com for an overview of consistency management approaches and tools.

See, e.g., https://pub.uni-bielefeld.de/publication/2908295
 for related work on fairness.

Contact Person

Alexander Teetz

 

Description

Triple Graph Grammars (TGGs) are a grammar-based approach to consistency management.  While the basic formalism based on graph transformations is relatively uniform, there are different TGG "variants" based on which language features are supported.  E.g., are NACs supported?  Is amalgamation supported?  Are complex attribute conditions supported?, etc.
This makes it difficult to know exactly how "expressive" a certain TGG tool actually is.  Do certain features actually increase expressiveness (whatever expressiveness actually means)?  This seminar topic will provide an overview of the most common language features of TGGs, and based on this, a formal discussion of the expressiveness of different TGG variants (with our without certain features).

Material/Further Information

Check out http://bx-community.wikidot.com for an overview of consistency management approaches and tools.

See, e.g., https://pub.uni-bielefeld.de/publication/2908295
 for related work on fairness.

Contact Person

Anthony Anjorin

Description

Library/API design has a lot to do with choosing the right "look and feel" of the language.  This includes the individual words as well as the flow of the language, describing how to form valid and complete statements.  Let's refer to this as the "concrete syntax" of the library/API (or in general, the domain specific language) to be developed.  

When implementing such a library for a mainstream GPL, say Java or C++, you as a language designer do not typically have that much freedom concerning the concrete syntax (which is basically fixed by the parser for the language).  Although there are notable exceptions including Scala, Haskell, Lisp, and C#, it is still relatively challenging to mix and combine very different styles of concrete syntax in the same editor.  

The language workbench MPS from JetBrains is, in this respect, a true game changer as the environment is not parser-based but rather uses a projective editor that can mix and combine different concrete syntaxes in a very flexible manner.

Check out, e.g., mbeddr to see what is possible with MPS.

Why is this interesting and relevant?  Being able to design your concrete syntax has the potential to enable a productive environment for developing code that is very readable for a certain target audience.  Most programmers would agree that readable code typically means maintainable code (and we spend most of our time debugging, tweaking, and extending). 

In this seminar topic, you'll get to know the Haskell-based library (or embedded programming language) BiGUL.  While BiGUL is quite powerful, it is also a bit challenging to use, especially for programmers who are not used to Haskell and Template-Haskell.  Using MPS as a framework to develop a new and simplified high-level language that can be compiled to BiGUL should open up new and exciting possibilities, including mixing textual, tabular, and visual fragments in the same concrete syntax!

Material/Further Information

Slides from February 6, 2017

Contact Person

Anthony Anjorin

Description

When developing visual modeling language the focus is mostly on the semantics. A proper justification, why the visual elements are appropriate, is often missing. Moody discusses in his paper "The `physics` of notations" various aspects of visual notations that can be used to evaluate the appropriateness of visual modeling elements. Students interested in this topic must familiarize themselves with these aspects and should explain how the "the `physics` of notations" can help during language engineering, e.g., to evaluate the concrete syntax.

Material/Further Information

Daniel L. Moody: The “Physics” of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering. IEEE Trans. Software Eng. 35(6): 756-779 (2009)

Contact Person

Dennis Wolters

Description

In recent research, adaptive UIs have been promoted as a solution for context variability due to their ability to automatically adapt to the context-of-use at runtime. A key goal behind adaptive UI’s is plasticity denoting a UI’s ability to preserve its usability despite dynamically changing context-of-use parameters regarding user profile, platform, and usage environment. For supporting the development of adaptive UIs, different approaches like rule-based [1], ontology-based [2], constrained optimization [3], or learning based [4] UI Adaptation techniques were proposed. Task of this seminar topic is to analyze and classify different UI Adaptation approaches with special focus on the used languages and methods for realizing UI adaptivity. Furthermore, advantages and disadvantages of the analyzed approaches should be presented in a systematic way.

Material/Further Information

[1] http://dl.acm.org/citation.cfm?id=2898124

[2] http://link.springer.com/chapter/10.1007%2F978-3-319-45991-2_13

[3] http://dl.acm.org/citation.cfm?id=1824886

[4] https://dial.uclouvain.be/pr/boreal/object/boreal:150574

Contact Person

Enes Yigitbas

Description

Today, the architectural landscape of software companies goes beyond the organizational boundaries. The software companies tend to create ecosystems around their products by developing a strategic network of partnerships. For instance, Salesforce.com is the provider of customer relationship management (CRM) services. Behind the services provided to the Salesforce’s customers, there are several core services, e.g., emailing system, databases, and security checks, which are provided through the collaboration with the other partners. This model of software provision is new.

The question is whether existing enterprise architecture frameworks like TOGAF are suitable to develop software ecosystems. If not, how could the architecture frameworks be improved?

Material/Further Information

[1] J. Bosch and P. Bosch-Sijtsema, “From integration to composition: On the impact of software product lines, global development and ecosystems,” Journal of Systems and Software, vol. 83, no. 1, pp. 67–76, 2010.

[2] J. Bosch, “Software Ecosystems–Implications for Strategy, Business Model and Architecture,” in Software Product Line Conference (SPLC), 2011 15th International, 2011, pp. 351–351.

Contact Person

Bahar Jazayeri

 

Description

 

Mobile App stores like Google Play and Apple App store have introduced a new model of software provision to the world.The innovative aspect of their models is the way that they allow the global community of developers to integrate their Apps into the mobile operating platforms (i.e., Android OS and iOS).

However, the architectural models of these App stores are still unknown. Therefore, these questions remain open: a) Upon which interfaces do the external developers interact with these platforms? b) Which level of access are the developers granted through these interfaces?

The answers to these questions should reveal the architectural knowledge of Android OS and iOS and their relations to the strategic design decisions taken by their providers.

Material/Further Information

 

[1] H. Hartmann and J. Bosch, “Orchestrate your platform: architectural challenges for different types of ecosystems for mobile devices,” in International Conference of Software Business, 2014, pp. 163–178.

Contact Person

Bahar Jazayeri

Description

Software artifacts constantly change during evolution and maintenance of software systems. These modifications include changes at all levels, from requirements through architecture and design, as well as source code, documentation and test suites. For consistent evolution, all models and artifacts should remain aligned as the software evolves. The challenging part here is to provide proper support for their co-evolution, i.e., how to assess the mutual impact of artifact changes on each other, as well as how to react to these changes in order to prevent misalignment between them.

The aim of this seminar topic is to give an overview of the general concepts of co-evolution of software artifacts as well as to provide an overview of existing approaches and discuss them in terms of their benefits and limitations.

Material/Further Information

[1] http://www.sciencedirect.com/science/article/pii/S0164121215001909

[2] https://link.springer.com/chapter/10.1007/978-3-642-31069-0_14

[3] ieeexplore.ieee.org/iel5/4634719/4634720/04634773.pdf

Contact Person

Ivan Jovanovikj

Description

Library/API design has a lot to do with choosing the right "look and feel" of the language.  This includes the individual words as well as the flow of the language, describing how to form valid and complete statements.  Let's refer to this as the "concrete syntax" of the library/API (or in general, the domain specific language) to be developed.  

When implementing such a library for a mainstream GPL, say Java or C++, you as a language designer do not typically have that much freedom concerning the concrete syntax (which is basically fixed by the parser for the language).  Although there are notable exceptions including Scala, Haskell, Lisp, and C#, it is still relatively challenging to mix and combine very different styles of concrete syntax in the same editor.  

The language workbench MPS from JetBrains is, in this respect, a true game changer as the environment is not parser-based but rather uses a projective editor that can mix and combine different concrete syntaxes in a very flexible manner.

Check out, e.g., mbeddr to see what is possible with MPS.

Why is this interesting and relevant?  Being able to design your concrete syntax has the potential to enable a productive environment for developing code that is very readable for a certain target audience.  Most programmers would agree that readable code typically means maintainable code (and we spend most of our time debugging, tweaking, and extending). 

In this seminar topic, you'll suggest a re-design of the model analysis library developed and used in the lecture FMDE, which has been implemented completely in Java and is available on GitHub.  A lot of the elegance and beauty of the constructions are obliterated by the fixed syntax and structure enforced by Java.  A completely separate language is, however, also undesirable as the library is meant to be mixed seamlessly with "normal" Java code.  MPS should be able to open up new and exciting possibilities, including mixing textual, tabular, and visual fragments in the same concrete syntax!

Material/Further Information

Slides from February 6, 2017

Contact Person

Anthony Anjorin

Description

Software engineering tools are becoming increasingly complex and challenging to configure and use productively and correctly.  While, e.g., approaches from usability engineering can certainly be used to improve the situation, a very different vision is to build tools that learn their specifications from examples. The idea here is that much more users can supply correct examples much easier than correct specifications in the modelling language required by the tool (which might change anyway depending on the tool and version thereof).

Is this vision really feasible?  In this seminar topic we shall attempt to gain a complete overview of all the work done on MBTE, suggest a new classification for this body of work, and suggest new and previously unexplored dimensions for future work.

Material/Further Information

An existing (but outdated) survey is:  

Kappel, G., Langer, P., Retschitzegger, W., Schwinger, W., & Wimmer, M. (2012). Model transformation by-example: A survey of the first wave. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 7260 LNCS, 197–215.

Contact Person

Anthony Anjorin

Lorijn van Rooijen

Description

The SEQUAL Framework is a reference model for evaluating the quality of different kinds of models: Data models, enterprise models, process models, and many more. It also allows to evaluate the quality of modeling languages. In the seminar thesis the SEQUAL framework shall be explained and its application shall be presented by evaluating the quality of an example model (e.g., a process model). 

Material/Further Information

Rough Overview: https://en.wikipedia.org/wiki/SEQUAL_framework

John Krogstie (2012). "Model-Based Development and Evolution of Information Systems: A Quality Approach"

John Krogstie (2016). "Quality of Business Process Models". In: Tutorial CAiSE 2016.

Contact Person

Dennis Wolters