17 April 2013

Туннельное моделирование v0.1 — псевдокод

Programming
Recovery mode
Доброго времени чтения, уважаемые участники habrahabr.ru

Туннельное моделирование — способ моделирования, основанный на использовании сочетания уровня абстрактности (девятиуровневом расширении модели взаимодействия  открытых систем) и цикла Деминга.

В предыдущем сообщении habrahabr.ru/post/176391 была представлена коллекция графических примитивов для использования при моделировании. Пример использования графической нотации приводится в статье Туннельное моделирование Единого знания. В этой статье обсудим возможность применения символов клавиатуры стандартного ПК для построения таких моделей.

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

На начало 2013 года модель состоит из четырех фаз и девяти уровней.

Поразительным образом количество возможных скобок на клавиатуре — четыре пары (и соответствует количеству мастей в картах).

Для пар скобок выбрано следующее назначение:
Элемент цикла
Деминга
пара скобок Причина
Act [...] Типовое обозначение для необязательных параметров
Plan {...} Соответствие данному направлению элемента структуры
Do <...> Как обозначение для тегов и обязательных параметров
Check (...) Использование для параметров функций, которые
получают значение к моменту вызова


Примерно такие совпадения по количеству символов нашлись для уровней абстрактности

Обозначим символы для уровней:
Уровень абстрактности Символ Причина
Прикладной ? соответствие функциональному уровню и проблемам классификации
Представительский @ соответствие контексту и интерфейсам
Сеансовый % возможность сравнения изменений
Транспортный ^ связано с указателями Паскаля
Преобразующий ! как отображение важности действия
Сетевой & AND, как символ взаимодействия
Системный * напоминает о целостности системы
Канальный $ напоминает о накоплении, как основной задаче на данном уровне
Физический # как символ, менее всего подходящий другим уровням


Для использования в программах и при описании символы уровней абстрактности и парных скобок могут использоваться произвольно в соответствии с традициями, по этому значащими при описании модели должны быть элементы, выделенные только специальными последовательностями — парными спецскобками:
— открывающими, состоящими из символа соответствующей открывающей скобки и следующим за ним символа, соответствующего уровню
— закрывающими, состоящими из символа, соответствующего уровню и следующим за ним соответствующей закрывающей скобки

Спецскобки модели должны отделяться от другого текста пробельными символами. А, возможно, каждая спецскобка должна находиться на отдельной строке. Или — за находящейся на отдельной строке открывающей скобкой может находиться название элемента модели.

Тогда для использования внутри модели могут использоваться стандарные скобочные символы. Однако, можно ввести еще одни спецскобки для описания иерархии включения элементов: пара скобок {: ... :}. К ним также применяется правило окружения пробельными символами. Ждут определения своего применения похожие пары скобок: [: ... :], <: ... :>, (: ... :)

Перечень терминов туннельного моделирования версии 0.2:

