ЭТАПЫ РЕШЕНИЯ ЗАДАЧИ НА ЭВМ
Процесс решения задачи на ЭВМ разделяется на ряд последовательных этапов (рис. 4.7).

Рис. 4.7. Этапы решения задачи на ЭВМ
Решение задачи начинается с ее постановки, изложенной на языке строго определяемых математических понятий. Точное описание исходных данных, условий задачи и цели ее решения называется математической постановкой задачи. Этап математической постановки задачи называют еще этапом формализации, так как на этом этапе многие из условий задачи, заданные в форме различных словесных описаний, необходимо выразить на точном (формальном) языке математики. На этом этапе определяют состав и характеристики исходных данных, различные условия и ограничения записывают в математической форме. Разработка математической модели исследуемого объекта позволяет свести решение реальной задачи к математической. В случае если задача является математической, этап формализации может и не потребоваться.
Поскольку на ЭВМ решаются сложные задачи и не только вычислительные, этап формализации может потребовать значительных усилий и времени.
Специалисты-постановщики считают, что выполнение этапа формализации равнозначно выполнению половины всей работы по программированию.
Задача составления, например, расписания в вузе относится к сложным задачам, так как связана с распределением большого числа групп и потоков разной численности по различным аудиториям с ограничением времени занятий в каждой аудитории и с разделением занятий по степеням сложности в течение дня. Она сводится к известной в комбинаторной геометрии задаче нахождения покрытия некоторой поверхности заданным набором прямоугольников, причем искомое покрытие должно удовлетворять ряду ограничений, записанных в виде математических уравнений, и оцениваться значением критерия качества. Построение математической модели может быть использовано для решения и других задач — раскроя, компоновки и т.д.
Разработка метода решения. Цель этапа — свести задачу к математической модели, для которой известен метод решения. Если известно несколько методов, то предстоит выбрать из них оптимальный. Если ни один из них не подходит, то не исключается возврат к этапу формализации с целью упрощения решаемой задачи путем ввода дополнительных ограничений или, наоборот, снятия некоторых из них.
Разработка алгоритма. Алгоритм устанавливает последовательность точно определенных действий, приводящих к решению задачи. Часто не удается получить решение в явном виде, т.е. в виде формулы, связывающей исходные данные и результаты. В таких случаях решение ищется в виде алгоритма.
Рассмотренные этапы носят творческий характер, однако этап построения алгоритма помимо творческих поисков включает в себя и чисто технологические вопросы. Используя определенную дисциплину при конструировании алгоритма, можно получить алгоритм с явно выраженной структурой, что облегчает дальнейшую работу с ним. Аналогичная технология может быть использована и на последующих этапах — при разработке программы и при работе с этой программой.
Написание программы (разработка программы). Алгоритм, предназначенный для исполнения на ЭВМ, должен быть записан на языке программирования (см. подраздел 4.11.2).
Программа — это набор машинных команд (МК), которые следует выполнять компьютеру для реализации того или иного алгоритма. Иными словами, программа — это форма представления алгоритма для исполнения его машиной. Программист пишет программу на одном из языков программирования (исходный текст). Исходные тексты помещают в текстовые файлы. Затем с исходными текстами работают программы-посредники — трансляторы (компиляторы и интерпретаторы). В результате трансляции получается программа, готовая к исполнению на ЭВМ.
Однако в процессе разработки программ могли быть допущены ошибки (содержательные), которые сохранились и в результирующей программе. Они не могут быть устранены на стадии трансляции, так как для их обнаружения необходима информация о сути решаемой задачи. Их может устранить только сам пользователь. Поэтому любая программа до ее практического использования должна пройти этап отладки, чтобы устранить ошибки, допущенные на предыдущих этапах.
В процессе отладки пользователь подготавливает систему тестов, с помощью которых проверяется работа программы в различных режимах работы.
Для облегчения процесса отладки в состав ОС включают специальные сервисные программы — отладчики. Пользователь формулирует задачу отладчику, который выполняет задание и выдает необходимую информацию о поведении программы. Программа, прошедшая отладку, готова для практического применения.
Рассмотренный процесс решения задачи на ЭВМ имеет в основе триаду:
Системный подход к разработке программного обеспечения (ПО) рассматривается в технологии программирования или в методах разработки ПО.