Mark van den Brand

dblp:v/MarkvandenBrand · also M. G. J. van den Brand, Mark G. J. van den Brand · DBLP profile ↗
← Back
88ranked-venue papers
24as first author
16since 2021 · last 2026
0000-0003-3529-6182ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 80 · 22 first-author · 15 since 2021Applied, interdisciplinary, general and emerging computing · 4 · 1 first-author · 2 since 2021Artificial intelligence and machine learning · 2 · 1 since 2021Systems, architecture and hardware · 2 · 1 since 2021Databases, data management, data science and information retrieval · 2 · 1 since 2021Theory of computation · 2 · 1 first-authorHuman-computer interaction and ubiquitous computing · 1
YearPublicationVenuePosition
2026 A consistency management framework for digital twin models
abstract
Digital twins (DTs) encapsulate the concept of a real-world entity (RE) and corresponding bidirectionally connected virtual one (VE) mimicking certain aspects of the former in order to facilitate various use-cases such as predictive maintenance. DTs typically encompass various models that are often developed by experts from different domains using diverse tools. To maintain consistency among these models and ensure the continued functioning of the system, effective identification of any consistency issues and addressing them whenever necessary is imperative. In this paper, we investigate the concept of consistency management and propose a consistency management framework that addresses various characteristics of DT models. Subsequently, we present three working examples that implement the proposed framework with graph-based techniques. Taking the working examples into account, we demonstrate and argue that our consistency management framework can provide crucial assistance in the consistency management of DT models.
Hossain Muhammad Muctadir, Eduard Kamburjan, Loek Cleophas, Mark van den Brand
J. Syst. Softw.4
2025 A Real-Time Collision-Avoidance Motion Planner for Robot Soccer
abstract
This work presents the implementation and evaluation of a real-time collision-avoiding motion planning algorithm for highly dynamic environments. By combining short-horizon obstacle estimation with the robot constraints, our method implements collision-avoiding situational-aware motion planning by heuristically exploring multiple relevant paths. Directly feeding the current motion setpoint of the path into the low-level controller closes the loop between motion planning and low-level control, ensuring constraint-aware execution. Its practical implementation in physical robots in dynamic RoboCup-like scenarios validated its effectiveness, with low computational costs enabling fast adaptation to changing environments. Furthermore, the capabilities of our motion planner were demonstrated during RoboCup 2024 and practice matches1.
Aneesh Deogan, Dennis Bruijnen, Mark van den Brand, René van de Molengraft
IROS3
2025 An empirical study of business process models and model clones on GitHub
abstract
Business process management entails a multi-billion-dollar industry that is founded on modeling business processes to analyze, understand, improve, and automate them. Business processes consist of a set of interconnected activities that an organization follows to achieve its goals and objectives. While the existence of business process models in open source has been reported in the literature, there is little work in characterizing their landscape. This paper presents the first characterization of business process models in open source, particularly on GitHub. The landscape is formed by 25,866 business process models across 4,954 repositories, with 16% of the repositories belonging to organizations. We discover that models belong to at least 16 domains including traditional software, machine learning, sales, business services, and financial services. These models are created using at least 28 different tools. Our exploration into cloning among the models shows that about 90% of all models are clones of each other. Application domains such as machine learning, traditional software, and business services demonstrate a higher occurrence of clones while in another dimension, clones are found across more repositories owned by industry as compared to those owned by academia. Also, contrary to code clones, we find that the majority of process model cloning occurs across multiple repositories. While our study acts as a precursor for future efforts to develop effective modeling practices in the field of business processes, it also emphasizes the need to address cloning and its implications in the context of reuse, maintenance, and modeling approaches.
Mahdi Saeedi Nikoo, Sangeeth Kochanthara, Önder Babur, Mark van den Brand
Empir. Softw. Eng.4
2025 Domain-Driven Design in software development: A systematic literature review on implementation, challenges, and effectiveness
abstract
Context: Domain-Driven Design (DDD) has gained significant attention in software development for its potential to address complex software challenges, particularly in the areas of system refactoring, reimplementation, and adoption. Using domain knowledge, DDD aims to solve complex business problems effectively. Objective: This SLR aims to provide an analysis of existing research on DDD in software development, paint a picture of DDD in solving software problems, identify the challenges encountered during its application and explore the results of these studies. Method: We systematically selected 36 peer reviewed studies and conducted quantitative and qualitative analyzes to synthesize the findings. Results: DDD has effectively improved software systems, with its key concepts. The application of DDD in microservices has gained prominence for its ability to facilitate system decomposition. Some studies lacked empirical evaluations, highlighting challenges in onboarding and the need for expertise. Conclusion: Adopting DDD benefits software development, involving stakeholders such as engineers, architects, managers, and domain experts. More empirical evaluations and open discussions on challenges are needed. Collaboration between academia and industry advances the adoption and transfer of knowledge of DDD in projects.
Ozan Özkan, Önder Babur, Mark van den Brand
J. Syst. Softw.3
2024 Maintaining Consistency of Digital Twin Models: Exploring the Potential of Graph-Based Approaches
abstract
Digital twins (DTs) encapsulate the concept of a real-world entity (RE) and corresponding bidirectionally connected virtual one (VE) mimicking certain aspects of the former in order to facilitate various use-cases such as predictive maintenance. DTs typically encompass various models that are often developed by experts from different domains using diverse tools. To maintain consistency among these models and ensure the continued functioning of the system, effective identification of any consistency issues and addressing them whenever necessary is imperative. In this paper, we investigate the concept of consistency management and propose a consistency management framework that addresses various characteristics of DT models. Subsequently, we present two case-studies that implement the proposed framework with graph-based techniques. Taking into account both case-studies, we argue that the graph-based approaches have significant potential and invite further exploration.
Hossain Muhammad Muctadir, Loek Cleophas, Mark van den Brand
SEAA3
2024 Verifying a Radio Telescope Pipeline Using HaliVer: Solving Nonlinear and Quantifier Challenges
Lars B. van den Haak, Anton Wijs, Marieke Huisman, Mark van den Brand
FMICS4
2024 HaliVer: Deductive Verification and Scheduling Languages Join Forces
abstract
Abstract The HaliVer tool integrates deductive verification into the popular scheduling language Halide, used for image processing pipelines and array computations. HaliVer uses VerCors, a separation logic-based verifier, to verify the correctness of (1) the Halide algorithms and (2) the optimised parallel code produced by Halide when an optimisation schedule is applied to an algorithm. This allows proving complex, optimised code correct while reducing the effort to provide the required verification annotations. For both approaches, the same specification is used. We evaluated the tool on several optimised programs generated from characteristic Halide algorithms, using all but one of the essential scheduling directives available in Halide. Without annotation effort, HaliVer proves memory safety in almost all programs. With annotations HaliVer, additionally, proves functional correctness properties. We show that the approach is viable and reduces the manual annotation effort by an order of magnitude.
Lars B. van den Haak, Anton Wijs, Marieke Huisman, Mark van den Brand
TACAS (3)4
2024 Current trends in digital twin development, maintenance, and operation: an interview study
abstract
Abstract Digital twins (DTs) are often defined as a pairing of a physical entity and a corresponding virtual entity (VE), mimicking certain aspects of the former depending on the use-case. In recent years, this concept has facilitated numerous use-cases ranging from design to validation and predictive maintenance of large and small high-tech systems. Various heterogeneous cross-domain models are essential for such systems, and model-driven engineering plays a pivotal role in the design, development, and maintenance of these models. We believe models and model-driven engineering play a similarly crucial role in the context of a VE of a DT. Due to the rapidly growing popularity of DTs and their use in diverse domains and use-cases, the methodologies, tools, and practices for designing, developing, and maintaining the corresponding VEs differ vastly. To better understand these differences and similarities, we performed a semi-structured interview research with 19 professionals from industry and academia who are closely associated with different lifecycle stages of digital twins. In this paper, we present our analysis and findings from this study, which is based on seven research questions. In general, we identified an overall lack of uniformity in terms of the understanding of digital twins and used tools, techniques, and methodologies for the development and maintenance of the corresponding VEs. Furthermore, considering that digital twins are software intensive systems, we recognize a significant growth potential for adopting more software engineering practices, processes, and expertise in various stages of a digital twin’s lifecycle.
Hossain Muhammad Muctadir, David A. Manrique Negrin, Raghavendran Gunasekaran, Loek Cleophas, Mark van den Brand, Boudewijn R. Haverkort
Softw. Syst. Model.5
2023 Designing a Reference Architecture for the C-ITS Services
Priyanka Karkhanis, Yanjindulam Dajsuren, Mark van den Brand
ECSA3
2023 ML-based Digital Twin for anomaly detection: a case-study on Turtle soccer robots
abstract
In recent years, machine learning (ML) based digital twins (DTs) have seen widespread application in the anomaly detection domain. A search-based literature survey revealed that the majority of the case studies focus on large-scale systems (i.e., nuclear power plant, aerospace, and power grid) producing extensive data. Our work aims to investigate the performance of this technology in smaller-scale systems that generate less data. In this case study, we developed a ML-based DT of the mobility system, the omni wheels, of the Turtle soccer robots. The DT is capable of analyzing historical data collected from the physical robots and differentiating between damaged and undamaged wheels. Our experiments suggest that ML-based DT of small-scale systems is indeed capable of achieving relatively accurate results for anomaly detection use-cases.
Mark van den Brand, Hossain Muhammad Muctadir, René van de Molengraft
SEAA2
2023 Refactoring with domain-driven design in an industrial context
abstract
Abstract Context Software developers need to constantly work on evolving the structure and the stability of the code due to changing business needs of the product. There are various refactoring approaches in industry which promise improvements over source code composition and maintainability. Objective In our research, we want to improve the maintainability of an existing system through refactoring using Domain-Driven Design (DDD) as a software design approach. We also aim for providing empirical evidence on its effect on maintainability and the challenges as perceived by developers. Method In this study, we applied the action research methodology, which facilitates close academia-industry collaboration and regular presence in the studied product. We utilized focus groups to discover problems of the existing system with a qualitative approach. We reviewed the subject codebase to construct our own expert opinion as well and identified problems in the codebase and matched them with the ones raised by engineers in the team. We refactored the existing software system according to DDD principles. To measure the effects of our actions, we utilized Technology Acceptance Model (mTAM) questionnaire, and also semi-structured interviews with the development team for data collection, and card sorting methodology for qualitative analysis. For minimizing bias that might affect our results with the existing software engineers in the team, we extended our measurement with three new joiner software engineers in the team through the think aloud protocol. Results We have identified that engineers mostly gave positive answers to our interview questions, which are mapped to software maintainability metrics defined by ISO/IEC 25010. Our DDD refactoring scored 85 in PU and 83 in PEU, leading to an overall mTAM score of 84. This means acceptable on the acceptability scale, B on the grade scale, and good on the adjective rating scale. Conclusion Our research led us to conclude that a powerful design approach, like DDD, is an effective tool for restructuring and resolving software issues in this situation. It offers standardization to the software and the refactoring efforts. We realized that DDD entails a certain degree of complexity and cognitive load, which is a barrier for software engineers, but they are aware of its benefits.
Ozan Özkan, Önder Babur, Mark van den Brand
Empir. Softw. Eng.3
2023 A personal retrospective on language workbenches
abstract
Abstract Model-driven software engineering and specifically domain-specific languages have contributed to improve the quality of software and the efficiency in the development of software. However, the design and implementation of domain-specific languages requires still an enormous investment. Language workbenches are the most important tools in the field of software language engineering. The introduction of language workbenches has alleviated partly the development effort, but there are still a few major challenges that need to be tackled. This paper presents a personal perspective on the development of tools for language engineering and language workbenches in particular and future challenges to be tackled.
Mark van den Brand
Softw. Syst. Model.1
2022 Painting the Landscape of Automotive Software in GitHub
abstract
The automotive industry has transitioned from being an electromechanical to a software-intensive industry. A current high-end production vehicle contains 100 million+ lines of code surpassing modern airplanes, the Large Hadron Collider, the Android OS, and Facebook's front-end software, in code size by a huge margin. Today, software companies worldwide, including Apple, Google, Huawei, Baidu, and Sony are reportedly working to bring their vehicles to the road. This paper ventures into the automotive software landscape in open source, providing a first glimpse into this multi-disciplinary industry with a long history of closed source development. We paint the landscape of automotive software on GitHub by describing its characteristics and development styles.
Sangeeth Kochanthara, Yanjindulam Dajsuren, Loek Cleophas, Mark van den Brand
MSR4
2022 SAMOS - A framework for model analytics and management
abstract
The increased popularity and adoption of model-* engineering paradigms, such as model-driven and model-based engineering, leads to an increase in the number of models, metamodels, model transformations and other related artifacts. This calls for automated techniques to analyze large collections of those artifacts to manage model-* ecosystems. SAMOS is a framework to address this challenge: it treats model-* artifacts as data, and applies various techniques—ranging from information retrieval to machine learning—to analyze those artifacts in a holistic, scalable and efficient way. Such analyses can help to understand and manage those ecosystems.
Önder Babur, Loek Cleophas, Mark van den Brand
Sci. Comput. Program.3
2021 A functional safety assessment method for cooperative automotive architecture
Sangeeth Kochanthara, Niels Rood, Arash Khabbaz Saberi, Loek Cleophas, Yanjindulam Dajsuren, Mark van den Brand
J. Syst. Softw.6
2021 A systematic literature review of cross-domain model consistency checking by model management tools
abstract
Abstract Objective The goal of this study is to identify gaps and challenges related to cross-domain model management focusing on consistency checking. Method We conducted a systematic literature review. We used the keyword-based search on Google Scholar, and we identified 618 potentially relevant studies; after applying inclusion and exclusion criteria, 96 papers were selected for further analysis. Results The main findings/contributions are: (i) a list of available tools used to support model management; (ii) 40% of the tools can provide consistency checking on models of different domains and 25% on models of the same domain, and 35% do not provide any consistency checking; (iii) available strategies to keep the consistency between models of different domains are not mature enough; (iv) most of the tools that provide consistency checking on models of different domains can only capture up to two inconsistency types; (v) the main challenges associated with tools that manage models on different domains are related to interoperability between tools and the consistency maintenance . Conclusion The results presented in this study can be used to guide new research on maintaining the consistency between models of different domains. Example of further research is to investigate how to capture the Behavioral and Refinement inconsistency types. This study also indicates that the tools should be improved in order to address, for example, more kinds of consistency check.
Weslley Torres, Mark van den Brand, Alexander Serebrenik
Softw. Syst. Model.2
2020 Automatic Support for Multi-Domain Model Management
abstract
The process of developing complex systems often involves knowledge of engineers from multiple domains: e.g., to develop a robot one needs to combine expertise about mechanics, electronics, and software. Such domain-specific knowledge is often represented in a form of interdependent models, consequently a change in a model of one domain might impact a model from a different domain. Thus, identifying which models are affected due to a change is an important problem, which is further exacerbated due to heterogeneity of modeling notations used.The aim of this PhD research project is to facilitate model management in a multi-domain setting. In the earlier stage of this study, we investigated the available approaches used to manage models from different domains. We concluded that the available approaches are tool-dependent, and do not fully support co-evolution of the models. Additionally, previous research recommends to explicitly indicate the dependency between models in order to support the co-evolution of models from different domains. Since these models are created using different modeling notations we believe that it is not reasonable to develop a tool to parse every notation. Furthermore, it is possible that the source code of the model is missing, but engineers still have an image of the model. Thus, to ensure the maintenance of multi-domain systems we investigated the suitability of optical character recognition (OCR) as a uniform approach. We observed that even though OCR has shortcomings, it produces satisfactory results, and once the identified shortcomings are addressed, OCR can become a crucial technology to support the evolution of multi-domain systems. To this end we envision the development of an infrastructure where we can use OCR to identify relationships between models from different domains, store them in a structured manner making it easier to maintain the consistency of the entire system.
Weslley Torres, Mark van den Brand, Alexander Serebrenik
ICSME2
2020 DeepClone: Modeling Clones to Generate Code Predictions
Muhammad Hammad 0001, Önder Babur, Hamid Abdul Basit, Mark van den Brand
ICSR4
2020 Formal Methods for GPGPU Programming: Is the Demand Met?
Lars B. van den Haak, Anton Wijs, Mark van den Brand, Marieke Huisman
IFM3
2020 Interface protocol inference to aid understanding legacy software components
abstract
Abstract High-tech companies are struggling today with the maintenance of legacy software. Legacy software is vital to many organizations as it contains the important business logic. To facilitate maintenance of legacy software, a comprehensive understanding of the software’s behavior is essential. In terms of component-based software engineering, it is necessary to completely understand the behavior of components in relation to their interfaces, i.e., their interface protocols, and to preserve this behavior during the maintenance activities of the components. For this purpose, we present an approach to infer the interface protocols of software components from the behavioral models of those components, learned by a blackbox technique called active (automata) learning. To validate the learned results, we applied our approach to the software components developed with model-based engineering so that equivalence can be checked between the learned models and the reference models, ensuring the behavioral relations are preserved. Experimenting with components having reference models and performing equivalence checking builds confidence that applying active learning technique to reverse engineer legacy software components, for which no reference models are available, will also yield correct results. To apply our approach in practice, we present an automated framework for conducting active learning on a large set of components and deriving their interface protocols. Using the framework, we validated our methodology by applying active learning on 202 industrial software components, out of which, interface protocols could be successfully derived for 156 components within our given time bound of 1 h for each component.
Kousar Aslam, Loek Cleophas, Ramon R. H. Schiffelers, Mark van den Brand
Softw. Syst. Model.4
2019 Dependency safety for Java - Implementing and testing failboxes
Dan Zhang 0002, Dragan Bosnacki, Mark van den Brand, Cornelis Huizing, Bart Jacobs 0002, Ruurd Kuiper 0001, Anton Wijs
Sci. Comput. Program.3
2018 Is stack overflow in portuguese attractive for brazilian users?
abstract
Stack Overflow (SO) is the reference for asking and answering programming-related questions. In early 2014 Stack Overflow em Português (SO-PT) was announced with the goal to reach developers that are not sufficiently proficient in the English language to fully participate in SO. Almost four years later we study how the simultaneous availability of SO and SO-PT impacted Brazilian software developers. A priori, the impact could have been either empowering or impeding. To address this question, we combine interviews, analysis of trace data from SO and SO-PT and a survey of 229 Brazilian software developers. Our results indicate that the developers recognize availability of the information, response speed and accessibility as strong points of SO, and lower barrier to entry and presence of Brazilian-specific information as strong points of SO-PT. In large, SO remains more popular than SO-PT, and SO-PT is not perceived as a viable alternative to SO.
Miguel Botto-Tobar, Weslley Torres, Angela Lozano, Mark van den Brand, Bogdan Vasilescu, Alexander Serebrenik
ICGSE4
2018 Software Process Analysis Methodology - A Methodology Based on Lessons Learned in Embracing Legacy Software
abstract
Over the last decades, the complexity of high-tech systems, and the software systems controlling them, has increased considerably. In practice, it is hard to keep knowledge and documentation of these ever-evolving software systems up-to-date with their actual realization; we are dealing with legacy software. Clearly, this lack of knowledge, insight, and understanding is more and more becoming a critical issue. Process mining provides an interesting opportunity to improve understanding and analyze software behavior based on observations from the system on the run. However, a concrete software process analysis methodology was lacking. This paper 1) discusses a software process analysis case study at ASML, a large high-tech company, and, based on the lessons learned, 2) presents a concrete methodology for analyzing software processes. The presented methodology actively includes the system under analysis and is based on practical experiences in applying process mining on industrial-scale legacy software.
Maikel Leemans, Wil M. P. van der Aalst, Mark van den Brand, Ramon R. H. Schiffelers, Leonard Lensink
ICSME3
2018 Hierarchical performance analysis for process mining
abstract
Process mining techniques use event data from operational and software processes to discover process models, to check the conformance of predefined process models, and to extend such models with information about bottlenecks, decisions, and resource usage. In recent years, the process mining field made huge advances in terms of scalability. In addition, recent work in process discovery supports advanced process model constructs such as subprocesses, recursive structures, cancellation, and various notions of concurrency. Hence, one has to realize that a simple, small, and flat model will not suffice anymore, especially when applied to analyzing software system processes. However, state of the art performance analysis is still typically performed either over the whole process model or at the level of individual activities. There is a lack of formal support for performance analysis on various submodel abstractions while taking into account the execution semantics. This paper presents 1) a framework for establishing precise relationships between events and submodels, taking into account execution semantics; and 2) a novel formalization of existing and novel performance metrics. Our approach enables advanced performance analysis at various submodel abstractions. An implementation is made available, and we demonstrate the advantages of our approach to various software system processes, showing the applicability and advantage with respect to existing techniques.
Maikel Leemans, Wil M. P. van der Aalst, Mark van den Brand
ICSSP3
2018 Towards Distributed Model Analytics with Apache Spark
abstract
The growing number of models and other related artefacts in model-driven engineering has recently led to the emergence of approaches and tools for analyzing and managing them on a large scale. The framework SAMOS applies techniques inspired by information retrieval and data mining to analyze large sets of models. As the data size and analysis complexity goes up, however, further scalability is needed. In this paper we extend SAMOS to operate on Apache Spark, a popular engine for distributed Big Data processing, by partitioning the data and parallelizing the comparison and analysis phase. We present preliminary studies using a cluster infrastructure and report the results for two datasets: one with 250 Ecore metamodels where we detail the performance gain with various settings, and a larger one of 7.3k metamodels with nearly one million model elements for further demonstrating scalability.
Önder Babur, Loek Cleophas, Mark van den Brand
MODELSWARD3
2018 Exploring DSL Evolutionary Patterns in Practice - A Study of DSL Evolution in a Large-scale Industrial DSL Repository
abstract
Model-driven engineering is used in the design of systems to (a.o.) enable analysis early in the design process. For instance, by using domain-specific languages, enabling engineers to model systems in terms of their domain, rather then encoding them into general purpose modeling languages. Domain-specific languages, like classical software, evolve over time. When domain languages evolve, they may trigger co-evolution of models, model-to-model transformations, editors (both graphical and textual), and other artifacts that depend on the domain-specific language. This co-evolution can be tedious and very costly. In literature, various approaches are proposed towards automated co-evolution. However, these approaches do not reach full automation. Several other studies have shown that there are theoretical limitations to the level of automation that can be achieved in certain scenarios. For several scenarios full automation can never be achieved. We wish to gain insight to which extent practically occurring scenarios can be automated. To gain this insight, in this paper, we investigate on a large-scale industrial repository, which (co-)evolutionary scenarios occur in practice, and compare them with the various scenarios and their theoretical automatability. We then assess whether practically occurring scenarios can be fully automated.
Josh Mengerink, Bram van der Sanden, Bram C. M. Cappers, Alexander Serebrenik, Ramon R. H. Schiffelers, Mark van den Brand
MODELSWARD6
2018 Towards Automated Analysis of Model-Driven Artifacts in Industry
abstract
Developing complex (sub)systems is a multi-disciplinary activity resulting in several, complementary models, possibly on different abstraction levels. The relations between all these models are usually loosely defined in terms of informal documents. It is not uncommon that only till the moment of integration at implementation level, shortcomings or misunderstanding between the different disciplines is revealed. In order to keep models consistent and to reason about multiple models, the relations between models have to be formalized. MultiDisciplinary System Engineering (MDSE) ecosystems provide a means for this. These ecosystems formalize the domain of interest using Domain Specific Languages (DSLs), and formalize the relations between models by means of automated model transformations. This enables consistency checking between domain and aspect models and facilitates multi-disciplinary analysis of the single (sub)system at hand. MDSE ecosystems provide the means to analyze a single (sub)system model. A set of models of different (sub)systems can be analyzed to derive best modeling practices and modeling patterns, and to measure whether a MDSE ecosystem fulfills its needs. The MDSE ecosystem itself can be instrumented to analyze how the MDSE ecosystem is used in practice. The evolution of models, DSLs and complete MDSE ecosystems is studied to identify and develop means that support evolution at minimal costs while maintaining high quality. In this paper, we present the anatomy of MDSE ecosystems with industrial examples, the ongoing work to enable the various types of analysis, each with their dedicated purpose. We conclude with a number of future research directions.
Ramon R. H. Schiffelers, Yaping Luo, Josh Mengerink, Mark van den Brand
MODELSWARD4
2018 Recursion aware modeling and discovery for hierarchical software event log analysis
abstract
This paper presents 1) a novel hierarchy and recursion extension to the process tree model; and 2) the first, recursion aware process model discovery technique that leverages hierarchical information in event logs, typically available for software systems. This technique allows us to analyze the operational processes of software systems under real-life conditions at multiple levels of granularity. The work can be positioned in-between reverse engineering and process mining. An implementation of the proposed approach is available as a ProM plugin. Experimental results based on real-life (software) event logs demonstrate the feasibility and usefulness of the approach and show the huge potential to speed up discovery by exploiting the available hierarchy.
Maikel Leemans, Wil M. P. van der Aalst, Mark van den Brand
SANER3
2018 The Statechart Workbench: Enabling scalable software event log analysis using process mining
abstract
To understand and maintain the behavior of a (legacy) software system, one can observe and study the system's behavior by analyzing event data. For model-driven reverse engineering and analysis of system behavior, operation and usage based on software event data, we need a combination of advanced algorithms and techniques. In this paper, we present the Statechart Workbench: a novel software behavior exploration tool. Our tool provides a rich and mature integration of advanced (academic) techniques for the analysis of behavior, performance (timings), frequency (usage), conformance and reliability in the context of various formal models. The accompanied Eclipse plugin allows the user to interactively link all the results from the Statechart Workbench back to the source code of the system and enables users to get started right away with their own software. The work can be positioned in-between reverse engineering and process mining. Implementations, documentation, and a screen-cast (https://youtu.be/xR4XfU3E5mk) of the proposed approach are available, and a user study demonstrates the novelty and usefulness of the tool.
Maikel Leemans, Wil M. P. van der Aalst, Mark van den Brand
SANER3
2018 Exploration of modularity and reusability of domain-specific languages: an expression DSL in MetaMod
Ana-Maria Sutîi, Mark van den Brand, Tom Verhoeff
Comput. Lang. Syst. Struct.2
2018 Improving custom-tailored variability mining using outlier and cluster detection
David Wille, Önder Babur, Loek Cleophas, Christoph Seidl 0001, Mark van den Brand, Ina Schaefer
Sci. Comput. Program.5
2017 Automated analyses of model-driven artifacts: obtaining insights into industrial application of MDE
abstract
Over the past years, there has been an increase in the application of model driven engineering in industry. Similar to traditional software engineering, understanding how technologies are actually used in practice is essential for developing good tooling, and decision making processes. Unfortunately, obtaining and analyzing empirical data in a model-driven context is still tedious and time consuming, introducing large lead-times. In this paper we present a framework for the automated extraction, analysis, and visualization of data and metrics on model-driven artifacts. We subsequently present various examples of how the framework was successfully applied in a large industrial setting to answer a plethora of different questions with respect to decision making and tool development.
Josh Mengerink, Alexander Serebrenik, Ramon R. H. Schiffelers, Mark van den Brand
IWSM-Mensura4
2017 A systematic approach and tool support for GSN-based safety case assessment
Yaping Luo, Mark van den Brand, Zhuoao Li, Arash Khabbaz Saberi
J. Syst. Archit.2
2017 Guest editors' introduction to the 6th issue of Experimental Software and Toolkits (EST-6)
Mark van den Brand, Jurgen J. Vinju, Kim Mens
Sci. Comput. Program.1
2017 Tool demonstration track of MODELS'2016
Peter J. Clarke, Juan de Lara, Mark van den Brand
Sci. Comput. Program.3
2016 Hierarchical Clustering of Metamodels for Comparative Analysis and Visualization
Önder Babur, Loek Cleophas, Mark van den Brand
ECMFA3
2016 A Complete Operator Library for DSL Evolution Specification
abstract
Domain-specific languages (DSLs) allow users to model systems using concepts from a specific domain. Evolution of DSLs triggers co-evolution of models developed in these languages. Manual co-evolution of the thousands of models is unfeasible, calling for an automated support. A prerequisite to automating model co-evolution with respect to DSL evolution is the ability to formally specify DSL evolution, e.g., using predefined evolution operators. Success or failure of the practical application of the operator-based approach therefore depends heavily on the operators offered by the operator library at hand. In this paper we evaluate the completeness of the state-of-the-art operator library claimed to be "practically complete" (which we denote as H) by using it to specify evolution of an ecosystem of 22 commercial DSLs over the period of four years. We observe that 11% of the changes cannot be specified. However, there is no guarantee that extending the library with the identified deficiencies will be sufficient to specify evolution of other DSLs. To mitigate this, we design a theoretically complete library of operators, R. We observe that 77% of the operators from R are absent from H. Of the deficiencies in H, 72% could not be revealed by means of studying the extensive industrial ecosystem above. Our study suggests that the existing operator libraries are not extensive enough to specify evolution of large model-driven software ecosystems. Since extending operator libraries on a per-case study basis does not yield satisfactory results so far, we advocate an alternative, i.e. a theoretically complete library of operators R.
Josh Mengerink, Alexander Serebrenik, Ramon R. H. Schiffelers, Mark van den Brand
ICSME4
2016 Towards a safety mechanism for platooning
abstract
Platooning has shown to be technically feasible, but safety aspects are still challenging. Wireless communication between vehicles allows to maintain reduced inter-vehicle distances, thereby improving traffic throughput and decreasing fuel consumption. As the driver can no longer be a backup at short inter-vehicle distances, the system needs to be fail-safe for both hazardous traffic situations as well as failures. In this paper, a scenario is defined which combines a hazardous traffic situation with a communication failure. First, the methodology for developing safety related functionality in automated driving is presented. This methodology combines aspects of the ISO26262 standard with the Harmony profile. Second, the safety mechanism to avoid a collision by braking is described. This ensures that a safe state can be reached for a set of use cases which are derived from the defined scenario. Finally, the proposed solution is tested in a simulation environment and is also implemented on test vehicles. The result of the simulations and experiments demonstrate the practical validity and show increased safety related functionality.
Ellen van Nunen, Dimitrios Tzempetzis, Gerald Koudijs, Henk Nijmeijer, Mark van den Brand
Intelligent Vehicles Symposium5
2016 Towards Statistical Comparison and Analysis of Models
abstract
Model comparison is an important challenge in model-driven engineering, with many application areas such as model versioning and domain model recovery. There are numerous techniques that address this challenge in the literature, ranging from graph-based to linguistic ones. Most of these involve pairwise comparison, which might work, e.g. for model versioning with a small number of models to consider. However, they mostly ignore the case where there is a large number of models to compare, such as in common domain model/metamodel recovery from multiple models. In this paper we present a generic approach for model comparison and analysis as an exploratory first step for model recovery. We propose representing models in vector space model, and applying clustering techniques to compare and analyse a large set of models. We demonstrate our approach on a synthetic dataset of models generated via genetic algorithms.
Önder Babur, Loek Cleophas, Tom Verhoeff, Mark van den Brand
MODELSWARD4
2016 A Categorization of GSN-based Safety Cases and Patterns
abstract
Recently modeling techniques are introduced to support safety assessment. Goal Structural Notation is one of these modeling techniques, which can be used to facilitate the development of safety argumentation and create reusable safety argumentation models. Consequently, GSN-based safety cases are widely used to demonstrate the safety of systems in safety-critical domains. Due to the amount of manual work, constructing a safety case is usually time-consuming. Moreover, the re-usability of GSN-based safety cases is limited. To address this, safety case patterns are introduced to support safety case reuse. As more and more GSN-based safety cases and patterns are designed with different goals in different contexts, it becomes hard to identify a reusable safety case or pattern. In this paper, we carried out a study on the categorization of existing GSN-based safety cases and patterns. As a result, a number of high cited publications are selected and studied. Finally a categorizatio n of GSN-based safety cases is proposed. A clear categorization of GSN-based safety cases can be used to identify similar safety cases or patterns and facilitate safety case reuse.
Yaping Luo, Zhuoao Li, Mark van den Brand
MODELSWARD3
2016 Verification of Atomicity Preservation in Model-to-Code Transformations using Generic Java Code
abstract
A challenging aspect of model-to-code transformations is to ensure that the semantic behavior of the input model is preserved in the output code. When constructing concurrent systems, this is mainly difficult due to the non-deterministic potential interaction between threads. In this paper, we consider this issue for a framework that implements a transformation chain from models expressed in the state machine based domain specific language SLCO to Java. In particular, we provide a fine-grained generic solution to preserve atomicity of SLCO statements in the Java implementation. We give its generic specification based on separation logic and verify it using the verification tool VeriFast. The solution can be regarded as a reusable module to safely implement atomic operations in concurrent systems.
Dan Zhang 0002, Dragan Bosnacki, Mark van den Brand, Cornelis Huizing, Ruurd Kuiper 0001, Bart Jacobs 0002, Anton Wijs
MODELSWARD3
2016 Metrics design for safety assessment
Yaping Luo, Mark van den Brand
Inf. Softw. Technol.2
2015 Gender and Tenure Diversity in GitHub Teams
abstract
Software development is usually a collaborative venture. Open Source Software (OSS) projects are no exception; indeed, by design, the OSS approach can accommodate teams that are more open, geographically distributed, and dynamic than commercial teams. This, we find, leads to OSS teams that are quite diverse. Team diversity, predominantly in offline groups, is known to correlate with team output, mostly with positive effects. How about in OSS? Using GitHub, the largest publicly available collection of OSS projects, we studied how gender and tenure diversity relate to team productivity and turnover. Using regression modeling of GitHub data and the results of a survey, we show that both gender and tenure diversity are positive and significant predictors of productivity, together explaining a sizable fraction of the data variability. These results can inform decision making on all levels, leading to better outcomes in recruiting and performance.
Bogdan Vasilescu, Daryl Posnett, Baishakhi Ray, Mark van den Brand, Alexander Serebrenik, Premkumar T. Devanbu, Vladimir Filkov
CHI4
2015 Model Driven Engineering and Functional Safety
Mark van den Brand
MODELSWARD1
2015 Introduction - the LDTA tool challenge
Mark van den Brand
Sci. Comput. Program.1
2015 Software engineering: Redundancy is key
Mark van den Brand, Jan Friso Groote
Sci. Comput. Program.1
2015 Guest editors' introduction to the fifth issue of Experimental Software and Toolkits (EST): A special issue on Academics Modelling with Eclipse (ACME2012)
Mark van den Brand, Davide Di Ruscio, Dimitrios S. Kolovos, Louis M. Rose
Sci. Comput. Program.1
2015 Eclipse API usage: the good and the bad
John Businge, Alexander Serebrenik, Mark van den Brand
Softw. Qual. J.3
2014 From Conceptual Models to Safety Assurance
Yaping Luo, Mark van den Brand, Luc Engelen, M. D. Martijn Klabbers
ER2
2014 A Modeling Approach to Support Safety Assurance in the Automotive Domain
Yaping Luo, Mark van den Brand, Luc Engelen, M. D. Martijn Klabbers
ICSEng2
2014 Continuous Integration in a Social-Coding World: Empirical Evidence from GitHub
abstract
Continuous integration is a software engineering practice of frequently merging all developer working copies with a shared main branch, e.g., several times a day. With the advent of GitHub, a platform well known for its "social coding" features that aid collaboration and sharing, and currently the largest code host in the open source world, collaborative software development has never been more prominent. In GitHub development one can distinguish between two types of developer contributions to a project: direct ones, coming from a typically small group of developers with write access to the main project repository, and indirect ones, coming from developers who fork the main repository, update their copies locally, and submit pull requests for review and merger. In this paper we explore how GitHub developers use continuous integration as well as whether the contribution type (direct versus indirect) and different project characteristics (e.g., main programming language, or project age) are associated with the success of the automatic builds.
Bogdan Vasilescu, Stef van Schuylenburg, Jules Wulms, Alexander Serebrenik, Mark van den Brand
ICSME5
2014 Modular grammar specification
Adrian Johnstone, Elizabeth Scott, Mark van den Brand
Sci. Comput. Program.3
2014 Guest editors' introduction to the 4th issue of Experimental Software and Toolkits (EST-4)
Kim Mens, Mark van den Brand, Holger M. Kienle
Sci. Comput. Program.2
2014 How healthy are software engineering conferences?
Bogdan Vasilescu, Alexander Serebrenik, Tom Mens, Mark van den Brand, Ekaterina Pek
Sci. Comput. Program.4
2013 Extracting Models from ISO 26262 for Reusable Safety Assurance
Yaping Luo, Mark van den Brand, Luc Engelen, John M. Favaro, M. D. Martijn Klabbers, Giovanni Sartori
ICSR2
2013 Safe Specification of Operator Precedence Rules
Ali Afroozeh, Mark van den Brand, Adrian Johnstone, Elizabeth Scott, Jurgen J. Vinju
SLE2
2013 Preface to the special section on software evolution, adaptability, and maintenance
Lionel Seinturier, Mark van den Brand
Sci. Comput. Program.2
2012 VPDSL: A DSL for Software in the Loop Simulations Covering Material Flow
Istvan Nagy 0001, Loek Cleophas, Mark van den Brand, Luc Engelen, Liviu Raulea, Ernest Xavier Lobo Mithun
ICECCS3
2012 Survival of Eclipse third-party plug-ins
abstract
Today numerous software systems are being developed on top of frameworks. In this study, we analyzed the survival of 467 Eclipse third-party plug-ins altogether having 1,447 versions. We classify these plug-ins into two categories: those that depend on only stable and supported Eclipse APIs and those that depend on at least one of the potentially unstable, discouraged and unsupported Eclipse non-APIs. Comparing the two categories of plug-ins, we observed that the plug-ins depending solely on APIs have a very high source compatibility success rate compared to those that depend on at least one of the non-APIs. However, we have also observed that recently released plug-ins that depend on non-APIs also have a very high forward source compatibility success rate. This high source compatibility success rate is due to the dependency structure of these plug-ins: recently released plug-ins that depend on non-APIs predominantly depend on old Eclipse nonAPIs rather than on newly introduced ones. Finally, we showed that the majority of plug-ins hosted on SourceForge do not evolve beyond the first year of release.
John Businge, Alexander Serebrenik, Mark van den Brand
ICSM3
2012 Who's who in Gnome: Using LSA to merge software repository identities
abstract
Understanding an individual's contribution to an ecosystem often necessitates integrating information from multiple repositories corresponding to different projects within the ecosystem or different kinds of repositories (e.g., mail archives and version control systems). However, recognising that different contributions belong to the same contributor is challenging, since developers may use different aliases. It is known that existing identity merging algorithms are sensitive to large discrepancies between the aliases used by the same individual: the noisier the data, the worse their performance. To assess the scale of the problem for a large software ecosystem, we study all Gnome Git repositories, classify the differences in aliases, and discuss robustness of existing algorithms with respect to these types of differences. We then propose a new identity merging algorithm based on Latent Semantic Analysis (LSA), designed to be robust against more types of differences in aliases, and evaluate it empirically by means of cross-validation on Gnome Git authors. Our results show a clear improvement over existing algorithms in terms of precision and recall on worst-case input data.
Erik Kouters, Bogdan Vasilescu, Alexander Serebrenik, Mark van den Brand
ICSM4
2012 Compatibility Prediction of Eclipse Third-Party Plug-ins in New Eclipse Releases
abstract
Incompatibility between applications developed on top of frameworks with new versions of the frameworks is a big nightmare to both developers and users of the applications. Understanding the factors that cause incompatibilities is a step to solving them. One such direction is to analyze and identify parts of the reusable code of the framework that are prone to change. In this study we carried out an empirical investigation on 11 Eclipse SDK releases (1.0 to 3.7) and 288 Eclipse third-party plug-ins (ETPs) with two main goals: First, to determine the relationship between the age of Eclipse non-APIs (internal implementations) used by an ETP and the compatibility of the ETP. We found that third-party plug-in that use only old non-APIs have a high chance of compatibility success in new SDK releases compared to those that use at least one newly introduced non-API. Second, our goal was to build and test a predictive model for the compatibility of an ETP, supported in a given SDK release in a newer SDK release. Our findings produced 23 statistically significant prediction models having high values of the strength of the relationship between the predictors and the prediction (logistic regression R2 of up to 0.810). In addition, the results from model testing indicate high values of up to 100% of precision and recall and up to 98% of accuracy of the predictions. Finally, despite the fact that SDK releases with API breaking changes, i.e., 1.0, 2.0 and 3.0, have got nothing to do with non-APIs, our findings reveal that non-APIs introduced in these releases have a significant impact on the compatibility of the ETPs that use them.
John Businge, Alexander Serebrenik, Mark van den Brand
SCAM3
2012 Island Grammar-Based Parsing Using GLL and Tom
Ali Afroozeh, Jean-Christophe Bach, Mark van den Brand, Adrian Johnstone, Maarten Manders, Pierre-Etienne Moreau, Elizabeth Scott
SLE3
2011 Less is more: unparser-completeness of metalanguages for template engines
abstract
A code generator is a program translating an input model into code. In this paper we focus on template-based code generators in the context of the model view controller architecture (MVC).
Jeroen Arnoldus, Mark van den Brand, Alexander Serebrenik
GPCE2
2011 You can't control the unfamiliar: A study on the relations between aggregation techniques for software metrics
abstract
A popular approach to assessing software maintainability and predicting its evolution involves collecting and analyzing software metrics. However, metrics are usually defined on a micro-level (method, class, package), and should therefore be aggregated in order to provide insights in the evolution at the macro-level (system). In addition to traditional aggregation techniques such as the mean, median, or sum, recently econometric aggregation techniques, such as the Gini, Theil, Kolm, Atkinson, and Hoover inequality indices have been proposed and applied to software metrics. In this paper we present the results of an extensive correlation study of the most widely-used traditional and econometric aggregation techniques, applied to lifting SLOC values from class to package level in the 106 systems comprising the Qualitas Corpus. Moreover, we investigate the nature of this relation, and study its evolution on a subset of 12 systems from the Qualitas Corpus. Our results indicate high and statistically significant correlation between the Gini, Theil, Atkinson, and Hoover indices, i.e., aggregation values obtained using these techniques convey the same information. However, we discuss some of the rationale behind choosing between one index or another.
Bogdan Vasilescu, Alexander Serebrenik, Mark van den Brand
ICSM3
2011 Understanding the Dynamics of Requirements Process Improvement: A New Approach
A. S. Aminah Zawedde, M. D. Martijn Klabbers, Ddembe Williams, Mark van den Brand
PROFES4
2011 I2SD: Reverse Engineering Sequence Diagrams from Enterprise Java Beans with Interceptors
abstract
An Enterprise Java Beans (EJB) interceptor is a software mechanism that provides for introducing behavior implemented as separate code into the execution of a Java application. In this way EJB interceptors provide a clear separation of the core functionality of the bean and other concerns, such as logging or performance analysis. Despite the beauty of the idea behind the interceptors, developing, testing and managing dependencies introduced by the interceptors are considered to be daunting tasks. For example, the developers can specify interceptors at multiple locations and by multiple means. However, different locations and specification means influence the order of the interceptor invocation, which is governed by more than fifteen different intertwined rules according to the EJB standard. To facilitate development of EJB applications we have designed I2SD, Interceptors to Sequence Diagrams, a tool for reverse engineering EJB applications with interceptors to UML sequence diagrams. I2SD provides the developer with a visual feedback and can be used by quality managers to get a broader understanding of the way interceptors are used in their project.
Serguei A. Roubtsov, Alexander Serebrenik, Aurélien Mazoyer, Mark van den Brand
SCAM4
2010 Theil index for aggregation of software metrics values
abstract
We propose a new approach to aggregating software metrics from the micro-level of individual artifacts (e.g., methods, classes and packages) to the macro-level of the entire software system. The approach, Theil index, is a well-known econometric measure of inequality. The Theil index allows to study the impact of different categorizations of the artifacts, e.g., based on the development technology or developers' teams, on the inequality of the metrics values measured. We apply the Theil index in a series of experiments. We have observed that the Theil index and the related notions provide valuable insights in organization and evolution of software systems, as well as in sources of inequality.
Alexander Serebrenik, Mark van den Brand
ICSM2
2010 Guest editors' introduction to the 3rd issue of Experimental Software and Toolkits (EST): A special issue on Academic Software Development Tools and Techniques (WASDeTT 2008)
Mark van den Brand, Kim Mens
Sci. Comput. Program.1
2010 Automated generation of program translation and verification tools using annotated grammars
Diego Ordóñez Camacho, Kim Mens, Mark van den Brand, Jurgen J. Vinju
Sci. Comput. Program.3
2009 Dn-based architecture assessment of Java Open Source software systems
abstract
Since their introduction in 1994 the Martin's metrics became popular in assessing object-oriented software architectures. While one of the Martin metrics, normalised distance from the main sequence Dn, has been originally designed with assessing individual packages, it has also been applied to assess quality of entire software architectures. The approach itself, however, has never been studied. In this paper we take the first step to formalising the Dn-based architecture assessment of Java open source software. We present two aggregate measures: average normalised distance from the main sequence Dmacrn, and parameter of the fitted statistical model lambda. Applying these measures to a carefully selected collection of benchmarks we obtain a set of reference values that can be used to assess quality of a system architecture. Furthermore, we show that applying the same measures to different versions of the same system provides valuable insights in system architecture evolution.
Alexander Serebrenik, Serguei A. Roubtsov, Mark van den Brand
ICPC3
2008 Model-Driven Engineering Meets Generic Language Technology
Mark van den Brand
SLE1
2008 Guest editor's introduction: Second issue of experimental software and toolkits (EST)
Mark van den Brand
Sci. Comput. Program.1
2007 Repleo: a syntax-safe template engine
abstract
Templates are a very common solution to generate code. They are used for different tasks like rendering webpages, creating Java Beans and so on. Most template systems have no notion of the object language and just generate text. The drawback of this approach is the possibility to generate syntactical incorrect code. This can lead to all kinds of annoying errors.
Jeroen Arnoldus, Jeanot Bijpost, Mark van den Brand
GPCE3
2007 ATerms for manipulation and exchange of structured data: It's all about sharing
Mark van den Brand, Paul Klint
Inf. Softw. Technol.1
2007 Guest editor's introduction: Experimental Software and Toolkits (EST)
Mark van den Brand
Sci. Comput. Program.1
2006 An Action Environment
Mark van den Brand, Jørgen Iversen, Peter D. Mosses
Sci. Comput. Program.1
2005 An Architecture for Context-Sensitive Formatting
abstract
We have taken a fixed set of formatting requirements for a Cobol system as spelled out in a standardization document, and applied generic formatting technology to implement them. It appeared that corporate conventions can dictate alignment that crosscuts the logical structure of a program, and can even dictate indentation that is dynamically computed from context information. We have developed and implemented a formatting architecture that allows arbitrary computational power for mapping language constructs to the Box language. The enabling feature is a hybrid format that merges Box expressions with parse trees. Much of the boilerplate part of formatting can still be automated by a default mapping to Box. Absolute tab stops, an important feature which is not found in many Box back-ends, is used extensively in our case study.
Mark van den Brand, A. Taeke Kooiker, Jurgen J. Vinju, Niels P. Veerman
ICSM1
2004 Seventh European Conference on Software Maintenance and Reengineering (CSMR 2003)
Mark van den Brand, Gerardo Canfora, Tibor Gyimóthy
J. Softw. Maintenance Res. Pract.1
2003 Environments for Term Rewriting Engines for Free!
Mark van den Brand, Pierre-Etienne Moreau, Jurgen J. Vinju
RTA1
2003 Term rewriting with traversal functions
abstract
Term rewriting is an appealing technique for performing program analysis and program transformation. Tree (term) traversal is frequently used but is not supported by standard term rewriting. We extend many-sorted, first-order term rewriting with traversal functions that automate tree traversal in a simple and type-safe way. Traversal functions can be bottom-up or top-down traversals and can either traverse all nodes in a tree or can stop the traversal at a certain depth as soon as a matching node is found. They can either define sort-preserving transformations or mappings to a fixed sort. We give small and somewhat larger examples of traversal functions and describe their operational semantics and implementation. An assessment of various applications and a discussion conclude the article.
Mark van den Brand, Paul Klint, Jurgen J. Vinju
ACM Trans. Softw. Eng. Methodol.1
2002 Disambiguation Filters for Scannerless Generalized LR Parsers
Mark van den Brand, Jeroen Scheerder, Jurgen J. Vinju, Eelco Visser
CC1
2002 Compiling language definitions: the ASF+SDF compiler
abstract
The ASF+SDF Meta-Environment is an interactive language development environment whose main application areas are definition and implementation of domain-specific languages, generation of program analysis and transformation tools, and production of software renovation tools. It uses conditional rewrite rules to define the dynamic semantics and other tool-oriented aspects of languages, so the effectiveness of the generated tools is critically dependent on the quality of the rewrite rule implementation. The ASF+SDF rewrite rule compiler generates C code, thus taking advantage of C's portability and the sophisticated optimization capabilities of current C compilers as well as avoiding potential abstract machine interface bottlenecks. It can handle large (10,000+ rule) language definitions and uses an efficient run-time storage scheme capable of handling large (1,000,000+ node) terms. Term storage uses maximal subterm sharing (hash-consing), which turns out to be more effective in the case of ASF+SDF than in Lisp or SML. Extensive benchmarking has shown the time and space performance of the generated code to be as good as or better than that of the best current rewrite rule and functional language compilers.
Mark van den Brand, Jan Heering, Paul Klint, Pieter A. Olivier
ACM Trans. Program. Lang. Syst.1
2001 The ASF+SDF Meta-environment: A Component-Based Language Development Environment
Mark van den Brand, Arie van Deursen, Jan Heering, Hayco de Jong, Merijn de Jonge, Tobias Kuipers, Paul Klint, Leon Moonen, Pieter A. Olivier, Jeroen Scheerder, Jurgen J. Vinju, Eelco Visser, Joost Visser 0001
CC1
2000 Generation of components for software renovation factories from context-free grammars
Mark van den Brand, Alex Sellink, Chris Verhoef
Sci. Comput. Program.1
2000 Efficient annotated terms
abstract
How do distributed applications exchange tree-like data structures? We introduce the abstract data type of Annotated Terms (ATerms), and discuss their design, implementation and application. A comprehensive procedural interface enables the creation and manipulation of ATerms in C or Java. The ATerm implementation is based on maximal subterm sharing and automatic garbage collection. A binary exchange format for the concise representation of ATerms (sharing preserved) allows the fast exchange of ATerms between applications. In a typical application – parse trees which contain considerable redundant information – less than two bytes are needed to represent a node in memory, and less than two bits are needed to represent it in binary format. The implementation of ATerms scales up to the manipulation of ATerms in the giga-byte range. Copyright © 2000 John Wiley & Sons, Ltd.
Mark van den Brand, Hayco de Jong, Paul Klint, Pieter A. Olivier
Softw. Pract. Exp.1
1999 Compilation and Memory Management for ASF+SDF
Mark van den Brand, Paul Klint, Pieter A. Olivier
CC1
1996 Core Technologies for System Renovation
Mark van den Brand, Paul Klint, Chris Verhoef
SOFSEM1
1996 Generation of Formatters for Context-Free Languages
abstract
Good documentation is important for the production of reusable and maintainable software. For the production of accurate documentation it is necessary that the original program text is not copied manually to obtain a typeset version. Apart from being tedious, this will invariably introduce errors. The production of tools that support the production of legible and accurate documentation is a software engineering challenge in itself. We present an algebraic approach to the generation of tools that produce typographically effective presentations of computer programs. A specification of a formatter is generated from the context-free grammar of a (programming) language. These generated formatters translate abstract syntax trees of programs into box expressions. Box expressions are translated by language-independent interpreters of the box language into ASCII or T E X. The formatting rules that are generated can easily be tuned in order to get the desired formatting of programs. We demonstrate this by means of real-life applications. Furthermore, we give a practical solution for the problem of formatting comments, which occur in the original text. The formatter generation approach proposed in this article can be used to generate formatting programs for arbitrary programming environments. Our formatter generation approach can be used to automatically generate formatters that have to be programmed explicitly in other systems.
Mark van den Brand, Eelco Visser
ACM Trans. Softw. Eng. Methodol.1