[ Совершенствование ] { Планирование } < Действие > ( Проверка )
Идея
Логический
[ Необходимость ] { Направленность } < Несуществование > ( Отрицание )
navigation (прослеживание связей, навигация)(1)
association end (полюс ассоциации)(1)
dynamic simulation
(динамическое моделирование)(1)
generalization set name (имя набора
обобщений)(1)
metadata (метаданные)(1)
N-ary association (N-арная
ассоциация)(1)
navigability (возможность навигации)(1)
system
conception (концептуализация
системы)(1)
Бизнес-руководители(2)
Мотивация
(-)(2)
Планировщик(2)
NULL (нуль)(1)
virtual (перекрываемое)(1)
Прикладной
[ Цель ] { Респондент } < Функция > ( Состояние )
actor (действующее лицо)(1)
namespace (пространство имен)(1)
swimlane (плавательная дорожка)(1)
Люди, организации(2)
abstract operation (абстрактная операция)(1)
application analysis
(анализ приложения)(1)
metaclass (метакласс)(1)
pattern (образец,
паттерн)(1)
use case (вариант использования)(1)
Архитектура
приложений(2)
Список основных бизнес-процессов(2)
Функции,
Процессы(2)
composite state (составное состояние)(1)
enumeration
(перечисление)(1)
ordered (упорядоченный)(1)
state
(состояние)(1)
Представительский
[ Точка зрения ] { Обобщение } < Интерфейс > ( Оценка )
layer (уровень)(1)
Сфера действия (контекст)(2)
abstraction (абстракция)(1)
class (класс)(1)
classification
(классификация)(1)
generalization (обобщение)(1)
model
(модель)(1)
superclass (суперкласс)(1)
abstract class (абстрактный класс)(1)
API(1)
application
programming interface (интерфейс программирования приложений)(1)
boundary class (пограничный класс)(1)
encapsulation
(инкапсуляция)(1)
interface (в java)(1)
user interface
(пользовательский интерфейс)(1)
wrapper
(обертка)(1)
Владелец, менеджер(2)
Сеансовый
[ Критерий ] { Прогноз } < Культура > ( История )
Модель предприятия(2)
rapid prototyping (быстрое прототипирование)(1)
system design
(проектирование системы)(1)
Важнейшие события(2)
Мастер-план
реализации(2)
Мотивация(2)
Перспективы (строки в таблице)(2)
interactive interface (интерактивный интерфейс)(1)
N-tier
architecture (многоуровневая архитектура)(1)
OO development
(объектно-ориентированная разработка)(1)
SQL(1)
system architecture
(архитектура системы)(1)
three-tier architecture (трехуровневая
архитектура)(1)
UML(1)
unified modeling language (унифицированный
язык моделирования)(1)
visibility (видимость)(1)
origin class (исходный класс)(1)
persistent object (постоянный
объект)(1)
UML1(1)
UML2(1)
Транспортный
[ Стратегия ] { Планирование } < Обучение > ( Познание )
architecture (архитектура)(1)
single inheritance (единственное
наследование)(1)
strong typing (жесткая типизация)(1)
weak typing
(слабая типизация)(1)
Бизнес-цели и стратегии(2)
Модель
системы(2)
Работающие бизнес-стратегии(2)
Бизнес-план(2)
derived class (производный класс)(1)
descendant class
(класс-потомок)(1)
enterprise model (модель предприятия)(1)
polymorphism (полиморфизм)(1)
state model (модель состояний)(1)
analysis (анализ)(1)
reverse engineering (инженерный анализ)(1)
Управляющий
[ Сценарий ] { Обеспечение } < Проект > ( Аудит )
activity (деятельность)(1)
control (управление)(1)
forward
engineering (прямое конструирование)(1)
life cycle (жизненный
цикл)(1)
policy method (стратегический метод)(1)
scenario
(сценарий)(1)
waterfall development (водопадная модель
разработки)(1)
Технологическая (физическая) модель(2)
extend (расширение)(1)
iterator (итератор)(1)
programming-in-the-large (программирование крупных
систем)(1)
ИТ-менеджеры и
разработчики(2)
Проектировщик(2)
Технологическая архитектура(2)
class design (проектирование классов)(1)
class diagram (диаграмма
классов)(1)
denormalization (денормализация)(1)
Системный
проект(2)
integration testing (тестирование интеграции)(1)
system testing
(тестирование системы)(1)
Оценивающий
[ Отношение ] { Помощь } < Управление > ( Учет )
composition (композиция)(1)
inheritance
(наследование)(1)
Архитектура интерфейса пользователя(2)
extensibility (расширяемость)(1)
method caching (кэширование
методов)(1)
active object (активный объект)(1)
controller (управляющий
объект)(1)
delegation (делегирование)(1)
lock
(блокировка)(1)
Время, расписания(2)
Бизнес-события(2)
Выравнивающий
[ Роль ] { Организация } < Соревнование > ( Контроль )
Люди(2)
Роли и модели бизнес-правил(2)
dynamic binding (динамическая привязка)(1)
interaction model
(модель взаимодействия)(1)
object-orientation (объектная
ориентированность)(1)
OO(1)
modularity (модульность)(1)
race condition (ситуация гонок)(1)
activity token (маркер деятельности)(1)
unit testing (модульное
тестирование)(1)
Технологический
Практический
[ Компетентность ] { Согласование } < Реализация > ( Результат )
library (библиотека)(1)
Реальные люди, организации(2)
friend(1)
implementation modeling (моделирование реализации)(1)
methodology (методология)(1)
multiple inheritance (множественное
наследование)(1)
peer (равные, одноранговые)(1)
Работающее
предприятие(2)
development (разработка)(1)
implementation
(реализация)(1)
Реализация бизнес-логики(2)
Детали реализации(2)
Сеть, расположение систем(2)
Ответственный
Устойчивый
[ Ответственность ] { Регламент } < Граница > ( Устойчивость )
responsibility (ответственность)(1)
activity diagram (диаграмма деятельности)(1)
development life cycle
(жизненный цикл разработки)(1)
sequence diagram (диаграмма
последовательности)(1)
substate (подсостояние)(1)
thread of control
(поток управления)(1)
final (для класса java)(1)
final (для метода java)(1)
system
boundary (граница системы)(1)
Архитектура безопасности(2)
changeability (изменяемость)(1)
coherence (согласованность,
цельность)(1)
implementation inheritance (наследование в
реализации)(1)
leaf class (листовой класс)(1)
robust
(устойчивость)(1)
Параллельный
[ Процедура ] { Взаимодействие } < Экземпляр > ( Завершение )
partition (раздел)(1)
specialization (конкретизация)(1)
concurrent (параллельный)(1)
direction (направление)(1)
transaction manager (администратор транзакций)(1)
focus of control (фокус управления)(1)
lifeline (линия
жизни)(1)
object (объект)(1)
reification (воплощение)(1)
transient object (временный объект)(1)
Дислокация,
сеть(2)
Работающие программы(2)
automatic transition (автоматический переход)(1)
completion
transition (переход по завершении)(1)
destructor (деструктор)(1)
garbage collection (сборка мусора)(1)
Специальный
[ Требование ] { Поставщик } < Продукция > ( Потребитель )
signature (сигнатура)(1)
subclass (подкласс)(1)
Архитектура
презентации(2)
Разработчик(2)
ancestor class (класс-предок)(1)
concrete class (конкретный
класс)(1)
constructor (конструктор)(1)
fourth-generation language
(язык четвертого поколения)(1)
method resolution (разрешение
методов)(1)
new (оператор создания объектов)(1)
object management
group (группа управления объектами)(1)
OMG(1)
public
(открытая)(1)
server (сервер)(1)
stored procedure (хранимая
процедура)(1)
client (клиент)(1)
Межсетевой
[ Состав ] { Вход } < Процесс > ( Выход )
include (включение)(1)
iterative development (итерационная
разработка)(1)
Ключевые организации(2)
Модель
бизнес-процессов(2)
Программный код(2)
Сеть(2)
Структура
процессов(2)
entry activity (деятельность при входе)(1)
schema (схема)(1)
activation (активация)(1)
batch transformation (пакетное
преобразование)(1)
continuous transformation (непрерывное
преобразование)(1)
development stage (этап разработки)(1)
do
activity (текущая деятельность)(1)
method (метод)(1)
operation
(операция)(1)
service (сервис)(1)
software engineering (разработка
программного обеспечения)(1)
Модель Захмана(2)
Схема
логистики(2)
Функции(2)
exit activity (деятельность при выходе)(1)
view
(представление)(1)
Системный
[ Знание ] { Система } < Альтернатива > ( Использование )
association class (класс ассоциации)(1)
data dictionary (словарь
данных)(1)
object constraint language (объектный язык
ограничений)(1)
OCL (объектный язык ограничений)(1)
shopping-list
operation (операция по списку)(1)
Конструктор, архитектор(2)
Модель
потока работ (workflow)(2)
Описания бизнес-правил(2)
database management system (система управления базой данных)(1)
DBMS (СУБД)(1)
information hiding (сокрытие информации)(1)
package
(пакет)(1)
private (закрытая)(1)
protected (защищенная)(1)
relational dbms (реляционная субд)(1)
system (система)(1)
Логические
модели данных(2)
OO database (объектно-ориентированная база данных)(1)
OO
programming language (объектно-ориентированный язык
программирования)(1)
OO-DBMS (объектно-ориентированная СУБД)(1)
override (подмена или перекрытие)(1)
fire (запустить фактически)(1)
implementation method (метод
реализации)(1)
overloading (перегрузка)(1)
refactoring
(рефакторинг)(1)
state diagram (диаграмма состояний)(1)
Сетевая
архитектура(2)
Канальный
[ Правило ] { Структура } < Субъект > ( Ресурс )
access specifier (спецификатор доступа)(1)
base class (базовый
класс)(1)
condition (условие)(1)
constraint (ограничение)(1)
derived element (производный элемент)(1)
guard condition (сторожевое
условие)(1)
normal form (нормальная форма)(1)
aggregation (агрегация)(1)
assembly (совокупность)(1)
class
model (модель классов)(1)
container class (класс-контейнер)(1)
dictionary (словарь)(1)
framework (каркас)(1)
index (индекс)(1)
link (связь)(1)
procedure-driven control (процедурное
управление)(1)
relational database (реляционная база данных)(1)
subsystem (подсистема)(1)
table (таблица)(1)
use case diagram
(диаграмма вариантов использования)(1)
Модель распределенной
архитектуры(2)
Описание структуры данных(2)
Физическая модель
данных(2)
access modifier (модификатор доступа)(1)
effect (действие)(1)
event-driven control (событийное управление)(1)
reference
(ссылка)(1)
reflection (рефлексия)(1)
this (целевой
объект)(1)
Структуры управления(2)
attribute (атрибут)(1)
bag (мультимножество)(1)
database (база
данных)(1)
member (составляющая класса, в с++)(1)
passive object
(пассивный объект)(1)
qualifier (квалификатор)(1)
submachine
(вложенный конечный автомат)(1)
value
(значение)(1)
Данные(2)
Данные(2)
Физический
[ Сущность ] { Объект } < Сообщение > ( Событие )
_ тестовая строка(1)
Список важных понятий и объектов(2)
domain analysis (анализ предметной области)(1)
extent of a class
(экстент класса)(1)
Концептуальная модель данных(2)
Территориальное
расположение(2)
call-by-value (вызов по значению)(1)
cardinality (кардинальное
число, мощность)(1)
default value (значение по умолчанию)(1)
identifier (идентификатор)(1)
object identity (индивидуальность
объекта)(1)
qualified association (квалифицированная ассоциация)(1)
signal (сигнал)(1)
value-based identity (индивидуальность, основанная
на значениях)(1)
change event (событие изменения)(1)
event (событие)(1)
nested
state (вложенное состояние)(1)
region (область)(1)
signal event
(событие сигнала)(1)
time event (событие времени)(1)
transition
(переход)(1)
Время(2)
Определение временных привязок(2)
Хаотический
[ Существование ] { Связь } < Способность > ( Случайность )
entity-relationship (ER) model (модель сущность-связь)(1)
ER
(сущность-связь)(1)
association (ассоциация)(1)
call-by-reference (вызов по
ссылке)(1)
foreign key (внешний ключ)(1)
primary key (первичный
ключ)(1)
scope (область действия)(1)
sequence
(последовательность)(1)
ternary association (тернарная
ассоциация)(1)
candidate key (потенциальный ключ)(1)
feature (составляющая)(1)
identity (индивидуальность)(1)
multiplicity (кратность)(1)
object
diagram (диаграмма объектов)(1)
static (данные и методы класса)(1)
transitive closure (транзитивное замыкание)(1)
real-time system (система реального времени)(1)
Пространственный
Пустой
1) UML 2.0. Объектно-ориентированное моделирование и
разработка. 2-е изд. — СПб.: Питер, 2007.
2) Захман — Архитектура и стратегия. «Инь» и «Янь»
информационных технологий предприятия


