Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Hausi A. Müller is active.

Publication


Featured researches published by Hausi A. Müller.


Lecture Notes in Computer Science | 2009

Engineering Self-Adaptive Systems through Feedback Loops

Yuriy Brun; Giovanna Di Marzo Serugendo; Cristina Gacek; Holger Giese; Holger M. Kienle; Marin Litoiu; Hausi A. Müller; Mauro Pezzè; Mary Shaw

To deal with the increasing complexity of software systems and uncertainty of their environments, software engineers have turned to self-adaptivity. Self-adaptive systems are capable of dealing with a continuously changing environment and emerging requirements that may be unknown at design-time. However, building such systems cost-effectively and in a predictable manner is a major engineering challenge. In this paper, we explore the state-of-the-art in engineering self-adaptive systems and identify potential improvements in the design process. Our most important finding is that in designing self-adaptive systems, the feedback loops that control self-adaptation must become first-class entities. We explore feedback loops from the perspective of control engineering and within existing self-adaptive systems in nature and biology. Finally, we identify the critical challenges our community must address to enable systematic and well-organized engineering of self-adaptive and self-managing software systems.


dagstuhl seminar proceedings | 2013

Software Engineering for Self-Adaptive Systems: A Second Research Roadmap

Rogério de Lemos; Holger Giese; Hausi A. Müller; Mary Shaw; Jesper Andersson; Marin Litoiu; Bradley R. Schmerl; Gabriel Tamura; Norha M. Villegas; Thomas Vogel; Danny Weyns; Luciano Baresi; Basil Becker; Nelly Bencomo; Yuriy Brun; Bojan Cukic; Ron Desmarais; Schahram Dustdar; Gregor Engels; Kurt Geihs; Karl M. Göschka; Alessandra Gorla; Vincenzo Grassi; Paola Inverardi; Gabor Karsai; Jeff Kramer; Antónia Lopes; Jeff Magee; Sam Malek; Serge Mankovskii

The goal of this roadmap paper is to summarize the state-of-the-art and identify research challenges when developing, deploying and managing self-adaptive software systems. Instead of dealing with a wide range of topics associated with the field, we focus on four essential topics of self-adaptation: design space for self-adaptive solutions, software engineering processes for self-adaptive systems, from centralized to decentralized control, and practical run-time verification & validation for self-adaptive systems. For each topic, we present an overview, suggest future directions, and focus on selected challenges. This paper complements and extends a previous roadmap on software engineering for self-adaptive systems published in 2009 covering a different set of topics, and reflecting in part on the previous paper. This roadmap is one of the many results of the Dagstuhl Seminar 10431 on Software Engineering for Self-Adaptive Systems, which took place in October 2010.


Ibm Systems Journal | 1997

The software bookshelf

Patrick J. Finnigan; Richard C. Holt; Ivan Kalas; Scott Kerr; Kostas Kontogiannis; Hausi A. Müller; John Mylopoulos; Stephen G. Perelgut; Martin Stanley; Kenny Wong

Legacy software systems are typically complex, geriatric, and difficult to change, having evolved over decades and having passed through many developers. Nevertheless, these systems are mature, heavily used, and constitute massive corporate assets. Migrating such systems to modern platforms is a significant challenge due to the loss of information over time. As a result, we embarked on a research project to design and implement an environment to support software migration. In particular, we focused on migrating legacy PL/I source code to C++, with an initial phase of looking at redocumentation strategies. Recent technologies such as reverse engineering tools and World Wide Web standards now make it possible to build tools that greatly simplify the process of redocumenting a legacy software system. In this paper we introduce the concept of a software bookshelf as a means to capture, organize, and manage information about a legacy software system. We distinguish three roles directly involved in the construction, population, and use of such a bookshelf: the builder, the librarian, and the patron. From these perspectives, we describe requirements for the bookshelf, as well as a generic architecture and a prototype implementation. We also discuss various parsing and analysis tools that were developed and integrated to assist in the recovery of useful information about a legacy system. In addition, we illustrate how a software bookshelf is populated with the information of a given software project and how the bookshelf can be used in a program-understanding scenario. Reported results are based on a pilot project that developed a prototype bookshelf for a software system consisting of approximately 300K lines of code written in a PL/I dialect.


international conference on software engineering | 1988

Rigi-A system for programming-in-the-large

Hausi A. Müller; K. Klashinsky

