Разработка алгоритмов в САПР

 

В данном приложении очень кратко рассматриваются методы разработки программных систем, как влияющие на методы разработки алгоритмов. Далее основное внимание уделено способам описания алгоритмов на псевдокоде, так как на псевдокоде записано большинство алгоритмов, изложенных в учебнике.

 

Методы проектирования систем

 

Выделим следующие основные методы проектирования программных систем:

 

  • Проектирование "сверху - вниз ".
  • Проектирование " снизу - вверх".
  • Смешанное проектирование.
  • Проектирование на основе расширяющегося ядра.

 

Метод "сверху - вниз " предполагает разработку общей идеи с последующей ее детализацией. Метод " снизу - вверх" предполагает синтез системы на основе готовых модулей низшего уровня путем последовательного их соединения в модули более высокого уровня.

 

Смешанный метод предусматривает совместное использование указанных методов, т. е. разработка идет сверху вниз, однако на низшем уровне используются готовые модули. Смешанный метод проектирования характерен для современной технологии создания программных систем. В этих технологиях используют развитые программные среды, имеющие языки высокого уровня и возможности объектно-ориентированного программирования. Накоплены большие библиотеки классов объектов для быстрого программирования пользовательского интерфейса, для работы с базами данных, для работы на основе Web - технологии. В каждой среде имеется набор конструкторов для визуального программирования различных экранных форм и меню, позволяющих на основе алгоритмов верхнего уровня быстро создавать программные системы высокого качества.

 

Проектирование на основе расширяющегося ядра заключается в том, что сначала смешанным методом создают ядро системы, которое хотя и имеет ограниченные функциональные возможности, но его возможно эксплуатировать. Далее система последовательно развивается путем добавления новых модулей, реализующих недостающие функции. По мере своего развития система становится полнофункциональной действующей системой.

 

Способы описания алгоритмов.

 

После разработки технического задания на систему начинается разработка технического проекта. Одним из основных этапов технического проекта является разработка алгоритмов поставленных задач. В первую очередь разрабатываются алгоритмы высокого уровня. Для этого система сначала рассматривается как "черный ящик", т. е. как система, содержание которой неизвестно, и определяется состав входных и выходных параметров. Далее выполняется декомпозиция системы, т. е. система разделяется на части ( подсистемы, модули, блоки и т. д.) и определяется способ их управления.

 

Управление модулями может выполняться на основе жесткой логики, на основе управления данными и на основе управления событиями. Возможна комбинация способов управления модулями. Таким образом, устанавливаются функциональные связи между модулями. К каждой части системы применяют тот же подход: определяют входные и выходные параметры, а затем выполняют ее декомпозицию. Процесс декомпозиции ведут до уровня, когда уже можно применять готовые процедуры из соответствующих библиотек.

 

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

 

В настоящее время используют следующие формы записи алгоритмов:

 

  • Графические схемы.
  • Алгоритмические языки.
  • Табличные алгоритмы.

 

Графические схемы позволяют записывать алгоритм с помощью стандартизованных графических символов (ГОСТ 19.002-80 и ГОСТ 19.003-80).

 

Достоинства графических схем:
- простота;
- наглядность;

 

Недостатки:
- сложность сопровождения (сложно корректировать, пополнять, развивать);
- неудобство хранения (алгоритм на бумажном носителе неудобно корректировать, а на магнитном носителе - неудобно просматривать большие графические файлы).

 

Алгоритмические языки: позволяют записывать алгоритмы в текстовом виде, обычно называемом псевдокодом. Примером такого языка является алгоритмический язык, предложенный акад. А. Ершовым [17], [18].

 

Достоинства псевдокодов:
- компактность;
- возможность строгой записи алгоритма;
- удобство раннего программирования по алгоритму (использование имитаторов);
- возможность записи с любой степенью детализации;
- легко корректировать и дополнять алгоритм на основе текстовых редакторов (легко сопровождать).

 

К недостаткам псевдокодоа относится необходимость знания алгоритмического языка, который может быть достаточно сложным.

 

Табличные алгоритмы (ТА) представляют собой таблицы, фиксирующие определенные способы принятия решений. Иначе говоря, ТА - это декларативное представление алгоритма, позволяющее непроцедурным образом выразить алгоритм и записать его в базу знаний. Принятие решений выполняется с помощью универсального модуля, который выбирает таблицу из базы знаний, обрабатывает ее и принимает решение, соответствующее входным данным.

 

Достоинства табличных алгоритмов:
- простота;
- возможность использования без программирования;
- легко сопровождать (изменения выполняются путем корректировки базы знаний).

 

Основным недостатком табличных алгоритмов является ограниченная сфера действия, так как не все алгоритмические действия можно выразить с помощью табличного алгоритма. Более подробно табличные алгоритмы рассмотрены в разделе "Табличный процессор".