「[[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] **ソフトウェア・ライフサイクル上での「Q/C/D/F」向上 [#x0fb2b88] 初期開発だけでなく、その後のソフトウェア・ライフサイクル上でも役に立ちます。 Open棟梁を導入することで、各種、「Q/C/D/F」が向上します。 ***品質/信頼性 [#nab41b25] Q : Quality(品質/信頼性) ***生産性 [#h8b74447] 生産性の向上による -C : Cost(原価低減) -D : Delivery(納期短縮) ***柔軟性 [#b0c26adb] 柔軟性の向上による -F : Flexibility --様々なアーキテクチャへの対応 --最新技術のサポート --迅速な障害対応 **標準化の効果 [#fc902b6c] ***開発手順の一本化 [#dd8047c0] -開発の標準化による生産性・品質・信頼性の向上と、脆弱性の排除。 --標準化や自動生成により、バラつきの無い手順で開発可能。 ---これにより、一括外注、オフショアなどの開発が容易になる。 --カスタマイズ可能レイヤへの共通機能を追加で実装することも可能。 ---カスタマイズ & フィッティングで異なる要件の案件を跨いだ横展開も容易。 ---内部統制的なログ機能、国際化対応(多言語化)機能などを追加実装可能。 -各種トレースログ出力を利用できる~ (開発時だけでなく、保守・運用時も利用可能)。 --開発時のデバッグのし易さ、デバッグ手順の確立。 --保守・運用時のトラブルシュートのし易さ、~ トラブルシュート手順の確立。 ***オフショア開発 [#oc39d529] 標準化、トラブルシュートが容易になるため、~ オフショア開発での管理を容易にして~ プロジェクトの成功確率を飛躍的に高めます。 これにより、開発工数を大幅に軽減できます。 **再利用 [#yfb38254] ***ノウハウ [#q8faa64c] -ナレッジの蓄積が可能です。~ 開発ナレッジを「[[プロジェクト・テンプレート]]」に蓄積可能です。 ***設計パターン [#h872ecd0] -「[[プロジェクト・テンプレート]]」の~ アーキテクチャごとのデザイン・パターンを再利用できます。 -当サイトと「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」のサポート技術情報を再利用できます。 ***ライブラリ [#q6908549] 「[[各種機能>機能一覧]]」のライブラリを再利用できます。 *定量的効果(削減工数) [#y72d8e92] 少なく見積もっても、~ ソフトウェア開発工数のうちの~ 12.5%前後の工数削減が可能と考えます。 -標準化~ 大規模案件になればなるほど大きくなる標準化等の設計工数を削減できる。 -再利用~ 設計と実装の再利用による工数削減が可能 --ノウハウ --ライブラリ --設計パターン 以下、内訳についての説明です。 **工程別工数比率 [#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] 最小で2人月の工数削減が可能(使用する機能によっては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] システム開発全体工数に対しての削減効果は -設計工数(全体の3割):2人月削減可能、 -開発・テスト工数(全体の7割):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倍以上になります。 **事例情報 [#o48f4aed] 既存パッケージやシステムの再構築に利用したケースが何個かアリ、~ 既存の設計の再利用と、ビジネスロジックの流用ができるので、~ 生産性の実績値は新規開発の2倍以上になることを確認しています。 **手順 [#qd378235] 手順としては、 Open棟梁のテンプレートがあるので、 -それを案件ごとカスタマイズし、 -そこに既存のビジネス・ロジックを移植していく というカタチになります。 **生産性 [#s72ba214] 工程別工数比率 ( 設計 : 開発 : テスト = 3 : 4 : 3 ) から~ 設計の再利用と、ビジネスロジックの流用のため、設計・開発工数と、~ 設計・コード流用のためのテスト工数を削減した値に近似する。 **ストレートコンバージョンとの比較 [#mfe60d73] ストレートコンバージョン(.NETバージョンアップ)の場合と比べると、~ 再構築はコードの移植・修正と、そのテスト工数が余分にかかりますが、~ 新規開発時と比べ、2倍以上の生産性が出るので、再構築が必要なケースでは適用する価値があります。