| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Блок-схемы алгоритмов |
| Автор: Курсант 30.6.2015, 13:54 |
| Всем доброго времени суток! Работаю на работе, пишу код на Си, требуется иллюстрировать свой код графически, т.е. составлять блок-схемы алгоритмов. Покопался в ГОСТе, оказалось, что помимо блок-схем программ существуют схемы взаимодействия программ, структуры систем, схемы данных, схемы ресурсов. Это только то, что касается ГОСТ. Кроме того, в некоторых книгах мне встречались объектные диаграммы. Вообще я иногда составляют графические наброски для своих программ, чтобы понять, какие функции с какими интерфейсами мне необходимы, чтобы построить систему, которую можно применить для решения задачи. Но блок-схемы алгоритмов, ИМХО, совершенно не годятся для этой цели. В Интернет некоторые вообще пишут, что составление блок-схем - моветон, если использовать парадигмы структурного программирования, т.е. без использования оператора goto. В этом случае исходный текст программы наилучшим образом описывает алгоритм решения задачи, а комментарии его комментируют Скажите, принято ли в современной практике составлять блок-схемы алгоритмов, есть ли ссылки на книги или нормативные документы, которые предписывают или не рекомендуют рисовать те или иные блок-схемы. Спасибо за внимание. |
| Автор: 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 | ||||
Извините, что Вам неприятно, но я не вру Добавлено @ 08:42
Спасибо за ответ. Да, какой-то стандарт нужен, т.к. схемы должны пойти в техническую документацию на программу. С другой стороны, это очень сильно замедляет разработку. Ну и вообще непонятно, как документировать свой код. Старые советские ГОСТы разработаны "прямым применением стандарта ISO", т.е. слизаны с зарубежных стандартов очень давно. Что сейчас является трендом для документирования ПО лично я не знаю, хотел узнать здесь. Лично я для Си (т.е. без применения ООП) создаю придуманные мной диаграммы системы - рисую таблицы данных, функции, связи в виде стрелок между ними, и интерфейсы (в виде имён переменных над стрелками), которые показывают передачу данных. Начальство сказало, что это "каляка-маляка какая-то". На Си++ пока ничего особо не писал, там, как я понимаю, добавятся объектные диаграммы. То, что от меня требуют сейчас - это, на мой взгляд, излишне. |
| Автор: Курсант 13.7.2015, 16:54 | ||
Да, насчёт блок-схем Вы полностью правы. У Фредерика Брукса в "Мифическом человеко-месяце" эти блок-схемы названы досадным анахронизмом, ну и много других эпитетов, с которыми я согласен. Мне нужно было для руководства ссылку на авторитетных разработчиков, что блок-схемы не нужны, чтобы отстали. |