世界標準のソフトウェア工学知識体系
SWEBOK Guide最新第4版を通じた
開発アップデート
鷲崎 弘宜
早稲田大学 教授
IEEE Computer Society 2025 President
(株)エクスモーション 社外取締役
人間環境大学 顧問
http://www.washi.cs.waseda.ac.jp/
Developers Summit 2024
2024年2月15日 羽田空港
目次
• エンジニアリングしてますか?
• SWEBOK Guideとは何?
• 開発アップデートにどう役立つ?
• ソフトウェアエンジニアリング/SWEBOK Guideの未来は?
2
エンジニアリングしてますか?
3
エンジニアリン
グとは科学に
裏打ちされた
技術活動、学
問体系
4
ソフトウェアエンジニアリングとは
The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of
software; that is, the application of engineering to software.
ソフトウェアの開発、運用、保守に対する体系的、規律的、定
量的なアプローチの適用。つまりソフトウェアへのエンジニア
リング(工学・技術活動)の適用。
SWEBOK Guide v4
5
我々のソフトウェ
ア技術活動は、
正統なエンジニ
アリングか?
6
正統なエンジニアリング
職業人が果たす判断,
行為,助言が,社会で
実質的な価値を形成
7
松本吉弘, “エンジニアリング基礎知識体系とISO標準”, ITSCJ Newsletter, No.88, 2010.
Paul Star, “The Social Transformation of American Medicine,” Basic Books, 1982.
知識・適格性の妥当
性をコミュニティで
判定できる環境
コミュニティで妥当と確
認される知識が科学的
基盤に基づく
プラクティス、
パターンと手法
知識の体系
知識の島々
活動
To Do Doing Done
SWEBOK
SQuBOK
8
知識体系 Body Of Knowledge
妥当と認められ
た知識群を整
理・構造化し
た全体
専門領域の定
義づけ
文献
文献
・・・
・・・
BOK ガイド
カテゴリ
知識領域
トピック
(知識項目)
知識体系へのガイド
知識領域の大分類
(BOKによっては無し)
知識の技術・プロセス
上の分類
最小の知識単位
(技術・プロセス知識)
知識の詳細記述・実体
9
SWEBOK GUIDEとは何?
10
Guide to the Software Engineering Body of Knowledge (SWEBOK)
ソフトウェアエンジニアリング知識体系ガイド
http://swebokwiki.org
• 歴史:2001 v1, 2004 v2, 2005 ISO/IEC TR, 2014 v3,
2024 v4 間もなく!
• 目的
– 学習者、研究者、実務者が、ソフトウェアエンジニアリン
グにおける「一般に認められた知識」を特定し、共通の
理解を持つよう導く
– 関連分野との境界の定義
– 資格や教育カリキュラムの基礎
• 導入・採用
– SWEBOKに基づくIEEE-CSソフトウェアプロフェッショナル
認定プログラム)
– ISO/IEC 24773-4: ソフトウェアおよびシステムエンジニ
アリングの専門家の認定 - 第 4 部:ソフトウェアエンジ
ニアリング
– ソフトウェアエンジニアリング・コンピテンシーモデル(
SWECOM)
活動・プラク
ティス
知識体系
Body of
Knowledge
知識の
島々
11
メイン
フレーム
70’s –
Early 80’s
Late 80’s -
Early 90’s
Late 90’s -
Early 00’s
Late 00’s -
Early 10’s
PC,
クライアント
サーバ
インターネット
ユビキタス
Late 10’s -
Early 20’s
IoT,
ビッグデータ,
AI
Structured
programming
Waterfall
Formalization
Design
Program
generation
Maturity
Management
Object-oriented
Req. eng.
Modeling
Verification
Reuse
Model-driven
Product-line
Global & open
Value-based
Systems eng.
Agile
Iterative &
incremental
DevOps
Empirical
Data-driven
Continuous
SE and IoT
SE and AI
SWEBOK V1
SWEBOK V2
SWEBOK V3
SWEBOK V4
要求
設計
構築
テスト
保守
構成管理
マネジメント
プロセス
モデル・手法
品質
専門職
経済
計算基礎
数学基礎
工学基礎
SWEBOK Guide V3からV4への進化
• 現代的なソフトウェアエンジニアリング、プラクティスの変化や更新、知識体系の成長・新領域
• パブリックレビュー中! https://www.computer.org/volunteering/boards-and-committees/professional-educational-activities/software-
engineering-committee/swebok-evolution
要求
アーキテクチャ
設計
構築
テスト
運用
保守
構成管理
マネジメント
プロセス
モデル・手法
品質
セキュリティ
専門職
経済
計算基礎
数学基礎
工学基礎
SWEBOK V3 SWEBOK V4
アジャ
イル,
DevOps
AIとソフトウェアエン
ジニアリング
13
新領域: ソフトウェアアーキテクチャ
14
14
アーキテクチャ領域の取り込みへ
15
• 基礎概念
– 以前は抽象的に扱われていた
が、実践的に扱えるように
– 大きなシステムを扱うようになり
、根底にある基本原理と実践に
触れる必要性
• 実践
– 複雑なサイバーフィジカルシステ
ムが広く普及し、重要性増
– アジャイルで迅速な解決の必要
性が高まり、早期に頻繁に「物事
を正しく理解」する必要性を加速
– 実務家が生き残るために基本原
則の知識が不可欠
新領域: ソフトウェアセキュリティ
16
ソフトウェアセキュリティ領域の取り込みへ
• 基礎概念
– セキュリティの基礎
– 開発ライフサイクルに沿った基
本的なセキュリティ工学技術
• 実践
– セキュリティツールやパターン
を含む、実用的なセキュリティソ
リューション
– ドメイン固有のセキュリティ技法
– セキュリティ管理
User
id
name
ProtectionObject
id
name
* *
Authorization_rule
Right
access_type
predicate
copy_flag
checkRights
Role
id
name
*
*
MemberOf
名前: ロールベース・アクセス制御 (RBAC)
問題: 人々に機能やタスクに対する権限をどのように
与えらればよいか?
解決: 利用者にロールを割り当てて、ロールに対して
タスク実施の権限を与える
関連パターン: 認可(Authorization), ...
17
新領域: ソフトウェア運用
18
18
ソフトウェア運用領域の取り込みへ
• 基礎概念
– 「継続的ソフトウェアエンジニアリング」
時代における運用の重要性
– DevOpsプラクティスを中心とした運用
の基礎とツールの扱い
• 実践
– システムおよびソフトウェアのライフサ
イクルプロセスに不可欠な部分として
の運用の全体像
– アジャイルインフラストラクチャや
Infrastructure as Code(IaC)などの最新
のインフラストラクチャプラクティスや、
コンテナや仮想化などの実践的な考慮
事項、関連標準、ツール
19
他の拡充側面: アジャイル開発とDevOps
• アジャイル開発
– 複数の知識領域(要求事項、マネジメント、
プロセス、モデル・手法など)に直接影響、
全知識領域に間接影響
– 現代に適合:変化の激しい時代、不確実性
– 単なる新プラクティスセットではなく、パラダ
イムシフト
– クリティカルシンキングと意思決定を実現す
る他のアプローチと併用
• DevOps
– DevOpsの価値観/原則/実践とスキームに
基づくクリティカルシンキングと判断力
– DevOpsは、プロセスやあらゆる意思決定に
影響
– アジャイルは、エンジニアリングレベルとマ
ネジメントレベルの両方に影響
20
To Do Doing Done
Securing …
Product
Technical Debt …
Development Deploy & operation
Test & verification Monitoring
Dev Ops
計算基礎領域の拡充: AIとソフトウェアエンジニアリング
• 課題
– 不確実で確率的な挙動
– 十分にラベル付けされ、構造化されたデータセットの
必要性
• AI for SE
– 人間の開発者の行動を再現することで、高品質なソフ
トウェアシステムを構築
– ほぼすべての開発段階に対応
• SE for AI
– AIシステムのルールやシステム動作はデータから推
測されるため、従来のソフトウェアとは異なるAIのため
のSEを特に支援する必要がある
– パターンとしてのプラクティスの文書化
21
ソフトウェア
エンジニアリ
ング
AI
AI for SE
SE for AI
機械学習システムの設計例
• スマホで拾った音について楽器の種類を特定し、種類
に応じた記録や対応を実現したい。
• しかし、スマホのメモリや性能は限られており、大きな深
層学習モデルは載りそうにない。どうすればよいか?
22
転移学習
したモデル
小さな
判別モ
デル
何もしない
特定
結果
パターン 問題 解決
2段階予測
Two-Phase
Predictions
もともと大規模で複雑なモデルの性
能を、エッジデバイスや分散デバイ
スにデプロイした場合も維持する必
要性
利用の流れを2つの段階に分けて、シンプ
ルな段階のみをエッジ上で実行
転移学習
Transfer
Learning
複雑な機械学習モデルを訓練す
るために必要となる大規模データ
セットの不足
訓練済みモデルの一部の層を取り出して
重みを凍結し、訓練対象とせずに類似問
題の解決のため新モデルで利用
• スマホ上の小さなモデルでは音が楽器かどうか判定し、
楽器の場合にのみクラウド上の大きなモデルで種類を
特定する 2段階予測 としよう。
• 特定にあたり、様々な音データによる既存の訓練済みモ
デルを用いて転移学習 したモデルを用いよう。
『機械学習デザインパターン ―データ準備、モデル構築、MLOpsの実践上の問題と解決』Lakshmananら著, 鷲崎ら訳, オライリージャパン, 2021
開発アップデートにどう役立つ?
23
ポータル
24
辞書
文献ガイド
経済
プロフェッショナル
実践
計算基礎 数学基礎 エンジニアリング
基礎
要求 構築
設計 テスティン
グ
マネジメント プロセス
保守
構成管理 モデル・手
法
品質
様々な立場における活用
開発者
プロセス
改善
25
アーキテク
チャ
運用
セキュリ
ティ
品質
保証
基盤・
教育
• ポータル: プロセスの見直し、組み立て
• 辞書: 用語、理解の統一
• 文献ガイド: 技術・手法の参照、取り入れ
自動運転システムの例
街中
高速道路
AIプロジェクトキャンバス
MLキャンバス
アーキテクチャ設計
データ スキル
出力
価値提案
統合
ステーク
ホルダ
顧客
コスト 収益
街中と高速道路とで信頼性・安全性を考慮し
て許容可能な認識精度の機械学に基づくシ
ステムをどのように開発、改訂できるか?
Jati Husen, Hironori Washizaki, Nobukazu Yoshioka, Hnin Tun, Yoshiaki Fukazawa and Hironori Takeuchi, “Metamodel-Based Multi-View Modeling
Framework for Machine Learning Systems,” 11th International Conference on Model-Based Software and Systems Engineering (MODELSWARD 2023)
27
機械学習モデルA モデルB モデルC
分類の性能評価
安全性・信頼性論証
誤分類データ 修正に向けた選択
バランスの取れた修正 修正結果
積極的な修正
さらなる改訂へ
1. データの改訂
2. 画像の質向上に
向けたアーキテク
チャ改訂
3. ビジネスゴール
の見直し
誤分類データ
安全性解析 要求・ゴール分析
Jati Husen, Hironori Washizaki, Nobukazu Yoshioka, Hnin Tun, Yoshiaki Fukazawa and Hironori Takeuchi, “Metamodel-Based Multi-View Modeling Framework for Machine Learning
Systems,” 11th International Conference on Model-Based Software and Systems Engineering (MODELSWARD 2023)
28
Jati Husen, Hironori Washizaki, Nobukazu Yoshioka, Hnin Tun, Yoshiaki Fukazawa and Hironori Takeuchi, “Metamodel-Based Multi-View Modeling
Framework for Machine Learning Systems,” 11th International Conference on Model-Based Software and Systems Engineering (MODELSWARD 2023)
複雑・不確実な開発運用時代こそ、エンジニアリング重要
メタモデル
要求・アーキテクチャモデリング 機械学習パイプライン
要求分析・設計
評価
問題の可視化
評価
解決の可視化
29
OK
OK OK
NG
OK OK
OK
NG
NG
OK OK OK
[ML.VP1🡨
AI.VP1]
Providereliable
real-timeobject
detectionsystem
fordriving
decisionmakingin
highway(incl.
trafficsign
detectionand
lane/vehicle
detection)
• [ML.DS1]Procured
datasets
• [ML.DS2]Internal
databasefrom
collectionduring
operation
• [ML.DC1]Openand
commercialdatasets
• [ML.DC2]Data
collectedduring
operation(imageand
identificationresult)
•[ML.F1🡨
AI.D1/AI.D3]
Boundingbox
forobject(incl.
othervehicles
orsigns)
•[ML.F2🡨
AI.D2]Ridge
detectionfor
lanedetection
[ML.BM1]
Modelswillbe
developed,
tested,and
deployedtocars
monthly
• [ML.PT1]Input:
imagefromsensors
• [ML.PT2←AI.D]
Output:trafficsigns,
lanemarking,
vehicles,and
pedestrians.
[ML.De1]Use
predictionresults
fordecision-
makinginself-
drivingsystem
[ML.IS1]
Usingtestdata,
achieveveryhigh
recallandhigh
precisionin
followingcondition:
night,rainy,and
generalcondition
Datasetsissplitinto
80:20ratio
[ML.MP1]
Predictionshould
bemadein
batchesreal
time.
[ML.M1]Inputdatamonitoring
[ML.VP1🡨
AI.VP1]
Providereliable
real-timeobject
detectionsystem
fordriving
decisionmakingin
highway(incl.
trafficsign
detectionand
lane/vehicle
detection)
• [ML.DS1]Procured
datasets
• [ML.DS2]Internal
databasefrom
collectionduring
operation
• [ML.DC1]Openand
commercialdatasets
• [ML.DC2]Data
collectedduring
operation(imageand
identificationresult)
•[ML.F1🡨
AI.D1/AI.D3]
Boundingbox
forobject(incl.
othervehicles
orsigns)
•[ML.F2🡨
AI.D2]Ridge
detectionfor
lanedetection
[ML.BM1]
Modelswillbe
developed,
tested,and
deployedtocars
monthly
• [ML.PT1]Input:
imagefromsensors
• [ML.PT2←AI.D]
Output:trafficsigns,
lanemarking,
vehicles,and
pedestrians.
[ML.De1]Use
predictionresults
fordecision-
makinginself-
drivingsystem
[ML.IS1]
Usingtestdata,
achieveveryhigh
recallandhigh
precisionin
followingcondition:
night,rainy,and
generalcondition
Datasetsissplitinto
80:20ratio
[ML.MP1]
Predictionshould
bemadein
batchesreal
time.
[ML.M1]Inputdatamonitoring
[ML.VP1🡨
AI.VP1]
Providereliable
real-timeobject
detectionsystem
fordriving
decisionmakingin
highway(incl.
trafficsign
detectionand
lane/vehicle
detection)
•[ML.DS1]Procured
datasets
•[ML.DS2]Internal
databasefrom
collectionduring
operation
•[ML.DC1]Openand
commercialdatasets
•[ML.DC2]Data
collectedduring
operation(imageand
identificationresult)
•[ML.F1🡨
AI.D1/AI.D3]
Boundingbox
forobject(incl.
othervehicles
orsigns)
•[ML.F2🡨
AI.D2]Ridge
detectionfor
lanedetection
[ML.BM1]
Modelswillbe
developed,
tested,and
deployedtocars
monthly
•[ML.PT1]Input:
imagefromsensors
•[ML.PT2←AI.D]
Output:trafficsigns,
lanemarking,
vehicles,and
pedestrians.
[ML.De1]Use
predictionresults
fordecision-
makinginself-
drivingsystem
[ML.IS1]
Usingtestdata,
achieveveryhigh
recallandhigh
precisionin
followingcondition:
night,rainy,and
generalcondition
Datasetsissplitinto
80:20ratio
[ML.MP1]
Predictionshould
bemadein
batchesreal
time.
[ML.M1]Inputdatamonitoring
修正戦略の追加
訓練
修正
Jati H. Husen, Hironori Washizaki, Hnin Thandar Tun, Nobukazu Yoshioka, Yoshiaki Fukazawa, Hironori Takeuchi, Hiroshi Tanaka, Kazuki Munakata, “Extensible Modeling
Framework for Reliable Machine Learning System Analysis,” 2nd International Conference on AI Engineering – Software Engineering for AI (CAIN’23)
[要求] 獲
得、分析
[構築] 分
離、再利用
[設計] パ
ターン
[テスト] 単
体、機能
[アーキ]
記述、評価
[運用]
DevOps
[経済] 価
値ベース
[モデル] 価
値~全体
[品質]
論証
[計算基礎]
SE for AI
ソフトウェアエンジニアリング/SWEBOKの未来は
?
30
メインフレーム
70’s –
Early 80’s
Late 80’s -
Early 90’s
Late 90’s -
Early 00’s
Late 00’s -
Early 10’s
PC,
クライアント
サーバ
インターネット
ユビキタス
Late 10’s -
Early 20’s
IoT,
ビッグデータ,
AI
Structured
programming
Waterfall
Formalization
Design
Program
generation
Maturity
Management
Object-oriented
Req. eng.
Modeling
Verification
Reuse
Model-driven
Product-line
Global & open
Value-based
Systems eng.
Agile
Iterative &
incremental
DevOps
Empirical
Data-driven
Continuous
SE and IoT
SE and AI
SWEBOK V1
SWEBOK V2
SWEBOK V3
SWEBOK V4
?
?
IEEE-CS Technology Predictions Report 2023
32
IEEE CS Technology Prediction Team (Chair: Dejan Milojicic) https://www.computer.org/2023-top-technology-predictions
成功可能性が、ヒューマ
ニティへの影響よりも大
きい
ヒューマニティへの影響が、成功
可能性よりも大きい (投資の価値
大)
IEEE Future Direction 2023
IEEE-CS Technology Predictions 2024 メガトレンド
33
(汎用)人工知能
サステナビリティ
デジタルトランスフォーメーション
(汎用)人工知能
サステナビリティ
デジタルトランス
フォーメーション
2000 2020 2040
メインフレーム
70’s –
Early 80’s
Late 80’s -
Early 90’s
Late 90’s -
Early 00’s
Late 00’s -
Early 10’s
PC,
クライアント
サーバ
インターネット
ユビキタス
Late 10’s -
Early 20’s
IoT,
ビッグデータ,
AI
生成AI,
基盤モデル,
量子,
コンティニュアム
Late 20’s
Structured
programming
Waterfall
Formalization
Design
Program
generation
Maturity
Management
Object-oriented
Req. eng.
Modeling
Verification
Reuse
Model-driven
Product-line
Global & open
Value-based
Systems eng.
Agile
Iterative &
incremental
DevOps
Empirical
Data-driven
Continuous
SE and IoT
SE and AI
SEと:
生成AI
量子コンピューティング
サステナビリティ
コンティニュアム
AI支援の
DevOps
SWEBOK V1
SWEBOK V2
SWEBOK V3
SWEBOK V4
大規模言語モデルLarge Language Model
(LLM)のソフトウェア開発応用
• Large Language Models for Software Engineering: A
Systematic Literature Review (Aug 21,
https://arxiv.org/abs/2308.10620 )
– 2017年から2023年までの合計229の研究論文を収集・
分析
• LLM種別: デコーダのみのアーキテクチャ最多(GPT,
Codex, LLaMAなど)
• データセット: オープンソースデータセット利用が最
多、共通前処理としてデータ抽出・重複削除・データ
分割など
• LLMの最適化: ファインチューニング&Adam、ハード
プロンプト(すべて人手で準備した自然言語指示)と
ソフトプロンプト(部分的にチューニング可能な指示)
• 利用タスク: 構築および保守が主、生成・分類・推薦
が主
35
35
LLMのコード関連応用
• Towards an Understanding of Large Language Models in Software Engineering
Tasks (Aug 22, https://arxiv.org/abs/2308.11396 ): 123の論文分析
36
タスク 定義 LLMの役割
コード生成 ユーザー要求と指定された制約に基づい
てソースコードを自動生成
(補助)コードを生成、開発者にアイデアやプログラ
ミングの「出発点」を提供
コード要約 開発者がコードを理解し、維持するのを助
けるために、明確で、正確で、役に立つ
コードコメントを自動的に生成
異なる粒度(例えば関数)を支援したり、コードの意
図を説明したりするコード要約
コード翻訳(変換) 異なるプログラミング言語間で、機能やロ
ジックを変えることなくコードを変換するこ
と
補助コード変換、リバースエンジニアリング
欠陥検出 プログラムのクラッシュ、パフォーマンス低
下、セキュリティ問題の原因となるコード
エラーを特定し、修正
コードに潜在的な欠陥がないかチェック
コード評価・テスト コードの静的解析を行い、潜在的な問題
や改善点を特定
テストケースを作成したり、コードのパフォーマンス、
ユーザビリティ、その他の品質特性をテスト
コードマネジメント コードの版や開発者情報のマネジメント チーム協調開発、版管理
問い合わせ・相談Q&A ソフトウェア開発者とLLMのやり取り アシスタント、プロンプトエンジニアリング
グリーン&サステナブル・ソフトウェアエンジニアリング
• サステナビリティ: 資源を枯渇させることなく、将来の
世代のことを考えながら発展していくこと [国連]
– 環境: 水、土地、空気、鉱物、生態系などの天然資源保
護と社会保全
– 社会: 社会的組織の連帯、サービス、連帯におけるコミュ
ニティ(例えば社会や人々のサステナビリティへの振る舞
いや態度への影響)
– 経済: 資産や付加価値の維持(例えばグリーンソフトウェ
アの費用対効果)
• サステナブルSE/ITにおける追加側面 [a]
– 個人: 個人の資本の維持(健康、スキル、サービスへの
アクセスなど)
– 技術: ソフトウェアシステムの寿命や変化する状況やニ
ーズに応じた進化(例えば低消費電力化)
37
[a] Towards a common understanding of sustainable software development, SBE, 2022
[b] Delft University of Technology, Sustainable Software Engineering,
https://luiscruz.github.io/course_sustainableSE/2022/
環境
経済
技術
個人 社会
消費電力に関係する設計や保守の例
38
ソフトウェアの省エネ化
• 低消費電力化の仕組みのアスペクト指向による横断的自動合成
• 環境リスク緩和性を含むソフトウェア品質の測定評価と改善
ソフトウェア開発の省エネ化
• 部品化・再利用・自動生成による開
発作業の効率化と利用電力削減
プログラム
モジュール
低消費電力化アスペクト
自動合成
void around():call(void
LDC_linetrace(void)){
float turn=p_gain*(…);
…
0
2
4
6
8
10
-1600
-1400
-1200
-1000
-800
-600
-400
-200
0
状態
電圧[mV]
時間[mS]
通常運用時の電圧変化
0
2
4
6
8
10
-1600
-1400
-1200
-1000
-800
-600
-400
-200
0
状態
電圧[mV]
時間[mS]
低消費電力化後
状態
バッテリ
電圧値
自動合成を通じ
た消費電力抑制
設計
資産
パターン 部品
再利用
新規
開発
過去の
開発
プログラム
要求
組立て
アスペクト
基盤
拡張
合成
新規開発の大部分を再利
用で実現し開発効率化
“アスペクト指向プログラミングによる高性能・低消費電力化” SIGSS 2014 “A Technique for Automatic Component Extraction,” Science of
Computer Programming, 56(1-2), 2005
抽出
抽象化
まとめ
• エンジニアリング
– エンジニアリングとは科学に裏打ちされた技術活動、学問体系
– 正統であるために: コミュニティで妥当と確認される知識が科学的基盤に基づく
• SWEBOK Guide
– ソフトウェアエンジニアリング知識体系ガイド
– 現代的なソフトウェアエンジニアリング、プラクティスの変化や更新、知識体系の
成長・新領域
– アーキテクチャ、運用、セキュリティ、アジャイル&DevOps、AI
• 開発アップデートに役立つ
– ポータル、辞書、文献ガイド
• ソフトウェアエンジニアリング/SWEBOK Guideの未来
– メガトレンド: 汎用人工知能、サステナビリティ、デジタルトランスフォーメーション
– ソフトウェアエンジニアリング×生成AI、サステナビリティ、コンティニュアム、量子
39

世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート

  • 1.
    世界標準のソフトウェア工学知識体系 SWEBOK Guide最新第4版を通じた 開発アップデート 鷲崎 弘宜 早稲田大学教授 IEEE Computer Society 2025 President (株)エクスモーション 社外取締役 人間環境大学 顧問 http://www.washi.cs.waseda.ac.jp/ Developers Summit 2024 2024年2月15日 羽田空港
  • 2.
    目次 • エンジニアリングしてますか? • SWEBOKGuideとは何? • 開発アップデートにどう役立つ? • ソフトウェアエンジニアリング/SWEBOK Guideの未来は? 2
  • 3.
  • 4.
  • 5.
    ソフトウェアエンジニアリングとは The application ofa systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. ソフトウェアの開発、運用、保守に対する体系的、規律的、定 量的なアプローチの適用。つまりソフトウェアへのエンジニア リング(工学・技術活動)の適用。 SWEBOK Guide v4 5
  • 6.
  • 7.
    正統なエンジニアリング 職業人が果たす判断, 行為,助言が,社会で 実質的な価値を形成 7 松本吉弘, “エンジニアリング基礎知識体系とISO標準”, ITSCJNewsletter, No.88, 2010. Paul Star, “The Social Transformation of American Medicine,” Basic Books, 1982. 知識・適格性の妥当 性をコミュニティで 判定できる環境 コミュニティで妥当と確 認される知識が科学的 基盤に基づく
  • 8.
  • 9.
    知識体系 Body OfKnowledge 妥当と認められ た知識群を整 理・構造化し た全体 専門領域の定 義づけ 文献 文献 ・・・ ・・・ BOK ガイド カテゴリ 知識領域 トピック (知識項目) 知識体系へのガイド 知識領域の大分類 (BOKによっては無し) 知識の技術・プロセス 上の分類 最小の知識単位 (技術・プロセス知識) 知識の詳細記述・実体 9
  • 10.
  • 11.
    Guide to theSoftware Engineering Body of Knowledge (SWEBOK) ソフトウェアエンジニアリング知識体系ガイド http://swebokwiki.org • 歴史:2001 v1, 2004 v2, 2005 ISO/IEC TR, 2014 v3, 2024 v4 間もなく! • 目的 – 学習者、研究者、実務者が、ソフトウェアエンジニアリン グにおける「一般に認められた知識」を特定し、共通の 理解を持つよう導く – 関連分野との境界の定義 – 資格や教育カリキュラムの基礎 • 導入・採用 – SWEBOKに基づくIEEE-CSソフトウェアプロフェッショナル 認定プログラム) – ISO/IEC 24773-4: ソフトウェアおよびシステムエンジニ アリングの専門家の認定 - 第 4 部:ソフトウェアエンジ ニアリング – ソフトウェアエンジニアリング・コンピテンシーモデル( SWECOM) 活動・プラク ティス 知識体系 Body of Knowledge 知識の 島々 11
  • 12.
    メイン フレーム 70’s – Early 80’s Late80’s - Early 90’s Late 90’s - Early 00’s Late 00’s - Early 10’s PC, クライアント サーバ インターネット ユビキタス Late 10’s - Early 20’s IoT, ビッグデータ, AI Structured programming Waterfall Formalization Design Program generation Maturity Management Object-oriented Req. eng. Modeling Verification Reuse Model-driven Product-line Global & open Value-based Systems eng. Agile Iterative & incremental DevOps Empirical Data-driven Continuous SE and IoT SE and AI SWEBOK V1 SWEBOK V2 SWEBOK V3 SWEBOK V4
  • 13.
    要求 設計 構築 テスト 保守 構成管理 マネジメント プロセス モデル・手法 品質 専門職 経済 計算基礎 数学基礎 工学基礎 SWEBOK Guide V3からV4への進化 •現代的なソフトウェアエンジニアリング、プラクティスの変化や更新、知識体系の成長・新領域 • パブリックレビュー中! https://www.computer.org/volunteering/boards-and-committees/professional-educational-activities/software- engineering-committee/swebok-evolution 要求 アーキテクチャ 設計 構築 テスト 運用 保守 構成管理 マネジメント プロセス モデル・手法 品質 セキュリティ 専門職 経済 計算基礎 数学基礎 工学基礎 SWEBOK V3 SWEBOK V4 アジャ イル, DevOps AIとソフトウェアエン ジニアリング 13
  • 14.
  • 15.
    アーキテクチャ領域の取り込みへ 15 • 基礎概念 – 以前は抽象的に扱われていた が、実践的に扱えるように –大きなシステムを扱うようになり 、根底にある基本原理と実践に 触れる必要性 • 実践 – 複雑なサイバーフィジカルシステ ムが広く普及し、重要性増 – アジャイルで迅速な解決の必要 性が高まり、早期に頻繁に「物事 を正しく理解」する必要性を加速 – 実務家が生き残るために基本原 則の知識が不可欠
  • 16.
  • 17.
    ソフトウェアセキュリティ領域の取り込みへ • 基礎概念 – セキュリティの基礎 –開発ライフサイクルに沿った基 本的なセキュリティ工学技術 • 実践 – セキュリティツールやパターン を含む、実用的なセキュリティソ リューション – ドメイン固有のセキュリティ技法 – セキュリティ管理 User id name ProtectionObject id name * * Authorization_rule Right access_type predicate copy_flag checkRights Role id name * * MemberOf 名前: ロールベース・アクセス制御 (RBAC) 問題: 人々に機能やタスクに対する権限をどのように 与えらればよいか? 解決: 利用者にロールを割り当てて、ロールに対して タスク実施の権限を与える 関連パターン: 認可(Authorization), ... 17
  • 18.
  • 19.
    ソフトウェア運用領域の取り込みへ • 基礎概念 – 「継続的ソフトウェアエンジニアリング」 時代における運用の重要性 –DevOpsプラクティスを中心とした運用 の基礎とツールの扱い • 実践 – システムおよびソフトウェアのライフサ イクルプロセスに不可欠な部分として の運用の全体像 – アジャイルインフラストラクチャや Infrastructure as Code(IaC)などの最新 のインフラストラクチャプラクティスや、 コンテナや仮想化などの実践的な考慮 事項、関連標準、ツール 19
  • 20.
    他の拡充側面: アジャイル開発とDevOps • アジャイル開発 –複数の知識領域(要求事項、マネジメント、 プロセス、モデル・手法など)に直接影響、 全知識領域に間接影響 – 現代に適合:変化の激しい時代、不確実性 – 単なる新プラクティスセットではなく、パラダ イムシフト – クリティカルシンキングと意思決定を実現す る他のアプローチと併用 • DevOps – DevOpsの価値観/原則/実践とスキームに 基づくクリティカルシンキングと判断力 – DevOpsは、プロセスやあらゆる意思決定に 影響 – アジャイルは、エンジニアリングレベルとマ ネジメントレベルの両方に影響 20 To Do Doing Done Securing … Product Technical Debt … Development Deploy & operation Test & verification Monitoring Dev Ops
  • 21.
    計算基礎領域の拡充: AIとソフトウェアエンジニアリング • 課題 –不確実で確率的な挙動 – 十分にラベル付けされ、構造化されたデータセットの 必要性 • AI for SE – 人間の開発者の行動を再現することで、高品質なソフ トウェアシステムを構築 – ほぼすべての開発段階に対応 • SE for AI – AIシステムのルールやシステム動作はデータから推 測されるため、従来のソフトウェアとは異なるAIのため のSEを特に支援する必要がある – パターンとしてのプラクティスの文書化 21 ソフトウェア エンジニアリ ング AI AI for SE SE for AI
  • 22.
    機械学習システムの設計例 • スマホで拾った音について楽器の種類を特定し、種類 に応じた記録や対応を実現したい。 • しかし、スマホのメモリや性能は限られており、大きな深 層学習モデルは載りそうにない。どうすればよいか? 22 転移学習 したモデル 小さな 判別モ デル 何もしない 特定 結果 パターン問題 解決 2段階予測 Two-Phase Predictions もともと大規模で複雑なモデルの性 能を、エッジデバイスや分散デバイ スにデプロイした場合も維持する必 要性 利用の流れを2つの段階に分けて、シンプ ルな段階のみをエッジ上で実行 転移学習 Transfer Learning 複雑な機械学習モデルを訓練す るために必要となる大規模データ セットの不足 訓練済みモデルの一部の層を取り出して 重みを凍結し、訓練対象とせずに類似問 題の解決のため新モデルで利用 • スマホ上の小さなモデルでは音が楽器かどうか判定し、 楽器の場合にのみクラウド上の大きなモデルで種類を 特定する 2段階予測 としよう。 • 特定にあたり、様々な音データによる既存の訓練済みモ デルを用いて転移学習 したモデルを用いよう。 『機械学習デザインパターン ―データ準備、モデル構築、MLOpsの実践上の問題と解決』Lakshmananら著, 鷲崎ら訳, オライリージャパン, 2021
  • 23.
  • 24.
  • 25.
    経済 プロフェッショナル 実践 計算基礎 数学基礎 エンジニアリング 基礎 要求構築 設計 テスティン グ マネジメント プロセス 保守 構成管理 モデル・手 法 品質 様々な立場における活用 開発者 プロセス 改善 25 アーキテク チャ 運用 セキュリ ティ 品質 保証 基盤・ 教育 • ポータル: プロセスの見直し、組み立て • 辞書: 用語、理解の統一 • 文献ガイド: 技術・手法の参照、取り入れ
  • 26.
    自動運転システムの例 街中 高速道路 AIプロジェクトキャンバス MLキャンバス アーキテクチャ設計 データ スキル 出力 価値提案 統合 ステーク ホルダ 顧客 コスト 収益 街中と高速道路とで信頼性・安全性を考慮し て許容可能な認識精度の機械学に基づくシ ステムをどのように開発、改訂できるか? JatiHusen, Hironori Washizaki, Nobukazu Yoshioka, Hnin Tun, Yoshiaki Fukazawa and Hironori Takeuchi, “Metamodel-Based Multi-View Modeling Framework for Machine Learning Systems,” 11th International Conference on Model-Based Software and Systems Engineering (MODELSWARD 2023)
  • 27.
    27 機械学習モデルA モデルB モデルC 分類の性能評価 安全性・信頼性論証 誤分類データ修正に向けた選択 バランスの取れた修正 修正結果 積極的な修正 さらなる改訂へ 1. データの改訂 2. 画像の質向上に 向けたアーキテク チャ改訂 3. ビジネスゴール の見直し 誤分類データ 安全性解析 要求・ゴール分析 Jati Husen, Hironori Washizaki, Nobukazu Yoshioka, Hnin Tun, Yoshiaki Fukazawa and Hironori Takeuchi, “Metamodel-Based Multi-View Modeling Framework for Machine Learning Systems,” 11th International Conference on Model-Based Software and Systems Engineering (MODELSWARD 2023)
  • 28.
    28 Jati Husen, HironoriWashizaki, Nobukazu Yoshioka, Hnin Tun, Yoshiaki Fukazawa and Hironori Takeuchi, “Metamodel-Based Multi-View Modeling Framework for Machine Learning Systems,” 11th International Conference on Model-Based Software and Systems Engineering (MODELSWARD 2023)
  • 29.
    複雑・不確実な開発運用時代こそ、エンジニアリング重要 メタモデル 要求・アーキテクチャモデリング 機械学習パイプライン 要求分析・設計 評価 問題の可視化 評価 解決の可視化 29 OK OK OK NG OKOK OK NG NG OK OK OK [ML.VP1🡨 AI.VP1] Providereliable real-timeobject detectionsystem fordriving decisionmakingin highway(incl. trafficsign detectionand lane/vehicle detection) • [ML.DS1]Procured datasets • [ML.DS2]Internal databasefrom collectionduring operation • [ML.DC1]Openand commercialdatasets • [ML.DC2]Data collectedduring operation(imageand identificationresult) •[ML.F1🡨 AI.D1/AI.D3] Boundingbox forobject(incl. othervehicles orsigns) •[ML.F2🡨 AI.D2]Ridge detectionfor lanedetection [ML.BM1] Modelswillbe developed, tested,and deployedtocars monthly • [ML.PT1]Input: imagefromsensors • [ML.PT2←AI.D] Output:trafficsigns, lanemarking, vehicles,and pedestrians. [ML.De1]Use predictionresults fordecision- makinginself- drivingsystem [ML.IS1] Usingtestdata, achieveveryhigh recallandhigh precisionin followingcondition: night,rainy,and generalcondition Datasetsissplitinto 80:20ratio [ML.MP1] Predictionshould bemadein batchesreal time. [ML.M1]Inputdatamonitoring [ML.VP1🡨 AI.VP1] Providereliable real-timeobject detectionsystem fordriving decisionmakingin highway(incl. trafficsign detectionand lane/vehicle detection) • [ML.DS1]Procured datasets • [ML.DS2]Internal databasefrom collectionduring operation • [ML.DC1]Openand commercialdatasets • [ML.DC2]Data collectedduring operation(imageand identificationresult) •[ML.F1🡨 AI.D1/AI.D3] Boundingbox forobject(incl. othervehicles orsigns) •[ML.F2🡨 AI.D2]Ridge detectionfor lanedetection [ML.BM1] Modelswillbe developed, tested,and deployedtocars monthly • [ML.PT1]Input: imagefromsensors • [ML.PT2←AI.D] Output:trafficsigns, lanemarking, vehicles,and pedestrians. [ML.De1]Use predictionresults fordecision- makinginself- drivingsystem [ML.IS1] Usingtestdata, achieveveryhigh recallandhigh precisionin followingcondition: night,rainy,and generalcondition Datasetsissplitinto 80:20ratio [ML.MP1] Predictionshould bemadein batchesreal time. [ML.M1]Inputdatamonitoring [ML.VP1🡨 AI.VP1] Providereliable real-timeobject detectionsystem fordriving decisionmakingin highway(incl. trafficsign detectionand lane/vehicle detection) •[ML.DS1]Procured datasets •[ML.DS2]Internal databasefrom collectionduring operation •[ML.DC1]Openand commercialdatasets •[ML.DC2]Data collectedduring operation(imageand identificationresult) •[ML.F1🡨 AI.D1/AI.D3] Boundingbox forobject(incl. othervehicles orsigns) •[ML.F2🡨 AI.D2]Ridge detectionfor lanedetection [ML.BM1] Modelswillbe developed, tested,and deployedtocars monthly •[ML.PT1]Input: imagefromsensors •[ML.PT2←AI.D] Output:trafficsigns, lanemarking, vehicles,and pedestrians. [ML.De1]Use predictionresults fordecision- makinginself- drivingsystem [ML.IS1] Usingtestdata, achieveveryhigh recallandhigh precisionin followingcondition: night,rainy,and generalcondition Datasetsissplitinto 80:20ratio [ML.MP1] Predictionshould bemadein batchesreal time. [ML.M1]Inputdatamonitoring 修正戦略の追加 訓練 修正 Jati H. Husen, Hironori Washizaki, Hnin Thandar Tun, Nobukazu Yoshioka, Yoshiaki Fukazawa, Hironori Takeuchi, Hiroshi Tanaka, Kazuki Munakata, “Extensible Modeling Framework for Reliable Machine Learning System Analysis,” 2nd International Conference on AI Engineering – Software Engineering for AI (CAIN’23) [要求] 獲 得、分析 [構築] 分 離、再利用 [設計] パ ターン [テスト] 単 体、機能 [アーキ] 記述、評価 [運用] DevOps [経済] 価 値ベース [モデル] 価 値~全体 [品質] 論証 [計算基礎] SE for AI
  • 30.
  • 31.
    メインフレーム 70’s – Early 80’s Late80’s - Early 90’s Late 90’s - Early 00’s Late 00’s - Early 10’s PC, クライアント サーバ インターネット ユビキタス Late 10’s - Early 20’s IoT, ビッグデータ, AI Structured programming Waterfall Formalization Design Program generation Maturity Management Object-oriented Req. eng. Modeling Verification Reuse Model-driven Product-line Global & open Value-based Systems eng. Agile Iterative & incremental DevOps Empirical Data-driven Continuous SE and IoT SE and AI SWEBOK V1 SWEBOK V2 SWEBOK V3 SWEBOK V4 ? ?
  • 32.
    IEEE-CS Technology PredictionsReport 2023 32 IEEE CS Technology Prediction Team (Chair: Dejan Milojicic) https://www.computer.org/2023-top-technology-predictions 成功可能性が、ヒューマ ニティへの影響よりも大 きい ヒューマニティへの影響が、成功 可能性よりも大きい (投資の価値 大)
  • 33.
    IEEE Future Direction2023 IEEE-CS Technology Predictions 2024 メガトレンド 33 (汎用)人工知能 サステナビリティ デジタルトランスフォーメーション (汎用)人工知能 サステナビリティ デジタルトランス フォーメーション 2000 2020 2040
  • 34.
    メインフレーム 70’s – Early 80’s Late80’s - Early 90’s Late 90’s - Early 00’s Late 00’s - Early 10’s PC, クライアント サーバ インターネット ユビキタス Late 10’s - Early 20’s IoT, ビッグデータ, AI 生成AI, 基盤モデル, 量子, コンティニュアム Late 20’s Structured programming Waterfall Formalization Design Program generation Maturity Management Object-oriented Req. eng. Modeling Verification Reuse Model-driven Product-line Global & open Value-based Systems eng. Agile Iterative & incremental DevOps Empirical Data-driven Continuous SE and IoT SE and AI SEと: 生成AI 量子コンピューティング サステナビリティ コンティニュアム AI支援の DevOps SWEBOK V1 SWEBOK V2 SWEBOK V3 SWEBOK V4
  • 35.
    大規模言語モデルLarge Language Model (LLM)のソフトウェア開発応用 •Large Language Models for Software Engineering: A Systematic Literature Review (Aug 21, https://arxiv.org/abs/2308.10620 ) – 2017年から2023年までの合計229の研究論文を収集・ 分析 • LLM種別: デコーダのみのアーキテクチャ最多(GPT, Codex, LLaMAなど) • データセット: オープンソースデータセット利用が最 多、共通前処理としてデータ抽出・重複削除・データ 分割など • LLMの最適化: ファインチューニング&Adam、ハード プロンプト(すべて人手で準備した自然言語指示)と ソフトプロンプト(部分的にチューニング可能な指示) • 利用タスク: 構築および保守が主、生成・分類・推薦 が主 35 35
  • 36.
    LLMのコード関連応用 • Towards anUnderstanding of Large Language Models in Software Engineering Tasks (Aug 22, https://arxiv.org/abs/2308.11396 ): 123の論文分析 36 タスク 定義 LLMの役割 コード生成 ユーザー要求と指定された制約に基づい てソースコードを自動生成 (補助)コードを生成、開発者にアイデアやプログラ ミングの「出発点」を提供 コード要約 開発者がコードを理解し、維持するのを助 けるために、明確で、正確で、役に立つ コードコメントを自動的に生成 異なる粒度(例えば関数)を支援したり、コードの意 図を説明したりするコード要約 コード翻訳(変換) 異なるプログラミング言語間で、機能やロ ジックを変えることなくコードを変換するこ と 補助コード変換、リバースエンジニアリング 欠陥検出 プログラムのクラッシュ、パフォーマンス低 下、セキュリティ問題の原因となるコード エラーを特定し、修正 コードに潜在的な欠陥がないかチェック コード評価・テスト コードの静的解析を行い、潜在的な問題 や改善点を特定 テストケースを作成したり、コードのパフォーマンス、 ユーザビリティ、その他の品質特性をテスト コードマネジメント コードの版や開発者情報のマネジメント チーム協調開発、版管理 問い合わせ・相談Q&A ソフトウェア開発者とLLMのやり取り アシスタント、プロンプトエンジニアリング
  • 37.
    グリーン&サステナブル・ソフトウェアエンジニアリング • サステナビリティ: 資源を枯渇させることなく、将来の 世代のことを考えながら発展していくこと[国連] – 環境: 水、土地、空気、鉱物、生態系などの天然資源保 護と社会保全 – 社会: 社会的組織の連帯、サービス、連帯におけるコミュ ニティ(例えば社会や人々のサステナビリティへの振る舞 いや態度への影響) – 経済: 資産や付加価値の維持(例えばグリーンソフトウェ アの費用対効果) • サステナブルSE/ITにおける追加側面 [a] – 個人: 個人の資本の維持(健康、スキル、サービスへの アクセスなど) – 技術: ソフトウェアシステムの寿命や変化する状況やニ ーズに応じた進化(例えば低消費電力化) 37 [a] Towards a common understanding of sustainable software development, SBE, 2022 [b] Delft University of Technology, Sustainable Software Engineering, https://luiscruz.github.io/course_sustainableSE/2022/ 環境 経済 技術 個人 社会
  • 38.
    消費電力に関係する設計や保守の例 38 ソフトウェアの省エネ化 • 低消費電力化の仕組みのアスペクト指向による横断的自動合成 • 環境リスク緩和性を含むソフトウェア品質の測定評価と改善 ソフトウェア開発の省エネ化 •部品化・再利用・自動生成による開 発作業の効率化と利用電力削減 プログラム モジュール 低消費電力化アスペクト 自動合成 void around():call(void LDC_linetrace(void)){ float turn=p_gain*(…); … 0 2 4 6 8 10 -1600 -1400 -1200 -1000 -800 -600 -400 -200 0 状態 電圧[mV] 時間[mS] 通常運用時の電圧変化 0 2 4 6 8 10 -1600 -1400 -1200 -1000 -800 -600 -400 -200 0 状態 電圧[mV] 時間[mS] 低消費電力化後 状態 バッテリ 電圧値 自動合成を通じ た消費電力抑制 設計 資産 パターン 部品 再利用 新規 開発 過去の 開発 プログラム 要求 組立て アスペクト 基盤 拡張 合成 新規開発の大部分を再利 用で実現し開発効率化 “アスペクト指向プログラミングによる高性能・低消費電力化” SIGSS 2014 “A Technique for Automatic Component Extraction,” Science of Computer Programming, 56(1-2), 2005 抽出 抽象化
  • 39.
    まとめ • エンジニアリング – エンジニアリングとは科学に裏打ちされた技術活動、学問体系 –正統であるために: コミュニティで妥当と確認される知識が科学的基盤に基づく • SWEBOK Guide – ソフトウェアエンジニアリング知識体系ガイド – 現代的なソフトウェアエンジニアリング、プラクティスの変化や更新、知識体系の 成長・新領域 – アーキテクチャ、運用、セキュリティ、アジャイル&DevOps、AI • 開発アップデートに役立つ – ポータル、辞書、文献ガイド • ソフトウェアエンジニアリング/SWEBOK Guideの未来 – メガトレンド: 汎用人工知能、サステナビリティ、デジタルトランスフォーメーション – ソフトウェアエンジニアリング×生成AI、サステナビリティ、コンティニュアム、量子 39