2009-08-05 29 views
5

Có phương pháp heuristic nào được sử dụng để tìm hiểu xem có sai sót trong thiết kế không? Hay nó là một kỹ năng chủ quan đi kèm với kinh nghiệm? Thường thì tôi thấy các kỹ sư đi cho thiết kế đầu tiên đến đầu của họ và sau đó điều chỉnh theo kết quả, điều này được thực hiện công việc, nhưng nó tốn thời gian. Tôi muốn biết những gì các chuyên gia SO nghĩ.Bất kỳ phương pháp tốt nào để đánh giá thiết kế trước khi bất kỳ mã nào được triển khai?

Trả lời

2

Cá nhân, tôi thường sử dụng Alloy để có được sự tự tin hơn trong thiết kế của mình - đây là một số article on it (và các công cụ khác thuộc loại này) mô tả nó khá tốt. Không phải tất cả mọi người đều tin vào công cụ này và nó chắc chắn không dành cho tất cả mọi người, nhưng nó đã giúp tôi mỗi khi tôi chạm vào nó và thậm chí khi tôi không sử dụng nó, biết cách phân tích nội dung của tôi.

Một phần của thiết kế thực sự là một số kỹ năng chủ quan mà tôi nghĩ. Tôi luôn cố gắng giảm thiểu các khái niệm trong thiết kế ở mức tối thiểu. Tôi thích viết một lõi đơn giản, tối thiểu và đặt một (hoặc hai) lớp trên cùng mà các khái niệm bản đồ cho lớp cơ bản. Đôi khi có nhiều hơn một bộ tối thiểu. Cho dù lựa chọn đúng được thực hiện thường không rõ ràng cho đến khi mọi người đi lên với các yêu cầu mới mà bạn không nghĩ đến trong thiết kế ban đầu. Sau đó, tôi muốn suy nghĩ lại liệu nó sẽ dễ dàng hơn hay khó khăn hơn nếu tôi chọn bộ tối thiểu khác. Các dự án gần đây chỉ ra rằng tôi từ từ có được một cảm giác tốt cho điều này :).

Vì vậy, có, tôi cho rằng vấn đề gặp phải. Tôi không nghĩ rằng bạn có thể nhận được thực sự thiết kế tốt cho đến khi bạn thực hiện một số sai lầm.

Tôi thực sự thích đề xuất với bản trình bày thiết kế. Tôi đã thường nghĩ về điều này trong quá khứ.Tôi nghĩ bạn thực sự cần hiểu rõ về thiết kế nếu bạn muốn trình bày nó cho người khác (ít nhất, theo cách để mọi người hiểu bạn sắp làm gì).

0

Chúng tôi thường thực hiện đánh giá, người tạo thiết kế phải trình bày cho các kiến ​​trúc sư khác và họ cố gắng thử và chọc thủng lỗ hổng trong thiết kế.

Một cách thú vị để làm điều đó, mà cũng dạy đội cách hệ thống là nghĩa vụ phải làm việc, là:

  • Divide hệ thống thành các lớp/modules
  • Mỗi người trong nhóm được gán một mô-đun (mũ có tên)
  • Sau đó, thử và làm mọi thứ (sử dụng các trường hợp), nói đăng nhập một tin nhắn (mảnh giấy) với tên người dùng và mật khẩu được trao cho john (giao diện người dùng) cung cấp cho James (lớp kinh doanh) ....

Bạn không thể làm điều này cho tất cả mọi thứ, nó sẽ mất quá nhiều thời gian. Nhưng nếu một cái gì đó quá phức tạp, nó sẽ xuất hiện ở đây, hoặc nếu ai đó nhận được một tin nhắn nói rằng "Tôi không biết phải làm gì với điều này" nó là một dấu hiệu cho thấy một cái gì đó là mất tích.

Về mặt kỹ thuật, nếu đó là công nghệ mà chúng tôi chưa từng sử dụng trước đây, chúng tôi sẽ xây dựng bằng chứng khái niệm về chiều dọc mỏng của hệ thống. Điều này cũng là một ví dụ cho các lập trình viên về cách lập trình hệ thống.

0

Trường hợp sử dụng là bạn của bạn. Chúng giúp bạn tìm ra nơi tất cả các dữ liệu cần để sống, và những thông điệp cần phải được truyền giữa các mô-đun. Nếu bạn thấy quá nhiều dữ liệu đang được chuyển, có thể đã đến lúc vẽ lại ranh giới các mô-đun của bạn.

Tạo mẫu cũng hữu ích. Đó là mã hóa nhưng nó thường là throwaway. Đây là một cách tốt để nắm bắt các gotchas mà bạn bị mất. Đây có xu hướng là vấn đề kỹ thuật hơn mà bạn đã bỏ qua trong mô hình của bạn ... vấn đề luồng, vấn đề IO, lựa chọn cấu trúc dữ liệu.

+0

Để đánh giá thiết kế, tôi muốn sử dụng tên "tracer bullet" để làm mẫu thử vì nhiều người nghĩ "UI-prototype" và UI-Prototype sẽ không đánh giá thiết kế ứng dụng của bạn. – pmr

0

Tôi muốn nói không, không có phương pháp thực sự, đó là điều gì đó đi kèm với trải nghiệm.

Vấn đề với đánh giá ngang hàng sớm là bạn cuối cùng sẽ tối ưu hóa vấn đề sai.

Bạn tối ưu hóa cho một vấn đề theo như bạn hiểu nó, và sau đó các doanh nghiệp đến cùng và thay đổi các yêu cầu về bạn. Bạn cuối cùng lãng phí tài nguyên xem xét đắt tiền đó.

0

This guy làm một công việc tuyệt vời giải thích lý do tại sao bạn không dành mãi mãi "cố gắng để làm cho nó đúng" lần đầu tiên .. bắt đầu lúc 1:30 hoặc lâu hơn

0

Chúng tôi tạo ra nguyên mẫu và thu thập thông tin phản hồi từ người dùng. Bạn có thể tạo mẫu thử bằng giấy & bút chì hoặc bằng công cụ tạo mẫu.

Có nhiều công cụ tạo mẫu trên thị trường, ForeUI là công cụ yêu thích của chúng tôi, nó có thể xuất nguyên mẫu thành DHTML để mọi người có thể xem xét.

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