INSE - Lecture 14 Tools and Techniques Philosophy: including the inter- dependence of “tools” and “techniques” A lifecycle-based review of some tools and techniques.
Philosophy of T&T (done by demonstration)
Philosophy / summary Any good Engineer will be expert on the tools & techniques available for their work… … and will innovate new tools and techniques when there is need
The most important tool… u Is YOU … u YOUR creativity u YOUR judgement u YOUR understanding u YOUR skill u YOUR knowledge u YOUR persistence u YOUR meticulousness u YOUR grasp of the tools u…u… u And much more
Whole process u Program support Environments/IDEs u Source control Backup tools u FM In many phases: u Top-down vs Bottom-up vs…
Requirements phase Requirements audit tools
Specification Phase Spec-prototyping T&T
Design phase Modularization & language support -> reuse Design-prototyping T&T Many situation–dependant tools e.g DB design tools Real-time analysis & design tools GUI design tools
Coding phase Code editors Code generators Prettyfiers The programming language Libraries Generics Compilers, linkers Source-tracking tools…
Test phase u Hand-execution u Simulation u Profilers u Test generators u Test Harnesses & stubs u Test analysers
Debugging phase Diagnostics (a.k.a. “Pursuit tests”) Dynamic debuggers Bug-tracking tools
Integration phase Configuration management tools
Overall Documentation tools Metrics tools QA tools Review methods & techniques
Maintenance All the above, but capitalizing on the archived information on the original Decompilation/Reverse Engineering Binary Editors/Patching
And Many More! u Always be alert for NEW tools that you need for YOUR work… u …and when they are needed enough, BUILD THEM
u © C Lester