Learn More
The goal of this roadmap paper is to summarize the state-of-the-art and to identify critical challenges for the systematic software engineering of self-adaptive systems. The paper is partitioned into four parts, one for each of the identified essential views of self-adaptation: modelling dimensions, requirements, engineering, and assurances. For each view,(More)
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(More)
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(More)
The scope of software visualization tools which exist for the navigation, analysis and presentation of software information varies widely. One class of tools, which we refer to as software exploration tools, provides graphical representations of static software structures linked to textual views of the program source code and documentation. This paper(More)
Documentation has traditionally played a key role as an aid in program understanding. However, most documentation is in-the-small," describing the program at the algorithm and data structure level. For large, legacy software systems, one needs in-the-large" documentation describing the high-level structural aspects of the software system's architecture from(More)
Program understanding can be enhanced using reverse engineering technologies. The understanding process is heavily dependent on both individuals and their speciic cognitive abilities, and on the set of facilities provided by the program understanding environment. Unfortunately, most reverse engineering tools provide a xed palette of extraction, selection,(More)
Understanding the structure of large information spaces can be enhanced using reverse engineering technologies. The understanding process is dependent on an individual's cognitive abilities and preferences, on one's familiarity with the application domain, and on the set of support facilities provided by the reverse engineering toolset. Unfortunately, most(More)