Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Petit Humane Assessment, with Delphi

651 views

Published on

Petit Humane Assessment,
with Delphi

Diego Lont & Stephan Eggermont www.legacycode.nl

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Petit Humane Assessment, with Delphi

  1. 1. Petit Humane Assessment, with Delphi Diego Lont & Stephan Eggermont www.legacycode.nl
  2. 2. How to start doing humane assessment
  3. 3. Humane Assessment? • decide knowingly • everyone makes decisions • decisions require accurate information • details are essential • assessment is a human activity • approach problems individually
  4. 4. Why Delphi? • seen by management as legacy, cq problem • we know it, • well known teaching language • no clear-cut need to replace now • refactor or replace? • well known weak spots
  5. 5. Getting started • from a strategic level (or grass roots) • visible to management • fast trust building is needed • low initial investment, feedback • can’t start building a parser for a few weeks
  6. 6. Complex problem • management perceives a problem • formulating might be difficult • 5 why? (find root causes) • multiple safe-to-fail experiments • fast feedback • low investment
  7. 7. Low investment • analyzing code requires parsing • use/modify existing parser • java/smalltalk/c/delphi... in moose • reuse from development environment • island parser • interesting part only
  8. 8. Island parsing • data conversion project • Cobol • data definitions+modules/files • ignore 300 keywords, 90% of source
  9. 9. Experiments • dependencies • code duplication • typical issue list • language specific • general • changes
  10. 10. Dependencies • do we have all source? • how well balanced is the system? • how complex are dependencies?
  11. 11. Show dependencies • system units (grey) • missing units (red) • interface dependencies (green) • implementation dependencies (blue) • classes nested • [nclude files]
  12. 12. Duplication • Zip • Du(plication)de(tector)
  13. 13. Typical legacy problems • multiple styles/architecture • copy paste and edit • missing tests • low abstraction
  14. 14. Typical delphi issues • code written in the form eventhandlers • missing domain model, all transaction script • no database abstraction • sometimes still turbo pascal style structured programming/mixed with oop • missing basic libraries/misuse of tlist • no longer maintained components
  15. 15. Code written in forms • subclasses of form • method with first parameter of type TObject (eventhandler) • complexity view
  16. 16. Changes • EggRace • (Torch)
  17. 17. Results • Shown with Delphi how to start strategic Humane Assessment • Typical Delphi browser • Moose browser • Dude • Sonar
  18. 18. Iterative, Incremental! • each answer leads to new questions • focus on risk & value • A rational design process, how and why to fake it (Parnas)
  19. 19. Where? • www.humane-assessment.com • www.moosetechnology.org • www.smalltalkhub.com/mc/Moose/PetitDelphi/main

×