• No results found

Ant Colony Algorithm Based Scheduling for Handling Software Project Delay

N/A
N/A
Protected

Academic year: 2021

Share "Ant Colony Algorithm Based Scheduling for Handling Software Project Delay"

Copied!
5
0
0

Loading.... (view fulltext now)

Full text

(1)

Ant Colony Algorithm Based Scheduling for Handling

Software Project Delay

Wei Zhang

1,2

, Yun Yang

3

, Junchao Xiao

4

, Xiao Liu

5

, Muhammad Ali Babar

6

1

School of Computer Science and Technology, Anhui University, Hefei, Anhui, China 230039

2

School of software, East China Institute of Technology, Nanchang, Jiangxi, China 330013

3

School of Software and Electrical Engineering, Swinburne University of Technology, Melbourne, Australia 3122

4

Institute of Software, Chinese Academy of Sciences, Beijing, China 100080

5

Software Engineering Institute, East China Normal University, Shanghai, China 200062

6

School of Computer Science, The University of Adelaide, Adelaide, Australia 5005

ABSTRACT

Delay on a critical path may cause the failure in meeting the software project deadline. By adding extra employees with similar skills for help, the delay is expected to be eliminated or reduced. However, the originally scheduled activities may be suspended due to reallocation of employees, which may lead to the problem of delay propagation. So how to minimize and even eliminate the delay without delay propagation is worth investigation. In this paper, we first use a simple scenario to demonstrate the problem of employee scheduling which shows that in the scheduling process, one activity can have many ways for selecting employees from another project. In fact, the searching path in a multi-branch tree and its complete traversal is a NP hard problem. Furthermore when the scale of the problem becomes large, it is impractical to generate a search tree for implementation. Therefore, we propose an ant colony algorithm to address such a problem. Both case studies and initial simulation results demonstrate that our proposed algorithm can obtain feasible solutions under different circumstances.

Categories and Subject Descriptors

D.2.9 [Software]: Management

Keywords

Scheduling, Software Process, Project Delay Handling

1.

INTRODUCTION

Currently, many software companies provide dedicated solutions for specific fields by designing universal business flows. So, the final customized software products for different customers have similar structures and functions. For concurrent customer’s orders, the company needs to organize corresponding project teams accordingly with employees having similar skills. Customers expect that their orders can be delivered before their deadlines. But because of various reasons, delays often occur. Serious delay can make customers very unsatisfied, that can damage a company’s reputation and profit. Whilst delays are

sometimes inevitable, it is important to find out how to eliminate or minimize delays. According to one of the software engineering principles [2], adding an inexperienced person would cause further delay due to the learning curve and communication overhead. This research aims at reallocating skilled employees for solving such an issue.

In general, resource scheduling is a promising approach for handling delays. Most project planning models are based on CPM (critical path method) or PERT (program evaluation review technique) [6]. Any delay to any activity on the critical path may postpone the completion of the project.

In academia, much attention is paid on how to compress the durations of activities on critical path. For example, authors of [11] proposed a K-step algorithm to compress the critical path. Authors of [7] discussed the feature of the longest path beyond critical path and the amount of compression. Those strategies mainly focus on the compression of the critical path. In fact, reasonable amount of compression would not only reduce the delay, but also ensure that the critical path remains unchanged. To implement compression, one solution is to request the employees to work overtime. This is not necessarily a good solution as working overtime often results in complaints from the employees, in addition to huge extra costs and lower quality of products. Another solution is related to resource scheduling. In resource scheduling, many scholars pay attention to project scheduling problem (PSP). As explained in [12], project scheduling “involves separating the total work involved in a project into separate activities and judging the time required to complete these activities. Usually, some of these activities are carried out in parallel. Project schedulers must coordinate these parallel activities and organize the work so that the workforce is used optimally”. Authors of [13] presented a value-based human resource scheduling method among multiple software projects by using a genetic algorithm. Authors of [5] formulated the PSP as the problem of employee allocation and sequence that work-packages are selected to be handled in a queue system. Different search algorithms based on single and multi-objective evolutionary algorithm (EA) were discussed. Authors of [10] proposed a new design to solve the PSP problem based on problem formation proposed in [1]. It includes normalizations of dedication values, a tailored mutation operator, and fitness functions with a strong gradient towards feasible solutions. Normalization removes the problem of overwork and allows EA to focus on the solution quality. Authors of [8] discussed estimated schedules and project scheduling. They proposed a two-stage probabilistic scheduling strategy, which aims to

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

