2009-03-30 31 views
7

Tôi đang tạo một tài liệu thiết kế cho một hệ thống con bảo mật, được viết bằng C++. Tôi đã tạo ra một sơ đồ lớp và sơ đồ trình tự cho các trường hợp sử dụng chính. Tôi cũng đã xác định các thuộc tính công khai, các liên kết và các phương thức cho mỗi lớp. Nhưng, tôi chưa khoan các định nghĩa phương thức xuống mức C++. Kể từ khi tôi mới đến C + +, như là nhà phát triển khác, tôi tự hỏi nếu nó có thể không có ý nghĩa đi trước và chỉ định cho cấp độ này. Suy nghĩ?Làm cách nào để có được tài liệu thiết kế?

chỉnh sửa: Wow - hoàn toàn chống lại, nhất trí. Tôi đã suy nghĩ về, ví dụ, toàn bộ doanh nghiệp về việc chỉ định const so với non-const, truyền tham chiếu, xử lý constructor mặc định và gán, và vv. Tôi tin rằng nó đã được khá hữu ích để spec này ra đến mức độ chi tiết cho đến nay. Tôi chắc chắn đã có một ý tưởng rõ ràng hơn về cách hệ thống hoạt động. Có lẽ nếu tôi chỉ làm một vài phương pháp, làm ví dụ, trước khi đi sâu vào mã?

Trả lời

4

Vì bạn mới, điều này có thể có ý nghĩa không phải là để xem chi tiết.

Lý do: Bạn vẫn đang tìm hiểu ngôn ngữ và cách mọi thứ được cấu trúc tốt nhất. Điều đó có nghĩa là bạn sẽ phạm sai lầm ban đầu và bạn sẽ muốn sửa chúng mà không cần cập nhật tài liệu liên tục.

+0

Chấp nhận câu trả lời của Jason vì lý do không phải liên tục quay lại tài liệu. –

5

Tôi sẽ nói điều đó không có ý nghĩa gì cả và bạn đã đi quá xa rồi. Nếu bạn chưa quen với C++, bạn không có vị trí để viết một tài liệu thiết kế chi tiết cho một dự án C++. Tôi sẽ khuyên bạn nên cố gắng thực hiện những gì bạn đã có trong C + +, tìm hiểu bởi những sai lầm không thể tránh khỏi (như thuộc tính công cộng) và sau đó quay trở lại và sửa đổi nó.

5

Tôi sẽ không khuyên bạn nên đi đến cấp độ này, nhưng sau đó một lần nữa bạn đã đi qua nơi tôi sẽ đi trong một đặc điểm kỹ thuật thiết kế. Cảm giác cá nhân của tôi là đặt rất nhiều nỗ lực vào thiết kế chi tiết ở phía trước sẽ bị lãng phí khi bạn tìm hiểu trong việc phát triển mã mà bạn đoán là mã sẽ hoạt động sai như thế nào. Tôi sẽ gắn bó với một thiết kế cấp cao và nghĩ về việc sử dụng TDD (phát triển theo hướng thử nghiệm) để hướng dẫn thiết kế và thực hiện ở mức độ thấp.

+0

+1 cho TDD, đặc biệt là đối với một cặp lập trình viên C++ mới làm quen. Sẽ có nhiều lỗi và một bộ kiểm tra nghiêm ngặt sẽ là biện pháp phòng thủ tốt nhất chống lại chúng. –

2

Cách tốt nhất để chỉ định cách mã thực sự khớp với nhau là trong mã. Tài liệu thiết kế dành cho những thứ khác không dễ dàng được thể hiện trong mã. Bạn nên sử dụng nó để mô tả nhu cầu thực tế của chương trình đầy, Cách nó tương tác với người dùng, những hạn chế nào về mặt phần cứng và hệ điều hành. Chắc chắn mô tả kiến ​​trúc tổng thể của ứng dụng của bạn trong một tài liệu thiết kế, nhưng, ví dụ, API thực sự nên được mô tả trong mã để lộ API.

0

Bạn đã đi đủ xa với phần tài liệu. Vì bạn vẫn là người mới bắt đầu trong C++, khi bạn hiểu ngôn ngữ, bạn có thể muốn thay đổi cấu trúc của chương trình. Sau đó, bạn sẽ phải thực hiện các thay đổi trong tài liệu. Tôi sẽ đề nghị bạn đã đi quá xa với tài liệu. Không cần phải khoan sâu hơn vào nó

3

Nó thực sự phụ thuộc vào ai là tài liệu thiết kế được nhắm mục tiêu. Nếu nó là cho một ông chủ không phải là kỹ thuật, sau đó bạn là tốt với những gì bạn có.

Nếu đó là cho chính bạn, thì bạn đang sử dụng công cụ để giúp bạn, vì vậy bạn quyết định. Tôi tạo ra các tài liệu thiết kế mức phương thức khi tôi tạo một dự án, nhưng nó ở mức cao để tôi có thể tìm ra các tính năng của các lớp khác nhau. Tôi đã tìm thấy rằng trên các ngôn ngữ, các chức năng chính của một lớp học ít liên quan đến ngôn ngữ lập trình mà chúng tôi đang làm việc. Một số chi tiết và chức năng bên trong yêu cầu chắc chắn thay đổi tùy theo ngôn ngữ đã chọn, nhưng đó là các chi tiết triển khai rằng tôi không bận tâm trong giai đoạn thiết kế.

Nó chắc chắn giúp tôi biết rằng ví dụ một lớp ủy quyền có thể có một chức năng xác thực mà có một đối tượng người dùng như một tham số. Tôi không thực sự quan tâm trong quá trình thiết kế mà tôi có thể cần một hàm bao hàm md5 chuỗi nội bộ để thực hiện một số mục tiêu cụ thể. Tôi tìm hiểu về điều đó trong khi viết mã.

Mục tiêu của thiết kế ban đầu là sắp xếp để bạn có thể tiến bộ với sự rõ ràng và suy nghĩ thay vì xé ra và thực hiện lại chức năng tương tự 4 lần vì bạn quên một số trường hợp do không lập kế hoạch. EDIT: Tôi làm việc trong PHP rất nhiều, và tôi thực sự sử dụng PhpDoc để làm một số tài liệu thiết kế, đơn giản bằng cách viết chữ ký phương thức mà không thực hiện, sau đó đưa ra một mô tả chi tiết về phương thức nên làm trong phương thức nhận xét tiêu đề. Điều này giúp bất kỳ ai đang sử dụng lớp của tôi trong tương lai, bởi vì thiết kế IS là tài liệu. Tôi cũng có thể thay đổi tài liệu nếu tôi cần thực hiện một số thay đổi trong khi mã hóa.

Tôi làm việc trong php4 rất nhiều, vì vậy tôi không sử dụng giao diện. Trong php5, tôi tạo giao diện, sau đó triển khai nó ở nơi khác.

0

Giống như mọi người khác nói, bạn đã đi qua nơi bạn cần phải đi với thiết kế. Bạn có một bộ tốt các yêu cầu đến mức báo cáo đúng/sai đơn giản mà bạn đã bắt nguồn từ thiết kế đó không? Bạn có thể thiết kế tất cả các ngày dài, nhưng nếu bạn không có yêu cầu mà chỉ đơn giản là nói những gì bạn sẽ làm, nó không quan trọng như thế nào tốt thiết kế của bạn.

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