260 likes | 402 Views
Using Software Tag for Traceability and Transparency in Global Software Engineering. Katsuro Inoue Osaka University. Software Intensive Systems. Complex systems in society Important infrastructure for society Banking and communication systems
E N D
Using Software Tag for Traceability and Transparency in Global Software Engineering Katsuro Inoue Osaka University
Software Intensive Systems • Complex systems in society • Important infrastructure for society • Banking and communication systems • Economical loss for the vendors and users when troubled • Life threatening system failures • air-traffic control system, automobile safety system • Software systems are still extending but development periods are decreasing • Demand of reducing cost and increasing reliability
Non-transparent Development Process • Complex development structure • Development chain from main contractor to sub ... sub contractors • Off-shore development • Software component circulation and reuse • COTS(Commercial off-the-shelf), OSS(Open Source Software) ... order sub sub 二次請け 二次請け 二次請け order 一次請け sub cont. 一次請け 一次請け order sub sub 二次請け 二次請け 二次請け (off-shore) (海外) (海外) (海外) user 発注者 元請会社 main cont. 発注者 発注者 元請会社 元請会社 sub cont. 一次請け 一次請け 一次請け
Issues on Non-transparency • User cannot check the quality of software products • Need reliable vendors • User cannot select software products based on their quality • No mechanism to select quality software products • User cannot locate the fault and liability of software product failure • Difficult to resolve immediately • Long legal dispute between user and vendor when trouble occurs
Software Tag • Framework to share various data between user and vendor, to increase traceability and transparency of software development and product • Various empirical data collected during development • Tag data cannot be public. Only users can see • Expected data tag, intermediate data tag, final data tag • Effect of software tag • Validation of software quality by users • Promotion of quality software selection by users • Immediate resolution for software failures • Promotion of legal resolution and prevention
order development data deliver vendor user analysis feedback data collection softwareproducts empiricaldata Data Collection in Development • Collection empirical data • Managing quality, progress, risk, cost ...
order development data deliver vendor user analysis feedback data collection softwareproducts associated empiricaldata selected/abstracted Tag Software Tag in Development Process • Empirical data is selected and abstracted as software tag
Element of Tag • Project information(12)Basic information for project and system • Progress information (29) Development information of the system
Structure of Project Info. • Basic info. (4) • Project name, development organization, project info., user info. • System info. (2) • System organization, system size • Development info. (3) • Development method, organization, project period • Project structure info. (2) • Super project info., sub project info. • Other (1) • Special annotation
Example of Progress Info. ......
Structure of Progress Info. • Requirement (3) • User hearing, size, change • Design (3) • Size, change, coverage of requirement • Coding (3) • Size, change, complexity • Test (4) • Size, change, density, progress • Quality (8) • Review status, review density, review result, ..., static checking • Work load (2) • Consumed load, productivity • Plan and management (4) • Process management, meeting, risk element, risk hold time • Other products (2) • Size, change
Usage Model Software tag usage Depend on development style, usage, user, ... typical cases • In contract-based development, user uses tag for evaluation of project • In the case of legal dispute between user and vendor, tag is used for evaluation of user and vender liability • In the case of choosing software component, user uses tag for the component evaluation
order development data deliver vendor user analysisfeedback data collection softwareproducts associated empiricaldata select/abstract tag 1.Contract-based Development • Accepting software product with tag
order development data deliver vendor user analysis feedback data collection softwareproduct select/abstract associated empiricaldata tag inspect inspect software liability arbitor 2. Legal Dispute • Resolve legal issue
reusable componentlibrary search for reusable components softwarecomponents user software system integration softwarecomponents softwarecomponents select reliablecomponents evaluation 3. Evaluation of Software Components • Evaluate component quality, risk, cost, ...
Empirical Data • Supporting data for tag • Various data for target software products and their development • Ex. source code, design documents, bug reports, progress reports, ;... • Encrypted if needed • Decrypted when • Serious system failure, legal dispute, ...
Approach to Define Tag • Discussions on tag specification meeting • #1(July 9, 2007) - #11(July 28, 2008) • Working group for tag elements (May 1, 2008) • Members: 14 organization 27 people • References: SWEBOK,CMMI,ISO/IEC15939,SEC report • Process • Proposal from members • Introducing project and process categories and other hierarchy • Consistency check with other standards • Use case scenario • Selecting and merging elements
Members • Fujitsu Lab • Hitachi • NEC • SHARP • SRA Key-Tech Lab • Tokyo Stock Exchange • Toshiba • Japan Aerospace Exploration Agency • DENSO • NTT Data • IPA (Information Technology Promotion Agency, Ministry of Economy, Trade and Industry, Japan) • Nara Institute of Science and Technology • Osaka University
Usage of Tag • Not necessary to use all elements • Definable between user and vendor • Data collection target, scope, granularity, period, ... • Data elements which can be computed from other elements are not included • Timing of sending and opening tag data from vendor to user is determined by agreement between user and vendor Ex. at delivery time of final product, at every major phase of development, at every week, at every month, ...
Hierarchy of Software Tag • Project structure is assumed as a tree • Super project has links to sub projects and vise versa Super Project Tag Project ID Super Project ID Sub Project Tag Project ID # of Sub projects(n) Sub Sub Project Tag Sub_proejct1_ID Super Project ID Project ID ... # of Sub projects(n) Sub_projectn_ID Super Project ID Sub_proejct1_ID # of Sub projects(n) ... Sub_proejct1_ID Sub_projectn_ID ... .... Sub_projectn_ID サブ(子)プロジェクトn_ID 22
Standardizing Tag Data Format • XML format for tag data SEDEX*:Software Engineering Data Exchange language Tag in SEDEXformat Empiricaldata Transformation to SEDEX Visualizationtools Evaluation Vendor User
StagE Project • Ministry of Education, Culture, Sports, Science and Technology Japan • 5 year project from 2007, about 1M$/year • NAIST and Osaka Univ. • Leader: Kenichi Matsumoto • Software Tag development and promotion • Standardization of software tag • Data collection method for software tag • Visualization and evaluation of software tag • Implementation and operation of software tag • Legal issue on software development transparency
Future Issues • Scenario development • Various use case scenarios for software tag • Tool development • Tag data collection, analysis, and visualization methods and tools • Empirical validation of effectiveness of software tag
Links • Homepage : http://www.stage-project.jp • E-mail : stage-contact@is.naist.jp ATGSE2008 2nd Workshop on Accountability and Traceability in Global Software Engineering Beijing, December 2, 2008 Co-located with 15th Asia-Pacific Software Engineering Conference APSEC 2008