Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SQuBOK_Chap3
Search
リリカル
May 22, 2018
Technology
0
92
SQuBOK_Chap3
SQuBOK V2の3章まとめです。(3.1〜3.3)
リリカル
May 22, 2018
Tweet
Share
More Decks by リリカル
See All by リリカル
テスト設計、逆から読むとおもしろい──仕様にない“望ましさ”の逆設計
mhlyc
0
330
Foundation Level シラバス1章まとめ
mhlyc
0
130
Other Decks in Technology
See All in Technology
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
440
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
2
540
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
4
730
Github Copilot エージェントモードで試してみた
ochtum
0
100
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
340
Agentic Workflowという選択肢を考える
tkikuchi1002
1
500
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
200
Welcome to the LLM Club
koic
0
170
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
270
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
4
480
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
340
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
3
120
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
14k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
The Pragmatic Product Professional
lauravandoore
35
6.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
Raft: Consensus for Rubyists
vanstee
140
7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
940
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Optimizing for Happiness
mojombo
379
70k
Adopting Sorbet at Scale
ufuk
77
9.4k
Transcript
SQuBOK V2読破会 まとめスライド p.196 〜 p.221 3.1 KA: メトリクス 〜 3.3 KA: 形式⼿法
藤沢 耕助
アジェンダ(1) 3.1 KA: メトリクス 3.1.1 S-KA: 測定理論 3.1.2 S-KA: プロダクトメトリクス
3.1.3 S-KA: プロセスメトリクス SQuBOK V2復習会 2
アジェンダ(2) 3.2 KA:モデル化の技法 3.2.1 S-KA: 離散系のモデル化技法 3.2.2 S-KA: 連続系のモデル化技法 3.2.3
S-KA: ドメイン特化⾔語 SQuBOK V2復習会 3
アジェンダ(3) 3.3 KA: 形式⼿法 3.3.1 S-KA: 形式仕様記述の技法 3.3.2 S-KA: 形式検証の技法
SQuBOK V2復習会 4
3.1 KA: メトリクスの とてもざっくりした解説 • メトリクスにはプロセスメトリクスとプ ロダクトメトリクスがある • どのようなメトリクスを⽤いるかは、何 を⽬的にして、どのような⽬標を設定す
るかによる SQuBOK V2復習会 5
3.2 KA: モデル化の技法の とてもざっくりした解説 • モデル化の技法はソフトウェア開発に限 らず、システム開発全般にわたって適⽤ される • 離散系のモデル化と連続系のモデル化が
ある • ドメイン特化⾔語はさらに特定の分野、 ⽬的に限定したモデル化の技法 SQuBOK V2復習会 6
3.3 KA: 形式⼿法の とてもざっくりした解説 • 形式⼿法とは、数理論理学に基づいて仕 様記述や検証を⾏うアプローチ⽅法の総 称のこと • 仕様や設計においても、⽂法及び意味論
が厳密に定まった⾔語を活⽤する • 属⼈性の低い系統的⽅法で効率的な品質 保証が可能になる SQuBOK V2復習会 7
3.1 KA: メトリクス 3.1 KA: メトリクス 3.1.1 S-KA: 測定理論 3.1.2
S-KA: プロダクトメトリクス 3.1.3 S-KA: プロセスメトリクス SQuBOK V2復習会 8
3.1 KA: メトリクス 3.1.1 S-KA: 測定理論 • メトリクス測定における測定理論 – 尺度(名義尺度、順序尺度、間隔尺度、⽐率 尺度)
– GQM • 参考になりそうなスライド – https://www.slideshare.net/kauji0522/ ss-84328430 SQuBOK V2復習会 9
SQuBOK V2復習会 10 プロダクト メトリクス 品質 メトリクス 内部メトリクス 外部メトリクス 利⽤時の
品質メトリクス 規模 メトリクス 品質特性・品質副特性と 対応づけられている 3.1 KA: メトリクス 3.1.2 S-KA: プロダクトメトリクス
3.1 KA: メトリクス 3.1.2 S-KA: プロダクトメトリクス • 内部メトリクス: ソフトウェアの内部を⾒て初めて分かる属性 のメトリクス
• 仕様書やソースコードなどの中間⽣産物の測 定に適⽤する • ⽬的: 開発の早い段階において、ソフトウェア製品 に対する品質の測定、評価を可能にして、外 部品質および利⽤時の品質が達成されるよう な評価材料を得る SQuBOK V2復習会 11
3.1 KA: メトリクス 3.1.2 S-KA: プロダクトメトリクス • 外部メトリクス: 外部の視点から⾒たソフトウェア製品の特性 を測定するためのメトリクス
• ソフトウェアまたはシステムを実際に実⾏、 操作、観察することによって測定する • ⽬的: ソフトウェア製品品質の測定、評価を可能に して、品質が達成できるようにする SQuBOK V2復習会 12
3.1 KA: メトリクス 3.1.2 S-KA: プロダクトメトリクス • 利⽤時の品質メトリクス: 「特定の利⽤者が特定の利⽤状況において、有効性、効率性、 リスク回避性および満⾜性に関して特定の⽬標を達成するた
めのニーズを満たすために、製品またはシステムを利⽤でき る度合い」 • 要するに: 利⽤者のニーズに対する達成度合い • ⽬的: 利⽤者の必要性を製品が満たしている程度の 測定、評価を可能にする SQuBOK V2復習会 13
3.1 KA: メトリクス 3.1.2 S-KA: プロダクトメトリクス • その他 – 複雑度のメトリクス – LOC(ソースコード⾏数)
– ファンクションポイント SQuBOK V2復習会 14
3.1 KA: メトリクス 3.1.3 S-KA: プロセスメトリクス • プロセスメトリクス: 開発プロセスの主に品質に関わる属性を 測定する⽅法の集合
• プロセスの効率性や⽣産性、安定性など は、出⼒として得られるソフトウェア製 品の品質に⼤きな影響を及ぼす • プロセスメトリクスからプロダクトの品 質をある程度予測することができる SQuBOK V2復習会 15
3.1 KA: メトリクス 3.1.3 S-KA: プロセスメトリクス • 注意点 – プロセスはプロジェクトや組織、問題領域、 環境などに強く依存し、多様であるため、プ
ロセス品質がプロダクト品質に与える影響を 表す⼀般化した⽅式は存在しない – 組織やプロジェクトごとに過去の実績データ と継続的につき合わせることでプロセス品質 とプロダクト品質の関係を明らかにしていく 必要がある SQuBOK V2復習会 16
3.2 KA:モデル化の技法 3.2 KA:モデル化の技法 3.2.1 S-KA: 離散系のモデル化技法 3.2.2 S-KA: 連続系のモデル化技法
3.2.3 S-KA: ドメイン特化⾔語 SQuBOK V2復習会 17
3.2 KA: モデル化の技法 3.2.1 S-KA: 離散系のモデル化技法 • 離散系のモデル化技法: 対象の振る舞いを、離散的な⼀つ⼀つの事象(イ ベント)やそれに伴う状態の連なりとしてモデル
化する技法 • ⽬的: – 注⽬する個々の側⾯に絞って関係者間の意思疎通を 測りながら対象の分析や設計を進めることができ、 機能性や保守性、移植性の作り込みや確認がしやす くなる – 最終的なコードを得る前の段階で信頼性や効率性を ある程度確認できる SQuBOK V2復習会 18
3.2 KA: モデル化の技法 3.2.1 S-KA: 離散系のモデル化技法 • UML: • 参考:
https://qiita.com/asksaito/items/59591fa3b85cf42771bf • https://www.ogis-ri.co.jp/otc/hiroba/UMLTutorial/ analysis/do_work/dowork1_1.html SQuBOK V2復習会 19
3.2 KA: モデル化の技法 3.2.1 S-KA: 離散系のモデル化技法 • SysML: • 参考:
https://www.ogis-ri.co.jp/otc/hiroba/technical/SysEngSysML/ SysEngSysML3.html SQuBOK V2復習会 20
3.2 KA: モデル化の技法 3.2.1 S-KA: 離散系のモデル化技法 • 構造化チャート(PAD): • 参考:http://ajt.pupu.jp/WorkaPlayer/?p=37
SQuBOK V2復習会 21
3.2 KA: モデル化の技法 3.2.2 S-KA: 連続系のモデル化技法 • 連続系のモデル化技法:対象の振る舞いにつ いて連続的な変化をモデルとして表現し、モ デルの検証やシミュレーション解析を通じて
注⽬する性質を明らかにする技法 • ⽬的:⾞両制御開発や航空機制御開発などコ スト⾯や安全⾯から実験にリスクを伴うもの に対して、連続系モデルを⽤いてシミュレー ション解析を⾏う SQuBOK V2復習会 22
3.2 KA: モデル化の技法 3.2.2 S-KA: 連続系のモデル化技法 • 連続系のモデル化やシミュレーション解析に 対応したツールとして代表的なもの –
LabVIEW – MATLAB – Modelica • 連続系のモデル化およびそれをサポートした ツールを利⽤した開発形態:MBD(Model- Based Development) • MDD(Model-Driven Development):離散系 SQuBOK V2復習会 23
3.2 KA: モデル化の技法 3.2.3 S-KA: ドメイン特化⾔語 • ドメイン特化⾔語: ある特定の問題領域(ドメイン)を記述する ために開発されたプログラム⾔語や、仕様記
述⾔語およびその処理環境の総称 • その形態は、テキスト形式や図形式など様々 • ⽬的: UMLなどの表現の⾃由度が⾼い汎⽤⾔語で記 述されるモデルで起こりがちな品質のばらつ きを抑える、記述⼯数を削減する SQuBOK V2復習会 24
3.2 KA: モデル化の技法 3.2.3 S-KA: ドメイン特化⾔語 • DSLの定義をサポートする代表的なツール – GME(Generic Modeling
Environment) – GMF(graphical Modeling Framework) – LISA(Language Implementation System Based on Attribute Grammars) – MetaEdit+ – The Meta-Environment – Microsoft DSL tools SQuBOK V2復習会 25
3.3 KA: 形式⼿法 3.3 KA: 形式⼿法 3.3.1 S-KA: 形式仕様記述の技法 3.3.2
S-KA: 形式検証の技法 SQuBOK V2復習会 26
3.3 KA: 形式⼿法 3.3.1 S-KA: 形式仕様記述の技法 • 形式仕様記述の技法とは: 形式⼿法のうち、要求仕様や設計を厳密 に記述し、系統的な⽅法で⼀定の品質保
証を⽬指す技法のこと • ⽬的:曖昧さ、不正確さの排除、障害の 検出、処理の⾃動化→品質向上と効率化 SQuBOK V2復習会 27
3.3 KA: 形式⼿法 3.3.1 S-KA: 形式仕様記述の技法 • 形式⾔語で記述された内容に対する検証 や分析の例 – 仕様アニメーション・テスト
– モデル発⾒ – 定理証明 – モデル検査 – 段階的詳細化 – 実⾏コードの⽣成 SQuBOK V2復習会 28
3.3 KA: 形式⼿法 3.3.1 S-KA: 形式仕様記述の技法 • 形式仕様記述の技法 – VDM – Event-BおよびBメソッド
– Alloy SQuBOK V2復習会 29
3.3 KA: 形式⼿法 3.3.2 S-KA: 形式検証の技法 • 形式検証の技法とは: 形式⼿法のうち、テストや⼈⼿でのレビュー では達成できないようなケースに対して、検
証すべき性質を与えて検証を⾏い、⾼信頼性 を保証する技法のこと • ⽬的: 特定の状況でのみ顕在化する障害の⾃動検出、 対象範囲において障害が発⽣しないことの 保証 SQuBOK V2復習会 30
3.3 KA: 形式⼿法 3.3.2 S-KA: 形式検証の技法 • 得られたモデルもしくは実⾏コードに対 しては、以下の検証すべき性質も明記 する
– アサーション(表明) – 不変条件、事前条件、事後条件 – 安全性、活性 – メモリーに関する性質 SQuBOK V2復習会 31
3.3 KA: 形式⼿法 3.3.2 S-KA: 形式検証の技法 • モデル検査のツールの例 – SPIN, SMV,
LTSA – UPPAAL(実時間性を含めた状態遷移を扱う) – PRISM(確率的な状態遷移を扱う) – CBMC, Java PathFinder(実⾏コード向けの モデル検査ツール) – Coq, HOL(汎⽤的な証明⽀援ツール) SQuBOK V2復習会 32