• No results found

Multi-Touch Collaboration for Software Exploration

N/A
N/A
Protected

Academic year: 2021

Share "Multi-Touch Collaboration for Software Exploration"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

University of Zurich

Zurich Open Repository and Archive

Winterthurerstr. 190 CH-8057 Zurich http://www.zora.uzh.ch

Year: 2010

Multi-Touch Collaboration for Software Exploration

Boccuzzo, S; Gall, H C

Boccuzzo, S; Gall, H C (2010). Multi-Touch Collaboration for Software Exploration. In: International Conference on Program Comprehension, Braga, Portugal, 30 June 2010 - 02 July 2010.

Postprint available at: http://www.zora.uzh.ch

Posted at the Zurich Open Repository and Archive, University of Zurich. http://www.zora.uzh.ch

Originally published at:

Boccuzzo, S; Gall, H C (2010). Multi-Touch Collaboration for Software Exploration. In: International Conference on Program Comprehension, Braga, Portugal, 30 June 2010 - 02 July 2010.

Boccuzzo, S; Gall, H C (2010). Multi-Touch Collaboration for Software Exploration. In: International Conference on Program Comprehension, Braga, Portugal, 30 June 2010 - 02 July 2010.

Postprint available at: http://www.zora.uzh.ch

Posted at the Zurich Open Repository and Archive, University of Zurich. http://www.zora.uzh.ch

Originally published at:

Boccuzzo, S; Gall, H C (2010). Multi-Touch Collaboration for Software Exploration. In: International Conference on Program Comprehension, Braga, Portugal, 30 June 2010 - 02 July 2010.

(2)

Multi-Touch Collaboration for Software Exploration

Abstract

Software systems have grown so complex and their design is so intricate that no individual can grasp the

whole picture. Touch screen technology combined with 3D software visualization offers a promising

way for the software engineers involved in a project to share knowledge about a software system in an

intuitive way. In this paper we present first results on how such emerging technologies can be combined

to support software exploration tasks, such as identifying high-impact changes or revealing problematic

parts of the design. As demonstrated with a scenario, this turns the collaborative environment into a

vehicle usable during software reviews.

(3)

Multi-Touch Collaboration for Software Exploration

Sandro Boccuzzo

Department of Informatics University of Zurich Switzerland

[email protected]

Harald C. Gall

Department of Informatics University of Zurich Switzerland

[email protected]

ABSTRACT

Software systems have grown so complex and their design is so intricate that no individual can grasp the whole picture. Touch screen technology combined with 3D software visualization offers a promising way for the software engineers involved in a project to share knowledge about a software system in an intuitive way. In this paper we present first results on how such emerging technolo-gies can be combined to support software exploration tasks, such as identifying high-impact changes or revealing problematic parts of the design. As demonstrated with a scenario, this turns the collab-orative environment into a vehicle usable during software reviews.

Keywords

Computer-supported cooperative work, Human-computer interac-tion, Maintenance and evoluinterac-tion, Software visualization

1.

INTRODUCTION

Keeping track of an evolving software project is a major concern in software maintenance. The design and complexity of todays soft-ware, together with the relationships between the software entities of a systems make it impossible for an individual to grasp the whole picture.

Work in software visualization has gone far in presenting the com-plex relationships in an intuitive, self-explaining manner. Semi-automated processes support engineers in finding points of inter-est, while exploring the project. However, while investigating such a point of interest, software engineers often consult colleagues in-volved in the project. So far these collaborative aspects are seldom accounted for in software visualization research.

Our work focus is to bring software visualization closer towards a collaborative software exploration. In this paper we present first results on how emerging technologies, such as multitouch tables, can be combined with software visualization to get software explo-ration to a collaboexplo-ration friendly environment.

The main contribution is an extension of ourCocoVizapproach [5], that addresses the collaborative workflow around common com-prehension tasks. The concepts have been incorporated in a new version of ourCocoViztool suitable for multi-touch tables. The first result of this work is already usable in software reviews or meetings where engineers gather together to discuss open issues.

