Модульная декомпозиция
Для описания состава модулей и их взаимодействия используются структурная и/или функциональная схема.
Структурная схема – отображает состав и взаимодействие по управлению. Состоит из условных обозначений модулей с указанием связей (по данным и управлению) между ними.
Функциональная схема (схема данных ГОСТ 19.701-90) – схема взаимодействия компонент программного обеспечения с описанием информационных потоков, состава данных в потоках и указанием используемых файлов и устройств.
Функциональная схема кроме модулей может включать обозначения:
При структурном подходе особенно тщательно требуется прорабатывать спецификации межмодульных интерфейсов.
Метод пошаговой детализации – построение иерархической модульной структуры.
Структурные карты Констайтайна.
Почему модуль должен компилироваться с первого раза?
– если причиной синтаксических ошибок является недопонимание синтаксиса языка, возможно, и семантика усвоена не полностью;
– если ошибка вызвана недостаточной аккуратностью, это плохо;
– компилятор может не обнаружить некоторые ошибки (двойное толкование, отключение предупреждений и т.д.);
– при неудачной компиляции программист пытается как можно быстрее привести модуль в рабочее состояние, что может нарушить логику работы модуля.
Рекомендации по внесению ясности в текст программы:
– использовать значащие имена переменных;
– не использовать в качестве идентификаторов ключевые слова языка или идентификаторы используемых библиотек;
– избегать промежуточных переменных там, где без них можно обойтись;
– применение круглых скобок там, где порядок операций не очевиден;
– не изменять счётчик цикла в теле цикла;
– не использовать переход по меткам.
Использование особенностей языка программирования:
– изучайте и используйте прямые возможности языка программирования, библиотечные и встроенные функции;
– не игнорируйте предупреждения транслятора.
Советы по оптимизации алгоритма:
– не улучшать модуль (программу), пока она не будет окончательно проверена;
– не приносить читаемость в жертву эффективности, не оптимизировать без необходимости;
– увеличивать эффективность за счёт правильного выбора алгоритма и структур данных.