Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
増田 亨
PDF, PPTX
25,347 views
ソフトウェア設計の学び方を考える
ソフトウェア設計の課題 ソフトウエア設計の品質 学習と成長 設計の初歩を学ぶ 中級者への道 上級者の挑戦
Software
◦
Read more
31
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 39
2
/ 39
3
/ 39
4
/ 39
5
/ 39
6
/ 39
7
/ 39
8
/ 39
9
/ 39
10
/ 39
11
/ 39
12
/ 39
13
/ 39
14
/ 39
15
/ 39
16
/ 39
17
/ 39
18
/ 39
19
/ 39
20
/ 39
21
/ 39
22
/ 39
23
/ 39
24
/ 39
25
/ 39
26
/ 39
27
/ 39
28
/ 39
29
/ 39
30
/ 39
31
/ 39
32
/ 39
33
/ 39
34
/ 39
35
/ 39
36
/ 39
37
/ 39
38
/ 39
39
/ 39
More Related Content
PDF
正しいものを正しく作る塾-設計コース
by
増田 亨
PDF
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
PDF
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
PDF
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
PDF
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
PDF
ドメイン駆動設計 基本を理解する
by
増田 亨
正しいものを正しく作る塾-設計コース
by
増田 亨
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
ドメイン駆動設計 基本を理解する
by
増田 亨
What's hot
PDF
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
PDF
ソフトウェア開発のやり方の改善
by
増田 亨
PDF
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
PDF
ドメイン駆動設計という設計スタイル
by
増田 亨
PDF
ドメイン駆動設計の正しい歩き方
by
増田 亨
PDF
ビジネスルールの複雑さに立ち向かう
by
増田 亨
PDF
3週連続DDDその3 ドメイン駆動設計 戦略的設計
by
増田 亨
PPTX
ドメイン駆動設計の学習曲線とブレークポイント
by
増田 亨
PDF
DDD sample code explained in Java
by
増田 亨
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
PDF
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
PDF
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
PDF
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
PDF
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
by
Koichiro Matsuoka
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PDF
ドメインモデルの育て方
by
増田 亨
PDF
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
PDF
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
ソフトウェア開発のやり方の改善
by
増田 亨
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
by
増田 亨
ドメイン駆動設計という設計スタイル
by
増田 亨
ドメイン駆動設計の正しい歩き方
by
増田 亨
ビジネスルールの複雑さに立ち向かう
by
増田 亨
3週連続DDDその3 ドメイン駆動設計 戦略的設計
by
増田 亨
ドメイン駆動設計の学習曲線とブレークポイント
by
増田 亨
DDD sample code explained in Java
by
増田 亨
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
by
Koichiro Matsuoka
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
ドメインモデルの育て方
by
増田 亨
ドメイン駆動設計 の 実践 Part3 DDD
by
増田 亨
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
Similar to ソフトウェア設計の学び方を考える
PDF
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
PDF
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
PDF
DX 時代の新たなソフトウェア工学に向けて: SWEBOK と SE4BS の挑戦
by
Hironori Washizaki
PDF
Software Frontloading and QA
by
Yasuharu Nishi
PDF
実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性
by
Noriyuki Mizuno
PDF
自分よりも技術力の高い会社に入社して感じたこと
by
Suzuki Masayuki
PDF
ソフトウェア アーキテクチャ基礎 輪読会資料 第2章 アーキテクチャ思考
by
琢磨 三浦
PDF
テスト駆動開発のはじめ方
by
Shuji Watanabe
PDF
ソフトウェア開発工程とテスト入門
by
tadaaki hayashi
PDF
ソフトウェア設計のすすめ
by
Yoshimura Soichiro
PDF
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
by
Hironori Washizaki
PDF
ソフトウェア開発の教育のビジョンを語ろう
by
Susumu Yamazaki
PDF
協創型ソフトウェア開発 ガイダンス資料
by
Yoshihide Chubachi
PDF
Bslash ET2017
by
b-slash
PDF
アイデアを形にする ①プロダクト設計のイロハを学ぶ
by
DIVE INTO CODE Corp.
PPT
"The Coming-of-Age of Software Architecture Research" 紹介
by
Tadayoshi Sato
PDF
「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 (in Japanese)
by
Toshihiko Yamakami
PDF
UX - 業務システムにも感動を
by
Yasunobu Kawaguchi
PDF
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
by
Yuichiro Saito
PDF
Software design and team design
by
Kenji Hiranabe
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
DX 時代の新たなソフトウェア工学に向けて: SWEBOK と SE4BS の挑戦
by
Hironori Washizaki
Software Frontloading and QA
by
Yasuharu Nishi
実践ソフトウェアエンジニアリング(第9版)~長年積み上げられた体系と各種技術との関連性
by
Noriyuki Mizuno
自分よりも技術力の高い会社に入社して感じたこと
by
Suzuki Masayuki
ソフトウェア アーキテクチャ基礎 輪読会資料 第2章 アーキテクチャ思考
by
琢磨 三浦
テスト駆動開発のはじめ方
by
Shuji Watanabe
ソフトウェア開発工程とテスト入門
by
tadaaki hayashi
ソフトウェア設計のすすめ
by
Yoshimura Soichiro
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
by
Hironori Washizaki
ソフトウェア開発の教育のビジョンを語ろう
by
Susumu Yamazaki
協創型ソフトウェア開発 ガイダンス資料
by
Yoshihide Chubachi
Bslash ET2017
by
b-slash
アイデアを形にする ①プロダクト設計のイロハを学ぶ
by
DIVE INTO CODE Corp.
"The Coming-of-Age of Software Architecture Research" 紹介
by
Tadayoshi Sato
「書く」ソフトウェア教育から「読む」ソフトウェア教育への転換 (in Japanese)
by
Toshihiko Yamakami
UX - 業務システムにも感動を
by
Yasunobu Kawaguchi
コミュニケーションスキルを重視したソフトウェア技術者教育手法の研究
by
Yuichiro Saito
Software design and team design
by
Kenji Hiranabe
More from 増田 亨
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
現場で役立つシステム設計の原則
by
増田 亨
PDF
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
PDF
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
PDF
ドメインオブジェクトの設計ガイドライン
by
増田 亨
PDF
毎日が越境だ!
by
増田 亨
PDF
アジャイルなソフトウェア設計を目指して
by
増田 亨
PDF
現場で役立つシステム設計の原則
by
増田 亨
PDF
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
PDF
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
PDF
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
PDF
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
PDF
SoR 2.0 summary
by
増田 亨
ドメイン駆動設計 本格入門
by
増田 亨
マイクロサービス 4つの分割アプローチ
by
増田 亨
現場で役立つシステム設計の原則
by
増田 亨
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
ドメインオブジェクトの設計ガイドライン
by
増田 亨
毎日が越境だ!
by
増田 亨
アジャイルなソフトウェア設計を目指して
by
増田 亨
現場で役立つシステム設計の原則
by
増田 亨
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
SoR 2.0 summary
by
増田 亨
ソフトウェア設計の学び方を考える
1.
ソフトウェア設計の 学び方を考える 2019年6月23日 ギルドワークス 増田 亨 DevLOVE
X(10周年記念イベント)
2.
アジェンダ 1. 設計という課題 2. ソフトウェア設計の品質 3.
学習と成長 4. 設計の初歩を学ぶ 5. 設計の中級者への道 6. 設計の上級者への挑戦 2019/6/23 2
3.
ソフトウェア設計という課題 2019/6/23 3
4.
複雑さとの戦い 構成要素の数 構成要素間の関係 拡張と変更の繰り返し 2019/6/23 4
5.
人間の知的能力の限界 構成要素の数 構成要素間の関係 拡張と変更の繰り返し 2019/6/23 5
6.
ソフトウェア設計の品質 2019/6/23 6
7.
構造と秩序 2019/6/23 7
8.
時間とともに劣化する構造と秩序 2019/6/23 8
9.
時間とともに進化する構造と秩序 2019/6/23 9
10.
ソフトウェア設計のスキル 構造と秩序を生み出す能力 2019/6/23 10
11.
学習と成長 2019/6/23 11
12.
学習と成長 実験による設計スキルの習得 設計スキルの学習曲線 2019/6/23 12
13.
実験による設計スキルの習得 最初からよい設計はみつからない そのまま使える既存の設計はない 2019/6/23 13
14.
実験による設計スキルの習得 観察 仮説 実験
考察 目の前の設計課題 過去の設計例 他者の設計例 今回設計案の列挙 仮決め コードで検証 収まり具合 まわりとの関係性 全体の調和 2019/6/23 14
15.
設計スキルの向上 設計知識の広さと深さ 設計経験の広さと深さ 着眼点とこだわりポイントの変化 2019/6/23 15
16.
設計スキルの学習曲線 設計の初歩 を学ぶ 中級者への道 上級者の挑戦 知識と経験が広く深くなるにつれ 着眼点とこだわりポイントが変化していく 2019/6/23 16
17.
設計の初歩を学ぶ 2019/6/23 17
18.
設計の基本 関心を分離する モジュールに分割する 2019/6/23 18
19.
分割とモジュール化の方法論 2019/6/23 19
20.
2つの分割アプローチ 機能で分解する 型で分解する 入出力 計算 画面・通信・データベースの操作 トランザクションスクリプト 導出ロジック/判定ロジックの記述 ドメインモデル 2019/6/23
20 B. Liskov B. Meyer M. Fowler K. Beck E. Evans ボトムアップ インクリメンタル トップダウン アップフロント
21.
構造と秩序をもたらす設計の初歩 型(値の種類)で分解する 計算を主役に、入出力をわき役に 問題領域と設計の直接的な写像 2019/6/23 21
22.
型による分解 2019/6/23 22
23.
型(値の種類)による分解 動機は計算ロジックや判定ロジックの複雑さを扱う工夫 計算の結果や計算に使う値を分類する(型の発見) 型ごとに、値の有効な範囲を定義する 型ごとに、その値を使う有効な操作を定義する 値の範囲と操作の定義をカプセル化する(クラス) 2019/6/23 23
24.
計算を設計の主役に 2019/6/23 24
25.
計算が主役、入出力がわき役 Javaの言語、標準ライブラリ、フレームワークを例に 計算ロジックの記述 入出力の記述 かつては、java.io, java.net,
java.sql … 今はフレームワークに隠蔽されている さまざまな実証済の設計パターンの登場 かつては、int, boolean, BigDecimal, Calendar, collection 今でも、int, boolean, BigDecimal, java.time, collection, … かつては、if文, switch文, enum, … 今でも、if文, switch文, enum, … 構造と秩序を生み出すための 設計の主たる関心事ではなくなりつつある 複雑さと戦い、構造と秩序を生み出すための 設計活動の主戦場 2019/6/23 25
26.
問題領域と設計の直接的な写像 2019/6/23 26
27.
怪しげな写像 金額 注文番号 消費税 換算レート 納期 誕生日 割引可能 出荷可能 long型 BigDecimal型 LocalDate型 boolean型 一方通行 N対1 値の範囲 可能な操作 問題領域の関心事 設計実装の関心事 2019/6/23 27
28.
直接的な写像 金額 注文番号 消費税 換算レート 納期 誕生日 割引可能 出荷可能 双方向の対応 1対1 適切な値の範囲 適切な操作 問題領域の関心事 設計実装の関心事 金額型 注文番号型 消費税型 換算レート型 納期型 誕生日型 割引判定型 出荷判定型 2019/6/23 28
29.
構造と秩序をもたらす設計の初歩 型(値の種類)で分解する 計算を主役に、入出力をわき役に 問題領域と設計の直接的な写像 2019/6/23 29
30.
設計の中級者への道 2019/6/23 30
31.
設計の初級者と中級者の違い 初級者にとっては時間のムダに思える活動 中級者は費用対効果が高いと考える活動 2019/6/23 31
32.
設計に関する活動 初級者 中級者 リファクタリング
動けばOK/やらない 動いた後の改善こそ重要 名前の変更 どっちでも同じ 名前たいせつ パッケージ構造の変更 時間のムダ/危険 見通し改善の効果大 設計の選択肢 選択肢はひとつ いろいろあって迷う 業務知識 わからない、興味ない 知っていると強い 設計スキルが高い 複雑なコードが書ける コードを単純にできる 2019/6/23 32
33.
設計の中級者への道 ➢多くに目を向け、複数の選択肢を持つようにする ➢時間の節約と投資を覚える ✓構造と秩序の「核になる20%」に注目する ✓核心の設計課題に、重点的に時間とエネルギーを投資する ✓周辺的な課題の設計は、できるだけ時間とエネルギーを節約する ➢仕様の補完力の必要性と効果を知る ✓詳細仕様はだれも知らない/決められない現実を理解する ✓業務知識の理解と直接的な写像の効果に気がつく ➢パッケージ名とパッケージ構造の威力を知る 2019/6/23 33 「中心」と「周辺」の関係に気づく 影響の大きい要素の発見
34.
設計の上級者への挑戦 2019/6/23 34
35.
設計の上級者 もっともっと広く、もっともっと深く 4%への挑戦 2019/6/23 35
36.
設計の上級者 ➢もっともっと広く、もっともっと深く ✓型による分解 ✓計算を主役に ✓問題領域と設計実装の直接的な写像 ➢4%への挑戦 ✓20%×20% ✓関心の範囲を広げるほど、時間が足りなくなる ✓中核のなかの中核、要点のなかの要点を発見することに焦点をあわせる ✓4%の中心的な関心事に、重点的に投資する ✓周辺の関心事への節約を、さらに徹底する 2019/6/23 36
37.
深く理解し、4%に挑戦する ➢多くに目を向け、複数の視点を持ち、視座をあちこち移動する ➢根底にある構造の発見へのこだわり ➢暗黙の概念の言語化へのこだわり ➢ビジネス活動とソフトウェア構造の直接的な関係性の気づき ✓どちらも構造と秩序が時間とともに変化する ✓両者の直接的な連動性への気づきと設計への反映 2019/6/23 37
38.
本日のまとめ 2019/6/23 38
39.
設計という課題 複雑さへの挑戦 構造と秩序をもたらす能力 設計の品質 変更が楽で安全であること、 進化を続ける秩序 学習と成長 実験による学習 着眼点とこだわりポイントの変化 設計の初歩を学ぶ 型による分解、計算が主役 直接的な写像 中級者への道 設計の費用対効果への気づき 中心と周辺の気づき、節約と投資 上級者への挑戦 4%への挑戦 隠れた概念/関係性の発見と言語化 2019/6/23 39
Download