Leo Pruijt
HU University of Applied Sciences Utrecht
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Leo Pruijt.
international conference on software maintenance | 2013
Leo Pruijt; Christian Köppe; Sjaak Brinkkemper
Architecture Compliance Checking (ACC) is an approach to verify the conformance of implemented program code to high-level models of architectural design. ACC is used to prevent architectural erosion during the development and evolution of a software system. Static ACC, based on static software analysis techniques, focuses on the modular architecture and especially on rules constraining the modular elements. A semantically rich modular architecture (SRMA) is expressive and may contain modules with different semantics, like layers and subsystems, constrained by rules of different types. To check the conformance to an SRMA, ACC-tools should support the module and rule types used by the architect. This paper presents requirements regarding SRMA support and an inventory of common module and rule types, on which basis eight commercial and non-commercial tools were tested. The test results show large differences between the tools, but all could improve their support of SRMA, what might contribute to the adoption of ACC in practice.
Proceedings of the WICSA 2014 Companion Volume on | 2014
Leo Pruijt; Sjaak Brinkkemper
Architecture Compliance Checking (ACC) is an approach to verify the conformance of implemented program code to high-level models of architectural design. Static ACC is focused on the module views of architecture and especially on rules constraining the modular elements. This paper proposes an approach for support of semantically rich modular architectures (SRMAs) in the context of static ACC. An SRMA contains modules of semantically different types, like layers and components, constrained by rules of different types. Our approach is grounded in a metamodel, which enables support of rich sets of module and rule types and which enables extensive support of the semantics of these types. To validate the feasibility of the metamodel, an open source prototype implementation was developed, tested and applied in practice.
automated software engineering | 2014
Leo Pruijt; Christian Köppe; Jan Martijn E. M. van der Werf; Sjaak Brinkkemper
Architecture Compliance Checking (ACC) is an approach to verify the conformance of implemented program code to high-level models of architectural design. Static ACC focuses on the module views of architecture and especially on rules constraining the modular elements. This paper presents HUSACCT, a static ACC tool that adds extensive support for semantically rich modular architectures (SRMAs) to the current practice of static ACC tools. An SRMA contains modules of semantically different types, like layers and components, which are constrained by rules of different types. HUSACCT provides support for five commonly used types of modules and eleven types of rules. We describe and illustrate how basic and extensive support of these types is provided and how the support can be configured. In addition, we discuss the internal architecture of the tool.
TEAR/PRET | 2012
Henk Plessius; Raymond Slot; Leo Pruijt
With the development of Enterprise Architecture (EA) as a discipline, measuring and understanding its value for business and IT has become relevant. In this paper a framework for categorizing the benefits of EA, the Enterprise Architecture Value Framework (EAVF), is presented and based on this framework, a measurability maturity scale is introduced.
TEAR/PRET | 2012
Leo Pruijt; Raymond Slot; Henk Plessius; Rik Bos; Sjaak Brinkkemper
Enterprise Architecture (EA) is a well-accepted, but relatively young discipline. Since most practices are in the early stages of maturity, our research is aimed to develop an assessment instrument to measure and improve the EA management function’s ability to realize its goals. In this paper, we propose the Enterprise Architecture Realization Scorecard (EARS) and an accompanying method to discover the strengths and weaknesses in the realization process of an EA management function. During an assessment, representative EA goals are selected, and for each goal, the results, delivered during the different stages of the realization process, are analyzed, discussed and valued. The outcome of an assessment is a numerical EARScorecard, explicated with indicator-values, strengths, weaknesses, and recommendations. The concept and composition of the EARS is primarily inspired by the principles of CobiT and TOGAF’s Architecture Development Method. Two cases are discussed to illustrate the use of the instrument.
international conference on program comprehension | 2013
Leo Pruijt; Christian Köppe; Sjaak Brinkkemper
Architecture Compliance Checking (ACC) is useful to bridge the gap between architecture and implementation. ACC is an approach to verify conformance of implemented program code to high-level models of architectural design. Static ACC focuses on the modular software architecture and on the existence of rule violating dependencies between modules. Accurate tool support is essential for effective and efficient ACC. This paper presents a study on the accuracy of ACC tools regarding dependency analysis and violation reporting. Seven tools were tested and compared by means of a custom-made test application. In addition, the code of open source system Freemind was used to compare the tools on the number and precision of reported violation and dependency messages. On the average, 74 percent of 34 dependency types in our custom-made test software were reported, while 69 percent of 109 violating dependencies within a module of Freemind were reported. The test results show large differences between the tools, but all tools could improve the accuracy of the reported dependencies and violations.
Software - Practice and Experience | 2017
Leo Pruijt; Christian Köppe; Jan Martijn E. M. van der Werf; Sjaak Brinkkemper
Architecture compliance checking (ACC) is an approach to verify conformance of implemented program code to high‐level models of architectural design. Static ACC focuses on the modular software architecture and on the existence of rule violating dependencies between modules. Accurate tool support is essential for effective and efficient ACC. This paper presents a study on the accuracy of ACC tools regarding dependency analysis and violation reporting. Ten tools were tested and compared by means of a custom‐made benchmark. The Java code of the benchmark testware contains 34 different types of dependencies, which are based on an inventory of dependency types in object oriented program code. In a second test, the code of open source system FreeMind was used to compare the 10 tools on the number of reported rule violating dependencies and the exactness of the dependency and violation messages. On the average, 77% of the dependencies in our custom‐made test software were reported, while 72% of the dependencies within a module of FreeMind were reported. The results show that all tools in the test could improve the accuracy of the reported dependencies and violations, though large differences between the 10 tools were observed. We have identified 10 hard‐to‐detect types of dependencies and four challenges in dependency detection. The relevance of our findings is substantiated by means of a frequency analysis of the hard‐to‐detect types of dependencies in five open source systems.
european conference on software architecture | 2016
Leo Pruijt; Wiebe Wiersema
Software architecture reconstruction techniques may be used to understand and maintain software systems, especially in these cases where architectural documentation is outdated or missing. Reconstruction of layers is interesting, since the Layers pattern is commonly used in practice. Layers reconstruction algorithms are based on dependency analysis. In this paper, we define two dependency related parameters and explore their impact on the results of a layer reconstruction algorithm. The first parameter concerns the types of dependencies between software units included in the algorithm. The second parameter concerns the maximum ratio of allowed back-call dependencies between two software units in different layers. By means of experiments on a case system, and by means of conformance checking results, we explain and illustrate the impact of differences in parameter settings. We show that these parameters have a big impact. Consequently, exact specification of used parameter values is relevant in publications. Furthermore, parameter configuration options may be considered to improve tool support.
european conference on software architecture | 2015
Leo Pruijt; Jan Martijn E. M. van der Werf
Software architecture reconstruction and compliance checking rely on supporting tools that analyze the modules in the code and their dependencies. Tools may provide a dependency type for each dependency to provide more detail on the actual usage relation. This study is aimed on the identification of dependency characteristics which can be determined accurately and which might be interesting for architects and researchers in the context of architecture reconstruction and compliance checking. A classification is proposed which distinguishes dependency types, related subtypes, and several other characteristics. To enable reflection on the usefulness of the classified dependency details, a prototype implementation has been developed for the analysis of Java based systems. A frequency analysis of the classified dependency characteristics in three open source systems is presented, as well as an analysis of a set of rule violating dependencies in one of these systems.
computer science education research conference | 2014
Christian Köppe; Leo Pruijt
Assignments and exercises are an essential part of software engineering education. It usually requires a variety of these assignments to cover a desired wide range of educational objectives as defined in the revised Blooms taxonomy. But such a variety has inherent problems, e.g. that students might not see the connections between the assignments and find it hard to generalize the covered concepts. In this paper we present the educational design pattern Multi-Level Assignment which addresses these problems. It enables the assignment designer to incorporate a variety of educational objectives into a single assignment by including the concepts on multiple knowledge and process levels. The description as educational design pattern and the provided three implementation examples make this approach directly applicable for other software engineering educators.