«Обратная волна» требований
Нам удалось представить решение всех задач нашей программы в виде последовательности работы программных модулей. Как формулировать требования к этим модулям?
Очевидно, что требования к результатам работы последнего модуля в цепочке такие же, как и требования к решению задачи. Что нужно сделать, чтобы модуль смог выполнить поставленную перед ним задачу? Часть необходимой информации модуль получит из входных данных, остальное должны передать ему другие модули, стоящие раньше в цепочке решения задачи. Так формулируются требования к предыдущим модулям. Рассматривая их как последние, сформулируем требования к модулям, стоящим в цепочке раньше. И так до начала цепочки. Это похоже на волну, прокатывающуюся от конца цепочки до начала, поэтому такой метод получил название «Обратная волна требований».
Один и тот же модуль может участвовать в решении нескольких задач. Поэтому требования к нему должны быть сформулированы в результате анализа всех цепочек, в которых он участвует.
Советы молодому программисту.
Может показаться, что описанный путь постановки задачи слишком долгий и скучный. Гораздо проще и интереснее сразу приступить к программированию, хотя бы того, что понятно уже сейчас. Потом можно дописывать программу по мере осмысления задачи и требований пользователя.
39
Однако, поступив так, Вы достаточно скоро поймете, что разработка Вашей программы зашла в тупик. Добавление нового модуля требует существенной реорганизации данных и изменения логики работы всей программы. Поэтому каждый новый модуль добавляется все с большими трудностями. В конце концов, трудности становятся такими непреодолимыми, что проще написать всю программу заново.
Еще такой путь программирования напоминает строительство жилья богатеющим купцом. В центре, фасадом на улицу, стоит хибара. (Когда-то у купца денег хватило только на нее). Поодаль, в виде пристройки к хибаре, стоит добротный кирпичный дом (разбогател купец). А на отшибе, там, где у других стоит туалет, возведен роскошный особняк.
Хотелось бы Вам жить в таком доме?
Поможем написать любую работу на аналогичную тему