При постановке задачи следует добиваться полноты, непротиворечивости
и однозначности ее описания. Если не соблюдать эти требования, то созданная
программа может оказаться бесполезной для пользователя, т.к. не будет решать
весь класс задач или получаемые результаты не будут удовлетворять
пользователя.
Замечание 1. В постановке задачи сначала указывается выходная
информация, а затем только входная. Это объясняется тем, что нам важен
результат, а входные данные задают лишь ограничения на способ получения этого
результата. Кроме того один и тот же результат можно получить несколькими
способами, используя разные исходные данные.
Замечание 2.KПостановка задачи на первом шаге может быть определена
частично и уточнена на последующих шагах разработки программы. Это связано
с тем, что для уточнения внешней спецификации программы необходимо
рассмотреть различные варианты решения задачи.
KРазработка тестовых примеров. Основной задачей данного шага является
порождение идеи алгоритма, т.е. выделение основных шагов алгоритма без их
конечной детализации. При этом составляется два набора тестовых примеров:
набор тестов входных и выходных данных и набор обобщающих тестов.
Набор тестов входных и выходных данных. Этот набор тестов должен
выявить состав входной и выходной информации. В набор должны входить
тестовые примеры, разнородные по составу входной и выходной информации.
Включение «похожих» тестов не имеет смысла. Тесты создаются как для
правильных так и неправильных данных.
Пример.
Набор тестовых примеров входных и выходных данных:
1) a = 1, b= -11, c= 30 x1= 6, x2= 5
2) a = 1, b= -4, c= 4 x1= 2
3) a = 1, b= -2, c= 5 решений нет
Набор обобщающих тестов. Это набор тестовых данных, охватывающих
все возможные случаи вычислений. Здесь должны быть рассмотрены варианты
решения задачи в зависимости от различных исходных данных. При это должны
быть определены основные операции и промежуточные данные, получаемые при
вычислении. Кроме того при разработке тестовых примеров должна быть
определена структура данных программы (см. следующий пункт).
Пример.