私はJava Struts、Spring、Hibernateでほぼ5年の経験を持つ開発者です。
数日中に新しいプロジェクトが予定されています。完全な要件があり、Spring MVC、Spring、およびHibernateを使用してこのプロジェクトを実行します。
Webアプリケーション全体の設計と設計を依頼されました。アーキテクトの設計と作成は、私のキャリアの中で今までしていないことです。そして、私はこれをどのように始めるのか、どこから始めるのか、どのツールを使用するのかなどを知りません。私はデザインとアーキテクチャのA、B、Cさえも知りません。
そもそもなぜこれを行うように頼まれたのかと疑問に思われるかもしれません。大切なことは、これを行う機会が与えられ、すべての段階で監視され、先輩にデザインをレビューしてもらうことです。
そのため、提案、アイデア、および開始して先に進むための手順を歓迎します。
私は自分の経験から2セントを追加することができます(開発のベストプラクティスをまとめたものですが、アプリケーションの設計中にそれらを念頭に置いておくと便利かもしれません)。
アーキテクチャ設計ドキュメントに必要なものがいくつかあります。簡単な作業ではありませんが、チャンスをつかむための小道具です。これは非常に大きな質問であるため、これらのリンクがあなたを開始し、あなたが足を濡らした後に質問を洗練できることを願っています。
方法論
使用する方法は、最初に行うタスクに影響します。 Waterfall は、一般的ですが時代遅れの方法です。新しい方法論は、いくつかの面を持つアジャイルです。私のお気に入りは、あらゆるサイズのソフトウェアを開発するための Scrum Agile です。
ダイアグラム
図 は、システム全体および個々のコンポーネントとして最も強力な方法の1つです。作成する図のタイプはシステムによって異なります。通常、構造図、動作図、相互作用図、その他多数の図があります。これらの図は、システム全体、各コンポーネントの物理レイアウトおよび/または論理レイアウト、通信フロー、手順フローなどを示しています。
ドキュメント
ドキュメントは、プロジェクトの説明、範囲、ユーザーケース、シーケンス図、およびプロジェクトまたはプロジェクトの一部を説明するその他のドキュメントを含むドキュメントやドキュメントのように聞こえます。
ロバート・マーティン(別名ボブおじさん)のクリーン建築をご覧ください。 Here's 概要このアプローチを使用すると、SpringやHibernateなどの詳細を後回しにすることができ /できるようになり、ビジネスロジックにもっと集中できます。または、SpringからJava EEに移行します。ビジネスおよびアプリケーションロジックに触れることはありません。SOLID原則、追加の労力が多すぎます。
この方法でアプリケーションを作成したばかりで、とても満足していると言わざるを得ません。デスクトップやモバイルアプリケーションに簡単に移植したり、ストレージモジュールを交換したりできます。ポリシーに応じた詳細は大いに役立ちます。また、APIのような方法で思考を促進し、正しく適用されると、モジュールを非常に再利用可能にします。
Martinは、フレームワークのような詳細は迷惑であり、アーキテクチャの一部ではないと言っています。彼らは建築に属していると思いますが、ただ異なるレベルにあります。多くの場合、初期段階でフレームワークを含めて、作業アプリケーションの薄いスライスを作成してユーザーにデモできるようにします。または、私の場合のように、フレームワークを事前に知っていて、それらについての議論がない場合。ただし、組み合わせてアプリケーションアーキテクチャを作成すると、個別のソフトウェアアーキテクチャと見なすことができます。
「十分な」モデリングを推進するアジャイルモデリングサイトを熟読してください。要件収集から設計/開発までの完全な「アジャイルモデリングプロセス」を含む優れたガイドラインがあります。
http://www.agilemodeling.com/essays/amdd.htm
http://www.agilemodeling.com/essays/agileArchitecture.htm
http://www.agilemodeling.com/essays/agileAnalysis.htm
http://www.agilemodeling.com/essays/agileDesign.htm
ツールに関しては、ビジュアルパラダイムが大好きです。 (他のツールと比較して)比較的安価です。さまざまな無料のモデリングツールがあります(グーグルはあなたの友人です)が、Visual Paradigmに匹敵するものはありません。私の雇用主がそれのための現金をポニーしなかったら、私はそれを自分で買うだろう... :)