SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
ShigeruChiba,U.Tokyo
ソフトウェア⼯学の視点から
後編
CMSI計算科学技術特論C (2015)
千葉 滋
東京⼤学情報理⼯学系研究科
創造情報学専攻
1
ShigeruChiba,U.Tokyo
最近の潮流
• 開発スピードが重要
• 独⾃部分に注⼒、それ以外は極⼒汎⽤品
(commercial off-the-shelf) を再利⽤
– ソフトウェアのモジュール化が⼤切
• 全て内製コードでもモジュール化は有⽤
– ⾞輪の再発明は避ける
• 内製コードは保守性を意識
– 再利⽤性、拡張性、bug-fix し易さ
– Code clone は基本、悪
2
ShigeruChiba,U.Tokyo
Lessons
• 再利⽤性と使いやすさ、で競争⼒をえる
• そのソフトウェアを使う⼈は果たして多いか?
– 利⽤機会の多い機能 (function) の提供
– 再利⽤性の⾼いコード
– 最初のとっつきやすさ
• Use case を明確に
• ドキュメント整備が⼤切
– 保守の継続性
• ⻑寿命なコード
– 依存技術、配布形態 (CVS, SVN, git, ..)、ライセンス
– 効果的な宣伝
3
ShigeruChiba,U.Tokyo
Feedback
• 化学系では「単体動作アプリ」が売れる
– 同じような計算をするアプリが溢れかえって
互いにお客を奪い合う
– Webアプリ
• サイトごとに特注のアプリケーションを開発
• Wordpress 等は単体アプリといえますが…
4
ShigeruChiba,U.Tokyo
保守の継続は難しい
• 解? Open Source Development
– コミュニティ開発
• 世界中から無償で⼈が集まって開発に貢献
• 開発段階なら?
– 新機能の追加は楽しい
– ⾃⾝の能⼒の宣伝になる
– ユーザ⽬線からも信頼感が⾼まる
– ソフトウェアは永遠に進化し続けないといけない
5
ShigeruChiba,U.Tokyo
JBoss Inc. のビジネスモデル
• 基幹ソフトウェア
– オープンソース・ソフトウェアで無償公開
• 基幹ビジネス
– (法⼈向け)チュートリアル
– 保守サービス
• 2次、3次受け保守サービス会社を配下にもつ
• 開発者(従業員)
– 世界中に拡散
6
ShigeruChiba,U.Tokyo
Apple のビジネスモデル
• 基幹ソフトウェア MacOS X
– ほとんど無料
• 基幹ビジネス
– Hardware 販売
– iTunes, AppStore, …
– 昔の Microsoft の基幹ビジネス
• 基幹ソフトウェアの販売
7
ShigeruChiba,U.Tokyo
Low-cost な保守のために
• Modular design
– 活発に機能拡張し続けるためにも
– Separation of Concerns
• 関⼼事 (Concern) ごとにコードをまとめる
– 分担開発が可能に(⼈⽉の神話)
– Bug fix も無駄がない
• どこが将来変わりうるかを、まず分析
– 差分を探す
8
ShigeruChiba,U.Tokyo
Information Hiding
• あるいは Encapsulation
• Module interface
– モジュールは内部を隠す
• 変化しうる design decision を隠す
– 外部とは限られた interface を通じて
• 実装の⾃由
• 利⽤者にとっての理解しやすさ
9
ShigeruChiba,U.Tokyo
Modularity is not free
• 実⾏速度は遅くなりがち
• Crosscutting concerns の存在
– いくつかのモジュールに跨がらないと実装で
きない concern
• 例えば⾼速化のための機能
• 解決策 コンパイル時に織り込む?
– modular code を tangling code に
– C++ templates や DSL の利⽤
10
ShigeruChiba,U.Tokyo
Separation of Concerns の技法
• オブジェクト指向
– 副作⽤(代⼊)を⽤いたプログラミングでは
• データ(状態)と関数(⼿続き)は
セットで提供したい
• 例
MPI_Request req;
MPI_Status status;
MPI_Irecv(buf, len, MPI_DOUBLE, …, &req);
MPI_Wait(&req, &status);
11
ShigeruChiba,U.Tokyo
Separation of Concerns の技法
• オブジェクト指向
– データが中⼼
• 計算を物理現象として捉える
• ⾔語サポートがあるとよい
– データと関数をセットで提供
• 組み合わせを間違えない
• ⽬的の関数を利⽤者が探しやすい
• 例
class Req {
MPI_Request req;
MPI_Status status;
void irecv(…) { ... }
void wait() { MPI_Wait(&req, &status); }
:
}; 12
Req r = new Req();
r.irecv(…);
r.wait();
ShigeruChiba,U.Tokyo
Fortran
• データを整数で指定
– c 内部に受信状態を表すデータがあり、
c その番号が req
Integer req
call MPI_Irecv(array, N, …, req, err)
call MPI_Wait(req, ...)
13
ShigeruChiba,U.Tokyo
Fortran
• データ中⼼に名前を変えてみる
– Ireceiver で関数を探せる?
• Wait が Ireceiver_get, Isend_get, … と違う名前に
– Integer irecv
call MPI_Ireceiver_make(irecv, array, N, …)
call MPI_Ireceiver_get(irecv, ...)
14
ShigeruChiba,U.Tokyo
継承
• 関数の分類をクラスで表現
– 共通部分はスーパークラス(親クラス)
• ⾃動的に別名がつく?
15
class	MPI_Nonblocking {
get(Integer	i,	…)
}
class	MPI_Ireceiver {
make(Integer	i,	Real	buf(:),	…)
}
class	MPI_Isend {
make(Integer	i,	Real	buf(:),	…)
}

