Модульная декомпозиция

Для описания состава модулей и их взаимодействия используются структурная и/или функциональная схема.

Структурная схема – отображает состав и взаимодействие по управлению. Состоит из условных обозначений модулей с указанием связей (по данным и управлению) между ними.

Функциональная схема (схема данных ГОСТ 19.701-90) – схема взаимодействия компонент программного обеспечения с описанием информационных потоков, состава данных в потоках и указанием используемых файлов и устройств.

Функциональная схема кроме модулей может включать обозначения:

При структурном подходе особенно тщательно требуется прорабатывать спецификации межмодульных интерфейсов.

Метод пошаговой детализации – построение иерархической модульной структуры.

Структурные карты Констайтайна.

 

Почему модуль должен компилироваться с первого раза?

– если причиной синтаксических ошибок является недопонимание синтаксиса языка, возможно, и семантика усвоена не полностью;

– если ошибка вызвана недостаточной аккуратностью, это плохо;

– компилятор может не обнаружить некоторые ошибки (двойное толкование, отключение предупреждений и т.д.);

– при неудачной компиляции программист пытается как можно быстрее привести модуль в рабочее состояние, что может нарушить логику работы модуля.

Рекомендации по внесению ясности в текст программы:

– использовать значащие имена переменных;

– не использовать в качестве идентификаторов ключевые слова языка или идентификаторы используемых библиотек;

– избегать промежуточных переменных там, где без них можно обойтись;

– применение круглых скобок там, где порядок операций не очевиден;

– не изменять счётчик цикла в теле цикла;

– не использовать переход по меткам.

Использование особенностей языка программирования:

– изучайте и используйте прямые возможности языка программирования, библиотечные и встроенные функции;

– не игнорируйте предупреждения транслятора.

Советы по оптимизации алгоритма:

– не улучшать модуль (программу), пока она не будет окончательно проверена;

– не приносить читаемость в жертву эффективности, не оптимизировать без необходимости;

– увеличивать эффективность за счёт правильного выбора алгоритма и структур данных.