Software Tag for Traceability and Transparency of MaintenanceKatsuro Inoue
Department of Computer Science,
Graduate School of Information Science and Technology, Osaka University
inoue@ist.osaka-u.ac.jp
Abstract
We have proposed the notion of software tag, which
is a complex of various characteristic elements ofsoftware development project. Empirical data for theproject is collected and abstracted into the tag, and theresulting tag is given back to the software purchaser
who can evaluate the quality of software product anddevelopment process. In this paper, we will discuss anextension of the application area of the software taginto the software maintenance activities.

1. Introduction
In these days, software maintenance becomes one ofimportant business resources for many software
companies in Japan. It is very common that a software
company who has developed a system continues tomaintain the system and to get stable income from thesoftware purchaser (user) more than 10 or 20 years.
Also, many software companies recently start so-called
maintenance business such that they take care of large
systems with less maintenance cost than the original
developer's cost.
In such circumstance, quality and cost of themaintenance are key factors for the softwarepurchasers. They would concern the maintenancequality against the money they pay; however, theprocess and quality of the maintenance activities are
generally unclear. Therefore, method to have software
maintenance more transparent and traceable is strongly
desired.
In this paper, we will explore the application ofsoftware tag to software maintenance, to clarify thesoftware purchaser's concern.

2. Overview of Software Tag
A software tag is a package data set of a softwaredevelopment project[1]. It is currently composed of 41
characteristic elements of the project data and process
data, as the software tag elements.

Fig. 1 shows an overview of the concept of software
tag. A software tag is an abstract data set of theproject's empirical data, and it is given to the softwarepurchaser for the quality indicator of the project. Thesoftware purchaser can evaluate the tag, and know thequality of the process and product. A scenario of using
the software tag is as follows.
1. A software purchaser orders development of asoftware system. The purchaser requires not only thefinal products, but also a software tag.
2. During software development, various kinds ofempirical data are collected. Requirement documents,
software design documents, source code, test cases,
issue tracing logs, manual documents, review logs,
quality analysis recodes, are examples. These data
could be collected easily and effectively by a project
support system such as Empirical Project Monitor[2].
We collect not only the final data at the end, but alsointerim snapshots during development.
3. Some of the collected data are selected andabstracted into the tag form. By this transformation,
proprietary development know-how is eliminatedfrom the tag, and it is hidden from the purchaser.
4. Most of the archived empirical data are encrypted
for the further validation in case.
Purchase order
Development data record
Delivery

Software developer
Software purchaser
SoftwareProductsFeedback

Data collection

AttachExtract Tag
Software Tag

Empirical
dataFig. 1 Overview of software tag scheme

5. This software tag is delivered to the softwarepurchaser associated with the final software product.
6. The software purchaser evaluates the achievement of
the software developer by viewing the tag, andaccepts the delivered software product.
7. When a controversy such as quality issue of theproduct happens between the software purchaser anddeveloper, the encrypted empirical data is deciphered,and the original empirical data is restored. By
analyzing the empirical data, correctness of the tag isvalidated, and a resolution for the controversy isexplored.

3. Applications of Software Tag
Software tag is a key vehicle to improve "visibility"and "transparency" of software project. By software tag,the software purchaser can identify and understand thedevelopment process which was mostly secret to thedeveloper. The purchaser can evaluate the quality ofthe processes and also products.
For the software developer, software tag is used toprove their proper activities in the software project.
Also, it is used for tracing the quality of the activities
of sub-contractors. Fig. 2 shows a hierarch of softwaredevelopment in a sub-contract chain with software tags
associated with each sub products.
Standardizing software tags will help to improve
trade custom of software development contract.
Evaluation of the software products and project basedon subjective empirical data in the software tag willlead the society more healthy way.
The scheme is very useful for offshore and global
development in the sense that the traceability andtransparency of software development are establishedwith fairly low overhead of the developers.

4. Extension to Software Maintenance
We have discussed mainly on software tag for thesoftware development phase. However, the notion ofsoftware tag can be applicable to software maintenanceactivities although there is no explicit maintenancequality indicator in the 41 pre-defined elements.
The software maintenance process is generallycomposed of various activities such as debugging,designing, coding, testing, documenting, and so on.
The empirical data for these activities are easily
captured as the newly development projects withsupport systems. Some of the elements which aremainly used for the newly development projects, say,requirement, may be omitted as the tag for themaintenance, but many other elements are used andfilled with the abstracted data from the empirical data.
Software purchaser receives software tag with
updated software products, and evaluates the activities
and quality of the developer's maintenance work.
Concern for the quality such as insufficient test efforts
can be identified easily by checking the data in the tag.
In the case of controversy, the raw empirical data
would be used for the validation of the software tag.

5. Conclusion
We have shown the notion of software tag, anddiscussed on its application to software maintenanceprocess.
Now we are finalizing the scheme of software tag
Version 1.0 with various industrial collaborators ofboth software purchaser and developer sides. Also,tools to support empirical data collection, analysis, andabstraction are under designing.

Acknowledgement
This work is being conducted as a part of Stage Project, theDevelopment of Next Generation IT Infrastructure, supportedby Ministry of Education, Culture, Sports, Science andTechnology. This work is the result of discussions with KojiTorii, Kenichi Matsumoto, Hajimu Iida, Shinji Kusumoto,Kazuko Matsumura, Shuji Morisaki, and many other project
members.

References[1] Inoue, K., Software Tag: Empirical Software Engineering
Data for Traceability and Transparency of Software Project,
Workshop on Accountability and Traceability in Global
Software Engineering (ATGSE2007), pp.35-36, Nagoya,Japan, 2007.
[2] Ohira, M., et al., Empirical Project Monitor: A System forManaging Software Development Projects in Real Time,
Proceedings of 3rd International Symposium on Empirical
Software Engineering (ISESE2004), Vol.2, pp.37-38,
Redondo Beach, CA, 2004.
Order
Order
Order

Purchaser
Purchaser

Principal
Principal
contractor
contractor
Softwareproduct+tag

SubSub
contractor
contractor
Order

Sub
Sub
contractor
contractor

SubSub
contractor
contractor
Order

Sub
Sub
contractor
contractor

Fig.2 Hierarchy of sub-contract and tag chain