The remainder of this paper is organized as follows. Section 2 covers aspects of how software visualization fits in a collaboration friendly environment. In Section 3 we present first results in using our collaborative environment on typical software reviews. Section 4 addresses related work and our conclusions and future work is found in Section 5.

2.

COLLABORATE ON SOFTWARE

Within theCocoVizproject, we build on explorative software vi-sualizations such as polymetric views [11] and aim for a better un-derstanding and interaction of the software with cognitive glyphs [1]. We worked on reducing the effort needed to do software visu-alization with automated comprehension tasks [4] and offered con-cepts to find relevant aspects in a dataset such as audio [3, 5].

Until recently we considered only individual engineers exploring the software. This assumption is reasonable for situations where the engineer is not familiar with the software, and he is wanting to learn about the general components in his system. In a maintenance context where we want to keep track of changes, or find out about the impact of certain changes, we end up tagging the found issues in the visualization and occasionally contacting the engineer owning that code over and over again. The engineers involved with a code fragment know about earlier design decisions, current bugs, or a planned change to their code.

We need to simplify the collaboration among the engineers involved in our development or maintenance project as well. But how do we improve existing collaboration efforts?

Related work such as collaboration in software engineering by White-head [18] has identified deficiencies in collaboration support. For him important directions to improve software engineering collabo-ration are found: In the desktop-based IDE, where he sees enhance-ment to project collaboration if they are better integrated in a web-based IDE, multi-project or even multi-organization collaboration and tools for capturing project-specific design tradeoff argumenta-tion.

(4)

Figure 1: left: engineers using a multitouch table during a software review right: multitouch gestures inCocoViz

The goal of ourCocoVizprojects is not to create a web-based IDE. However, we automated comprehension tasks and worked on solving this first deficiency with a closer integration of software vi-sualization to the IDEs. Because our cognitive software visualiza-tion approach deals with graphical elements representing the source code, our approach is as well predestined for multiproject and mul-tiorganizational collaboration. Even though we can not provide a tool capturing project-specific design tradeoffs yet, we can at least simplify these decision processes.

We do so in taking advantage ofCocoViz, dealing with a graph-ical metaphor and the benefit we get in intuitive interaction from the recently reemerging multitouch tables. Multitouch technolo-gies are based on a touch-sensitive surface that recognizes multiple touch points at the same time. Interaction typically occurs with a stylus (digital pen), with tagged objects, or simply a finger’s touch.

The major benefits we saw in bringingCocoVizon a multitouch table, was that we turned our tool into a vehicle suitable during software reviews, reengineering processes and prioritizing issues for the next project release.

3.

INITIAL EXPERIENCES

In the following we show the applicability of touch screen tech-nologies combined with 3D software visualization during a soft-ware review. We show how collaboration benefits from multitouch techniques during common software comprehension tasks and how to discuss solutions while exploring a software visualization. To demonstrate the applicability of our idea we implemented collabo-ration support in an new release of ourCocoVizTool [5] suitable for multitouch tables.

3.1

Experiment Setup

Our current CocoVizimplementation offers support for differ-ent multitouch devices. TUIO [10] compatible multitouch screens based on FTIR [8] such as our multitouch table1 are supported

through opentouch2an open source framework for multimodal in-put devices. Meanwhile the Stantum SDK3 provides support for

1http://www.sdfb.ch/de/projekte/edit last checked 6.1.2010 2

http://code.google.com/p/opentouch/ last checked 6.1.2010

3

http://www.stantum.com/ last checked 6.1.2010

Stantum multitouch devices. These frameworks generate touch-events containing the coordinates where the finger touched the screen, along with a unique id to distinguish multiple touches and the status type of the touch (touch-down, touch-move, touch-up).

To handle these touch-events we implemented a dedicated gesture-controller inCocoViz. The gesture-controller loads at runtime a set of gestures according to the use cases. Whenever a touch-event occurs, the gesture controller evaluates all active touch-touch-events against the loaded gestures. If a gesture applies a gesture-event with relevant gesture information is sent down the normalCocoViz event-handler-chain. The classes handling a specific gesture-event are than taking action based on the gesture-event information.

