Tôi giả sử bạn đã thấy this link rồi.
Đừng suy nghĩ về mã (lớp học, & c.) Trước tiên. Hãy suy nghĩ về các trường hợp sử dụng và các yêu cầu chức năng. Chức năng của máy bán hàng tự động được cung cấp là gì? Người dùng được mong đợi tương tác với nó như thế nào? Làm thế nào về các nhà bảo trì? Cố gắng không nhầm lẫn các chi tiết triển khai từ các nhu cầu cấp cao trong khi thực hiện việc này.
Sau đó, tùy thuộc vào loại dự án
lớp
này dành cho, hãy suy nghĩ về các yêu cầu không phải chức năng. Thuộc tính quan trọng nhất: tốc độ, độ tin cậy, dễ bảo trì, khả năng thích ứng với tình huống mới, bảo mật, ...? Có những khả năng khác. Đây không phải là nhị phân, có/không có câu trả lời, suy nghĩ nhiều hơn về phạm vi và tiêu chuẩn tối thiểu so với mục tiêu tối ưu. Lưu ý, "tối ưu" phụ thuộc vào quan điểm của bên liên quan được đề cập. Dễ sử dụng và bảo mật thường xung đột, vì vậy bạn phải tìm ra cái nào là quan trọng hơn.
Sau đó, bạn có thể quay lại các trường hợp sử dụng và xem chúng bị ảnh hưởng như thế nào bởi các yêu cầu không hoạt động của bạn. Đây là nơi thương lượng xảy ra với khách hàng của bạn, những người trong trường hợp này có lẽ là bạn. Bạn có phải hy sinh các tính năng để đáp ứng một số mục tiêu khác không? Đối với mỗi tính năng, rủi ro so với phần thưởng là gì? Dễ dàng thực hiện các tính năng cung cấp giá trị cao là rất tốt. Khó thực hiện (do các ràng buộc) các tính năng chỉ thêm giá trị nhỏ nên được ưu tiên rõ ràng nhất. Hai kết hợp khác yêu cầu suy nghĩ cẩn thận.
Sau đó, bạn có thể bắt đầu thiết kế máy.
Có rất nhiều sơ đồ khác nhau mà bạn có thể sử dụng để giúp bạn trực quan hóa vấn đề hoặc giải thích giải pháp được đề xuất của bạn cho người khác.
Jesse Liberty đã viết một cuốn sách tốt về điều này: http://www.amazon.com/Beginning-Object-Oriented-Analysis-Design-C/dp/1861001339 – Robert
Nó có vẻ là bài tập về nhà. – Tiger
Nó có lẽ là bài tập về nhà, nhưng hes không yêu cầu các trường hợp sử dụng được rút ra cho anh ta. Anh ta chỉ cần một cú đẩy đúng hướng. – Brandon