> -- Rifat писал(а):
> Возник вопрос как связать код и требования так, чтобы глядя на код было видно какие требования они реализуют. И изменяя код, например, исправляя какие-нибудь баги, было ясно в какие пункты требований необходимо внести изменения и дополнения.Принципиально никак. Можно только подставлять костыли то там, то здесь.

Попробую объяснить свою мысль. Я всегда говорю, что программирование это процесс формализации концепций предметной области. Требования это описание концепций на неформальном, бытовом языке. Программист должен преобразовать неформальное описание в формальный текст программы, который верифицируется абсолютным исполнителем, т.е. компьютером.
И здесь мы натыкаемся на вечное противоречие между неформальным и формальным, которое постоянно хотят запечатать серебряными пулями. Ведь с требованиями работают живые люди, не компьютеры. Если вы выразите требования формально, да так, что можно автоматически отслеживать их соответствие коду, то программист станет не нужен. В общем-то, это и есть работа программиста.

Можно только фрагментарно, вручную, частным образом протаскивать формальные элементы на концептуальный уровень. Конкретные решения тут уже перечислили, но это всё равно костыли, не снимающие главного противоречия между предметной областью и формальным компьютерным исполнителем.