Модульное программирование.Многие системы программирования строятся в расчете на модульное программирование.
Концепция модульного программирования, выдвинутая еще в середине 50-х годов (ассемблеры, FORTRAN), подверглась сильным изменениям в 70-е годы. Первоначально ставилась задача выделения относительно независимых фрагментов программ с целью организации разделения работ, повторного использования этих фрагментов в программе, уменьшения затрат на повторную компиляцию и преодоление ограничений на размеры компилируемых программ.
Современная концепция модульного проектирования включает в себя следующие положения:
- программа разбивается на модули, занимающие, как правило (но не обязательно), одну- две страницы распечатки. Модули могут определять доступные для использования данные, операции обработки данных (подпрограммы и т.д.), общие схемы структур данных и операций их обработки, а также структуры из перечисленных объектов;
- каждый модуль состоит из спецификаций и тела. Спецификации определяют правила использования модуля, а тело определяет способ их реализации. Не противоречащее спецификациям изменение тела не должно требовать перетрансляции других модулей, использующих данный;
- средства инструментальной поддержки должны обеспечивать возможность компиляции модулей до разработки тел используемых ими модулей, осуществлять проверку соответствия тел и спецификаций модулей а также соответствия использования модулей описанным в спецификациях правилам;
- каждый модуль содержит, как правило, одну точку входа и одну точку выхода.
Преимущества модульного принципа программирования состоят в следующем.
Упрощается отладка программ. Это дает возможность разрабатывать программу методами сверху вниз или снизу вверх, постепенно присоединяя написанные модули к ранее отлаженным. После каждого такого присоединения неверная работа программы сигнализирует о присутствии ошибки в новом модуле, а не в уже отлаженном.
Обеспечивается возможность организации совместной работы больших коллективов разработчиков, так как относительно малый размер модулей и небольшая сложность их позволяет провести более полную проверку программы.
Структурное программирование.Программы, разработанные по правилам структурного программирования, обладают следующими свойствами:
- имеют модульную структуру;
- представляют собой композицию основных управляющих структур: последовательности (следования операторов), разветвления (разветвления путей выполнения операторов в зависимости от определенных условий), цикла ( повторения оператора или группы операторов до тех пор или пока выполняется некоторое условие);
- содержат операторы безусловного перехода (типа GOTO) только в исключительных случаях. При этом передача управления происходит в точку программы, расположенную по тексту ниже той точки, где встречается оператор безусловного перехода;
- использование глобальных переменных ограничено.
Схема модульной структуры программы должна быть дополнена описанием внешних характеристик программных модулей. Описание внешних характеристик модуля называется внешней спецификацией. Внешняя спецификация содержит все сведения, необходимые для обращения к нему других модулей. Внешняя спецификация должна включать:
И м я м о д у л я. Имя модуля используется другими модулями для обращения к нему.
О п и с а н и е ф у н к ц и и. В описании приводится назначение модуля, но оно не должно включать сведения о логической структуре модуля и о контекстах, в которых используется модуль.
С п и с о к п а р а м е т р о в. Список определяет число и порядок задания параметров.
В х о д н ы е п е р е м е н н ы е. Дается подробное описание входных параметров и их атрибутов, таких, как структура, размеры, единицы измерения, допустимые диапазоны значений и т.п.
В ы х о д н ы е п а р а м е т р ы. Дается подробное описание выходных параметров, возвращаемых модулем, аналогичное описанию входных параметров.
В н е ш н и е э ф ф е к т ы. Дается описание внешних эффектов для программы или системы событий, происходящих при работе модуля.
На основе внешних спецификаций модулей осуществляется разработка логической структуры этих модулей. Логическая структура модулей прорабатывается на стадии технического проекта программы.
Стиль программирования. Под стилем программирования понимается набор специальных приемов, используемых программистами с целью получения единообразных, наглядных, приспособленных для рассмотрения программ при их разработке и сопровождении.
Программирование в стандартизованном стиле предполагает разработку единого для всех руководства по программированию, которое может включать в себя правила размещения фрагментов исходного текста, составления комментариев, выбора имен, обеспечения наглядности логической структуры программы.
Комментарии по своему назначению могут быть вводными и пояснительными. Вводные комментарии помогают понять назначение, интерфейсы и ограничения, накладываемые на программу. Они представляют собой внешнюю спецификацию, встроенную в исходный текст программы. Пример одной из возможных форм вводного комментария приведен ниже.
//****************************** C text file ************************
// Имя функции: in_hex
// Файл : in_hex.c
// Назначение: Модуль ввода табличных исходных данных для
// программ конструктивного расчета теплообменника
Пояснительные комментарии (обычно 5-10% строк исходного текста) необходимы для понимания частей программы, которые могут оказаться сложными для восприятия при чтении только одних операторов программы. Основным правилом составления пояснительных комментариев можно считать требование не перефразировать операторы языка программирования, а давать дополнительные сведения о цели выполняемых действий.
Большую роль при программировании имеет правильное присвоение имен данным, файлам, функциям. Имена должны отражать сущность описываемых с их помощью объектов. Рекомендуемая длина идентификаторов составляет 5-10 символов.
Для обеспечения наглядности логической структуры программы желательно соблюдать следующие правила:
1. Использовать пробелы для выделения составных частей операторов.
2. Не следует располагать на одной строке программы более одного оператора. Это облегчает чтение текста, поиск и удаление ошибок, модификацию программы;
3. Необходимо использовать отступы для выявления составных и вложенных операторов.
4. Желательно использовать пустые строки для разделения логически или функционально самостоятельных частей программы.
4.7. Документирование программного обеспечения САПР
Разработка документации на ПО – ответственный этап проектирования. От качества выполнения документации в значительной степени зависит не только эффективность использования программных средств САПР, но и пригодность их к развитию и сопровождению. Документация должна создаваться и корректироваться в процессе проектирования.
Документирование ПО САПР осуществляется в соответствии с Единой системой программной документации (ЕСПД). ЕСПД представляет собой комплекс государственных стандартов, которые устанавливают взаимоувязанные правила разработки, оформления и хранения программной документации.
В стандартах ЕСПД установлены требования, регламентирующие разработку, сопровождение, изготовление и эксплуатацию программ, что дает возможность унификации программных изделий для взаимного обмена программами; снижения трудоемкости и повышения эффективности разработки, сопровождения и эксплуатации программных изделий; автоматизации изготовления и хранения программной документации.