Enviar búsqueda
Cargar
Source monitorと複雑度のはなし
•
2 recomendaciones
•
7,260 vistas
A
aomori ringo
Seguir
Denunciar
Compartir
Denunciar
Compartir
1 de 12
Descargar ahora
Descargar para leer sin conexión
Recomendados
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
AWS Black Belt Online Seminar 2016 AWS IoT
AWS Black Belt Online Seminar 2016 AWS IoT
Amazon Web Services Japan
Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門
Motonori Shindo
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
Amazon Web Services Japan
俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターン
Masaru Kurahayashi
コロナで大打撃を受けた宿泊業のエンジニアの逆境との闘い
コロナで大打撃を受けた宿泊業のエンジニアの逆境との闘い
崇介 藤井
セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)
kazkiti
CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!
kazkiti
Recomendados
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
AWS Black Belt Online Seminar 2016 AWS IoT
AWS Black Belt Online Seminar 2016 AWS IoT
Amazon Web Services Japan
Open Policy Agent (OPA) 入門
Open Policy Agent (OPA) 入門
Motonori Shindo
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
Amazon Web Services Japan
俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターン
Masaru Kurahayashi
コロナで大打撃を受けた宿泊業のエンジニアの逆境との闘い
コロナで大打撃を受けた宿泊業のエンジニアの逆境との闘い
崇介 藤井
セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)
kazkiti
CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!
kazkiti
RDBでのツリー表現入門
RDBでのツリー表現入門
Kent Ohashi
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話
Tokoroten Nakayama
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
Hiroshi Tokumaru
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化
Tatsuya Ishikawa
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Yuusuke Takeuchi
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
日本マイクロソフト株式会社
プログラムを自動生成する技術 ~ Programming by Example ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
プログラムを自動生成する技術 ~ Programming by Example ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
【de:code 2020】 React Native で Windows アプリ開発 ~React Native for Windows~
【de:code 2020】 React Native で Windows アプリ開発 ~React Native for Windows~
日本マイクロソフト株式会社
HBの人材育成について 2022
HBの人材育成について 2022
kuronekov3v
Spring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVC
Yuichi Hasegawa
若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座
Hiroshi Tokumaru
ぼくらが体験入社にこだわるワケ
ぼくらが体験入社にこだわるワケ
Daisuke Sato
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
Unity Distribution PortalでAndroidアプリを世界の市場へ
Unity Distribution PortalでAndroidアプリを世界の市場へ
Yasuyuki Kamata
AWS WAF を活用しよう
AWS WAF を活用しよう
Yuto Ichikawa
AWS Black Belt Techシリーズ AWS IAM
AWS Black Belt Techシリーズ AWS IAM
Amazon Web Services Japan
とある診断員とAWS
とある診断員とAWS
zaki4649
スマホアプリ開発者のためのWeb api開発入門の入門
スマホアプリ開発者のためのWeb api開発入門の入門
Kenyu Miura
Distributed Systems 第10章 Distributed Object-Based Systems (後編)
Distributed Systems 第10章 Distributed Object-Based Systems (後編)
aomori ringo
Mathematicaでgolf
Mathematicaでgolf
aomori ringo
Más contenido relacionado
La actualidad más candente
RDBでのツリー表現入門
RDBでのツリー表現入門
Kent Ohashi
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話
Tokoroten Nakayama
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
Hiroshi Tokumaru
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化
Tatsuya Ishikawa
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
Yuusuke Takeuchi
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
日本マイクロソフト株式会社
プログラムを自動生成する技術 ~ Programming by Example ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
プログラムを自動生成する技術 ~ Programming by Example ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
【de:code 2020】 React Native で Windows アプリ開発 ~React Native for Windows~
【de:code 2020】 React Native で Windows アプリ開発 ~React Native for Windows~
日本マイクロソフト株式会社
HBの人材育成について 2022
HBの人材育成について 2022
kuronekov3v
Spring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVC
Yuichi Hasegawa
若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座
Hiroshi Tokumaru
ぼくらが体験入社にこだわるワケ
ぼくらが体験入社にこだわるワケ
Daisuke Sato
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
Unity Distribution PortalでAndroidアプリを世界の市場へ
Unity Distribution PortalでAndroidアプリを世界の市場へ
Yasuyuki Kamata
AWS WAF を活用しよう
AWS WAF を活用しよう
Yuto Ichikawa
AWS Black Belt Techシリーズ AWS IAM
AWS Black Belt Techシリーズ AWS IAM
Amazon Web Services Japan
とある診断員とAWS
とある診断員とAWS
zaki4649
スマホアプリ開発者のためのWeb api開発入門の入門
スマホアプリ開発者のためのWeb api開発入門の入門
Kenyu Miura
La actualidad más candente
(20)
RDBでのツリー表現入門
RDBでのツリー表現入門
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
プログラムを自動生成する技術 ~ Programming by Example ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
プログラムを自動生成する技術 ~ Programming by Example ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
【de:code 2020】 React Native で Windows アプリ開発 ~React Native for Windows~
【de:code 2020】 React Native で Windows アプリ開発 ~React Native for Windows~
HBの人材育成について 2022
HBの人材育成について 2022
Spring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVC
若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座
ぼくらが体験入社にこだわるワケ
ぼくらが体験入社にこだわるワケ
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
Unity Distribution PortalでAndroidアプリを世界の市場へ
Unity Distribution PortalでAndroidアプリを世界の市場へ
AWS WAF を活用しよう
AWS WAF を活用しよう
AWS Black Belt Techシリーズ AWS IAM
AWS Black Belt Techシリーズ AWS IAM
とある診断員とAWS
とある診断員とAWS
スマホアプリ開発者のためのWeb api開発入門の入門
スマホアプリ開発者のためのWeb api開発入門の入門
Más de aomori ringo
Distributed Systems 第10章 Distributed Object-Based Systems (後編)
Distributed Systems 第10章 Distributed Object-Based Systems (後編)
aomori ringo
Mathematicaでgolf
Mathematicaでgolf
aomori ringo
Mathematicaをはじめよう
Mathematicaをはじめよう
aomori ringo
Distributed Systems 第10章 Distributed Object-Based Systems
Distributed Systems 第10章 Distributed Object-Based Systems
aomori ringo
Distributed Systems 第1章 Introduction
Distributed Systems 第1章 Introduction
aomori ringo
md5のアルゴリズム
md5のアルゴリズム
aomori ringo
すごいHaskell楽しく学ぼう 第6章
すごいHaskell楽しく学ぼう 第6章
aomori ringo
Más de aomori ringo
(7)
Distributed Systems 第10章 Distributed Object-Based Systems (後編)
Distributed Systems 第10章 Distributed Object-Based Systems (後編)
Mathematicaでgolf
Mathematicaでgolf
Mathematicaをはじめよう
Mathematicaをはじめよう
Distributed Systems 第10章 Distributed Object-Based Systems
Distributed Systems 第10章 Distributed Object-Based Systems
Distributed Systems 第1章 Introduction
Distributed Systems 第1章 Introduction
md5のアルゴリズム
md5のアルゴリズム
すごいHaskell楽しく学ぼう 第6章
すごいHaskell楽しく学ぼう 第6章
Source monitorと複雑度のはなし
1.
aomoriringo
2.
フリーソフトウェア コードの静的メトリクス計測ツール C, C++, C#, VB.NET, Java, Delphi, VB6, HTML
3.
sourceMonitorはコード解析をして、 こんなものを表示してくれます ◦ コメントの割合 ◦ ドキュメントの割合 ◦ メソッド数/1クラス ◦ 構文数/1メソッド ◦ 一番複雑なメソッドの名前/行数 ◦ Avg/Max Complexity ◦ Avg/Max Block Depth
4.
ソースコード内の線形独立な経路の数 条件複雑度(Conditional Complexity)とも 呼ばれる 完全な分岐網羅ができるテストケースの数 ≦ 循環的複雑度 ≦ 完全な経路網羅ができるテストケースの数
5.
Start with 1 for a straight path through the routine. Add 1 for each of the following keywords or their equivalent: ◦ if, while, repeat, for, and, or Add 1 for each case in a switch statement.
6.
Public void ProcessPages() {
while( nextPage != true ) { if( ( lineCount <= linePerPage ) && (status != Status.Cancelled) && (morePages == true ) ) { //… } } }
7.
Public int getValue(
int param1 ) { int value = 0; if ( param1 == 0 ) { value = 4; } else { value = 0; } return value; }
8.
Complexity
Risk Evaluation <=10 よい構造。 ほとんどリスクなし 11 to 20 少し複雑。 わずかな(moderate)リスク >30 複雑。 構造に疑問 >50 テストが不可能 >75 いかなる変更も誤修正を生む原因を 作る
9.
Complexity
Risk Evaluation <=10 よい構造。 ほとんどリスクなし 11 to 20 少し複雑。 わずかな(moderate)リスク >30 複雑。 構造に疑問 >50 テストが不可能 >75 いかなる変更も誤修正を生む原因を 作る
10.
経路数が多く、テストケースもたくさん必要 意味を理解するのに多くの経路を 追わなければいけない 凝集度が低い傾向にある
11.
あるコードがどれだけそのクラスの 責任分担に集中しているかを示す尺度 凝集度が高い ◦ コードが読みやすい ◦ 再利用しやすい 凝集度が低い ◦ クラスのメソッド群に共通性がない ◦ 各メソッドが全く関係のないデータを扱う
12.
sourceMonitorは複雑度を解析してくれる 複雑度はテストや保守に関わる重要な指標 (しかも定量的) たまには複雑度のこと、思い出してあげてください
Descargar ahora