Kontekst: Ja i moi współpracownicy piszemy artykuł do czasopisma akademickiego. W trakcie naszych badań napisaliśmy program symulacyjny w Javie. Chcemy, aby program symulacji był swobodnie dostępny dla innych. Zdecydowaliśmy się na hosting kodu w repozytorium GitHub. Aby ułatwić innym korzystanie, chcemy napisać dobrą dokumentację dla naszego programu, w tym:
- Javadocs dla każdej klasy i metody
- Jak korzystać z kodu
- Opis struktury wysokiego poziomu kodu
Moje pytanie na wysokim poziomie brzmi: czy możesz podać dobry przykład słów i diagramów, których można użyć do opisania struktury wysokiego poziomu programu? Obejmuje to następujące pytania częściowe:
- Jak pokazać, jakie klasy są zawarte w poszczególnych pakietach?
- Jak pokazujemy, które pakiety zależą od innych pakietów?
- Jak pokazujemy, jak obiekty / klasy w programie współpracują ze sobą?
- Próbowaliśmy używać zasad projektowania opartych na domenie przy projektowaniu mojego kodu. Jak pokazujemy zgodność między obiektami w domenie a konkretnymi plikami kodu źródłowego kodującymi te obiekty? (Zobacz mój opis „wszechobecnego języka” projektu poniżej.)
Co zrobiłem do tej pory
Wszechobecny język
Umieszczamy opis kodu „wszechobecnego języka” w pliku ubiquitous-language.md
, treść poniżej.
Celem tego projektu jest zbadanie, jak dobrze funkcjonuje polityka uzupełniania zapasów w prostym łańcuchu dostaw z jednym zakładem, przy różnych modelach czasu realizacji, opóźnieniach raportów i modelach popytu.
W każdym okresie występują następujące zdarzenia:
- Jeśli przesyłka ma dotrzeć do obiektu w bieżącym okresie, poziom zapasów w obiekcie zwiększa się o X jednostek.
- Jeśli harmonogram wskazuje, że bieżący okres jest okresem sprawozdawczym, wówczas zakład przekazuje raport do dostawcy . Dostawca może otrzymać raport natychmiast lub z opóźnieniem kilku tygodni, określonym przez harmonogram .
- Jeśli dostawca otrzymał raport , a następnie w oparciu o zasady uzupełnienia , obliczy ilość uzupełnienia X jednostek. Transportu jednostek X produktu będzie przybyć od ołowiu czasie okresów l.
- Klienci przybywają do obiektu i żądają X jednostek produktu. Wszelkie niezaspokojone zapotrzebowanie zostanie utracone.
Struktura kodu źródłowego
W pliku umieszczamy niepełny opis „wysokiego poziomu” kodu structure.md
, treść poniżej.
Struktura poziomu pakietu
Na najwyższym poziomie kod źródłowy jest podzielony na trzy pakiety
com.gly.sfs
Główna klasa z tąmain
metodą znajduje się w tym pakiecie.com.gly.sfs.model
Klasy modeli domen znajdują się w tym pakiecie.com.gly.sfs.util
Klasy pomocnicze znajdują się w tym pakiecie.