Enviar pesquisa
Carregar
Ooc 2020
•
6 gostaram
•
10,458 visualizações
Zenji Kanzaki
Seguir
関心の分離とは
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 41
Baixar agora
Baixar para ler offline
Recomendados
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
Recomendados
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
例外設計における大罪
例外設計における大罪
Takuto Wada
概念モデリング再入門 + DDD
概念モデリング再入門 + DDD
Hiroshima JUG
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
増田 亨
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
Koichiro Matsuoka
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
現状分析→価値開発→仕様化 As is
現状分析→価値開発→仕様化 As is
Zenji Kanzaki
ごった煮じゃNight!vol.1
ごった煮じゃNight!vol.1
Satoshi Furuichi
Mais conteúdo relacionado
Mais procurados
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
例外設計における大罪
例外設計における大罪
Takuto Wada
概念モデリング再入門 + DDD
概念モデリング再入門 + DDD
Hiroshima JUG
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
Tackling Complexity
Tackling Complexity
Yoshitaka Kawashima
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
増田 亨
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
Koichiro Matsuoka
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Koichiro Matsuoka
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Mais procurados
(20)
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
例外設計における大罪
例外設計における大罪
概念モデリング再入門 + DDD
概念モデリング再入門 + DDD
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Tackling Complexity
Tackling Complexity
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Semelhante a Ooc 2020
現状分析→価値開発→仕様化 As is
現状分析→価値開発→仕様化 As is
Zenji Kanzaki
ごった煮じゃNight!vol.1
ごった煮じゃNight!vol.1
Satoshi Furuichi
Rdraモデリングをしよう
Rdraモデリングをしよう
Zenji Kanzaki
Rdraはどう形作られたか?
Rdraはどう形作られたか?
Zenji Kanzaki
越境する情シス
越境する情シス
Zenji Kanzaki
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
女性のためのFacebookセミナーin四日市
女性のためのFacebookセミナーin四日市
Chikako Kawakita
デジタルトランスフォーメーションと組織文化
デジタルトランスフォーメーションと組織文化
Hiroshi Takahashi
ChatGPTを使った要件定義のRDRA的考察.pdf
ChatGPTを使った要件定義のRDRA的考察.pdf
Zenji Kanzaki
サークル、ボランティア・チームの立上げ・運営_導入
サークル、ボランティア・チームの立上げ・運営_導入
Takuji Hiroishi
ソーシャルメディアと行政広報
ソーシャルメディアと行政広報
Shinya ICHINOHE
What's interest
What's interest
OgataAyaka
自分をアピールする「名刺」デザインを考えよう!
自分をアピールする「名刺」デザインを考えよう!
Mori Kazue
Devrel20170301
Devrel20170301
Eiji Kawakita
Xデザイン学校で楽しむ大人の学び(2018年 ver)
Xデザイン学校で楽しむ大人の学び(2018年 ver)
Hitomi Yamagishi
言語処理学会へ遊びに行ったよ
言語処理学会へ遊びに行ったよ
antibayesian 俺がS式だ
Data science workshop in Shinjuku
Data science workshop in Shinjuku
Yusuke Ohira
人事?それとも…?とあるITベンチャーの人事のお話 エフスタ!! In Aizu #efsta36
人事?それとも…?とあるITベンチャーの人事のお話 エフスタ!! In Aizu #efsta36
Mamiko Tsuda
BBS 2012#1
BBS 2012#1
Chihiro Fuji
基幹システムの可視化
基幹システムの可視化
Zenji Kanzaki
Semelhante a Ooc 2020
(20)
現状分析→価値開発→仕様化 As is
現状分析→価値開発→仕様化 As is
ごった煮じゃNight!vol.1
ごった煮じゃNight!vol.1
Rdraモデリングをしよう
Rdraモデリングをしよう
Rdraはどう形作られたか?
Rdraはどう形作られたか?
越境する情シス
越境する情シス
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
女性のためのFacebookセミナーin四日市
女性のためのFacebookセミナーin四日市
デジタルトランスフォーメーションと組織文化
デジタルトランスフォーメーションと組織文化
ChatGPTを使った要件定義のRDRA的考察.pdf
ChatGPTを使った要件定義のRDRA的考察.pdf
サークル、ボランティア・チームの立上げ・運営_導入
サークル、ボランティア・チームの立上げ・運営_導入
ソーシャルメディアと行政広報
ソーシャルメディアと行政広報
What's interest
What's interest
自分をアピールする「名刺」デザインを考えよう!
自分をアピールする「名刺」デザインを考えよう!
Devrel20170301
Devrel20170301
Xデザイン学校で楽しむ大人の学び(2018年 ver)
Xデザイン学校で楽しむ大人の学び(2018年 ver)
言語処理学会へ遊びに行ったよ
言語処理学会へ遊びに行ったよ
Data science workshop in Shinjuku
Data science workshop in Shinjuku
人事?それとも…?とあるITベンチャーの人事のお話 エフスタ!! In Aizu #efsta36
人事?それとも…?とあるITベンチャーの人事のお話 エフスタ!! In Aizu #efsta36
BBS 2012#1
BBS 2012#1
基幹システムの可視化
基幹システムの可視化
Mais de Zenji Kanzaki
AI時代の要件定義
AI時代の要件定義
Zenji Kanzaki
商流物流金流.pdf
商流物流金流.pdf
Zenji Kanzaki
Rdra2.0 redmine
Rdra2.0 redmine
Zenji Kanzaki
ToBe図書館モデル
ToBe図書館モデル
Zenji Kanzaki
現状分析→価値開発→仕様化 To be
現状分析→価値開発→仕様化 To be
Zenji Kanzaki
RDRAモデリングを見てみよう
RDRAモデリングを見てみよう
Zenji Kanzaki
RDRAにおける合意形成の仕組み
RDRAにおける合意形成の仕組み
Zenji Kanzaki
CCSRを実現するRDRA活用法
CCSRを実現するRDRA活用法
Zenji Kanzaki
雲の上の要件定義
雲の上の要件定義
Zenji Kanzaki
顧客にもわかるモデリング
顧客にもわかるモデリング
Zenji Kanzaki
オブジェクト指向方法論OMT まとめ
オブジェクト指向方法論OMT まとめ
Zenji Kanzaki
不動産販売システム
不動産販売システム
Zenji Kanzaki
話題沸騰ポッド RDRAモデル
話題沸騰ポッド RDRAモデル
Zenji Kanzaki
基幹システム RDRAモデル
基幹システム RDRAモデル
Zenji Kanzaki
基幹システムの可視化技法
基幹システムの可視化技法
Zenji Kanzaki
RDRA流概念モデル
RDRA流概念モデル
Zenji Kanzaki
基幹システム RDRAモデルサンプル
基幹システム RDRAモデルサンプル
Zenji Kanzaki
越境アジャイル設立イベント:RDRA事例(BIGLOBE)
越境アジャイル設立イベント:RDRA事例(BIGLOBE)
Zenji Kanzaki
RDRA 越境アジャイルin大阪
RDRA 越境アジャイルin大阪
Zenji Kanzaki
ビジネスモデル2 rdra
ビジネスモデル2 rdra
Zenji Kanzaki
Mais de Zenji Kanzaki
(20)
AI時代の要件定義
AI時代の要件定義
商流物流金流.pdf
商流物流金流.pdf
Rdra2.0 redmine
Rdra2.0 redmine
ToBe図書館モデル
ToBe図書館モデル
現状分析→価値開発→仕様化 To be
現状分析→価値開発→仕様化 To be
RDRAモデリングを見てみよう
RDRAモデリングを見てみよう
RDRAにおける合意形成の仕組み
RDRAにおける合意形成の仕組み
CCSRを実現するRDRA活用法
CCSRを実現するRDRA活用法
雲の上の要件定義
雲の上の要件定義
顧客にもわかるモデリング
顧客にもわかるモデリング
オブジェクト指向方法論OMT まとめ
オブジェクト指向方法論OMT まとめ
不動産販売システム
不動産販売システム
話題沸騰ポッド RDRAモデル
話題沸騰ポッド RDRAモデル
基幹システム RDRAモデル
基幹システム RDRAモデル
基幹システムの可視化技法
基幹システムの可視化技法
RDRA流概念モデル
RDRA流概念モデル
基幹システム RDRAモデルサンプル
基幹システム RDRAモデルサンプル
越境アジャイル設立イベント:RDRA事例(BIGLOBE)
越境アジャイル設立イベント:RDRA事例(BIGLOBE)
RDRA 越境アジャイルin大阪
RDRA 越境アジャイルin大阪
ビジネスモデル2 rdra
ビジネスモデル2 rdra
Ooc 2020
1.
関心の分離とは マルチパラダイムから考える関心の捉え方 1
2.
• ㈱バリューソース 代表取締役 •
神崎 善司 • Facebook page:要件定義の散歩道 https://www.facebook.com/youkennotsubo?ref=hl • twitter:@zenzengood • モデリング好き • 表記法を考えるのが好き • 要件定義手法「RDRA」を定義 • 仕事 • 要件定義支援 • 既存システム可視化支援 • モデリング支援 • モデリング・要件定義セミナー 2
3.
3
4.
今日のスコープ 4 仕様 仕組 オブジェクト指向 関数型 対象の捉え方 (表現) テクニック • クラス •
インターフェース • 多態性 • ~~ • 高階関数 • 代数データ型 • パターンマッチ • ~~ 関心事 マルチパラダイム
5.
5
6.
ん~~ 整理できない! 6
7.
対象の理解 7 売る 買う 混沌
8.
なぜ整理できないのか? 加工食品【定価】 を扱う 豆腐 販売 仕入 時価ではないので商品ご とに仕入値、売価が決まる 商品単位の仕入値、 売価が管理される 仕入 生鮮食料品を 売りたい 時価なので仕入 れ値が重要 販売 大根 販売の中に仕入れ の機能が含まれる 大根を半分に して売りたい 販売 仕入 値段が変わるが同じ大根 としても管理したい 売価が変わるから商 品コードを分ける? 半分の 大根 8
9.
混沌からの脱出 9
10.
修正が簡単な順に並べる と? • 「取引先」のラベルを「得意先」に変えたい • 商品種別に「生鮮食料品」を追加したい •
商品種別を「商品分類」と「商品種別」に分け たい 取引先 商品種別 XXXXX XXXXX XXXXX XXXXX 10
11.
何に着目しました? • 「取引先」のラベルを「得意先」に変えたい • 商品種別に「生鮮食料品」を追加したい •
商品種別を「商品分類」と「商品種別」に分けたい 取引先 商品種別 XXXXX XXXXX XXXXX XXXXX 影響範囲が広いのはどれか その変更は局所化しているか 11
12.
仮説 12 問題の 局所化 新規開発要求 • 「取引先」のラベルを「得意先」に変えたい • 商品種別に「生鮮食料品」を追加したい •
商品種別を「商品分類」と「商品種別」に分けたい 関心事 関心事と要求への対応が問題の局所化につながる 変更要求
13.
関心事は仕様と仕組みに分けて考える 13 機能要求 非機能要求 機能 コンセプト
手段 プロセス 処理対象 非機能要求 の達成水準 コンセプトが手 段を選択する 仕組みとしての関心事仕様としての関心事 手段手段手段 ※要求から全ての関心事が出てくるわけではない
14.
仕様として の関心事 14 機能要求 非機能要求 機能 コンセ プト 手段 プロセス 処理対象 仕様として の関心事
15.
対象の捉え方 15 どう捉えました?
16.
オブジェクト指向の視点 16 どんぶり
17.
関数型の視点 17 180度回転さ せたどんぶり 90度回転さ せたどんぶり 中身が入った どんぶり どんぶり どんぶり どんぶり 重ねられた どんぶり 変換 入力 出力 a ->
ba -> b -> c
18.
対象の捉え方 18 どんぶりどんぶり どんぶり 重ねられた どんぶり 変換 機能要求 機能 プロセス 処理対象 問題領域 プロセス的視点 構造的視点
19.
19 「どんぶり」は自明だね でも実際には「どんぶり」みたいな はっきりした対象は見えていない
20.
どう分ける •どう分けた? •どうまとめた? •何に着目した? 20
21.
物置に収納する場合は、どう分ける • 要求:より多く収納する • 小さくする •
重ねる • 折りたたむ • 安定する置き方 • 要求:出し入れしやすい収納 関心事 21
22.
店頭で売るとして、どう分ける 何を何処で売るか • 顧客の興味 • 見つけやすさ •
~ 関心事 22
23.
対象が同じでも目的によって 関心が変わる 対象の捉え方 23環境に着目し「関心事」に気を配る
24.
関心事が変更起点になる • 変更の起点となるもの • 入出力 •
画面・帳票 • 項目追加変更 • 操作方法 レイアウトが変わった • 画面・帳票が追加された • 外部システムとの連携 • 項目追加変更 • タイミングの変更 • ビジネスルール • バリエーション • 条件 • 情報構造 • 状態 • 変更起点の分析は企業の特徴を分析 することにつながる B-24 システム 境界 ビジネスルール 条件 バリエーション 軸 軸 変更起点 関心事
25.
関心事の局所化に向けて • One Fact
in One Place • DOAで語られていた言葉 • 一仕様(ルール)を一箇所へ 25 問題の局所化 関心事 関心事の分析 ビジネス ルール 入出力 変更起点 一仕様を一箇所へ
26.
仕様としての関心事を掘り起こす 着目する視点 状態(手順)のルール 情報構造のルール
計算式 基準 規約 分析視 点 作業の順番など、順序や進行に条件がある場合にこの 方式で分析する 仕事は状態の変化でアクションを起こす 情報に構造があり、情報間のつながりに多重度 があるときにこの方式で分析する 独立した計算式や条件の場合は一覧形式 で整理する 登場人 物 会社、人、組織、外部のシステムな どで識別しているものを洗い出す 人、組織間でやりとりに着目する 登場人物間にやりとりが発生するときワークフローが 発生する 登場人物の数だけ仕事があり、仕事の を連携するために状態が必要になる 例: 部門間のワークフロー 承認ワークフロー 登場人物には個々に特性があり構造化できる 例:顧客:一般・会員 ~ 登場人物の関係性で決まるもの 外部のシステムが規約として決めている もの 商品 / サービ ス 商品の種類や特性に着目する サービスの前準備でワークフローが必要なものがある 例: インターネットの接続工事 サービスのローテーションルール ものやサービスで扱う情報を構造化する 例: 伝票の構造 サービスと附帯物の関係 もの、サービスに関わる計算 もの、サービスのバリエーションからく る計算の差異 利益率など もの、サービスのバリエーションからく る処理の差異 お金 / 支払 入金 決済方法などお金に関わる特性に着 目する 例:残管理:消し込み 商品(サービス)の販売から入金までの流れ 1回払いと継続払いの手続きの違い もの、サービスとお金の対応つけ 複雑な決済方法の構造化 金額計算 値引き率 自動継続 時間 時間、時期、期間、日付によって特 殊性がでるものを分析する 期間にまつわるルール 例:期限が1週間... 時期による振る舞いの違い 例:季節キャンペーン 定周期のイベント 例:日時 週次 月次 期間や時期にまつわる関係の変化を構造化する 時間にまつわる計算式 例: 実稼働時間の計算方法 時間あたりの単価 場所 場所によって条件が変わるものや特 殊性が発生するものを分析する 国内取引と海外取引の手続きの違い 地域特性による手順の相違 例: 海外取引における乙仲の存在 海外品の返品の省略 場所による構造の違い 例: 通過、時間の違い 国内と海外取引の伝票の違い 場所による計算式の違い 例: 場所による仕様の違い 場所による税率の違い 温暖地と寒冷地仕様の条件 環境 /制約 法律や業界の自主規制などの制約に 着目し分析する 会計基準 例:顧客の検収を持って売上げ計上する 情報間の多重度が制約になる 制約のルールが複雑な場合に構造化して分析す る 単独で存在するルール 税率 26 機能要求 機能 プロセス 処理対象 プロセス 処理対象 決まり事 問 題 領 域 の 要 素
27.
ビジネスの軸となる視点 直目する視点 状態(手順)のルール 情報構造のルール
計算式 基準 規約 分析視 点 作業の順番など、順序や進行に条件がある場合にこの 方式で分析する 仕事は状態の変化でアクションを起こす 情報に構造があり、情報間のつながりに多重度が あるときにこの方式で分析する 独立した計算式や条件の場合は一覧形式 で整理する 登場人 物 会社、人、組織、外部のシステムな どで識別しているものを洗い出す 人、組織間でやりとりに着目する 登場人物間にやりとりが発生するときワークフローが 発生する 登場人物の数だけ仕事があり、仕事の を連携するために状態が必要になる 例: 部門間のワークフロー 承認ワークフロー 登場人物には個々に特性があり構造化できる 例:顧客:一般・会員 ~ 登場人物の関係性で決まるもの 外部のシステムが規約として決めている もの 商品/ サービ ス 商品の種類や特性に着目する サービスの前準備でワークフローが必要なものがある 例: インターネットの接続工事 サービスのローテーションルール ものやサービスで扱う情報を構造化する 例: 伝票の構造 サービスと附帯物の関係 もの、サービスに関わる計算 もの、サービスのバリエーションからく る計算の差異 利益率など もの、サービスのバリエーションからく る処理の差異 お金/ 支払/ 入金 決済方法などお金に関わる特性に着 目する 例:残管理:消し込み 商品(サービス)の販売から入金までの流れ 1回払いと継続払いの手続きの違い もの、サービスとお金の対応つけ 複雑な決済方法の構造化 金額計算 値引き率 自動継続 時間 時間、時期、期間、日付によって特 殊性がでるものを分析する 期間にまつわるルール 例:期限が1週間... 時期による振る舞いの違い 例:季節キャンペーン 定周期のイベント 例:日時 週次 月次 期間や時期にまつわる関係の変化を構造化する 時間にまつわる計算式 例: 実稼働時間の計算方法 時間あたりの単価 場所 場所によって条件が変わるものや特 殊性が発生するものを分析する 国内取引と海外取引の手続きの違い 地域特性による手順の相違 例: 海外取引における乙仲の存在 海外品の返品の省略 場所による構造の違い 例: 通過、時間の違い 国内と海外取引の伝票の違い 場所による計算式の違い 例: 場所による仕様の違い 場所による税率の違い 温暖地と寒冷地仕様の条件 環境 /制約 法律や業界の自主規制などの制約に 着目し分析する 会計基準 例:顧客の検収を持って売上げ計上する 情報間の多重度が制約になる 制約のルールが複雑な場合に構造化して分析する 単独で存在するルール 税率 27
28.
仕組みとして の関心事 28 機能要求 非機能要求 機能 コンセプ ト 手段 プロセス 処理対象 仕組みとしての 関心事
29.
「仕組み」に着目してみる Lib Lib Lib フレームワーク・DIコ ンテナが制御を握る アーキテク チャ構築 (a,b) :c 非機能要求 29 仕様
30.
ビジネス系のプログラム • 変換 変換
変換 • 仕様が様々な変換に紛れ込む • トランザクションスクリプトは この構造に素直に従ったもの Lib Lib Lib (a,b) :c (e,f) (g,h) (i,j) 変換 変換 変換 DB 30
31.
仕様と仕組みの分離 31 レイヤード アーキテクチャ オニオン アーキテクチャ システム アーキテクチャ 非機能要求 関心事 (a,b) :c (a,b) :c (a,b)
:c (a,b) :c (a,b) :c (a,b) :c (a,b) :c (a,b) :c Lib Lib Lib Lib Lib Lib 機能要求 アプリケーション アーキテクチャ プロセス 処理対象 関心事 手段 コンセプト
32.
メモリ利用 パフォーマン スを上げる 分散化 スケーラビリ ティを確保する 不変性が必要 開発生産性 を上げる 経験の範囲で出 来るようにする 状態が変わるものを分散化するとコンフリクト スループット を上げる 並行性を高める 処理のInとOutの 独立性を高める オープンな仕 様に準拠する 状態が変 わる 保守性を 上げる システムアーキテ クチャの明確化 処理の独立 性を高める ・キャッシュの利用 ・ドメインオブジェクトをメモリに置く 品質を上げる 新しい技 術の採用 データの独立 性を高める アプリケーションアー キテクチャの明確化 テストに時間と 工数をかける コストを 下げる 柔軟性を 高める サブシステ ム分割 開発期間を 短くする 開発工数 を減らす 問題の局所化 学習量を 減らす アプリケーションの領域 代替手段が増える 非同期化 技術の高度化 要求の高度化 変更容易 性を生む 変更容易 性を生む 分散と集中のバ ランスをとる 再利用性の向上 最適化された独 自処理と形式 可用性 を上げる 動的な配置 アーキテク チャの統一 開発を簡易にす る 考慮する 反映する 経験則を 活かす 非機能要求コンフリ クト非機能要求から関心事は生まれる 32 仕組みの (アーキテクチャ) 関心事 仕組みの (アーキテクチャ) 関心事
33.
メモリ利用 パフォーマン スを上げる 分散化 スケーラビリ ティを確保する 不変性が必要 開発生産性 を上げる 経験の範囲で出 来るようにする 状態が変わるものを分散化するとコンフリクト スループット を上げる 並行性を高める 処理のInとOutの 独立性を高める オープンな仕 様に準拠する 状態が変 わる 保守性を 上げる システムアーキテ クチャの明確化 処理の独立 性を高める ・キャッシュの利用 ・ドメインオブジェクトをメモリに置く 品質を上げる 新しい技 術の採用 データの独立 性を高める アプリケーションアー キテクチャの明確化 テストに時間と 工数をかける コストを 下げる 柔軟性を 高める サブシステ ム分割 開発期間を 短くする 開発工数 を減らす 問題の局所化 学習量を 減らす アプリケーションの領域 代替手段が増える 非同期化 技術の高度化 要求の高度化 変更容易 性を生む 変更容易 性を生む 分散と集中のバ ランスをとる 再利用性の向上 最適化された独 自処理と形式 可用性 を上げる 動的な配置 アーキテク チャの統一 開発を簡易にす る 考慮する 反映する 経験則を 活かす 非機能要求コンフリ クト非機能要求の関心事 手段(フレームワーク、ライブラリ)選択のための関心事 33
34.
メモリ利用 パフォーマン スを上げる 分散化 スケーラビリ ティを確保する 不変性が必要 開発生産性 を上げる 経験の範囲で出 来るようにする 状態が変わるものを分散化するとコンフリクト スループット を上げる 並行性を高める 処理のInとOutの 独立性を高める オープンな仕 様に準拠する 状態が変 わる 保守性を 上げる システムアーキテ クチャの明確化 処理の独立 性を高める ・キャッシュの利用 ・ドメインオブジェクトをメモリに置く 品質を上げる 新しい技 術の採用 データの独立 性を高める アプリケーションアー キテクチャの明確化 テストに時間と 工数をかける コストを 下げる 柔軟性を 高める サブシステ ム分割 開発期間を 短くする 開発工数 を減らす 問題の局所化 学習量を 減らす アプリケーションの領域 代替手段が増える 非同期化 技術の高度化 要求の高度化 変更容易 性を生む 変更容易 性を生む 分散と集中のバ ランスをとる 再利用性の向上 最適化された独 自処理と形式 可用性 を上げる 動的な配置 アーキテク チャの統一 開発を簡易にす る 考慮する 反映する 経験則を 活かす 非機能要求コンフリ クト 34
35.
開発生産性を上げる 35 鶴を早く折れる人は誰? 鶴を折ったこ とがない人 鶴を1回だけ 折った人 鶴を何回も折った ことがある人
36.
開発生産性を上げる 36 違うものを同じように扱う オブジェクト指向のアプローチ 関数型のアプローチ A B 構造的視点 で抽象化 文脈としての変換 X変換 プロセス視点 で抽象化 文脈としての変換 Y変換 コンテキスト X変換 Y変換
共通処理 共通処理の洗い 出しではない 共通的な文脈 を洗い出す A->b->C
37.
収納という文脈において抽象化を考える 37 ジョウロ 椅子 どんぶり 重ねられ るもの 収納物 重ねる どんぶりを重ね た高さを求める 重ねる 椅子を重ねた 高さを求める 重ねられた 重ねられた うまくいった うまくいった 重ねる うまくいかない 構造的に違うもの を同じように扱え るようにする 異なるプロセスを同じよ うに扱えるようにする •
小さくする • 重ねる • 組み合わせる • 安定する置き方 関心事 オブジェクト指向のアプローチ 関数型のアプローチ 段ボール 重ねる 段ボール に入れる 段ボール の高さ 重ねられた うまくいった
38.
• システム全体 38
39.
システム全体をどう見るか? システム システム化対象全体の構 造を捉えるのはオブジェク ト指向が有利なのでは… :C 変換 変換プロセスの普遍的な構造には 関数型のアプローチが有効では… (プロセスのコンテキストの探索) ドメイン構造 :C (a,b) :C (a,b) :C (a,b) (a,b) 変換 39
40.
システム全体をどう見るか:例えば • Excelの定義をPowerPoint上のモデルに変換するツール • オブジェクト指向
オブジェクトモデル:PowerPoint Excel • 関数型 表形式からモデルへの変換 40 オブジェクトモデル Application WorkBook WorkSheet Cells Cell Range ExcelをListに変換 Object構造を PowerPointに変換 ListをObject構造に 変換 行を比較する 列を繰り返す 定義に従い 構造を生成 する ステート 要素 ステート 要素 オブジェクトモデル Application Presentaion SlideSlideMaster Shape 業務 BUC Act UC 画面 情報 イベント 構造的視点 構造的視点 変換プロセス的視点
41.
関心の分離 ビジネスルール 変更 起点 オブジェクト指向 普遍的構造を導き出す視点 問題を局所化したい 41 関心 関心 問題の対象 仕様としての側面 仕組みとしての側面 問題の対象 機能要求
非機能要求 機能 コンセ プト 手段 プロセス 処理対象 プロセス 処理対象 関数型 変換プロセスの視点 関心の洗 い出し 関心の洗 い出し 問題の局所化 アーキテクチャ 手段の選択 コンセプト 手段 手段
Baixar agora