Это интересный вопрос (я проголосовал за него), я ожидаю, что вы получите как минимум столько же мнений, сколько и ответов. Вот мой вклад:
Что вы хотите изобразить на своих диаграммах? В ОО один из ответов на этот вопрос может заключаться в рассмотрении диаграмм классов, состояний (или атрибутов, если хотите) и методов. Итак, очевидно, что я бы предположил, что диаграммы классов не подходят для начала, поскольку функции не имеют состояния и, как правило, реализуют одну функцию (также известную как метод). Может ли какая-либо из других диаграмм UML лучшая отправная точка для вашего размышления? Ответ, вероятно, да, но вам нужно подумать о том, что вы хотите показать, и самому найти эту отправную точку.
После того, как вы написали (подсистему) на функциональном языке, у вас есть (UML) компонент для представления на стандартных типах диаграмм, но, возможно, это будет для вас слишком высокоуровневым и абстрактным.
Когда я пишу функциональные программы, что, я признаю, не так уж много, я стараюсь документировать функции, как если бы я документировал математические функции (я работаю в области научных вычислений, много математики возится, так что для меня это вполне естественно). Для каждой функции я пишу:
an ID;
иногда описание;
спецификация домена;
спецификация ко-домена;
утверждение правила, то есть операция, которую выполняет функция;
иногда я также пишу постусловия, хотя они обычно адекватно определяются совмещением домена и правилом.
Для этого я использую LaTeX, он хорош для математической записи, но подойдет любой другой достаточно гибкий текст или текстовый процессор. Что касается диаграмм, то не так уж и много. Но это, вероятно, отражение примитивного состояния дизайна систем, которые я программирую функционально. Большая часть моих вычислений выполняется на массивах чисел с плавающей запятой, поэтому большинство моих функций очень легко составить ad-hoc, а структурирование системы очень нечеткое. Я представляю себе диаграмму, которая показывает функции как узлы и входы / выходы как края между узлами - в моем случае в большинстве случаев между каждой парой узлов были бы края. Не уверен, что рисование такой диаграммы мне вообще поможет.
Кажется, я склоняюсь к тому, чтобы сказать вам, что UML не является разумным способом моделирования функциональных систем. Является ли это обычным явлением, ТАК нам скажет.
person
High Performance Mark
schedule
05.01.2010