Omolade's Research Page
   
   

Home
Research Overview
Bibliography
Publications
Teaching Page
Miscellaneous

 

 

 

 

Omolade Saliu
Dept. of Computer Science
University of Calgary
2500 University Drive N.W.
Calgary, Alberta T2N 1N4
CANADA
saliu@cpsc.ucalgary.ca
omolade@omolade.com

 

Research Overview:

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.

· SEDS Laboratory, Canada

· SMRG, Saudi Arabia

· University of Calgary

· Computer Science Dept. UofC

· My UofC Homepage


  Page Last Updated: Monday January 15, 2007