НАПРАВЛЕНИЕ «ПРОГРАММНЫЕ КОМПЛЕКСЫ»
Программные комплексы разрабатывают при решении прикладных задач из различных областей техники, экономики и т.д. При этом основные трудности после выполнения этапов постановки задачи и математической формализации заключаются в построении алгоритмов.
10.1 Построение алгоритма
Алгоритм должен обладать следующими свойствами:
– Дискретность – алгоритм должен представлять собой последовательность отдельных шагов, четко отделенных друг от друга.
– Конечность – описания алгоритма должно содержать конечное число шагов.
– Конечность ввода – для работы алгоритма требуется ограниченное множество входных данных.
– Определенность (детерминированность) – каждый шаг алгоритма должен быть четко определен и понятен исполнителю алгоритма. При исполнении алгоритма не должно возникать неоднозначности, требующей волевых решений от исполнения алгоритма.
– Результативность (иногда это свойство называют выполнимостью) – алгоритм должен приводить к решению задачи за конечное число шагов. Но это возможно только, если входные данные алгоритма соответствуют его области определения.
– Эффективность – для решения задачи должны использоваться ограниченные ресурсы компьютера.
– Массовость – алгоритм должен быть пригоден для решения не одной задачи, а целого класса задач. Например, алгоритм для решения квадратных уравнений позволяет решить любое уравнение, а не только какое-то конкретное.
– Для того, чтобы построить качественный алгоритм необходимо выполнить следующие этапы:
– Постановка задачи.
– Построение модели.
– Разработка алгоритма.
– Проверка правильности алгоритма.
– Реализация.
– Анализ алгоритма и его сложности.
– Программная реализация алгоритма.
– Проверка программы.
– Составление документации.
Существует 4 основных способа построения алгоритмов:
– Природным языком (описываем что, как и когда надо сделать)
– С помощью графических схем
– Псевдокод (полуформализованное описание на условном алгоритмическом языке, который включает в себя, как элементы языка программирования, так и фразы естественного языка, арифметические действия и прочее)
– Программный [7].
После разработки алгоритма и доказательства его правильности приступают к реализации алгоритма. В целом, сложность этого этапа довольно высокая, поскольку не всякий шаг алгоритма может быть напрямую выражен в конструкциях некоторого языка программирования. Иногда один из шагов алгоритма требует написания отдельной программы, в других случаях необходимо создать сложную структуру вспомогательных данных, исходя из выбранной модели (раздел 3 настоящего пособия).
Далее следует определение архитектурных представлений (раздел 4.2 настоящего пособия) [8].