3.2

A Collaboration Scenario

To demonstrate the implications of touch screen technology on ware visualization, the following section transcribes a typical soft-ware review involving two softsoft-ware engineers (Alex and Laura) discussing issues with the current generation of their software sys-tem.

Context: Assume Alex and Laura are engineers of a commer-cial web framework. We find them during a software review, dis-cussing about problematic parts of the design and the impact of some planned changes will have to the stability of their next soft-ware release.

Alex and Laura are both familiar with the software projects archi-tecture and use CocoVizas a discussion plattform. They start their review by looking at a general overview of the system com-ponent. For that they use a Hotspot-View representing the entities based on their complexity and size metrics [2]. To focus on in-teresting entities they adjust the sliders in the Metrics-Mixer view with their finger and filter currently unused entities out (Figure 1b).

3D exploration: Touching with their fingers on the screen they move the camera of the 3D software visualization around and ex-plore the software project. CocoVizsupports most gestures that users are already familiar with from multitouch-capable mobile phones and trackpads, such as point, swipe, pinch, zoom, and ex-tends those with more specific multitouch gestures through a plugin architecture.

(5)

Audio exploration: Laura is asking Alex whether an error-prone class she uses in her code was changed since the last review. To explore that class, she tips on the glyph representing the class and can show Alex the detailed information in the inspector view or useCocoVizentity audio notification to get aural feedback on the changes to that class[3].

Touch screen manipulation: Alex is not sure whether the fixes made to the class would solve Laura’s problem but suggests to have a detailed look at the code once he is back in his office. To keep track of the class he tags the class with atwo touch-draggesture and select his tag group.

Alex points at a complex, large class represented as a big house, and decides to keep this potential god class in mind for the later discussion on stability of the next release. He touches the class with one finger and then uses two more fingers to move the entity to its fixed position just aside all the other entities with athree touch-drag

gesture.

Identify high impact changes: Laura suggest to check stability on other similar classes by checking large classes (larger than 200 lines of code) with high complexity (e.g., cyclomatic complecity [13]). Such classes often incorporate a remarkable amount of sys-tem functionality. She argues, that if such a class was changed since the last release, there is potential for a high impact on the overall system.

She configures the view to show only large classes with more than 200 lines of code, filters out classes with lower complexity, and configures the ambient audio notification with an algorithm from the audio menu (e.g., historical audio). Now that ambient audio no-tification is configured, she can touch the screen with four fingers and bring up the ambient audio exploration marker[5]. In mov-ing the four fmov-ingers on the touchscreen she moves the exploration marker around and listens to the audio feedback. Moving towards the different entities they hear a sound similar to a calm sea for few changes, more stormy sound for light changes and a sound that resembles the one of boiling water for a lot of changes.

Based on the findings they can tag the entities with a lot of changes for further investigation with atwo touch-drag gesture or move them to a fixed position aside the others as explained before (tree touch-drag) and continue with their review.

3.3

Summary

This short transcription of a typical software review in its simplicity stands for various other software development tasks solvable with a similar smooth workflow described within our work on automated comprehension tasks [4]. It shows the potential such a collaborative environment has in using software visualization on a multitouch table.

4.

RELATED WORK

Our goal is to combine emerging multitouch technologies with soft-ware visualization and exploration to support development and main-tenance in a collaborative environment as during software reviews. In this section we address previous work done in these emerging areas.

In the past few years a variety of approaches dedicated to software visualization and software reengineering emerged. Most visualiza-tion methods use a graphical representavisualiza-tion of data. OurCocoViz approach belongs to the group of metric visualizations.

4.1

Metrics visualization

Metrics visualizations describe a software state or situation. The goal of these approaches is to visualizing the metrics describing a specific software entity or aspect. An exponent of this approach is Polymetric Views [11] by Lanza and Ducasse. In their concept they display the software entities based on their metric, and map the values to the position, the height, the width and the color of a rectangular shape.

For 3D software visualization we refer to a overview by Alfredo

et al.[17] published in transactions on visualization and computer graphics.

