ソフトウェア・アーキテクチャとは? わかりやすく解説

Weblio 辞書 > 同じ種類の言葉 > 人文 > 概念 > アーキテクチャ > ソフトウェア・アーキテクチャの意味・解説 

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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/09 02:33 UTC 版)

ソフトウェアアーキテクチャ: Software Architecture)は、ソフトウェアコンポーネント、それらの外部特性、またそれらの相互関係から構成される。また、この用語はシステムのソフトウェアアーキテクチャの文書化を意味することもある。ソフトウェアアーキテクチャの文書は開発依頼主とのコミュニケーションを容易にするもので、概要レベルの設計に関する早期の決定を促し、プロジェクト間でのコンポーネントとパターンの設計を再利用することを可能にする[1]

背景

計算機科学の分野は、その草創期から複雑性に関する問題を扱ってきた[2]。初期の複雑性の問題は、開発者が正しいデータ構造を使い、アルゴリズムを開発し、問題を分割する手法を用いることによって解決されていた。その一方で、「ソフトウェアアーキテクチャ」という用語は、業界でも比較的新しいものである。その分野の根本原理は、1980年代ごろからソフトウェア工学の先駆者たちによって散発的に適用されてきた。そのため、システムのソフトウェアアーキテクチャを説明する初期の試みは、不正確で混乱したものであった(四角形と線で描かれた図など)[3]。1990年代、ソフトウェアアーキテクチャの根本的な記述方法の成文化が集中的に行われた。その結果、初期のデザインパターンベストプラクティス、記述言語、形式論理などが開発された。

ソフトウェアアーキテクチャとは、抽象化問題の分割によって複雑性を減らすことを主に念頭に置いたものである。ただし、今までのところ「ソフトウェアアーキテクチャ」という用語に関して、万人が合意した厳密な定義は存在しない[4]

ソフトウェアアーキテクチャは、分野としては円熟してきていながらも、明確な規則がない。そして、技術者はそのような環境の中でシステムを設計しなければならないため、その作業は未だに科学と技能の混合となっている。ソフトウェアアーキテクチャの「技能」的側面は、商用ソフトウェアシステムがビジネスに使用されているという点によるところが大きい。また、システムがビジネスの重要な一部を担っているため、システムの要求仕様は機能仕様ではなく、品質レベルなどで記述されることが多い[5]。システムは、ビジネスの性質に依存するため千差万別であり、品質特性のレベルもシステムによってさまざまである。例えば、フォールトトレラント性が求められたり、互換性が重視されたり、拡張性信頼性保守性可用性情報セキュリティユーザービリティなどといった面が重視されたりする[5]

ソフトウェアアーキテクチャは、システムが備えるべき複数の洞察の混合物である。そのようないくつかの観点がソフトウェアアーキテクチャに組み込まれるということは、ソフトウェア開発が具体化する前に、ソフトウェアアーキテクチャを作成することの正当性を示している。

歴史

概念としてのソフトウェアアーキテクチャの起源は、1968年のエドガー・ダイクストラの研究や1970年代初期のデイビッド・パーナスの研究である。科学者たちは、ソフトウェアシステムの構造が重要であり、構造を正しくすることが肝要であることを強調した[6]1990年代初期には、この領域の研究は盛んになり、アーキテクチャ上のスタイル(パターン)、アーキテクチャ記述言語、アーキテクチャの文書化、形式手法などが主に研究されるようになった[7]カーネギーメロン大学カリフォルニア大学アーバイン校(UCI)など多数の研究機関がソフトウェアアーキテクチャの研究を行っている。カーネギーメロン大学の Mary Shaw と David Garlan の著書 Software Architecture: Perspectives on an Emerging Discipline(1996年)で、コンポーネント、コネクター、スタイルといったソフトウェアアーキテクチャ上の概念を提唱した。UCI の Institute for Software Research では、アーキテクチャ上のスタイル、アーキテクチャ記述言語、動的アーキテクチャなどを主に研究している。

ANSI/IEEE 1471-2000: Recommended Practice for Architecture Description of Software-Intensive Systems(ソフトウェアシステムのアーキテクチャ記述のための指針)は、ソフトウェアアーキテクチャの領域での世界初の標準であり、最近 ISO によって ISO/IEC DIS 25961 として採用された。

アーキテクチャの記述法

アーキテクチャ記述言語

アーキテクチャ記述言語(ADL) は、ソフトウェアアーキテクチャを記述するための言語である。これまで、いくつかの ADL がそれぞれ異なる組織によって開発されてきた。例えば、Wright(カーネギーメロン大学)、Acme(カーネギーメロン大学)、xADL(UCI)、Darwin(インペリアル・カレッジ・ロンドン)、DAOP-ADL(マラガ大学)などがある。また、ADL の基本要素として、コンポーネント、コネクター、コンフィギュレーションなどがある。

