On Building Software

CS 300 Lecture 1.2

Bart Massey 2013-10-03


  • Misc notes
  • How software is built
  • "Version Control" with Git

Misc Notes

How Software Is Built

  • Engineering is a four-step process:

    • What are you going to build? (requirements)
    • How are you going to build it? (design)
    • Build it (implementation)
    • Is it built right? (validation and verification)
  • Development is

    • Incremental (build successively more of the project
    • Iterative (may have to revisit the four steps a lot)
  • V&V plan should be known at start of project

    • Testing
    • Inspection
    • Formal Methods
  • Failure to do requirements properly is biggest failure mode.

Version Control With Git

(In-class Git tutorial. Transcript will be placed on the Moodle later.)

Programming Languages and Paradigms

  • Some language categories

    • Traditional / imperative
    • Object-Oriented
    • Functional and Logic
    • Domain-Specific Languages
  • Languages are usually chosen for weird reasons

  • Language doesn't matter so much

Scheduling a Project

  • Useful even for an individual project

  • Basic principle: very fine-grained scheduling

    • Forces paying attention to / exposing details
    • Central Limit Theorem gives convergence here
    • Constant feedback on progress
    • The "instant-endorphin" thing
  • Practice consciously: everyone is terrible at this

Last modified: Thursday, 10 October 2013, 12:31 AM