On Building Software
CS 300 Lecture 1.2
Bart Massey 2013-10-03
Overview
- Misc notes
- How software is built
- "Version Control" with Git
Misc Notes
The first assignment is up. Questions are welcome.
Today's CSOD is http://thedailywtf.com/Articles/The-Toggle-that-Wouldnt.aspx.
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