ICSSP'15, August 24-26, 2015, Tallinn, Estonia. Copyright 2015 ACM 978-1-4503-3346-7/15/08... $15.00.

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

ICSSP’15, August 24–26, 2015, Tallinn, Estonia c

2015 ACM. 978-1-4503-3346-7/15/08...$15.00

(2)

decrease schedule overruns. Authors of [3] propose a new scheduling strategy based on event-based scheduler and ant colony optimization algorithm is applied to search feasible solution for a single project. However, our research is to handle delays involving multiple concurrent software projects.

Since employees can work on several tasks simultaneously, existing work mainly discusses on how to allocate optimal human resources in order to save time and money for software companies at the planning stage. However, the problem is that delay often occurs at the runtime stage. How to handle runtime delays has not been well addressed in these papers. Authors of [9] introduced a machine learning algorithm to staff assignment based on workflow event log at runtime stage. In our research, we propose that an employee with the same/similar skills can be reallocated to help for the activity where delay occurs in order to eliminate or minimize the delay. It is often the case that one activity can be partitioned into several sub-activities so that extra employees can be introduced to help for sub-activities as explained in Section 2. For the scenario addressed at the very beginning of this section, if employees with the same/similar skills are available, they can be reallocated across the projects without much learning curve and communication overhead. However, due to employee reallocation, other projects involved may be impacted. It is not desirable that reducing the delay of one project causes the delay of other projects. So in this paper, we investigate a novel ant colony algorithm based scheduling method, aiming to reallocate employees for concurrent projects in order to eliminate or minimize the delays of the projects in overall terms.

The remainder of this paper is organized as follows. Section 2 describes the problem formulation. Section 3 proposes our solution. Section 4 presents the evaluation. Section 5 concludes our contributions and points out future work.

2.

PROBLEM FORMULATION

Our problem formulation is based on the existing work [1]. Assume that we are given a set of projects P1 ….Pnwith critical

paths cp1 ….cpn respectively; a set of employees e1i ….eqi(i indicates

the employee coming from the ith project) and a set of skills skill1 ….skillp respectively; a set of activities a1 ….as; an activity

precedence graph (APG) – a directed graph with activities as nodes and activities precedence as edges where in APG, from start to end there are many paths path1 ….pathg.

Here our graph is slightly different to its counterpart in [1]. In order to conveniently reallocate the employees and monitor the time change of activities, we further break down the task defined in [1]: one activity requires only one skill and is conducted by only one employee.

In order to simplify the problem without losing generality, we introduce some constraints: (1) when one activity is started, it cannot be interrupted; and (2) if one activity can be further broken down which is often the case, it will be partitioned into sub-activities when needed. For example, a design activity for the interface between internal and external systems can be divided into sub-interfaces for such as hardware, software and communication. Such activity can be partitioned into three sub-activities accordingly. However, in order to reduce the complexity of this research, we assume that an activity is helped

by one extra employee at most. These constraints will be relaxed in our future work.

We use a case to illustrate the problem. Suppose there are two similar projects Pm and Pn, cpmis the critical path of project Pm.cpn

is the critical path of project Pn which includes activities of the

same functions but different durations with Pm.cpm. Suppose that

the delay will occur at Pm.cpm.a1 whilstPn.cpn is on schedule. We

illustrate how to schedule employees from those activities between the two paths in order to reduce the delay of cpmas

much as possible without jeopardizing cpn. Of course, we assume

that some activities can be partitioned. In fact, if we only reallocate an employee from cpn to work on cpm, it may reduce

the delay of cpm but cpn may get delayed seriously. Obviously we

expect that delay on cpm is reduced or even eliminated while cpn

is not impacted.

Table 1. Duration of each activity at two paths (cpm & cpn)

cpm Scheduled start time and end time Duration

(planned)

Duration (helped) a1 From the 5th day to the 10th day 6 5

