andrew@theinternet

Software Dev Process Lecture Notes - Part 1 Lesson 1 - Introduction


Starting from the bottom…

  • Class draws distinction between programming (smaller projects, single programmer) and software engineering/development (larger projects, team coordination)
  • Central idea is that in the 60s amount of software needed far outstripped output capacity of individual programmers (teeing up idea that you need formal discipline to close that gap)
  • Defines sfotware development as going from abstract idea to concrete, functioning software
    • Software development process is used to break up the path from A to B into digestible chunks
      • Systematic
      • Formal
      • Four main process types exist (will be covered in depth throughout class)
        • Watefall
        • Evolutionary prototyping
        • Rational unified process (aka Unified Software Process)
          • This is where UML comes in
        • Agile
  • Software Development Phases
    • Requirements Engineering
    • Design
    • Implementation
    • Verification and Validation
    • Maintenance (including feature adds)
  • Tooling
    • Better tooling helps close the gap between the growth curves of developers productivity and software size and complexity
      • Includes improvement in IDEs, language, debugging, etc
    • Tools
      • IDEs
      • VCS
      • Coverage and Verification Tools