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