The purpose of this page is to provide a place to document my research
activities and steps towards completing degree requirements for the Ph.D.
program. This page would help in organizing my research works and progress.
-
My research interests include Software Release
Planning, Software Metrics and Measurement, Software Engineering
Decision Support, Software Process-related issues, Empirical Software
Engineering, Soft Computing, and Value-Based Software Engineering.
-
I am currently investigating release
planning decision support for evolving software systems. My research
bibliography details the software engineering research areas that form
the focus of the Ph.D. research (see bibliography for more).
I have just completed my PhD Candidacy
Examination on November 25, 2005. My research proposal and oral exam
presentation are contained in the following files:
Introducing Release
Planning:
A
major problem faced by companies developing or maintaining large and
complex systems is that of determining what features should be in the
next sequence of releases of the software [1]. Informally, the release planning problem involves
decision making about assigning features to sequence of releases of a
system such that the most important technical, resource, risk and budget
constraints are met. Release planning is a very complex problem and it
is inherently difficult to even solve for mid-sized systems. The issues
become even more challenging in evolving systems where we need to
consider the characteristics of the existing system, as characteristics
of the components of the system would constrain the type of features it
can accommodate during evolution.
The Research Problem:
Most large-scale software systems
evolve as they are put into use because of the need to extend
functionality of the system by adding new features and correcting errors
that are discovered during operation of the software. One problem common
to all existing release planning methodologies is their focus only on a
single aspect of release planning (i.e. a new system), while in fact
release planning may be viewed as having at least the following two
aspects: new systems, evolving systems. In this evolving systems
scenario, release planning poses more challenges because the design
decisions already implemented in existing architecture restricts our
ability to accommodate future sequence of releases easily. A critical
survey of the literature [4] reveals that existing release planning techniques are
not targeted at evolving system scenarios where knowledge about existing
product, repositories of past maintenance data and other system
characteristics are critical to providing support for making meaningful
release decisions. The objective of this research is to bring these
diverse and critical information sources together to enable realistic
release planning decision making. The release planning problem
definition in the context of software engineering decision support is
shown in Figure 1:

Figure 1:The
Release Planning Problem Definition as a Decision Problem
Our work essentially addresses the
following research questions:
(1.)
How can we
characterize existing system components such that it would be possible
to define quantitative measures that capture their modifiability, and
also enable resulting measures to be useful for evaluating the potential
impact of implementing proposed features on affected components of the
system?
(2.) How
can we model the release planning problem and proffer solution by
combining knowledge of the impact of each feature, stakeholder
preferences, resources and risk constraints to generate realistic plans?
Release Planning for Evolving Systems: Proposed Approach
We propose multi-disciplinary
research to address the questions identified. We plan to integrate
concepts and approaches from software engineering, decision support,
knowledge management, and computational intelligence to achieve novel
results to overcome the existing difficulties in release planning and
design decisions for large-scale software intensive systems.
We have developed a high-level decision
support architecture called S-EVOLVE* (an extension of EVOLVE*[2]) for release planning in evolving systems
[4][5]. In addressing question (1.) within the proposed
architecture, we have evaluated the risk of integrating new features
into existing system and our preliminary results reported in
[4] are promising. Unfortunately, this measurement-based
approach appears to be fraught with difficulties. It requires data to be
kept for previous releases of the software; but software engineering
data are known to be generally difficult to collect with guaranteed
quality. Based on these difficulties, we have developed an alternative
but complementary approach in [5] which exploits the knowledge of experienced experts
that are familiar with the system under consideration to characterize
system components based on identified quality attributes. The result is
a weighting factor assigned to each component that reflects the
Difficulty of Modification (DoM), and also an assessment of the eXtent
of Modification (XoM) of those components impacted by a proposed
feature.
In addressing question (2.), the
information gained from the solution to question (1.) constitutes part
of the constraint modeling in a formal description of the problem. The
formal model is based on a stakeholder related objective function that
equally reflects the value a feature adds to the stakeholders. The
S-EVOLVE* solution algorithms is based on integer linear programming (ILP)
combined with heuristics that speed up the process of generating
sufficiently good solution plans.
The methodology to realize the full
potential of S-EVOLVE* would involve: exploration of the most realistic
way to characterize system components in order to evaluate their
modifiability, feature-driven impact analysis (FDIA) to assess the
feasibility of new features in existing system architecture,
computational intelligence-based formal modeling of release planning
objectives and human intelligence-based consolidation of generated
plans.
Our proposed research offers a
fundamentally new approach that utilizes as many data sources as
possible to provide more accurate measure of impact of proposed features
on existing system, thereby offering a more realistic measurement-based
assessment of amount of work to be done before feature selection
decisions can be made. We will utilize a complementary marriage between
computational intelligence and human intelligence that we proposed in
[3] to plan releases for both new and evolving software
systems.
References:
[1]
Bagnall, A. J.,
Rayward-Smith, V. J. and Whittley,
I. M., “The Next Release Problem,”
Information and Software Technology, 43 (14), pp. 883-890, 2001.
[2]
Ruhe, G. and Ngo-The,
A., “Hybrid Intelligence in Software Release Planning,” International
Journal of Hybrid Intelligent Systems, Vol. 1(2004),
pp. 99-110.
[3]
Ruhe, G. and
Saliu, M. O., “The Art and Science of Software Release Planning”, IEEE
Software, 26(6), pp. 47-53, Nov/Dec, 2005.
[4]
Saliu, M. O. and
Ruhe, G., “Supporting Software Release Planning Decisions for Evolving
Systems,” 29th IEEE/NASA Software Engineering Workshop,
Greenbelt, MD, USA, April 6-7, 2005.
[5]
Saliu, O. and
Ruhe, G., "Software Release Planning for Evolving Systems", Innovations
in Systems and Software Engineering: A NASA Journal, 1(2), 2005.