@k2works/claude-code-booster 3.1.1 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/lib/assets/.claude/skills/operating-docs/SKILL.md +19 -0
  2. package/lib/assets/CLAUDE.md +2 -0
  3. package/lib/assets/docs/article/functional-desgin-ppp/clojure/01-immutability-and-data-transformation.md +2 -0
  4. package/lib/assets/docs/article/functional-desgin-ppp/clojure/15-gossiping-bus-drivers.md +2 -0
  5. package/lib/assets/docs/article/functional-desgin-ppp/clojure/20-pattern-interactions.md +11 -6
  6. package/lib/assets/docs/article/functional-desgin-ppp/clojure/21-best-practices.md +12 -0
  7. package/lib/assets/docs/article/functional-desgin-ppp/clojure/22-oo-to-fp-migration.md +6 -0
  8. package/lib/assets/docs/article/functional-desgin-ppp/clojure/index.md +44 -0
  9. package/lib/assets/docs/article/functional-desgin-ppp/elixir/01-immutability-and-data-transformation.md +2 -0
  10. package/lib/assets/docs/article/functional-desgin-ppp/elixir/index.md +44 -0
  11. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/01-immutability-and-data-transformation.md +2 -0
  12. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/15-gossiping-bus-drivers.md +2 -0
  13. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/17-video-rental-system.md +2 -0
  14. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/19-wator-simulation.md +2 -0
  15. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/21-best-practices.md +4 -0
  16. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/22-oo-to-fp-migration.md +10 -0
  17. package/lib/assets/docs/article/functional-desgin-ppp/fsharp/index.md +44 -0
  18. package/lib/assets/docs/article/functional-desgin-ppp/haskell/15-gossiping-bus-drivers.md +2 -0
  19. package/lib/assets/docs/article/functional-desgin-ppp/haskell/20-pattern-interactions.md +2 -0
  20. package/lib/assets/docs/article/functional-desgin-ppp/rust/01-immutability-and-data-transformation.md +2 -0
  21. package/lib/assets/docs/article/functional-desgin-ppp/rust/index.md +44 -0
  22. package/lib/assets/docs/article/functional-desgin-ppp/scala/01-immutability-and-data-transformation.md +2 -0
  23. package/lib/assets/docs/article/functional-desgin-ppp/scala/15-gossiping-bus-drivers.md +2 -0
  24. package/lib/assets/docs/article/functional-desgin-ppp/scala/21-best-practices.md +6 -0
  25. package/lib/assets/docs/article/functional-desgin-ppp/scala/22-oo-to-fp-migration.md +6 -0
  26. package/lib/assets/docs/article/functional-desgin-ppp/scala/index.md +44 -0
  27. package/lib/assets/docs/article/getting-start-tdd/integration/04-type-system-comparison.md +4 -0
  28. package/lib/assets/docs/article/getting-start-tdd/integration/06-learning-roadmap.md +16 -0
  29. package/lib/assets/docs/article/getting-start-tdd/ruby/11-immutable-data-and-pipeline.md +4 -0
  30. package/lib/assets/docs/article/grokkingfp/all/part-2-ch03-immutable-data.md +6 -0
  31. package/lib/assets/docs/article/grokkingfp/all/part-3-ch06-option.md +8 -0
  32. package/lib/assets/docs/article/grokkingfp/all/writing-plan.md +16 -0
  33. package/lib/assets/docs/article/grokkingfp/elixir/part-1.md +2 -0
  34. package/lib/assets/docs/article/grokkingfp/elixir/part-5.md +2 -0
  35. package/lib/assets/docs/article/grokkingfp/elixir/part-6.md +2 -0
  36. package/lib/assets/docs/article/grokkingfp/fsharp/part-6.md +2 -0
  37. package/lib/assets/docs/article/grokkingfp/haskell/part-4.md +2 -0
  38. package/lib/assets/docs/article/grokkingfp/haskell/part-6.md +2 -0
  39. package/lib/assets/docs/article/grokkingfp/java/part-1.md +2 -0
  40. package/lib/assets/docs/article/grokkingfp/java/part-2.md +8 -0
  41. package/lib/assets/docs/article/grokkingfp/java/part-6.md +4 -0
  42. package/lib/assets/docs/article/grokkingfp/python/part-1.md +6 -0
  43. package/lib/assets/docs/article/grokkingfp/ruby/part-1.md +2 -0
  44. package/lib/assets/docs/article/grokkingfp/ruby/part-6.md +2 -0
  45. package/lib/assets/docs/article/grokkingfp/rust/part-4.md +2 -0
  46. package/lib/assets/docs/article/grokkingfp/scala/part-1.md +2 -0
  47. package/lib/assets/docs/article/grokkingfp/scala/part-3.md +2 -0
  48. package/lib/assets/docs/article/grokkingfp/scala/part-6.md +2 -0
  49. package/lib/assets/docs/article/grokkingfp/typescript/part-1.md +2 -0
  50. package/lib/assets/docs/article/grokkingfp/typescript/part-4.md +2 -0
  51. package/lib/assets/docs/article/grokkingfp/typescript/part-6.md +2 -0
  52. package/lib/assets/docs/design/index.md +5 -0
  53. package/lib/assets/docs/index.md +3 -3
  54. package/lib/assets/docs/reference/Java/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +17 -15
  55. package/lib/assets/docs/reference/SonarQube/343/203/255/343/203/274/343/202/253/343/203/253/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +2 -0
  56. package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +2 -0
  57. package/lib/assets/docs/reference/images/.gitkeep +0 -0
  58. package/lib/assets/docs/reference/images/Ansoff.drawio.svg +4 -0
  59. package/lib/assets/docs/reference/images/BMC.drawio.svg +4 -0
  60. package/lib/assets/docs/reference/images/BrandBasicStrategy.drawio.svg +4 -0
  61. package/lib/assets/docs/reference/images/BrandCategorization.drawio.svg +4 -0
  62. package/lib/assets/docs/reference/images/BrandRecurutementStrategy.drawio.svg +4 -0
  63. package/lib/assets/docs/reference/images/BrandValue.drawio.svg +4 -0
  64. package/lib/assets/docs/reference/images/BusinessActivitiy.svg +4 -0
  65. package/lib/assets/docs/reference/images/HRM.drawio.svg +4 -0
  66. package/lib/assets/docs/reference/images/MarketingStructure.drawio.svg +4 -0
  67. package/lib/assets/docs/reference/images/OrganizationElemnts.svg +4 -0
  68. package/lib/assets/docs/reference/images/PPM.drawio.svg +4 -0
  69. package/lib/assets/docs/reference/images/PositioningMap.drawio.svg +4 -0
  70. package/lib/assets/docs/reference/images/ProductLayer.drawio.svg +4 -0
  71. package/lib/assets/docs/reference/images/ProductMix.drawio.svg +4 -0
  72. package/lib/assets/docs/reference/images/SWOT.drawio.svg +4 -0
  73. package/lib/assets/docs/reference/images/TargetMarket.drawio.svg +4 -0
  74. package/lib/assets/docs/reference/images/ThreeGenericStrategies.drawio.svg +4 -0
  75. package/lib/assets/docs/reference/images/VRIO.drawio.svg +4 -0
  76. package/lib/assets/docs/reference/images/ValueChain.drawio.svg +4 -0
  77. package/lib/assets/docs/reference/index.md +11 -5
  78. package/lib/assets/docs/reference//343/202/263/343/203/274/343/203/207/343/202/243/343/203/263/343/202/260/343/201/250/343/203/206/343/202/271/343/203/210/343/202/254/343/202/244/343/203/211.md +8 -8
  79. package/lib/assets/docs/reference//343/203/206/343/202/271/343/203/210/346/210/246/347/225/245/343/202/254/343/202/244/343/203/211.md +12 -12
  80. package/lib/assets/docs/reference//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +15 -15
  81. package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/203/273/343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273/343/202/254/343/202/244/343/203/211.md +2 -0
  82. package/lib/assets/docs/reference//343/203/255/343/202/270/343/202/253/343/203/253/343/202/267/343/203/263/343/202/255/343/203/263/343/202/260.md +1367 -0
  83. package/lib/assets/docs/reference//344/274/201/346/245/255/347/265/214/345/226/266/350/253/226.md +2637 -0
  84. package/lib/assets/docs/reference//350/250/200/350/252/236/345/210/245/351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +2 -0
  85. package/lib/assets/docs/reference//351/201/213/345/226/266/347/256/241/347/220/206.md +1391 -0
  86. package/lib/assets/docs/reference//351/235/236/346/251/237/350/203/275/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +12 -12
  87. package/lib/assets/docs/template/index.md +10 -9
  88. package/lib/assets/docs/template//343/203/252/343/203/252/343/203/274/343/202/271/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +4 -2
  89. package/lib/assets/docs/template//344/274/201/346/245/255/345/210/206/346/236/220.md +573 -0
  90. package/lib/assets/mkdocs.yml +33 -29
  91. package/package.json +1 -1
