Tools

A Data Mapping Modeling Language and its Toolset

We developed a modeling language and its toolset using Metaedit+ for mapping one Excel file into another. The toolset includes a GUI tool for receiving two Excel files from the user - one input file and one output file (where the input file contents are to be copied into the output file). The GUI tool generates a new, updated meta-model file for the Metaedit+ environment. The resulting meta-model file can be imported in the Metaedit+ editor and the editor can then be used for modeling the mapping between the input and output excel files, basically associating each column name of input file with a distinct column name of the output file using a visual notation set (boxes-and-lines). Then, the user can use the transformation tool integrated into the Metaedit+ editor to copy the input Excel file content into the output Excel file content in accordance with the mapping rules specified.

Tool Video:  https://www.youtube.com/watch?v=iT76-hI2AVM&t=5s

MANLANG

In manufacturing industries, production planning involves making early decisions about the design and production of a product that focuses on different concerns such as the investment to be made, the product (and its parts) to be manufactured, production line, workstations, and production processes. The decisions and requirements about those concerns tend to be specified using office tools in many manufacturing companies. However, office tools lead to some issues including (i)the lack of support for separation of concerns, graphical editing, precise notation set, and error detection, and (ii)inconsistent and incomplete requirements specifications. We propose a modeling language called ManLang for specifying the production planning requirements graphically using multiple viewpoints (i.e., investment, product, line, workstation, and process). With ManLang, the different viewpoint models may be specified separately in a way that the viewpoint models can also be traced via the defined relationships between the viewpoints. We support ManLang with a graphical modeling editor, which enables for the multiple-viewpoints modeling and the automated model checking with regard to the language definition rules. So, the viewpoint models can be checked automatically for (i)completeness with regard to the language definition and (ii)consistency between the viewpoint models.  

We also described a model transformation tool that transforms the multiple-viewpoints model in ManLang into a model in AutomationML, which is a data exchange format for the production systems data. By doing so, ManLang models can be imported any tools that accept the data in AutomationML format.

Related Papers:

Ozkaya, M. and Gokcek, G. (2022). ManLang: A Requirements Modeling Language for the Production Planning in Manufacturing.  In Proceedings of the 17th International Conference on Evaluation of Novel Approaches to Software Engineering, ISBN 978-989-758-568-5, ISSN 2184-4895, pages 395-404.    

Tool Download Linkhttps://sites.google.com/view/manlang

Tool Video: https://www.youtube.com/watch?v=LKifkVAnGXI

MODELWEB

We developed a DSML (domain-specific modeling language) called ModelWeb, which offers a flowchart based notation set for  the modeling of user behaviours for web applications. ModelWeb's notation set consists of  a pre-defined list of  user actions including click, type, login, register, select, search, share, comment, and drag&drop, and system actions including display and return,  which could be used to specify flowchart models of web applications functionalities (e.g., adding products to cart or viewing  orders in an online store). Using a toolset developed for ModelWeb, the flowchart models are transformed into test scenarios in the behaviour-driven development (BDD) format.  The BDD scenarios can be automatically prioritised based on the actual user-clicks that are determined via  the web analytics tools. ModelWeb's toolset further tests web applications against the prioritised BDD scenarios using the Selenium web test automation tool and reports the test results.

Related Papers:

Toolset Download Link: Please Click Here

Toolset Webpage: https://sites.google.com/view/modelweblanguage

Toolset Webpage 2: https://sites.google.com/view/modelweblanguage2

Tool Video: https://www.youtube.com/watch?v=OMtvLzoINeY

DESPAT

Software design patterns are considered as general solutions to the problems that occur many times in the context of software design. Gamma et al. (namely Gang of Four) proposed 23 different software design patterns that can be re-used in object-oriented software development. While the design patterns proposed by Gamma et al. have gained huge popularity in academia and industry, no any language or toolset has been proposed that enables to design software systems with the use of Gamma et al.’s design patterns. So, we propose a software design language called DesPat, which offers a visual notation set based on UML’s class diagram and enables to create software design models in accordance with Gamma et al.’s design patterns. We focus on the design patterns that industry are most interested in, which are the factory, composite, facade, observer, singleton, and visitor design patterns. We developed a modeling editor for creating software design models using any of those design patterns and checking the correctness of the models against the pattern rules. Moreover, we developed a code generator that produces Java code from any software design models.

Also, we recently extended DesPat with a new toolset that enables users to define their own patterns. A pattern is defined with the types of components, component interfaces, and relationships. Any pattern definitions can then be imported into the DesPat modeling toolset, through which one may specify software design models in accordance with the pattern definitions, check the models against the pattern rules, and transform their models in Java. 

Related Papers:

Toolset Download Link: Please Click Here

Toolset Webpage: https://sites.google.com/view/despat/

Tool Video: https://www.youtube.com/watch?v=mdsaU4c_hoc

MVCLANG