a2 From the 11th day to the 16th day 6 3

cpn Planned start time and end time Duration

(planned)

Duration (helped) a1 From the 7th day to the 14th day 8 6

a2 From the 15th day to the 18th day 4 2

Based on the parameters listed in Table 1, Figure 1(a) shows the planned schedule where delay occurs at activity a1of cpmwhich is

6 days. On one hand, the planned time cpm.a1is from the 5th day

to the 10th day. Hence its duration is 6 days. If employee e 1n with skill1 from cpn..a1 is reallocated to help the activity which requires skill1, the duration of cpm.a1, say, can be reduced to 5 days.

Similarly, the planned time of cpm.a2 is from the 11th day to the 16th day. Hence its duration is 6 days. If employeee2n with skill2

from cpn.a2 is reallocated to help the activity which requires skill2,

the duration of cpm.a2 can be reduced to 3 days. On the other

hand, in cpn, the planned time of cpn.a1 is from the 7th day to the 14th day. Hence its duration is 8 days. If employee e

1m from cpm.a1

with skill1 is scheduled to help the activity, which requires skill1,

the duration of cpn.a1, say, can be reduced to 6 days. Similarly,

the planned time of cpn.a2 is from the 15th day to the 18th day.

Hence its duration is 4 days. If employee e2m from cpm.a2 with skill2 is scheduled to help the activity, which requires skill2, the

duration of cpn.a2, say, can be reduced to 2 days. Now suppose

the start time of cpm.a1 is postponed to the 8th day. We illustrate

two strategies below.

(a) Planned schedule

cpm 18 5 10 a1:6 a2:6 a2:4 a1:8 11 16 7 14 15 cpn

(b) First strategy (c) Second strategy cpm cpn a1:5 a2:3 a2:2 a1:6 8 12 13 15 18 13 19 20 a1:6 a2:3 a2:2 a1:8 8 13 14 16 7 14 17 18 cpm cpn

(3)

Firstly we provide one simple strategy as shown in Figure 1(b). We allocate e1n from cpn.a1 to help cpm.a1. According to the

parameter setting, with help, duration of the activity can be reduced to 5 days. The end time of cpm.a1 would be the 12th day.

The delay is reduced but not eliminated which is propagated to

cpm.a2. Furthermore, since cpn.a1.e1n is transferred to cpm.a1, cpn.a1

must wait until cpm.a1 is finished. So the delay will also occur at cpn.a1. Its start time will be postponed to the 13th day. Based on

the above analysis, even if cpm.a1 is helped, its end time will still

be delayed to the 18th day without cp

m.a2 helped. However, with

the help of cpn.a2.e2n, the duration of cpm.a2 is reduced to 3 days.

Hence the end time of cpm.a2 is the 16th day, i.e., delay

eliminated for cpm. Similarly, durations of cpn.a1 and cpn.a2 can be

reduced to 6 and 2 days with help of e1m and e2m respectively

from cpm even if they are available. Its end time is the 20th day,

i.e., the 2-day delay of cpn is introduced. Our goal is that the

delay of cpmis reduced or even eliminated without cpn impacted

which can be seen next.

Secondly, we change the strategy as shown in Figure1(c). Suppose cpm.a1 runs without any help which means that the delay

is fully propagated to cpm.a2. Due to the delay, the start time of cpm.a2 is changed to the 14th day. With the help of e2n from cpn.a2,

its duration is now 3 days. So the end time of cpm.a2 becomes the 16th day, i.e. delay eliminated. For cp

n, now cpn.a2 needs to wait

until cpm.a2 is finished. So it starts from the 17th day. With the

help of e2mfrom cpm.a2, its duration becomes 2 days. Hence the

final end time of the activity is the 18th day, i.e. no delay

introduced. Clearly this is a better scheduling for reallocation. From the above simple case, we can conclude that not all delayed activities need to involve scheduling. In our case, when we schedule e2m from cpm.a2to help cpn.a2 firstly, the start time of cpm.a2 will be delayed to the 17th day. Hence no matter whether cpm.a2 is scheduled or not, the delay will be introduced. Therefore,

sometimes we may need to propagate the delay to the next activity where feasible solution can be found. In addition, the

