title: What are the most important structured software design principles?
body: <p>Today I saw a job description that requires "significant experience coding in C++ and a thorough grounding in structured design principles", so I thought about what these principles are. First I felt it was a little odd to see C++ and "structured design" in one sentence, then I thought, OK C++ is a multi-paradigm programming language, so perhaps it's used like C. I also looked up the <a href="http://en.wikipedia.org/wiki/Structured_programming" rel="nofollow noreferrer">Wikipedia page</a> and read about exception handling and state machines are anti structured design (no surprise), but I still feel like many things are missing. So I'm asking you, what are the most important structured software design principles?</p>