print

Incremental Funding Method

Introduction

The Incremental Funding Method (IFM) is a software engineering methodology that emphasize finanical consideration in software project sequencing. The method is pioneered by Mark Denne and Jane Huang. It is described in details in the book Software by Numbers and the associated web site, www.softwarebynumbers.org/.

I work with Professor Jane Huang on the IFM project as part of my undergraduate research. My work focus on the software algorithms that compute the optimal sequence of software development. Specifically, I rewrote the existing code to speed it up significantly. Because the exhaustive brute force algorithm that guarantees optimal solution is extremely computationally intensive, I also parallelized the algorithm to run in a distributed RMI cluster. My current focus is on providing better tool support for the analysis of software project using IFM.

See Distributed IFM Design for the design schematics of the next generation of IFM distributed analysis/search, which will be able to run over RMI, Jini, and JXTA.

Authorship

The current code base includes code developed by other people. The following are a list of authors and descriptions of their work.

  • Code under the oldifm package (originally under the default pacakge, and moved by me to the oldifm package) are credited to Sridevi kalidindi. The code includes IFM sample problem generation, IFM heuristic, and the original brute force analysis.
  • Code under the ga.* packages are credited to Jwo-Horng Lin and Chia-Fu Hsieh. Jwo worked on a genetic algorithm analysis for IFM problem, and Chia improved on it (not sure how).
  • Code under the edu.depaul.cs.re.ifm.* packages are my work. They include a complete object model for IFM problem, and a brute force analysis, implemented in both single-threaded and parallel version. Various command line tools are implemented to expose functionality in generating, saving/loading, analysing, and printing IFM problems. Also included is a GUI editor for IFM problem (IFM Editor). Code in these packages call into the other 2 code base for some functionalities (e.g. sample generation in oldifm and GA analysis in ga).

My approach in integrating the other two code bases into mine is to treat them like black boxes, and to touch them as little as possible. I have only made minimal changes necessary for my code to call into the respective code base.

IFM Editor

IFM Editor is a very simple GUI program that grew out of a need to do a presentation on IFM. It includes basic (and somwhat incomplete) editing of IFM problems, and also integrates the software algorithm that computes the optimal solution.

The IFM Editor program can be started using Java Web Start.

IFM Editor Releases (Contains link to launch)

The program will need all security access permission to run (not really, but Java Web Start only gives so much granularity). I have signed it with my certificate, so that Java Web Start should ask for your permission before running it.

The part of the program that generates sample IFM problem requires the MMF2 Access database. If you do not have the database, you can just download some pre-generated IFM problems to play with.


The original (version 1.0) tool is very basic and primitive, and was the result of 2 weeks of work. I am currently working on enhancing the tools support.
  • monitor this page

Comments

Powered by bitweaver