ビュー

ソフトウェアアーキテクチャは、一般に複数のビュー(Views)で構成される[8]。これは、建築で複数のさまざまな設計図が使用されるのに似ている。ANSI/IEEE 1471-2000によれば、ビューはビューポイント(viewpoints、観点)のインスタンスであり、ビューポイントとはそのシステムの関係者がそれぞれの立場で必要とするアーキテクチャを記述したものである。

以下のようなビュー(1471 ではビューポイント)がある。

  • 機能/ロジックビュー
  • コードビュー
  • 開発/構造ビュー
  • 並列性/プロセス/スレッドビュー
  • 物理/配置ビュー
  • ユーザー行動/フィードバックビュー

ソフトウェアアーキテクチャを記述するための言語は、いくつか考案されているが、どれも広く受け入れられてはいない。

アーキテクチャのフレームワーク

アーキテクチャの例

コンピュータソフトウェアのモジュール群を設計し、それらの間で通信を行う共通的な手法は数々存在する。以下に例をあげる。

関連項目

脚注

  1. ^ ptmthanh (2022年6月1日). “ソフトウェアアーキテクチャとは?ソフトウェアアーキテクチャの基本を解説!”. CMC Japan. 2024年2月9日閲覧。
  2. ^ University of Waterloo (2006年). “A Very Brief History of Computer Science”. 2006年9月23日閲覧。
  3. ^ IEEE Transactions on Software Engineering (2006年). “Introduction to the Special Issue on Software Architecture”. 2006年9月23日閲覧。
  4. ^ SEI (2006年). “How do you define Software Architecture?”. 2006年9月23日閲覧。
  5. ^ a b SoftwareArchitectures.com (2006年). “Intro to Software Quality Attributes”. 2006年9月23日閲覧。
  6. ^ SEI (2006年). “Origins of Software Architecture Study”. 2006年9月25日閲覧。
  7. ^ Garlan & Shaw (2006年). “An Introduction to Software Architecture”. 2006年9月25日閲覧。
  8. ^ Clements, Paul; Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Robert Nord, Judith Stafford (2003年). Documenting Software Architectures: Views and Beyond. Boston: Addison-Wesley. pp. pp. 13-15. ISBN 0-201-70372-6 
  9. ^ Robert C. Martin. (2012). The Clean Architecture.

参考文献

  • Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice, Second Edition. Addison Wesley, Reading 5/9/2003 ISBN 0-321-15495-9 (現在は第二版。基本概念を詳述している。テーマは主に品質に関すること)
  • Garzás, Javier, and Piattini, Mario. An ontology for micro-architectural design knowledge, IEEE Software Magazine, Volume: 22, Issue: 2, March-April 2005. pp. 28 – 33.
  • Philippe Kruchten: Architectural Blueprints - the 4+1 View Model of Software Architecture. In: IEEE Software. 12 (6) November 1995, pp. 42-50 (オンライン版は Rational website(PDF))

外部リンク


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/25 14:43 UTC 版)

NetworkManager」の記事における「ソフトウェアアーキテクチャ」の解説

NetworkManager2つソフトウェアコンポーネント存在するNetworkManagerデーモン: 接続管理変更報告を行うソフトウェアGNOMEKDEXfceLXQtCinnamonなどのデスクトップ環境向けのGUIフロントエンド。 これらのコンポーネント適切に移植出来るように設計されており、アプレットfreedesktop.orgの「System Tray Protocol」を実装するデスクトップ環境利用できるコンポーネントD-Busを介して通信をするので、アプリケーションはリンクで対応する既存アプレット置き換えることが可能となっている。ノベルSUSE Linux向けに開発したKDE向けのフロントエンドである「KNetworkManager」はこの機能利用している。

※この「ソフトウェアアーキテクチャ」の解説は、「NetworkManager」の解説の一部です。
「ソフトウェアアーキテクチャ」を含む「NetworkManager」の記事については、「NetworkManager」の概要を参照ください。

ウィキペディア小見出し辞書の「ソフトウェア・アーキテクチャ」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



ソフトウェア・アーキテクチャと同じ種類の言葉


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ソフトウェア・アーキテクチャ」の関連用語

ソフトウェア・アーキテクチャのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ソフトウェア・アーキテクチャのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのソフトウェアアーキテクチャ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのNetworkManager (改訂履歴)、データフロー (改訂履歴)、KDE Plasma 5 (改訂履歴)、ソフトウェア開発工程 (改訂履歴)、AsteroidOS (改訂履歴)、Sailfish OS (改訂履歴)、AUTOSAR (改訂履歴)、Linuxゲーム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS