2009-03-30 6 views
7

私はC++で書かれたセキュリティサブシステム用の設計書を作成しています。私は主な使用事例のクラス図とシーケンス図を作成しました。また、クラスごとにパブリック属性、関連付け、およびメソッドを指定しました。しかし、私はまだC++レベルまでメソッド定義をドリルダウンしていません。私はC++を初めて使っているので、他の開発者と同じように、このレベルに先んじて指定するのは意味がないのだろうかと思います。思考?デザインドキュメントをどのように入手するのですか?

編集:Wow - 完全に反対、全会一致。たとえば、constと非constを指定したり、参照を渡したり、デフォルトのコンストラクタや代入を処理したりするなど、ビジネス全体について考えていました。これまでのところ、これをこのレベルの詳細までスペックすることは非常に役立っていると思います。私は間違いなく、システムがどのように機能するかをより明確に理解しています。たぶん私はコードに飛び込む前に、一例としていくつかの方法をやっていますか?

答えて

4

新しくなったので、ではなく、ドリルダウンするとなります。

理由:あなたはまだ言語を理解しており、どのように物事が最良に構成されているかを把握しています。つまり、最初に間違いを犯すことになり、ドキュメントを絶えず更新することなく修正する必要があります。

+0

受け入れJasonの答えは、ドキュメントに常に戻る必要がないという点です。 –

5

私はそれはまったく意味がなく、あなたはすでに遠すぎていると言います。 C++を初めてお使いの方は、C++プロジェクトの詳細な設計ドキュメントを作成する立場にありません。私はあなたがC++で既に持っているものを実装しようとすることをお勧めします。(公共の属性のような)必然的な間違いで学び、それから戻ってそれを改訂してください。

5

私はこのレベルに行くことをお勧めしませんが、もう一度あなたはすでに私が設計仕様に入る場所を過ぎてしまいました。私の個人的な感想は、詳細なデザインに多くの労力を費やすことは、コードの開発方法を見て、コードがどのように動作するかについてのあなたの推測が間違っていることを知ることで無駄になります。私は、高水準の設計に固執し、TDD(テスト駆動開発)を使用して低レベルの設計と実装を導くことを考えます。

+0

TDDの場合、特に初心者のC++プログラマの場合は+1。エラーのヒープが存在する可能性があり、厳格なテストがそれらに対する最良の防御になります。 –

2

コードを実際に一緒にフィットさせる方法を指定する最も良い方法は、コードのです。設計文書は、コードで容易に表現されない他のもののためのものです。プログラムが実際に必要とするもの、ユーザーとのやりとりの仕方、ハードウェアやオペレーティングシステムの制約などについて説明するために使用する必要があります。アプリケーションの全体的なアーキテクチャーを設計文書に記述することは確かですが、実際にはAPIを公開するコードに記述する必要があります。

0

あなたはすでにドキュメンテーションの部分と十分に離れています。 C++の初心者でも、言語を理解するには、プログラムの構造を変更したいかもしれません。次に、ドキュメントの変更を行う必要があります。私はあなたが既に文書であまりにも遠くに行ったことを示唆しています。

3

これは本当に設計文書の対象とする人によって異なります。それが非技術的な上司のためのものなら、あなたはあなたが持っているもので良いです。

あなた自身のためのものであれば、このツールを使用して助けてくれるので、あなたが決定します。私はプロジェクトを作成しているときにメソッドレベルの設計文書を作成しますが、それは高レベルなので、さまざまなクラスの機能を理解することができます。私は、言語の中で、クラスの主要な機能は、私たちが取り組んでいるプログラミング言語とはほとんど関係がないことを発見しました。内部の詳細と機能の中には、が確かにが必要ですが、私はを使わないでください。は設計段階で気にしません。

これは、認証クラスがUserオブジェクトをパラメータとして受け取る認証関数を持っている可能性があることを私が理解する助けになります。私は、設計中にいくつかの具体的な目標を達成するために内部文字列md5関数ラッパーが必要な場合が本当に気にしません。私はそれについてコーディング中に見つける。

初期設計の目標は、計画していないためにいくつかのシナリオを忘れてしまったため、同じ機能を4回繰り返して破棄して再実装するのではなく、明快さと前向きな思考で進歩を遂げることができます。

EDIT:私はPHPで多くの作業をしていますが、実際には実装していないメソッドシグネチャを記述し、メソッドで何を行うべきかについての詳細な記述を行うことで、PhpDocを使用して、ヘッダーコメント。これは、デザインがドキュメントなので、将来私のクラスを使用している人に役立ちます。コーディング中に変更を加える必要がある場合は、ドキュメントを変更することもできます。

私はphp4で多く働いているので、私はインターフェイスを使用することはありません。 php5では、私はインターフェイスを作成し、それを他の場所に実装します。

0

他の誰もが言っているように、あなたはデザインに必要な場所を過ぎ去ってしまっています。あなたは、そのデザインから派生した単純な真偽のステートメントレベルに対する要求の良いセットを持っていますか?あなたは一日中設計することができますが、あなたが何をしようとしているかを単に言うという要件がなければ、デザインがどれほど良いかは問題ではありません。

関連する問題