[CSUSB]>> [CNS]>> [CSE]>> [R J Botting]>> biba.php

Bibliographic Item (1.0)


  1. William Berg & Marshall Cline & Mike Girou
  2. Lessons Learned from the OS/400 OO Project
  3. Commun ACM V38n10(Oct 1995)pp54-64
      rewriting a large piece of system software for a new platform.

      150 people almost all coding, feb92..94, 2MLOC C++ 14K classes, 142Kattributes 90K methods, 10K children, 5k overloaded method names. Use R/6000AIX/Motif. two days to compile and link. 10 minutes per class. Used Booch (all but one S_M team) increased functionallity and flexibillity heightened management. LOC tracked project but quality and delivery-on-time rewarded developers.

      Iterative and incremental life cycle. Used a weekly build cycle. encouraged defensive coding and defect avoidance and preserving interface stability. Should have had recesses every three months when work is frozen and reveiwed. Wanted more incentives for code reviews, detailed documentation, internal consistency checks, and separate est teams.

      classroom training: 120 hours OOA, design, patterns, programming + 50% design sessions with mentor. Spread out and reinforced. it takes application to learn to do inheritance correctly. 6 to 9 months before they get fully proficient in the new paradigm: 80% ok coders, 15% respectable journeyman designers, 5% top performaers at analysis and design. Biggest culture shift was from code to design.

      Put best talent to work on tuning RAM and speed.

      Systems requirements should include explicit flexibillity/extensibility criteria: Requirements Mutation Analysis. Use lowtech tools first, when design session ideas slow down then use computer-based tools to capture the ideas. Keep a strong link between requirements and design decisions.

      Code bloat and instruction count goals. Each path through code had a goal of so many instructions.

      Multiple inheritence not used much.

      Integration with old upper level code because it made numerous undocumented assumptions about entry points into new code.

Search for bibliographic items containing a matching string.

(Search uses POSIX regular expressions and ignores case)

Search for a specific bibliographic item by name.

To see the complete bibliography (1Mb+) select:[Bibliography]