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

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

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

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

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

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

Ваше здоровье


person incidentnormal    schedule 06.01.2011    source источник


Ответы (2)


В 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

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

person S.Lott    schedule 06.01.2011

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

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

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

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

Мне очень помогла серия статей Джейкоба Каплана-Мосса Writing Great Documentation.

person Stefan Scherfke    schedule 06.11.2016