As professionals we strive to develop high quality software. The question we must ask ourselves is “What qualities must software possess to be considered high quality?” The answer to this question fundamentally influences our software design and