2010-04-29 58 views
7

Về cơ bản có hai cách tiếp cận để thiết kế một hệ thống. Ưu điểm và nhược điểm là gì? Khi nào tôi nên sử dụng? Tôi có nên kết hợp những cách tiếp cận đó không? Làm sao?Thiết kế từ trên xuống dưới hoặc dưới lên?

+4

Đó là một câu hỏi ngắn, nhưng tôi nghi ngờ câu trả lời sẽ khá dài! ... –

+1

Tôi thích thiết kế từ trái sang phải. –

+0

@Mitch Wheat có thể, cũng trả lời một phần hoặc chuyển hướng đến một số sách/bài báo/bài viết/blog sẽ đủ :) –

Trả lời

21

Nói đại khái, từ trên xuống xuất phát từ một sự phân hủy của không gian vấn đề thành các vấn đề, trong khi từ dưới lên xuất phát từ việc tổ chức các bộ phận của không gian giải pháp thành khối lớn hơn.

Để có thể sử dụng hiệu quả từ trên xuống, bạn cần có sự hiểu biết rất chắc chắn về vấn đề, tức là có yêu cầu vững chắc trong tay. Để từ dưới lên có hiệu quả, bạn cần phải giải quyết vấn đề 'tiêu chuẩn' có phần nổi tiếng, nhưng nơi lắp ráp chính xác có thể cần một số thử nghiệm trước khi bạn làm đúng.

Bạn nên đọc giấy rực rỡ của Parnas A rational design process and how to fake it để biết thêm về vấn đề này. Câu trả lời là: sử dụng cả hai, khi thích hợp. Khi bạn hoàn thành, làm cho nó trông giống như (trong thông số kỹ thuật của bạn, tài liệu thiết kế và tài liệu người dùng) như thể bạn đã làm mọi thứ từ trên xuống.

+0

cảm ơn bạn rất nhiều vì đã có câu trả lời hay và liên kết đến bài báo đó –

+4

+1: For «Khi bạn hoàn thành, hãy làm cho mọi thứ trông như thể bạn đã làm Tất cả mọi thứ từ trên xuống » – ZJR

2

Bạn cũng nên xem nguyên tắc 'Cắt bánh' từ cộng đồng nhanh nhẹn. Nguyên tắc này buộc bạn phải tập trung vào việc thêm giá trị kinh doanh cho người dùng với mỗi lần lặp lại ứng dụng của bạn. Bạn cố gắng để thiết kế và thực hiện một lát dọc của ứng dụng của bạn và cung cấp nó, sau đó tập trung vào các lát sau, vv

Dưới đây là một liên kết mà giải thích các nguyên tắc chi tiết hơn http://blog.energizedwork.com/2005/05/slicing-cake.html

+0

Cảm ơn bạn, tôi biết về các lần lặp lại, tôi đoán điểm khó là làm thế nào để cắt bánh để thêm một lát khác sẽ không cứng như thêm một số trước đó. –

3

Tôi nghĩ rằng câu hỏi của bạn xứng đáng từ lâu và câu trả lời rõ ràng. Tôi đề nghị đọc một bài báo cũ của Martin Fowler (cfr. "Là thiết kế đã chết?") Mà nói về quan hệ về thiết kế và kỹ thuật nhanh (up) , tương tác giữa các thành phần của hệ thống. Có bản thiết kế này (trong một số dự án có thể ở mức cao), tôi bắt đầu thiết kế/phát triển các mô-đun/thành phần. Một số trong số này có thể được phát triển cũng từ dưới lên.

+0

Tham khảo tốt luôn được đánh giá cao :) –

Các vấn đề liên quan