24 января 2011 · Комментарий

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

А задача модуляризации софта включает (может включать) как подзадачу модуляризацию онтологий :). Я уточнил что может потому как такая задача не всегда ставится явно, а зря. Вот Вы недавно писали, что главное - это данные, а код - вокруг данных. Я очень даже согласен с такой позицией. Т.е. грамотный архитектор (проектировщик в большом) смотрит на данные и их потоки (и запасы), а от свойств данных/потоков/запасов уже зависит архитектура системы, причем не только софтовая, но и хардовая, а также административная/операторская часть. Т.е. если при разработке софта (хардово-софтово- и даже human- комплекса) центрироваться на данные, то тут мы уже чудесным образом оказываемся в области онтологии. Потому как схема БД - это уже онтология, правда уровня дизайна (проектирования в малом), а на уровне архитектуры схема БД отражает онтологию. Таким образом при декомпозиции архитектуры (в данном случае софта), нам нужно сделать декомпозицию онтологии, желательно с самого начала. Ибо если у нас онтология не декомпозирована, то и схема БД (уровень дизайна), и код вокруг схемы будет неизбежно сложным и запутанным. Тем не менее, конечно декомпозиция софта сильно сложнее декомпозиции онтологий, в силу того, что размеры софта просто огромны. Однако, на мой взгляд один из важнейших аспектов - это как раз декомпозиция онтологии, явно или неявно лежащей в основе предметной области, обслуживаемой сиим софтом. Ну и тут видно родство с декомпозицией метода. Второй аспект родства состоит, в том, что синтез метода из модулей согласно целям лежит близко к генеративному программированию, можно даже сказать - к декларативному - ибо декларируются цели, а под них ищется композиция модулей. Т.е, если задумываться о программном порождении метода (не факт, что это оправдано на практике, но все же), то тут мы уже вступаем в сферу декларативного программирования и/или тех или иных логик. Хотя учитывая популярность всяких бизнес-рулез и прочих BPM, то "программисткое" рассмотрение порождения методов вполне оправдано, ведь хочется по методу генерить бизнес-рулезы, которые будут поддерживать его исполнение, и проч.

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