• No results found

It is important to understand the information visualisation field prior to designing a tool or advising information visualisation designers as we intended to do during

CHAPTER 2. RELATED WORK

the project. This section is intended as a brief and general literature overview of the information visualisation field, since it is not possible to provide a comprehensive ac- count of the field in merely a few pages. Below we describe the origins of the field and point out the most prominent collection of resources and continue with a few selected resources that relate to visualisations of performance of algorithms and pro- grams within traditional and multi-core computing, including high performance and distributed computing.

In the data visualisation domain, there are two commonly accepted types of visu- alisations, namely explanatory visualisation and exploratory visualisation [99]:

• Explanatory visualisation consists of data visualisations that are used to transmit information or a point of view from the visualisation designer to its reader, they have a specific “story” that they intend to transmit.

• Exploratory visualisation is used by the designer for self-informative purposes to discover patterns, trends or sub-problems within the dataset.

We examine the field of information visualisation (InfoVis) and data analytics, as related to our research in parallel performance visualisation. InfoVis is an interdis- ciplinary field that has emerged from computing and graph-making, motivated by the need to visually represent increasingly large data-sets found in the sciences, as well as digital communications and records, to enhance how humans can analyse and learn from this information [100]. The field of data visualisation is relatively new and rapidly growing, driven by the latest developments in information and communica- tions technologies, but tracing its origins to early mapping and graphing techniques [51, 163].

There are a number of books which aim to provide an overview of the new field of information visualisation and data analytics (e.g. [33, 83, 108, 154, 175]), along with numerous books for practitioners and designers (e.g. [99, 109, 116, 139]) and university courses around the world.

While there are numerous definitions of information visualisation, one of the most prominent is by Card et al. who state that InfoVis is “The use of computer-supported, interactive, visual representations of abstract data to amplify cognition” and also pro- vides a useful survey of the origins of the domain [27]. Card et al. also identified

CHAPTER 2. RELATED WORK

several streams of overlapping interest which concurrently contributed to the growth of the domain:

• Data graphics, which focused on the usage of graphs and maps to visually rep- resent data, including setting guidelines and examples of good design [163, 164]

• Statistics and visualisation, which focused on the distilling and analysing multi- variate and large datasets [34].

• Scientific visualisation, a research agenda on visualisation and computer graph- icsinvolving computational scientists and engineers, visualisation scientists and engineers, systems support personnel, artists, and cognitive scientists [111].

• User-interface research, which explored ways to help users to analyse large amounts of data, with a focus on usability and its cognitive amplification [27].

• Computer graphics and artificial intelligence, where researchers, informed by principles like those developed by Bertin and Tufte, sought to automate data transformation processes, as well as creating graphical and other visual repre- sentations [90].

Over the last decade and a half, numerous researchers have tried to apply some of the InfoVis concepts in order to visualise performance of various algorithms and systems. Early in 1993, Waheed and Rover described several issues that needed to be addressed to make performance visualisation of parallel systems possible and effec- tive, namely: development of techniques into a concrete methodology for evaluating, optimising and predicting performance; rendering paradigms to display logical struc- ture and behaviour; and integration methods in a performance analysis environment [167].

Unfortunately to date, most of the issues have been researched separately and are rarely brought together and evaluated as a whole. Performance prediction, for exam- ple, has made tremendous progress during the recent years, energised by a widespread adoption of multi-core processors [101, 173] and the performance, measured in cycles per instruction (CPI) can be predicted relatively accurately, even on complex server workloads [11] and different approaches to predicting are being proposed and im- proved [79]. Such research, however, has not been brought into commercial tools and has not been studied extensively from a user interaction perspective.

CHAPTER 2. RELATED WORK

Some performance visualisation designs and considerations have been informed by the insights from research carried out on human factors, as mentioned earlier (e.g. [126, 65, 67, 66]).

