Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Categories:

Traceability и mapping

Две разные концепции -- traceability и mapping, которые я был раньше склонен переводить одинаково как "соотнесение", а меня все время поправляли. ОК, поправлюсь -- и расскажу тут, как я их теперь отличаю.

Traceability -- это прослеживаемость. Когда-то я пытался найти дырку в одной из операционных систем OS/360. И один раз даже почти нашел! Но еще через несколько команд я обнаружил переход по вычисляемому адресу, и комментарий к этому переходу "...and Mickey Mouse!". Моё "прослеживание" было явно и преднамеренно оборвано, хотя это вовсе не означало отсутствие какого-то пути в этом месте. Путь был определен некоей моделью, которой мне намеренно не показали. И весь путь -- это ниточка, трасса, одномерное представление с единственным смыслом "есть связь" (хотя эту связь, конечно, можно типизировать, но сам смысл этого типа никакого отношения к сути дела "прослеживаемости" не имеет).

Mapping -- это отображение, морфизм. Что-то (например, диаметр) мэппится к чему-то (например, радиусу) посредством какой-то функции. Функции (требования) системы мэппятся к ее составляющим частям-подсистемам-элементам посредством задания модели, а не "непосредственно". Тем самым требования (функции) не могут быть оттрассированы к элементам системы, но могут быть отмэплены. Может быть составлена модель, каким образом элементы системы в их взаимодействии выдают функции системы. Мэппинг функций/требований к конструкции/элементам системы -- это и есть модель системы.

Поэтому моделер и мэппер -- это у меня потихоньку начинается склеиваться в сознании.

Ежели я хочу отмэпить одну теорию на другую, я должен сделать какую-то модель, их связывающую, т.е. найти общий более богатый (может, и более бедный по числу элементов -- но зато богато сочетаемый) набор понятий, в терминах которых я смогу выразить одну систему через другую. У мэппера три окошка: две модели разных предметных областей по краям и одна объединяющая их модель по центру. Это ни разу не трассировка (хотя, ежели брать самые продвинутые работы, в которых "трасса" -- это довольно богатый список отношений, типа http://oa.upm.es/2557/2/ANGELINA_ESPINOZA_LIMON.pdf -- то уже видно, что люди к такому пониманию приближаются. Но всё одно там ограниченный определенными типами отношений язык!). Это моделирование, предполагающее не просто тупые "отношения связи", но и выполняющиеся какие-то между ними соотношения (аксиомы). Это программирование, хотя часто это декларативное программирование, и поэтому распознать его труднее.

Поэтому нужна не столько traceability methodology, как предполагается в работе по ссылке, но более общий случай -- mapping methodology. Проблема в том, что еще более общий случай -- это modeling methodology. И все трудности modelling наследуются к mapping и уже оттуда -- к traceability.

Это означает, что в универсальном моделере должно быть не только одно окошко для создаваемой модели, и другое окошко -- на стене, чтобы наблюдать моделируемую систему. Нужно предусмотреть еще и конфигурацию для мэппинга: окошко для создаваемой модели, окошко на стене, чтобы не терять связь с реальностью (работаем в инфологии, а не в даталогии), и еще пара окошек для третьих моделей, которые мы нашей моделью мэппим друг ко другу. T-shirts Алана Кея, языковый каскад Voelter, correspondence rules из ISO 42010. Мэппинг в общем случае -- это программа, а софт мэппинга -- это IDE для программирования сразу в трех языках: исходных сущностей, конечных сущностей, самого мэппинга.
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments