Как документировать симуляции с параллельными процессами? - PullRequest
4 голосов
/ 06 января 2011

Я использую модуль SimPy для Python, который выполняет моделирование дискретных событий. Теперь, код стал довольно большим, и существует довольно много параллельных процессов, которые взаимодействуют друг с другом.

Как лучше всего показать это с точки зрения документирования? Структуры иерархии классов неадекватно фиксируют взаимодействия между процессами, и почти все программное обеспечение для автоматической генерации застревает на том факте, что весь код эффективно наследуется от модуля SimPy, поэтому для каждого класса создается полная документация SimPy:

Я полагаю, что что-то вроде UML могло бы быть полезным, но я не слишком разбираюсь в этом. Нужно было бы захватить:

  • Процессы
  • События
  • Очереди (включая процессы, ожидающие ресурсов ...:)
  • Ресурсы (например, массивы, которые могут быть заполнены / депопулированы и т. Д. И имеют определенную емкость)

Так в принципе, какие-нибудь аккуратные инструменты документирования кода симуляции?

Приветствия

Ответы [ 2 ]

2 голосов
/ 06 января 2011

UML имеет диаграмму состояния и диаграммы активности, а также диаграммы последовательности. Любой из них будет уместным. Обычно требуется комбинация диаграмм.

Одна диаграмма состояний для каждого класса объектов. http://en.wikipedia.org/wiki/State_diagram

Диаграммы действий или диаграммы последовательности, чтобы показать конкретные взаимодействия или взаимодействия между объектами. http://www.agilemodeling.com/artifacts/activityDiagram.htm http://www.ibm.com/developerworks/rational/library/3101.html

Диаграмма классов также подходит для отображения статических характеристик классов и их отношений. http://en.wikipedia.org/wiki/Class_diagram

«Все дело» часто трудно документировать.

0 голосов
/ 06 ноября 2016

Используйте комбинацию диаграмм и самописной прозы.

Имхо, вам не нужно использовать UML. Если что-то не-UML передает ваше сообщение более понятным / простым способом, используйте все, что вам нравится.

Также напишите краткое изложение всех основных концепций, чтобы читатель получил общее представление о том, что собой представляет система и каковы ее основные компоненты.

Затем напишите более подробные статьи о каждом компоненте и перекрестные ссылки на другие статьи.

Серия статей Написание великой документации Джейкобом Каплан-Моссом мне очень помогла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...