OurCocoVizapproach uses similar concepts as the polymetric views to create cognitive software entities. Furthermore it extends those works with two additional approaches, an audio representa-tion of aspects and an interactive tactile approach.

4.2

Multitouch

Multitouch technologies have been around for a long time and a variety of different approaches implement the same principal ideas.

One of the first multitouch system was described with the ’Flexible Machine Interface’ by Nimish Mehta in 1982 [14]. It consisted of a glass panel showing a black spot, whose size depended on finger pressure allowing a multitouch input picture drawing with simple image processing.

Around the same time Nakatani and Rohrlich from the Bell Labs provide a discussion on screen based user interfaces, that they called ’Soft Machines’ [15]. In the paper they outline attributes that make multitouch system attractive for certain contexts and applications.

Leeet al. in [12] presented a prototype of a touch-sensitive tablet that is capable of sensing more than one point of contact at a time. In their work they also discuss how multitouch sensing, interpola-tion, and degree of contact sensing can be combined to expand the vocabulary of ’Human-Computer Interaction’.

Han in [8] describes a simple, inexpensive, and scalable technique for enabling high-resolution multi-touch sensing on rear-projected interactive surfaces based on frustrated total internal reflection.

With DiamondTouch Dietz and Leigh in [6] explain a technique for creating a touch-sensitive input device that allows multiple, simul-taneous users to interact in an intuitive fashion.

Rekimoto in [16] presented an interactive surface that is sensitive to human hand and finger gestures. The sensor recognized multiple hand positions and their shapes. To calculate the distances between the hands and the surface a mesh-shaped antenna is used. In con-trast to camera-based gesture recognition systems this method does not suffer from lighting and occlusion problems.

OurCocoVizapproach uses the principal ideas of the multitouch technologies to sensing multiple points of contact with the touch-screen, our gesture-controller than evaluates all active touch-events against the loaded gestures and sent gesture-events to the event-handler. The interaction with the visual cognitive software entities on a multitouch table offers an interactive approach for analyzing a software system perfectly suitable for a collaborative environment.

(6)

4.3

Collaboration

Collaboration over the years has been addressed by many research communities. As exponents we like to name research done in the community of online learning environments (OLEs), such as Hiltz’s work done on building learning communities [9] or researches pub-lished in the community of Computer Supported Cooperative Work (CSCW) with a history presented by Grudin in [7]

In the software engineering community we can refer to White-head’s roadmap[18] presenting an overview of the goals of col-laboration in software engineering together with a brief survey of existing collaboration tools.

However, among the oldest and most used collaboration tools we find email, calendar, chat and wikis.

OurCocoVizapproach aims to apply those useful collaboration concepts to activities of software development and maintenance, and adequately combine them with automated software analysis and intuitive visualizations.

5.

CONCLUSIONS & FUTURE WORK

In this paper we discussed our first result on how emerging tech-nologies such as multitouch tables are combined with software vi-sualization and exploration to support a collaborative environment. Adequately combining knowledge of involved engineers, together with automated software analysis and intuitive visualizations, of-fers a promising way to solve tasks such as identifying high-impact changes or revealing problematic parts of the design. The described vehicle has been implemented in a new version of ourCocoViz tool and, as such, is already usable during software reviews involv-ing multiple software engineers.

We are currently collecting substantial data on the benefits of using multitouch tables in combination with 3D software visualization in a collaborative environment. Using multitouch tables in a col-laborative software review however is only a first step towards a better software development and maintenance process. Still we see great potential to improve the way people involved in a software project talk about the project and share relevant aspects they found. In particular we work on a better integration of accurate software visualizations across common collaboration use cases.

Acknowledgments

We are grateful to Serge Demeyer who reviewed this paper while on a sabbatical leave in our lab and Michael Wuersch for its valuable input. This work was partially supported by the Hasler Foundation Switzerland within the Project “EvoSpaces II”.

6.

REFERENCES

[1] S. Boccuzzo and H. C. Gall. Cocoviz: Supported cognitive software visualization. InProc. Working Conf. on Reverse Eng., 2007.