The authors describe Rigi, a model and tool that uses a graph model and abstraction mechanisms to structure and represent the information accumulated during the development process. The objects and relationships of the graph model represent system components and their dependencies. The objects can be arranged in aggregation and generalization hierarchies. Rigi was designed to address three of the most difficult problems in the area of programming-in-the-large: the mastery of the structural complexity of large software systems, the effective presentation of development information, and the definition of procedures for checking and maintaining the completeness, consistency, and traceability of system descriptions. Thus, the major objective of Rigi is to effectively represent and manipulate the building blocks of a software system and their myriad dependencies, thereby aiding the development phases of the project.<<ETX>>


international conference on software engineering | 2000

Reverse engineering: a roadmap

Hausi A. Müller; Jens H. Jahnke; Dennis B. Smith; Margaret-Anne D. Storey; Scott R. Tilley; Kenny Wong

By the early 1990s the need for reengineering legacy systems was already acute, but recently the demand has increased significantly with the shift toward web-based user interfaces. The demand by all business sectors to adapt their information systems to the Web has created a tremendous need for methods, tools, and infrastructures to evolve and exploit existing applications efficiently and cost-effectively. Reverse engineering has been heralded as one of the most promising technologies to combat this legacy systems problem. This paper presents a roadmap for reverse engineering research for the first decade of the new millennium, building on the program comprehension theories of the 1980s and the reverse engineering technology of the 1990s.


international conference on software maintenance | 1995

Manipulating and documenting software structures using SHriMP views

Margaret-Anne D. Storey; Hausi A. Müller

An effective approach to program understanding involves browsing, exploring, and creating views that document software structures at different levels of abstraction. While exploring the myriad of relationships in a multi-million line legacy system, one can easily loose context. One approach to alleviate this problem is to visualize these structures using fisheye techniques. This paper introduces Simple Hierarchical Multi-Perspective views (SHriMPs). The SHriMP visualization technique has been incorporated into the Rigi reverse engineering system. This greatly enhances Rigis capabilities for documenting design patterns and architectural diagrams that span multiple levels of abstraction. The applicability and usefulness of SHriMPs is illustrated with selected program understanding tasks.


working conference on reverse engineering | 1997

How do program understanding tools affect how programmers understand programs

Margaret-Anne D. Storey; Kenny Wong; Hausi A. Müller

We explore the question of whether program understanding tools enhance or change the way that programmers understand programs. The strategies that programmers use to comprehend programs vary widely. Program understanding tools should enhance or ease the programmers preferred strategies, rather than impose a fixed strategy that may not always be suitable. We present observations from a user study that compares three tools for browsing program source code and exploring software structures. In this study, 30 participants used these tools to solve several high level program understanding tasks. These tasks required a broad range of comprehension strategies. We describe how these tools supported or hindered the diverse comprehension strategies used.


IEEE Software | 1995

Structural redocumentation: a case study

Kenny Wong; Scott R. Tilley; Hausi A. Müller; Margaret-Anne D. Storey

Most software documentation typically describes the program at the algorithm and data-structure level. For large legacy systems, understanding the systems architecture is more important. The authors propose a method of reverse engineering through redocumentation that promises to extend the useful life of large systems. >


conference on software maintenance and reengineering | 2002

Predicting fault-proneness using OO metrics. An industrial case study

Ping Yu; Tarja Systä; Hausi A. Müller

Software quality is an important external software attribute that is difficult to measure objectively. In this case study, we empirically validate a set of object-oriented metrics in terms of their usefulness in predicting fault-proneness, an important software quality indicator We use a set of ten software product metrics that relate to the following software attributes: the size of the software, coupling, cohesion, inheritance, and reuse. Eight hypotheses on the correlations of the metrics with fault-proneness are given. These hypotheses are empirically tested in a case study, in which the client side of a large network service management system is studied. The subject system is written in Java and it consists of 123 classes. The validation is carried out using two data analysis techniques: regression analysis and discriminant analysis.


International Journal of Software Engineering and Knowledge Engineering | 1994

PROGRAMMABLE REVERSE ENGINEERING

Scott R. Tilley; Kenny Wong; Margaret-Anne D. Storey; Hausi A. Müller

Program understanding can be enhanced using reverse engineering technologies. The understanding process is heavily dependent on both individuals and their specific cognitive abilities, and on the set of facilities provided by the program understanding environment. Unfortunately, most reverse engineering tools provide a fixed palette of extraction, selection, and organization techniques. This paper describes a programmable approach to reverse engineering. The approach uses a scripting language that enables users to write their own routines for common reverse engineering activities, such as graph layout, metrics, and subsystem decomposition, thereby extending the capabilities of the reverse engineering toolset to better suit their needs. A programmable environment supported by this approach subsumes existing reverse engineering systems by being able to simulate facets of each one.

Collaboration


Dive into the Hausi A. Müller's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Holger M. Kienle

Mälardalen University College

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Dennis B. Smith

Software Engineering Institute

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge