Проектирование программного обеспечения. Николаев С.В. - 61 стр.

UptoLike

Составители: 

61
3.4. Проектирование
3.4.1. Принцип модульности
Создание сколько-нибудь полезных, выполняющих достаточно закончен-
ные функции, программ неизбежно наталкивается на фактор сложности. Это
связано с тем, что решение даже несложных в вычислительном плане задач
при воплощении их в виде заонченного программного продукта требует реа-
лизации массы дополнительных, с точки зрения содержания решаемой зада-
чи, функций
по диалогу с пользователем, вводу-выводу данных, выявлению
ошибочных и некорректных ситуаций и т.п. Кроме того, во многих случаях
невозможно на начальном этапе сразу точно определить все необходимые
функции. Начинать же программировать, когда неясно, что должно полу-
читься в итоге, значит иметь реальный шанс на то, что часть или
даже воз-
можно всю работу придется переделывать из-за того, что возникшие на позд-
них этапах дополнительные требования окажутся не совместимыми с уже
принятыми и реализованными к тому времени техническими решениями.
Практика создания сложных (не только программных) систем говорит о
том, что преодолеть фактор сложности ("Домоклов меч" разработчика)
можно, если отойти
от прямолинейного подхода к решению поставленной
задачи, состоящего в последовательном и линейном наращивании
(написании) исходного текста программы оператор за оператором, строка за
строкой, в результате чего получается одна длинная и аморфная (однородная)
как лента программа. Как и во многих других аналогичных ситуациях, здесь
оказывается действенным подход "разделяй и властвуй", который
в
программировании известен как принцип модульности. Он заключается в
том, что исходная задача разбивается на относительно независимые части;
они реализуются отдельными программными модулями, которые затем
связываются в единое целое на этапе компоновки. При этом большое
значение имеет то, каким образом осуществляется разбиение задачи, какими
средствами (синтаксическими и функциональными) оформлены модули
и
каким способом осуществляется взаимодействие между модулями. Процесс
разбиения одной сложной задачи на подзадачи и распределение функций
между модулями определяется принятым методом проектирования, а
синтаксические и функциональные средства оформления программных
модулей в виде законченных программных единиц определяются
возможностями алгоритмического языка, системы программирования,
операционной системы и аппаратного обеспечения.
Для того, чтобы фрагмент
программы, принимаемый в качестве модуля,
оправдывал свое назначение, он должен обладать следующим набором
свойств [5].
1. На модуль можно ссылаться с помощью имени.