2013年4月30日
株式会社 シナジー研究所
依田 智夫
要求開発アライアンス4月定例会
ソースコードは要求にとって
地球の裏側なのか
Copyright 2010-2013 Synergy Research Corporation 2
企業のIT活用。
歴史はすでに半世紀。
そのソフトウェア資産は膨大である。
世界には1万のメインフレーム
3万8千のレガシーシステム
2,000億行COBOLが稼働中
毎年50億行が増加
(Wikipediaで”COBOL” を検索)
Copyright 2010-2013 Synergy Research Corporation 3
IT黎明期は遠い過去であり、
企業の情報システムは一定の質量とスピードで走っ
ている電車のようなもの
電車はすでに発車しているのであり、
急発進、急ブレーキ、急カーブ、飛び乗り、飛び降り、
は事故につながる
情報システムにおいては、必ず高コスト・低品質を招く
ビッグバンには覚悟が必要
Copyright 2010-2013 Synergy Research Corporation 4
質量とスピードの実体は
O: Organization 組織
P: Process プロセス
R: Resource 資源
これらが受け入れられない方向転換、あるいはそこか
らの不連続性は低品質・高コストを招く
Copyright 2010-2013 Synergy Research Corporation 5
RFP(提案依頼書)と提案書
自由に語られた要求と、
その要求を100%充足する提案は、
望ましいものと言えるか?
どうすれば、スーパーマーケットで買い物をするようなシス
テム開発が出来るのか
レジでびっくりしない
でも、献立の工夫ができて
家族は幸せ
Copyright 2010-2013 Synergy Research Corporation 6
本日のテーマ
低品質・高コストを避けながらも、
現状に甘んじることなく、
攻められる開発とは
Copyright 2010-2013 Synergy Research Corporation 7
一つの提案
ソースコードの声を聴く
Copyright 2010-2013 Synergy Research Corporation 8
プロセスを考える
Copyright 2010-2013 Synergy Research Corporation 9
ウォーターフォール、
「開発者は技術的に完璧であり、
何らの試行錯誤も学びも不要」
要求
設計開発
運用保守
Copyright 2010-2013 Synergy Research Corporation 10
スパイラル、アジャイル、
やってみなければわからないので・・
要求
設計
開発
運用
保守
要求
設計
開発
運用
保守
要求
設計
開発
運用
保守
要求
設計
開発
運用
保守
要求、製品、顧客、市場 ♪
アーキテクチャー?????????
Copyright 2010-2013 Synergy Research Corporation 11
第3の道、すべての学びを回収する!
要求
設計
開発
運用
保守
学びの
回収
要求
設計
開発
運用
保守
学びの
回収
Copyright 2010-2013 Synergy Research Corporation 12
では、
何から学び、
次に何を残すのか
ソースコード
プロセス アーキテクチャー
RE
ドキュメント
Copyright 2010-2013 Synergy Research Corporation 13
なぜソースコードなのか?
過去、および現在の開発プロセスを、分析し、問題を
整理し、その再構築を行う手法がないことは問題であ
る
テスト段階以降のシステムの場合、ソースコードの改
変行為に着目することで、正確で緻密なプロセスの問
題分析が可能になる
指示書、報告書ベースのプロセス分析は、実態との
相当の乖離を含む場合があり、有効ではない
ソースコードの改変(What,Where)と管理台帳
(Why,How Much)との突き合わせは、分析手法と
して有用
AIS/PM版レポートの標準様式
Copyright 2010-2013 Synergy Research Corporation 14
すべての成果物(プログラム、設計書)
が、ビジネスカテゴリーに従って分類さ
れます。
4レベルあるカテゴリーの任意のレベル
でレポートが出力できます。
提供いただいた11月と12月、2
期分のリリースに基づきレポート
を作成
JSP(Java Server Pages)とJavaとい
う二つのプログラミング言語で開発され
たプログラムのステップ数がカテゴリー
ごとに報告されています。
どのビジネスカテゴリーのステップ数が
上位5位、下位5位に属するか、色分け
して表示されています。
その他に、複雑性や機能量の指標値を
合計して表示することができます。
どの機能カテゴリーでステップ数がどれ
だけ増加しているか(出来高)、またソー
スコードがどれだけ改修されているか
(移動距離)が表示されています。%表
示は、11月と12月の出来高と移動距離
の11月ステップ数に対する比率です。
その他に、複雑性や機能量の指標値の
変化を表示することができます。
最新版の出力形式とは異なっています。
AIS/PM版の代表的メトリクスと活用方法の例
Copyright 2010-2013 Synergy Research Corporation 15
ID 項目名 説明
カ
テ
ゴ
リ
ー
指
標
プ
ロ
グ
ラ
ム
指
標
(1) ファイル数 当該カテゴリー中のファイル数 ○
(2) 前期行数 前期リリースの行数(SLOC) ○ ○
(3) 行数 当期リリースの行数(SLOC) ○ ○
(4) 文字数 ファイル中の文字数 ○ ○
(5) C文字数 コメントに含まれる文字数 ○ ○
(6) 有効率 ((4)-(5))/(4)% ○ ○
(7) 出来高
(3)-(2)
=
(8)-(9)
○ ○
(8) 追加行数 前期に対して当期に追加された行数 ○ ○
(9) 削除行数 前期に対して当期に削除された行数 ○ ○
(10
)
移動距離 (8)+(9) ○ ○
(11
)
移動距離比 (10)/(2)% ○ ○
(12
)
移動
ランダム性
追加・削除行の粒度 ○ ○
(A)
推定画面
機能量
ハイパーリファレンス、submit、ボタンなど、
HTML要素の数によって推定された画面機能
量
○ ○
(B)
JAVAライブラ
リによる
DBアクセス
量
Java.CONNECTIONライブラリの呼び出し回
数で推定されたDBアクセス量
○ ○
(C)
SQL文による
DBアクセス
量
文字列中のSELECT、UPDATEなどのキー
ワードによって推定されたDBアクセス量
○ ○
リリース間の行数の増減は?
コメントを除く有効コード比は?
どれくらいの手間をかけた改修か?
どれくらいきめ細かな改修作業か?
カスタム指標の一例。
プロジェクト毎に簡単に作成し、レポートに
加えることができます。
これらの指標は機能量やプログラムの価
値を表す指標として、上記の、行数や有効
行数に代えて利用することができます。
どれくらい母体に影響を与える改修か?
ドキュメント改善、プログラム可読性改善へ
急激に増加(コメントが減少)した場合は、
開発者への負荷増大の可能性あり
0に近い場合は、契約違反?
開発プロジェクトなら一定の率で増加する
のが健全。保守プロジェクトで定常的に増
大する場合は肥大化の原因を探る。
テスト密度によって、必要なテスト項目数を
得る。
プログラムの規模
テストバグ密度によって、必要なバグ摘出
件数を得る。
変更管理によって把握されているか
過去の瑕疵範囲に手を付けていないか
改修の見積もりは適切だったか
改修の請求は適切か
テスト計画は問題ないか
テスト報告に問題ないか
ユーザーに注意喚起する必要はないか
開発ツール導入の報告は受けているか
開発ツールの使い方は適切か
AISの特徴である強力な移動距
離測定機能によって可能になる
Check/Action
DO CHECKPLAN ACTION
仕様追加・変更、不具合修正等、案件分類と
対策の関係
案件分類
新規
案件定義漏れ
案件解釈齟齬
不具合修正
ア
ー
キ
テ
ク
チ
ャ
ー
改
善
が
有
効
プ
ロ
セ
ス
改
善
が
有
効
案件ドライバー
改善対象工程
法改正
コンプライアンス
組織変更
業務改革
業務
効率化
顧客要求対応
非機能要件
要件定義
設計
テスト
作業標準
スキル標準
16Copyright 2010-2013 Synergy Research Corporation
案件ごとの作業量とサービス価値
(A)
新規
35%
(B)
(C)
(D)
不具合修正
35%
(A)
新規
68%
(B)
(C)
(D)
非要件対応
10%
全案件
サービス価値
潜在的サービス価値
潜在的サービス価値
顧客が全く評価
しない作業量
件数ベース
移動距離
ベース
作業量
の分類
収益性
向上策
撲滅
バリュースト
リーム拡大
転換 転換
(B)
要件未定義
(C)
要件
解釈齟齬
17Copyright 2010-2013 Synergy Research Corporation
プロセ
ス改善が
有効
合計30%
ア
ー
キ
テ
ク
チ
ャ
ー
改
善
が
有
効
プロセ
ス改善が
有効
ア
ー
キ
テ
ク
チ
ャ
ー
改
善が
有
効
SQL
JSP
プログラム調査
Copyright 2010-2013 Synergy Research Corporation 18
機能カテゴリー
評価 評価サマリー
規模 成長速度 改修規模 改修頻度 機能 複雑性
HOME
タスク管理
連絡事項
お勧め商品
ヘルプ
メール管理
承認進捗確認
未分類
発注管理
商品別仕入推移
仕入先別仕入推移
Java
評価に用いる指標の候補
規模: ステップ数、有効ステップ数、それらの順位
成長速度: ステップ数等の期間あたり伸び率、順位
改修規模: 移動距離による特定期間あたり改修規模
改修頻度:: 移動距離による一定期間あたり改修規模
機能: 画面、DBアクセス等の機能量
複雑性: IF、CASE文等の計測による複雑度合い
ドキュメンテーション調査(評価の視点)
Copyright 2010-2013 Synergy Research Corporation 19
ドキュメント全体の構
成がわかりやすいこ
と
個別の改修案件に依
存しない記述である
こと
記述方法に一貫性が
あること
システムの各要素に
ついて、一覧性・網羅
性があること
記載されている設計
要素が識別可能であ
ること
相互参照性があるこ
と(設計要素間の相
互依存性がわかるこ
と)
ここを見れ
ば良いんだ
な!
改修1
改修2
改修3
改修4
A
B
C
D
D
1
A
1
A
2
D
2
機能一覧
1)・・・・・・
2)・・・・・・
3)・・・・・・
4)・・・・・・
5)・・・・・・
6)・・・・・・
----------------
合計150画面
処理
XYZ
?
?
?
Copyright 2010-2013 Synergy Research Corporation 20
ソースコードと、アーキテクチャー
アーキテクチャー=制約
正しい制約が高い品質と生産性をもたらす
顧客満足、高品質、低コストを同時に実現するアーキ
テクチャーが真に価値あるアーキテクチャー(制約)で
ある
正しい制約は常に見直され、
次サイクルに向けて拡張・強化される
べき
Copyright 2010-2013 Synergy Research Corporation 21
アーキテクチャーの視点
大粒度
大規模システム境界
パッケージソフトウェア
中粒度
ビジネス機能と利用技術の関係
有用性
使用されているか
高品質・低コストへの貢献
陳腐化の実態
小粒度
クラス・パッケージレベルの依存性
JCL解析による大規模人事システム全体の関係
Copyright 2010-2013 Synergy Research Corporation
22
給与 就業 人事DB 業務支援
給与 ●
就業 ○
人事DB
業務支援
4つの
固まりを
視たい
移動距離に着目した中粒度のアーキテクチャー評価
Copyright 2010-2013 Synergy Research Corporation
23
fp_RecordType updated
fp_To_Date_Released (すべて)
列ラベル
JAVA JSP
行ラベル 期首ファイル数 期末ファイル数 期首行数 期末行数 出来高 移動距離 ランダム性 漢字非互換 期首ファイル数 期末ファイル数 期首行数 期末行数 出来高 移動距離 ランダム性 漢字非互換
(NA) 38 38 4,372 4,370 -2 30 0.00
JAVA埋込SQL 16 16 4,822 4,856 34 80 0.00
JBOSS 46 46 4,862 4,889 27 111 0.00
WebCM 35 35 4,900 4,859 -41 247 0.00 1
アプリケーション辞書 1,001 1,001 307,695 316,102 8,407 36,425 0.00 29
モデル 111 111 34,696 36,649 1,953 3,249 0.00
(空白) 111 111 34,696 36,649 1,953 3,249 0.00
生成モデル 564 564 175,985 179,945 3,960 25,878 0.00
アプリケーション辞書 157 157 44,532 45,884 1,352 7,526 0.00
ウェブストア 9 9 2,839 2,899 60 554 0.00
サービス管理 10 10 2,900 2,927 27 305 0.00
テンポラリ 13 13 4,587 4,617 30 278 0.00
レポートビューア 2 2 2,176 2,221 45 383 0.00
依頼 27 27 7,313 7,402 89 1,029 0.00
購買管理 88 88 24,865 25,602 737 3,311 0.00
資産管理 8 8 2,563 2,601 38 390 0.00
性能分析 20 20 6,059 6,135 76 812 0.00
総勘定元帳 10 10 3,999 4,088 89 441 0.00
知識ベース 13 13 2,436 2,463 27 361 0.00
中核機能 143 143 47,382 48,180 798 5,962 0.00
輸入 14 14 11,489 11,892 403 2,513 0.00
(空白) 50 50 12,845 13,034 189 2,013 0.00
(空白) 326 326 97,014 99,508 2,494 7,298 0.00 29
(空白) 326 326 97,014 99,508 2,494 7,298 0.00 29
インストール 20 20 6,661 6,390 -271 663 0.00
インタフェース 8 8 557 557 0 0 0.00
クライアント機能 194 194 74,208 76,541 2,333 6,339 0.00
サーバー・クライアント基本機能 529 529 159,905 167,477 7,572 15,350 0.00 2
サーバーアプリ 43 43 9,437 9,712 275 497 0.00
サーバールート 44 44 18,053 18,027 -26 1,060 0.00
ツール 127 127 43,477 44,209 732 972 0.00
印刷 37 37 15,260 15,897 637 1,215 0.00
拡張 4 4 708 679 -29 117 0.00
共通機能 45 45 5,631 6,027 396 1,564 0.00
総計 2,103 2,103 651,314 671,333 20,019 64,529 0.00 32 84 84 9,234 9,259 25 141 0.00
ドリルダウン
OSS ERP: Compiere
プロジェクト型不具合改善活動
Copyright 2010-2013 Synergy Research Corporation
24
リバース
エンジニアリング
不具合
箇所の
分析
不具合箇所の
網羅的洗い出し
改修時の
影響分析
無影響
保証手段の検討と
対策
改修作業
無影響
保証
RE機能の活用ポイント
RE機能の活用ポイント
RE機能の活用ポイント
Copyright 2010-2013 Synergy Research Corporation 25
小粒度
コード分析ツール
特定言語に特化しているので、
中粒度、大粒度の分析に不向き
UMLリバースエンジニアリングツール
骨太の分析では挫折も
Copyright 2010-2013 Synergy Research Corporation 26
ソースコードは要求にとって地球の裏側なのか
知識リサイクル型ソフトウェアエンジニアリング
要求
設計
開発
運用
保守
可視化
RE
ソースコード
Reverse
Restructure
Reengineer
Copyright 2010-2013 Synergy Research Corporation 27
これからの情報サービス企業に必要な2次元的変革
知識集約型
サービス提供型
(プロダクト・サービス)
高コスト
低品質
中コスト
中品質
低コスト
高品質
1 業務知識を顧客に依存
1
従来型受託開発
2 個別事例・ノウハウ蓄積
3 汎用的な業種・業務知識の整理 2
共通化・部品化・
アーキテクチャー整備
(Modules,SOA)
4 業務標準化・ベストプラクティス
3
プロダクト化
(PKGモディファイ,ITO,AMO)
4
フルターンキーサービス化
(Saas、PKG(as-is)、ITO)
5 業務改革支援(BPO)
JISA,情報サービス産業白書2013
変革の絶えざる挑戦より
左端に留まったまま
縦に移動しても意味がない。
他社と比較して格別に優位となる強みがなければ
右端をめざさなければならない
Copyright 2010-2013 Synergy Research Corporation 28
知識リサイクルのための道具立て
知識創造
リサイクル
個別
プロジェクト・
イテレーション
企業全体
で共有
シナジー研究所
取り組み
要求
AIS/PM版
AIS/RE版
ツール+
コンサルティング
設計開発
運用保守
可視化
RE
AIS
レポート・ドキュメンテーション
AISの拡張予定とサービス形態
Copyright 2010-2013 Synergy Research Corporation
29
AISコア言語解析機能
ABAP
対応モジュール
Java
対応モジュール
COBOL
対応モジュール
特定ユーザー向拡張 特定ユーザー向拡張特定ユーザー向拡張
順次拡張予定
AISサービス形態
レポートデリバリ
製品拡張
セッション
特定ユーザー向け
システムインテグレーション
特定ユーザー向け
拡張支援セッション
PM系機能
Project Management
RE系機能
Reverse Engineering
PM版
ソースコードを解析して,
プロジェクト管理に役立つマクロ的情報を提供
PM版とRE版
Copyright 2010-2013 Synergy Research Corporation
30
RE版
ソースコードを解析して
改修設計、無影響テスト、QA活動効率化に役立つ
ミクロ的情報を提供
S.要素名 S.絶対レベル S.相対レベル S.テキスト S.参照先
AAAAAAAAAAAAAA (N/A) 0 FORM AAAAAAAAAAAAAA USING *********
AAAAAAAAAAAAAA (N/A) 1 PERFORM AAAAAAAAAAAAAA USING *********
BBBBBBBBBBBB (N/A) 2 FORM BBBBBBBBBBBB
BBBBBBBBBBBB (N/A) 3 PERFORM BBBBBBBBBBBB
CCCCCCCCCCCCCC (N/A) 4 FORM CCCCCCCCCCCCCC
CCCCCCCCCCCCCC (N/A) 5 PERFORM CCCCCCCCCCCCCC
(NA)(VN2) (N/A) 6 WHEN ********
(NA)(VN2) (N/A) 7 CASE ********
DDDDDDDDDDDDDDD (N/A) 8 FORM DDDDDDDDDDDDDDD CHANGING *********
DDDDDDDDDDDDDDD (N/A) 9 PERFORM DDDDDDDDDDDDDDD CHANGING *********
DDDDDDDDDDDDDDD (N/A) 10 MODULE DDDDDDDDDDDDDDD INPUT
DDDDDDDDDDDDDDD (N/A) 11 MODULE DDDDDDDDDDDDDDD
(NA)(VN2) (N/A) 12 PROCESS AFTER INPUT
(NA)(VN2) (N/A) 13 (SCREEN)
GGG (N/A) 14 CALL SCREEN ----
(NA)(VN2) (N/A) 15 WHEN ********
(NA)(VN2) (N/A) 16 CASE ********
EEEEEEEEEEEEEEEEE (N/A) 17 FORM EEEEEEEEEEEEEEEEE CHANGING *********
EEEEEEEEEEEEEEEEE (N/A) 18 PERFORM EEEEEEEEEEEEEEEEE CHANGING *********
EEEEEEEEEEEEEEEEE (N/A) 19 MODULE EEEEEEEEEEEEEEEEE INPUT
EEEEEEEEEEEEEEEEE (N/A) 20 MODULE EEEEEEEEEEEEEEEEE
(NA)(VN2) (N/A) 21 PROCESS AFTER INPUT
(NA)(VN2) (N/A) 22 (SCREEN)
100 (N/A) 23 CALL SCREEN ----
FFFFFFFFFFFFFF (N/A) 24 FUNCTION FFFFFFFFFFFFFF
GGG (N/A) 14 CALL SCREEN ----
(NA)(VN2) (N/A) 15 (THEN)
(NA)(VN2) (N/A) 16 IF *******************
(NA)(VN2) (N/A) 17 WHEN ********
(NA)(VN2) (N/A) 18 CASE ******** *
GGG (N/A) 14 CALL SCREEN ----
• ABAPソースコードを解析しサブルーチンの呼び出し元を部品表形式で表示した例
• 改修したサブルーチンをピンポイントでテストする方策を検討することができる
• COBOL、JAVA版を計画中
最大の特徴は、言語を問わないこと。 各言語対応版を開発する必要がある。
構造が理解しやすい
正規化ステートメント
コメントは正規化ステートメント
の真横に配置して、分岐条件
などがわかりやすく表示
つまり、Java、Jsp、SQL、XML、HTML、CSSなどが混在しても、
プロジェクト活動を一括して見える化できる
株式会社 シナジー研究所
依田 智夫
yoda@synergy-res.co.jp
Copyright 2010-2013 Synergy Research Corporation
31

