can help in designing a well-built structure with a solid foundation. Furthermore, if the software is to be modified in the future, it is even more important that it follows a logical foundation of separation between the client and server. This is because if a programmer comes in and cannot clearly understand the dynamics of the program, they may end up adding or changing something that can add a security flaw. Even with the best design, this is always a possibility, but the better the standardization of the design, the less chance there is of this occurring. See also Computer security Cyber security standards Hardening Multiple Independent Levels of Security Secure by default Security through obscurity Software Security Assurance References External links Secure Programming for Linux and Unix HOWTO Secure UNIX Programming FAQ Top 10 Secure Coding Practices Security by Design Principles Software quality Articles with example C code Software development philosophies Software development process Computer security procedures