@@ -979,10 +979,16 @@ rectangle "Level 4: 慣習的" #LightCoral {
979
979
  ### 発見 2: スライス操作のイディオムは 3 系統に分かれる
980
980
 
981
981
  1. **take/drop 系**: Haskell, Clojure, Elixir, Scala, Java (Vavr), Ruby
982
+
983
+
982
984
  - 関数型言語の伝統的なスタイル。意図が明確
983
985
  2. **インデックス記法系**: Python `[:]`, Rust `[..]`
986
+
987
+
984
988
  - 最も簡潔。Python のスライス記法は特に強力
985
989
  3. **メソッドチェーン系**: TypeScript `.slice()`, C# `.Skip().Take()`
990
+
991
+
986
992
  - OOP スタイルとの親和性が高い
987
993
 
988
994
  ### 発見 3: replan パターンの共通構造
@@ -623,12 +623,20 @@ rectangle "Level 4: nil ベース + 言語機能" #LightCoral {
623
623
  ### 発見 2: 合成構文は 4 系統に分類できる
624
624
 
625
625
  1. **内包表記系**: Scala (for), Haskell (do), C# (LINQ), Clojure (when-let)
626
+
627
+
626
628
  - ネストが平坦化され、最も可読性が高い
627
629
  2. **演算子系**: Rust (`?`)
630
+
631
+
628
632
  - 最も簡潔で、通常のコードに自然に溶け込む
629
633
  3. **パイプ系**: F# (`|>`), Elixir (`with`), TypeScript (`pipe`)
634
+
635
+
630
636
  - データの流れが明確
631
637
  4. **flatMap チェーン系**: Java, Python, Ruby
638
+
639
+
632
640
  - 糖衣構文がなく、ネストが深くなりやすい
633
641
 
634
642
  ### 発見 3: Option は Part II の flatMap の延長線上にある
@@ -177,6 +177,8 @@
177
177
 
178
178
  1. 全 11 言語の part-2.md の第 3 章部分を読み込む
179
179
  2. 不変データ構造の実現方法を 4 カテゴリに分類
