A social community is composed of a group of individuals with the common interest and purpose. The size of community is determined by the number of people and their activities. We can consider that the attraction to the community increased according to the integration of the interaction of the personal behaviors, and then it grows to be a larger society.
In the community of open source software (OSS) developers and projects, we can observe the collaborative social network in the developing process of system. Madey et al. has been developed the structural and the dynamic mechanisms that govern the topology and evolution of the OSS developer’s social community to analyze the developer and project data from SourceForge . According to their ideas, the collaborative social network is formed in global virtual self-organizing teams of software developers working on open source software projects and they developed the self-organizing simulation model. Because the self-organization mechanism is the important property of many social networks, a self-organizing network grows and develops structure without centralized decision making as shown in the real open source software community.
In their model, the developer in the open source software community is an agent. Some agents create a new project (community). The project is the team to develop a software (system). The agent can select only an action representing a real developer’s possible daily interaction in the process of developing system. The model has 4 kinds of behaviors: “Developers can create a project (create a project)”, “Developers can join into a project (join a project)”, “Developers can abandon a project (leave a project)” or “Developers can continue the current collaboration (no any actions).” By such the actions, a new project can be created and be grown, some projects are disappeared. The agent can contact to other agent in the another community and join two or more projects simultaneously. The change in the growing community can be observed through the simulation. The experimental result described in  showed the linear relation between the number of projects and developers.
In our model, we assume that the project has some tasks and the agent has the skill for the developing software. The ‘task’ is the amount of work for the developing software. The ‘skill’ is the amount of works that the agent develops the program for a given time. Our developed agent based simulation model shows some spiral line in the relation between the community and the action of agents. We report the difference of experimental results by using Madey’s simulation model and our model under the Source Forge community data.
Ii Open Source Community Data
There are some software distribution web site for many open source communities such as GNU project. The Source Forge is one of popular software repositories and has the function of the management system of open source software. The website of Source Forge gives the information of the projects and the developers recorded in the database .
The data related to project and developer are obtained from the database and are used to investigate the relation between the number of project and developer who joins the project.
Fig.1 shows the logarithm of the number of project and developer at September 2014 (Schema Sf0914). Schema Sf0914 has 73 tables including ‘User Group.’ The table ’User Group’ consists of 17 columns including ‘user_id’ and ‘group_id’. We retrieved all data from ‘sf0914.user_group’ and counted the number of records according to group_id. As a result, the number of developers to each project is calculated. The horizontal axis is the number of developers and the vertical axis is the number of projects for the numbers of developers. As shown in Fig. 1, we can observe that the relation decreased linearly for a certain period and then the line spreads from the certain point like delta. In this paper, we investigate the inflection point and the expanse of the delta and the equation of line is determined according to empirical studies.
Iii Simulation Model
In our developed simulation system, there are 2 kinds of agents: ‘major agent’ and ‘minor agent’. The agent has the own function of creating, joining to, or leaving from the project. Because some developers becomes the leadership in the real world of software developing, the simulation model has the 2 kinds of agents behaviors inspired by the interaction behavior of army ant system [4, 5].
In our model, a major agent creates the project and a minor agent makes the participation behavior to the project and the leaving behavior from one. A major agent and a minor agent is a project manger and developer, respectively. When some minor agents join the same project, they worked to share the task of software development. The ‘task’ and the ‘skill’ means the numerical values representing the amount of estimated codes for the software development and the agent’s coding capability in the periodical time, respectively.
SourceForge can provide open source softwares which are classified into 10 categories such as “Audio & Video”, “Business & Enterprise”, “Communications”, “Development”, “Home & Education”, “Games”, “Graphics”, “Science & Engineering”, “Security & Utilities”, “System Administration”. If a major agent creates the project of software, it must determine the project’s category. The development work will have two or more types of tasks during developing the software. There are 3 kinds of common types of tasks; ‘network communication processing’, ‘database processing’, and ‘graphic processing’. The minor agent cannot join the project, if it does not have the skill for the corresponding category. If two or more agents join a project, the task for the developing project is shared to each agent equality.
Iii-a Task and Skill
A project has one or more tasks in the software development. Let be the amount of task in the project . takes a value in . The sum of for all tasks is defined as .
A skill for the agent in task is defined as . The initial value is a given random number in . The agent works the allocated task with the agent’s skill . That is, the time to finish the task is calculated by dividing the amount of task of an agent by the agent skill . The working time for each project to which the agent joins is added. The total time is the summation of for each agent as follows.
where is the amount of the task which is assigned to the agent in the project . That is, . satisfies the condition . The upper limit of time is , because of 24 hours a day.
Iii-B The behaviors of agent
In , the proposed model has 4 kinds of behaviors: “Developers can create a project (create a project)”, “Developers can join into a project (join a project)”, “Developers can abandon a project (leave a project)” or “Developers can continue the current collaboration (no any actions).” In this paper, the model has 2 kinds of agents: the major agent and the minor agent. The following actions are implemented by 2 kinds of agents, respectively.
Create a project
Join a project
Leave a project
Take nothing action
A minor agent selects an action from 3 kinds of behaviors per a step and it works according to the selected behavior by the agent’s action algorithm.
Iii-C Create a project
A major agent creates a new project,
when it starts to develop a new software. In this case, a created project is called one.
when the agent creates the sub projects to share the large tasks in the project which is created by the major agent. In this case, a created project is called one.
If the major agent creates a new project, the agent works to follow next behavior’s algorithm.
The probabilitiesor of creating a project for each case are given appropriate values.
If a major agent creates a new project, an agent checks the condition that the probability equals to or greater than the random value by using Monte Carlo method.
where is the average amount of tasks of an minor agent in the developing task of the project . is the task assigned to the agent and is the number of agents in the project .
where is a given value to share the tasks and is a threshold to create a sub project.
The major agent checks the value of for each task which should be shared in the point of load balance. Once a sub project is created, some minor agents with skills which is corresponded to the category of developing task will participate to it.
Iii-D Join a project
The minor agent joins the project according to the following process.
The minor agent selects one project which it has not participated yet.
The probability to be joined in the selected project is determined by Eq.(5).
The minor agent determines to join the project by Eq.(6).
If the estimated time till the end of the task exceeds the threshold , the minor agent gives up the joining the project.
Iii-D1 Selection of project with Network growing model
When the agent selects a project, some strategies to a network growing model are required. In this paper, Barabasi-Albert(BA) model with dynamic fitness is adapted to decide the behaviors of agents. BA model is an algorithm for generating random scale-free networks based on the preferential attachment mechanism. Scale-free network is widely used in natural and human-made systems such as social community. In BA model, an edge is connected to the node with high number of degrees in high probability. BA model with dynamic fitness employs the fitness of node is dynamically changed . A degree of software is the number of agents worked in the software development and a minor agent selects a software based on this model. In this model, the linkage to the other agent is implemented by using BA model, but a new node is not added.
The selection probability for the software by a minor agent is defined as follows.
where is the time decreasing function representing the fitness of software and is the degree of software, that is, the number of participating agents. The dynamic fitness function realizes the growing community, the stability and the attenuation of community growing.
Iii-D2 Probability of joining a project
The probability of participation to a project is calculated by the tasks of the project and the skill of the agent . If the agent does not have enough skills for the category of the project , the probability is 0. Otherwise, the probability is calculated as follows.
where is how tasks of the project have reached the completed work, is calculated by dividing it by the total amount of tasks . If is larger than threshold , a minor agent joins a project.
Iii-E Leave a project
The minor agents can leave from the working project by the following algorithm.
The minor agent selects one project among all projects to participate.
The probability of leaving to participate the project is calculated.
A minor agent decides the project to leave by Eq.(7).
The probability of leaving a project is calculated as follows.
where is the amount of task per an agent, is calculated by subtracting the agent skill from , and is a given threshold value. If the load of the agent () is greater than , the agent leaves from a project .
In Eq.(7), the minor agent can leave from a project with ease, when the amount of the task of the project is high or the skill of agent is low or in both situations.
Iv Simulation Results
This section describes the effects of the growing community by introducing the concept related to the tasks and the agent skills through the simulation results. In this paper, we prepared the simulation environment with 1,000 major agents and 20,000 minor agents. The threshold values in Eq.(6)and in Eq.(8) are used to find the optimal set by using the following patterns. The parameters are important to decide the action of the minor agents.
Fig.2 shows the relation of the number of developers and the numbers projects at the 1,000 iterations. The horizontal axis is the number of developers and the vertical axis is the number of projects for the numbers of developers. For 9 kinds of parameter sets, the simulation results as shown in Fig.2 are observed. The relation between the developers and the projects shows the linearity, if the number of developers is less than 1. Otherwise, the relation has the spread in the direction of the number of projects. In case of 1 or more developers, the curve of the relation depicts the spiral shape with polar coordinate. We tried to express the characteristic pattern as the following equations.
where means the width in the spread range. is the angle in the polar coordinate and is the angle at the appropriate point where the number of developers reaches 1.
Moreover, we consider the relation between the behaviors of the agent and the number of agents belonging to the project. Fig.3 shows the number of participating agents and the leaving agents for the tasks in the project. The horizontal axis is the number of tasks of the project and the vertical axis is the number of agents which take any actions. In case of the participating action and the leaving action, as the number of developers becomes large, the distribution approximates linearly. In addition, Fig.4 shows the amount of tasks and the fitness when the task of the projects is created. We can see that the number of tasks in the project is large as the amount of tasks and the value of the fitness becomes high. Because the agent can select the tasks with high fitness easily by Eq.(4) and the agent can participate the project with the large tasks easily by Eq.(5).
Fig.5 shows the changing number of leaving times as the amount of task increases. The increase tendency of the leaving agents appeared in the direction of large tasks of the software. Too many tasks in the developing software keep the agents at a distance. Especially, if there are many agents with the low capability in the developing software, that is, the load per agent is high, the leaving agents may increase. The situation may occur within 5 tasks in the software.
With respect to community construction in software development, we examined with the agent based simulation with representing the relation between the task of project and the skill of the agents. The action that an agent selects software project by BA model with dynamic fitness. We can see that the project in the software with the larger tasks and with the higher fitness are easy selected by many agents. Because the participating probability becomes greater in case of the large task and the larger fitness value.
The solution for the effectiveness of software development will be expected for more complex system development. The altruism behavior [4, 5], which is a characteristic behavior of army ant and is a behavior that an army ant sacrifices its own body for the benefit of another ants, will be investigated in the participation behavior and leaving behavior to the projects in software development in future.
This work was partially supported by JSPS KAKENHI Grant Number 25330366.
-  G.Madey, Y.Gao, V.Freeh, R.Tynan, C.Hoffman, Agent-based Modeling and Simulation of Collaborative Networks, Proc. of Americas Conference on Information System(AMCIS2002) pp.1839-1842(2003).
-  https://sourceforge.net/ (retrieved 2015/06/22)
-  http://srda.cse.nd.edu/mediawiki/index.php/Making_Queries (retrieved 2015/06/22)
-  T.Ichimura, T.Uemoto, A.Hara, Emergence of Altruism Behavior for Multi Feeding Areas in Army Ant Social Evolutionary System, Proc. of 2014 IEEE International Conference on Systems, Man, and Cybernetics (IEEE SMC 2014), pp.176-181(2014).
-  T.Ichimura, T.Uemoto, A.Hara, K.J.Mackin, Emergence of Altruism Behavior in Army Ant Based Social Evolutionary System, SpringerPlus, A Springer Open Journal, Vol.3, 712, doi:10.1186/2193-1801-3-712(2014).
-  Y.Gao. G.Madey, V.Freeh, Modeling and Simulation of the Open Source Software Community, Agent-Directed Simulation Conference(2005).
-  A.L.Barabasi, R.Albert, Emergence of scaling in random networks, Science 286, pp509-512(1999).