Papers by Klaas van den Berg

Cornell University - arXiv, Aug 9, 2016
Software systems usually operate in a dynamic context where their requirements change continuousl... more Software systems usually operate in a dynamic context where their requirements change continuously and new requirements emerge frequently. A single requirement hardly exists in isolation: it is related to other requirements and to the software development artifacts that implement it. When a requirements change is introduced, the requirements engineer may have to manually analyze all requirements and architectural elements for a single change. This may result in neglecting the actual impact of a change. We aim at improving change impact analysis in software architecture for requirements changes by using formal semantics of requirements relations, requirements changes and traces between Requirements & Architecture. In our previous work we presented a technique for change impact analysis in requirements. The technique uses the formal semantics of requirements relations and changes. Its output is a set of candidate requirements for the impact with proposed changes and a propagation path in the requirements model. In this paper we present a complementary technique which propagates requirements changes to software architecture and finds out which architectural elements are impacted by these changes. The formalization of requirements relations, changes and traces between R&A is used to determine candidate architectural elements for the impact of requirements changes in the architecture. The tool support is an extension of our Tool for Requirements Inferencing and Consistency Checking (TRIC). Our approach helps in the elimination of some false positive impacts in change propagation. We illustrate our approach in an industrial example which shows that the formal semantics of requirements relations, changes and traces enables the identification of candidate architectural elements with the reduction of some false positive impacts.

CTIT technical report series, 2004
In the Meta Object Facility (MOF) metamodeling architecture a number of model transformation scen... more In the Meta Object Facility (MOF) metamodeling architecture a number of model transformation scenarios can be identified. It could be expected that a metamodeling architecture will be accompanied by a transformation technology supporting the model transformation scenarios in a uniform way. Despite the fact that current transformation languages have similarities they are usually focused only on a particular scenario. In this paper we analyse the problems that prevent the usage of a single language for different transformation scenarios. The problems are rooted in the current organization of MOF and especially in its inability to define explicitly the mechanism of model instantiation. This causes a tight coupling between a transformation language and the instantiation mechanism specific at the level it operates upon. We propose an organization of the MOF architecture based on a simple and uniform representation of all model elements no matter at which level they are defined. In this f...
Proccedings of the 10th European Conference on Software Architecture Workshops, 2016
The increasing complexity of software systems makes change management costly and time consuming. ... more The increasing complexity of software systems makes change management costly and time consuming. To ensure the costeffective system longevity and endurance, it is crucial to apply change management in the early stages of software development. In this paper, we introduce a rule-based approach to make software architecture evolving based on counter examples provided by a model checker for violated, changing functional requirements. The approach works on software architecture in AADL and is based on verifying functional requirements using Maude model checker. Our goal is to provide guidelines to the architect about potential changes. Using an industrial example, we show how our approach helps in determining changes to produce a new version of the architecture.

Science of Computer Programming, 2010
Aspect-Oriented Requirements Engineering focuses on the identification and modularisation of cros... more Aspect-Oriented Requirements Engineering focuses on the identification and modularisation of crosscutting concerns at early stages. There are different approaches in the requirements engineering community to deal with crosscutting concerns, introducing the benefits of the application of aspect-oriented approaches at these early stages of development. However, most of these approaches rely on the use of Natural Language Processing techniques for aspect identification in textual documents and thus, they lack a unified process that generalises its application to other requirements artefacts such as use case diagrams or viewpoints. In this paper, we propose a process for mining early aspects, i.e. identifying crosscutting concerns at the requirements level. This process is based on a crosscutting pattern where two different domains are related. These two different domains may represent different artefacts of the requirements analysis such as text and use cases or concerns and use cases. The process uses syntactical and dependency based analyses to automatically identify crosscutting concerns at the requirements level. Validation of the process is illustrated by applying it to several systems and showing a comparison with other early aspects tools. A set of aspect-oriented metrics is also used to show this validation.
[1993] Proceedings First International Software Metrics Symposium
This principle asserts that the property of a system can be derived from the properties of its co... more This principle asserts that the property of a system can be derived from the properties of its constituent components without knowledge of the interior structure of those components. Interaction between properties of components is excluded. A scheme for the measurement of a software system is given in figure [ll]). Structure metrics have been developed for computer programs in imperative programming languages.
Lecture Notes in Computer Science
Crosscutting is usually described in terms of scattering and tangling. However, the distinction b... more Crosscutting is usually described in terms of scattering and tangling. However, the distinction between these three concepts is vague. Precise definitions are mandatory for certain research areas such as the identification of crosscutting concerns at phases of the software life cycle. We propose a conceptual framework for crosscutting where crosscutting is defined in terms of trace relations. The definition of crosscutting is formalized using linear algebra, and represented with matrices and matrix operations. In this way, crosscutting can be clearly distinguished from scattering and tangling. With this definition and transitivity of trace relations, crosscutting can be identified and traced through software development, also in early phases. We describe some illustrative case studies to demonstrate the applicability of the analysis.

