Bối cảnh: Các cộng tác viên của tôi và tôi đang viết một bài báo cho một tạp chí học thuật. Trong quá trình nghiên cứu, chúng tôi đã viết một chương trình mô phỏng bằng Java. Chúng tôi muốn làm cho chương trình mô phỏng có sẵn miễn phí cho người khác sử dụng. Chúng tôi đã quyết định lưu trữ mã trên kho lưu trữ GitHub. Để giúp người khác dễ sử dụng, chúng tôi muốn viết tài liệu tốt cho chương trình của chúng tôi, bao gồm:
- Javadocs cho mỗi lớp và phương thức
- Cách sử dụng mã
- Mô tả cấu trúc cấp cao của mã
Câu hỏi cấp cao của tôi là: Bạn có thể cung cấp một ví dụ hay về các từ và sơ đồ có thể được sử dụng để mô tả cấu trúc cấp cao của một chương trình không? Điều này bao gồm dưới dạng câu hỏi phụ:
- Làm thế nào để chúng tôi hiển thị các lớp được chứa trong các gói?
- Làm thế nào để chúng tôi hiển thị các gói phụ thuộc vào các gói khác?
- Làm thế nào để chúng tôi chỉ ra làm thế nào các đối tượng / lớp trong chương trình làm việc với nhau?
- Chúng tôi đã cố gắng sử dụng các nguyên tắc thiết kế hướng tên miền trong thiết kế mã của tôi. Làm thế nào để chúng tôi hiển thị sự tương ứng giữa các đối tượng trong miền và các tệp mã nguồn cụ thể mã hóa các đối tượng này? (Xem mô tả "ngôn ngữ phổ biến" của tôi về dự án bên dưới.)
Những gì tôi đã làm cho đến nay
Ngôn ngữ phổ biến
Chúng tôi đặt một mô tả "ngôn ngữ phổ biến" của mã trong một tệp ubiquitous-language.md
, nội dung bên dưới.
Mục đích của dự án này là nghiên cứu chính sách bổ sung thực hiện tốt như thế nào trong chuỗi cung ứng đơn giản với một cơ sở duy nhất, theo các mô hình thời gian khác nhau, báo cáo sự chậm trễ và mô hình nhu cầu.
Trong mỗi thời kỳ, các sự kiện sau đây xảy ra:
- Nếu một lô hàng được lên kế hoạch đến cơ sở ở giai đoạn hiện tại, thì mức tồn kho của cơ sở được tăng lên bởi các đơn vị X.
- Nếu lịch biểu chỉ ra rằng giai đoạn hiện tại là thời kỳ báo cáo, thì cơ sở sẽ nộp báo cáo cho nhà cung cấp . Nhà cung cấp có thể nhận được báo cáo ngay lập tức hoặc chậm trễ vài tuần, theo quy định của lịch trình .
- Nếu nhà cung cấp đã nhận được báo cáo , thì dựa trên chính sách bổ sung , họ sẽ tính toán số lượng bổ sung của các đơn vị X. Một lô hàng gồm X đơn vị sản phẩm sẽ được lên lịch để đến sau một khoảng thời gian chính.
- Khách hàng đến cơ sở và yêu cầu X đơn vị sản phẩm. Bất kỳ nhu cầu chưa được đáp ứng sẽ bị mất.
Cấu trúc mã nguồn
Chúng tôi đặt một mô tả mã "cấp cao" chưa hoàn chỉnh trong một tệp structure.md
, nội dung bên dưới.
Cấu trúc cấp gói
Ở cấp độ cao nhất, mã nguồn được tổ chức thành ba gói
com.gly.sfs
Lớp chính vớimain
phương thức nằm trong gói này.com.gly.sfs.model
Các lớp mô hình miền nằm trong gói này.com.gly.sfs.util
Các lớp trợ giúp nằm trong gói này.