SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

翔泳社では、「独習」「徹底入門」「スラスラわかる」「絵で見てわかる」「一年生」などの人気シリーズをはじめ、言語や開発手法、最新技術を解説した書籍を多数手がけています。プロジェクトマネジメントやチームビルティングといった管理職向けの書籍も豊富です。

ITエンジニアとしてのスキルアップ・リスキリングに、ぜひお役立てください。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
Developers Summit 2023 Summer セッションレポート

『ソフトウェアアーキテクチャの基礎』島田浩二氏が語る、エンジニアが最初に知っておくべきアーキテクチャリテラシー

【C-1】これから学ぶ人のためのソフトウェアアーキテクチャ入門

  • X ポスト
  • このエントリーをはてなブックマークに追加

 ソフトウェアアーキテクチャはシステムの成功に不可欠な要素であり、ソフトウェア開発者にはこの分野における効果的なスキルが求められる。しかし、その学習資料はまだ十分ではないのが現実である。株式会社えにしテックの代表取締役 島田浩二氏は、ソフトウェアアーキテクチャに関する書籍を多数翻訳している。Developers Summit 2023 Summerに登壇した島田氏は、数々の書籍から学んだソフトウェアアーキテクチャの重要なエッセンスを紹介した。

  • X ポスト
  • このエントリーをはてなブックマークに追加

ソフトウェアアーキテクチャとは? 3つの定義を紹介

 島田氏は2009年に株式会社えにしテックを設立。2011年からは一般社団法人日本Rubyの会の理事を務めている。島田氏が翻訳に携わった書籍には、『進化的アーキテクチャ』『ソフトウェアアーキテクチャハードパーツ』、『ソフトウェアアーキテクチャの基礎』『Design It!』(いずれもオライリージャパン)などがある。

 『進化的アーキテクチャ』の出版は2018年であった。当時、ソフトウェアアーキテクチャは通好みのテーマであり、長期にわたってじわりと読まれるジャンルであると考えられていた。しかし、その後の技術トレンドの変遷の波にのり、モノリスからマイクロサービスへの移行に関する内容が多くの反響を呼んだ。『ソフトウェアアーキテクチャの基礎』は、ITエンジニア本大賞2023の最終選考に残るなど、大きな反響を得ている。島田氏は「現在国内において、ソフトウェアアーキテクチャに対する興味関心というのが非常に高まっていることを強く感じています」と語り、ソフトウェアアーキテクチャとは何かの説明を始めた。

 ソフトウェアアーキテクチャについては、全ての人が合意する厳密な定義は存在しない。しかし、島田氏が翻訳した書籍を通じて、異なる著者間でもソフトウェアアーキテクチャに関する根底に共通する考え方が存在することが分かるという。島田氏は、ソフトウェアアーキテクチャの定義を3つ示した。1つは、ソフトウェアアーキテクチャは社会的構築物であること。2つ目は、品質要求を満たすための設計であること。そして3つ目は、システムの構成に関する設計であることだ。

 島田氏は、ソフトウェアアーキテクチャが社会的構築物とされる理由について、マーティン・ファウラー氏の2003年のエッセイ「Who Needs an Architect?」を引用して説明した。このエッセイは、現代のソフトウェアアーキテクチャを再考する上での出発点となっている。このエッセイの中で、デザインパターンの著者ラルフ・ジョンソン氏は、アーキテクチャはソフトウェア制作に関わる集団が重要と判断した結果に基づいて構築されると述べ、これを社会的構築物と定義している。この視点は『Design It!』や『ソフトウェアアーキテクチャの基礎』などの書籍にも見受けられる。

 ソフトウェアアーキテクチャの2つ目の定義として、品質要求を満たすための設計がある。品質要求については、IPAが出した「つながる世界のソフトウェア品質ガイド」が参考になる。この中で紹介されている国際規格SQuaREは、ソフトウェアの品質を製品品質と利用時の品質で分類している。ソフトウェアアーキテクチャにおいて自分たちのシステムに必要なものを選定し、システムに組み込んで品質を確保することが目的である。プロセスとしては、ソフトウェアの開発段階で求められる品質要求を明らかにし、それをシステムに組み込んで品質が満たされているかを検証することが重要である。

