To answer the question, “What makes software secure?” it is important to understand the meaning of software security in the broader context of software assurance.
As described in Chapter 1, software assurance is the domain of working toward software that exhibits the following qualities:
Trustworthiness, whereby no exploitable vulnerabilities or weaknesses exist, either of malicious or unintentional origin
Predictable execution, whereby there is justifiable confidence that the software, when executed, functions as intended
Conformance, whereby a planned and systematic set of multidisciplinary activities ...