Forum on specification and Design Languages, 2003
In a Model Driven Architecture (MDA) software development process, models are repeatedly transfor... more In a Model Driven Architecture (MDA) software development process, models are repeatedly transformed to other models in order to finally achieve a set of models with enough details to implement a system. Generally, there are multiple ways to transform one model into another model. Alternative target models differ in their quality properties and the selection of a particular model is determined on the basis of specific requirements. Software engineers must be able to identify, compare and select the appropriate transformations within the given set of requirements. The current transformation languages used for describing and executing model transformations only provide means to specify the transformations but do not help to identify and select from the alternative transformations. In this paper we propose a process and a set of techniques for constructing a transformation space for a given transformation problem. The process uses a source model, its meta-model and the meta-model of the target as input and generates a transformation space. Every element in that space represents a transformation that produces a result that is an instance of the target meta-model. The requirements that must be fulfilled by the result are captured and represented in a quality model. We explain our approach using an illustrative example for transforming a platform independent model expressed in UML into platform specific models that represent XML schemas. A particular quality model of extensibility is presented in the paper.

In the period 1986-1991, experiments have been carried out with an introductory course in compute... more In the period 1986-1991, experiments have been carried out with an introductory course in computer programming, based on functional programming. Due to thorough educational design and evaluation, a successful course has been developed. This has led to a revision of the computer programming education in the first year of the computer science curriculum at the University of Twente. This article describes the approach, the aim of the computer programming course, the outline and subject matter of the course and the evaluation. Educational research has been done to assess the quality of the course. Contents 1 Introduction 50 1.1 Motivation 50 1.2 The students 51 2 The computer programming course 51 2.1 Functional Programming 52 2.2 Imperative Programming 53 2.3 Programming techniques 53 2.4 Instructional material 54 3 Evaluations 55 3.1 Observations 55 3.2 Problems 56 3.3 Functional versus imperative programming 58 4 Programming project 60 4.1 Organisation 61 4.2 Railway information sys...

Abstract. There are many similarities between industrial goods manufacturing and software develop... more Abstract. There are many similarities between industrial goods manufacturing and software development processes. This paper first briefly analyzes the recent developments in goods manufacturing, and then identifies the equivalent techniques in software technology. It is claimed that products developed during software manufacturing must be modeled as active artifacts. As a possible approach in this direction, an object-oriented artifact production framework is presented and evaluated. 1. Manufacturing Techniques and Software Engineering Despite of all the efforts made, developing cost-effective software systems remains a difficult task. There are many similarities between industrial goods manufacturing and software development processes, and therefore it may be worthwhile to compare these disciplines together. The progress made in industrial goods manufacturing can be roughly classified as mechanized and computerized techniques. The mechanized manufacturing age started through the in...

We present an approach in which the semantics of an XML language is defined by means of a transfo... more We present an approach in which the semantics of an XML language is defined by means of a transformation from an XML document model (an XML schema) to an application specific model. The application specific model implements the intended behavior of documents written in the language. A transformation is specified in a model transformation language used in the Model Driven Architecture (MDA) approach for software development. Our approach provides a better separation of three concerns found in XML applications: syntax, syntax processing logic and intended meaning of the syntax. It frees the developer of low-level syntactical details and improves the adaptability and reusability of XML applications. Declarative transformation rules and the explicit application model provide a finer control over the application parts affected by adaptations. Transformation rules and the application model for an XML language may be composed with the corresponding rules and application models defined for ...