[2] S. Boccuzzo and H. C. Gall. Cocoviz: Towards cognitive software visualization. InProc. IEEE Int’l Workshop on Visualizing Softw. for Understanding and Analysis, 2007. [3] S. Boccuzzo and H. C. Gall. Software visualization with

audio supported cognitive glyphs. InProc. Int’l Conf. on Softw. Maintenance, 2008.

[4] S. Boccuzzo and H. C. Gall. Automated comprehension tasks in software exploration. InProc. Int’l Conf. on Automated Softw. Eng. (ASE), 2009.

[5] S. Boccuzzo and H. C. Gall. Cocoviz with ambient audio software exploration. InProc. Int’l Conf. on Softw. Eng. (ICSE) tool demo, pages 571–574, Washington, DC, USA, 2009. IEEE Computer Society.

[6] P. Dietz and D. Leigh. Diamondtouch: A multi-user touch technology. InUIST, pages 219–226, November 2001. [7] J. Grudin. CSCW: History and focus. InIEEE Computer, 27,

5,, pages 19–26, 1994.

[8] J. Y. Han. Low-cost multi-touch sensing through frustrated total internal reflection.

[9] S. Hiltz. Collaborative learning in asynchronous learning networks: Building learning communities. InWeb 98 Symposium, 1998.

[10] M. Kaltenbrunner, T. Bovermann, R. Bencina, and E. Costanza. Tuio: A protocol for table-top tangible user interfaces. InProc. Int’l Workshop on Gesture in Human-Computer Interaction and Simulation, 2005. [11] M. Lanza and S. Ducasse. Polymetric views — a lightweight

visual approach to reverse engineering.IEEE Trans. on Softw. Eng., 29(9):782–795, 2003.

[12] S. Lee, W. Buxon, and K. C. Smith. A multi-touch three dimensional touch-sensitive tablet. InProc. of the ACM Conf. on Human Factors in Computing Systems (CHIÕ85), pages 21–25, April 1985.

[13] T. J. McCabe. A complexity measure.IEEE Trans. on Softw. Eng., 2(4), 1976.

[14] N. Mehta.Flexible Machine Interface. M.A.Sc. Thesis, Department of Electrical Engineering, University of Toronto supervised by Professor K.C. Smith, 1982.

[15] L. H. Nakatani and J. A. Rohrlich. Soft machines: A philosophy of user-computer interface design. InProc. of the ACM Conf. on Human Factors in Computing Systems (CHI83), pages 12–15, 1983.

[16] J. Rekimoto. Smartskin: An infrastructure for freehand manipulation on interactive surfaces. InProc. of ACM SIGCHI, 2002.

[17] A. R. Teyseyre and M. R. Campo. An Overview of 3D Software Visualization.IEEE Transactions on Visualization and Computer Graphics, 15:87–105, 2008.

[18] J. Whitehead. Collaboration in software engineering: A roadmap. InFOSE ’07: 2007 Future of Software Engineering, 2007.

References

Related documents

The current paper studies the two-stage stochastic vertex cover problem in the realm of distributed graph algorithms , where the decision making process (in both stages) is

If death of insurer or person who is insured on the rights of pension and disability insurance in the case of disability or bodily condition caused by the accident at

We also found that 85 percent of the 84 PDP sponsors’ home pages we reviewed did not meet at least one of the four Federal requirements for Web site accessibility,

This group of Value Added Resellers specializing in Sage and Microsoft software allows MAS Software Solutions to provide our clients with additional resources and expertise so

An unanticipated shock such as an increase in the prices of assets, leads to a better economic growth, increased credit, the non performing loan (NPL) that tends to go down, and

the new dimension in Carbon :FutureCarbon Epoxy Results on electrical conductivity and mechanical properties pending further investigation.. 0.5% CNT 1.0% CNT CFRP:

The purpose of this study was to explore the extent to which community college academic advisors experience their self-efficacy and relatedness to students as they transition from

3.6 Contact information email: [email protected] telephone: 020 7696 5583 Mencap Direct: 0808 808 1111 6JGPGZVGNGEVKQPUYKNNDGQPVJG/C[