Передумови: Мої співробітники та я пишемо статтю для академічного журналу. У ході наших досліджень ми написали програму моделювання на Java. Ми хочемо зробити програму моделювання вільно доступною для використання іншими. Ми вирішили розмістити код у сховищі GitHub. Щоб полегшити користування іншим, ми хочемо написати гарну документацію для нашої програми, зокрема:
- Javadocs для кожного класу та методу
- Як користуватися кодом
- Опис структури високого рівня коду
Моє запитання на високому рівні: Ви можете надати хороший приклад слів та діаграм, які можна використовувати для опису структури програми на високому рівні? Сюди входить як підпитання:
- Як ми показуємо, які класи містяться в яких пакетах?
- Як ми показуємо, які пакунки залежать від інших пакетів?
- Як ми показуємо, як об’єкти / класи в програмі працюють разом?
- Ми намагалися використовувати принципи дизайну, керовані доменом, при розробці мого коду. Як ми можемо показати відповідність між об'єктами домену та певними файлами вихідного коду, що кодують ці об’єкти? (Дивіться опис проекту "всюдисуща мова" нижче.)
Що я зробив досі
Всюдисуща мова
Ми поміщаємо опис коду "всюдисущою мовою" ubiquitous-language.md
, вміст якого нижче.
Метою цього проекту є вивчення ефективності політики поповнення в простому ланцюзі поставок з одним об'єктом, за різними моделями часу виконання, звітування про затримки та моделі попиту.
У кожному періоді відбуваються такі події:
- Якщо вантаж повинен прибути на об'єкт в поточному періоді, то рівень запасів об'єкта збільшується на X одиниць.
- Якщо графік показує , що поточний період є звітним періодом, то об'єкт являє звіт до постачальнику . Постачальник може отримати звіт негайно, або із затримкою в кілька тижнів, як зазначено в розкладі .
- Якщо постачальник отримав звіт , то на основі політики поповнення він обчислить кількість поповнення X одиниць. Планується, що відправлення X одиниць товару буде заплановано після закінчення строків l.
- Клієнти прибувають на об'єкт і вимагають X одиниць товару. Будь-який незадоволений попит втрачається.
Структура вихідного коду
Ми розміщуємо неповний "високий рівень" опису коду у файлі structure.md
, вміст якого нижче.
Структура рівня упаковки
На найвищому рівні вихідний код організований у три пакети
com.gly.sfs
Основний клас зmain
методом знаходиться в цьому пакеті.com.gly.sfs.model
Класи доменних моделей містяться в цьому пакеті.com.gly.sfs.util
Класи помічників знаходяться в цьому пакеті.