Abstract

Software project scheduling is essentially a kind of project scheduling problem with limited human resources. During the development process of a software product, reworking the completed projects, reassessing the workload, and changing the number of employees or their skills are the frequently occurring dynamic issues having direct influences on designing a scheduling scheme. Taking the development cost and duration, the robustness, and the stability of the scheduling schemes as the objective functions, software project scheduling is modeled as a dynamic four-objective optimization problem. The various programming habits among the employees form the specific constraints for the reworking tasks, and the skills of the employees vary due to the effects of learning and forgetting. To solve this problem, an improved multiobjective firework algorithm with a novel explosion operator and reservation strategy is incorporated with rescheduling methods to fully guide the evolution by using the historical evolutionary knowledge. The experimental results indicate that the proposed method has better scheduling performance, and the optimal scheduling schemes have better robustness and stability.

Highlights

  • Developing and maintaining software products determines the market competitiveness of a software company

  • We focus on three characteristics of dynamic events, including their types, the times when events arrived, and their additional information, which are represented by el1, el2, and el3, respectively

  • Various unpredictable events may arise in the development of a software project

Read more

Summary

Introduction

Developing and maintaining software products determines the market competitiveness of a software company. To meet the requirements of software development, such as deadlines and budgets, effectively allocating dozens of employees to cooperatively fulfill a project timeline subject to various constraints is a key issue, which is called the software project scheduling problem (SPSP) [1]. Scheduling the complicated software project manually or by traditional numerical programming is inefficient and possibly falls into an unfeasible project schedule [2, 3]. Many unpredictable events often occur in real-world software development processes, such as employees leaving and joining, changing the task requirements, and the arrival of patching tasks for the developed software, which change the working environment of a project. The optimal schedule that is suitable for the certain development condition is usually unable to achieve the desired performance and may even deteriorate the performance under the changed environment. Based on this, employing the dynamic software project scheduling method is a necessity

Methods
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call