Software = English and mathematics
nSoftware is executed by machines, but written and maintained by people.
nA software solution
must be read and understood by anyone
intending to maintain it -- it should
be clear and comprehensible to a
human reader.
nThe correctness
should be verifiable in a formal,
mathematical sense.