2011-01-13 4 views
1

私は、顧客のサイトで新しいプロジェクトを開始するときに新しいアプリケーションをすばやく理解するためのツールを探しているソフトウェア開発コンサルタントです。 アプリケーションやシステムの概要を理解するのに役立つと思われるものは、DBスキーマダイアグラム、ドメインオブジェクトモデルダイアグラム、UMLダイアグラム、APIなどです。基本的には、製品、および開発者の立場からアプリケーションを操作する方法について説明します。今私はビジュアルスタジオでオブジェクトブラウザを使用していますが、このようなもののためのより多くの選択肢があるように感じる。私はDoc-O-Maticというツールを使っていましたが、C#ソリューションのクラスファイルの関係について私に少し分かりました。新しいアプリケーションを素早く(コーディングの視点から)学ぶためのツール、ヒント、テクニック

私の現在のプロジェクトは、C#、Spring.net、NHibernate、MVCで書かれた大きな&複雑なアプリケーションであり、私はデザインの周りに頭を抱えようとしています。非常に洗練されているように見えますが、OOのデザインパターンを大量に使用しています。アプリケーションが実行していることを追跡するのが難しくなります(OOの観点からはうまく設計されています)。

(よくあることですが)お客様がドキュメントをほとんどまたはまったく提供していない状況で、この種の情報を手に入れるためのツールや技法はありますか?あなたは新しいシステムをすばやく学ぶためにどんなツール、トリックを使いますか?

ありがとうございます!

答えて

1

あなた(少なくとも私)は、システム全体の設計とそれがどのように動作しているかを知ることはできません。あまりにも時間がかかります。かつて私が仕事を始めたときも同じ問題に直面しましたが、私はうまく設計されていない大きなプロジェクトを持っていました。アクションに迅速に取得するためのいくつかの手順は次のとおりです。

  • は、アプリケーションがユーザーのポイントビューのから取り組んでいる方法を学び、それはあなたがいつ
  • に仕事をしなければならない分野でアプリケーションを使用することを意味します問題のドメインに精通しており、アプリケーションで対処されているビジネスケースを把握している場合は、で作業する必要があるモジュールまたはコードの部分に移動して
  • ベストは(前の)開発者からキックスタートしてください。これを行う人がいない場合は、のプロセス/コードをデバッグして、関連するコンポーネントが表示されるようにしてください。
  • 最小ユースケースから開始可能です。。アプリケーションがうまく設計されている場合、コード全体に同じパターンが適用される可能性が非常に高いです。だから、あなたがコードを1つ「壊す」なら、あなたはすべてを(少なくとも設計ロジックの部分)得ることができます。
  • 理解したことを書いてと書いてください。そうでないと、短時間で大量の情報が収集されるため、忘れてしまいます。
  • また、のコメントコードがありません。のコードがありますが、アプリケーションで初めて作業する場合は危険です。あなたは何が起こっているのかを理解したと思ったが、そうしなかった状況に遭遇するでしょう。

これは私が作成した経験の一部です。

0

まず最初に、追いついていないプログラムが「OOの観点からうまく設計されている」とすぐには考えないでください。 OOA & Dの目的は、「スパゲッティコード」を避けることで、コードを理解し、拡張し、リファクタリングすることを容易にすることにほかならぬものです(ジャンプがたくさんある大規模な混乱したファイルのコード、古い言語)。しかし、デザインパターンを過度に使用して、他のプログラミングパスタを設計することができます: "ラザニアコード"(検査する実際のコードに掘り下げることが難しい抽象レイヤーが多い)または "ラビオリコード"(コードが壊れています非常に多くのバイトサイズのチャンクになっているので、ファイルからファイルへと絶えず移動しているため、単一の単純なアルゴリズムの実行をトレースできます)。

とにかく、.NETプロジェクトの場合、VSにはクラス図を生成するツールがいくつかあります。 Office Visio ProfessionalはVisual Studioと統合することもでき、この機能を拡張することで、図の変更と実際のコードの変更を前後に行うことができます。同様に、MSSにプラグインして、スキーマ図を表示することもできます。しかし、実践体験よりも優れたツールはありません。最もよく設計されたコードでさえ、問題のあるオブジェクト(またはオブジェクト間の関係など)をゼロにするためにコードベースを知っておく必要のあるいくつかの特異性があります。私はまだ雇用者に会っていないが、生産者になるには現在のアーキテクチャを十分に熟知するために少なくとも1ヶ月かかるとは思わない。契約上の観点から、その期待はあまり寛容ではないかもしれませんが、誰かが大量のコードベースに外部文書をほとんどまたはまったく潜んでいないことを期待して、オリンピックのスプリントのように泳ぎ始めることは不合理です。

関連する問題