The Model-view-controller (MVC) software design pattern promotes separating software designs into the model, view, and controller elements. The views represent the user-interfaces, the models represent the system data, and the controllers handle the requests sent by the views and coordinate the interactions between views and models. While many software frameworks have been available for the MVC-based software developments, no any attempt have been made on increasing the level of abstraction for the MVC developments and provide a model-based approach. Indeed, none of the high-level software modeling languages support the MVC design pattern. So, we propose in this research an MVC-based modeling language called MVCLang, which enables to model MVC-based software architectures that can be easily analysed and implemented. MVCLang offers a visual notation set that is inspired by UML’s class diagram. MVCLang is supported with a modeling toolset that enables to specify the MVC architectures and analyse them for a number of wellformedness rules. MVCLang’s toolset can further produce ASP.NET MVC code that reflects the architectural design decisions. We evaluated MVCLang on Eryaz Software that offers B2B solutions. Therein, 5 B2B developers used MVCLang for their B2B project developments and provided feedback for a set of pre-determined question.

Related Papers: 

Tool Download Link: Please Click Here 

Tool Webpage: https://sites.google.com/view/mvclang/

VXCD

XCD is a design-by-contract based architecture description language that supports modular specifications in terms of components and connectors (i.e., interaction protocols). XCD is supported by a translator that produces formal models in SPIN’s ProMeLa formal verification language, which can then be formally analysed using SPIN’s model checker.

XCD is extended with a visual notation set called VXCD. VXCD extends UML’s component diagram and adapts it to XCD’s structure, contractual behaviour, and interaction protocol specifications. Visual VXCD specifications can be translated into textual XCD specifications for formal analysis. To illustrate VXCD, the well-known gas station system is used. The gas

system is specified contractually using VXCD’s visual notation set and then formally analysed using SPIN’s model checker for a number of properties including deadlock and race-condition.

Related Papers: 

Tool Download Link: Please Click Here (Note: The download link directs to a project folder in Metaedit+ metamodeling environment with which the tool has been developed and thus can be used)

Tool Webpage: https://sites.google.com/site/ozkayamert1/vxcd

Tool Webpage 2: https://sites.google.com/site/ozkayamert1/home/xcd

Tool Webpage 3: http://www.staff.city.ac.uk/c.kloukinas/Xcd/index.html

SAwUML

UML is without doubt the top preferred software modelling language by practitioners. However, UML remains inadequate for the software architecture level of design due to its weak support for some important requirements including multiple viewpoints, connectors, and formal analysis. In this research, the SAwUML architecture description language is proposed to improve UML for the high-level, precise specifications of the structural and behavioural design decisions and their formal analysis. To this end, SAwUML combines UML’s component and sequence diagrams together under the same notation set. Using the component diagram, practitioners can specify their system components that are connected via the required and provided ports and interact over the port method-calls. Whenever a component port is clicked, a UML sequence diagram can be drawn for specifying the port methods in terms of the request and response messages that are exchanged between the interacting components. SAwUML extends the formal Design-by-Contract approach for the behaviour specifications of the port methods drawn in the sequence diagram. SAwUML’s contract extension considers both the request and response messages of method-calls, deciding on when method-calls can be requested/received, the method parameters/results to be assigned, and how the component post-state should be after method-calls. SAwUML is supported with a modelling tool for specifying the structural and behavioural design decisions together and any system-level properties in the linear temporal logic. The tool can automatically translate the software architectures in SAwUML into a formal ProMeLa model. Then the SPIN model checker can be used to verify the resulting ProMeLa models for the pre-defined properties –i.e., deadlock and incompleteness –and any user-defined properties.

Related Paper: Ozkaya M. and Kose M. A. SAwUML - UML-based, Contractual Software Architectures and their Formal Analysis using SPIN”. Journal of Computer Languages, Systems and Structures, 2018; 54:71-94. https://doi.org/10.1016/j.cl.2018.04.005

Tool Download Link: Please Click Here (Note: The download link directs to a project folder in Metaedit+ metamodeling environment with which the tool has been developed and thus can be used)

Tool Webpage: https://sites.google.com/site/ozkayamert1/lang

SAMP

In this reserarch, new software modeling language called SAMP is proposed, which is inspired from UML and enables the general-purpose modeling of software architectures but at the same time promotes the multiple-viewpoints modeling, formal verification of the models for the desired requirements, and combination of model and code together. SAMP supports the high-level modeling of software architectures from the requirements, logical, behaviour, and deployment perspectives and supports checking the consistencies between the software models in different perspectives. SAMP is also supported with a modeling toolset that allows for the visual modeling of software architectures in those perspectives. The toolset further generates formal ProMeLa models that can be accepted by the SPIN model checker for the exhaustive verification of the software behaviours against the user-defined properties and some pre-defined properties (e.g., deadlock, race-condition, wrong and incomplete pre-conditions). Moreover, the toolset can also generate the Java Modeling Language (JML) code that combines the contractual models with the Java program for ensuring the consistency between model and code throughout the software development.

Related Paper:

Tool Download Link: Please Click Here (Note: The download link directs to a project folder in Metaedit+ metamodeling environment with which the tool has been developed and thus can be used)

Tool Webpage: https://sites.google.com/site/ozkayamert1/srad