order of scheduling employees may also affect the final result.

3.

FEASIBLE SOLUTION

3.1

Search Tree

Based on the analysis above, the activities involved in the scheduling and the order of scheduling employees will determine whether a feasible solution can be obtained. The question is how to find the feasible solution. This is similar to the combination optimization problem. Firstly, we start with the discussion of two paths. In such a circumstance, for one activity, there are two possible scenarios. One is that the activity is executed alone by the original employee. Another is that the activity is executed together by the original employee and the help employee who is an employee borrowed from another project. So we have different combinations. In the case presented in Section 2, when a1 from cpm is selected firstly, it

needs to lock in the help employee first. Assume that the activity chooses to be executed without any help, and then a1 from cpn

chooses to be executed with help, we define this form as <(cpm.e1m) (cpm.a1), (cpm.e1m, cpn.e1n) ( cpn.a1)>. Here (cpm.e1m) (cpm.a1) indicates

employee e1m from cpm will work on activity cpm.a1 while (cpm.e1m, cpn.e1n) (cpn.a1)indicates employee cpm.e1m and employee cpn.e1n will

work on activity cpn.a1together. cpm.a1 precedes cpn.a1. If activity cpm.a1 selects cpn.e1n first, cpm.a1 can only select cpm.e1m later. Then

the resource scheduling order is cpm.a1 and cpn.a1. When two

activities choose the same employee, the employee will work on activity cpm.a1 first. Because the activity cannot be interrupted,

the correspondent activity from one path will be suspended when the activity at another path is helped. So there are seven different combinations: (1) <(cpm.e1m) (cpm.a1), (cpm.e1m, cpn.e1n) (cpn.a1)>, (2) <(cpm.e1m, cpn.e1n) (cpm.a1), (cpm.e1m, cpn.e1n) (cpn.a1)>, (3) <(cpm.e1m, cpn.e1n) (cpm.a1), (cpn.e1n) (cpn..a1)>, (4) <(cpm.e1m) (cpm.a1), (cpn.e1n) (cpn.a1)>, (5) <(cpm.e1m, cpn.e1n) (cpn.a1), (cpm.e1m) (cpm.a1)>, (6) <(cpm.e1m, cpn.e1n) (cpn.a1), (cpm.e1m, cpn.e1n) (cpm.a1)>

and (7) <(cpn.e1n) (cpn.a1), (cpm.e1m, cpn.e1n) (cpm.a1)>. The problem is that

which combination at one activity is chosen so as to achieve our goal. From activity a1to activity an, if all possible combinations

are linked together, a seven-fork tree is produced according to data structure in [4]. A feasible solution may exist in the tree. How do we find the feasible solution? One simple method is to traverse all possible paths in the tree. However, when the number of activities increases, the number of combination nodes in the tree increases exponentially. Obviously this is a NP hard problem. So we need to investigate an intelligent algorithm such as ant colony algorithm to solve the problem.

In reality, the scale of the problem can have n (n >2) paths. In such a circumstance, there are three possible scenarios for each activity given the assumption of that an activity is helped by one extra employee at most. The first is that the activity is executed entirely by the original employee alone. The second is that the activity is executed together by the original employee and a help employee from another path if the activity can be partitioned. The third is that the activity is executed entirely by a help employee from another path. Likewise, there exists a multi-way tree. Due to n paths, all possible combinations cannot be enumerated in a reasonable time.

3.2

Scheduling Strategy

Here we propose a feasible solution based on ant colony algorithm. Note that when the scale of the problem increases, building a multi-branch tree becomes impractical since an ant does not know which node to select next. Whilst the detailed content for the SelectNode function will be described in Section 3.3, here we introduce the overall procedure of the scheduling strategy based on ant colony algorithm.

(1) Initialization

(2) For one generation, each ant k (k=1, 2, 3….m) selects the combination node according to the SelectNode function

(3) Calculate the actual end time of the final activities of all paths and determine whether those critical paths are delayed. (4) When one ant finishes its tour, set the delay of pathias a

minimum value if the final delay ofpathiis reduced and all other