Contenu connexe

Tendances

Tendances (8)

NeurIPS2018読み会@PFN a unified feature disentangler for multi domain image tran...
NeurIPS2018読み会@PFN a unified feature disentangler for multi domain image tran...NeurIPS2018読み会@PFN a unified feature disentangler for multi domain image tran...
NeurIPS2018読み会@PFN a unified feature disentangler for multi domain image tran...
 
Unsupervised image to-image translation networks
Unsupervised image to-image translation networksUnsupervised image to-image translation networks
Unsupervised image to-image translation networks
 
OpenCV→Swift3.0.1
OpenCV→Swift3.0.1OpenCV→Swift3.0.1
OpenCV→Swift3.0.1
 
実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2
 
Machine learning at swift3
Machine learning at swift3Machine learning at swift3
Machine learning at swift3
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
 
パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度
 
化学構造式のためのハイパーグラフ文法(JSAI2018)
化学構造式のためのハイパーグラフ文法(JSAI2018)化学構造式のためのハイパーグラフ文法(JSAI2018)
化学構造式のためのハイパーグラフ文法(JSAI2018)
 

En vedette

CelResumeCurrentMichaelMendoza
CelResumeCurrentMichaelMendozaCelResumeCurrentMichaelMendoza
CelResumeCurrentMichaelMendoza
Michael Mendoza
 
Maria Nash Confirmation of teaching and supervisory roles
Maria Nash Confirmation of teaching and supervisory rolesMaria Nash Confirmation of teaching and supervisory roles
Maria Nash Confirmation of teaching and supervisory roles
Maria Nash Ph.D.
 
Recomendation Letters
Recomendation LettersRecomendation Letters
Recomendation Letters
Eduardo_Couto
 
Mark Marmolejo 01192015 Resume
Mark Marmolejo 01192015 ResumeMark Marmolejo 01192015 Resume
Mark Marmolejo 01192015 Resume
Mark Marmolejo
 
Financial Aide Resume - Detailed - FMT
Financial Aide Resume - Detailed - FMTFinancial Aide Resume - Detailed - FMT
Financial Aide Resume - Detailed - FMT
Marie Thornton
 
次文化
次文化次文化
次文化
MK Chou
 
第二組 青少年的感情
第二組 青少年的感情第二組 青少年的感情
第二組 青少年的感情
selina1212
 
20161203-林誠夏-文化部文創產業輔導陪伴計畫-數位化潮流的開放授權 - Open Licenses in Digital Times-pdf
20161203-林誠夏-文化部文創產業輔導陪伴計畫-數位化潮流的開放授權 - Open Licenses in Digital Times-pdf20161203-林誠夏-文化部文創產業輔導陪伴計畫-數位化潮流的開放授權 - Open Licenses in Digital Times-pdf
20161203-林誠夏-文化部文創產業輔導陪伴計畫-數位化潮流的開放授權 - Open Licenses in Digital Times-pdf
CCTaiwanCommunity
 

En vedette (16)

CelResumeCurrentMichaelMendoza
CelResumeCurrentMichaelMendozaCelResumeCurrentMichaelMendoza
CelResumeCurrentMichaelMendoza
 
Ubv nicolalde thalia
Ubv nicolalde thaliaUbv nicolalde thalia
Ubv nicolalde thalia
 
Maria Nash Confirmation of teaching and supervisory roles
Maria Nash Confirmation of teaching and supervisory rolesMaria Nash Confirmation of teaching and supervisory roles
Maria Nash Confirmation of teaching and supervisory roles
 
TPP合意と今後の知的財産分野への影響と問題点
TPP合意と今後の知的財産分野への影響と問題点TPP合意と今後の知的財産分野への影響と問題点
TPP合意と今後の知的財産分野への影響と問題点
 
インターネットと著作権をめぐる議論 2016 Summer
インターネットと著作権をめぐる議論 2016 Summerインターネットと著作権をめぐる議論 2016 Summer
インターネットと著作権をめぐる議論 2016 Summer
 
