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

1,480 views

Published on

オープンコミュニティ「要求開発アライアンス」(http://www.openthology.org)の2013年4月定例会発表資料です。 Open Community "Requirement Development Alliance" 2013/4 regular meeting of the presentation materials.

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,480
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
14
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

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

  1. 1. 2013年4月30日株式会社 シナジー研究所依田 智夫要求開発アライアンス4月定例会ソースコードは要求にとって地球の裏側なのか
  2. 2. Copyright 2010-2013 Synergy Research Corporation 2企業のIT活用。歴史はすでに半世紀。そのソフトウェア資産は膨大である。世界には1万のメインフレーム3万8千のレガシーシステム2,000億行COBOLが稼働中毎年50億行が増加(Wikipediaで”COBOL” を検索)
  3. 3. Copyright 2010-2013 Synergy Research Corporation 3IT黎明期は遠い過去であり、企業の情報システムは一定の質量とスピードで走っている電車のようなもの電車はすでに発車しているのであり、急発進、急ブレーキ、急カーブ、飛び乗り、飛び降り、は事故につながる情報システムにおいては、必ず高コスト・低品質を招くビッグバンには覚悟が必要
  4. 4. Copyright 2010-2013 Synergy Research Corporation 4質量とスピードの実体はO: Organization 組織P: Process プロセスR: Resource 資源これらが受け入れられない方向転換、あるいはそこからの不連続性は低品質・高コストを招く
  5. 5. Copyright 2010-2013 Synergy Research Corporation 5RFP(提案依頼書)と提案書自由に語られた要求と、その要求を100%充足する提案は、望ましいものと言えるか?どうすれば、スーパーマーケットで買い物をするようなシステム開発が出来るのかレジでびっくりしないでも、献立の工夫ができて家族は幸せ
  6. 6. Copyright 2010-2013 Synergy Research Corporation 6本日のテーマ低品質・高コストを避けながらも、現状に甘んじることなく、攻められる開発とは
  7. 7. Copyright 2010-2013 Synergy Research Corporation 7一つの提案ソースコードの声を聴く
  8. 8. Copyright 2010-2013 Synergy Research Corporation 8プロセスを考える
  9. 9. Copyright 2010-2013 Synergy Research Corporation 9ウォーターフォール、「開発者は技術的に完璧であり、何らの試行錯誤も学びも不要」要求設計開発運用保守
  10. 10. Copyright 2010-2013 Synergy Research Corporation 10スパイラル、アジャイル、やってみなければわからないので・・要求設計開発運用保守要求設計開発運用保守要求設計開発運用保守要求設計開発運用保守要求、製品、顧客、市場 ♪アーキテクチャー?????????
  11. 11. Copyright 2010-2013 Synergy Research Corporation 11第3の道、すべての学びを回収する!要求設計開発運用保守学びの回収要求設計開発運用保守学びの回収
  12. 12. Copyright 2010-2013 Synergy Research Corporation 12では、何から学び、次に何を残すのかソースコードプロセス アーキテクチャーREドキュメント
  13. 13. Copyright 2010-2013 Synergy Research Corporation 13なぜソースコードなのか?過去、および現在の開発プロセスを、分析し、問題を整理し、その再構築を行う手法がないことは問題であるテスト段階以降のシステムの場合、ソースコードの改変行為に着目することで、正確で緻密なプロセスの問題分析が可能になる指示書、報告書ベースのプロセス分析は、実態との相当の乖離を含む場合があり、有効ではないソースコードの改変(What,Where)と管理台帳(Why,How Much)との突き合わせは、分析手法として有用
  14. 14. AIS/PM版レポートの標準様式Copyright 2010-2013 Synergy Research Corporation 14すべての成果物(プログラム、設計書)が、ビジネスカテゴリーに従って分類されます。4レベルあるカテゴリーの任意のレベルでレポートが出力できます。提供いただいた11月と12月、2期分のリリースに基づきレポートを作成JSP(Java Server Pages)とJavaという二つのプログラミング言語で開発されたプログラムのステップ数がカテゴリーごとに報告されています。どのビジネスカテゴリーのステップ数が上位5位、下位5位に属するか、色分けして表示されています。その他に、複雑性や機能量の指標値を合計して表示することができます。どの機能カテゴリーでステップ数がどれだけ増加しているか(出来高)、またソースコードがどれだけ改修されているか(移動距離)が表示されています。%表示は、11月と12月の出来高と移動距離の11月ステップ数に対する比率です。その他に、複雑性や機能量の指標値の変化を表示することができます。最新版の出力形式とは異なっています。
  15. 15. AIS/PM版の代表的メトリクスと活用方法の例Copyright 2010-2013 Synergy Research Corporation 15ID 項目名 説明カテゴリー指標プログラム指標(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/ActionDO CHECKPLAN ACTION
  16. 16. 仕様追加・変更、不具合修正等、案件分類と対策の関係案件分類新規案件定義漏れ案件解釈齟齬不具合修正アーキテクチャー改善が有効プロセス改善が有効案件ドライバー改善対象工程法改正コンプライアンス組織変更業務改革業務効率化顧客要求対応非機能要件要件定義設計テスト作業標準スキル標準16Copyright 2010-2013 Synergy Research Corporation
  17. 17. 案件ごとの作業量とサービス価値(A)新規35%(B)(C)(D)不具合修正35%(A)新規68%(B)(C)(D)非要件対応10%全案件サービス価値潜在的サービス価値潜在的サービス価値顧客が全く評価しない作業量件数ベース移動距離ベース作業量の分類収益性向上策撲滅バリューストリーム拡大転換 転換(B)要件未定義(C)要件解釈齟齬17Copyright 2010-2013 Synergy Research Corporationプロセス改善が有効合計30%アーキテクチャー改善が有効プロセス改善が有効アーキテクチャー改善が有効
  18. 18. SQLJSPプログラム調査Copyright 2010-2013 Synergy Research Corporation 18機能カテゴリー評価 評価サマリー規模 成長速度 改修規模 改修頻度 機能 複雑性HOMEタスク管理連絡事項お勧め商品ヘルプメール管理承認進捗確認未分類発注管理商品別仕入推移仕入先別仕入推移Java評価に用いる指標の候補規模: ステップ数、有効ステップ数、それらの順位成長速度: ステップ数等の期間あたり伸び率、順位改修規模: 移動距離による特定期間あたり改修規模改修頻度:: 移動距離による一定期間あたり改修規模機能: 画面、DBアクセス等の機能量複雑性: IF、CASE文等の計測による複雑度合い
  19. 19. ドキュメンテーション調査(評価の視点)Copyright 2010-2013 Synergy Research Corporation 19ドキュメント全体の構成がわかりやすいこと個別の改修案件に依存しない記述であること記述方法に一貫性があることシステムの各要素について、一覧性・網羅性があること記載されている設計要素が識別可能であること相互参照性があること(設計要素間の相互依存性がわかること)ここを見れば良いんだな!改修1改修2改修3改修4ABCDD1A1A2D2機能一覧1)・・・・・・2)・・・・・・3)・・・・・・4)・・・・・・5)・・・・・・6)・・・・・・----------------合計150画面処理XYZ???
  20. 20. Copyright 2010-2013 Synergy Research Corporation 20ソースコードと、アーキテクチャーアーキテクチャー=制約正しい制約が高い品質と生産性をもたらす顧客満足、高品質、低コストを同時に実現するアーキテクチャーが真に価値あるアーキテクチャー(制約)である正しい制約は常に見直され、次サイクルに向けて拡張・強化されるべき
  21. 21. Copyright 2010-2013 Synergy Research Corporation 21アーキテクチャーの視点大粒度大規模システム境界パッケージソフトウェア中粒度ビジネス機能と利用技術の関係有用性使用されているか高品質・低コストへの貢献陳腐化の実態小粒度クラス・パッケージレベルの依存性
  22. 22. JCL解析による大規模人事システム全体の関係Copyright 2010-2013 Synergy Research Corporation22給与 就業 人事DB 業務支援給与 ●就業 ○人事DB業務支援4つの固まりを視たい
  23. 23. 移動距離に着目した中粒度のアーキテクチャー評価Copyright 2010-2013 Synergy Research Corporation23fp_RecordType updatedfp_To_Date_Released (すべて)列ラベルJAVA JSP行ラベル 期首ファイル数 期末ファイル数 期首行数 期末行数 出来高 移動距離 ランダム性 漢字非互換 期首ファイル数 期末ファイル数 期首行数 期末行数 出来高 移動距離 ランダム性 漢字非互換(NA) 38 38 4,372 4,370 -2 30 0.00JAVA埋込SQL 16 16 4,822 4,856 34 80 0.00JBOSS 46 46 4,862 4,889 27 111 0.00WebCM 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. 24. プロジェクト型不具合改善活動Copyright 2010-2013 Synergy Research Corporation24リバースエンジニアリング不具合箇所の分析不具合箇所の網羅的洗い出し改修時の影響分析無影響保証手段の検討と対策改修作業無影響保証RE機能の活用ポイントRE機能の活用ポイントRE機能の活用ポイント
  25. 25. Copyright 2010-2013 Synergy Research Corporation 25小粒度コード分析ツール特定言語に特化しているので、中粒度、大粒度の分析に不向きUMLリバースエンジニアリングツール骨太の分析では挫折も
  26. 26. Copyright 2010-2013 Synergy Research Corporation 26ソースコードは要求にとって地球の裏側なのか知識リサイクル型ソフトウェアエンジニアリング要求設計開発運用保守可視化REソースコードReverseRestructureReengineer
  27. 27. 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変革の絶えざる挑戦より左端に留まったまま縦に移動しても意味がない。他社と比較して格別に優位となる強みがなければ右端をめざさなければならない
  28. 28. Copyright 2010-2013 Synergy Research Corporation 28知識リサイクルのための道具立て知識創造リサイクル個別プロジェクト・イテレーション企業全体で共有シナジー研究所取り組み要求AIS/PM版AIS/RE版ツール+コンサルティング設計開発運用保守可視化RE
  29. 29. AISレポート・ドキュメンテーションAISの拡張予定とサービス形態Copyright 2010-2013 Synergy Research Corporation29AISコア言語解析機能ABAP対応モジュールJava対応モジュールCOBOL対応モジュール特定ユーザー向拡張 特定ユーザー向拡張特定ユーザー向拡張順次拡張予定AISサービス形態レポートデリバリ製品拡張セッション特定ユーザー向けシステムインテグレーション特定ユーザー向け拡張支援セッションPM系機能Project ManagementRE系機能Reverse Engineering
  30. 30. PM版ソースコードを解析して,プロジェクト管理に役立つマクロ的情報を提供PM版とRE版Copyright 2010-2013 Synergy Research Corporation30RE版ソースコードを解析して改修設計、無影響テスト、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 BBBBBBBBBBBBBBBBBBBBBBBB (N/A) 3 PERFORM BBBBBBBBBBBBCCCCCCCCCCCCCC (N/A) 4 FORM CCCCCCCCCCCCCCCCCCCCCCCCCCCC (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 INPUTDDDDDDDDDDDDDDD (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 INPUTEEEEEEEEEEEEEEEEE (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 FFFFFFFFFFFFFFGGG (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. 31. 株式会社 シナジー研究所依田 智夫yoda@synergy-res.co.jpCopyright 2010-2013 Synergy Research Corporation31

×