paths are not impacted. If other ants can obtain better result, the minimum value will be updated, and finally record the correspondent ant searching path of the minimum value. (5) When all ants in one generation have finished the tour, the correspondent pheromone on the ant searching path of the minimum value will be updated. If there is no minimum value, pheromone will not be updated.

(6) Increase the generation number by 1, if exceeding the maximum generation number set, the algorithm terminates with the final result as output, otherwise, go to step 2.

(4)

3.3

SelectNode Function

This function determines which combination node will be visited by an ant. In our algorithm, in order to simplify the problem, the activity is helped by one extra employee from other paths at most if one activity can be partitioned. The general control flow of the function is shown in Figure 2. Firstly at activity ai, execution

order is random and is stored in array path[]. The order

determines the path priority,,i.e., which path will select help employee firstly. Then if ai-1 of all paths is finished on time,

algorithm terminates and outputs the combination result. Otherwise, According to actual end time of ai-1 of pathj, the actual

start time of ai of path pathj is calculated. Subsequently, it starts

to select the combination node. If the end time of new employee combination working at the activity is earlier than the end time of original employee working alone at the activity, the end time of the activity will be updated. In addition, the available time of all employees from the combination will be updated. Otherwise, the combination will be selected again. The process of selecting combination is detailed as follows.

To determine whether the original employee is ready for the activity, we compare the available time of the employee with the actual start time of the activity. When the original employee is ready, there are two choices. The first is that the original employee executes the activity alone. The second is that if the activity can be partitioned, a help employee is selected randomly from another path who has the same skills so that the group of two employees works together on the activity. If the end time of the group working on the activity is greater than or equal to that of the original employee working on the activity alone, a new employee combination is selected again. If the original employee is not ready, there are three choices. The first is that the activity will wait for the original employee. The second is that if the activity can be partitioned, the activity will wait for the group that is comprised of the original employee and help employee from another path. If the end time of the group working on the activity is less than that of the original employee working on the activity alone, a new employee combination is selected again. The third is to randomly select one help employee from another path. The help employee will execute the activity alone. If the end time of the help employee working on the activity is greater than or equal to that of the original employee working on the activity alone, a new employee combination is selected again.

execution serial which is produced randomly :path[]

ai-1 of all paths is finished on time ? Algorithm terminates and

output result Yes

computer actual start time of ai of pathj,

No

Select new combination

randomly

End time of new worker combination at

aiis earlier than that of original worker at

the ai

End time ofai and free time of all workers in the Combination will be updated Yes Select again No Activity ai is chosen

Store the combination and select next path from path[]

Figure 2. General control flow of SelectNode function

4.

EVALUATION

4.1

Case Studies

4.1.1

Case Study 1

Here all parameters of cp1, cp2 are generated randomly. In order

to illustrate the problem better, we choose two similar critical paths. In cp1 and cp2, activity a2 cannot be partitioned. Other

activities can be partitioned. All parameters are listed in Table 2. Assume that the delay occurs at activity a1 of cp1 and the delay is

8 days, and cp2 runs normally. If we do nothing at path cp1, the

final end time of cp1 is delayed to the 102th day. By using our

scheduling algorithm described in Section 3, we can obtain a feasible combination path as follows:

<(cp1.e11,cp2.e12)(cp1.a1),(cp2.e12,cp1.e11)(cp2.a1)><(cp2.e22)(cp2.a2),(cp1.e2 1

)(cp1.a2)><(cp1.e31,cp2.e32)(cp1.a3),(cp2.e32,cp1.e31)(cp2.a3)><(cp1.e41)( cp1.a4),(cp2.e42)(cp2.a4)>

Table 2. Parameters of activities atcp1,cp2

cp1 a1 a2 a3 a4

Planned start time 6th day 27th day 38th day 67th day

Duration : cp1.e 21 days 11 days 29 days 28 days

Duration : cp2.e 19 days 9 days 26 days 27 days

Duration:(cp1.e, cp2.e)

13 days N/A 19 days 20 days

(a) cp1 with a deadline of the 94th day

cp2 a1 a2 a3 a4

Planned start time 12th day 31th day 53th day 76th day

Duration : cp2.e 19 days 22 days 23 days 22days

Duration : cp1.e 17 days 22 days 19 days 18 days