Мнение автора может не совпадать с Истиной. Для того и публикация, чтобы к Истине приблизиться.

По поводу вопросов — прошу оценить возможность их размещения в соответствующих темах:

По уровням абстрактности — habrahabr.ru/post/176249 (Абстрактность и модель взаимодействия открытых систем)

По циклу Деминга и графическому моделированию — habrahabr.ru/post/176391 (Модель взаимодействия открытых систем, цикл Деминга и Туннельное моделирование)

Для создания графических моделей разработана библиотека для среды MS Visio. Она доступна по адресу palexisru.narod.ru/sisyphus/visio/TunnelElements.zip. Для работы с этой библиотекой рекомендуется использование шаблона SADT. Особенно — рамка шаблона.

Психологической основой для данного подхода является трехмерная шкала Ганса Юргена Айзенка (психотизм, нейротизм, экстраверсия). Это позволяет предположить наличие у человека предрасположенности к такому подходу.

На этом я прощаюсь с участниками habrahabr.ru, как автор идеи туннельного моделирования, и — сразу возвращаюсь, как сторонник данного подхода.

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

Найти информацию пока можно по ключевым словам «туннельное моделирование» в строке поиска.

Жду вопросов, опровержений, предложений, задач для проверки подхода.
Спасибо.

Литература:
Рамбо, М. Блаха UML 2.0. Объектно-ориентированное моделирование и разработка 2-е изд.-СПб: Питер, 2007
Данилин А., Слюсаренко А. Архитектура и стратегия. «Инь» и «Янь» информационных технологий предприятия: Интернет-Ун-т Информ. Технологий, 2005

UPD: связанные статьи

Абстрактность и модель взаимодействия открытых систем habrahabr.ru/post/176249
Модель взаимодействия открытых систем, цикл Деминга и Туннельное моделирование habrahabr.ru/post/176391

UPD2: 31/05/2014 — список терминов обновлен в соответствии с девятнадцатиуровневой моделью взаимосвязи открытых систем habrahabr.ru/post/203770
Tags:туннельное моделированиенотация
Hubs: Programming
-5
3.8k 8
Comments 37
Основы HTML и CSS
November 30, 2020FreeНетология
Профессия iOS-разработчик
November 30, 202075,000 ₽SkillFactory
Frontend-разработчик с нуля
November 30, 202077,940 ₽Нетология
Курс по аналитике данных
November 30, 202053,500 ₽SkillFactory
SMM-менеджер
November 30, 202059,998 ₽GeekBrains