EWD 709: My hopes of computing science
> -- Цитата:
> 1)       separation of concerns and effective use of abstraction2)       the design and use of notations, tailored to one's manipulative needs3)       avoiding case analyses, in particular combinatorially exploding ones.When faced with an existing design, you can apply them as a checklist; when designing yourself, they provide you with strong heuristic guidance. In my experience they make the goal "intellectually manageable" sufficiently precise to be actually helpful, in a degree that ranges from "very" to "extremely so".
Перевод:
1) эффективно использовать абстракций и разделять ответственности
2) разработать и использовать нотаций, чтобы эффективно манипулировать ими
3) избегать анализа частных случаев, в частности, комбинаторного взрыва.
Когда вы имеете дело с существующей архитектурой, вы можете использовать их как список проверки; когда разрабатываете свою, они могут послужить вам эвристическим руководством. По моему опыту, они делают цель "интеллектуального управления" достаточно точной, чтобы быть очень полезными или даже очень-очень полезными.