版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Python: Characteristics Identifi cation of a Free Open Source Software EcosystemRick Hoving, Gabriel Slot, and Slinger Jansen Utrecht University Department of Information and Computing Sciences Princetonplein 5, 3584CC,
2、Utrecht, Netherlands {r.hoving, g.c.a.slot}@students.uu.nl, s.jansen@cs.uu.nlAbstract—Analysing a free open source software ecosystem can be beneficial and can help stakeholders in numerous ways. The analysis can help de
3、velopers, investors, and contributors, to decide which software ecosystem to invest in and where to invest. Another reason for making an analysis is to assist ecosystem coordinators in governing their ecosystem. The pape
4、r provides an insight on the free open source software ecosystem of Python. It presents an analysis of the software ecosystem itself and the different characteristics it has. Based upon the conducted analysis with the av
5、ailable dataset, the research concludes that the free open source software ecosystem of Python contains three ecosystem roles that define its ecosystem. Next to that, it has grown exponentially from 31 active developers
6、in 2005 to 5,212 December 2012. These results can help set up a strategy for the future of the Python ecosystem. At this point in time, it is necessary to make arrangements for the ongoing growth of the Python ecosystem.
7、 Failing to do so can lead to a growing number of unusable features, and eventually advance to an unhealthy ecosystem.Index Terms—Free open-source software, Software ecosystem, Python, Exploratory case study, Roles, Char
8、acteristicsI. INTRODUCTIONFree open source software ecosystems (FOSSE) will insure a greater social welfare for its developers. To insure the social welfare, the FOSSE needs to be governed and improved[1]. In order to de
9、fi ne a FOSSE, the paper builds upon the defi nition of a software ecosystem by Jansen, Finkelstein, and Brinkkemper [2]. This paper defi nes a FOSSE as:”A free open source software ecosystem is a set of developers funct
10、ioning as a unit and interacting with a shared market for software and services, to- gether with the relationships among them. The result of the interaction is freely available for everyone.”According to Jansen et al. [2
11、], it is important to know the dynamics of the ecosystem in order to govern and improve it. The profi t of FOSSEs is not defi ned in terms of money, but in how well it operates and survives (i.e. how lively is the ecosys
12、tem). An analysis of a FOSSE can be benefi cial and is necessary in order to generate the most profi t. According to Kabbedijk and Jansen [3] and Jansen, Finkelstein, and Brinkkemper [4], specifying different features, l
13、ike size, types of actors, roles, and connectedness of a FOSSE can help the developers, investors, and contributors understand the ecosystem. The insight will assist them in choosing the FOSSEto invest and where to inves
14、t. It can also assist the ecosystem’s coordinators in governing the FOSSE. The different features of a FOSSE can be identifi ed and has been done before by for example Kabbedijk and Jansen [3] and Jansen et al. [4]. Kabb
15、edijk and Jansen [3] call the features of a FOSSE descriptives, while Jansen et al. [4] call them characteristics. Both the descriptives and the characteristics are used to indicate features of a FOSSE. Therefore both de
16、scriptives and characteristics are considered to be the same and will be called characteristics throughout the paper. The goal of the paper is to see which characteristics can be identifi ed within a FOSSE. In order to d
17、efi ne its charac- teristics, the paper describes the data mining process and data analysis of the Python FOSSE. By defi ning the characteristics of Python, the paper helps further defi ne the total set of characteristic
18、s that describe a FOSSE. In the second section, a literature research is presented to see what characteristics have been defi ned for other FOSSEs. The section following up the literature research, section three, uses th
19、e information to state a number of sub-questions, which together will answer the main research question. Section four gives a description of the Python FOSSE together with the data mining process. Section fi ve gives an
20、analysis on the data obtained from the data mining process. After the analysis, the results section uses the analysed data to present the fi ndings of the analysis. The last sections presents the discussion, conclusions
21、and points for future research.II. LITERATURE RESEARCHEcosystems have been studied within various researches. Iansiti and Levien [5] state that an ecosystem revolves around a platform. In a software ecosystem (SECO), the
22、 platform is usually a commonly used software product. However, accord- ing to Jansen et al. [4], a SECO is more than just the sum of its parts. It consists out of actors, such as independent software vendors, customers,
23、 resellers, and/or outsources. The dynamics and identity of a SECO can be defi ned by certain characteristics. Examples of characteristics are size, types of actors, roles and connectedness. As depicted in Figure 1, SECO
24、 models have three scope levels. Each scope level has its own study of subjects, and therefore its own characteristics.The analysis of the FOSSE in this research will be carried out on the second level: the SECO level. J
25、ansen et al. [4] state978-1-4799-0786-1/13/$31.00 ©2013 IEEE 13IV. CASE DESCRIPTION AND DATA GATHERINGPython is an interpreted, interactive, objective-oriented, open-source, and high-level general purpose programmin
26、g language. It provides high-level data structures, such as lists and associative arrays, dynamic typing and dynamic binding, modules, classes, exceptions, automatic memory management, etc. [14]. Python appeared in 1991,
27、 designed by the Dutchman Guido van Rossum and developed by the Python Software Foun- dation. To extend the Python language, developers are able to create packages, which are called Python eggs [15]. No restrictions lay
28、on the number of eggs that a developer can create. The eggs can be created by developers that work alone or in collaboration with other developers. The dataset showed that the Python eggs fi rst appeared in 2005. A Pytho
29、n egg is described as a logical structure embodying the release of a specifi c version of a Python project, comprising its code, resources, and meta data. Because of the flexibility of the language, the Python eggs do no
30、t have to be written in the Python language. The eggs can also be written in the programming languages C, C++, Java using Jython, and .NET using IronPython1. After creating an egg, it can be uploaded onto the offi cial P
31、yton webpage2, where it is stored into a database. In order to utilize an egg in a specifi c project, the egg needs to be downloaded from the prior stated website and imported into a specifi ed project. The Python eggs a
32、re mined from the Python website3. The dataset of Python was mined on the 3rd of December, 2012, using a custom made .Net script. The script is divided in two phases, the mining of the Python eggs and the mining of the d
33、evelopers of the Python eggs. Both phases populate a database with the gathered data. The fi rst phase uses HTML scraping in order to get the eggs from the list of Python eggs from their website3. A single egg contains a
34、 name, a description, and a link to the detail page of the egg. The second phase does the collecting for the links that are gathered in phase one and uses HTML scraping to collect the developers that created an egg, toge
35、ther with the number of downloads of that particular egg. The user-names stated as the ”Package Index Owner” are defi ned as the owner of a Python egg. Because these user-names are not the real names of the developers, t
36、heir identity cannot be identifi ed. Therefore it is impossible to identify persons like for instance Guido van Rossum. Another activity within the second phase is splitting the data into separate developers. This is don
37、e using an SQL script. As an example: an egg specifies ”k0s, ejucovy” as being the developers of the egg. ”k0s, ejucovy” is split into ”k0s” and ”ejucovy” and puts the split data into a database. An overview of the resul
38、ts of the data mining is shown in Table I. Figure 3 represents the visualization of the mined Python network.1http://www.python.org/about/ 2http://pypi.python.org/pypi 3http://pypi.python.org/pypi?%3Aaction=indexCharacte
39、ristic ValueUnique developers 9,189 Unique eggs 27,624 Unique links between developers 6,893 Total links between developers 93,770 Developers without links 7,157 100% of all the links Between 20.11% of the developers Num
40、ber of developers that cre- ated one egg 4,992TABLE I CHARACTERISTICS OF THE PYTHON FOSSE.Fig. 3. The visualization of the Python ecosystem. The different developers are represented by the nodes. The size of the nodes in
41、dicates the number of links the developer has. The bigger the node, the more links the developer has. The fi gure is formatted in a way that all the groups of developers are packed together. The grouping is done using th
42、e Markov Cluster Algorithm[16]. The groups are colour coded, i.e. every group has its own colour. The developers are linked together when they worked together on the same eggs.V. ANALYSISTwo distinctive elements can be f
43、ound within the FOSSE of Python. Namely, the Developer and the Egg. The Developer el- ement represents the different developers that have an account on the Python website and have created at least one Python egg. Develop
44、ing, updating or fi xing bugs for the existing Python eggs are the actions that a typical developer would do, whilst participating in the Python FOSSE. The Egg element represents the Python egg. As stated in the case des
45、cription, the Python egg is an extension on the Python language and can be freely downloaded and used together with other eggs. As can be seen in Figure 4, the elements have a number of distinct relations between them. T
46、he properties marked with an asterisk (*) are optional properties. Within the Python FOSSE, the following roles have been identifi ed: the one day fly, networker, and the lone wolf.One day flies: The one day fly is a sin
47、gle developer who has made one egg by itself and the number of downloads of the egg is in the top 5% of most downloaded eggs. 5% is chosen to be able to compare the results of the paper to the results from Kabbedijk et a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件工程外文翻譯--Python一個免費的開源軟件生態(tài)系統(tǒng)的特征識別(原文).pdf
- 軟件工程外文翻譯--python一個免費的開源軟件生態(tài)系統(tǒng)的特征識別
- 軟件工程外文翻譯--python一個免費的開源軟件生態(tài)系統(tǒng)的特征識別
- 軟件工程外文翻譯--python一個免費的開源軟件生態(tài)系統(tǒng)的特征識別
- 軟件工程外文翻譯--Python一個免費的開源軟件生態(tài)系統(tǒng)的特征識別(原文).pdf
- 軟件工程外文翻譯--Python一個免費的開源軟件生態(tài)系統(tǒng)的特征識別.docx
- 軟件工程外文翻譯--Python一個免費的開源軟件生態(tài)系統(tǒng)的特征識別.docx
- 2011年--軟件工程外文翻譯--一個實用的日歷系統(tǒng)結(jié)合反復任務的模糊模式(原文)
- 2011年--軟件工程外文翻譯--一個實用的日歷系統(tǒng)結(jié)合反復任務的模糊模式(原文).pdf
- 2011年--軟件工程外文翻譯--一個實用的日歷系統(tǒng)結(jié)合反復任務的模糊模式(原文).pdf
- 2014年--軟件工程外文翻譯--為快速開發(fā)web應用設(shè)計一個mvc模型(原文)
- 2014年--軟件工程外文翻譯--為快速開發(fā)web應用設(shè)計一個MVC模型(原文).pdf
- 外文翻譯---軟件和軟件工程
- 外文翻譯---軟件和軟件工程
- [雙語翻譯]--軟件工程外文翻譯--一個實用的日歷系統(tǒng)結(jié)合反復任務的模糊模式
- 外文翻譯-軟件工程
- 2014年--軟件工程外文翻譯--為快速開發(fā)web應用設(shè)計一個MVC模型(原文).pdf
- 2011年--軟件工程外文翻譯--一個實用的日歷系統(tǒng)結(jié)合反復任務的模糊模式
- 2011年--軟件工程外文翻譯--一個實用的日歷系統(tǒng)結(jié)合反復任務的模糊模式
- [雙語翻譯]--軟件工程外文翻譯--為快速開發(fā)web應用設(shè)計一個mvc模型
評論
0/150
提交評論