ソフトウェア アーキテクトは、ソフトウェア アーキテクチャに責任を持ちます。プロジェクトの設計や実装全体に影響を与える主要な技術的決定も、ソフトウェア アーキテクトの責務です。


トピック

 
シグナル
シグナル


実装モデル
実装モデル

           
 
アーキテクチャ上の概念の検証
アーキテクチャ上の概念の検証


参照アーキテクチャ
参照アーキテクチャ


配置モデル
配置モデル


設計モデル
設計モデル


ソフトウェア アーキテクチャ説明書
ソフトウェア アーキテクチャ説明書


分析モデル
分析モデル


イベント
イベント


インターフェイス
インターフェイス

 
担当業務
 

ソフトウェア アーキテクト
ソフトウェア アーキテクト

既存の設計要素の取り込み
既存の設計要素の取り込み


実装モデルの構成
実装モデルの構成

           

分散性の記述
分散性の記述


実行時アーキテクチャの記述
実行時アーキテクチャの記述


アーキテクチャ上の概念の検証の作成
アーキテクチャ上の概念の検証の作成


アーキテクチャ上の概念の検証に対する実現性評価
アーキテクチャ上の概念の検証に対する実現性評価


アーキテクチャ分析
アーキテクチャ分析


ユース ケースの優先順位付け
ユース ケースの優先順位付け


設計メカニズムの識別
設計メカニズムの識別


設計要素の識別
設計要素の識別

 
 
修正する
 
レビュー記録
レビュー記録


分析クラス
分析クラス


ソフトウェア要求
ソフトウェア要求


設計サブシステム
設計サブシステム


設計パッケージ
設計パッケージ


設計クラス
設計クラス


Enterprise Java Beans (EJB)
Enterprise
Java Beans
(EJB)


実装サブシステム
実装サブシステム


説明ページの先頭へ

ソフトウェア アーキテクトは、主要な技術的決定を行うすべての責任を持ちます。この主要な技術的決定がソフトウェア アーキテクチャです。一般的に、システムの要求、設計、実装、導入などの「見通し」を含む、システムのアーキテクチャ上重要な側面を識別したり、文書化する責務も含まれます。

アーキテクトは、これらの決定に対する根拠の提示、さまざまな利害関係者の意見の調整、技術的なリスクの削減などを行い、決定に関するやり取り、検証、厳守が効果的に実施されることを保証します。

関連情報 ページの先頭へ

ここでは、この役割に関連する追加情報へのリンクを示します。

要員配置 ページの先頭へ

スキル ページの先頭へ

「理想的なアーキテクトとは、文学、数学、歴史研究、哲学、音楽、医学、法学、天文学、および天文学的演算に詳しい者である。」— ウィトルウィウス (紀元前 1 世紀のローマの建築家)、紀元前 25 年頃

ソフトウェア アーキテクトはバランスがとれ、成熟し、開発構想を持ち、完全な情報がなくても問題を迅速に把握し、経験に基づいて重要な判断を下すことのできる深い経験を持った人である必要があります。具体的には、ソフトウェア アーキテクトまたはアーキテクト チームのメンバーには次のスキルが必要です。

  • 要求をすべて熟知した上での問題領域とソフトウェア開発領域の両方における経験。チームの場合は、この性質がチーム メンバー全体としてあれば十分ですが、少なくとも 1 人のソフトウェア アーキテクトがプロジェクト全体の開発構想を持っている必要があります。
  • さまざまなチーム全体にわたる技術的な作業を進め、プレッシャーに負けずに重要な判断を下し、その判断を浸透させることのできるリーダーシップ。効率的に行うには、ソフトウェア アーキテクトとプロジェクト管理者が緊密に共同作業し、ソフトウェア アーキテクトが技術的な問題を、プロジェクト管理者が管理的な問題をそれぞれ指導する必要があります。ソフトウェア アーキテクトは、技術的な判断を下す権限を持ちます。
  • 信頼性を高め、説得し、動機付けを行い、指導するために必要なコミュニケーション能力。ソフトウェア アーキテクトは命令ではなく、プロジェクトのほかのメンバーの同意を得ることでプロジェクトを導きます。効率的に行うには、ソフトウェア アーキテクトがプロジェクト チーム、プロジェクト管理者、顧客に加え、ユーザー コミュニティ、管理チームからも信頼を得る必要があります。
  • 結果についての明確な目標の方向付けと事前作業。ソフトウェア アーキテクトは、現実に則してプロジェクト全体を推進します。優秀なソフトウェア アーキテクトは、不確実要素が多く、プレッシャーのある中でも常に適切と思われる判断を下すことができます。実行すべきことに集中していれば、このようなプロジェクトの環境下でも成すべきことを遂行できます。

技術的な面では、ソフトウェア アーキテクトは、すべての役割: 設計者の能力を備えている必要があります。ただし、次の点で設計者と異なります。

  • 専門家となるよりも、万能選手となる傾向があります。いくつかの技術を詳細に知っているのではなく、多数の技術を高いレベルで知ることが重要です。
  • より幅広い技術的決定を行います。したがって、コミュニケーション能力やリーダーシップに加えて、幅広い知識や経験が重要となります。
役割の割り当て方法 ページの先頭へ

アーキテクチャ チームを編成するほどプロジェクトが大きい場合は、さまざまな能力を保持し、幅広い経験範囲を網羅し、ソフトウェア開発プロセスの共通の認識を共有することが目的となります。アーキテクチャ チームは、さまざまなチーム、領域、契約者の混成にする必要はありません。ソフトウェア アーキテクチャはフルタイムの職務であり、常に専任の人員が配置されます。

小規模なプロジェクトでは、プロジェクト管理者とソフトウェア アーキテクトの両方を 1 人で担当する場合もあります。ただし可能な限り、これらの役割にはそれぞれ別のメンバーを割り当てるべきです。一方の役割の作業に時間がかかり、もう一方の役割がおろそかになる可能性があります。

補足資料 ページの先頭へ

ソフトウェア アーキテクチャについて詳しくは、参考資料を参照してください。



Rational Unified Process   2003.06.15