Engineered to Be Secure
Software no longer lives within a component of a system. It is now part of each component, controlling the communication among the components within a system, handling many of the execution functions previously performed by infrastructure hardware, and controlling the linkages with other systems in the systems-of-systems. Each of these many types of software require specialists to write and support. Because of the languages and tools now used to write software, only highly skilled developers, which are few, can produce the quality needed to avoid security vulnerabilities so most of the software acquired and implemented today is average quality containing many vulnerabilities.