Latar Belakang: Kolaborator saya dan saya sedang menulis artikel untuk jurnal akademik. Dalam perjalanan penelitian kami, kami menulis sebuah program simulasi di Jawa. Kami ingin membuat program simulasi tersedia secara bebas untuk digunakan orang lain. Kami telah memutuskan untuk meng-hosting kode pada repositori GitHub. Agar mudah digunakan orang lain, kami ingin menulis dokumentasi yang baik untuk program kami, termasuk:
- Javadocs untuk setiap kelas dan metode
- Cara menggunakan kode
- Menjelaskan struktur kode tingkat tinggi
Pertanyaan tingkat tinggi saya adalah: Bisakah Anda memberikan contoh yang baik dari kata-kata dan diagram yang dapat digunakan untuk menggambarkan struktur tingkat tinggi dari suatu program? Ini termasuk sebagai sub-pertanyaan:
- Bagaimana kita menunjukkan kelas apa yang terkandung dalam paket mana?
- Bagaimana kita menunjukkan paket apa yang bergantung pada paket lain?
- Bagaimana kita menunjukkan bagaimana objek / kelas dalam program bekerja bersama?
- Kami telah mencoba menggunakan prinsip-prinsip desain berbasis domain dalam desain kode saya. Bagaimana kami menunjukkan korespondensi antara objek dalam domain dan file kode sumber tertentu yang menyandikan objek ini? (Lihat deskripsi "bahasa di mana-mana" tentang proyek di bawah ini.)
Apa yang telah saya lakukan sejauh ini
Bahasa di mana-mana
Kami menempatkan deskripsi "bahasa di mana-mana" kode dalam file ubiquitous-language.md
, konten di bawah ini.
Tujuan dari proyek ini adalah untuk mempelajari seberapa baik kinerja kebijakan pengisian dalam rantai pasokan sederhana dengan fasilitas tunggal, di bawah model lead time yang berbeda, penundaan laporan dan model permintaan.
Di setiap periode, peristiwa berikut terjadi:
- Jika pengiriman dijadwalkan tiba di fasilitas pada periode saat ini, maka tingkat persediaan fasilitas bertambah oleh X unit.
- Jika jadwal menunjukkan bahwa periode saat ini adalah periode pelaporan, maka fasilitas menyerahkan laporan kepada pemasok . The pemasok mungkin menerima laporan seketika, atau dengan penundaan beberapa minggu, sebagaimana ditentukan oleh jadwal .
- Jika pemasok telah menerima laporan , maka berdasarkan kebijakan pengisian , itu akan menghitung jumlah pengisian unit X. Sebuah pengiriman unit X dari produk yang akan dijadwalkan tiba setelah waktu memimpin periode l.
- Pelanggan tiba di fasilitas dan meminta unit X produk. Permintaan yang tidak terpenuhi hilang.
Struktur Kode Sumber
Kami menempatkan deskripsi "tingkat tinggi" kode yang tidak lengkap dalam file structure.md
, konten di bawah ini.
Struktur Tingkat Paket
Pada level tertinggi, kode sumber disusun dalam tiga paket
com.gly.sfs
Kelas utama denganmain
metode berada di paket ini.com.gly.sfs.model
Kelas-kelas model domain berada dalam paket ini.com.gly.sfs.util
Kelas pembantu berada di paket ini.