Toxicity Chart

Erik Doernenberg from ThoughtWorks has created the Toxicity Chart which is a neat “practical” visualization displayed as a bar chart in a spreadsheet that shows what classes in your system are toxic as defined by classes being larger than a threshold for certain software metrics. The metrics include file length, class complexity, class coupling, inner class length, method length, number of parameters per method, cyclomatic complex methods, nested “if” and “try” depths, complexity of boolean expressions, and missing switch defaults. Erik describes the visualization and some existing tools to create this visualization in his blog post How toxic is your code?

The image below shows the Toxicity Chart for Hibernate, from Erik’s post.

Posted in Visualization Techniques | Tagged , , , | Leave a comment

Future of Software Engineering

A book recently published on the The Future of Software Engineering provides an interesting read focusing on the defining the achievements of software engineering in the past decades and showcasing visions for the future. The book is a collection of articles by some of the most prominent researchers and technologists who have shaped the field.

Posted in Research | Tagged , | Leave a comment

Software Quality – You Know It when You See It

Following on from Erik Doernenberg‘s (ThoughtWorks) earlier interview by InfoQ, Erik Doernenburg on Software Visualization see the InfoQ interview. A new video of a presentation by Erik was filmed at QCon London 2011 has now been made available Software Quality – You Know It when You See It (Slides). This talk has been given at previous conferences as well.

Some posts about this talk on the QCon blog:

Posted in Presentations, Tools | Tagged , | Leave a comment

VisWeek 2012

VISWEEK 2012
23rd IEEE Scientific Visualization Conference
18th IEEE Information Visualization Conference
7th IEEE Visual Analytics Science & Technology Conference

Co-located with
Biological Data Visualization Symposium
Large-Scale Data Analysis and Visualization Symposium

Call for Papers and Participation
14 – 19 OCTOBER, 2012
Seattle, Washington, USA

VisWeek 2012 is the premier forum for advances in scientific and information visualization. The event-packed week brings together researchers and practitioners from academia, government, and industry to explore their shared interests in tools, techniques, and technology. We invite you to participate in IEEE Scientific Visualization, IEEE Information Visualization, and IEEE Visual Analytics Science and Technology by sharing your research, insights, experience, and enthusiasm.

Co-Located Symposia
2nd IEEE Symposium on Large-Scale Data Analysis and Visualization (LDAV) aims at bringing together domain scientists, data analytics and visualization researchers, and users, and fostering the needed exchange to develop the next-generation data-intensive analysis and visualization technology. Visit ldav.org for more information.

2nd IEEE Symposium on Biological Data Visualization (BioVis) aims at bringing together researchers from the visualization, bioinformatics, and biology communities to establish an interdisciplinary dialogue and to promote the sharing of expertise, between both meeting participants and the communities at large. Visit biovis.net for more information.

Location
In 2012, IEEE VisWeek comes to the beautiful city of Seattle, Washington. Downtown Seattle is easily walkable and waiting to be explored. Shopping, dining, arts and visitor attractions are within steps of hotels and inns. The city is surrounded by pristine waterways, two mountain ranges and three national parks. To the west lies the only temperate rain forest in the continental U.S. To the east, a world-class wine region. Visit http://www.visitseattle.org

Important Dates
*VisWeek Deadlines*
March 21, 2012 (Abstracts)
March 31, 2012 (Full papers)
April 30, 2012 (Tutorials)
June 20, 2012 (Workshops & Panels)
June 27, 2012 (Posters & PhD Colloquium)
September 7, 2012 (Early-Bird Registration Closes)
June 29, 2012 (VAST Challenge)
July 31, 2012 (SciVis Contest)

Posted in Announcements, Conferences | Tagged , | Leave a comment

VISSOFT 2011 Paper Highlights

VISSOFT 2011, the 6th IEEE International Workshop on Visualizing Software for Understanding and Analysis, took place in Williamsburg, Virginia, USA, September 29-30, 2011 and was co-located with ICSM 2011. The proceedings are available in the IEEE Xplore Digital Library. Of the 21 full papers submitted to the workshop, nine were accepted (acceptance rate: 42%).

This post is by Fabian Beck a new contributor to the SoftVis blog and presents the nine full papers of VISSOFT 2011 in form of a structured review.

Code Dependencies

