30 марта 2009 · Комментарий

Без заголовка

Достаточно поглядеть на разницу между российскими и многими (не всеми, конечно) западными предприятиями. У меня подозрения, что сказки о западных предприятиях несколько преувеличены. По крайней мере у большинства корпораций, с которыми я имел дело, внутри тоже бардак, хотя и совсем другой по характеру. А всё идёт от мотивации. В Европе её ещё меньше. парсинг текстов на (возможно, псевдо)естественном языке Практически вся документация написана на псевдоестественном языке. Просто потому что формализация нужна даже тем, кто пишет. Хотя, в некоторых образцах находил по четыре нацепленных придаточных и вновьизобретённые слова, не встречающиеся в словаре. хотя подозреваю, что в ad hoc структуру для каждого отдельного проекта Вот пример одного из атрибутов требования. Вытаскивалось из текстового описания модулем на Perl. Причём ошибок было меньше десяти процентов в среднем документе и меньше тридцати в самом хреновом.
<!ELEMENT  Req          ( ... 
                          , ConfDocLst
                         ....)             >
<!ELEMENT  ConfDocLst  (ConfDoc)*       >
<!ELEMENT  ConfDoc     (PCDATA)         >
<!ATTLIST  ConfDoc
             type       (   CwUNKNOWN
                          | CwReview 
                          | CwAudit 
                          | CwDocumentation
                          | CwConcept 
                          | CwTest
                          ...
                          )             #REQUIRED
             inPhase    CDATA           #IMPLIED  >
Мне непонятно, как вы придумываете DSL Я нахожу закономерности в имеющемся тексте. Или (что случается гораздо реже) адаптирую "лучшие практики" И как потом обучаете пользователей следовать этой семантике, Обычно "Ни в коем случае не изобретайте ничего нового." А так, процесс работы идёт обычно через инженеров по сбору требований, которые и записывают результаты. Так, с вашими use cases непонятно, почему бы сразу не распечатывать plain text и не пинить те абзацы, где что-то не работает (или распечатывать каждый день новый текст, делая розовый фон для тех абзацев, где проблемы). Разные представления хороши для разных целей. UseCase - это линейное разложение графа. Когда граф представлен графом сразу видно отрубает ли ошибка боковую ветвь или блокирует основную функциональность. Тут есть еще один момент: откуда мы знаем, как шаги use case стали вдруг требованиями. Use Case и есть функциональные требования. На них накладываются нефункциональные. Но это уже другой список, элементы которого привязаны ко всему Use Case или к отдельному шагу.

К записи · К обсуждению