Soumettre la recherche
Mettre en ligne
Bslash ET2017
•
0 j'aime
•
21,024 vues
B
b-slash
Suivre
3ヵ月で3年目の設計スキルが習得できる
Lire moins
Lire la suite
Business
Signaler
Partager
Signaler
Partager
1 sur 22
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
デザイン仕様書(ガイド)の書き方 (初歩者用)
デザイン仕様書(ガイド)の書き方 (初歩者用)
witstudio
ドワンゴの新卒エンジニアが新規サービスを立ち上げるまで
ドワンゴの新卒エンジニアが新規サービスを立ち上げるまで
Kazunari Kida
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
増田 亨
ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015
Masahito Zembutsu
Weekend Androidのススメ
Weekend Androidのススメ
Suzuki Junko
なぜあの人のプレゼンテーションはいつもイイねと言われるのか0716
なぜあの人のプレゼンテーションはいつもイイねと言われるのか0716
Dai Murata
デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門
webcampusschoo
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
schoowebcampus
Recommandé
デザイン仕様書(ガイド)の書き方 (初歩者用)
デザイン仕様書(ガイド)の書き方 (初歩者用)
witstudio
ドワンゴの新卒エンジニアが新規サービスを立ち上げるまで
ドワンゴの新卒エンジニアが新規サービスを立ち上げるまで
Kazunari Kida
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
増田 亨
ビビッド・パワポ・オペーレーション Revision 2015
ビビッド・パワポ・オペーレーション Revision 2015
Masahito Zembutsu
Weekend Androidのススメ
Weekend Androidのススメ
Suzuki Junko
なぜあの人のプレゼンテーションはいつもイイねと言われるのか0716
なぜあの人のプレゼンテーションはいつもイイねと言われるのか0716
Dai Murata
デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門
webcampusschoo
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
schoowebcampus
利根川講演@北海道20170113
利根川講演@北海道20170113
Yuta Tonegawa
失敗から学ぶUXへの取り組み
失敗から学ぶUXへの取り組み
Daichi Ono
UXMILKallnight_システム開発でデザイナーは何をすればいい?
UXMILKallnight_システム開発でデザイナーは何をすればいい?
Takami Yusuke
Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜
Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜
Chihiro Tomita
さあ、デザインをはじめよう。DevLOVE関西
さあ、デザインをはじめよう。DevLOVE関西
rie05
利根川講演@長野塩尻20170120
利根川講演@長野塩尻20170120
Yuta Tonegawa
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
NodokaFujimoto
新卒2ヶ月でAIを社会実装させた3つのデザイン
新卒2ヶ月でAIを社会実装させた3つのデザイン
NodokaFujimoto
Jumvo 2.0 における デザイナーとエンジニアの連携
Jumvo 2.0 における デザイナーとエンジニアの連携
Norihisa Nagano
デザインはおまかせで、丸投げされた時どうする?
デザインはおまかせで、丸投げされた時どうする?
rie05
コンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おう
Yu Tamura
デザインエンジニア・ボーダーレスな時代を楽しもう!
デザインエンジニア・ボーダーレスな時代を楽しもう!
Hideki Akiba
X Design Academy
X Design Academy
Makoto Inage
デザイン系の学校に通っていない学生のためのポートフォリオことはじめ
デザイン系の学校に通っていない学生のためのポートフォリオことはじめ
Aimi Shinohara
Design Thinking - מארגון ממוקד טכנולוגיה לארגון ממוקד משתמש
Design Thinking - מארגון ממוקד טכנולוגיה לארגון ממוקד משתמש
Hen Shkedi
書く技術・話す技術 勉強会サポートプログラム
書く技術・話す技術 勉強会サポートプログラム
Mizuhiro Kaimai
【Unity道場スペシャル 2017幕張】大学、専門学校でunityの講座をおこなった感触
【Unity道場スペシャル 2017幕張】大学、専門学校でunityの講座をおこなった感触
Unity Technologies Japan K.K.
ソースコードを読んでみよう
ソースコードを読んでみよう
Shun Tsunoda
デベロッパーも 知ってると便利 デザインの基本
デベロッパーも 知ってると便利 デザインの基本
inaba178
20131101 Planning From The Trenches
20131101 Planning From The Trenches
Mitsuyuki Shiiba
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
ssuserfb441f
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ 株式会社
Contenu connexe
Similaire à Bslash ET2017
利根川講演@北海道20170113
利根川講演@北海道20170113
Yuta Tonegawa
失敗から学ぶUXへの取り組み
失敗から学ぶUXへの取り組み
Daichi Ono
UXMILKallnight_システム開発でデザイナーは何をすればいい?
UXMILKallnight_システム開発でデザイナーは何をすればいい?
Takami Yusuke
Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜
Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜
Chihiro Tomita
さあ、デザインをはじめよう。DevLOVE関西
さあ、デザインをはじめよう。DevLOVE関西
rie05
利根川講演@長野塩尻20170120
利根川講演@長野塩尻20170120
Yuta Tonegawa
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
NodokaFujimoto
新卒2ヶ月でAIを社会実装させた3つのデザイン
新卒2ヶ月でAIを社会実装させた3つのデザイン
NodokaFujimoto
Jumvo 2.0 における デザイナーとエンジニアの連携
Jumvo 2.0 における デザイナーとエンジニアの連携
Norihisa Nagano
デザインはおまかせで、丸投げされた時どうする?
デザインはおまかせで、丸投げされた時どうする?
rie05
コンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おう
Yu Tamura
デザインエンジニア・ボーダーレスな時代を楽しもう!
デザインエンジニア・ボーダーレスな時代を楽しもう!
Hideki Akiba
X Design Academy
X Design Academy
Makoto Inage
デザイン系の学校に通っていない学生のためのポートフォリオことはじめ
デザイン系の学校に通っていない学生のためのポートフォリオことはじめ
Aimi Shinohara
Design Thinking - מארגון ממוקד טכנולוגיה לארגון ממוקד משתמש
Design Thinking - מארגון ממוקד טכנולוגיה לארגון ממוקד משתמש
Hen Shkedi
書く技術・話す技術 勉強会サポートプログラム
書く技術・話す技術 勉強会サポートプログラム
Mizuhiro Kaimai
【Unity道場スペシャル 2017幕張】大学、専門学校でunityの講座をおこなった感触
【Unity道場スペシャル 2017幕張】大学、専門学校でunityの講座をおこなった感触
Unity Technologies Japan K.K.
ソースコードを読んでみよう
ソースコードを読んでみよう
Shun Tsunoda
デベロッパーも 知ってると便利 デザインの基本
デベロッパーも 知ってると便利 デザインの基本
inaba178
20131101 Planning From The Trenches
20131101 Planning From The Trenches
Mitsuyuki Shiiba
Similaire à Bslash ET2017
(20)
利根川講演@北海道20170113
利根川講演@北海道20170113
失敗から学ぶUXへの取り組み
失敗から学ぶUXへの取り組み
UXMILKallnight_システム開発でデザイナーは何をすればいい?
UXMILKallnight_システム開発でデザイナーは何をすればいい?
Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜
Developers Summit 2013【14-E-4】デザインをするときにデザイナーが考えること〜デザイナーの頭の中〜
さあ、デザインをはじめよう。DevLOVE関西
さあ、デザインをはじめよう。DevLOVE関西
利根川講演@長野塩尻20170120
利根川講演@長野塩尻20170120
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
新卒2ヶ月でAIを社会実装させた3つのデザイン
新卒2ヶ月でAIを社会実装させた3つのデザイン
Jumvo 2.0 における デザイナーとエンジニアの連携
Jumvo 2.0 における デザイナーとエンジニアの連携
デザインはおまかせで、丸投げされた時どうする?
デザインはおまかせで、丸投げされた時どうする?
コンソールベタ打ち卒業:スクリプトエディタを使おう
コンソールベタ打ち卒業:スクリプトエディタを使おう
デザインエンジニア・ボーダーレスな時代を楽しもう!
デザインエンジニア・ボーダーレスな時代を楽しもう!
X Design Academy
X Design Academy
デザイン系の学校に通っていない学生のためのポートフォリオことはじめ
デザイン系の学校に通っていない学生のためのポートフォリオことはじめ
Design Thinking - מארגון ממוקד טכנולוגיה לארגון ממוקד משתמש
Design Thinking - מארגון ממוקד טכנולוגיה לארגון ממוקד משתמש
書く技術・話す技術 勉強会サポートプログラム
書く技術・話す技術 勉強会サポートプログラム
【Unity道場スペシャル 2017幕張】大学、専門学校でunityの講座をおこなった感触
【Unity道場スペシャル 2017幕張】大学、専門学校でunityの講座をおこなった感触
ソースコードを読んでみよう
ソースコードを読んでみよう
デベロッパーも 知ってると便利 デザインの基本
デベロッパーも 知ってると便利 デザインの基本
20131101 Planning From The Trenches
20131101 Planning From The Trenches
Dernier
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
ssuserfb441f
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ 株式会社
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
ユニパー株式会社
20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf
ssuser80a51f
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
masakisaito12
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
KayaSuetake1
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdf
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdf
masakisaito12
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
Yasuyoshi Minehisa
Dernier
(8)
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
株式会社MAVEL会社概要_アフィリエイト広告_運用型広告_LTVを予測しLOIを最適化する広告代理店
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdf
ストックマーク株式会社がお客様へご提供しているAnews概要資料のご共有.pdf
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
Bslash ET2017
1.
設計図で仕事をしよう 〜3ヶ⽉で3年⽬の設計スキルが習得できる〜 2017年11⽉ ET2017 ビースラッシュ株式会社 Copyright BACKSLASH
DESIGN Co., Ltd.1
2.
ソフトウェア設計をいつ学ぶのか どこでも学んでいない⼈が⼤半 ◦ ⼤学・専⾨学校で、学ばない ◦
新⼈研修で、学ばない ◦ OJTでも、学ばない 多くの⼈が通る道 ◦ ⼤学・専⾨学校で、プログラミングすらしない ◦ 新⼈研修で、プログラミング⾔語を学ぶ ◦ OJTでは、プログラムの動きを教えてもらう ソフトウェア設計を習得している⼈は ◦ 配属の運 =運よく、先輩が設計図を書いていた ソフトウェア設計は、 教えられる⼈も少なく、 学ぶ機会は極めて少ない Copyright BACKSLASH DESIGN Co., Ltd.2
3.
ソフトウェア設計の失われた10年 三⼤理由 症状 1 下請け構造 (特に多重下請け構造) ⾔われたことだけやれば良い 余計なこと(設計)はしない そもそも設計を知らない 2 動くソースコードがある 設計しなくても、コードを修正すれ ば動く (その⽅法しか知らない) 3
担当が細分化している 全体を⾒なくても、部分的に修正す れば動く (その⽅法しか知らない) 設計を習ったことがない⼈ が⼤多数 Copyright BACKSLASH DESIGN Co., Ltd.3
4.
設計ができない理由 三⼤理由 処⽅箋 1 ソースコードでしか説明で きない(設計図がない) 今のソースコードから設計図を書いてみ る。常にそれを使う。 2 設計を議論する場がない OJTとして、設計レビューをする。 3 そもそも設計の⽅法を知ら ない 設計技法の本を⾃⼰学習する。 (設計本を読んでいない⼈の多い) 「設計の学び直し」が必要 Copyright
BACKSLASH DESIGN Co., Ltd.4 設計意図発掘ツールAtScopeを使う! 設計意図発掘ツールAtScopeを使う! ビースラッシュのセミナーを受ける!
5.
設計を学ぶことで実践と理論を繋ぐ 〜設計の学び直し〜 Copyright BACKSLASH DESIGN
Co., Ltd.5
6.
現状の課題と解法 今の開発現場の三⼤問題 1.プログラミング⾔語から学ぶと、設計への道のりが遠くなる 2.そもそも、ソフトウェアの設計を学んだことがない 3.配属後のOJTでの教育が形骸化 それぞれの解法 1.ソフトウェア設計を先に学び、プログラミング⾔語は使いな がら習得 •
設計図から、ソースコードに⼿動で変換 2.設計図の事例をたくさん⾒る • 理論からではなく、事例から学ぶ 3.設計図でのピアレビューで成⻑する 設計図を⽤いたピアレビューがOJT ⇒ 新⼈研修+配属後OJTをワンセットにした講座 Copyright BACKSLASH DESIGN Co., Ltd.6
7.
解法:設計から習得する 今までのソフトウェア研修 プログラミングという道具か ら⼊る⇒理系スキル 問題ドメイン 設計起点のソフトウェア研修 ⽂章表現の代わりに、図解表 現で⼈に伝える⇒⽂系スキル 分析 設計 実装 技術ドメイン 問題ドメイン 分析 設計 実装 技術ドメイン 設計習得の機会 がない 3年⽬でも設計で きない⼈が⼤半 新⼈研修で⾔語教育、 配属後にソースコー ドを渡される 設計図から習得 設計図との対⽐ で⾔語を覚える デバッガで動か しながらCPU周 りも体験 「分析」の勘所 も体験 Copyright
BACKSLASH DESIGN Co., Ltd.7 ⽂系でも できる
8.
3ヶ⽉で3年⽬スキル教育 3ヶ⽉で3年⽬の設計スキルを習得 今までの社員教育 レベル1 ETSS レベル2 レベル3 レベル4 製品開発全体 の先導 設計図の活⽤ と設計品質の 作り込み 判断の連続で リーダーシップ 設計図の 読み書き 3年⽬ 2年⽬ OJT ⾔語教育 プログラ ミング ギャップ 3ヵ⽉2ヵ⽉1ヵ⽉ OJTが形骸化。 実務を通したスキ ル向上が困難 設計⼒が⾝につくか どうかは本⼈次第 実践演習 実習教育 基本演習 図⾯教育 図⾯の読み書き 設計起点で、プロ グラム⾔語を学習 設計の試⾏訓練 図⾯でのレビュー レベル2の達成 プログラム⾔語教 育で、配属後もプ ログラムを部分的 に変更する仕事 Copyright
BACKSLASH DESIGN Co., Ltd.8
9.
ビースラッシュの新サービス 1.3ヶ⽉で3年⽬の設計スキル習得コース 2.双⽅向eラーニング Copyright BACKSLASH DESIGN
Co., Ltd.9
10.
3ヶ⽉の研修コース概要 1ヶ⽉単位で、 ◦ 5⽇間の、リアル研修(新横浜) ◦
3週間の、双⽅向eラーニング(⾃宅もしくは新横浜) ◦ ⽉末に、到達レベルチェック 1ヶ⽉⽬ 研修 双⽅向eラーニング 到達レベルチェック 2ヶ⽉⽬ 研修 双⽅向eラーニング 到達レベルチェック 3ヶ⽉⽬ 研修 双⽅向eラーニング 到達レベルチェック C⾔語 構造図 LED点滅ボート ライントレースLEGO IoTシステム(スマホAndroid連動) C⾔語 UML ・クラス図 ・コミュニケーション図 C⾔語/Java(読める程度) UML ・状態遷移図 SysML ・ブロック図 中級認定 初級認定 猶予期間 Copyright BACKSLASH DESIGN Co., Ltd.10
11.
設計⼒を鍛える:双⽅向eラーニング 対象者 学習マテリアル 双⽅向eラーニング概要 1
新⼈ 設計活⽤セミナー ソースコードから設計図を作り、設計と プログラミングを同時に覚える。 例:モジュール構造図⇒関数呼び出し⇒関数 定義と引数と戻り値の書き⽅ 2 中堅 設計技法セミナー ⾃分のソースコードから設計図を作り、 設計意図を説明できるようになる。他の ⼈の設計の良さと改善点を指摘すること で、チームでの設計⼒をつける。 3 アーキテ クト候補 アーキテクト育成 セミナー 設計⼒の問題集/参考書/添削。 中間成果物としての設計図で話ができる。 トレードオフを考察できる。 ⽬的を考えて提案ができるようになる。 Copyright BACKSLASH DESIGN Co., Ltd.11 設計ドリル[初級] 設計ドリル[中級] 設計ドリル[上級]
12.
設計ドリルのコンテンツ 設計ドリル[初級]・・・若⼿エンジニア向け 設計ドリル[中級]・・・スキルアップしたいエンジニア向け
設計ドリル[上級]・・・アーキテクト向け Copyright BACKSLASH DESIGN Co., Ltd.12 1ヶ⽉⽬ 2ヶ⽉⽬ 3ヶ⽉⽬ フォローアップ [初級] モジュール構造 データ構造 設計と実装の同 期 ソースコードと 設計図に関する 相談 [中級] 分析技法 設計技法 リバース技法 開発現場での問 題解決に関する 相談 [上級] 抽象化 概念化/粒度 構造化 アーキテクチャ ドキュメントに 関する相談
13.
設計意図発掘ツールAtScope コード起点から設計起点への体質変換 設計図で開発/レビュー/納品ができる ⇒ “もっと速く、もっと楽に“開発できる Copyright BACKSLASH
DESIGN Co., Ltd.13
14.
AtScopeの3つの機能+1 コード起点 func() { ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・ ・・・・・・・・・・・・・・・ } func() { ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・ ・・・・・・・・・・・・・・ ・・・・・・ ・・・・・・・・・・・・・・・ } ・・・・・・・・・・・・・ ・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・・ ・・・・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ } } ・・・・・()
{ { ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・・・・・ ・・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・・・・ ・・・・・・・・ ・・・・・・・・・・・・・ } } func() { ・・・・・・・・ ・・・・・・・・・・・・ ・ ・・・・ ・・・・・・・・・・・・ ・・・・ ・・・・・・ ・・・・・・・・・・・・ ・・・ ・・・・ ・・・・・・・・・・・・ ・・・・・ ・・・・・・ ・・・・・・・・・・・・ ・・・ ・・・・ ・・・・・・・・・・・・ ・・・・・ ・・・ ・・・・・・・・・・・・ ・・・・・・ ・・・・ ・・・・・・・・・・・・ ・・・・ ・・・・・・ ・・・・・・・・・・・・ ・・・ ・・・・ ・・・・・・・・・・・・ ・・・・・ ・・・・・・ ・・・・・・・・・・・・ ・・・ ・・・・ ・・・・・・・・・・・・ ・・・・・ ・・・ ・・・・・・・・・・・・ ・・・・・・ ・・・・ ・・・・・・・・・・・・ ・・・・ ・・・・・・ ・・・・・・・・・・・・ ・・・ ・・・・ ・・・・・・・・・・・・ ・・・・・ ・・・・・・ ・・・・・・・・・・・・ ・・・ ・・・・ ・・・・・・・・・・・・ ・・・・・ ・・・ ・・・・・・・・・・・・ ・・・・・・ } } static char time_tick; main () { time_tick = 0; while(1){ if(time_tick == 1){ time_tick = 0; top_module(); } } } void ta0int() { time_tick = 1; } ①アーキテクチャ解析 ②クラス解析 C⾔語 ③モジュール解析 コンポーネント単位 ファイル単位 関数とデータの単位 再配置 設計図起点 To_uiTo_ctrlFrom_ctrlTo_histFrom_sys <<... app To_uiTo_ctrlFrom_ctrlTo_histFrom_sys To_drvTo_mainteTo_app <<... sys To_drvTo_mainteTo_app To_drvFrom_sysTo_uiTo_hist <<... mainte To_drvFrom_sysTo_uiTo_hist From_ctrlFrom_sysFrom_mainteFrom_histFrom_ui <<... drv From_ctrlFrom_sysFrom_mainteFrom_histFrom_ui To_uiTo_drvFrom_appTo_app <<... ctrl To_uiTo_drvFrom_appTo_app From_appFrom_mainteTo_drv <<... hist From_appFrom_mainteTo_drv From_appTo_drvFrom_ctrlFrom_mainte <<... ui From_appTo_drvFrom_ctrlFrom_mainte 6 8 2 2 4 153 3 3 8 5 3 3 15 PaperHandlingPaperHandling PatternControlPatternControl SwInputSwInput ButtonMonitorButtonMonitor ToggleDrvToggleDrv KeyScanKeyScan CopyAppCopyApp BlinkAppBlinkApp MessageOutputMessageOutput MachineWatchMachineWatch FusingControlFusingControlDisplayOutputDisplayOutput OperationPanelOperationPanel LedOutputLedOutput LedDrvLedDrv DisplayDriverDisplayDriver SystemMainSystemMain PageStreamPageStream 2 1 1 1 3 2 2 1 11 1 2 2 1 3 1 1 1 1 1 1 1 1 1 1 3 2 app UserPersonUserPersonDiagnosisStepDiagnosisStep ReceptionistReceptionist sys SysNoticeSysNotice SysCtrlSysCtrl mid InspectionProcessInspectionProcess drv TimerTimer SwSw VolSensorVolSensor CurrentMeterCurrentMeter EepRomEepRom ui PushButtonPushButton BuzzerSoundBuzzerSound PanelDisplayPanelDisplayOperationFlowOperationFlow NoticePanelNoticePanel LedLed BuzzerBuzzerLcdLcd lib InspectionHistInspectionHist mon ProgramConfirmationProgramConfirmation LcdInspectionLcdInspectionVolInspectionVolInspection MaintePanelMaintePanel VolMeterVolMeter HistInspectionHistInspection InspectorInspector 2 2 2 1 3 3 13 3 3 3 4 2 2 5 1 3 1 3 2 4 1 3 3 3 8 5 2 3 1 3 2 7 22 2 2 2 3 2 2 4 2 1 5 2 1 5 2 3 22 2 main sc_execsc_exec rc_initrc_init ds_finish rc_finish_diagrc_finish_diag up_start_inputup_start_input up_set_weightup_set_height up_rq_chg_modeup_rq_chg_mode rc_start_diagrc_start_diag rc_request rc_rq_chg_moderc_rq_chg_mode <<... rcMode 1 1 1 1 1 1 1 1 1 1 1 1 1 SysCtrl sc_execsc_exec main DiagnosisStep ds_finish UserPerson up_rq_chg_modeup_rq_chg_mode up_start_inputup_start_input up_set_weightup_set_height Receptionist <<データ>> Receptionist:: rcMode rc_rq_chg_moderc_rq_chg_mode rc_start_diagrc_start_diag rc_initrc_init rc_finish_diagrc_finish_diag rc_request 1 1 1 1 1 1 1 11 1 1 1 1 再配置 再配置 ④リファクタリングスコア 設計意図 試作駆動 30点 設計スコア 構造遵守 劣化検知 Copyright BACKSLASH DESIGN Co., Ltd.14
15.
設計⼒向上セミナー Copyright BACKSLASH DESIGN
Co., Ltd.15
16.
設計⼒向上セミナー Copyright BACKSLASH DESIGN
Co., Ltd.16 技術経営へ 技術リーダ育成 現場実践トレーニング設計力底上げトレーニング 設計技法の原理原則 レビュー技法 資産化モデリングオブジェクト指向モデリング 設計図活用 凝集度と結合度 ソフトウェア分析設計 構造化モデリング [静的] 構造化モデリング [動的] 部品化リファクタリング 構造化設計 [派生開発] コード起点 新人研修:1日コース 設計技法基礎 事業と技術を繋ぐ 目的目標セミナー アーキテクト育成 アーキテクチャ設計実践 エンジニアのため論理思考 アーキテクチャ分析 C言語 セキュア コーディング ことづくりものづくり モデリングをはじめよう 聴く力と伝える力 良い設計構造を作る 抽象化トレーニング アーキテクチャ改善 アーキテクチャ 設計入門 新人研修:11日コース 設計基礎トレーニング リバースモデリング PSPトレーニング MISRA C ひとめぐり 構造化モデリング [データ構造] 3時間コース アーキテクト ひとめぐり 画像解析ひとめぐり リファクタリング基礎/実践 アジャイル開発プロセス実践
17.
ソフトウェアの設計とは 知っておきたい3つのこと 1.構造設計(ファクタリング) 2.リファクタリング 3.凝集度 Copyright BACKSLASH DESIGN
Co., Ltd.17
18.
構造設計の基本 func() { ・・・ ・・・ ⼊⼒する ・・・ ・・・ 演算する ・・・ ・・・ 出⼒する ・・・ ・・・ } ⼀筆書き 設計ではない フローチャート/コールグラフ モジュール化はできているが レベル化はできていない ⇒設計ではない ⼊⼒する 演算する 出⼒する フローチャート ⼊⼒ する 演算 する 出⼒ する コールグラフ ⼊⼒ する 演算 する 出⼒ する ⽬的 構造設計 箱:Whatの名称 (抽象化と粒度) 線:利⽤関係 配置:⽔平垂直分割 ⽔平:レイヤー化 垂直:IO分離/STS分割 構造設計 Copyright BACKSLASH
DESIGN Co., Ltd.18 BOSS関数 暗黙の⼿続き を明確にする この形を体得
19.
リファクタリングの原則 データを中⼼に関数を集めて、別ファイルにする⇒部品化 関数 データ 関数 関数 関数 関数 関数 関数 関数 関数 データ データ 関数 関数 関数 関数 関数 データ 関数 関数 関数
関数 関数 関数 関数 データ 関数 関数 関数 データ 関数 関数 関数 関数 リ フ ァ ク タ リ ン グ 5000⾏を超えるようなファ イルは、それをひと固まり で管理することが難しい。 データを中⼼に関数を集め、 2000⾏程度の部品とする。 Copyright BACKSLASH DESIGN Co., Ltd.19
20.
設計品質の原則:凝集度 Copyright BACKSLASH DESIGN
Co., Ltd.20 モジュール 機能 データ モジュール 機能A データ 機能B モジュール 機能A データ 機能B 機能C 1.機能的 2.逐次的 3.通信的 モジュール 機能A データ1 機能B 機能C データ2 4.⼿順的 モジュール 機能A データ1 機能B 機能C データ2 5.⼀時的 モジュール 機能A データ1 機能B 機能C データ2 モジュール コード 断⽚A データ1 コード 断⽚B コード 断⽚C データ2 6.論理的 7偶発的 ⼀筆書き 初期化など ディスパッチ処理
21.
ソフトウェアの資産価値 在庫化している? 資産価値が徐々に低下して『在庫化』していませんか? 組織資産⇒属⼈資産:最初はドキュメントがあったが、誰も読まなくなり、保守されなくなる
属⼈資産⇒在庫:最初は設計ができていたのだが、⼈が変わったり、仕様追加で劣化する Copyright BACKSLASH DESIGN Co., Ltd.21 資産名称 特徴 在庫 ソースコードは複雑で説明困難であり、 信頼できる設計ドキュメントは存在していない 状態。保守コストが膨れていく傾向にある 属⼈資産 ソースコードはシンプルで分かりやすい。 ただし、設計ドキュメントが揃っていない状態。 個⼈主導の開発であり、引継ぎに苦闘する。 半組織 資産 設計ドキュメントが揃っているが、 ソースコードが複雑な状態。 マネジメント主導の開発である 組織資産 ソースコードがシンプルで、設計ドキュメント が整備されている状態。 品質・⽣産性とも予測可能となる。 戦略資産 ソースコードと設計ドキュメントが統合。 戦略的な資産活⽤ができる。 ソ ー ス コ ー ド 在庫 半組織資産 属⼈資産 組織資産 戦略 資産 設計ドキュメント 引継ぎ 次機種 参考
22.
ソフトウェア疲労[静的]ソースコードはこんな状況に Copyright BACKSLASH DESIGN
Co., Ltd.22 参考 ID 症状 原因 現象 S1 ⼀筆書き そもそも設計し ていない ひとつの関数やファイルが⻑い 作った⼈にしかわからない(作った⼈も?) S2 クローン 同じコード断⽚が点在。修正漏れが発⽣する grep検索が最も便利な開発ツール S3 神様データ 設計技法を使い こなしていない すべてを⽀配しているデータが存在する 修正の波及範囲が⼤きい S4 中央集権 ひとつのファイルにたくさんの関数がある いつも同じファイルを修正している S5 スパゲッティ いろいろな関数を呼び出している 副作⽤が発⽣する(こちらを直すとあちらが) S6 ⽼舗温泉旅館 全体が⾒えない (アーキテクト 不在) 階層を越えた呼び出し/命名規則がない 引継ぎができない(そもそも説明できない) S7 ⼀枚岩 #includeしているファイルが多い/循環依存 分割コンパイルができない
Télécharger maintenant