ソースコードは要求にとって地球の裏側なのか

  • 1.
  • 2.
    Copyright 2010-2013 SynergyResearch Corporation 2 企業のIT活用。 歴史はすでに半世紀。 そのソフトウェア資産は膨大である。 世界には1万のメインフレーム 3万8千のレガシーシステム 2,000億行COBOLが稼働中 毎年50億行が増加 (Wikipediaで”COBOL” を検索)
  • 3.
    Copyright 2010-2013 SynergyResearch Corporation 3 IT黎明期は遠い過去であり、 企業の情報システムは一定の質量とスピードで走っ ている電車のようなもの 電車はすでに発車しているのであり、 急発進、急ブレーキ、急カーブ、飛び乗り、飛び降り、 は事故につながる 情報システムにおいては、必ず高コスト・低品質を招く ビッグバンには覚悟が必要
  • 4.
    Copyright 2010-2013 SynergyResearch Corporation 4 質量とスピードの実体は O: Organization 組織 P: Process プロセス R: Resource 資源 これらが受け入れられない方向転換、あるいはそこか らの不連続性は低品質・高コストを招く
  • 5.
    Copyright 2010-2013 SynergyResearch Corporation 5 RFP(提案依頼書)と提案書 自由に語られた要求と、 その要求を100%充足する提案は、 望ましいものと言えるか? どうすれば、スーパーマーケットで買い物をするようなシス テム開発が出来るのか レジでびっくりしない でも、献立の工夫ができて 家族は幸せ
  • 6.
    Copyright 2010-2013 SynergyResearch Corporation 6 本日のテーマ 低品質・高コストを避けながらも、 現状に甘んじることなく、 攻められる開発とは
  • 7.
    Copyright 2010-2013 SynergyResearch Corporation 7 一つの提案 ソースコードの声を聴く
  • 8.
    Copyright 2010-2013 SynergyResearch Corporation 8 プロセスを考える
  • 9.
    Copyright 2010-2013 SynergyResearch Corporation 9 ウォーターフォール、 「開発者は技術的に完璧であり、 何らの試行錯誤も学びも不要」 要求 設計開発 運用保守
  • 10.
    Copyright 2010-2013 SynergyResearch Corporation 10 スパイラル、アジャイル、 やってみなければわからないので・・ 要求 設計 開発 運用 保守 要求 設計 開発 運用 保守 要求 設計 開発 運用 保守 要求 設計 開発 運用 保守 要求、製品、顧客、市場 ♪ アーキテクチャー?????????
  • 11.
    Copyright 2010-2013 SynergyResearch Corporation 11 第3の道、すべての学びを回収する! 要求 設計 開発 運用 保守 学びの 回収 要求 設計 開発 運用 保守 学びの 回収
  • 12.
    Copyright 2010-2013 SynergyResearch Corporation 12 では、 何から学び、 次に何を残すのか ソースコード プロセス アーキテクチャー RE ドキュメント
  • 13.
    Copyright 2010-2013 SynergyResearch Corporation 13 なぜソースコードなのか? 過去、および現在の開発プロセスを、分析し、問題を 整理し、その再構築を行う手法がないことは問題であ る テスト段階以降のシステムの場合、ソースコードの改 変行為に着目することで、正確で緻密なプロセスの問 題分析が可能になる 指示書、報告書ベースのプロセス分析は、実態との 相当の乖離を含む場合があり、有効ではない ソースコードの改変(What,Where)と管理台帳 (Why,How Much)との突き合わせは、分析手法と して有用
  • 14.
    AIS/PM版レポートの標準様式 Copyright 2010-2013 SynergyResearch Corporation 14 すべての成果物(プログラム、設計書) が、ビジネスカテゴリーに従って分類さ れます。 4レベルあるカテゴリーの任意のレベル でレポートが出力できます。 提供いただいた11月と12月、2 期分のリリースに基づきレポート を作成 JSP(Java Server Pages)とJavaとい う二つのプログラミング言語で開発され たプログラムのステップ数がカテゴリー ごとに報告されています。 どのビジネスカテゴリーのステップ数が 上位5位、下位5位に属するか、色分け して表示されています。 その他に、複雑性や機能量の指標値を 合計して表示することができます。 どの機能カテゴリーでステップ数がどれ だけ増加しているか(出来高)、またソー スコードがどれだけ改修されているか (移動距離)が表示されています。%表 示は、11月と12月の出来高と移動距離 の11月ステップ数に対する比率です。 その他に、複雑性や機能量の指標値の 変化を表示することができます。 最新版の出力形式とは異なっています。
  • 15.
    AIS/PM版の代表的メトリクスと活用方法の例 Copyright 2010-2013 SynergyResearch Corporation 15 ID 項目名 説明 カ テ ゴ リ ー 指 標 プ ロ グ ラ ム 指 標 (1) ファイル数 当該カテゴリー中のファイル数 ○ (2) 前期行数 前期リリースの行数(SLOC) ○ ○ (3) 行数 当期リリースの行数(SLOC) ○ ○ (4) 文字数 ファイル中の文字数 ○ ○ (5) C文字数 コメントに含まれる文字数 ○ ○ (6) 有効率 ((4)-(5))/(4)% ○ ○ (7) 出来高 (3)-(2) = (8)-(9) ○ ○ (8) 追加行数 前期に対して当期に追加された行数 ○ ○ (9) 削除行数 前期に対して当期に削除された行数 ○ ○ (10 ) 移動距離 (8)+(9) ○ ○ (11 ) 移動距離比 (10)/(2)% ○ ○ (12 ) 移動 ランダム性 追加・削除行の粒度 ○ ○ (A) 推定画面 機能量 ハイパーリファレンス、submit、ボタンなど、 HTML要素の数によって推定された画面機能 量 ○ ○ (B) JAVAライブラ リによる DBアクセス 量 Java.CONNECTIONライブラリの呼び出し回 数で推定されたDBアクセス量 ○ ○ (C) SQL文による DBアクセス 量 文字列中のSELECT、UPDATEなどのキー ワードによって推定されたDBアクセス量 ○ ○ リリース間の行数の増減は? コメントを除く有効コード比は? どれくらいの手間をかけた改修か? どれくらいきめ細かな改修作業か? カスタム指標の一例。 プロジェクト毎に簡単に作成し、レポートに 加えることができます。 これらの指標は機能量やプログラムの価 値を表す指標として、上記の、行数や有効 行数に代えて利用することができます。 どれくらい母体に影響を与える改修か? ドキュメント改善、プログラム可読性改善へ 急激に増加(コメントが減少)した場合は、 開発者への負荷増大の可能性あり 0に近い場合は、契約違反? 開発プロジェクトなら一定の率で増加する のが健全。保守プロジェクトで定常的に増 大する場合は肥大化の原因を探る。 テスト密度によって、必要なテスト項目数を 得る。 プログラムの規模 テストバグ密度によって、必要なバグ摘出 件数を得る。 変更管理によって把握されているか 過去の瑕疵範囲に手を付けていないか 改修の見積もりは適切だったか 改修の請求は適切か テスト計画は問題ないか テスト報告に問題ないか ユーザーに注意喚起する必要はないか 開発ツール導入の報告は受けているか 開発ツールの使い方は適切か AISの特徴である強力な移動距 離測定機能によって可能になる Check/Action DO CHECKPLAN ACTION
  • 16.
  • 17.
  • 18.
    SQL JSP プログラム調査 Copyright 2010-2013 SynergyResearch Corporation 18 機能カテゴリー 評価 評価サマリー 規模 成長速度 改修規模 改修頻度 機能 複雑性 HOME タスク管理 連絡事項 お勧め商品 ヘルプ メール管理 承認進捗確認 未分類 発注管理 商品別仕入推移 仕入先別仕入推移 Java 評価に用いる指標の候補 規模: ステップ数、有効ステップ数、それらの順位 成長速度: ステップ数等の期間あたり伸び率、順位 改修規模: 移動距離による特定期間あたり改修規模 改修頻度:: 移動距離による一定期間あたり改修規模 機能: 画面、DBアクセス等の機能量 複雑性: IF、CASE文等の計測による複雑度合い
  • 19.
    ドキュメンテーション調査(評価の視点) Copyright 2010-2013 SynergyResearch Corporation 19 ドキュメント全体の構 成がわかりやすいこ と 個別の改修案件に依 存しない記述である こと 記述方法に一貫性が あること システムの各要素に ついて、一覧性・網羅 性があること 記載されている設計 要素が識別可能であ ること 相互参照性があるこ と(設計要素間の相 互依存性がわかるこ と) ここを見れ ば良いんだ な! 改修1 改修2 改修3 改修4 A B C D D 1 A 1 A 2 D 2 機能一覧 1)・・・・・・ 2)・・・・・・ 3)・・・・・・ 4)・・・・・・ 5)・・・・・・ 6)・・・・・・ ---------------- 合計150画面 処理 XYZ ? ? ?
  • 20.
    Copyright 2010-2013 SynergyResearch Corporation 20 ソースコードと、アーキテクチャー アーキテクチャー=制約 正しい制約が高い品質と生産性をもたらす 顧客満足、高品質、低コストを同時に実現するアーキ テクチャーが真に価値あるアーキテクチャー(制約)で ある 正しい制約は常に見直され、 次サイクルに向けて拡張・強化される べき
  • 21.
    Copyright 2010-2013 SynergyResearch Corporation 21 アーキテクチャーの視点 大粒度 大規模システム境界 パッケージソフトウェア 中粒度 ビジネス機能と利用技術の関係 有用性 使用されているか 高品質・低コストへの貢献 陳腐化の実態 小粒度 クラス・パッケージレベルの依存性
  • 22.
    JCL解析による大規模人事システム全体の関係 Copyright 2010-2013 SynergyResearch Corporation 22 給与 就業 人事DB 業務支援 給与 ● 就業 ○ 人事DB 業務支援 4つの 固まりを 視たい
  • 23.
    移動距離に着目した中粒度のアーキテクチャー評価 Copyright 2010-2013 SynergyResearch Corporation 23 fp_RecordType updated fp_To_Date_Released (すべて) 列ラベル JAVA JSP 行ラベル 期首ファイル数 期末ファイル数 期首行数 期末行数 出来高 移動距離 ランダム性 漢字非互換 期首ファイル数 期末ファイル数 期首行数 期末行数 出来高 移動距離 ランダム性 漢字非互換 (NA) 38 38 4,372 4,370 -2 30 0.00 JAVA埋込SQL 16 16 4,822 4,856 34 80 0.00 JBOSS 46 46 4,862 4,889 27 111 0.00 WebCM 35 35 4,900 4,859 -41 247 0.00 1 アプリケーション辞書 1,001 1,001 307,695 316,102 8,407 36,425 0.00 29 モデル 111 111 34,696 36,649 1,953 3,249 0.00 (空白) 111 111 34,696 36,649 1,953 3,249 0.00 生成モデル 564 564 175,985 179,945 3,960 25,878 0.00 アプリケーション辞書 157 157 44,532 45,884 1,352 7,526 0.00 ウェブストア 9 9 2,839 2,899 60 554 0.00 サービス管理 10 10 2,900 2,927 27 305 0.00 テンポラリ 13 13 4,587 4,617 30 278 0.00 レポートビューア 2 2 2,176 2,221 45 383 0.00 依頼 27 27 7,313 7,402 89 1,029 0.00 購買管理 88 88 24,865 25,602 737 3,311 0.00 資産管理 8 8 2,563 2,601 38 390 0.00 性能分析 20 20 6,059 6,135 76 812 0.00 総勘定元帳 10 10 3,999 4,088 89 441 0.00 知識ベース 13 13 2,436 2,463 27 361 0.00 中核機能 143 143 47,382 48,180 798 5,962 0.00 輸入 14 14 11,489 11,892 403 2,513 0.00 (空白) 50 50 12,845 13,034 189 2,013 0.00 (空白) 326 326 97,014 99,508 2,494 7,298 0.00 29 (空白) 326 326 97,014 99,508 2,494 7,298 0.00 29 インストール 20 20 6,661 6,390 -271 663 0.00 インタフェース 8 8 557 557 0 0 0.00 クライアント機能 194 194 74,208 76,541 2,333 6,339 0.00 サーバー・クライアント基本機能 529 529 159,905 167,477 7,572 15,350 0.00 2 サーバーアプリ 43 43 9,437 9,712 275 497 0.00 サーバールート 44 44 18,053 18,027 -26 1,060 0.00 ツール 127 127 43,477 44,209 732 972 0.00 印刷 37 37 15,260 15,897 637 1,215 0.00 拡張 4 4 708 679 -29 117 0.00 共通機能 45 45 5,631 6,027 396 1,564 0.00 総計 2,103 2,103 651,314 671,333 20,019 64,529 0.00 32 84 84 9,234 9,259 25 141 0.00 ドリルダウン OSS ERP: Compiere
  • 24.
    プロジェクト型不具合改善活動 Copyright 2010-2013 SynergyResearch Corporation 24 リバース エンジニアリング 不具合 箇所の 分析 不具合箇所の 網羅的洗い出し 改修時の 影響分析 無影響 保証手段の検討と 対策 改修作業 無影響 保証 RE機能の活用ポイント RE機能の活用ポイント RE機能の活用ポイント
  • 25.
    Copyright 2010-2013 SynergyResearch Corporation 25 小粒度 コード分析ツール 特定言語に特化しているので、 中粒度、大粒度の分析に不向き UMLリバースエンジニアリングツール 骨太の分析では挫折も
  • 26.
    Copyright 2010-2013 SynergyResearch Corporation 26 ソースコードは要求にとって地球の裏側なのか 知識リサイクル型ソフトウェアエンジニアリング 要求 設計 開発 運用 保守 可視化 RE ソースコード Reverse Restructure Reengineer
  • 27.
    Copyright 2010-2013 SynergyResearch Corporation 27 これからの情報サービス企業に必要な2次元的変革 知識集約型 サービス提供型 (プロダクト・サービス) 高コスト 低品質 中コスト 中品質 低コスト 高品質 1 業務知識を顧客に依存 1 従来型受託開発 2 個別事例・ノウハウ蓄積 3 汎用的な業種・業務知識の整理 2 共通化・部品化・ アーキテクチャー整備 (Modules,SOA) 4 業務標準化・ベストプラクティス 3 プロダクト化 (PKGモディファイ,ITO,AMO) 4 フルターンキーサービス化 (Saas、PKG(as-is)、ITO) 5 業務改革支援(BPO) JISA,情報サービス産業白書2013 変革の絶えざる挑戦より 左端に留まったまま 縦に移動しても意味がない。 他社と比較して格別に優位となる強みがなければ 右端をめざさなければならない
  • 28.
    Copyright 2010-2013 SynergyResearch Corporation 28 知識リサイクルのための道具立て 知識創造 リサイクル 個別 プロジェクト・ イテレーション 企業全体 で共有 シナジー研究所 取り組み 要求 AIS/PM版 AIS/RE版 ツール+ コンサルティング 設計開発 運用保守 可視化 RE
  • 29.
    AIS レポート・ドキュメンテーション AISの拡張予定とサービス形態 Copyright 2010-2013 SynergyResearch Corporation 29 AISコア言語解析機能 ABAP 対応モジュール Java 対応モジュール COBOL 対応モジュール 特定ユーザー向拡張 特定ユーザー向拡張特定ユーザー向拡張 順次拡張予定 AISサービス形態 レポートデリバリ 製品拡張 セッション 特定ユーザー向け システムインテグレーション 特定ユーザー向け 拡張支援セッション PM系機能 Project Management RE系機能 Reverse Engineering
  • 30.
    PM版 ソースコードを解析して, プロジェクト管理に役立つマクロ的情報を提供 PM版とRE版 Copyright 2010-2013 SynergyResearch Corporation 30 RE版 ソースコードを解析して 改修設計、無影響テスト、QA活動効率化に役立つ ミクロ的情報を提供 S.要素名 S.絶対レベル S.相対レベル S.テキスト S.参照先 AAAAAAAAAAAAAA (N/A) 0 FORM AAAAAAAAAAAAAA USING ********* AAAAAAAAAAAAAA (N/A) 1 PERFORM AAAAAAAAAAAAAA USING ********* BBBBBBBBBBBB (N/A) 2 FORM BBBBBBBBBBBB BBBBBBBBBBBB (N/A) 3 PERFORM BBBBBBBBBBBB CCCCCCCCCCCCCC (N/A) 4 FORM CCCCCCCCCCCCCC CCCCCCCCCCCCCC (N/A) 5 PERFORM CCCCCCCCCCCCCC (NA)(VN2) (N/A) 6 WHEN ******** (NA)(VN2) (N/A) 7 CASE ******** DDDDDDDDDDDDDDD (N/A) 8 FORM DDDDDDDDDDDDDDD CHANGING ********* DDDDDDDDDDDDDDD (N/A) 9 PERFORM DDDDDDDDDDDDDDD CHANGING ********* DDDDDDDDDDDDDDD (N/A) 10 MODULE DDDDDDDDDDDDDDD INPUT DDDDDDDDDDDDDDD (N/A) 11 MODULE DDDDDDDDDDDDDDD (NA)(VN2) (N/A) 12 PROCESS AFTER INPUT (NA)(VN2) (N/A) 13 (SCREEN) GGG (N/A) 14 CALL SCREEN ---- (NA)(VN2) (N/A) 15 WHEN ******** (NA)(VN2) (N/A) 16 CASE ******** EEEEEEEEEEEEEEEEE (N/A) 17 FORM EEEEEEEEEEEEEEEEE CHANGING ********* EEEEEEEEEEEEEEEEE (N/A) 18 PERFORM EEEEEEEEEEEEEEEEE CHANGING ********* EEEEEEEEEEEEEEEEE (N/A) 19 MODULE EEEEEEEEEEEEEEEEE INPUT EEEEEEEEEEEEEEEEE (N/A) 20 MODULE EEEEEEEEEEEEEEEEE (NA)(VN2) (N/A) 21 PROCESS AFTER INPUT (NA)(VN2) (N/A) 22 (SCREEN) 100 (N/A) 23 CALL SCREEN ---- FFFFFFFFFFFFFF (N/A) 24 FUNCTION FFFFFFFFFFFFFF GGG (N/A) 14 CALL SCREEN ---- (NA)(VN2) (N/A) 15 (THEN) (NA)(VN2) (N/A) 16 IF ******************* (NA)(VN2) (N/A) 17 WHEN ******** (NA)(VN2) (N/A) 18 CASE ******** * GGG (N/A) 14 CALL SCREEN ---- • ABAPソースコードを解析しサブルーチンの呼び出し元を部品表形式で表示した例 • 改修したサブルーチンをピンポイントでテストする方策を検討することができる • COBOL、JAVA版を計画中 最大の特徴は、言語を問わないこと。 各言語対応版を開発する必要がある。 構造が理解しやすい 正規化ステートメント コメントは正規化ステートメント の真横に配置して、分岐条件 などがわかりやすく表示 つまり、Java、Jsp、SQL、XML、HTML、CSSなどが混在しても、 プロジェクト活動を一括して見える化できる
  • 31.