C UML знаком, но на практике нам не удаётся держать модель и код в
синхронизированном состоянии, поэтому мы UML-ем почти не пользуемся. В
этом плане мне ближе экстремальное программирование.

Хм... Together обладает двунаправленой
синхронизацией - меняешь код - тут же
меняется диграмма, и наоборот. Или о
чем-то другом  идет речь?

Не знаю, может ECO чем-то лучше, но держать модель синхронной с реализацией на Java у нас тоже выходит очень накладно. Мы и Together пробовали, и несколько других продуктов. Всегда как-то все сводится к выбору между "моделируй до последней маленькой детальки и используй автоматическую синхронизацию" и "остановись на компонентах и синхронизируй вручную". Пока последнее выходит выгоднее.

При чем, в Together/J (да и в других тулзах) при изменении кода действительно меняются диаграммы, но это только диаграммы классов и/или sequence. Остальные приходится осмысленно менять вручную, а если этого не делать, то модель можно через некоторое время выбросить - в use cases описано одно, в компонентах, activity и state - другое, а классы/sequence показывают что-то совсем новое. Если потом сгенерировать доку, но становится ничерта непонятно.

Поэтому мы пока держим яблоки и апельсины отдельно - модель до классов/sequence даже не доходит. Для полноты картины проще потом (по завершении проекта) симпортировать готовый код в модель и связать с остальными частями модели (и если надо, выбросить все классы за раз и симпортировать еще раз), чем пытаться их держать синхронными.

Роман

Ответить