<bijan.parsia, christos.kotselidis@manchester.ac.uk>
(bug reports welcome!)
A definition:
Software construction is the creation, assembly, or modification of executable programs typically via modification of the source code.
Not the only formulation of such a hierarchy!
Pro tip: Always know the problem you're solving!
10 lines of code = 10 issues.
500 lines of code = "looks fine."
Code reviews.
— I Am Devloper (@iamdevloper) November 5, 2013
Code creation (or coding) is the addition of new functionality by the generation of new code and units of code
The "zone" is a much higher productivity state
Some is better than none; enough is better still; there is too much
—Grace Hopper's Bug Report
A defect in a software system is a quality level (for some quality) that is not acceptable.
Debugging is the modification of code to remove (or mitigate) correctness defects.
An indication of a defect is a tangible record of a behaviour contrary to the (explicit or implicit) functional specification in a designated situation.
From John Regehr, "Classic Bug Reports"
Optmisiation is a transformation of code into sufficiently functionally equivalent code that has "better" resource utilisation.
Following slides derived from Making Software, Chapter 10
Note: statistically general conclusions may not apply in your case!
Note, changing requirements can kill getting it right
"...the greater the project's size, criticality, and stability, the greater the need for validated architecture feasibility evidence.
"very very small low-criticality projects with high volatility, the architecting efforts make little difference"
Note: There are other cost drivers; check the assumptions!
A code unit is a syntactically complete(able) chunk of a program that enacts some behavior.
Individual routines and classes are what get unit tested