ソフトウェアアーキテクチャで満たすべき「システム&ソフトウェア品質ライフサイクル」のプロセス
ソフトウェアアーキテクチャで満たすべき「システム&ソフトウェア品質ライフサイクル」のプロセス

 3つ目の定義として、システムの構成に関する設計がある。この点についても、マーティン・ファウラーの「Who Needs an Architect?」からラルフ・ジョンソンのアーキテクチャの定義を参照すると、「アーキテクチャは社会的構築物であり、成功するソフトウェアプロジェクトでは専門家や開発者がシステム設計についての共通の理解を持っている」とされる。ジョンソンはアーキテクチャを、システムがどのようにコンポーネントに分割され、コンポーネントがインターフェースを介してどのように対話するかの理解と定義している。このコンポーネントの分割がソフトウェアアーキテクチャにおいて重要な要素であると述べている。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
よいアーキテクチャはどのようにして実現されるのか? 複数の視点を持つメリット

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2023 Summer セッションレポート連載記事一覧

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18770 2024/01/10 11:00
" ); }

おすすめ

アクセスランキング

  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説 NEW
  2. 2
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  3. 3
    Microsoft、オープンソースのプログラミング言語「TypeScript 5.8」をリリース NEW
  4. 4
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──React Server Componentsとその他の改善点 NEW
  5. 5
    ゲーム業界で働くプログラマ・エンジニア、8割超が現在の職場のスキル評価に満足 NEW
  1. 6
    変化が激しい時代が抱える「3つのリスク」とは? 塩谷啓氏が語るベテランエンジニアの生存戦略
  2. 7
    GitHub、あらゆるエディタやIDEとGitHub Copilotとの統合を可能にする「Copilot Language Server SDK」を一般公開
  3. 8
    50歳以上のITエンジニアの転職動向はいかに?リクルートが調査 NEW
  4. 9
    SNSマーケティングを支えるエンジニア──toridoriのエンジニアリングマネージャーが語るマネジメント職の大切さとは?
  5. 10
    Google Cloud、個人向け「Gemini Code Assist」の無償でのパブリックプレビューを開始 NEW