Dependencies between source code artifacts provide insights in the structure of a software system. Visualizing them is challenging because of the sheer quantity of dependencies usually included in a system. Often the hierarchical organization of the system (e.g., a hierarchical package structure) helps to structure or simplify these dependencies. Among the papers presented at VISSOFT 2011, many involve the visualization of code dependencies, the following three, however, having them in particular focus.

Caserta et al. use the hierarchical organization to map the source code artifacts to a two-dimensional plane exploiting a city metaphor. On top of this plane, in the third dimension, they draw the dependencies that link the artifacts. The authors reduce the visual complexity of the diagram by bundling the dependencies, again using the hierarchical structure of the artifacts. Such hierarchical edge bundling is also used in the approach by Beck F. et al., which focuses on comparing different types of code dependencies. They arrange the hierarchically structured artifacts linearly from top to bottom. Each type of dependency is depicted in a narrow stripe. By arranging the stripes side-by-side these types can be visually compared. The idea of depicting different types of dependencies is also present in the approach by Erdemir et al. They link those dependencies to different quality metrics by encoding them in the shape, color, texture, etc., of the nodes. A distinguishing feature of their approach is the intuitive mapping between metrics and visual attributes.

Dynamic Program Behavior

The analysis of the dynamic behavior of software systems is usually facing even larger sets of data than the analysis of static code dependencies. Visualization approaches depicting such dynamic data, hence, have to apply some form of aggregation to handle the data. As the following two examples show, this aggregation can be realized in different ways.

Code Dependencies can be enriched by dynamic information, for instance, as demonstrated by Deng et al.: They enforce structural dependencies if the connected code entities are covered by the same set of test cases. This dynamic relational information is only used to arrange a large set of code entities onto a two-dimensional plane. For reasons of scalability, their visualization shows these entities as color-coded dots, but does not depict dependencies. Choudhury and Rosen introduce an animated visualization technique for representing runtime memory transactions of a program. Elements of accessed data, visually encoded as glyphs, move between levels of a simulated cache. These glyphs form abstract visual structures that provide insights into the composition and eviction of the cache. The authors suggest that their approach fosters program comprehension with respect to the dynamic behavior of the program.

Visual Analytics Tools & Case Studies

Over the last decade, many software visualization approaches have been proposed, but only very few of them reached wide impact in practice. A reason could be that academia did not sufficiently embed those visualizations into real-world scenarios and development processes. The following analytics tools and case studies might lessen this gap.

When gaining information by visually analyzing a software system, a software developer wants to react to these new insights. Beck M. et al. introduce a tool for planning the reengineering of a software system, that is, changing the software design at a high level. Their tool is also based on a visualization of code dependencies attached with a hierarchy. The innovative features of their approach are the flexible interaction techniques for changing the hierarchy (i.e., the software design). Also Broeksema and Telea target at supporting developers in changing a software system: They investigate the effort to port a system from an older version of a library to a newer one. Their visualization, which they implemented as an IDE plug-in for KDevelop, provides an overview on the necessary changes and guide the developer to realize them.

Neu et al. study not only single software projects, but the ecosystems the individual projects are embedded in. They developed a web application that visualizes the evolution of such ecosystems. As an extensive case study, the GNOME project is analyzed. Long practiced but only recently considered as a serious development method, sketches are explored by Walny et al. In semi-structured interviews they evaluated how software developers in academia use these ad-hoc software visualizations. The interviews reveal that sketches are applied in a broad spectrum of scenarios and are often saved and reused in later stages of development.

Posted in Conferences, Papers, Summary | Tagged , , , , , , | Leave a comment

Ordering Fields and Methods in Software

Besides designing quality and efficient software, maintenance is an extremely important task. By writing software that is easy to understand will lower the cost of maintenance. One way to do that is to make software easily readable by grouping similar concepts together. On that note how do you order fields and methods in your software classes?

Researchers at the University of Trier are investigating how developers order fields and methods in software. If you have time please complete the following short survey: http://www.st.uni-trier.de/questionnaire

Posted in Research | Tagged , , , , | Leave a comment

Android Orphans: Visualizing a Sad History of Support

Here is an interesting post about visualizing the evolution of the support of operating systems for the iPhone and Android platforms. It might help influence your decision on which mobile phone to get next.

Original post: Android Orphans: Visualizing a Sad History of Support

Posted in Other | Tagged , , , , | Leave a comment