Abstract. Evolving customer needs is one of the driving factors in software development. There is... more Abstract. Evolving customer needs is one of the driving factors in software development. There is a need to analyze the impact of requirement changes in order to determine possible conflicts and design alternatives influenced by these changes. The analysis of the impact of requirement changes on related requirements can be based on requirements traceability. In this paper, we propose a requirements metamodel with well defined types of requirements relations. This metamodel represents the common concepts extracted from some prevalent requirements engineering approaches. The requirements relations in the metamodel are used to trace related requirements for change impact analysis. We formalize the relations. Based on this formalization, we define change impact rules for requirements. As a case study, we apply these rules to changes in the requirements specification for Course Management System.
Crosscutting is usually described in terms of scattering and tangling. However, the distinction b... more Crosscutting is usually described in terms of scattering and tangling. However, the distinction between these three concepts is vague, sometimes leading to ambiguous statements and confusion. We propose a conceptual framework for crosscutting. Crosscutting is clearly distinguished from scattering and tangling. The definitions of these concepts are formalized and visualized with matrices and matrix operations. We discuss the relation between the concepts crosscutting, decomposition and coupling. Categories and Subject Descriptors D.1.5 [Software Engineering]: Object-oriented programming
traceMAINTAINER is a tool that supports an approach for maintaining post-requirements traceabilit... more traceMAINTAINER is a tool that supports an approach for maintaining post-requirements traceability relations after changes have been made to traced model elements. The update of traceability relations is based upon predefined rules, where each rule is intended to recognize a development activity applied to a model element. Little manual effort or interaction with the developer is required. traceMAINTAINER can currently be used with a number of commercial software development tools and enables the update of traceability relations stored within these tools. This paper provides an overview of traceMAINTAINER’s architecture and major components.
Dit artikel bespreekt de bruikbaarheid van het TSP-model (Transformatie tot StandaardProbleem, Me... more Dit artikel bespreekt de bruikbaarheid van het TSP-model (Transformatie tot StandaardProbleem, Mettes en Pilot, 1980) voor de ontwikkeling van een model voor het beschrijven van het feitelijk handelingsverloop (FHV) bij het oplossen van programmeerproblemen mbv een funktionele programmeertaal. Het resulterende model-FHV is gebruikt als interpretatietheorie bij het analyseren van hardopdenkprotokollen. Resultaten van deze analyse zijn gebruikt voor het opstellen van een aantal hypothesen voor verder onderzoek naar de bruikbaarheid van een funktionele programmeertaal als ondersteuning bij het leren gestruktureerd te programmeren.
We propose a formalization of crosscutting based on a conceptual framework for AOSD. Crosscutting... more We propose a formalization of crosscutting based on a conceptual framework for AOSD. Crosscutting is clearly distinguished from the related concepts scattering and tangling. The definitions of these concepts are formalized and visualized with matrices and matrix operations. This allows more precise reasoning about crosscutting.
In this report we describe an experiment with a course in Functional Programming for first years ... more In this report we describe an experiment with a course in Functional Programming for first years students in Computer Science. The background of the experiment is given as well as the aims of the questionaires, assignments and time requirement analysis. A discussion is given about some didactical issues in Functional Programming as a first programming course. A second experiment is proposed based on the evaluation presented in this report.
In this paper, the static analysis of programs in the functional programming language Miranda* is... more In this paper, the static analysis of programs in the functional programming language Miranda* is described based on two graph models. A new control-flow graph model of Miranda definitions is presented, and a model with four classes of caligraphs. Standard software metrics are applicable to these models. A Miranda front end for Prometrixt, a tool for the automated analysis of flowgraphs and callgraphs, has been developed. This front end produces the flowgraph and callgraph representations of Miranda programs. Some features of the metric analyser are illustrated with an example program. The tool provides a promising access to standard metrics on functional programs.
Uploads
Papers by Klaas van den Berg