Recomendation Letters
Recomendation LettersRecomendation Letters
Recomendation Letters
 
Mark Marmolejo 01192015 Resume
Mark Marmolejo 01192015 ResumeMark Marmolejo 01192015 Resume
Mark Marmolejo 01192015 Resume
 
Financial Aide Resume - Detailed - FMT
Financial Aide Resume - Detailed - FMTFinancial Aide Resume - Detailed - FMT
Financial Aide Resume - Detailed - FMT
 
Robert romero resume
Robert romero resumeRobert romero resume
Robert romero resume
 
次文化
次文化次文化
次文化
 
20160525 林誠夏-長庚大學資策會-著作權基礎概念及創用cc授權運用-odp
20160525 林誠夏-長庚大學資策會-著作權基礎概念及創用cc授權運用-odp20160525 林誠夏-長庚大學資策會-著作權基礎概念及創用cc授權運用-odp
20160525 林誠夏-長庚大學資策會-著作權基礎概念及創用cc授權運用-odp
 
第二組 青少年的感情
第二組 青少年的感情第二組 青少年的感情
第二組 青少年的感情
 
Statement of purpose
Statement of purposeStatement of purpose
Statement of purpose
 
認知、科技與設計_1050108_期末成果展第四組
認知、科技與設計_1050108_期末成果展第四組認知、科技與設計_1050108_期末成果展第四組
認知、科技與設計_1050108_期末成果展第四組
 
La nuova comunicazione aziendale, marketing digitale e social network
La nuova comunicazione aziendale, marketing digitale e social networkLa nuova comunicazione aziendale, marketing digitale e social network
La nuova comunicazione aziendale, marketing digitale e social network
 
20161203-林誠夏-文化部文創產業輔導陪伴計畫-數位化潮流的開放授權 - Open Licenses in Digital Times-pdf
20161203-林誠夏-文化部文創產業輔導陪伴計畫-數位化潮流的開放授權 - Open Licenses in Digital Times-pdf20161203-林誠夏-文化部文創產業輔導陪伴計畫-數位化潮流的開放授權 - Open Licenses in Digital Times-pdf
20161203-林誠夏-文化部文創產業輔導陪伴計畫-數位化潮流的開放授權 - Open Licenses in Digital Times-pdf
 

Similaire à CMSI計算科学技術特論C (2015) ソフトウェア工学の視点から(後編)

鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
Hironori Washizaki
 
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Hironori Washizaki
 

Similaire à CMSI計算科学技術特論C (2015) ソフトウェア工学の視点から(後編) (20)

東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
 
mruby/c適用期待分野20160329
mruby/c適用期待分野20160329mruby/c適用期待分野20160329
mruby/c適用期待分野20160329
 
ML@Loft 20200430
ML@Loft 20200430ML@Loft 20200430
ML@Loft 20200430
 
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory  for the robot programing ...Portable RT-Middleware environment on a USB memory  for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
 
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
 
Conference withdevelopers 第二版
Conference withdevelopers 第二版Conference withdevelopers 第二版
Conference withdevelopers 第二版
 
Iand t study 2nd session / IT industry value stream
Iand t study 2nd session / IT industry value streamIand t study 2nd session / IT industry value stream
Iand t study 2nd session / IT industry value stream
 
リーン原則とソフトウェア開発
リーン原則とソフトウェア開発リーン原則とソフトウェア開発
リーン原則とソフトウェア開発
 
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善Qua s tom-メトリクスによるソフトウェアの品質把握と改善
Qua s tom-メトリクスによるソフトウェアの品質把握と改善
 
経営学 Ii 11
経営学 Ii 11経営学 Ii 11
経営学 Ii 11
 
今さら聞けない人のためのDevOps超入門 ODC2023編
今さら聞けない人のためのDevOps超入門 ODC2023編今さら聞けない人のためのDevOps超入門 ODC2023編
今さら聞けない人のためのDevOps超入門 ODC2023編
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
I and T study 3rd session
I and T study 3rd sessionI and T study 3rd session
I and T study 3rd session
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
機械学習品質マネジメントプロジェクトのご紹介
機械学習品質マネジメントプロジェクトのご紹介機械学習品質マネジメントプロジェクトのご紹介
機械学習品質マネジメントプロジェクトのご紹介
 
The 12th picmet japan_minitalk
The 12th picmet japan_minitalkThe 12th picmet japan_minitalk
The 12th picmet japan_minitalk
 
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
【OpenStackDaysTokyo】4-B1-3 自動化を支えるCICDパイプラインの世界
 

Plus de Computational Materials Science Initiative

Plus de Computational Materials Science Initiative (20)

MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
ALPSチュートリアル
ALPSチュートリアルALPSチュートリアル
ALPSチュートリアル
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
 
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
 
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
 

Dernier

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 

Dernier (8)

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 

CMSI計算科学技術特論C (2015) ソフトウェア工学の視点から(後編)