С удивлением узнал разницу между всякими "X-based Y" и "X-driven Y":
-- если это X-based Y, то артефакт X практики Y относится к обеспечивающей системе, и он просто помогает разобраться в целевой системе
-- если это X-driven Y, то артефакт X практики Y и сам по себе артефакт одного из ранних состояний целевой системы, из которой потом непосредственно выводятся следующие по ходу жизненного цикла артефакты целевой системы.
Так, тест-бейст -- это где-то рядом с разработкой чего-то есть её тесты, которые очень-очень важны при этой разработке. А если тест-дривн, то главным разрабатываемым артефактом, развитие которого является развитием проекта в целом, а не важной деталькой "сбоку" являются именно тесты, а остальное просто "выводится" из этих тестов. В этом плане model-based systems engineering -- это болтающиеся рядом с разработкой (текстовыми требованиями и т.д.) модели. Если бы начинали и заканчивали моделями, то было бы model-driven. То же относится к value-, domain- и т.д.
Конечно, это только-только устаканиваться начало, но я уже в паре мест такие замечания встречал. Вот, например, замечание Robert Halligan (
http://www.ppi-int.com/newsletter/SyEN-046.php, по ссылке целый ряд определений разных model-based и model-driven): As can be seen from the definitions, a purposeful distinction can be made between model-based and model-driven, although, in practice, the terms are sometimes used interchangeably. The distinction is:
Model-based = The model is an important aid but is not the artifact from which downstream development is primarily conducted;
Model-driven = The model is the artifact from which downstream development is primarily conducted.
This is a useful distinction.
Век живи, век учись...