Аннотация:
рамках традиционной программной инженерии требования и код развиваются в двух параллельных мирах. Обычная точка зрения на программную инженерию рассматривает требования и исходный код как разные артефакты, за которые несут ответственность разные люди. Этот подход, однако, влечет накладные расходы на коммуникацию и порождает проблему поддержания консистентности различных артефактов в случае необходимости внесения изменений в один из них. Изменение, внесенное в один из упомянутых артефактов, необходимо синхронизировать с остальными артефактами. В определенный момент ситуация неизбежно выходит из-под контроля: например, в случае обнаружения критического дефекта во время эксплуатации разработчики без промедления приступают к исправлению дефекта, поскольку в такой ситуации нет времени ждать, пока системные аналитики и архитекторы обновят свои документы, позволив разработчикам внести нужные изменения в код. Проблема частично решается сложными системами управления версиями, которые дороги в обслуживании и требуют соответствующей квалификации обслуживающего технического персонала. Возможно ли объединить миры требований и кода? Такое объединение упростило бы изменение и повторное использование программного обеспечения. Целесообразность применения нового подхода нуждается в изучении. В представленном исследовании рассмотрен классический пример из литературы в области проектирования требований. Для спецификации предметной области, равно как и конечного программного решения, использована одна и та же нотация — язык программирования. Данная работа содержит описание подхода, а также оценку его преимуществ, возможных ограничений и масштабируемости.