2. In A Perfect, MagicalWorld…
• Whatever a client wants for software, a perfect software product will
appear.
• There is no software defects.
• Software requirements will never change.
• No need of any kind of software development framework or
methodologies.
3. To Err is Human
• Software Creation ProcessTimeline
• Requirements Analyze Software Requirement Specifications
(SRS)
• SRS Design Architectural Designs, Component Designs…
• Designs Construct Executables
• Executables Verify Releasable or not
• If theWorld is perfect, each phase produces perfect result and no
need to verify.
• In our imperfect world, human in each phase introduces mistakes.
4. To Correct, Complete
• It is well documented that defects identified later in SDLC are
expensive to fix than defects identified in early stage.
• To find out defects as early as possible.
• Since to err is human, each human activities for creating software
should be detected for errors.
• To Correct, Complete
5. How to minimize human error
• Prevention
• Detection
• Apply them to each development phase
• Requirements Analyze w/ Prevention SRS Detection
• Incremental and Iterative
9. Software Construction
• Designs Construct w/ Prevention Executables Detection
• Prevention
• Coding Convention, ProgrammingTools, Static Analysis, Dynamic Analysis,
Resource Management, Performance, Scalability…
• Detection
• As complete as possible on test cases, UnitTests, IntegrationTests, System
Tests, ScalabilityTests, PerformanceTests,Test Automation, Automated
RandomTests…
• Detection 2: build-in monitoring for resources, performance,
traceability.
10. SoftwareVerification
• Executables Verify Releasable or not
• Put executables into production environment.
• Test with the same intensity as under Software Construction
Iterations.
• Pay attention to monitoring data which may reveal defects escaped
the testing.
17. Agility Essence
• To detect defects early
• Prevent defects in each human software activities
• Detect defects after each human software activities
• Incremental and Iterative