Understanding software architecture is a crucial step towards building and main- taining software. However, software architecture is a conceptual and intangible entity, which can be difficult to comprehend and reason about; visual mappings can help to reduce the cognitive effort involved. The need of visualising the structure of a soft- ware system becomes particularly evident when the software system grows to entail a huge number of modules and procedures related in a complex fashion [55].

Research in software visualisation attempts to answer a multitude of questions posed by various stakeholders. In a world where most of the successful companies rely heavily on software, visualising software systems is important not only for soft- ware architects and engineers involved in its development but also testers, project managers and even customers.

Storey et al. [156] conducted a comprehensive analysis of cognitive models in- volved in the program comprehension process and describe a hierarchy of cognitive issues and their implications for design that should be considered during the design of software exploration tools, including software visualisation systems. Figure 2.1 illustrates the categorisation of cognitive design elements for software exploration. Amongst the different cognitive models, Storey et al. present two fundamental ones:

Bottom-up comprehension modelwhere the program understanding involves

reading the program statements and constructing higher level abstractions.

Top-down comprehension modelrequiring the domain knowledge of the pro-

gram or previous exposure to the structure of the program. The maintainer (reader) of the program formulates a series of hypotheses and validates or rejects them by reading the source code or visualising the structure of the program. In her paper Storey states that it is essential to determine which comprehension model (top-down, bottom-up or hybrid) is best supported by the tool, while some research also suggests that people are using either model depending on certain cues. The implications of this work have been extremely influential on the state of the recent research [125, 55, 105, 160]

CHAPTER 2. RELATED WORK

Figure 2.1– The hierarchy of cognitive design elements for software exploration by Storey et al. [156]

Software itself is created, complex, abstract, and difficult to observe, to help pro- grammers understand it, software visualisation uses various visual representations to make software more visible [32]. Roman and Cox [141] defined program visualisation as a mapping from programs to graphical representations. Advocates of visualisation point to the important role visual communication plays in our lives, to the very high bandwidth of the human visual system and our ability to detect visual patterns.

Several research surveys have been conducted in order to understand the current trends and the state of research related to software visualisation.

• A research survey performed by Koschke [89] on the use of software visualisa- tion in the fields of software maintenance, reverse engineering and re-engineering

CHAPTER 2. RELATED WORK

synthesised the work performed by 82 researchers. Koschke’s survey showed that the vast majority of researchers believe that visualisation is very important to their domain. The survey also raises several concerns, including an improved understanding of the needs of viewers (programmers). Koschke calls for more modelling of visual understanding and experimentation with different kinds of visualisations. He also highlight that the most significant challenges in software visualisation arise in maintenance (debugging and optimisation), reverse engi- neering and re-engineering.

• A research survey of software software architecture visualisation conducted by Ghanam and Carpendale [55] highlights some of the trends in the research com- munity. Such trends include the use of the third dimension in order to reduce the visual complexity. Another trend consists of exploring and using real-world metaphors (e.g. “cities”) as means to amplify cognition. However, the authors call for experimental validation of various metaphors as there is little or no em- pirical evidence for the added benefits of metaphors in software architecture visualisation.

Figure 2.2 – Illustration of CodeCity, an integrated environment for software analysis. This tool represents various packages as city blocks and classes as city buildings and al- lows the user to map and visualise various software metrics such as complexity or length.

CHAPTER 2. RELATED WORK

lution of software architecture summarises the state of the research and various visual techniques used to display the software architecture hierarchies. It also highlights the importance of software metrics as an ideal abstraction as they en- capsulate, summarise and provide essential quality information about the source code [92]. The survey highlights an essential aspect of software visualisation be- ing the evolution of the software and some important works ([168], Figure 2.2) in the domain which combine software metrics, hierarchical structure, metaphors and effective temporal visualisation to gain a better understanding of the archi- tecture and its evolution. Khan calls for forward collaboration between the re- searchers, experts and the industry, tailoring tools to meet specific requirements and conduct comprehensive evaluations of software visualisation systems.