Технология проектирования программ
При включении компьютера в тот или иной информационный процесс для решения некоторой прикладной задачи, как следует из предыдущего изложения, он должен быть снабжен соответствующим ПО.
Для разработки программы в целях решения конкретной прикладной задачи сложилась традиционная технология, показанная на рис. 12.1.
Заказчик Математик или Программист
системотехник
Рис. 12.1. Традиционная технология подготовки задачи к решению на ЭВМ
Здесь связи означают:
1 – заказчик на естественном (например, русском) языке объясняет математику или системотехнику, какую прикладную задачу он хочет решить. Эта задача из некоторой предметной области, например, задача бухгалтерского учета или зачисления абитуриентов в ВУЗ;
2 – математик (или системотехник) формализует задачу, представляя ее в виде математической модели или составляя строгое формальное описание процедуры ее решения, входных и выходных данных. Этот этап называется формализацией задачи;
3 - программист на основании математической модели или другого формального описания поставленной задачи разрабатывает программу. Он выполняет также отладку программы, используя для этого ЭВМ. Этот этап называется программированием задачи;
4 – результаты решения задачи на ЭВМ сообщаются заказчику для определения того, удовлетворен ли он решением. Результаты решения задачи, будучи доведены до заказчика, могут его не удовлетворить в силу ряда причин. Это означает, что процесс, изображенный на рис. 12.1, является циклическим: он завершается тогда, когда заказчик примет результаты решения задачи автоматизированным образом. В этом случае оформляется документация на эксплуатацию программного продукта. В ней описываются следующие характеристики программного продукта:
· основные характеристики программы, сведения об ее эксплуатации;
· сведения о назначении программы, области ее применения, используемых методах решения, ограничениях на применение, минимальной конфигурации технических средств;
· сведения для проверки работоспособности и корректности выполнения программы, для обеспечения функционирования и настройки программы на условия конкретного применения;
· сведения о необходимых запросах со стороны программы и форматах ответов пользователя;
· данные о нештатных ситуациях и поведении пользователя в них.
Этот этап называется сдачей программы в эксплуатацию.
Как видно, все связи на рис. 12.1 двунаправлены. Это означает, что в процессе проектирования программы идет диалог, в ходе которого уточняется и/или корректируется предмет общения.
Разработка алгоритма
Алгоритм– это точное предписание, определяющее вычислительный процесс, ведущий от исходных данных к искомому результату.
Алгоритм обладает следующими свойствами (они следуют из определения):
1) определенность (детерминированность)– каждая команда (или предписание) понятна исполнителю (человеку или компьютеру) и исключает неоднозначность исполнения;
2) результативность– реализация вычислительного процесса, предусмотренного алгоритмом, должна через определенное число шагов привести к результату или сообщению о невозможности его получения;
3) массовость– если алгоритм разработан для решения определенной задачи, он должен быть применим для решения задач этого типа при всех допустимых значениях исходных данных;
4) дискретность– пошаговый характер процесса получения результата, состоящий в последовательном выполнении конечного числа заданных алгоритмом действий.
Различают следующие простейшие виды алгоритмов:
1) линейный, когда предписания алгоритма выполняются в той последовательности, в которой они представлены в алгоритме;
2) разветвляющийся, когда ход исполнения предписаний может меняться относительно их нахождения в алгоритме в зависимости от значений исходных или промежуточных данных;
3) циклический, когда предписания алгоритма выполняются многократно. В зависимости от характера повторений различают циклические алгоритмы с заданным и незаданным числом повторений (в этом случае такие алгоритмы называют итерационными).