180
+
181
+
180
182
  - 言語組み込み(Haskell, Clojure, Elixir, F#)
181
183
  - デフォルト不変(Rust)
182
184
  - case class / record(Scala, Java 16+, C# 9+)
@@ -217,6 +219,8 @@
217
219
  1. 全 11 言語の part-2.md の第 4 章部分を読み込む
218
220
  2. map/filter/fold の共通概念を解説
219
221
  3. パイプライン記法の違いを比較
222
+
223
+
220
224
  - Elixir/F# パイプ演算子 `|>`
221
225
  - Haskell 関数合成 `.` / `$`
222
226
  - Clojure スレッディングマクロ `->` / `->>`
@@ -258,6 +262,8 @@
258
262
  1. 全 11 言語の part-2.md の第 5 章部分を読み込む
259
263
  2. flatMap/bind の共通概念(コンテキスト付き計算の連鎖)を解説
260
264
  3. 糖衣構文の比較
265
+
266
+
261
267
  - Scala for 内包表記
262
268
  - Haskell do 記法
263
269
  - C# LINQ クエリ式
@@ -317,6 +323,8 @@
317
323
  1. 全 11 言語の part-3.md の第 6 章部分を読み込む
318
324
  2. Option/Maybe の共通概念(null の型安全な代替)を解説
319
325
  3. 実装方式を 3 カテゴリに分類
326
+
327
+
320
328
  - 言語組み込み: Haskell Maybe, Rust Option, F# Option
321
329
  - 標準ライブラリ: Scala Option, Java Optional
322
330
  - サードパーティ: fp-ts Option, returns Maybe, dry-monads Maybe, LanguageExt Option, Vavr Option
@@ -390,6 +398,8 @@
390
398
 
391
399
  1. 全 11 言語の part-4.md の第 8 章部分を読み込む
392
400
  2. IO の抽象化を 4 レベルに分類
401
+
402
+
393
403
  - Level 4: 言語組み込み IO モナド(Haskell)
394
404
  - Level 3: ライブラリ IO 型(Scala cats-effect, C# LanguageExt Eff)
395
405
  - Level 2: 軽量 IO コンテナ(Python returns IO, TypeScript fp-ts Task, Ruby dry Task)
@@ -430,6 +440,8 @@
430
440
  1. 全 11 言語の part-4.md の第 9 章部分を読み込む
431
441
  2. 遅延評価とストリームの共通概念を解説
432
442
  3. ストリーム処理の実装アプローチを比較
443
+
444
+
433
445
  - 専用ライブラリ: Scala fs2, Haskell conduit
434
446
  - 言語組み込み: Elixir Stream, Rust Iterator, Python ジェネレータ, Ruby Enumerator::Lazy
435
447
  - ライブラリ拡張: TypeScript AsyncIterable, Java Vavr Stream, C# StreamT, F# Seq
@@ -479,6 +491,8 @@
479
491
 
480
492
  1. 全 11 言語の part-5.md を読み込む(最大ボリューム)
481
493
  2. 並行処理モデルを 5 カテゴリに分類
494
+
495
+
482
496
  - Actor モデル: Elixir OTP/GenServer
483
497
  - STM(Software Transactional Memory): Haskell STM, Clojure ref
484
498
  - Fiber / 軽量スレッド: Scala Fiber, Java Virtual Thread
@@ -521,6 +535,8 @@
521
535
  1. 全 11 言語の part-6.md の第 11 章部分を読み込む
522
536
  2. TravelGuide アプリの共通アーキテクチャを抽出
523
537
  3. DI(依存性注入)の関数型アプローチを比較
538
+
539
+
524
540
  - Reader モナド: Scala, TypeScript
525
541
  - 型クラス / trait: Haskell, Rust
526
542
  - Protocol / ビヘイビア: Python, Elixir
@@ -422,6 +422,8 @@ end
422
422
  ```
423
423
 
424
424
  この関数は:
425
+
426
+
425
427
  - 6人以上のグループ → 20% のチップ
426
428
  - 1-5人のグループ → 10% のチップ
427
429
  - 0人(空リスト) → 0% のチップ
@@ -479,6 +479,8 @@ time < 200_000 # true(200ms未満)
479
479
  **OTP (Open Telecom Platform)** は、Erlang/Elixir で堅牢な並行システムを構築するためのフレームワークです。
480
480
 
481
481
  主なコンポーネント:
482
+
483
+
482
484
  - **GenServer**: 汎用サーバープロセス
483
485
  - **Supervisor**: プロセスの監視と再起動
484
486
  - **Application**: アプリケーションの管理
@@ -858,6 +858,8 @@ p5 --> p6
858
858
  ### 問題 1: DataAccess の拡張
859
859
 
860
860
  以下の要件で `DataAccess` を拡張してください:
861
+
862
+
861
863
  - 新しいコールバック `find_restaurants_near_location` を追加
862
864
  - 戻り値は `{:ok, [Restaurant.t()]} | {:error, String.t()}`
863
865
 
@@ -758,6 +758,8 @@ p5 --> p6
758
758
  ### 問題 1: DataAccess の拡張
759
759
 
760
760
  以下の要件で `IDataAccess` を拡張してください:
761
+
762
+
761
763
  - 新しいメソッド `FindHotelsNearLocation` を追加
762
764
  - 戻り値は `Async<Result<Hotel list, string>>`
763
765
 
@@ -88,6 +88,8 @@ castTheDie = randomRIO (1, 6)
88
88
  ```
89
89
 
90
90
  Scala との違い:
91
+
92
+
91
93
  - Scala: `IO.delay(random.nextInt(6) + 1)` で副作用をラップ
92
94
  - Haskell: `randomRIO` 自体が `IO Int` を返す
93
95
 
@@ -659,6 +659,8 @@ p5 --> p6
659
659
  ### 問題 1: DataAccess の拡張
660
660
 
661
661
  以下の要件で `DataAccess` を拡張してください:
662
+
663
+
662
664
  - 新しいフィールド `findHotelsNearLocation` を追加
663
665
  - 戻り値は `IO (Either String [Hotel])`
664
666
 
@@ -342,6 +342,8 @@ public class TipCalculator {
342
342
  ```
343
343
 
344
344
  この関数は:
345
+
346
+
345
347
  - 6人以上のグループ → 20% のチップ
346
348
  - 1-5人のグループ → 10% のチップ
347
349
  - 0人(空リスト) → 0% のチップ
@@ -628,21 +628,29 @@ List<String> inside = radiuses.flatMap(r ->
628
628
  ### 学んだこと
629
629
 
630
630
  1. **イミュータブルなデータ操作**
631
+
632
+
631
633
  - Vavr の `List` は不変
632
634
  - `take`, `drop`, `append`, `appendAll` で新しいリストを作成
633
635
  - 元のデータは変更されない
634
636
 
635
637
  2. **高階関数**
638
+
639
+
636
640
  - `map`: 各要素を変換
637
641
  - `filter`: 条件に合う要素を抽出
638
642
  - `foldLeft`: 畳み込み
639
643
  - `sortBy`: ソート基準を関数で指定
640
644
 
641
645
  3. **関数を返す関数**
646
+
647
+
642
648
  - `Predicate<T>` を返すことで再利用可能なフィルタを作成
643
649
  - 部分適用のような効果を得られる
644
650
 
645
651
  4. **flatMap**
652
+
653
+
646
654
  - ネストしたリストを平坦化
647
655
  - `map` + `flatten` の組み合わせ
648
656
  - リストサイズが増減する変換に対応
@@ -416,6 +416,8 @@ public static int guideScore(Guide guide) {
416
416
  ```
417
417
 
418
418
  重要なポイント:
419
+
420
+
419
421
  - **オーバーフロー防止**: `long` を使用して大きな数値の合計を安全に計算
420
422
  - **上限値の設定**: 各スコア成分に最大値を設定してスコアを 0-100 の範囲に
421
423
 
@@ -1165,6 +1167,8 @@ p5 --> p6
1165
1167
  ### 問題 1: DataAccess の拡張
1166
1168
 
1167
1169
  以下の要件で `DataAccess` を拡張してください:
1170
+
1171
+
1168
1172
  - 新しいメソッド `findHotelsNearLocation` を追加
1169
1173
  - 戻り値は `IO<List<Hotel>>`
1170
1174
 
@@ -146,6 +146,8 @@ class ShoppingCartBad:
146
146
  ```
147
147
 
148
148
  このコードの問題:
149
+
150
+
149
151
  1. `get_items()` が内部リストへの参照を返すため、外部から変更可能
150
152
  2. `_book_added` フラグと実際のアイテムの整合性が崩れる可能性がある
151
153
 
@@ -162,6 +164,8 @@ discount = get_discount_percentage(items) # 5
162
164
  ```
163
165
 
164
166
  この純粋関数版の利点:
167
+
168
+
165
169
  - 状態を持たない
166
170
  - 同じ入力には常に同じ出力
167
171
  - テストが容易
@@ -181,6 +185,8 @@ def get_tip_percentage(names: list[str]) -> int:
181
185
  ```
182
186
 
183
187
  この関数は:
188
+
189
+
184
190
  - 6人以上のグループ → 20% のチップ
185
191
  - 1-5人のグループ → 10% のチップ
186
192
  - 0人(空リスト) → 0% のチップ
@@ -350,6 +350,8 @@ end
350
350
  ```
351
351
 
352
352
  この関数は:
353
+
354
+
353
355
  - 6人以上のグループ → 20% のチップ
354
356
  - 1-5人のグループ → 10% のチップ
355
357
  - 0人(空リスト) → 0% のチップ
@@ -1206,6 +1206,8 @@ p5 --> p6
1206
1206
  ### 問題 1: DataAccess の拡張
1207
1207
 
1208
1208
  以下の要件で `DataAccess` を拡張してください:
1209
+
1210
+
1209
1211
  - 新しいメソッド `find_restaurants_near_location` を追加
1210
1212
  - 戻り値は `IO[{ success: Boolean, value/error: ... }]`
1211
1213
 
@@ -86,6 +86,8 @@ pub fn possible_meetings(
86
86
  ```
87
87
 
88
88
  純粋関数は:
89
+
90
+
89
91
  - テストが容易
90
92
  - 並列実行が安全
91
93
  - 結果を予測可能
@@ -296,6 +296,8 @@ object TipCalculator {
296
296
  ```
297
297
 
298
298
  この関数は:
299
+
300
+
299
301
  - 6人以上のグループ → 20% のチップ
300
302
  - 1-5人のグループ → 10% のチップ
301
303
  - 0人(空リスト) → 0% のチップ
@@ -521,6 +521,8 @@ case class Artist(
521
521
  ```
522
522
 
523
523
  この設計には問題があります:
524
+
525
+
524
526
  - `isActive` が `true` の場合、`yearsActiveEnd` は何を入れるべき?
525
527
  - 無効な状態(`isActive = true` かつ `yearsActiveEnd = 2020`)を作れてしまう
526
528
 
@@ -708,6 +708,8 @@ p5 --> p6
708
708
  ### 問題 1: DataAccess の拡張
709
709
 
710
710
  以下の要件で `DataAccess` を拡張してください:
711
+
712
+
711
713
  - 新しいメソッド `findHotelsNearLocation` を追加
712
714
  - 戻り値は `IO[Either[String, List[Hotel]]]`
713
715
 
@@ -273,6 +273,8 @@ const getTipPercentage = (names: readonly string[]): number => {
273
273
  ```
274
274
 
275
275
  この関数は:
276
+
277
+
276
278
  - 6人以上のグループ → 20% のチップ
277
279
  - 1-5人のグループ → 10% のチップ
278
280
  - 0人(空リスト) → 0% のチップ
@@ -47,6 +47,8 @@ end note
47
47
  **IO モナド**は「副作用を持つ計算の**記述**」を表す型です。
48
48
 
49
49
  fp-ts では:
50
+
51
+
50
52
  - `IO<A>` は「実行すると `A` 型の値を返す同期的な副作用のある計算」
51
53
  - `Task<A>` は「実行すると `Promise<A>` を返す非同期的な副作用のある計算」
52
54
  - IO/Task 値を作成しただけでは副作用は発生しない
@@ -762,6 +762,8 @@ p5 --> p6
762
762
  ### 問題 1: DataAccess の拡張
763
763
 
764
764
  以下の要件で `DataAccess` を拡張してください:
765
+
766
+
765
767
  - 新しいメソッド `findRestaurantsNearLocation` を追加
766
768
  - 戻り値は `Task<Either<string, readonly Restaurant[]>>`
767
769
 
@@ -18,6 +18,11 @@
18
18
  | :--- | :--- | :--- |
19
19
  | データモデル設計 | 概念・論理データモデル、テーブル定義、ER 図を整理 | 未作成 |
20
20
  | ドメインモデル設計 | コンテキスト、集約、エンティティ、値オブジェクトを整理 | 未作成 |
21
+
22
+ ### UI/UX設計
23
+
24
+ | ドキュメント | 概要 | 状況 |
25
+ | :--- | :--- | :--- |
21
26
  | UI 設計 | 画面設計、画面遷移図、コンポーネント設計を整理 | 未作成 |
22
27
 
23
28
  ### 品質・運用
@@ -22,9 +22,9 @@
22
22
  | [運用](./operation/index.md) | 環境構築、デプロイ、運用手順の整理 | `index.md` を整備済み |
23
23
  | [レビュー](./review/index.md) | 分析・開発レビュー結果の記録 | `index.md` を整備済み |
24
24
  | [ADR](./adr/index.md) | Architecture Decision Records の管理 | `index.md` を整備済み |
25
- | [記事一覧](./article/index.md) | 学習用の記事シリーズ一覧 | `index.md` を整備済み |
26
- | [リファレンス](./reference/index.md) | 開発ガイドラインやベストプラクティス | 25 件のドキュメントを配置 |
27
- | [テンプレート](./template/index.md) | 各種ドキュメントの作成テンプレート | 15 件のテンプレートを配置 |
25
+ | [記事](./article/index.md) | 学習用の記事シリーズ一覧 | `index.md` を整備済み |
26
+ | [リファレンス](./reference/index.md) | 開発ガイドラインやベストプラクティス | 28 件のドキュメントを配置 |
27
+ | [テンプレート](./template/index.md) | 各種ドキュメントの作成テンプレート | 16 件のテンプレートを配置 |
28
28
 
29
29
  ## 補足
30
30
 
@@ -490,6 +490,8 @@ start build/jacocoHtml/index.html # Windows
490
490
  ### VS Code
491
491
 
492
492
  必要な拡張機能:
493
+
494
+
493
495
  - Extension Pack for Java
494
496
  - Gradle for Java
495
497
  - Test Runner for Java
@@ -543,36 +545,36 @@ public void method() { }
543
545
 
544
546
  1. **コミットは小さく頻繁に**
545
547
 
546
- - 機能単位でコミット
547
- - テストが通る状態でコミット
548
+ - 機能単位でコミット
549
+ - テストが通る状態でコミット
548
550
 
549
551
  2. **テストファースト**
550
552
 
551
- - 実装前にテストを書く
552
- - テストが失敗することを確認してから実装
553
+ - 実装前にテストを書く
554
+ - テストが失敗することを確認してから実装
553
555
 
554
556
  3. **継続的な品質チェック**
555
557
 
556
- - コミット前に `./gradlew qualityCheck` を実行
557
- - カバレッジ 80% 以上を目標
558
- - 循環複雑度を 7 以下に維持
558
+ - コミット前に `./gradlew qualityCheck` を実行
559
+ - カバレッジ 80% 以上を目標
560
+ - 循環複雑度を 7 以下に維持
559
561
 
560
562
  4. **自動化の活用**
561
563
 
562
- - `./gradlew test --continuous` を常に起動
563
- - IDE の自動テスト機能を活用
564
+ - `./gradlew test --continuous` を常に起動
565
+ - IDE の自動テスト機能を活用
564
566
 
565
567
  5. **リファクタリングの習慣**
566
568
 
567
- - テストが通ったらリファクタリング
568
- - 重複コードの排除
569
- - 意図が明確なコード
569
+ - テストが通ったらリファクタリング
570
+ - 重複コードの排除
571
+ - 意図が明確なコード
570
572
 
571
573
  6. **複雑度の管理**
572
574
 
573
- - メソッドの循環複雑度は 7 以下を維持
574
- - 複雑なロジックは小さなメソッドに分割
575
- - 早期リターンやガード節を活用して複雑度を削減
575
+ - メソッドの循環複雑度は 7 以下を維持
576
+ - 複雑なロジックは小さなメソッドに分割
577
+ - 早期リターンやガード節を活用して複雑度を削減
576
578
 
577
579
  ## まとめ
578
580
 
@@ -312,6 +312,8 @@ SONAR_TOKEN=<YOUR_TOKEN>
312
312
 
313
313
  1. SonarQube でプロジェクトを作成してください。Project Key が `sonarqube.config.json` の `projectKey` と一致しているか確認してください。
314
314
  2. 次のどちらかで権限を付与してください。
315
+
316
+
315
317
  - 付与方法 A: 管理者でログイン > Administration > Security > Users で対象ユーザーに `Execute Analysis` を付与
316
318
  - 付与方法 B: プロジェクト画面 > Project Settings > Permissions で `Execute Analysis` を付与
317
319
 
@@ -442,6 +442,8 @@ const validateStudent = (student) => {
442
442
  オブジェクト指向UI設計は、ユーザーにとって直感的で理解しやすいインターフェースを構築するための強力な手法です。4つの主要原則に従って設計することで、一貫性があり、保守性の高いUIを実現できます。
443
443
 
444
444
  重要なポイント:
445
+
446
+
445
447
  - オブジェクト中心の設計思考
446
448
  - コレクション・シングルビューの適切な使い分け
447
449
  - アクションパターンの統一
File without changes
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Do not edit this file with editors other than diagrams.net -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="791px" height="571px" viewBox="-0.5 -0.5 791 571" content="&lt;mxfile host=&quot;drawio-plugin&quot; modified=&quot;2024-12-02T00:58:20.541Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36&quot; etag=&quot;oISimQxLag5xBQ0J7frg&quot; version=&quot;22.1.22&quot; type=&quot;embed&quot;&gt;&lt;diagram id=&quot;23iRSUPoRavnBvh4doch&quot; name=&quot;Page-1&quot;&gt;7ZlLe6MgFIZ/DXsBr8toTGczm+li1kykiU+N5FHSpP31c1A0UpkmTpOZ3jatfiDI93IOSBBNNoebim3X30XGC0Sc7IDoHBGC3QjDP6U8agVj0iqrKs+0dhRu8yeuRUeruzzjtVFRClHIfGuKS1GWfCkNjVWV2JvV7kRh9rplKz4SbpesGKs/80yuWzUkwVH/xvPVuusZ+1Fb8ost71eV2JW6P0Towl3gedoWb1jXlh5ovWaZ2A8kmiKaVELI9mpzSHihzO1sa59b/KG0f++Kl/KcBzSWB1bs9NBRGqIZRfEcpR6KKAp1m7V87Nyp9/mmYCXcxft1Lvntli1V0R5mA2hruSngDsPlXV4UiShE1TxIFyRJQniVuJaVuOeDktQJZp4quROlHOg0oonngz4emH6vB15JfhhIeqA3XGy4rB6hSlfqa9P1rIz07f5I2He1th7QdbuKTM+qVd/00Vm40ObajQ7HRr9gay1ZJXVYOFf2kUz1kRLTR+KNfOyrGD763ut9xNQyY30U+Sh2mqnrI3AGpm4copCoi5mDYndkNoxVmnOVFfmqhOslOMPBtlg5kkNOmOmCTZ5l6vG44nX+xH4VHZ2tyEvZjMmLkTdXbe2kqFt8eISpFA3jIdNOAmiaOnEnQQynQsSOCXHMEFsZXiAUbARP8hoEx1pU+RM4wwrt/7tKQqbtfU4aGB9ENuPJC87r3n7AUsjKFVg2pTtbyvOedcYKCImSSR6rpa0e0e7HedYEiN5sLqRTcRILvsBiKHH+Cp+lee+MqLwsLuzaU26AZm3AzlEUfr6UG509V3TwBWOYV8ux2LLfMJZJc4eXRqoojFEaoChC8UxVDpvVVClA1PvC+Sz0PewZudWG15rJL4HX+XgptNtNOuem1JdWxLON9E7EyefcTvbz6+zkFv7D5EYss1+RcVE0a6BBymqUMFEkP10qm0Cvy2XUzGU2mtZP40uEILbQbJBB9lQLEwRf8AEgehMhTmVInx1v4DFD614/vADD4M0uR68+JcLYcrxBr3a8YTuQG++1Tx7RvfVgmJjRgskU/9/xBrYEw3gDAVDjRoQMBxGoNhnvPsNdG2pgLlK2yMS2neJFqFoOLY4bxTHe/oOq+QtB+oX3JF7XwNsn2St8UMHt8TeW9kjk+EsWTX8D&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(244, 241, 222);"><defs/><rect fill="#F4F1DE" width="100%" height="100%" x="0" y="0"/><g><path d="M 150 103 L 150 80 L 790 80 L 790 103" fill="#f2cc8f" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="all"/><path d="M 150 103 L 150 570 L 790 570 L 790 103" fill="none" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="none"/><path d="M 150 103 L 790 103" fill="none" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 638px; height: 1px; padding-top: 92px; margin-left: 151px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">製品</div></div></div></foreignObject><text x="470" y="95" fill="#393C56" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">製品</text></switch></g><path d="M 470 105 L 470 105 L 790 105 L 790 105" fill="#f2cc8f" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="all"/><path d="M 470 105 L 470 570 L 790 570 L 790 105" fill="none" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="none"/><rect x="570" y="110" width="120" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 130px; margin-left: 630px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; white-space: nowrap;">新規市場</div></div></div></foreignObject><text x="630" y="137" fill="#393C56" font-family="Helvetica" font-size="24px" text-anchor="middle">新規市場</text></switch></g><path d="M 23 150 L 0 150 L 0 570 L 23 570" fill="#f2cc8f" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="all"/><path d="M 23 150 L 790 150 L 790 570 L 23 570" fill="none" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="none"/><path d="M 23 150 L 23 570" fill="none" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)rotate(-90 11.5 360)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 418px; height: 1px; padding-top: 360px; margin-left: -197px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">市場</div></div></div></foreignObject><text x="12" y="364" fill="#393C56" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">市場</text></switch></g><path d="M 20 150 L 20 150 L 790 150 L 790 150" fill="#f2cc8f" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="all"/><path d="M 20 150 L 20 350 L 790 350 L 790 150" fill="none" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="none"/><rect x="20" y="220" width="120" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 240px; margin-left: 80px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; white-space: nowrap;">既存市場</div></div></div></foreignObject><text x="80" y="247" fill="#393C56" font-family="Helvetica" font-size="24px" text-anchor="middle">既存市場</text></switch></g><rect x="535" y="220" width="190" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 240px; margin-left: 630px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; white-space: nowrap;">新製品開発戦略</div></div></div></foreignObject><text x="630" y="247" fill="#393C56" font-family="Helvetica" font-size="24px" text-anchor="middle">新製品開発戦略</text></switch></g><path d="M 20 350 L 20 350 L 790 350 L 790 350" fill="#f2cc8f" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="all"/><path d="M 20 350 L 20 570 L 790 570 L 790 350" fill="none" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="none"/><rect x="20" y="430" width="120" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 450px; margin-left: 80px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; white-space: nowrap;">新規市場</div></div></div></foreignObject><text x="80" y="457" fill="#393C56" font-family="Helvetica" font-size="24px" text-anchor="middle">新規市場</text></switch></g><rect x="555" y="430" width="140" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 450px; margin-left: 625px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; white-space: nowrap;">多角化戦略</div></div></div></foreignObject><text x="625" y="457" fill="#393C56" font-family="Helvetica" font-size="24px" text-anchor="middle">多角化戦略</text></switch></g><rect x="350" y="0" width="240" height="80" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 40px; margin-left: 470px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 54px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; white-space: nowrap;">成長戦略</div></div></div></foreignObject><text x="470" y="56" fill="#393C56" font-family="Helvetica" font-size="54px" text-anchor="middle">成長戦略</text></switch></g><path d="M 150 105 L 150 105 L 480 105 L 480 105" fill="#f2cc8f" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="all"/><path d="M 150 105 L 150 570 L 480 570 L 480 105" fill="none" stroke="#e07a5f" stroke-miterlimit="10" pointer-events="none"/><rect x="250" y="110" width="120" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 130px; margin-left: 310px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; white-space: nowrap;">既存製品</div></div></div></foreignObject><text x="310" y="137" fill="#393C56" font-family="Helvetica" font-size="24px" text-anchor="middle">既存製品</text></switch></g><rect x="225" y="220" width="170" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 240px; margin-left: 310px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; white-space: nowrap;">市場浸透戦略</div></div></div></foreignObject><text x="310" y="247" fill="#393C56" font-family="Helvetica" font-size="24px" text-anchor="middle">市場浸透戦略</text></switch></g><rect x="224" y="435" width="190" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 455px; margin-left: 319px;"><div data-drawio-colors="color: #393C56; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(57, 60, 86); line-height: 1.2; pointer-events: all; white-space: nowrap;">新市場開拓戦略</div></div></div></foreignObject><text x="319" y="462" fill="#393C56" font-family="Helvetica" font-size="24px" text-anchor="middle">新市場開拓戦略</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Do not edit this file with editors other than diagrams.net -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2253px" height="1601px" viewBox="-0.5 -0.5 2253 1601" content="&lt;mxfile modified=&quot;2022-06-10T01:00:51.630Z&quot; host=&quot;Electron&quot; agent=&quot;5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/18.0.6 Chrome/100.0.4896.143 Electron/18.2.3 Safari/537.36&quot; etag=&quot;ueATvqIBimKH7usmp3bl&quot; version=&quot;18.0.6&quot; type=&quot;device&quot;&gt;&lt;diagram id=&quot;07fea595-8f29-1299-0266-81d95cde20df&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="1" y="1" width="2250" height="1598" fill="#e8edf0" stroke="none" pointer-events="all"/><rect x="1331" y="189" width="420" height="450" fill="#ffffff" stroke="#e8edf0" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 362px; height: 1px; padding-top: 224px; margin-left: 1361px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style="font-size: 26px"><font style="font-size: 26px">Customer Relationships</font></div><div><br /></div><div>What type of relationship does each of our Customer</div><div>Segments expect us to establish and maintain with them?</div><div>Which ones have we established?</div><div>How are they integrated with the rest of our business model?</div><div>How costly are they?</div><div><br /></div><div style="font-size: 10px"><font style="font-size: 10px"><b>Examples</b></font></div><div style="font-size: 10px"><font style="font-size: 10px">Personal assistance</font></div><div style="font-size: 10px"><font style="font-size: 10px">Dedicated Personal Assistance</font></div><div style="font-size: 10px"><font style="font-size: 10px">Self-Service</font></div><div style="font-size: 10px"><font style="font-size: 10px">Automated Services</font></div><div style="font-size: 10px"><font style="font-size: 10px">Communities</font></div><div style="font-size: 10px"><font style="font-size: 10px">Co-creation</font></div></div></div></div></foreignObject><text x="1361" y="236" fill="#2F5B7C" font-family="Helvetica" font-size="12px">Customer Relationships...</text></switch></g><rect x="71" y="189" width="420" height="900" fill="#ffffff" stroke="#e8edf0" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 362px; height: 1px; padding-top: 224px; margin-left: 101px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font><font style="font-size: 26px">Key Partners</font><br /></font><font style="font-size: 12px"><br style="font-size: 12px" /><font style="font-size: 12px">Who are our Key Partners?<br style="font-size: 12px" />Who are our Key Suppliers?<br style="font-size: 12px" />Which Key Resources are we acquiring from partners?<br style="font-size: 12px" /></font><br style="font-size: 12px" /></font><div style="font-size: 10px"><font style="font-size: 10px"><b>Motivations for partnerships</b></font></div><div style="font-size: 10px"><font style="font-size: 10px">Optimization and economy</font></div><div style="font-size: 10px"><font style="font-size: 10px">Reduction of risk and uncertainty</font></div><div style="font-size: 10px"><font style="font-size: 10px">Acquisition of particular resources and activities</font></div><div style="font-size: 12px"><br style="font-size: 12px" /></div></div></div></div></foreignObject><text x="101" y="236" fill="#2F5B7C" font-family="Helvetica" font-size="12px">Key Partners...</text></switch></g><rect x="491" y="189" width="420" height="450" fill="#ffffff" stroke="#e8edf0" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 362px; height: 1px; padding-top: 224px; margin-left: 521px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font><font style="font-size: 26px">Key Activities</font><br style="font-size: 12px" /></font><font><br style="font-size: 12px" /><div>What Key Activities do our Value Propositions require?</div><div>Our Distribution Channels?</div><div>Customer Relationships?</div><div>Revenue streams?</div><div><br /></div></font><div style="font-size: 10px"><div><b>Categories</b></div><div>Production</div><div>Problem Solving</div><div>Platform/Network</div></div><div><br /></div></div></div></div></foreignObject><text x="521" y="236" fill="#2F5B7C" font-family="Helvetica" font-size="12px">Key Activities...</text></switch></g><rect x="491" y="639" width="420" height="450" fill="#ffffff" stroke="#e8edf0" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 362px; height: 1px; padding-top: 674px; margin-left: 521px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div><font style="font-size: 26px">Key Resources</font></div><div><br /></div><div>What Key Resources do our Value Propositions require?</div><div>Our Distribution Channels? Customer Relationships?</div><div>Revenue Streams?</div><div><br /></div><div style="font-size: 10px"><font style="font-size: 10px"><b>Types of resources</b></font></div><div style="font-size: 10px"><font style="font-size: 10px">Physical</font></div><div style="font-size: 10px"><font style="font-size: 10px">Intellectual (brand patents, copyrights, data)</font></div><div style="font-size: 10px"><font style="font-size: 10px">Human</font></div><div style="font-size: 10px"><font style="font-size: 10px">Financial</font></div></div></div></div></foreignObject><text x="521" y="686" fill="#2F5B7C" font-family="Helvetica" font-size="12px">Key Resources...</text></switch></g><rect x="911" y="189" width="420" height="900" fill="#ffffff" stroke="#e8edf0" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 362px; height: 1px; padding-top: 224px; margin-left: 941px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style="font-size: 26px"><font style="font-size: 26px">Value Propositions</font></div><div><br /></div><div>What value do we deliver to the customer?</div><div>Which one of our customer’s problems are we helping to solve?</div><div>What bundles of products and services are we offering to each Customer Segment?</div><div>Which customer needs are we satisfying?</div><div><br /></div><div style="font-size: 10px"><font style="font-size: 10px"><b>Characteristics</b></font></div><div style="font-size: 10px"><font style="font-size: 10px">Newness</font></div><div style="font-size: 10px"><font style="font-size: 10px">Performance</font></div><div style="font-size: 10px"><font style="font-size: 10px">Customization</font></div><div style="font-size: 10px"><font style="font-size: 10px">“Getting the Job Done”</font></div><div style="font-size: 10px"><font style="font-size: 10px">Design</font></div><div style="font-size: 10px"><font style="font-size: 10px">Brand/Status</font></div><div style="font-size: 10px"><font style="font-size: 10px">Price</font></div><div style="font-size: 10px"><font style="font-size: 10px">Cost Reduction</font></div><div style="font-size: 10px"><font style="font-size: 10px">Risk Reduction</font></div><div style="font-size: 10px"><font style="font-size: 10px">Accessibility</font></div><div style="font-size: 10px"><font style="font-size: 10px">Convenience/Usability</font></div><div style="font-size: 10px"><br /></div></div></div></div></foreignObject><text x="941" y="236" fill="#2F5B7C" font-family="Helvetica" font-size="12px">Value Propositions...</text></switch></g><rect x="1751" y="189" width="420" height="900" fill="#ffffff" stroke="#e8edf0" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 362px; height: 1px; padding-top: 224px; margin-left: 1781px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div><font style="font-size: 26px">Customer Segments</font></div><div><br /></div><div>For whom are we creating value?</div><div>Who are our most important customers?</div><div><br /></div><div style="font-size: 10px"><font style="font-size: 10px">Mass Market</font></div><div style="font-size: 10px"><font style="font-size: 10px">Niche Market</font></div><div style="font-size: 10px"><font style="font-size: 10px">Segmented</font></div><div style="font-size: 10px"><font style="font-size: 10px">Diversified</font></div><div style="font-size: 10px"><font style="font-size: 10px">Multi-sided Platform</font></div></div></div></div></foreignObject><text x="1781" y="236" fill="#2F5B7C" font-family="Helvetica" font-size="12px">Customer Segments...</text></switch></g><rect x="1331" y="639" width="420" height="450" fill="#ffffff" stroke="#e8edf0" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 362px; height: 1px; padding-top: 674px; margin-left: 1361px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div><font style="font-size: 26px">Channels</font></div><div><br /></div><div>Through which Channels do our Customer Segments</div><div>want to be reached?</div><div>How are we reaching them now?</div><div>How are our Channels integrated?</div><div>Which ones work best?</div><div>Which ones are most cost-efficient?</div><div>How are we integrating them with customer routines?</div><div><br /></div><div style="font-size: 10px"><font style="font-size: 10px"><b>Channel phases</b></font></div><div style="font-size: 10px"><font style="font-size: 10px">1. Awareness</font></div><div style="font-size: 10px"><font style="font-size: 10px">    How do we raise awareness about our company’s products and services?</font></div><div style="font-size: 10px"><font style="font-size: 10px">2. Evaluation</font></div><div style="font-size: 10px"><font style="font-size: 10px">    How do we help customers evaluate our organization’s Value Proposition?</font></div><div style="font-size: 10px"><font style="font-size: 10px">3. Purchase</font></div><div style="font-size: 10px"><font style="font-size: 10px">    How do we allow customers to purchase specific products and services?</font></div><div style="font-size: 10px"><font style="font-size: 10px">4. Delivery</font></div><div style="font-size: 10px"><font style="font-size: 10px">    How do we deliver a Value Proposition to customers?</font></div><div style="font-size: 10px"><font style="font-size: 10px">5. After sales</font></div><div style="font-size: 10px"><font style="font-size: 10px">    How do we provide post-purchase customer support?</font></div><div style="font-size: 10px"><br /></div></div></div></div></foreignObject><text x="1361" y="686" fill="#2F5B7C" font-family="Helvetica" font-size="12px">Channels...</text></switch></g><rect x="71" y="1089" width="1050" height="330" fill="#ffffff" stroke="#e8edf0" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 992px; height: 1px; padding-top: 1124px; margin-left: 101px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style="font-size: 26px"><font style="font-size: 26px">Cost Structure</font></div><div><br /></div><div>What are the most important costs inherent in our business model?</div><div>Which Key Resources are most expensive?</div><div>Which Key Activities are most expensive?</div><div><br /></div><div style="font-size: 10px"><font style="font-size: 10px"><b>Is your business more</b></font></div><div style="font-size: 10px"><font style="font-size: 10px">Cost Driven (leanest cost structure, low price value proposition, maximum automation, extensive outsourcing)</font></div><div style="font-size: 10px"><font style="font-size: 10px">Value Driven ( focused on value creation, premium value proposition)</font></div><div style="font-size: 10px"><font style="font-size: 10px"><br /></font></div><div style="font-size: 10px"><font style="font-size: 10px"><b>Sample characteristics</b></font></div><div style="font-size: 10px"><font style="font-size: 10px">Fixed Costs (salaries, rents, utilities)</font></div><div style="font-size: 10px"><font style="font-size: 10px">Variable costs</font></div><div style="font-size: 10px"><font style="font-size: 10px">Economies of scale</font></div><div style="font-size: 10px"><font style="font-size: 10px">Economies of scope</font></div></div></div></div></foreignObject><text x="101" y="1136" fill="#2F5B7C" font-family="Helvetica" font-size="12px">Cost Structure...</text></switch></g><rect x="1121" y="1089" width="1050" height="330" fill="#ffffff" stroke="#e8edf0" stroke-width="5" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 992px; height: 1px; padding-top: 1124px; margin-left: 1151px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style="font-size: 26px"><font style="font-size: 26px">Revenue Streams</font></div><div><br /></div><div>For what value are our customers really willing to pay?</div><div>For what do they currently pay?</div><div>How are they currently paying?</div><div>How would they prefer to pay?</div><div>How much does each Revenue Stream contribute to overall revenues?</div></div></div></div></foreignObject><text x="1151" y="1136" fill="#2F5B7C" font-family="Helvetica" font-size="12px">Revenue Streams...</text></switch></g><rect x="71" y="79" width="780" height="70" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 82px; margin-left: 73px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 60px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: nowrap;">The Business Model Canvas<br /></div></div></div></foreignObject><text x="73" y="142" fill="#2F5B7C" font-family="Helvetica" font-size="60px">The Business Model Canvas&#xa;</text></switch></g><path d="M 871 229 L 875.29 237 L 891 221" fill="none" stroke="#2f5b7c" stroke-width="4" stroke-miterlimit="10" pointer-events="all"/><path d="M 1301.59 213.38 L 1305.31 210.39 L 1303.18 207.54 L 1299.84 209.99 L 1301.38 205.03 L 1298.05 204 L 1296.31 209.26 L 1294.58 204 L 1291.24 205.03 L 1292.77 210 L 1289.31 207.5 L 1287.18 210.35 L 1291.03 213.39 L 1281 213.39 L 1281 244 L 1312 244 L 1312 213.38 L 1301.59 213.38 Z M 1294.41 240.42 L 1284.27 240.42 L 1284.27 225.45 L 1294.41 225.45 L 1294.41 240.42 Z M 1294.41 221.87 L 1284.27 221.87 L 1284.27 217.02 L 1294.41 217.02 L 1294.41 221.87 Z M 1309.09 240.42 L 1298.06 240.42 L 1298.06 225.45 L 1309.09 225.45 L 1309.09 240.42 Z M 1309.09 221.87 L 1298.06 221.87 L 1298.06 217.02 L 1309.09 217.02 L 1309.09 221.87 Z" fill="#2f5b7c" stroke="none" pointer-events="all"/><path d="M 1690.44 231.18 C 1686 226.82 1686 219.74 1690.44 215.37 C 1694.87 211 1702.07 211 1706.5 215.37 C 1709.37 212.54 1713.55 211.44 1717.47 212.47 C 1721.39 213.51 1724.46 216.52 1725.51 220.38 C 1726.56 224.24 1725.44 228.36 1722.57 231.18 L 1706.5 247 Z Z" fill="#2f5b7c" stroke="none" pointer-events="all"/><rect x="1475.5" y="1255" width="120" height="50" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 1258px; margin-left: 1478px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div style="font-size: 10px"><b>Dynamic pricing</b></div><div style="font-size: 10px">Negotiation( bargaining)</div><div style="font-size: 10px">Yield Management</div><div style="font-size: 10px">Real-time-Market</div></div></div></div></foreignObject><text x="1478" y="1268" fill="#2F5B7C" font-family="Helvetica" font-size="10px">Dynamic pricing...</text></switch></g><rect x="1296.5" y="1255" width="150" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 1258px; margin-left: 1299px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div style="font-size: 10px"><b>Fixed pricing</b></div><div style="font-size: 10px">List Price</div><div style="font-size: 10px">Product feature dependent</div><div style="font-size: 10px">Customer segment dependent</div><div style="font-size: 10px">Volume dependent</div></div></div></div></foreignObject><text x="1299" y="1268" fill="#2F5B7C" font-family="Helvetica" font-size="10px">Fixed pricing...</text></switch></g><rect x="1151" y="1255" width="130" height="100" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 1258px; margin-left: 1153px;"><div data-drawio-colors="color: #2F5B7C; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(47, 91, 124); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div style="font-size: 10px"><b>Types</b></div><div style="font-size: 10px">Asset sale</div><div style="font-size: 10px">Usage fee</div><div style="font-size: 10px">Subscription Fees</div><div style="font-size: 10px">Lending/Renting/Leasing</div><div style="font-size: 10px">Licensing</div><div style="font-size: 10px">Brokerage fees</div><div style="font-size: 10px">Advertising</div></div></div></div></foreignObject><text x="1153" y="1268" fill="#2F5B7C" font-family="Helvetica" font-size="10px">Types...</text></switch></g><path d="M 841 709 L 841 663.19 C 841.11 662.05 842.33 660.99 844.32 660.33 C 846.35 659.49 849.35 659 852.5 659.01 C 855.87 659.08 858.95 659.71 860.78 660.7 C 862.34 661.37 863.18 662.22 863.15 663.08 L 863.15 688.42 L 876.92 676.31 L 876.92 688.58 L 891 676.26 L 891 709 Z M 860.57 700.96 L 866.16 700.96 L 866.16 695.3 L 860.57 695.3 Z M 870.32 700.96 L 875.92 700.96 L 875.92 695.3 L 870.32 695.3 Z M 880.24 700.96 L 885.83 700.96 L 885.83 695.3 L 880.24 695.3 Z M 860.36 662.61 C 860.16 662.04 859.3 661.52 857.93 661.13 C 856.41 660.73 854.45 660.52 852.45 660.54 C 850.88 660.53 849.34 660.66 848.01 660.91 C 846.69 661.15 845.63 661.5 844.96 661.92 C 843.87 662.51 843.83 663.18 844.85 663.77 C 845.78 664.41 847.59 664.89 849.81 665.09 C 851.84 665.29 854.04 665.23 855.93 664.94 C 857.45 664.71 858.69 664.34 859.46 663.88 C 860.14 663.49 860.45 663.05 860.36 662.61 Z" fill="#2f5b7c" stroke="none" pointer-events="all"/><path d="M 1723.91 685.22 L 1723.4 677.73 C 1723.31 676.65 1722.4 675.81 1721.29 675.81 L 1700.71 675.81 C 1699.6 675.81 1698.69 676.65 1698.59 677.73 L 1698.1 685.22 L 1723.91 685.22 Z M 1728.24 692.9 C 1728.24 691.36 1727 690.11 1725.47 690.11 C 1723.93 690.11 1722.68 691.36 1722.68 692.9 C 1722.68 694.43 1723.93 695.67 1725.47 695.67 C 1727 695.67 1728.24 694.43 1728.24 692.9 M 1720.13 697.06 L 1720.13 690.05 C 1720.13 689.36 1719.56 688.79 1718.86 688.79 L 1703.09 688.79 C 1702.41 688.79 1701.84 689.36 1701.84 690.05 L 1701.84 697.06 L 1720.13 697.06 Z M 1696.53 695.68 C 1698.06 695.68 1699.31 694.44 1699.31 692.9 C 1699.31 691.37 1698.06 690.11 1696.53 690.11 C 1695 690.11 1693.75 691.37 1693.75 692.9 C 1693.75 694.43 1695 695.68 1696.53 695.68 M 1721.29 673.84 C 1723.42 673.84 1725.18 675.5 1725.35 677.59 L 1725.87 685.3 L 1731 688.4 L 1730.98 701.43 L 1728.69 701.43 L 1728.71 705.69 C 1728.71 707.53 1727.22 709 1725.38 709 C 1723.55 709 1722.07 707.53 1722.07 705.69 L 1722.07 701.43 L 1699.93 701.43 L 1699.94 705.69 C 1699.94 707.53 1698.45 709 1696.61 709 C 1694.79 709 1693.3 707.53 1693.3 705.69 L 1693.3 701.43 L 1691.02 701.43 L 1691 688.4 L 1696.13 685.3 L 1696.65 677.59 C 1696.81 675.5 1698.56 673.84 1700.71 673.84 L 1721.29 673.84 Z M 1727.32 659 C 1729.34 659 1730.98 660.64 1730.98 662.65 L 1730.98 686.3 L 1727.61 684.23 L 1727.17 677.33 C 1726.87 674.35 1724.34 672.02 1721.29 672.02 L 1700.7 672.02 C 1697.64 672.02 1695.13 674.35 1694.83 677.33 L 1694.39 684.23 L 1691 686.3 L 1691.01 662.65 C 1691.01 660.64 1692.65 659 1694.67 659 L 1727.32 659 Z" fill="#2f5b7c" stroke="none" pointer-events="all"/><image x="1054.5" y="1108.5" width="58" height="58" xlink:href="https://cdn4.iconfinder.com/data/icons/evil-icons-user-interface/64/price-128.png" preserveAspectRatio="none"/><path d="M 2119.16 1145.19 C 2118.61 1144.11 2117.61 1143.29 2116.06 1143.29 C 2115.03 1143.29 2113.76 1143.83 2113.12 1145.2 C 2113.62 1146.27 2114.8 1147.1 2116.12 1147.1 C 2117.65 1147.1 2118.75 1146.1 2119.16 1145.19 Z M 2145 1155.85 L 2145 1158.66 L 2128.22 1175.5 L 2108.29 1155.49 L 2108.29 1136.42 L 2106 1136.42 L 2106 1151.64 L 2077.5 1151.64 L 2077.5 1100.5 L 2120.76 1100.5 L 2120.76 1135.87 L 2125.04 1135.87 Z" fill="#2f5b7c" stroke="none" pointer-events="all"/><path d="M 2120.76 1135.87 L 2108.29 1135.87 L 2108.29 1136.42 L 2106 1136.42 L 2106 1133.59 L 2120.76 1133.59 Z M 2119.16 1145.19 C 2118.61 1144.11 2117.61 1143.29 2116.06 1143.29 C 2115.03 1143.29 2113.76 1143.83 2113.12 1145.2 C 2112.64 1144.18 2112.58 1142.6 2113.93 1141.28 C 2115.21 1140.14 2117.12 1140.19 2118.38 1141.31 C 2119.4 1142.28 2119.79 1143.82 2119.16 1145.19 Z M 2106 1151.64 L 2077.5 1151.64 L 2077.5 1148.82 L 2106 1148.82 Z M 2128.22 1175.5 L 2108.29 1155.49 L 2108.29 1152.68 L 2128.22 1172.67 L 2145 1155.85 L 2145 1158.66 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><rect x="2077.5" y="1100.5" width="0" height="0" fill="none" stroke="none" pointer-events="all"/><path d="M 2093.72 1106.96 L 2086.35 1114.34 L 2081.74 1109.72 L 2084.05 1107.43 L 2086.4 1109.8 L 2091.48 1104.71 Z M 2115.84 1112.67 L 2096.71 1112.67 L 2096.71 1109.12 L 2115.84 1109.12 Z M 2093.73 1120.5 L 2086.35 1127.9 L 2081.74 1123.28 L 2084.03 1120.98 L 2086.4 1123.35 L 2091.49 1118.25 Z M 2096.71 1126.41 L 2096.71 1122.85 L 2115.84 1122.85 L 2115.84 1126.41 Z M 2096.71 1140.17 L 2096.71 1136.62 L 2106 1136.62 L 2106 1140.17 Z M 2086.35 1141.45 L 2081.74 1136.83 L 2084.05 1134.54 L 2086.4 1136.89 L 2091.49 1131.8 L 2093.73 1134.05 Z" fill="#ffffff" stroke="none" pointer-events="all"/><path d="M 443.5 224.84 C 444.21 226.44 445.22 227.63 446.42 228.6 C 448.42 230.19 450.55 230.91 452.77 230.99 L 459.58 230.99 C 463.07 230.83 465.6 229.2 467.33 227.18 C 469.77 224.43 471 219.21 468.29 214.87 C 466.56 212.17 463.59 210.11 459.52 210 L 452.7 210 C 450.67 210 448.06 210.97 446.59 212.19 C 444.98 213.51 444.16 214.8 443.57 215.98 L 448.66 215.98 C 449.61 215.05 450.88 214.26 452.87 214.18 L 459.5 214.18 C 461.31 214.28 463.01 214.89 464.44 216.82 C 466.04 219.21 465.89 222.04 464.34 224.17 C 463.21 225.56 461.77 226.65 459.5 226.76 L 452.98 226.76 C 450.95 226.76 449.47 225.72 448.59 224.84 Z M 454.36 222.68 C 455.52 222.68 456.43 221.64 456.43 220.51 C 456.43 219.22 455.37 218.19 454.33 218.19 L 426.28 218.19 C 425.34 218.19 424.25 219.24 424.25 220.46 C 424.25 221.79 425.34 222.68 426.31 222.68 Z M 437.12 224.99 C 436.32 226.69 435.12 228.28 433.18 229.47 C 431.56 230.42 429.79 231 427.65 230.99 L 421.15 230.99 C 417.7 230.99 413.62 228.98 411.74 224.92 C 410.63 222.2 410 219.08 412.35 214.95 C 414.3 211.73 417.95 210 420.87 210 L 428.12 210 C 430.22 210.13 432.19 210.83 434.01 212.2 C 435.47 213.35 436.44 214.6 437.11 215.98 L 432.04 215.98 C 430.95 214.85 429.24 214.16 427.7 214.18 L 421.25 214.18 C 419.85 214.18 417.63 214.88 416.18 216.99 C 414.27 220.04 415.41 222.67 415.95 223.64 C 417.32 225.9 419.3 226.64 421.18 226.76 L 428.06 226.76 C 429.71 226.65 430.98 225.98 432.03 224.99 Z" fill="#2f5b7c" stroke="none" pointer-events="all"/><path d="M 2131.5 233.89 C 2125.47 233.89 2120.1 228.85 2120.1 221.13 C 2120.1 215.14 2124.64 209 2131.29 209 C 2137.78 209 2142.53 214.94 2142.53 221.42 C 2142.53 228.91 2136.93 233.89 2131.5 233.89 Z M 2108.5 259 C 2109.02 253.48 2109.72 245.94 2111.04 242.13 C 2111.65 240.4 2112.54 239.16 2113.97 238.12 C 2114.9 237.43 2118.2 235.61 2118.81 235.31 C 2119.87 234.76 2120.96 234.47 2121.9 235.31 C 2127.5 240.26 2135.24 240.11 2140.92 235.33 C 2141.58 234.65 2142.62 234.83 2143.31 235.1 C 2144.4 235.52 2147.88 237.57 2148.54 237.99 C 2150.46 239.25 2151.5 240.93 2152.27 244.09 C 2153.25 248.36 2153.83 253.79 2154.5 259 Z" fill="#2f5b7c" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 2100.5 238.89 C 2094.47 238.89 2089.1 233.85 2089.1 226.13 C 2089.1 220.14 2093.64 214 2100.29 214 C 2106.78 214 2111.53 219.94 2111.53 226.42 C 2111.53 233.91 2105.93 238.89 2100.5 238.89 Z M 2077.5 264 C 2078.02 258.48 2078.72 250.94 2080.04 247.13 C 2080.65 245.4 2081.54 244.16 2082.97 243.12 C 2083.9 242.43 2087.2 240.61 2087.81 240.31 C 2088.87 239.76 2089.96 239.47 2090.9 240.31 C 2096.5 245.26 2104.24 245.11 2109.92 240.33 C 2110.58 239.65 2111.62 239.83 2112.31 240.1 C 2113.4 240.52 2116.88 242.57 2117.54 242.99 C 2119.46 244.25 2120.5 245.93 2121.27 249.09 C 2122.25 253.36 2122.83 258.79 2123.5 264 Z" fill="#2f5b7c" stroke="#ffffff" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" font-size="12px"><text x="112.5" y="1466.5">www.businessmodelgeneration.com</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" font-size="12px"><text x="1416" y="1464">This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License. </text><text x="1416" y="1478">To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ </text><text x="1416" y="1492">or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.</text></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>