270 likes | 272 Views
This article discusses the use of a software tag to increase transparency and traceability of software products and development for purchasers in Japan. It proposes a software tag that contains various data collected during development and provides key technologies for its implementation.
E N D
Standardizing the Software Tag in Japan for Transparency of Development Profes 2010 Masateru Tsunoda†, Tomoko Matsumura†, Hajimu Iida†, Kozo Kubo†, Shinji Kusumoto‡, Katsuro Inoue‡, and Ken-ichi Matsumoto† †Nara Institute of Science and Technology, Japan ‡Osaka University, Japan
Background • Software failure may cause great economic loss for developers and purchasers. • Complex systems are widely used in society. • They become important infrastructure for society. • Ex. Banking, communication systems, … • There may be life threatening system failures. • Ex. Air-traffic control system, automobile safety system, … • There are high risks of software failure. • Software systems are still extending but development periods are decreasing. • Demand of reducing cost and increasing reliability.
Issues on Non-transparency • Purchasers cannot check the quality of software products during software development. • The developer collects project data and analysis it. • The purchaser does not know project data and the analysis results. Order Deliver Purchaser Developer Data collection Analysis feedback Softwareproduct Project data
Goal and Approach • Goal • Increasing traceability and transparency of software products and development for purchasers. • Approach • Propose the software tag to share various data between purchasers and developers. • It contains various data collected during development. • Key technologies • Software tag standard 1.0 • Data collection and analysis tools • Tag application pattern
Software Tag Usage Model • Depend on development style, purchasers, ... • Typical cases • In contract-based development, the purchaser uses the software tag for evaluation of development. • Software tag data cannot be public (Only purchasers can see it). • Legal dispute is occurred between the purchaser and the developer, the software tag is used for evaluation of their liability. • When choosing software components, the developer uses the software tag for the component evaluation.
Contract-based Development • Project data is selected/abstracted as the software tag, and the tag is associated with software. • The purchaser confirms validity of process and product with the software tag. Order Deliver Purchaser Developer Data collection Analysis feedback Softwareproducts Associated Selected/abstracted Project data Software tag
Legal Dispute between the Purchaser and the Developer • Software liability arbiter inspects the software tag to resolve the legal issue. Order Deliver Purchaser Developer Data collection Analysis feedback Softwareproducts Selected/abstracted Associated Project data Software tag Inspect Inspect Software liability arbiter
Evaluation of Software Components • When developers search for reusable components, they can select reliable components by evaluating the software tag. Reusable componentlibrary Search for reusable components Developer Software component Software system integration Software component Select reliablecomponents Software component Evaluation
Software Tag Standard 1.0 • We defined Software Tag Standard 1.0 based on discussions with industry and academic collaborators. • Project information (12 elements)Basic information for project and system basic info., system info., development info., project organization, other • Progress information (29 elements)Development information of the system requirement, design, coding, test, quality, work load, plan and management, other products
Establishing Policy of Software Tag Standard • We considered • Including information that are important to the purchasers. • Simple structure for the purchaser to understand. • The balance of the tag elements. • On the tag standard, • Tag elements are selective. • Calculation methods of the elements were not described. • Thorough the discussion, we saw that appropriate tag elements set and calculation methods are different for organizations.
Arbitrary Matters • Tag elements used in the tag. • It is not necessary to use all elements. • Metrics used for the tag element. • Tag Standard 1.0 shows examples of metrics. • Ex. Function point or lines of code can be used for tag element “scale” • Timing of sending tag data from the vendor to the purchaser. • Ex. at the end of the project, at every phase of development (ex. the end of design phase), at every week, ...
Empirical Data • Supporting data for the software tag. • Ex. source code, design documents, bug reports, progress reports, ... • Encrypted and stored. • Decrypted when serious system failure or legal dispute is occurred to inspect the project. Software tag Mertics Tag elements Empirical data Lines of code Scale Source code repository Cyclomaticcomplexity Complexity
Standardizing Tag Data Format • To store, exchange and reuse the software tag, we settled the draft of the standard software tag format. • Based on XML format. • Software tag support tools treats software tag format data. • We are making the tool which converts existing tools’ data into standard software tag format data. Convert tool Software configuration management Visualization tools Standard software tag format data
Software Tag Data Collection Tool CollectTag (1/2) • Supports collection of empirical data and creation of a software tag. • Automatic data collection mechanisms for 11 tag elements using software configuration management or bug tracking system. • Ex. LOC (Scale) and CK metrics (Complexity) are automatically collected from SCM tools (CVS/Subversion). • Wizard type user interface.
Software Tag Data Collection Tool CollectTag (2/2) • A user selects a tag element, and settles a metric for the element. • The user selects data input method. • CollectTag generates the software tag elements in standard software tag format. Obtain from repositories [Programming]-[Scale] (#19) is selected Input Manually (LOC) The user can select [Lines of code] or [Function point]
Software Tag Visualization Tool TagReplayer (1/2) • Provide fundamental features for integrated visualization of the software tag. • Employ the metaphor of video player manipulation for its user interface. • Users can replay the progress of the project just like watching video on TV. • Align progress information from the software tag as a series of events.
Software Tag Visualization Tool TagReplayer (2/2) Transition of LOC during the project Completion rate of each file, computed from cumulative changed LOC at the end of the project Topics list, mail subject list, and a mail body Assigned and completed task history of each member By moving slider, replay goes to a certain point of time
Tag Application Pattern (1/2) • Catalog to explain which metrics should be used and how to analysis them. • Software tag standard 1.0 does not include concrete metrics. • It is not easy to settle metrics for many tag elements from scratch. Goal achieved by the software tag Metric indicating whether the goal is achieved or not Metrics indicating whether progress is smooth or not. (Tag elements)
Tag Application Pattern (2/2) • Explain usages of each KGI/KPI. How to measure base values How to compute the value How to react based on the analysis How to analysis the metric
Discussions (1/2) • There are projects which involve some companies to establishment of software quality[1][2]. • The software tag provides a unique approach to involve software purchasers in the quality improvement framework. • Tag elements are not very unique. • Some developers disclose progress information at the meeting with the purchaser. • Still, the software tag is effective to propagate such a good practice involved the purchaser. [1] The Consortium for IT Software Quality: CISQ – The Global Standard for IT Software Quality. [2] The Quamoco Consortium: Quamoco – The Benchmark for Software Quality.
Discussions (2/2) • The tag standard is set as a lightweight set. • As a standard used for various projects, the set should be minimal and low cost. • The risk of tampering software tag data is low. • Difficult to tamper several tag elements recorded by time series with keeping consistency. • Not difficult to rebuild the software tag from empirical data.
Conclusions and Future Works • Conclusions • The software tag contains software development data, and it brings purchasers transparency of software development. • We identified 41 items for seeing software process and products, and defined them as the standard tag element set. • To support software tag scheme, we made tools for collecting, and analyzing tag data. • Tag application pattern explains how to use software tag. • Future Works • Focus on making international/domestic standards of the software tag. • Delivery software tag support tools and tag application pattern.