「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Open棟梁とは]] *目次 [#n0ac398a] #contents *概要 [#ja5c4920] Open棟梁の適用効果について説明します。 ソフトウェア・ライフサイクル上で3割程度の効率向上が可能と考えています。 *定性的効果 [#lb3141dc] 「[[KPIとKGI]]」を参考にして下さい。 *定量的効果(削減工数) [#y72d8e92] 少なく見積もっても、 >40.0人月のアプリケーション開発工数のうちの12.5%前後の工数削減が可能 と考えます。 これにより、QCD(quality, cost, delivery)が向上します。 以下、内訳についての説明です。 **工程別工数比率 [#ye1bdaa0] 設計 : PG : テスト = 3 : 4 : 3 **設計工程 [#b0a60113] 実績ある設計情報を再利用できます。 -「[[プロジェクト・テンプレート]]」に蓄積されたアーキテクチャごとのデザイン・パターン -提供される各種ドキュメント、 --[[利用ガイド>https://github.com/OpenTouryoProject/OpenTouryoDocuments/tree/master/documents/1_User_Guide]] --[[チュートリアル>https://github.com/OpenTouryoProject/OpenTouryoDocuments/tree/master/documents/2_Tutorial]] --[[設計のポイント]] また、 -当サイト -「[[マイクロソフト系技術情報 Wiki>https://techinfoofmicrosofttech.osscons.jp/]]」 のサポート技術情報を再利用できます。 ***工程別工数比率 [#k886574f] 全工程の30%程度 ***削減工数 [#k842f698] 40.0人月のアプリケーション開発工数のうち、最小で2.0人月の工数削減が可能~ (全体工数と、使用する機能によっては10人月以上の削減も可能)。 **プログラミング工程 [#yd651547] -[[ベースクラス1]]・[[2>ベースクラス2]]による標準化/共通化、[[共通部品群>機能一覧#p47bdfe6]]の利用により、1リクエストで動作するコードの内、40%程度を共通化が可能。~ ※40%という数字は共通化などの工数削減施策により、削減された"ステップ数"なので、そのまま削減された"工数"とはなりませんのでご注意下さい。 -また、[[D層(Dao)自動生成機能>D層自動生成ツール]]を使用することで、テーブル単位のCRUD部品が生成できる。~ これにより、更新系処理(テーブル単位)のデータアクセスは全て部品化できる(大量データの追加・更新・削除は別途)。 -これに加えて、[[テーブル・メンテナンス、データ・メンテナンス画面の自動生成機能>P層自動生成ツール]]を使用することで、更なるQ/C/Dの向上が期待できる。 ***工程別工数比率 [#e0010de1] 全工程の40%程度~ ※プログラミング工程は、単体テスト工程を含む。 ***削減工数 [#t5491f71] -最小で10%の工数削減が可能。 -大規模案件になればなるほど大きくなるプログラミング工程の工数を削減できる。 **テスト工程 [#c928f512] デバッグログ、アクセストレースログ、SQLトレースログなどを利用しテスト工程の効率向上が可能。 ***工程別工数比率 [#te6e1e79] 全工程の30%程度 ***削減工数 [#b72aaf57] -最小で10%の工数削減が可能。 -大規模案件になればなるほど大きくなるテスト工程の工数を削減できる。 *効果の計算 [#vd53a0a3] **新規開発時 [#d987aaf9] 40.0人月のアプリケーション開発工数に対して、5.0人月 (≒12.5%前後)程度の工数削減が可能。 -設計工数(全体工数の3割 = 12.0人月)のうちの2.0人月程度の工数を削減可能~ アーキテクチャの決定、プロジェクト・テンプレートの開発、共通部品の開発に関わる工数。 -開発・テスト工数(全体の7割 = 28.0人月)の10.0%程度の工数を削減可能 --プロジェクト・テンプレートに準拠した開発、制御の反転による共通化。 --共通部品の再利用、データアクセスの自動生成、開発支援ツールによる生産性向上。 --10.0%は、開発・テスト工程のステップ生産性で、2.1 KS/人月 → 2.3 KS/人月程度のインパクト ----------------------------------------------------------- e.g.:40人月の案件を例に取ると、従来と比べ5人月前後の工数削減が可能。 ----------------------------------------------------------- 2.0人月 + ( 40.0人月 * ( 0.4 + 0.3 ) * 0.1 ) ≒ 5.0人月 (≒12.5%前後)の工数削減。 # 電卓への入力式: # [削減工数]人月 = 2.0人月 + ([適用前工数]人月 * ( 0.4 + 0.3 ) * 0.1) ----------------------------------------------------------- **再構築時 [#a82d038c] 既存パッケージやシステムの再構築に利用したケースが何個かアリ、~ 既存の設計の再利用と、ビジネス・ロジックの流用ができるので、~ 生産性の実績値は新規開発の2倍以上になることを確認しています。 工程別工数比率 ( 設計 : 開発 : テスト = 3 : 4 : 3 ) から、 -設計の再利用のため、設計工数(全体工数の3割 = 12.0人月)。 -ビジネス・ロジックの流用のため、開発工数(全体工数の4割 = 16.0人月)の一部。 --開発工数4割の内訳として、プログラミング : テスト = 3 : 1 程度になる。 --テスト自体は通常通り実施、プログラミング工数を1/2に削減できたとする。 --すると、この場合、開発工数は、全体工数の1.5割 = 6.0人月の工数を削減できる。 -設計・ビジネス・ロジック流用のため、テスト工数(全体工数の3割 = 12.0人月)の半分(6.0人月)。 を削減した値に近似するため、実績値が、新規開発の2倍以上になると考えています。 ----------------------------------------------------------- e.g.:40人月の案件を例に取ると、従来と比べ5人月前後の工数削減が可能。 ----------------------------------------------------------- (40.0人月*0.3)+(40.0人月*(0.3/2))+((40.0人月*0.3)/2) ≒ 24.0人月 (≒60.0%前後)の工数削減。 # 電卓への入力式: # [削減工数]人月 = [適用前工数]人月 * ( 0.3 + (0.3/2) + (0.3/2) )) ----------------------------------------------------------- ***移行手順 [#qd378235] 手順としては、 Open棟梁のテンプレートがあるので、 -それを案件ごとカスタマイズし、 -そこに既存のビジネス・ロジックを移植していく というカタチになります。 ***ストレート・コンバージョンとの比較 [#mfe60d73] ストレート・コンバージョン(.NETバージョンアップ)の場合と比べると、~ 再構築はコードの移植・修正と、そのテスト工数が余分にかかりますが、~ 新規開発時と比べ、2倍以上の生産性が出るので、再構築が必要なケースでは適用する価値があります。