Duration:(cp1.e, cp2.e)

12 days N/A 15 days 14 days

(b) cp2 with a deadline of the 97th day

The corresponding final end times of cp1 and cp2 are the 94th day

and the 97th day. In comparison to the delay before scheduling,

the delay is eliminated after scheduling as shown in Table 3. Table 3. Comparison between before and after scheduling

Delay of cp1 Delay of cp2

Before 8 days 0 days

After 0 days 0 days

4.1.2

Case Study 2

Here all parameters of cp1, cp2, cp3 are generated randomly. There

are three similar critical paths. In cp1, cp2, cp3, activity a3 cannot

be partitioned. Other activities can be partitioned. All parameters are listed in Table 4.

Assume that the delay occurs at activity a1 of cp1 and the delay is

10 days, and cp2 and cp3 run normally. If we do nothing at path cp1, the final end time of cp1 is delayed to the 87th day. By using

our scheduling algorithm described in Section 3, we can obtain a feasible combination path as follows:

<(cp3.e13,cp1.e11)(cp3.a1),(cp2.e12)(cp2.a1),(cp1.e11,cp3.e13)(cp1.a1)><(cp1.e2 1,cp

2.e22)(cp1.a2),(cp2.e22,cp1.e21)(cp2.a2),(cp3.e23)(cp3.a2)><(cp3.e33)(cp3.a3 ),(cp2.e32)(cp2.a3),(cp1.e31)(cp1.a3)><(cp1.e41)(cp1.a4),(cp3.e43)(cp3.a4),(cp2. e42)(cp2.a4)>

(5)

Table 4. Parameters of activities atcp1, cp2, cp3

cp1 a1 a2 a3 a4

Planned start time 6th day 23th day 36th day 55th day

Duration : cp1.e 17 days 13 days 19 days 23 days

Duration : cp2.e 20 days 8 days 18 days 13 days

Duration : cp3.e 19 days 13 days 19 days 12 days

Duration:(cp1.e, cp2.e) 14 days 6 days N/A 17 days

Duration:(cp1.e, cp3.e) 10 days 10 days N/A 16 days

(a) cp1 with a deadline of the 77th day

cp2 a1 a2 a3 a4

Planned start time 12th day 38th day 47th day 76th day

Duration : cp2.e 26 days 9 days 29 days 25 days

Duration : cp1.e 19 days 9 days 16 days 16 days

Duration : cp3.e 25 days 14 days 24 days 26 days

Duration:(cp2.e, cp1.e) 17 days 6 days N/A 16 days

Duration:(cp2.e, cp3.e) 24 days 5 days N/A 22 days

(b) cp2 with a deadline of the 100th day

cp3 a1 a2 a3 a4

Planned start time 6th day 35th day 49th day 73th day

Duration : cp3.e 29 days 14 days 24 days 13 days

Duration : cp1.e 27 days 15 days 16 days 8 days

Duration : cp2.e 20 days 18 days 22 days 16 days

Duration:(cp3.e, cp1.e) 16 days 9 days N/A 17 days

Duration:(cp3.e, cp2.e) 18 days 7 days N/A 15 days

(c) cp3 with a deadline of the 85th day

The corresponding final end times of cp1, cp2 and cp3 are the79th

day, the 100th day, and the 85th day. In comparison to the delay

before scheduling, the delay is reduced significantly after scheduling as shown in Table 5.

Table 5. Comparison between before and after scheduling Delay of cp1 Delay of cp2 Delay of cp3

Before 10 days 0 days 0 days

After 2 days 0 days 0 days

4.2

Simulation Experiments

Figure 3.Hit count under different numbers of paths & activities

Here we test the hit counts (i.e. the number of feasible solutions found) for 2, 4, 6, and 8 paths when the numbers of activities are 10, 20, and 30 respectively. The number of generations of the ant colony algorithm is set as 100 and the algorithm is run for 20 times each. Computation took less than 1 minute for all tests. The results are depicted in Figure 3.

From the results, the hit count is high and stable which illustrates that our algorithm can easily find feasible solutions.

5.

CONCLUSION AND FUTURE WORK

In this paper, we have discussed primarily on how to eliminate or reduce the delay of one path in a software project without

