Разработка технической документации и технические писатели Технические писатели и разработка технической документации технические писатели в Телеграм 

 obmen_soobsheniyami.png Чат для технических писателей 
 Зарегистрируйтесь
Страницы: 1
RSS
Описание алгоритма работы программы (компонента). Как правильно?, Обсуждаем как правильно написать алгоритм работы программы или программного компонента
 
Коллеги, давайте обсудим процесс описания алгоритма работы программы. По какой методике (ГОСТам) вы это делаете? Как делают другие .Используете ли схемы?   Выкладываем примеры описания. Обсуждаем, советуем, спрашиваем!
 
Есть ГОСТ 19.002-80 ЕСПД. Схемы алгоритмов и программ. Правила выполнения, и ГОСТ 19.003-80 ЕСПД. Схемы алгоритмов и программ. Обозначения условные графические , ГОСТ 19.005-85 ЕСПД. Р-схемы алгоритмов и программ и РД 50-34.698-90 Автоматизированные системы. Требования к содержанию документов. Всё это устарело и каменный век. Для современных технологий программирования мало применимо. На западе используются UML-схемы и другие средства. Стандарт ISO/IEC/IEEE 15289:2011 Systems and software engineering — Content of life-cycle information products (documentation) перечисляет 87 видов документации, используемой на всех этапах жизненного цикла, но документов типа "Схема алгоритма" или "Описание алгоритма" там нет.
 
Уважаемые форумчане!

Я автор программы «Фабула», редактора упорядоченных блок-схем.

Программа позволяет создавать блок-схемы (с не ГОСТовским набором блоков), описывающие порядок действий, алгоритмы и работает под управлением ОС Win XP, 7, 8.

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

Программа позволяет описывать действия, узлы принятия решения, варианты использования, параллельные процессы, интервалы контрольных сроков, ввод-вывод и т. п.

Структура схемы позволяет избегать пересечения линий.

Программа автоматически следит за расположением блоков относительно друг друга. Техническому писателю остаётся только писать.  

Поддерживается разбивка схемы на части, для наиболее удобного их размещения при печати.

Для практической работы с документами, программа экспортирует схему в файл изображения (или в буфер обмена) в формате PNG.  

Страница для скачивания программы и демо роликов здесь.

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

Примеры схем:

Вот здесь Блок-схема 01. «Подгонка под шаблон документа».


А вот так она выглядит в программе «Фабула»:


Вот ещё пример описания части программы:




P.S.
Методика пока не наработана : (

Буду благодарен за критические замечания и сообщения об ошибках.

Буду рад, если программа кому-либо поможет в профессиональной деятельности.


P.P.S.
Программа бесплатна : )

P.P.P.S
Похоже после загрузки изменилось разрешение картинок : (
 
А мне нравится BPMN. Подходит для описания любого уровня, можно использовать подпроцессы, заказчикам понятна и т.д. Тем более, что есть куча редакторов, имеющих данную нотацию (Aris, Visio, yEd и т.д.).
 
Изменено: H&M User - 01.09.2015 17:41:20
 
Цитата
H&M User написал:
А мне нравится BPMN.
 
Не могли бы Вы представить большую (реально много блоков и переходов) BPMN схему?
Очень хочется : ) отрисовать её в своей программе и сравнить.  
 
Цитата
Ильченко Эдуард написал:
Не могли бы Вы представить большую (реально много блоков и переходов) BPMN схему?
Очень хочется : ) отрисовать её в своей программе и сравнить.
Больших схем нет, для упрощения разбиваю на модули. Примерно так:
 
 
Цитата
H&M User написал:
Цитата
Больших схем нет, для упрощения разбиваю на модули. Примерно так:
Большое спасибо!
 
Цитата
H&M User написал:
Больших схем нет, для упрощения разбиваю на модули.
К сожалению, после скачивания видна только верхняя треть картинки : (  
 
Цитата
Ильченко Эдуард написал:
К сожалению, после скачивания видна только верхняя треть картинки : (
Ничего страшного, и так видно при увеличении переходы и вызовы. Главное прикинуть, как это будет в вашей программе, полное соответствие схем необязательно.
 
Цитата
H&M User написал:
Главное прикинуть, как это будет в вашей программе, полное соответствие схем необязательно.
Вот схема, сделанная на основании верхней левой BPMN схемы.
Она не полная, поскольку на BPMN схеме отсутствует важная информация о способе выбора маршрута после операторов ветвления. На втором рисунке расписаны эти места.

Все точки выхода собраны в одну.
Изменено: Ильченко Эдуард - 04.09.2015 12:13:23
 
Цитата
Ильченко Эдуард написал:
Она не полная, поскольку на BPMN схеме отсутствует важная информация о способе выбора маршрута после операторов ветвления. На втором рисунке расписаны эти места.
Для наглядности текстовые описания блоков ветвления отсутствуют, однако это нисколько не мешает реализовывать алгоритм в виде схемы BPMN для построения рабочего процесса.
В BPMN сам блок ветвления направляет процесс по исходящим ветвям, так как цели ветвления заданы. Например, блок ветвления в нашей системе может выглядеть так:

Т.е. если переменная Block3_Condition примет значение 1, то пойдет по первой ветке, 2 - по второй. Если в поле Transition ввести текст, то он будет отображен на ветви в виде подсказки.
Изменено: H&M User - 04.09.2015 14:40:03
 
Эдуард, скажите, а стрелки направления потока отображаются только при возврате/отличии от основного потока или есть возможность отображать всегда?
 
Цитата
H&M User написал:
Эдуард, скажите, а стрелки направления потока отображаются только при возврате/отличии от основного потока или есть возможность отображать всегда
В языке ДРАКОН нормальное течение потока вниз и вправо. При этом стрелки принципиально отсутствуют. Автор языка, Владимир Паронджанов, утверждает, что таким образом улучшается восприятие схемы. Отсутствует избыточный шум. Я с этим утверждением согласен (хотя поначалу было непривычно). Стрелка вниз присутствует только у параллельных процессов.

Программа Фабула обходится со схемами не так строго, как этого требует язык ДРАКОН, поэтому я говорю об упорядоченных блок-схемах.

О достоинствах языка ДРАКОН хорошо написано здесь.
Недостатки тоже есть, но о них я умолчу : ), хочется услышать стороннее свежее мнение.
 
Вот здесь ссылка на пример сравнения UML и ДРАКОН. С выводом: ДРАКОН (упорядоченные блок-схемы) позволяет избегать ошибок.
 
Да, все это здорово, но, как я понимаю - схемы не исполняемые? Или имеется возможность их трансляции в какой-нибудь промежуточный код или скрипт? Это было бы огромным плюсом и скрасило все недостатки.
Изменено: H&M User - 08.09.2015 10:17:34
 
Цитата
H&M User написал:
Или имеется возможность их трансляции в какой-нибудь промежуточный код или скрипт? Это было бы огромным плюсом и скрасило все недостатки.
Трансляция планируется. Сейчас обдумываю как это сделать.
Буду благодарен, если подскажете на каких языках (или для каких систем) актуален упомянутый Вами промежуточный код или скрипт.

Сейчас, мне доступен для работы С++ и IEC'овский ST. Возможно ещё 1С и python.
 
Так как наша платформа реализована с использованием .Net, то используется VB или C#.
Если для Вас будет доступен Python, то это будет просто великолепно! В свое время, с появлением методов .close(), .throw() и .send(), стала возможной реализация концепции сопрограммирования (основной Ваш код может быть на одном языке, а сопрограммы на любом!) и полноценного Data Flow Programming (в случае с Pyton'ом - передача потоков управления и кооперативная многозадачность для реализации параллельных потоков).
Если интересно, для начала можно почитать:
https://xakep.ru/2014/10/06/generatora-iteratory-python/
http://habrahabr.ru/post/132554/
Изменено: H&M User - 09.09.2015 11:33:03
 
Цитата
Ильченко Эдуард написал:
Очень хочется : ) отрисовать её в своей программе и сравнить.
Вот еще схема, с обозначением всех маршрутов ветвления и условий, одним конечным событием и без операторов слияния потоков.
 
Изменено: H&M User - 09.09.2015 12:19:57
 
Цитата
H&M User написал:
Если интересно, для начала можно почитать:
https://xakep.ru/2014/10/06/generatora-iteratory-python/
http://habrahabr.ru/post/132554/
Спасибо!
Страницы: 1
Читают тему