1. definition
    1. coding
    2. debug
    3. detailed design
    4. testing
  2. importantants
    1. pivotal activity
    2. productivity
    3. up to date
    4. Subtopic 4
  3. principle
    1. before
      1. understand the problems and design
      2. pick programming language
      3. select tools
    2. begin
      1. constraint
      2. select data structures
      3. KISS
      4. user friendly
    3. after
      1. conduct code
      2. refactor the code
  4. practices
    1. add design document
    2. functioning
    3. devide work to small incremental
    4. consistent
  5. defensive programming
    1. process
      1. focus at detecting system
      2. involved several members
    2. adv
      1. discover many error
      2. no add cost
      3. search other quality
    3. issues
      1. sceptical managers
      2. take time to arrange
      3. difficult to introduce
  6. s.reused
    1. requirement
      1. easy to find
      2. documented
      3. confident
    2. benefit
      1. increased dependability
      2. reduced risk
      3. standard compliance
      4. accelerated development
    3. problems
      1. high costs
      2. lack of CASE tools
      3. maintain library component is expensive