アクセスランキング

  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説 NEW
  2. 2
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  3. 3
    Microsoft、オープンソースのプログラミング言語「TypeScript 5.8」をリリース NEW
  4. 4
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──React Server Componentsとその他の改善点 NEW
  5. 5
    ゲーム業界で働くプログラマ・エンジニア、8割超が現在の職場のスキル評価に満足 NEW
  6. 6
    変化が激しい時代が抱える「3つのリスク」とは? 塩谷啓氏が語るベテランエンジニアの生存戦略
  7. 7
    GitHub、あらゆるエディタやIDEとGitHub Copilotとの統合を可能にする「Copilot Language Server SDK」を一般公開
  8. 8
    50歳以上のITエンジニアの転職動向はいかに?リクルートが調査 NEW
  9. 9
    SNSマーケティングを支えるエンジニア──toridoriのエンジニアリングマネージャーが語るマネジメント職の大切さとは?
  10. 10
    Google Cloud、個人向け「Gemini Code Assist」の無償でのパブリックプレビューを開始 NEW
  1. 1
    ITエンジニア本大賞2025、技術書部門とビジネス書部門の大賞が決定!
  2. 2
    iOS・iPadOS 18.3がリリース
  3. 3
    C# 13の新機能を理解する――暗黙的なインデックスアクセスとallows ref struct
  4. 4
    マイクロソフト、VSCodeの新機能「Copilot Next Edit Suggestions」のプレビュー版公開
  5. 5
    AIや統計の数式を解説する美少女VTuber「AIcia Solid Project」生みの親が語る、継続できるアウトプット活動とは?
  6. 6
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  7. 7
    Webはどんどん複雑になっている? これまでのWebシステムのトレンドを振り返る
  8. 8
    Linuxディストリビューション「EndeavourOS Mercury」が一般提供開始
  9. 9
    ITエンジニア本大賞2025のプレゼン大会をレポート、最終決戦に臨んだ本に込められた想いとは
  10. 10
    開発者のOSS活動が会社から評価される世の中にしたい──日立製作所が専門組織設立に込めた情熱

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説 NEW
  2. 2
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  3. 3
    Microsoft、オープンソースのプログラミング言語「TypeScript 5.8」をリリース NEW
  4. 4
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──React Server Componentsとその他の改善点 NEW
  5. 5
    ゲーム業界で働くプログラマ・エンジニア、8割超が現在の職場のスキル評価に満足 NEW
  1. 6
    変化が激しい時代が抱える「3つのリスク」とは? 塩谷啓氏が語るベテランエンジニアの生存戦略
  2. 7
    GitHub、あらゆるエディタやIDEとGitHub Copilotとの統合を可能にする「Copilot Language Server SDK」を一般公開
  3. 8
    50歳以上のITエンジニアの転職動向はいかに?リクルートが調査 NEW
  4. 9
    SNSマーケティングを支えるエンジニア──toridoriのエンジニアリングマネージャーが語るマネジメント職の大切さとは?
  5. 10
    Google Cloud、個人向け「Gemini Code Assist」の無償でのパブリックプレビューを開始 NEW

アクセスランキング

  1. 1
    「オブザーバー・パターン」 ~マンガでプログラミング用語解説 NEW
  2. 2
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  3. 3
    Microsoft、オープンソースのプログラミング言語「TypeScript 5.8」をリリース NEW
  4. 4
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──React Server Componentsとその他の改善点 NEW
  5. 5
    ゲーム業界で働くプログラマ・エンジニア、8割超が現在の職場のスキル評価に満足 NEW
  6. 6
    変化が激しい時代が抱える「3つのリスク」とは? 塩谷啓氏が語るベテランエンジニアの生存戦略
  7. 7
    GitHub、あらゆるエディタやIDEとGitHub Copilotとの統合を可能にする「Copilot Language Server SDK」を一般公開
  8. 8
    50歳以上のITエンジニアの転職動向はいかに?リクルートが調査 NEW
  9. 9
    SNSマーケティングを支えるエンジニア──toridoriのエンジニアリングマネージャーが語るマネジメント職の大切さとは?
  10. 10
    Google Cloud、個人向け「Gemini Code Assist」の無償でのパブリックプレビューを開始 NEW
  1. 1
    ITエンジニア本大賞2025、技術書部門とビジネス書部門の大賞が決定!
  2. 2
    iOS・iPadOS 18.3がリリース
  3. 3
    C# 13の新機能を理解する――暗黙的なインデックスアクセスとallows ref struct
  4. 4
    マイクロソフト、VSCodeの新機能「Copilot Next Edit Suggestions」のプレビュー版公開
  5. 5
    AIや統計の数式を解説する美少女VTuber「AIcia Solid Project」生みの親が語る、継続できるアウトプット活動とは?
  6. 6
    3/5まで書籍全文が無料公開 『Pythonで動かして学ぶ!Kaggleデータ分析入門』
  7. 7
    Webはどんどん複雑になっている? これまでのWebシステムのトレンドを振り返る
  8. 8
    Linuxディストリビューション「EndeavourOS Mercury」が一般提供開始
  9. 9
    ITエンジニア本大賞2025のプレゼン大会をレポート、最終決戦に臨んだ本に込められた想いとは
  10. 10
    開発者のOSS活動が会社から評価される世の中にしたい──日立製作所が専門組織設立に込めた情熱