Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Category:

Контрактное программирование, бизнес-моделирование и маскировка редактора онтологий

Объект объекту -- клиент поставщику: http://en.wikipedia.org/wiki/Design_by_contract

Это все про коллаборацию. Фраза из википедийной статьи: "процесс, в котором несколько объектов (людей или софтверных компонент, например) взаимодействуют, чтобы достичь цели, называется сотрудничеством" (http://en.wikipedia.org/wiki/Collaboration). Далее говорится, что в отличие от defence programming, в котором за правильность переданной ему информации отвечает поставщик (а поставщик, разобравшись в неверности его вызова, просто сообщает клиенту о том, что он не справился -- и все равно клиенту нужно что-то делать), в контрактном программировании именно клиент должен обеспечивать выполнение условий поставщика.

Упоминание контрактного дизайна/контрактного программирования я встретил, когда читал интервью с Steve Hunter, автором EA WebModeler (репозиторий бизнес-моделей на смоллтоке -- типа отечественных ОргМастер или БизнесСтудио) -- http://weeklysqueak.wordpress.com/2007/03/13/minding-your-business-with-smalltalk-part-2-of-4/. Это упоминание прошло в том контексте, что в сервис-ориентированном подходе для каждого сервиса (и даже не только веб-сервиса, но и бизнес-сервиса) нужно явно указывать предусловие, инвариант (утверждения) и ограничения.

Написанный на сквике бизнес-моделлер EA WebModeler (http://www.agilense.com/p_overview.html) использует терминологию Enterprise Architecture. Уникальность этого бизнес моделлера даже не в том, что у него веб-интерфейс, и работать с ним можно через браузер. Уникальность -- в использовании технологии метамоделирования, что позволяет изменять моделер на лету, без кодирования. Организации и консалтеры по Enterprise Architechture имеют возможность быстро сооружать их собственные метамодели, поддерживающие их особые методологии, или грузить стандартные метамодели и использовать стандартные методологии.

Далее на полную катушку используются динамические возможности:
EA WebModeler's server capability is unique providing calculation, programming, event-action, and integration capability typically absent from modeling tool centric solutions. For example, users could define custom calculation formulas to measure risk, performance; cost other items of interest to the business. Users can register interest in an event, for example the modification of a certain type of data, and be automatically notified when that data changes. The combination of the server features of EA WebModeler and user interface capabilities are essential to implementing an automated governance process.
Очень интересно было почитать про то, что не Захманом единым теперь живет Enterprise Architechture и мне можно спокойно возвращать слову "архитектура" прежнее значение -- предприятие может теперь иметь архитектуру не только по framework (определяет типы, части и их взаимодействие) им.Захмана: бывает метамодель, которая необязательно взята у Захмана, например фирма поставляет референсный фреймворк-метамодель, которую можно прямо сразу пускать в дело (http://www.agilense.com/documents/agilense_frameworks.doc). А уж сама архитектура рассказывает о конкретных выборах, которые были сделаны в рамках метамодели-фреймворка.
* * *
На мой взгляд, в этих моделлерах продается языковая среда для описания предприятий, только сам язык не описывается (у Роллс-Ройса мощность мотора достаточная, как принято писать в спецификациях), а расхваливается система его поддержки. Ну-ну. Хорошо, что в данном конкретном случае говорится о том, что язык в принципе расширяем -- но расширение неизвестного языка мало что дает. Например, совершенно непонятно, можно ли все то же самое описать на OWL -- и не продается ли это коллаборативный редактор онтологий общего вида плюс набор затравочных онтологий управленческого консалтинга ("референсные фреймворки")?
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments