Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Блок-схемы алгоритмов


Автор: Курсант 30.6.2015, 13:54
Всем доброго времени суток!

Работаю на работе, пишу код на Си, требуется иллюстрировать свой код графически, т.е. составлять блок-схемы алгоритмов. Покопался в ГОСТе, оказалось, что помимо блок-схем программ существуют схемы взаимодействия программ, структуры систем, схемы данных, схемы ресурсов. Это только то, что касается ГОСТ.
Кроме того, в некоторых книгах мне встречались объектные диаграммы. Вообще я иногда составляют графические наброски для своих программ, чтобы понять, какие функции с какими интерфейсами мне необходимы, чтобы построить систему, которую можно применить для решения задачи. Но блок-схемы алгоритмов, ИМХО, совершенно не годятся для этой цели.
В Интернет некоторые вообще пишут, что составление блок-схем - моветон, если использовать парадигмы структурного программирования, т.е. без использования оператора goto. В этом случае исходный текст программы наилучшим образом описывает алгоритм решения задачи, а комментарии его комментируют smile

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

Автор: tzirechnoy 30.6.2015, 23:04
Нет, эти блок-схемы вообще нафиг никому не нужны. И да, блок-схема -- это вполне конкретный язык, с треугольниками-if и всем таким.

UML кое-кто применяет, но это схема объектной модэли или отношэний данных. Схему алгоритмов в UML запихивать в общем достаточно трудно.

И да, мне UML тожэ не нравится, и лично я считаю написание UML безсмысленной тратой времени.

Добавлено через 44 секунды
И да, по ведению: у меня чёткое ощущение, что про "работаю на работе" ты врёшь. Это, в общем, конечно, оффтопик, но как-то неприятно.

Автор: Guinness 1.7.2015, 08:05
В общем, всё зависит от задачи. Если Вам необходимо это использовать в целях демонстрации, описания работы программы в документации или в обсуждениями с коллегами, то Вам необходимо использовать какие-либо стандарты, будь то ГОСТ или UML. 
Для себя же можно вывести какую-то свою систему обозначений, которая будет удобна Вам. Я так и сделал, но до этого почитав про UML. Чаще всего мной используются диаграмма классов, диаграмма последовательностей или их развитие =).

Автор: Курсант 1.7.2015, 08:34
Цитата(tzirechnoy @ 30.6.2015,  23:04)
И да, по ведению: у меня чёткое ощущение, что про "работаю на работе" ты врёшь. Это, в общем, конечно, оффтопик, но как-то неприятно.

Извините, что Вам неприятно, но я не вру smile Просто работаю я сравнительно недавно, сменил род деятельности со схемотехники на программирование. Осваиваюсь. Я тоже раньше думал, что блок-схемы алгоритмов нужны только преподавателям информатики в школе. Однако новый пришедший начальник сказал, что нужны блок-схемы алгоритмов. С одной стороны он прав, для того чтобы программа стала программным продуктом, она должна быть хорошо документирована и написана в самом обобщённом стиле. С другой стороны для сложной системы одних блок-схем недостаточно. Ну, спасибо за Ваши ответы, приму к сведению smile

Добавлено @ 08:42
Цитата(Guinness @ 1.7.2015,  08:05)
В общем, всё зависит от задачи. Если Вам необходимо это использовать в целях демонстрации, описания работы программы в документации или в обсуждениями с коллегами, то Вам необходимо использовать какие-либо стандарты, будь то ГОСТ или UML. 
Для себя же можно вывести какую-то свою систему обозначений, которая будет удобна Вам. Я так и сделал, но до этого почитав про UML. Чаще всего мной используются диаграмма классов, диаграмма последовательностей или их развитие =).

Спасибо за ответ.

Да, какой-то стандарт нужен, т.к. схемы должны пойти в техническую документацию на программу. С другой стороны, это очень сильно замедляет разработку. Ну и вообще непонятно, как документировать свой код. Старые советские ГОСТы разработаны "прямым применением стандарта ISO", т.е. слизаны с зарубежных стандартов очень давно. Что сейчас является трендом для документирования ПО лично я не знаю, хотел узнать здесь.
Лично я для Си (т.е. без применения ООП) создаю придуманные мной диаграммы системы - рисую таблицы данных, функции, связи в виде стрелок между ними, и интерфейсы (в виде имён переменных над стрелками), которые показывают передачу данных. Начальство сказало, что это "каляка-маляка какая-то". На Си++ пока ничего особо не писал, там, как я понимаю, добавятся объектные диаграммы. То, что от меня требуют сейчас - это, на мой взгляд, излишне.

Автор: Курсант 13.7.2015, 16:54
Цитата(tzirechnoy @ 30.6.2015,  23:04)
Нет, эти блок-схемы вообще нафиг никому не нужны. И да, блок-схема -- это вполне конкретный язык, с треугольниками-if и всем таким.

Да, насчёт блок-схем Вы полностью правы. У Фредерика Брукса в "Мифическом человеко-месяце" эти блок-схемы названы досадным анахронизмом, ну и много других эпитетов, с которыми я согласен. Мне нужно было для руководства ссылку на авторитетных разработчиков, что блок-схемы не нужны, чтобы отстали.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)