Game Plan for Cbc Reengineering

Below is the current game plan and progress report.

Phase I

  1. Determine IBM's support
    • Brenda Dietrich
    • John Forrest
      • Liaison: Laci will be the main liaison with IBM
      • Additional team member from IBM: Perhaps down the road
      • Coordination issues
    • Funding: IBM will fund travel by academics and will provide food while at IBM.
    • Meeting in December
  2. Administrative
    • Collect team contact info: see ContactInfo
    • Conference calls: Will use TLC conference call line
    • Project management
    • Scoping of work
    • Assigning roles and tasks
    • Task manager
    • Recruit student(s)?
  3. Technical
    • Setup internal wiki page
    • Public project web page/blog?: No
    • Select chatting system: GChat and Skype (see ContactInfo)
    • Online interactive collaboration tools
  4. Code preparation
    • Source file list table
    • Create new branch/project
    • Add Lou's comments: In reengAnn (for Annotated). Don't get too excited, what you get is commentary and tracing hooks in parts of the code that I've had to sort out for one reason or another over the past year or two. Some commentary may be so old it's out-of-date. Buildable. (The initial revision for the branch is almost certainly buildable, but I didn't explicitly test, hence the warning.) The doxygen documentation is the old style (monolithic build created in the source directory).
    • Initial code cleanup
    • Beef up unit test to ensure changes don't break anything
    • Formatting standards (Indentation, etc.)

Phase II

  1. No functional changes to the code!
  2. Break objects into separate files
  3. Break up too long methods
    • nested for loops
    • long while loops
    • large switch/case statements
  4. Define separately "magic" numbers
  5. Documentation of files/objects/methods
  6. Reorganizing the classes/better modularization
  7. Merge with John Forrest (cbc 2.4)

Phase III

  1. Code modularization
  2. Break out Heuristics, etc.
  3. Break apart CLP/CBC
  4. Call solvers through OSI
  5. Merge to other projects (CHiPPS?)
Last modified 12 years ago Last modified on Feb 3, 2010 9:37:07 AM