-1

プロジェクト全体のコードをコメントして再編成するのにかかる時間を見積もる方法について、誰か提案はありますか?

私は別のプログラマーと一緒に会社の契約作業を始めたところです。彼はバグを修正しており、私はコードを再編成しています。コードを 1 行ずつ調べてコメントを付けたり、コードを再編成したりするのにかかる時間を見積もりたいと思います。これは非常に大規模なソリューションです。2 つのプロジェクトがあり、それぞれに複数のファイルがあります。

各ファイル内のすべてのコード行を数えて合計し、時間を 2 倍にしてパディングを行うように提案されました。見積もる前にコードのサイズを 2 乗することも提案されました。しかし、たとえば 100 行のコードにコメントを付けるのにどれくらいの時間がかかるのかわかりません。

どんな提案でも大歓迎です。それが違いを生む場合、プロジェクトは Visual Studio 2012 を使用して Windows フォームで作成されます。

ありがとう!

4

4 に答える 4

3

小さなランダムなサンプル (20 行) を選び、それを再編成することをお勧めします。サンプルのランダム性により、実際には作業が少し複雑になるため、それは(乗算した場合)かかる時間のアイデアを提供します。2 回または 3 回実行して、分散が小さいかどうかを確認することもできます。あなたに基づいていない他の方法は、時間的には費用がかからないかもしれませんが、あなたに合わせた結果は得られません. 私の意見では、この方法は良い投資です。

于 2013-02-16T18:37:18.443 に答える
1

まず、これは見積もりです。見積もりは正確な数値ではなく、概算と範囲です。あなたが最初に持っている見積もりは、あなたがそれに取り掛かると、大きく外れる可能性があり、見積もりを精緻化する必要があります。見積もりを行うときは、不確実性のコードを考慮に入れてください。

ソフトウェア推定のための多くの確立されたモデルが存在します。COCOMOIIはその1つです。この特定のアプローチは、既知の量から機能できるという点で、その技術に付加価値をもたらしたと思います。

COCOMOIIのWebツールはuscにあります。現在のコード行を数えます。必要な新しいコメントの行数、再利用できる行数、および変更が必要な行数の概算を作成します。これらの番号を接続します。COCOMOIIの動作の定義とすべての用語は、uscftpサイトにあります。

たとえば、10k SLOCの既存のコードがあり、そのうち75%を再利用でき、25%を変更する必要があり(75%の設計変更、100%のコード変更など)、コメント用にさらに10%を追加する必要があります。さまざまなコスト要因を微調整することには賛否両論があります(「公称」から変更するか、そのままにしておく)。

これを接続すると、同等のサイズの2825 SLOCが得られ、これは9.2人月の労力に相当します(これはコードを1行ずつ実行するだけでなく、再設計が正しく行われていることを確認してテストすることも忘れないでください) 。9ヶ月は約1500労働時間です。

ソフトウェア見積もりの​​取得を検討してください。見積もりとは何か、見積もりを行うための他の手法(これはプロキシによる見積もりであり、多くの手法の1つにすぎません)の詳細を説明するブラックアートの謎を解き明かします。

所要時間と見積もりに関するデータを保存することを忘れないでください。時間の経過とともに、履歴データは見積もりを精緻化するのに役立ちます。

ソフトウェアエンジニアリングにおけるウィキペディアのコスト見積もりについてさらに読む

于 2013-02-16T22:20:42.133 に答える
0

コードにコメントするという点では、おそらくそれはすべての行を読み、各メソッド/興味深い部分を説明することを意味しますか?これについての通常の議論をすべて無視すると、まず、あなたは私の同情を持っています、そして次に、いくつかのクラスを選び、作業を行い、それにかかる時間を測定することをお勧めします:そこから推定できるはずです(そして30を追加する%その後)

再編成に関しては、必要な特定の大規模なリファクタリングをすでに知っていない限り、「どれくらいの時間がかかりますか」に対する私の通常の答えは、「どれだけ良くしたいですか?」です。-そして最終的な答えは、常に、あなたと上司/クライアントの両方に同意できるタイムボックス化された金額になります。x日間の提案をして、その時間にできる限り多くのことをしてください。また、誰かが統合テストについて言及しました:これが実行可能なオプションである場合、それは確かに時間を制御するのに役立ちます

于 2013-02-16T19:38:57.803 に答える
0

クラスの複雑さを示すある種のコード分析を使用して、厄介なビットを見つけることができる場合があります。

単体テストでカバーされていないコードをチェックすると、リファクタリングが難しいコードを見つけるのにも役立ちます。

于 2013-02-16T18:45:15.567 に答える