Study on Analysis of Program Collection for Classifying and Understanding Relations
哲也 神田 · OUKA (Osaka University Knowledge Archive) (Osaka University) · 2016
Throughout a software development historic-lifecycle, a large amount of software and libraries can be generated.Those outputs are collected or categorized to form a "program collection".This dissertation dealt with two types of program collections."Program collection with time series" is a set of the programs that have the same origin, but now containing multiple versions through branching and updating."Snapshot of program collection" is a set of programs that is provided as ready to (re)use in deveoping another program.This category contains applications for specific devices and library set.Well-managed program collections are useful for further development, as a target of software reuse.Maintaining program collections and keeping their value as an asset is an important thing, to prevent them from obsolescence.Thus, analysis technique for understanding their characteristics and revealing hidden relations may be helpful.This dissertation describes four researches on analysis of program collections for classifying and understanding their relations.Each research analysis uses very limited inputs, mostly the program code, and reveals important characteristics of program collections.We believe that these results support developers to understanding existing program collections.In the first research, we present a method to approximate evolution history of product family using only the source code of them.Since the history of product family would be lost in typical cases, it is hard for developers to understand these product family.A proposed method only requires the source code of target product family and clarify the branching and latest versions of the software products.The study showed that about 80% of the edge in the approximated evolution history is consistent with the actual evolution history of the products.In the second research, we present a semi-automatic method to extract features from Android applications.Many Android applications with similar purpose are available, however, those applications are developed by independent developer so it is difficult to compare.The method extracts sequences of API calls from source code of Android applications and consider those sequences as features of applications.A case study showed iii