impacting on the other paths. To achieve this goal, a novel ant colony based searching algorithm has been proposed. The case studies have demonstrated the effectiveness of eliminating or reducing the delays. The simulation experiments have also shown that our proposed algorithm can obtain stable hit rates under different circumstances, which mean that feasible solutions can be easily found for handling software project delay. To simplify the scenarios and focus on the main ideas, the work presented in this paper is based on some constraints for employees and activities. Therefore, our future work is to relax these constraints in order to make our algorithm more general.

6.

REFERENCES

[1] E. Alba and J. F. Chicano.2007.Software Project Management with Gas. Information Sciences, 177,2380– 2401.

[2] F. Brooks. 1995. The Mythical Man-Month: Essays on Software Engineering (Anniversary Edition). Addison-Wesley.

[3] W.-N. Chen and J. Zhang. 2013. Ant Colony Optimization for Software Project Scheduling and Staffing with an Event-Based Scheduler. IEEE Transactions on Software

Engineering,39(1), 1–17.

[4] T. H. Cormen.2001.Introduction to Algorithms (Second Edition).The MIT Press.

[5] M. Di Penta, M. Harman, and G. Antoniol. 2011. The Use of Search Based Optimization Techniques to Schedule and Staff Software Projects: An Approach and an Empirical Study. Software: Practice and Experience, 41,495–519. [6] B. Hughes. 2002. Software Project Management (Fifth

Edition).McGraw-Hill.

[7] X. Li. and J. Qi. 2009. Free Float Theorem and Algorithm of Seeking the k-th Order Critical Path. Journal of Management Sciences in China, 12, 98–103.

[8] X. Liu and Y. Yang, Achieving On-Time Delivery: A Two-Stage Probabilistic Scheduling Strategy for Software Projects. In 2009International Conference on Software Process, (Vancouver, Canada, 2009), Lecture Notes in Computer Science, 317-329.

[9] Y. Liu, J. Wang, Y. Yang and J. Sun. 2008. A Semi-Automatic Approach for Workflow Staff Assignment.

Computers in Industry, 59 (5), 463–476.

[10]L. L. Minku, D. Sudholt, and X. Yao. 2014. Improved Evolutionary Algorithm Design for the Project Scheduling Problem Based on Runtime Analysis. IEEE Transactions on Software Engineering, 40(1), 83–102.

[11]J. Qi ,S. Yi. 1994. The Max Efficient Solution of

Contraction: the Limit of the Project with min Cost. Journal of North China Institute of Electric Power, 2, 109–114. [12]I. Sommerville. 2006.Software Engineering (Eighth

Edition). Addison-Wesley.

[13]J. Xiao and Q. Wang,Value-based Multiple Software Projects Scheduling with Genetic Algorithm. In2009 International Conference on Software Process, (Vancouver, Canada, 2009), Lecture Notes in Computer Science, 50-62.

Figure

Figure 1. Two different scheduling strategies
Figure 2. General control flow of SelectNode function
Table 4. Parameters of activities at cp 1 , cp 2 , cp 3

References

Related documents

Coupling the SCAA model estimates of the lake white fish population parameters with the modi fied lake whitefish bioenergetics model revealed that lakewide annual consumption of

As a proud member of the Project Renewal health care team, I can attest to the dedication of its medical providers, its staff, and the excellent high-level health care the

Subject matter jurisdiction of tribal, state or federal courts depends largely on (1) whether the defendant is an Indian or non-Indian person or entity 52 and (2) whether the

Chemical Composition of Microcline from the Kingman, Rare Metals and Wagon Bow Pegmatites continued ...138... Chemical Composition of Plagioclase from the Kingman,

[1–5] gave the transfer function of power-line networks from excitation source to load responses, establishing an overall model of broadband power-line communication network

(Counsel for Genworth Life Insurance Company and Genworth Life and Annuity Insurance Company (formerly General Electric Capital Assurance Company, First Colony Life Insurance

5.4.1: Top management shall ensure that quality objectives, including those needed to meet the requirements for the product, are established at relevant functions and levels

The effect of the coarsening of the grid has been compared with fine grid and the results are visualized in the form of different grid figure, further coarsened grid refined on