
Horst LichterRWTH Aachen University · Software Construction Research Group
Horst Lichter
Prof. Dr.
About
202
Publications
44,465
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,440
Citations
Citations since 2017
Introduction
Horst Lichter is head at the Software Construction Research Group, RWTH Aachen University. Horst does research many Software Engineering areas. For more information please visit:
https://www.swc.rwth-aachen.de/
Publications
Publications (202)
Technical debt solely focuses on the technical aspect and fails to provide a holistic view to address the misalignment between business and IT aspects of enterprise architecture (EA). To provide a more holistic view and to include the business aspect in the context of debt, researchers have proposed the concept of EA debt. It refers to the gap betw...
Model-based test case generation (MB-TCG) and prioritization (MB-TCP) utilize models that represent the system under test (SUT) for test generation and prioritization in software testing. They are based on model-based testing (MBT), a technique that facilitates automation in testing. Automated testing is indispensable for testing complex and indust...
The usage of compute resources by data processing jobs may change over time, requiring careful resource planning when an organization operates these resources itself in an on-premise private cloud. Ideally, the currently available resources always match the need of jobs executed on them. This way the resources would neither be overutilized, which i...
IT processes constitute the backbone of an integrated enterprise architecture (EA). The model thereof sustains the development and management of the EA. Nevertheless, the quality of such models tends to degrade over time due to, e.g. improper modeling practices or ineffective evaluation. In this regard, the knowledge of relevant modeling anti-patte...
Even though enterprise architecture management (EAM) offers a wide range of methods and tools for aligning business with IT, an architect's work is challenged by reality. The evolution of enterprise architecture (EA) and given constraints (e.g. legacy systems and processes) lead to debts which may complicate and hinder opportunities; however, the m...
Combinatorial robustness testing is an approach to generate separate test inputs for positive and negative test scenarios. The test model is enriched with semantic information to distinguish valid from invalid values and value combinations. Unfortunately, it is easy to create over-constrained models and invalid values or invalid value combinations...
Implementing an enterprise architecture (EA) project might not always be a success due to uncertainty and unavailability of resources. Hitherto, we have proposed a new metaphor-Enterprise Architecture Debt (EAD)-, which makes bad habits within EAs explicit. We anticipate that the accumulation of EAD will negatively influence EA quality, also expose...
Robustness is an important property of software that should be thoroughly tested. Combinatorial testing (CT) is an effective black-box test approach. When using it for robustness testing, input masking can prevent faults from being detected. However, the impact is not yet clear. Therefore, we conducted a controlled experiment to understand how inpu...
In the software development industry, Technical
Debt is regarded as a critical issue in terms of the negative
consequences such as increased software development cost,
low product quality, decreased maintainability, and slowed
progress to the long-term success of developing software. However,
despite the vast research contributions in Technical Deb...
In the software development industry, technical debt is regarded as a critical issue in term of the negative consequences such as increased software development cost, low product quality, decreased maintainability, and slowed progress to the long-term success of developing software. However, despite the vast research contributions in technical debt...
Enterprise Architecture (EA) is no end in itself but has to provide central, important, and up-to-date information of the organization to its clients. So far, different researchers have elaborated on processes to ensure a (semi-)automated EA model maintenance. For practitioners this raises the question how the processes can be compared to each othe...
Combinatorial testing is a well-known black-boxtesting approach. Empirical studies suggest the effectiveness ofcombinatorial coverage criteria. So far, the research focuseson positive test scenarios. But, robustness is an importantcharacteristic of software systems and testing negative scenariosis crucial. Combinatorial strategies are extended to g...
Combinatorial testing is a well-known black-box testing approach. Empirical studies suggest the effectiveness of combinatorial coverage criteria. So far, the research focuses on positive test scenarios. But, robustness is an important characteristic of software systems and testing negative scenarios is crucial. Combinatorial strategies are extended...
Enterprise Architecture (EA) is a widely accepted means to ease the alignment of IS projects with enterprise-wide objectives. One central artifact of EA are EA models, which provide a holistic view on the organization and support EA's stakeholder to create added value. As EA collects its data from different sources, the data can be contradictory. T...
IT becomes more and more important for business in the last decades. Simultaneous, the IT pervades the business more and more and becomes ubiquitous. This raises also the complexity of the information systems and their interrelations. With rising complexity of the information systems it becomes harder to ensure the IT/business alignment. One way to...
One central aim of Enterprise Architecture (EA) is to keep the EA model up-to-date to provide recent information to its stakeholders. Based on EA information, projects develop their results, called solutions, which possibly affect the EA model. As the interaction between projects and EA is not always coordinated, wrong decisions can be taken and, c...
Continuous Integration and Continuous Delivery are established practices in modern agile software development. The DevOps movement adapted theses practices and places the deployment pipeline at its heart as one of the main requirements to automate the software development process and to deliver and operate software in a more robust way with higher...
Enterprise Architecture Frameworks (EAFs) are being employed vastly within various organizations in recent years. Moreover, due to the high prevalence of information technology in the enterprises, Information Security (IS) was incorporated into the EAFs. Therefore, it gradually became important for the EAFs to conform to the IS standards such as th...
Recent studies show that security vulnerabilities are caused by neglecting best-practices for the configuration of software and the underlying infrastructure. Due to the rising complexity of software systems and the accelerated speed of software releases using mechanisms like continuous delivery the problem gets even more challenging. Existing proc...
Code smells are the structural weaknesses which reside in a software system. They evolve negatively over time reducing the system quality i.e., maintainability, understandability etc. Therefore, they should be detected and prioritized based on criticality in order to be refactored. Most of the existing approaches are based on severity score, but li...
This paper proposes a design of an extendable reporting interface. The design of this interface is focused on how the data can be retrieved from a data processing software and how reports are generated to be consumed by another system. The reporting interface should be independent from its client software and from the report format that has to be p...
Within this paper, we present a technique to optimize the relations between two adjacent layers of Enterprise Architectures (EA). Therefore, we suggest to interpret the constraints between these two layers as triangles, where a needed capability of an upper layer element is realized by a lower layer element. This eases the communication of the opti...
One central aim of EAM is to keep the EA up-to-date to provide recent information and models to EAM's clients. Based on EA information projects develop their results, called solutions, which possibly affect the EA. As the interaction between projects and EAM is not always coordinated systematically, wrong decisions can be taken and, consequently, s...
Model evolution in model libraries differs from general model evolution. It
limits the scope to the manageable and allows to develop clear concepts,
approaches, solutions, and methodologies. Looking at model quality in evolving
model libraries, we focus on quality concerns related to reusability. In this
paper, we put forward our proactive quality...
This paper proposes an approach to automatically transform source code of a web application into an abstraction model. A Web Application Program Dependency (WAPD) meta-model is being proposed to store dependency information based on a multi-tiered architecture, corresponding to web application's behavior. A WebParseTree is used as an intermediate m...
Technical debt (TD) is a metaphor of bad software design or immature artifacts of a software system. The metaphor has been quite intensively researched especially on how to identify the TD symptoms, (e.g., system deficiencies or architecture violations) explicitly. Although the TD identification is quite important in the TD management process, a sy...
The software architecture description is often the reasoning basis for important design decisions. Nevertheless, during the evolution of a system, the software architecture tends to deviate from its description which gradually approaches obsolescence. Software architecture reconstruction tools can be employed to retrieve up-to-date descriptions, ho...
Architecture reconstruction tools were proposed to enable the extraction of descriptive architecture models based on prescriptive input models. A limitation of these tools is that they employ specific meta-models to which the input prescriptive models must adhere. These are often incompatible with the languages or notations that architects use in p...
Up-to-date software architecture models dramatically ease the understanding and meaningful evolution of a software system. Unfortunately they are rarely available. Mostly the static view of the architecture is modeled and only stipulations are made regarding how architecture units should communicate. However, a software system tends to evolve indep...
The hydrological observation data is important for hydraulic engineers. They have to use the obtained information to control quality or quantity of water in the river system. Nowadays plenty of hydrological information systems are available. However there are many difficulties to do the parallel accesses between those services, for example, they no...
Delivering software fast, reliable, and predictable is essential for software development organizations. Yet, they often struggle to implement proper approaches and practices like release engineering and DevOps. One reason is the lack of consistent definitions for both of these terms, making it difficult to grasp the meaning and adding further conf...
Coupling is one of the most important properties that affect the quality of the design and implementation of a software system. In the context of object oriented software development, coupling metrics and their impact on quality attributes have been investigated for a quarter of a century. In this work we review and critically analyze the developme...
A crucial part of software project management consists of deciding when the software in development is ready to be released. We call this property of a software system release readiness. This work clarifies the meaning of release readiness by giving a presentation of three selected approaches which measure this property. This work distinguishes the...
Up-to-date architecture views help to better understand and meaningfully evolve software systems. Despite their importance, the views are typically either not defined or not monitored and updated when changes to the actual systems are performed. They thus become subject of continuous degradation. To reconstruct the views, architecture monitoring an...
The documentation of architecture and design decisions lies at the backbone of building a comprehensive architectural knowledge basis within a company. As a consequence, a plethora of supporting frameworks has been lately proposed by the research community. The existing frameworks focus on capturing the rationale that lies behind a certain decision...
Although up-to-date architecture views outstandingly aid the understanding, meaningful evolution and evaluation of software systems, software architecture reconstruction tools are still not broadly employed in the industry. While this situation might seem contradictory, we have identified-based on our experience with two industry cooperation partne...
Recommender systems for source code artifacts are newly emerging and are now successfully supporting programmers. Their underlying knowledge bases, recommender algorithms, and user interfaces are well studied. Integrated into the development environment, they do a fairly good job in reducing complexity and development time. In contrast, research in...
Content-assist systems and code completion are nicely accessible in integrated development environments (IDEs). Using multiple data sources and performing sophisticated completion in several editors is quite common. However, no such supporting system exists for modeling environments, e.g., a completion mechanism in class diagrams is only existent f...
Metrics and especially metric-based monitoring dashboards provide valuable information and insights for managers in software development organizations. However, implementing and launching a company wide metrics program is very hard and time consuming. This paper describes the history and our experience with the development of a metrics program at G...
Software architecture stands at the backbone of any software system. An up-to-date description of the architecture greatly contributes to its understanding, evaluation and evolution. Despite its importance, the architecture is typically described only in the preliminary development phases and later becomes subject of continuous degradation. Therefo...
Seit über 20 Jahren wird auf den »Sohware Engineering im Unterricht der Hochschulen- Workshops (SEUH)« über Schwierigkeiten und Möglichkeiten diskutiert und beraten, wie wir Studierenden die Vorgehensweisen bei der Sohwareentwicklung am besten vermitteln. Seit den ersten Workshops hat sich einiges verändert, es gibt aber auch vieles, was unveränder...
Large scale measurement systems are hard to build and to maintain. In this paper we propose an architecture blueprint for a federalist Enterprise Measurement Infrastructure (EMI) which helps to address these typical weaknesses of centralistic measurement systems. The EMI is based on the ideas of Service Oriented Measurements. We combined these with...
Model evolution is widely considered as a subject under research. Despite its
role in research, common purpose concepts, approaches, solutions, and
methodologies are missing. Limiting the scope to model libraries makes model
evolution and related quality concerns manageable, as we show below. In this
paper, we put forward our quality staged model e...
A variety of reference models such as CMMI, COBIT or ITIL supports IT organizations to improve their processes. Although these process improvement reference models (IRMs) cover different domains, they also share some similarities. There are organizations that address multiple domains under the guidance of different IRMs. As IRMs overlap in some pro...
Software development is moving in the direction of modeling as do quite a lot of other IT related tasks. This means, models become more and more important either as a means of communication or as parts of realizations. Unfortunately, these models are rarely reused which might be due to poor tool support.
A model recommender system is one possible w...
A variety of reference models such as CMMI, COBIT or ITIL support IT organizations to improve their processes. These process improvement reference models (IRMs) cover different domains such as IT development, IT Services or IT Governance but also share some similarities. As there are organizations that address multiple domains and need to coordinat...
Although use cases are nowadays one of the most widespread techniques for the specification of system behavior low quality use case descriptions regularly cause serious problems in later phases of the development process. The simulation of use case based descriptions may be an important technique to overcome these issues because it enables especial...
Software development is a complex process for which numerous approaches have been suggested. However, no single approach to software development has been met with universal acceptance, which is not surprising, as there are many different software development concerns. In addition, there are a multitude of other contextual factors that influence the...
Content assist systems and code completion are nicely accessible in integrated development environments (IDEs). Using multiple data sources and performing sophisticated completion in several editors is quite common. However, no such supporting system exists for modeling environments, e.g., a completion mechanism in class diagrams is only existent f...
A variety of reference models such as CMMI, COBIT or ITIL supports IT organizations to improve their processes. Although these process improvement reference models (IRM) cover different domains they also share some similarities. There are organizations that address multiple domains and want to take the guidance of different IRMs. As IRMs overlap in...
The architecture of software systems should be well documented and up to date. Knowledge about the software architecture of a software system enables reasoning regarding the software's qualities such as modifiability, extensibility, security, etc. However, very often the architecture is only described during the initial phases of a software project...