Владислав Жаринов писал(а):
По программистам - описанная Вами ситуация оттого, что упорно пытаются выбросить из триады аналитика. Именно он должен иметь дело с моделями, адекватными смыслу оргсистемы, и формировать "алгоритмически расшифрованные" модели из них (но отнюдь не "бизнес-процессы"). Программист же должен не "на первых порах понимать пооследовательность работ", а воплощать корректные алгоритмы каждой ТО из конкретного ТП на конкретном РМ, которую по техзаданию надо автоматизировать "в данный подход"... ессно, эти алгоритмы аналитик и формирует... Ему и гарантоспособно запрограммировать алгоритм для заданной платформы работы хватит... а если он ещё будет вникать в весь техпроцесс...
М.б. где-то и пытаются выкинуть куда-то аналитиков, но в реальной жизни постоянно встречаешься с обратной картиной - где бы найти такого хорошего аналитика. Особенная беда со сторонними бизнес-консультантами, аудиторами и пр. Конечно, и от них частенько получаешь полезную информацию, и опытом поделятся, не без этого. Но я не помню ни одного случая, чтобы какой-то аналитик предоставил подробнейшую модель, от и до. В жизни ещё не довелось наблюдать ни одного полноценного технического задания. Всегда приходится самому досконально разбираться со всеми цепочками процессов и т.д., и, главное, вытряхивать всю душу из конечных исполнителей на местах, до последней крошки. Затем начинается обратный процесс - исполнители из нас, как разработчиков, вытряхивают все потроха под час опытной (и не только) эксплуатации - какого "оно не так как надо ?", и в это время, обычно, аналитики незаметно убегают в сторонку, на всякий случай, прикрывшись "бизнес-схемами"
Пока только мечтаешь о "конструкторской разработке": тебе принесли проработанный Р-чертёж от "аналитика", ты его вогнал в Р-программу, стандартными средствами верифицировал, выполнил тестирование, сдал работу. Когда к тебе прибегают толпы зависших Р-исполнителей "набить морду", то спокойно достаёшь "из широкой штанины" папку с копиями Р-чертежей, со всеми печатями и подписями, и гневный поток исполнения, со множеством рабочих точек, с ножами и кастетами, выполняют безусловный переход к вершине-аналитику...
Но пока это мечты...
Владислав Жаринов писал(а):
Так именно в том суть, что в смысле описываемого нет "плавного перехода" - есть качественный скачок от множественности РТ на схемах модели к их единственности на каждой схеме... И именно потому как "промежуточное звено" требуется тип схем с расщеплениями/слияниями РТ. А раскрытие выполняется качественно иначе - через ту самую "алгорасшифровку"... и это уже другой тип схем... А в основе-то всего совершенно иная схема - тот самый граф ПМ...
Да я не отрицаю сущности "сетевой график работ" (диаграмма Ганта, вобщем, схема процессов) со всеми привязанными необходимыми ПМ -> "промежуточная схема со множеством РТ" -> "детальная расшифровка". Это и есть "качественный скачок", а под "плавным переходом" я подразумеваю то, что в случае Р-схем всё это можно задать через один и тот же вид схем, т.е. тип схем будет разный, но внешний вид один и тот же. Псевдо-примеры были выше, в т.ч. и график работ можно задать как в адаптированном специализированном синтаксисе (приводился пример из статьи Вельбицкого, в т.ч. работы можно задать и в вершинах), так и через обычный вид алгоритмических схем, в том же "спец-графике" достаточно добавить названия работ под дугами, можно убрать двойные дуги как резерв времени, оставить периоды в предикатах и их дополнить какими-то ещё данными из ПМ, если нужно. А в рамках "промежуточного звена" я хочу сказать то, что сегодняшнее представление Р-схем весьма специфично, к ним можно подойти как к некоему промежуточному "байт-коду" платформы. Т.е. если какому-то пользователю нужен привычный для него внешний вид графика работ, с большими кружочками и градиентами, то вполне можно схему конвертировать в нужный формат. Аналогично алгоритмические схемы превращаются в блок-схемы, или в ДРАКОН, если кому нужно (правда, непонятно, что делать со множеством рабочих точек...).
И в рамках задания иерархии алгоритмических схем вполне достаточно их единственного вида. К примеру, на самом верхнем уровне можно обобщённо задать дейкстрал, или представить дерево процессов а-ля Эрланг, или зарисовать кольцо обработки сообщений а-ля disruptor (я про этот
disruptor, относительно новый тренд в многопоточном программировании,
здесь описание,
здесь можно найти разбор полётов). Правда, в последних двух случаях м.б. подойдут и какие-то структурные диаграммы, но в любом случае это Р-нотация, которая отлично согласуется со всеми нижними алгоритмическими уровнями. В т.ч. на каком-то уровне иерархии в схемах будут "водится" множество исполнительных точек.
А предполагаю, что Вы хотите также подчеркнуть то, что различный тип схем должен предусматривать и различный синтаксис, и внешний вид тоже, хоть и похожий. Мне нравится Ваш подход, к примеру, выделять через направленность схемы различную сущность: декларативное, вобщем, всё для чтения - горизонтально, "синт-силуэт", для исполнения - вертикально. Отличная идея. Или, например, если взглянуть даже на "слепыш", и там мы заметим узлы сбора/разделения из "мульти-шампура" или имена/адреса с закрашенной верхней частью и т.п. - т.е. мы сразу понимаем, что это обобщённая схема, это не финал. Конечно, это грамотный и взвешенный подход, откровенно говоря, здесь, действительно, есть чему поучиться. Но есть обратная сторона медали. Это решение для тех, кто ещё "не измучен нарзаном". Только в рамках текстовых языков программирования на практике приходится сталкиваться с целом букетом (в моём случае, в разной степени, это Java, C++, Delphi, HTML, JavaScript, SQL (разных диалектов), есть ещё свой скриптовый язык и некоторые DSL, к тому же иногда приходится править проекты на старом досовском FoxPro, которых уже более 20 лет не могут заменить по разным причинам, и к этому ещё намечается, вероятно, и Erlang). А это "головняк" не только из-за самих языков, но и из-за многообразия инструментов под них. А если и ещё возникает потребность работы с графическими схемами - так "получи, фашист, и ещё одну гранату" - вот тебе целый комплект языков, со своими правилами, десятками тезисов, и немалым количеством различных икон, если уж работать "профессионально". Кроме того, что необходимо думать над содержательной частью схемы, т.е. над текстом в иконах, так ещё и не мало мучений в самом процессе построения диаграмм. А если состыковывать различные типы схем, скажем, те же сетевые графики и блок-схемы, то это вообще "небо и земля", в том плане, что разный вид и синтаксис, свои правила и разные инструменты (или разные принципы построения) и т.д. Когда я в первый раз увидел Р-схемы, то сразу же почувствовался глоток альтернативного воздуха, здесь одна нотация, а следовательно, одни правила и инструменты, подходы, наработки и т.д. и т.п. Но и Р-схемы оказались с неслабой ложкой дёгтя - их "лисповая" наглядность, с которой, реально нужно бороться.
Вот такая перспектива визуализации на сегодняшний день, в том числе, и в свете возможного графического программирования.
P.S. В любом случае, ещё раз спасибо за весь конструктивизм, он, действительно, полезный.