Measures for Mobile Users Alberto Sillitti Andrea Janes Giancarlo Succi Tullio Vernazza DIST – Università di Genova Libera Università di Bolzano Libera Università di Bolzano DIST – Università di Genova Genova, Italy Bolzano, Italy Bolzano, Italy Genova, Italy alberto@dist.unige.it Andrea.Janes@unibz.it Giancarlo.Succi@unibz.it tullio@dist.unige.it Abstract Software measures are important to evaluate software properties like complexity, reusability, maintainability, effort required, etc. Collecting such data is difficult because of the lack of tools that perform acquisition automatically. It is not possible to implement a manual data collection because it is error prone and very time expensive. Moreover, developers often work in teams and sometimes in different places using laptops. These conditions require tools that collect data automatically, can work offline and merge data from different developers working in the same project. This paper presents PROM (PRO Metrics), a distributed Java based tool designed to collect automatically software measures. This tool uses a distributed architecture based on plug-ins, integrated in most popular development tools, and the SOAP communication protocol. Keywords: design of distributed Java applications, software metrics I. INTRODUCTION It is difficult to extract measures from both software [8] and software development process [4] due to a shortage of focused tools that perform such tasks automatically. In particular, tracking the entire development process manually is time expensive and error prone [2] [6]. Moreover, these errors are more frequent when a reliable tracking is more important to understand if and how the process should be improved. For example, that happens when developers are under pressure because of an approaching deadline. Metrics data are important to find out the correlation between objective measurable data and software qualities like complexity, reusability, cost of maintenance, effort required, etc. A completely automated tool that performs such data acquisition without any effort by developers should help both developers and managers to improve software quality and shipping times. For example, the former group can use the system to monitor performances of their personal activities compare them with the average in their working group or with the best ones. These comparisons should help developers to improve their working process introducing practices that produce measurable benefits. The latter group can use such data to keep projects under control through a continuous monitoring. The system takes care of developers’ privacy allowing managers and colleagues to access only aggregated data at different levels. Collected data can help managers to implement a popular accounting technique called activity-base costing (ABC) [1]. Usually, this technique is difficult to implement in a software company because nearly all costs are human costs and keeping track of time spent in each activity is very difficult. The system provides such data automatically. This paper presents the architecture and the implementation of PROM (PRO Metrics), an automated and distributed Java tool for collecting and analyzing software metrics and personal software process (PSP) data. The paper is organized as follows: section 2 describes the architecture of PROM; section 3 describes the implementation; finally, section 4 draws the conclusions. II. A DISTRIBUTED ARCHITECTURE PROM is a distributed Java tool designed to collect different set of software data: software metrics [8] and personal software process data [4]. The former set includes code length, inter-class and inter-function dependencies, reusability, etc. The latter includes time spent in each activity, number of changes per class, etc. To collect such data, the architecture has three main components (Fig. 1): PROM core Tool-specific Plug-ins Third-parties tools Fig. 1. Architecture components 1. PROM core: this is a Java based architecture that includes three main components: a database that stores all data, a centralized PROM Server, and many distributed Plug-ins Servers (one per client). It provides web administration tools and access to collected data through dynamically generated statistics. 2. tool-specific plug-ins: they listen to events generated by third-parties tools and send relevant data to the PROM core [11]. Plug-ins are tool- dependant, for this reason they are written using different languages. A present, in available or under development plug-ins, these languages are: Java for NetBeans, Eclipse, Borland JBuilder, and Together Central; C++ for Microsoft Visual Studio 6.0, C# for Microsoft Office XP. 3. third-parties tools: the system uses popular tools for collecting data. Such tools include IDEs (Microsoft Visual Studio, NetBeans, Eclipse, Borland JBuilder, etc.), design tools (Rational Rose, Together Central, etc.), and general-purpose tools (Microsoft Office, Sun Staroffice, Open Office, etc.). The Hackystat system developed at University of Hawaii [5] partially inspired this tool but the two systems has different targets: the former provides the most benefits to developers focusing only on PSP data; the latter has a wider target, it provides information to both managers and