Search-Based Software Engineering: Trends, Techniques and Applications 11:13
The application areas of software project management, scheduling, and planning
have witnessed a great deal of recent interest from the research community, with
´
recent contributions from a number of authors. Alvarez-Valdes et al. [2006] used a
Scatter Search (SS) algorithm for project scheduling problems to minimize project
completion duration. This is one of the few applications of SS in SBSE. Barreto et al.
[2008] proposed an optimization-based project staffing algorithm to solve the staffing
problem. Cortellessa et al. [2008b] described an optimization framework to provide
decision support for software architects. Hericko et al. [2008] used a simple gradient-
based optimization method to optimize project team size while minimizing project
effort. Kapur et al. [2008] used a GA to provide optimal staffing for product release
and best quality to customers under time constraints. Kiper et al. [2007] applied GAs
and SA to select an optimal subset of Verification and Validation (V&V) activities in
order to reduce risk under budget restrictions, thereby linking the problem domains of
testing and management.
It is clear that this application area will continue to draw interest and activity
from the SBSE community. Though there has been much interest in the difficulty of
the problem of software project management, there remain a number of unresolved
challenges, including the following.
(1) Robustness . It may not be sufficient to find a project plan that leads to early comple-
tion time. It may be more important to find plans that are robust in the presence of
changes. Such a robust plan may be suboptimal with respect to the completion time
objective. This may be a worthwhile sacrifice for greater certainty in the worst-case
completion time, should circumstances change. These forms of “robustness trade-
off” have been widely studied in the optimization literature [Beyer and Sendhoff
2007].
(2) Poor Estimates . All work on software project estimation has had to contend with the
problem of notoriously poor estimates [Shepperd 2007]. Much of the work on SBSE
for project management has implicitly assumed that reliable estimates are avail-
able at the start of the project planning phase. This is an unrealistic assumption.
More work is required in order to develop techniques for software project planning
that are able to handle situations in which estimates are only partly reliable.
(3) Integration . Software project management is a top-level activity in the software
development lifecycle. It draws in other activities such as design, development,
testing, and maintenance. As such, project management is ideally not an activity
that can be optimized in isolation. In order to achieve wider applicability for the
SBSE approach to software project management, it will be necessary to develop
techniques that can integrate management activities with these other engineering
activities.
Software project management also cannot be conducted in isolation from require-
ment engineering, since the choice of requirements may affect the feasibility of
plans. Therefore, though the requirements gathering and analysis phases typically
precede the formulation of management planning, this is clearly not desirable once
one accepts that the planning phase can be formulated as an optimization problem.
Early work on integration by Saliu and Ruhe [2007] showed how implementation
objectives and requirements objectives could be simultaneously optimized using
a multiobjective optimization approach. More work is required to integrate other
aspects of the software development process into an optimized software project
management activity.
Figure 2 provides a generic schematic overview of SBSE approaches to project
planning. Essentially, the approach is guided by a simulation that captures, in abstract
form, the conduct of the project for a given plan. A project plan is evaluated for fitness
đang được dịch, vui lòng đợi..