ソフトウェアアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/09 02:33 UTC 版)
ソフトウェアアーキテクチャ(英: Software Architecture)は、ソフトウェアコンポーネント、それらの外部特性、またそれらの相互関係から構成される。また、この用語はシステムのソフトウェアアーキテクチャの文書化を意味することもある。ソフトウェアアーキテクチャの文書は開発依頼主とのコミュニケーションを容易にするもので、概要レベルの設計に関する早期の決定を促し、プロジェクト間でのコンポーネントとパターンの設計を再利用することを可能にする[1]。
- ^ ptmthanh (2022年6月1日). “ソフトウェアアーキテクチャとは?ソフトウェアアーキテクチャの基本を解説!”. CMC Japan. 2024年2月9日閲覧。
- ^ University of Waterloo (2006年). “A Very Brief History of Computer Science”. 2006年9月23日閲覧。
- ^ IEEE Transactions on Software Engineering (2006年). “Introduction to the Special Issue on Software Architecture”. 2006年9月23日閲覧。
- ^ SEI (2006年). “How do you define Software Architecture?”. 2006年9月23日閲覧。
- ^ a b SoftwareArchitectures.com (2006年). “Intro to Software Quality Attributes”. 2006年9月23日閲覧。
- ^ SEI (2006年). “Origins of Software Architecture Study”. 2006年9月25日閲覧。
- ^ Garlan & Shaw (2006年). “An Introduction to Software Architecture”. 2006年9月25日閲覧。
- ^ 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
- ^ Robert C. Martin. (2012). The Clean Architecture.
- 1 ソフトウェアアーキテクチャとは
- 2 ソフトウェアアーキテクチャの概要
- 3 背景
- 4 歴史
- 5 アーキテクチャの記述法
- 6 アーキテクチャの例
ソフトウェアアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/25 14:43 UTC 版)
「NetworkManager」の記事における「ソフトウェアアーキテクチャ」の解説
NetworkManagerは2つのソフトウェアコンポーネントが存在する。 NetworkManagerデーモン: 接続の管理と変更の報告を行うソフトウェア。 GNOME・KDE・Xfce・LXQt・Cinnamonなどのデスクトップ環境向けのGUIフロントエンド。 これらのコンポーネントは適切に移植が出来るように設計されており、アプレットはfreedesktop.orgの「System Tray Protocol」を実装するデスクトップ環境で利用できる。コンポーネントはD-Busを介して通信をするので、アプリケーションはリンクで対応するか既存のアプレットを置き換えることが可能となっている。ノベルがSUSE Linux向けに開発したKDE向けのフロントエンドである「KNetworkManager」はこの機能を利用している。
※この「ソフトウェアアーキテクチャ」の解説は、「NetworkManager」の解説の一部です。
「ソフトウェアアーキテクチャ」を含む「NetworkManager」の記事については、「NetworkManager」の概要を参照ください。
ソフトウェアアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/12/05 15:01 UTC 版)
「データフロー」の記事における「ソフトウェアアーキテクチャ」の解説
詳細は「データフロープログラミング」を参照 ソフトウェアアーキテクチャとしてのデータフローは、ある変数の値が変更されたときに他の変数の値を自動的に再計算させるという考え方(リアクティブプログラミング(英語版))に基づいている。 データフロー言語はその原理を取り入れたもので、その意味では表計算ソフトが最も一般的な例であろう。例えば、表計算ソフトでは、あるセルに他のセルの値を使った計算式を対応付けることができる。そして、任意のセルの値を変更すると、自動的にその値に依存している他のセルの再計算が行われる。これは依存関係がある限りずっと続く。 データフロー技術は数値の再計算だけに限られない。例えば、マウスの動きに対応して絵を再描画するとか、周囲の明るさの変化に対応してロボットが反応するといったこともデータフロー的な考え方に基づいている。 データフローの利点の1つとして、プログラム内のコードの結合度を減らすことができる点が挙げられる。例えば、変数 X が 変数 Y に依存しているとする。データフローを導入しない状況では、Y が変更されたら明示的に X を再計算しなければならない。これはつまり、Y が X と密接に結合していることを示す。同時に X の値は Y の値に依存しているので、X も Y に結合している。この依存関係からプログラム内に環状の依存関係が生まれる。このような状況に対処する手法として Observer パターンがあるが、そのためのコード量は決して少なくない。データフローでは、X の再計算を自動的に行うことで Y から X への結合を解消し、この状況を改善する。データフローは通常なら多大なコードを要するようなことを暗黙のうちに実現している。 データフローをサポートすべく作成されたプログラミング言語もいくつか存在する。特にビジュアルプログラミング言語にはデータフローの考え方に基づいているものが多い。Javaベースのフレームワークの例として Pervasive DataRush がある。
※この「ソフトウェアアーキテクチャ」の解説は、「データフロー」の解説の一部です。
「ソフトウェアアーキテクチャ」を含む「データフロー」の記事については、「データフロー」の概要を参照ください。
ソフトウェアアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/09 04:37 UTC 版)
「KDE Plasma 5」の記事における「ソフトウェアアーキテクチャ」の解説
KDE Plasma 5はQt 5とKDE Frameworks 5を使用して構築されている。 HiDPIディスプレイのサポートが改善された。統合されたグラフィカルシェルが提供されており、使用中のデバイスに合わせてグラフィカルシェルを変更することができる。デスクトップはOpenGL ESベースのシーングラフ(英語版)を基盤としたハードウェアアクセラレーションに対応した新しいグラフィックススタックへの移行が行われた。KDE Plasma 5ではKDE Plasma 4のQt Quick(英語版)からの移行が行われた。Qt 5のQt Quick 2は、ハードウェアアクセラレーションされたOpenGL ESのシーングラフを利用して画面上に描画を行う。これによって、描画処理をGPUに負担させることが可能となり、CPUの計算資源を開放することで電力効率が向上した。
※この「ソフトウェアアーキテクチャ」の解説は、「KDE Plasma 5」の解説の一部です。
「ソフトウェアアーキテクチャ」を含む「KDE Plasma 5」の記事については、「KDE Plasma 5」の概要を参照ください。
ソフトウェアアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/16 06:41 UTC 版)
「ソフトウェア開発工程」の記事における「ソフトウェアアーキテクチャ」の解説
ソフトウェアシステムのアーキテクチャとは、システムを抽象的に表現したものである。アーキテクチャはソフトウェアシステムが製品として要求に適合しているかを検証するのに使用される他、将来の追加要求に応えるためにも使用される。アーキテクチャ作成段階ではソフトウェアシステム間や他のソフトウェア製品間のインターフェイスも規定し、ハードウェアやオペレーティングシステムも規定する。
※この「ソフトウェアアーキテクチャ」の解説は、「ソフトウェア開発工程」の解説の一部です。
「ソフトウェアアーキテクチャ」を含む「ソフトウェア開発工程」の記事については、「ソフトウェア開発工程」の概要を参照ください。
ソフトウェアアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/09/04 19:50 UTC 版)
「AsteroidOS」の記事における「ソフトウェアアーキテクチャ」の解説
AsteroidOSは、OpenEmbeddedを利用した組み込みLinuxのように構築されており、Linuxカーネルとsystemd上で動作する。AsteroidOSには、Mer(英語版)やNemo向けに開発されたLipstickやMCEなどのモバイルLinuxミドルウェアが含まれている。 AsteroidOSのユーザインタフェースは、Qt 5によって書かれている。アプリケーションはQMLで書かれており、グラフィックコンポーネントとしてQt QuickとQML-Asteroidを利用している。Qt Creator(英語版)に統合されたクロスコンパイラを備えたSDKは、OpenEmbeddedから生成することによって、容易に開発をすることができる。 Asteroid-launcherはWaylandコンポジターで、カスタマイズ可能なホーム画面で、アプリケーション・ウォッチフェイス・通知・クイック設定の管理を行う。Asteroid-launcherはHybris(英語版)互換レイヤー上で動作し、Bionic(英語版)GPUドライバを利用する。 AsteroidOSは、BlueZ 5上で動作するasteroid-btsyncdとBluetooth Low Energy同期機能を提供する。リファレンスクライアントであるAsteroidOS SyncをAndroidユーザーは利用することができる。
※この「ソフトウェアアーキテクチャ」の解説は、「AsteroidOS」の解説の一部です。
「ソフトウェアアーキテクチャ」を含む「AsteroidOS」の記事については、「AsteroidOS」の概要を参照ください。
ソフトウェアアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/03 08:24 UTC 版)
「Sailfish OS」の記事における「ソフトウェアアーキテクチャ」の解説
Sailfish OSと同ソフトウェア開発キットはLinuxカーネルとMerを土台としている。Sailfish OSには、ヨーラによってWayland(ディスプレイサーバのプロトコル)上に構築された"Lipstick" と呼ばれるマルチタスク実行のグラフィカルシェルが入っている。ヨーラは無料でオープンソースの描画デバイスドライバを使用しているが、Hybris (software)ライブラリではAndroid向けに独自のドライバを使うこともできる。ヨーラの掲げる目標は、Sailfishが最終的にオープンソースになることである。 Sailfish OSは、独自の互換性レイヤを介してAndroidアプリケーションを実行することができる。
※この「ソフトウェアアーキテクチャ」の解説は、「Sailfish OS」の解説の一部です。
「ソフトウェアアーキテクチャ」を含む「Sailfish OS」の記事については、「Sailfish OS」の概要を参照ください。
ソフトウェアアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/11 08:49 UTC 版)
「AUTOSAR」の記事における「ソフトウェアアーキテクチャ」の解説
AUTOSARのアーキテクチャは、次の3つの階層で構成されている。 BSW(Basic SoftWare):上層ソフトウェアの機能を動かすための必須サービスを提供する標準ソフトウェアモジュール。ほとんどの場合、BSWには上層ソフトウェアに見られるような機能は存在しない。 RTE(Run Time Environment):アプリケーションソフトウェアのECU内、ECU間通信をネットワークトポロジーに依存せず抽象化するための中間層。 アプリケーション層:アプリケーションソフトウェアのコンポーネント。RTEとやりとりを行う。
※この「ソフトウェアアーキテクチャ」の解説は、「AUTOSAR」の解説の一部です。
「ソフトウェアアーキテクチャ」を含む「AUTOSAR」の記事については、「AUTOSAR」の概要を参照ください。
ソフトウェアアーキテクチャ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/05 10:02 UTC 版)
「Linuxゲーム」の記事における「ソフトウェアアーキテクチャ」の解説
Linuxカーネルに基づくOSは、ゲームのためにカスタマイズすることができ、これは"vanilla"Linux カーネルを少し変更することで実現できる。また、Androidのように相対的に大きく改変されたLinuxカーネルを用いることもできる。
※この「ソフトウェアアーキテクチャ」の解説は、「Linuxゲーム」の解説の一部です。
「ソフトウェアアーキテクチャ」を含む「Linuxゲーム」の記事については、「Linuxゲーム」の概要を参照ください。
ソフトウェアアーキテクチャと同じ種類の言葉
- ソフトウェアアーキテクチャのページへのリンク