Title エンタープライズ システム 開 発 における 品 質 コスト 納 期 の 改 善 に 関 する 研 究 Author(s) 中 村, 伸 裕 Citation Issue Date Text Version ETD URL http://hdl.handle.net/11094/34577 DOI Rights Osaka University
エンタープライズ システム 開 発 における 品 質 コスト 納 期 の 改 善 に 関 する 研 究 提 出 先 大 阪 大 学 大 学 院 情 報 科 学 研 究 科 提 出 年 月 2014 年 1 月 中 村 伸 裕
内 容 梗 概 近 年, 多 くの 企 業 で 社 内 業 務 プロセスがシステム 化 され, 業 務 効 率 化 や 業 務 品 質 確 保 の 基 盤 として 必 要 不 可 欠 なものになっている.このようなエンタープライズ システムの 開 発 におい てコスト 削 減, 品 質 向 上, 納 期 改 善 は 継 続 的 に 取 り 組 むべきテーマである. 現 在 の 日 本 の 状 況 は 品 質 が 向 上 しているものの 開 発 コストは 増 加 し, 納 期 も 長 期 化 の 傾 向 にある.また, 経 営 的 な 視 点 ではシステム 構 築 やシステムの 安 定 稼 働 については 比 較 的 高 い 評 価 であるもののビジ ネスモデルやビジネスプロセスの 改 革 に 関 してはほとんどが 満 足 しておらず, 評 価 が 低 い. 今 後, 利 用 部 門 の 潜 在 的 なニーズを 引 き 出 してシステム 提 案 できる 手 法 が 必 要 であると 考 えられ る. 今 後 のシステム 開 発 においては,(1) システム 品 質 を 維 持 したまま 開 発 コストを 削 減 でき る 開 発 手 法,(2) システム 利 用 部 門 の 潜 在 的 なニーズに 合 致 した 付 加 価 値 の 高 いシステムが 構 築 できる 開 発 手 法 が 求 められている. 本 研 究 では(1)の 課 題 を 解 決 するためにソフトウェアプロダクトラインの 適 用 によりソフト ウェア 資 産 を 再 利 用 してコスト 削 減 できるかを 評 価 すると 共 に 統 計 的 品 質 管 理 の 適 用 により 検 証 コストの 増 加 を 抑 制 しながら 品 質 を 制 御 できるか 評 価 した. 更 に(2)の 課 題 を 解 決 するた めにアジャイル 手 法 の 評 価 を 行 った. 先 ず,システム 開 発 コスト 削 減 の 手 段 としてソフトウェアプロダクトラインをエンタープラ イズ システムに 適 用 した.ソフトウェアプロダクトラインは, 製 品 系 列 を 持 つソフトウェア に 対 してソフトウェアの 再 利 用 が 効 率 的 に 実 現 できるように 共 通 部 分 を 開 発 するドメイン 開 発 チームと 個 々の 製 品 を 開 発 するアプリケーション 開 発 チームが 協 力 して 開 発 する 手 法 であ り, 組 込 みソフトウェア 等, 類 似 の 仕 様 で 多 数 のソフトウェアを 生 産 しなければならない 場 合 に 有 効 な 手 法 である. 組 込 みソフトウェア 開 発 では 適 用 が 進 んでいるものの,エンタープライ ズ システムでは 同 じ 生 産 管 理 システムであっても 工 場 によって 製 造 方 法 や 製 品, 管 理 項 目 ( 品 番, 導 電 率, 配 合 比 率 等 )が 異 なるため 再 利 用 可 能 なソフトウェア 資 産 の 構 築 が 難 しく, 適 用 が 進 んでいない.そこで, 製 造 方 法 といった 業 務 プロセスの 共 通 点 を 抽 出 するのではなく, 画 面 出 力 等 の 内 部 処 理 の 共 通 点 をソフトウェア 資 産 にすることによりソフトウェアプロダクト ラインをエンタープライズ システムに 適 用 した. 更 に,どの 程 度 作 成 するソースコード 量 の 削 減 ができ,どの 程 度 コスト 削 減 できるか 評 価 した. 具 体 的 には 企 業 内 の 販 売 管 理, 生 産 管 理, 資 材 管 理, 経 理, 人 事 といった 業 務 全 体 を1つの 製 品 系 列 と 見 なし, 主 に 画 面 出 力, 画 面 遷 移, データベースの 入 出 力 部 分 を 再 利 用 部 品 として 構 築 し,13,174 機 能 をソフトウェア 部 品 の 再 利 用 で 開 発 した.その 結 果, 開 発 するソースコード 量 は 約 82% 削 減 でき, 開 発 生 産 性 は 業 界 の 標 準 値 に 比 べて 3~5 倍 になった. 次 に, 品 質 管 理 は 管 理 図 を 使 った 統 計 的 品 質 管 理 手 法 を 適 用 した. 統 計 的 品 質 管 理 は 戦 後, デミング 博 士 が 日 本 の 製 造 業 に 広 めた 手 法 であり, 工 程 のバラツキを 管 理 図 等 を 使 って 安 定 状 態 にあるか 監 視 する 手 法 である. 生 産 設 備 を 使 って 製 造 する 工 場 では 工 程 が 安 定 しやすいがソ フトウェア 開 発 は 人 手 で 行 う 工 程 が 多 いため 工 程 のバラツキが 大 きく 統 計 的 品 質 管 理 の 適 用 が 難 しい.しかし,ソフトウェアのプロセス 改 善 を 進 め, 開 発 プロセスをうまく 定 義 すること でバラツキを 減 らすことができる. 更 にソフトウェアプロダクトラインで 開 発 したソフトウェ ア 資 産 の 再 利 用 により 開 発 プロセスの 個 人 差 が 少 なくなり 統 計 的 品 質 管 理 の 適 用 が 可 能 にな った. 開 発 コストの 増 加 を 抑 制 しながら 品 質 を 向 上 させるためには, 欠 陥 の 検 出 を 強 化 するの ではなく, 欠 陥 を 作 り 込 む 設 計 や 製 造 工 程 を 管 理 する 必 要 がある.しかし, 作 り 込 まれた 欠 陥 は 直 接 測 定 することができず,レビューやテストで 検 出 された 欠 陥 から 計 算 する 必 要 がある. i
例 えば,ある 機 能 の 外 部 仕 様 書 に 含 まれる 欠 陥 は 外 部 仕 様 書 のピアレビューで 多 くが 検 出 され るがプログラム 仕 様 書 のヒアレビュー,コーディングの 最 中,コードインスペクション, 単 体 テスト, 統 合 テストといったすべての 下 流 工 程 で 検 出 される 機 会 がある. 作 込 欠 陥 数 を 管 理 す る 為 には, 各 工 程 で 検 出 された 欠 陥 を 原 因 工 程 別 に 分 類 し, 集 計 する 必 要 がある.また,ある ソースコードの 欠 陥 は,コードインスペクションで 多 く 検 出 すれば 単 体 テストで 検 出 できる 欠 陥 数 は 減 少 する.このように 欠 陥 の 検 出 プロセスはそれぞれ 独 立 して 管 理 するだけでは 不 十 分 で 複 数 の 欠 陥 検 出 工 程 の 状 況 を 統 合 して 監 視 する 必 要 がある.これらの 機 能 をツール 化 し, 開 発 現 場 で 評 価 した 結 果, 管 理 図 等 の 手 法 を 活 用 することで 再 レビュー, 再 テストの 必 要 性 が 適 切 に 判 断 できるようになり,コスト 増 加 を 抑 制 しながら 品 質 の 制 御 ができることがわかった. 最 後 に,システムの 付 加 価 値 向 上 のために,アジャイル 手 法 の 中 で 最 もよく 利 用 されている Scrum の 試 行 を 行 った.アジャイルソフトウェアの 12 の 原 則 に 顧 客 満 足 を 最 優 先 し, 価 値 のあるソフトウェアを 早 く 継 続 的 に 提 供 します という 項 目 が 存 在 するものの 価 値 あるソフ トウェアを 提 供 できる 仕 組 みは 明 確 に 示 されていない. 試 行 の 結 果, 複 数 の 開 発 者 が1つの 機 能 を 設 計 することで 複 数 の 設 計 案 が 提 案 され, 設 計 案 の 選 択 の 際, 利 用 者 の 潜 在 的 なニーズを 引 き 出 し 評 価 していることがわかった.またプロセス 改 善 の 評 価 モデル(CMMI)で 評 価 すると 要 件 管 理, 技 術 解, 妥 当 性 確 認, 決 定 分 析 と 分 析,プロジェクト 管 理 等 のプロセスが 改 善 する ことがわかった.インタビューの 結 果, 開 発 者 のモチベーションが 高 いことがわかり 従 来 の 開 発 手 法 より 付 加 価 値 の 高 いシステムが 開 発 できる 状 態 であることを 確 認 した. 以 上 の 研 究 により,ソフトウェア 資 産 の 再 利 用 によりコスト 削 減 が 実 現 でき, 統 計 的 品 質 管 理 の 導 入 により 開 発 コストを 増 加 させずに 品 質 を 向 上 できることを 示 した.さらにこれらの 手 法 に Scrum を 適 用 することで 付 加 価 値 の 向 上 が 期 待 できることを 示 した. ii
関 連 発 表 論 文 Ⅰ. 学 会 論 文 誌 等 掲 載 論 文 (1) 中 村 伸 裕, 高 橋 覚, 楠 本 真 二, " 管 理 図 を 用 いた 欠 陥 管 理 システムによる 品 質 改 善 とその 効 果, " 電 子 情 報 通 信 学 会 論 文 誌 D, Vol. J96-D, No.10, pp. 2214-2225, Oct. 2013 (2) 中 村 伸 裕, 服 部 悦 子, 永 田 菜 生, 楠 本 真 二 : システム 価 値 向 上 を 目 的 とした Scrum の 試 行 評 価, SEC journal, No.34, Vol.9, No.3, pp.110-117, Sep. 2013 (3) 中 村 伸 裕, 谷 本 收, 楠 本 真 二, "ソフトウェアプロダクトラインのエンタープライズ シス テムへの 適 用 と 評 価," SEC journal, No.35, Vol.9, No.4, pp.190-197, Jan. 2014 ( 採 録 決 定 ) Ⅱ. 研 究 集 会 等 発 表 論 文 ( 査 読 付 き) (1) N. Nakamura, S. Takahashi, S. Kusumoto and K. Nakatsuka, "Approach to Introducing a Statistical Quality Control," IWSM-MENSURA 2011, pp.297-301, Nara, Japan, Nov. 2011. iii
謝 辞 本 研 究 全 般 に 関 し, 常 日 頃 より 適 切 なご 指 導 を 賜 りました 大 阪 大 学 大 学 院 情 報 科 学 研 究 科 コ ンピュータサイエンス 専 攻 楠 本 真 二 教 授 に 心 から 感 謝 申 し 上 げます. 本 論 文 を 執 筆 するに 当 たり 有 益 なご 教 示,ご 助 言 を 賜 りました 大 阪 大 学 大 学 院 情 報 科 学 研 究 科 井 上 克 郎 教 授, 増 澤 利 光 教 授 に 深 く 感 謝 致 します.また, 本 研 究 のベースとなるソフトウ ェアエンジニアリング 全 般 に 関 してご 指 導 頂 きました 岡 野 浩 三 准 教 授, 井 垣 宏 特 任 准 教 授, 肥 後 芳 樹 助 教 に 心 から 感 謝 します. また, 本 研 究 を 大 阪 大 学 大 学 院 情 報 科 学 研 究 科 で 進 める 機 会 を 与 えて 頂 いた 住 友 電 気 工 業 岩 佐 洋 司 前 部 長 ( 現 ミライト 情 報 システム 社 長 ), 奈 良 橋 三 郎 部 長, 業 務 上 の 配 慮 を 頂 いた 住 友 電 工 情 報 システム 白 井 清 志 社 長, 難 波 明 人 前 理 事, 西 川 満 取 締 役, 高 橋 和 人 部 長 に 深 く 感 謝 致 します. ソフトウェアプロダクトラインの 研 究 にあたっては 多 大 なご 協 力 とご 指 導 を 頂 きました 住 友 電 工 情 報 システム 谷 本 收 部 長 並 びに 関 係 者 のみなさんに 心 から 感 謝 申 しあげます.また, ソフトウェアプロダクトラインの 技 術 的 な 指 導 を 頂 きました 日 立 ソリューションズ 遠 藤 潔 氏, SRA 林 好 一 氏 に 心 から 感 謝 致 します. 統 計 的 品 質 管 理 の 研 究 にあたっては 管 理 図 の 適 用 評 価 にご 尽 力 頂 いた 住 友 電 工 情 報 システ ム 高 橋 覚 部 長, 住 友 電 気 工 業 中 塚 康 介 氏 をはじめとした 多 数 の 関 係 者 のみなさんに 深 く 感 謝 申 したげます.また, 管 理 図 のソフトウェアへの 適 用 に 関 してご 指 導 頂 いたソフトバレット 平 昌 寿 氏, 乘 松 プロセス 工 房 乘 松 聡 氏, 富 士 フイルムソフトウエア 小 室 睦 氏 に 心 から 感 謝 致 し ます. Scrum の 研 究 に 関 して 実 践, 評 価 にご 協 力 頂 いた 住 友 電 工 情 報 システム 服 部 悦 子 氏, 住 友 電 気 工 業 永 田 菜 生 氏 他, 開 発 チームのメンバーに 心 から 感 謝 申 しあげます. また, 本 研 究 のバックグラウンドになる 知 識 の 多 くは 日 本 情 報 システム ユーザー 協 会 (JUAS)のシステム 開 発 保 守 QCD 研 究 プロジェクトで 得 たものであり, 事 務 局 である JUAS 細 川 泰 秀 氏, 山 田 信 祐 氏, 森 未 知 氏 はじめ 参 加 メンバーの 皆 さんに 感 謝 します. 特 に 貴 重 なア ドバイスを 頂 いた 情 報 処 理 推 進 機 構 菊 島 靖 弘 氏, 新 谷 勝 利 氏,ジャスティック 太 田 忠 雄 氏, JUAS 玉 置 彰 宏 氏, 日 立 製 作 所 初 田 賢 司 氏, 東 京 証 券 取 引 所 古 川 正 伸 氏,NKSJ システム ズ 駒 井 昭 則 氏, 日 本 経 営 データ センター 奥 保 正 氏, 東 芝 インフォメーションシステムズ 北 村 秀 生 氏,アイエックスナレッジ 田 中 一 夫 氏,リクルートテクノロジーズ 森 下 哲 成 氏, 大 日 本 印 刷 佐 藤 正 人 氏,キャノンマーケティングジャパン 原 田 豊 氏,キリンビジネスシステムズ 竹 中 裕 二 氏 に 深 く 感 謝 します.また, 関 西 で 活 発 な 議 論 をさせてもらった 関 電 システムソリュ ーションズ 川 嶋 博 文 氏,ニッセイ 情 報 テクノロジー 内 藤 康 夫 氏, 中 電 シーティーアイ 諸 岡 隆 司 氏,コベルコシステムズ 小 山 氏 に 心 から 感 謝 します. 最 後 に 長 期 間 にわたる 論 文 作 成 を 支 えてもらった 家 族 に 感 謝 します. v
目 次 第 1 章 はじめに... 1 1.1. 本 研 究 の 背 景 目 的... 1 1.2. 本 研 究 の 概 要... 5 1.3. 本 論 文 の 構 成 について... 6 第 2 章 既 存 技 術... 7 2.1. ソフトウェア 再 利 用... 7 2.1.1. ソフトウェア 再 利 用 の 形 態... 7 2.1.2. ソフトウェアプロダクトラインについて... 7 2.1.3. ソフトウェアプロダクトライン 実 践 の 課 題... 9 2.2. ソフトウェア 品 質 管 理... 9 2.2.1. ソフトウェア 品 質 管 理 の 手 法... 9 2.2.2. 管 理 図 について... 10 2.2.3. 管 理 図 導 入 の 課 題... 12 2.3. アジャイルソフトウェア 開 発... 12 2.3.1. アジャイルソフトウェア 開 発 について... 12 2.3.2. Scrum について... 13 2.3.3. 課 題... 14 第 3 章 適 用 組 織 について... 15 第 4 章 ソフトウェアプロダクトライン 適 用 によるソフトウェア 再 利 用 の 試 行 と 評 価... 17 4.1. はじめに... 17 4.2. SPL の 導 入 目 的... 17 4.3. エンタープライズ システムへの SPL 適 用 の 課 題... 18 4.4. SPL 推 進 方 針... 18 4.4.1. 開 発 量 が 削 減 できるソフトウェア 資 産 の 開 発... 18 4.4.2. ソフトウェア 資 産 の 展 開... 19 4.4.3. SPL 導 入 の 組 み 込 み 系 との 共 通 課 題... 19 4.5. ドメイン 開 発 の 実 践... 19 4.5.1. ドメイン 要 求 開 発... 19 4.5.2. ドメイン 設 計... 22 4.5.3. ドメイン 実 現... 23 4.5.4. ドメイン 試 験... 26 4.6. アプリケーション 開 発 の 実 践... 27 4.6.1. トレーニング... 27 4.6.2. アプリケーション 要 求 開 発... 27 4.6.3. アプリケーション 実 現... 27 4.7. 評 価... 28 4.7.1. 構 築 したソフトウェア 資 産 の 評 価... 28 4.7.2. ソフトウェア 資 産 展 開 の 評 価... 29 4.8. 考 察... 30 4.8.1. ソフトウェア 資 産 構 築 に 関 する 考 察... 30 4.8.2. 継 続 的 なソフトウェア 資 産 の 機 能 拡 張... 30 4.9. まとめ... 31 第 5 章 管 理 図 を 利 用 した 効 率 的 な 欠 陥 管 理 手 法 の 評 価... 32 5.1. はじめに... 32 vii
5.2. 取 り 組 みの 背 景 と 方 針... 32 5.2.1. 組 織 の 状 況... 32 5.2.2. 欠 陥 管 理 システム 構 築 の 背 景... 33 5.2.3. 欠 陥 管 理 に 関 する 先 行 事 例... 33 5.2.4. 品 質 改 善 の 基 本 方 針... 34 5.2.5. 作 込 欠 陥 と 検 出 欠 陥 の 関 係... 34 5.2.6. ツールの 選 定... 35 5.3. 欠 陥 管 理 システムの 構 築... 35 5.3.1. システム 概 要... 35 5.3.2. 欠 陥 検 出 プロセスの 管 理 図... 37 5.3.3. 欠 陥 作 込 プロセスの 管 理 図... 38 5.3.4. IF 文 と 欠 陥 数 の 相 関 図... 40 5.3.5. 欠 陥 フロー 図... 41 5.4. 欠 陥 管 理 システムの 組 織 展 開... 42 5.4.1. システム 導 入 教 育... 42 5.4.2. 展 開 の 支 援 と 監 視... 42 5.4.3. プロジェクト 完 了 報 告 会 の 改 善... 42 5.5. 成 果... 42 5.5.1. 品 質 改 善 の 実 績... 42 5.5.2. 欠 陥 検 出 プロセスの 実 績... 43 5.5.3. 作 込 欠 陥 密 度 の 評 価... 45 5.5.4. 品 質 管 理 プロセスの 変 化... 45 5.6. まとめ... 48 第 6 章 SCRUM 適 用 による 付 加 価 値 の 向 上 の 試 行 と 評 価... 49 6.1. はじめに... 49 6.2. SCRUM 導 入 の 背 景 と 狙 い... 49 6.3. SCRUM 試 行 の 準 備... 50 6.4. SCRUM 試 行... 52 6.4.1. プロダクトバックログの 作 成... 52 6.4.2. スプリント 計 画 ミーティング Part.1... 52 6.4.3. スプリント 計 画 ミーティング Part.2... 52 6.4.4. スプリント( 開 発 )... 53 6.4.5. 品 質 管 理... 53 6.4.6. デイリースクラム... 53 6.4.7. スプリントレビュー... 54 6.4.8. スプリントレトロスペクティブ... 54 6.4.9. ヒアリング 調 査... 55 6.5. SCRUM の 評 価 と 考 察... 55 6.5.1. 試 行 結 果... 55 6.5.2. 価 値 の 最 大 化... 55 6.5.3. Scrum によるプロセス 改 善 効 果 の 考 察... 56 6.5.4. モチベーション... 57 6.5.5. 教 育 効 果 (1) 要 件 開 発 外 部 設 計 の 能 力... 58 6.5.6. 品 質 (リリース 時 に 含 まれる 欠 陥 )の 評 価... 59 6.6. まとめ... 59 第 7 章 むすび... 60 7.1. まとめ... 60 7.2. 今 後 の 研 究 方 針... 61 viii
図 一 覧 図 1.システム 品 質 の 経 年 変 化 [JUAS2013b]... 1 図 2.KLOC 当 たりの 開 発 コスト [JUAS2013b]... 2 図 3. 工 期 係 数 a の 推 移... 3 図 4. 本 研 究 の 目 的 と 実 現 手 段... 5 図 5.ソフトウェアプロダクトライン 概 要 [KLAUS2005]... 8 図 6. 信 頼 度 成 長 曲 線 のサンプル... 10 図 7.X 管 理 図 のサンプル... 11 図 8. 検 出 欠 陥 密 度 のu 管 理 図... 11 図 9.Scrum のイベントと 成 果 物... 14 図 10.エンタープライズ システムの 構 造... 20 図 11. 商 品 登 録 画 面 の 例... 21 図 12. 注 文 受 付 画 面 の 例... 21 図 13. 画 面 遷 移 の 共 通 化... 22 図 14.データをデータベースに 登 録 する 処 理 の 流 れ... 23 図 15. 受 注 品 目, 受 注 数 量 入 力 画 面 の HTML... 24 図 16. 画 面 部 品 の 構 成... 24 図 17. 主 な 画 面 部 品... 25 図 18.カーソル 操 作... 26 図 19. 作 成 したプログラムのライン 数 の 分 布... 28 図 20. 生 産 性 のベンチマーク 結 果 との 比 較... 29 図 21. 操 作 性 に 関 するアンケート 結 果... 29 図 22. 部 品 の 利 用 頻 度... 30 図 23. 欠 陥 管 理 システム 概 要... 37 図 24.レビュー 時 間 密 度 のランチャート... 38 図 25. 文 書 の 構 成 管 理... 39 図 26. 作 込 欠 陥 密 度 の 分 布... 40 図 27.IF 文 の 数 と 欠 陥 の 相 関 図... 41 図 28. 欠 陥 フロー 図... 41 図 29. 年 度 別 流 出 欠 陥 密 度 の 箱 ひげ 図... 43 図 30.PG 設 計 レビューの 検 出 欠 陥 密 度... 43 図 31. 単 体 テストの 検 出 欠 陥 密 度... 44 図 32.プログラム 開 発 の 作 込 欠 陥 密 度... 45 図 33. 欠 陥 フロー 図 のサンプル... 46 図 34. 品 質 制 御 なしプロジェクトの u 管 理 図... 47 図 35. 品 質 制 御 されたプロジェクトの u 管 理 図... 47 図 36.バーンダウンチャートの 例... 52 図 37. 工 数 ベースの u 管 理 図 の 例... 53 図 38.Scrum 実 践 者 へのヒアリング 結 果... 57 図 39. 今 後 の 研 究 課 題... 61 ix
表 一 覧 表 1. 国 民 生 活 に 影 響 を 与 えたシステム 障 害 の 例... 1 表 2.リリース 後 の FP 当 たりの 欠 陥 密 度... 4 表 3. 成 功 プロジェクトの 割 合 の 推 移... 4 表 4. 失 敗 プロジェクトの 納 期 未 達, 予 算 超 過 の 推 移... 4 表 5.アジャイルソフトウェアの 12 の 原 則... 13 表 6. 品 質 コスト 納 期 改 善 の 取 り 組 み... 15 表 7. 検 出 欠 陥 数 と 作 込 欠 陥 数... 35 表 8.ピアレビューの 効 率 (2012 年 )... 44 表 9. 単 体 テストの 効 率 (2012 年 )... 45 表 10. 改 善 要 望 の 件 数... 55 x
第 1 章 はじめに 1.1. 本 研 究 の 背 景 目 的 近 年, 企 業 における 事 務 処 理 の 多 くがシステム 化 されており,システムは 企 業 活 動 に 必 要 不 可 欠 なものになっている. 企 業 のIT 投 資 は 金 融 業 では 売 上 の 約 5%であり, 日 本 全 体 では 約 1.2%ある[JUAS2013a]. 売 上 高 1 兆 円 の 企 業 では 年 間 約 120 億 円 の 投 資 を 行 っている.シス テム 開 発 における 品 質 向 上,コスト 削 減, 納 期 短 縮 は 継 続 的 に 改 善 すべき 課 題 であるが,まず, 日 本 および 世 界 のシステム 開 発 の 現 状 を 確 認 する. (1) 品 質 状 況 2000 年 以 降 表 1 に 示 すような 国 民 生 活 に 影 響 を 与 えるシステム 障 害 が 発 生 している. 経 済 産 業 省 は 情 報 システムの 障 害 発 生 が 社 会 的 影 響 を 及 ぼし, 日 々 深 刻 化 している 状 況 を 受 け, 信 頼 性 を 高 めるための 指 針 として,2006 年 に 情 報 システムの 信 頼 性 向 上 に 関 するガイドライン を 策 定 し,2009 年 に 第 2 版 [KEISAN2009]を 発 行 している.この 様 な 背 景 によりソフトウェア の 品 質 が 企 業 経 営 の 問 題 と 認 識 され,コストが 増 加 しても 信 頼 性 を 優 先 するシステム 開 発 が 増 えてきた.2008 年 に 行 われた 三 菱 東 京 UFJ 銀 行 のシステム 統 合 は 総 費 用 が 3300 億 円 という 大 規 模 なものであった.この 様 な 背 景 の 中 で 各 企 業 およびベンダーの 改 善 努 力 により 品 質 は 向 上 している. 図 1 は 開 発 したシステムを 顧 客 に 納 入 した 後 に 発 見 された 不 具 合 密 度 を 示 した 物 であり, 縦 軸 は 開 発 工 数 ( 人 月 )あたり 検 出 欠 陥 数 を 示 している. 総 データ 件 数 は 571 件 である. データ 収 集 を 開 始 した 2005 年 以 降, 改 善 傾 向 にあることがわかる. 表 1. 国 民 生 活 に 影 響 を 与 えたシステム 障 害 の 例 発 生 年 システム 障 害 内 容 2002 年 第 一 勧 業, 富 士, 日 本 興 業 の3 銀 行 のシステムをみずほ 銀 行 として 一 本 化 するシステ ム 統 合 で ATM の 障 害 や 公 共 料 金 の 自 動 引 き 落 としが 遅 延 2005 年 みずほ 証 券 が 東 京 証 券 取 引 所 に 対 して 行 った 誤 発 注 の 取 り 消 しがソフトウェアの 不 具 合 により 実 施 できず 約 400 億 円 の 被 害 2006 年 JR 東 日 本 で Suica の 利 用 者 が 改 札 を 通 れなくなる 2007 年 全 日 空 国 内 予 約 システムの 不 具 合 により 130 便 が 欠 航 し,4 万 人 以 上 の 利 用 者 に 影 響 を 与 えた 2007 年 東 京 周 辺 の JR や 私 鉄 など 16 社 合 わせて 662 の 駅 で 自 動 改 札 機 が 作 動 しない. 自 動 改 札 のゲートを 開 放 して 対 応. 欠 陥 率 ( 欠 陥 数 / 人 月 ) 1.2 1 0.8 0.6 0.4 0.2 0 2005 2006 2007 2008 2009 2010 2011 2012 図 1.システム 品 質 の 経 年 変 化 [JUAS2013b] 平 均 値 中 央 値 1
(2) 開 発 コストの 状 況 KLOC 当 たりの 開 発 コストの 平 均 値 を 図 2 に 示 す. 開 発 コストは 増 加 傾 向 にあることがわか る. 品 質 が 改 善 傾 向 にあることから,システムの 欠 陥 を 減 らす 為 にテスト 項 目 を 増 やす 等 の 対 策 を 実 施 した 結 果, 開 発 コストが 増 加 しているものと 考 えられる.これらの 状 況 から 品 質 を 維 持 しながらコスト 削 減 を 実 現 できる 手 法 の 確 立 を1つの 課 題 とした. 開 発 コスト( 万 円 / KLOC) 100 90 80 70 60 50 40 30 20 10 0 2007 2008 2009 2010 2011 2012 図 2.KLOC 当 たりの 開 発 コスト [JUAS2013b] (3) システム 開 発 工 期 ( 納 期 )の 状 況 システムの 開 発 工 期 は 開 発 工 数 と 深 い 関 係 にあり COCOMO(Constructive Cost Model)[BOEHM1981] 法 では 式 1 で 示 される. b 全 体 工 期 = a 全 体 工 数 式 1 文 献 [JUAS2013b]では b=3 で 固 定 し,a の 値 の 経 年 変 化 を 測 定 している.その 値 を 図 3 に 示 す. 係 数 a が 増 加 していることから 工 期 が 長 期 化 していることがわかる.ただし, 納 期 はビジ ネス 上 の 要 件 ( 法 律 の 改 定, 企 業 の 合 併, 新 工 場 の 建 設 等 )や 企 業 内 の 優 先 順 位, 開 発 時 期 に よる 投 入 可 能 な 開 発 者 人 数 のばらつき 等 により 大 きく 変 動 するため, 開 発 技 術 だけで 解 決 でき る 問 題 ではない. 係 数 a の 改 善 は 本 研 究 の 課 題 とはせず, 単 純 に 工 数 削 減 による 納 期 短 縮 を 目 指 すことにした. 2
2.7 2.6 係 数 a 2.5 2.4 2.3 2.2 2.1 2 2006 年 2007 年 2008 年 2009 年 2010 年 2011 年 2012 年 図 3. 工 期 係 数 a の 推 移 (4) 経 営 企 画 部 門 の 評 価 1075 社 の 経 営 企 画 部 門 に 対 して 実 施 したアンケート[JUAS2013a]によると,IT 投 資 で 改 善 したい 経 営 課 題 は 業 務 プロセスの 効 率 化 ( 省 力 化, 業 務 コスト 削 減 )が 52%で1 位 になってお り, 現 在 でも 業 務 の 効 率 化 を 目 としたシステム 開 発 ニーズは 高 い 状 態 にある. 業 務 効 率 化 を 目 的 としたシステム 開 発 投 資 は 通 常, 企 業 内 の 投 資 回 収 期 間 等 の 基 準 をクリアする 必 要 がある. 開 発 コストの 削 減 は 投 資 回 収 期 間 の 短 縮 や 従 来, 投 資 基 準 に 合 わない 業 務 のシステム 化 が 可 能 になるといったメリットがあり 引 き 続 き 改 善 ニーズがあると 考 えられる.また, 品 質 に 関 して はシステムの 安 定 稼 働 に 対 する 期 待 に 応 えられていると 回 答 した 割 合 は 58%であり, 満 足 して いる 企 業 が 多 い. 一 方,ビジネスモデルの 変 革 への 期 待 に 応 えられているという 回 答 は 3.1%で あり,ビジネスプロセスの 改 革 については 7.1%であった.ビジネスモデルの 変 革 という 課 題 は ビジネスモデルの 構 築, 業 務 設 計 といったシステム 開 発 前 の 工 程 によるところが 大 きく,3.1% という 満 足 率 から 考 えると 現 在 のシステム 開 発 部 隊 の 能 力 ですぐにこの 課 題 を 解 決 することは 難 しいと 考 えられる. 従 来 のシステム 開 発 では 与 えられた 問 題 を 解 決 するロジカルシンキング といった 思 考 が 重 視 されたが,ビジネスモデルの 改 革 は 問 題 を 定 義 するところから 始 めるため クリエイティブシンキング[MATSUBAYASHI1981]のような 思 考 が 要 求 される.ビジネスモデ ルという 上 位 の 課 題 に 取 り 組 む 前 段 階 としてシステム 設 計 のフェーズで 創 造 力 を 発 揮 し, 利 用 部 門 の 潜 在 的 なニーズを 引 き 出 し, 提 案 できる 能 力 を 身 に 付 けることが 必 要 であると 考 えられ る. 利 用 部 門 の 潜 在 的 ニーズに 適 合 した 付 加 価 値 の 高 いシステムが 開 発 できる 開 発 手 法 を 確 立 することをもう 一 つの 課 題 とした. (5) 海 外 の 状 況 文 献 [CAPERS2013]に 国 別 のソフトウェアをリリースした 後 のFunction Point(FP 1 ) 当 たり の 欠 陥 密 度 が 示 されており, 上 位 10 の 国 を 表 2 に 示 す. 日 本 は 1 位 であり, 高 品 質 であるこ とがわかる. 1 FP: ソフトウェアの 規 模 を 測 定 する 手 法 の1つであるファンクションポイント 法 で 測 定 した 指 標 の 単 位 [ALBRECHT1994] 3
表 2.リリース 後 の FP 当 たりの 欠 陥 密 度 Country Delivered Defects 1 Japan 0.29 2 India 0.34 3 Denmark 0.38 4 Canada 0.39 5 South Korea 0.39 6 Switzerland 0.40 7 United Kingdom 0.40 8 Israel 0.41 9 United States 0.47 10 France 0.49 文 献 [STANDISH2013]には 開 発 プロジェクトの 推 移 が 示 されており, 表 3 に 成 功 プロジェ クトの 割 合 の 経 年 変 化 を 示 す.Failed はプロジェクトのキャンセルや 本 番 化 しなかったプロジ ェクトの 割 合 であり,Challenged は 予 算 超 過, 納 期 未 達, 機 能 の 一 部 が 開 発 できなかったプロ ジェクトの 割 合 である. 成 功 率 は 改 善 されているものの 39%という 比 較 的 低 い 値 となっている. 表 4 に Challenged に 分 類 されたプロジェクトの 要 素 を 示 している.TIME は 納 期 未 達, COST は 予 算 超 過 の 割 合 を 示 している.コスト 超 過 のプロジェクトは 2012 年 に 59%と 最 高 値 になっており, 開 発 予 算 に 対 して 開 発 生 産 性 が 低 い 状 態 にあることがわかり, 開 発 コスト 削 減 や 納 期 短 縮 の 改 善 ニーズは 海 外 でも 続 いていると 考 えられる. 表 3. 成 功 プロジェクトの 割 合 の 推 移 年 2004 2006 2008 2010 2012 Successful 29% 35% 32% 37% 39% Failed 18% 19% 24% 21% 18% Challenged 53% 46% 44% 42% 43% 表 4. 失 敗 プロジェクトの 納 期 未 達, 予 算 超 過 の 推 移 年 2004 2006 2008 2010 2012 TIME 84% 72% 79% 71% 74% COST 56% 47% 54% 46% 59% (6) 日 本 と 海 外 の 開 発 スタイルの 相 違 日 本 のシステム 開 発 はアウトソーシングが 中 心 であることもあり, 大 半 がウォーターフォー ル 型 となっている[JUAS2013b].しかし, 海 外 ではアジャイル 開 発 が 普 及 [VERSION2001]し ており,アジャイル 開 発 がビジネスの 競 争 力 強 化 に 貢 献 している[IPA2012]. 本 研 究 の 目 的 は, 以 上 のデータから 得 られた 下 記 2つの 課 題 に 対 する 解 決 策 を 示 すことであ り, 以 下 の 開 発 手 法 の 確 立 を 目 指 す. (a) 要 求 水 準 に 合 った 品 質 を 確 保 した 上 で 開 発 コストを 削 減 できる 開 発 手 法 の 確 立 (b) システムの 付 加 価 値 向 上 が 向 上 できる 開 発 手 法 の 確 立 4
1.2. 本 研 究 の 概 要 本 研 究 では,まずソフトウェア 資 産 の 再 利 用 によってシステム 開 発 コストを 削 減 し, 次 に 適 切 なコストで 品 質 を 確 保 する 管 理 手 法 を 確 立 することを 目 指 す. 最 後 にこれらの 手 法 に 要 求 引 き 出 しの 効 果 が 期 待 できるアジャイル 手 法 を 組 み 合 わせるとこで 利 用 部 門 の 潜 在 ニーズを 満 た した 付 加 価 値 の 高 いシステム 開 発 手 法 の 確 立 を 目 指 す. 図 4 に 目 的 と 実 現 手 段 の 関 係 を 示 す. まずソフトウェア 資 産 の 再 利 用 により 開 発 する 成 果 物 量 を 削 減 し, 開 発 工 数 を 削 減 するととも に 作 業 の 増 加 に 合 わせて 増 加 すると 考 えられる 欠 陥 の 作 込 量 も 削 減 する. 次 に 欠 陥 検 出 プロセ スの 最 適 化 を 行 い, 欠 陥 検 出 工 数 の 削 減 を 図 り,コスト 削 減 と 品 質 確 保 の 両 立 を 図 る.また, 開 発 プロセスに 異 常 が 発 生 して 通 常 より 多 くの 欠 陥 が 発 生 している 場 合 は 欠 陥 予 防 を 行 い, 欠 陥 の 作 込 量 を 制 御 する.これらの 施 策 により1つのゴールである, 開 発 コスト 削 減 と 工 数 削 減 に 伴 う 納 期 短 縮 と 目 標 とする 欠 陥 密 度 を 実 現 する. 次 に 高 速 高 品 質 でソフトウェアを 開 発 できるプロセスを 利 用 して 短 期 間 のサイクルで 開 発 を 繰 り 返 すアジャイル 手 法 を 実 施 し,ソフトウェアの 魅 力 品 質 の 向 上 を 図 る.アジャイル 開 発 で 低 コスト 高 品 質 の 開 発 プロセスが 必 要 となる 理 由 は 以 下 の2つである. (a) 短 い 期 間 で 開 発 を 繰 り 返 すことで 利 用 者 からの 明 示 的 な 要 求 がより 多 く 収 集 できる, (b) 欠 陥 修 正 の 付 加 価 値 を 生 まない 工 数 が 少 なく, 利 用 者 の 潜 在 的 なニーズを 引 き 出 す 時 間 が 確 保 できる. 図 4. 本 研 究 の 目 的 と 実 現 手 段 5
1.3. 本 論 文 の 構 成 について 本 論 文 ではまず 第 2 章 でソフトウェア 再 利 用,ソフトウェア 品 質 管 理,アジャイルに 関 する 既 存 技 術 を 確 認 し, 試 行 する 手 法 を 説 明 する. 第 3 章 では 手 法 を 適 用 する 組 織 の 特 徴 を 説 明 す る. 第 4 章 ではソフトウェアプロダクトラインを 適 用 した 試 行 開 発 の 結 果 を 報 告 し,ソフトウ ェアプロダクトラインが 開 発 量 の 削 減 と 開 発 工 数 削 減 に 効 果 があることを 示 す. 第 5 章 ではソ フトウェアプロダクトラインの 開 発 に 統 計 的 品 質 管 理 手 法 の1つである 管 理 図 を 適 用 したプロ ジェクトの 試 行 結 果 を 示 し, 管 理 図 を 用 いて 効 果 的 に 開 発 コストと 品 質 の 制 御 ができることを 示 す. 第 6 章 では Scrum の 導 入 による 付 加 価 値 の 向 上 について 述 べ, 第 7 章 で 総 括 する. 6
第 2 章 既 存 技 術 2.1. ソフトウェア 再 利 用 2.1.1. ソフトウェア 再 利 用 の 形 態 ソフトウェアの 再 利 用 はシステム 開 発 の 品 質,コスト, 納 期 の 改 善 を 実 現 する 一 つの 有 効 な 手 法 であると 考 えられ 多 くの 研 究 が 行 われてきた [WILLIAM2006].ここではサブルーチンによ り 再 利 用 からソフトウェアプロダクトラインが 提 案 されるまでの 再 利 用 の 形 態 を 確 認 しておく. (1) サブルーチンによる 再 利 用 ソースコード 中 の 共 通 部 分 を 切 り 出 し, 再 利 用 する. 特 別 なスキルは 必 要 なく 多 くの 開 発 組 織 で 利 用 されている. 再 利 用 の 計 画 がなくても 開 発 中 に 随 時, 再 利 用 可 能 なサブルーチンを 開 発 することができる. 当 組 織 の 実 績 ではサブルーチンによるコード 作 成 量 の 削 減 率 は2 割 以 下 であった. (2) モジュールによる 再 利 用 サブルーチンはボトムアップのアプローチであるが,モジュールはトップダウンで 一 連 の 機 能 を 分 割 したものである. 一 般 的 にはサブルーチンとデータ 構 造 の 集 合 体 となる.サブルーチ ンによる 再 利 用 に 比 べ, 事 前 の 計 画, 設 計 が 必 要 となるが, 再 利 用 範 囲 の 拡 大 が 期 待 できる. (3) オブジェクト 指 向 開 発 による 再 利 用 データと 処 理 をカプセル 化 したもの. 継 承 の 仕 組 みによりカスタマイズすることができるこ とが 特 徴.ソフトウェア 部 品 は 実 世 界 をモデル 化 して 識 別 されたクラスが 基 本 となる. (4) コンポーネント 指 向 開 発 による 再 利 用 モジュールを 汎 用 化 したもので,インターフェースによりカスタマイズが 可 能 である.オブ ジェクト 指 向 開 発 による 再 利 用 は 既 存 のソフトウェア 部 品 を 派 生 させて 再 利 用 するが,コンポ ーネント 指 向 開 発 では 既 に 開 発 されているコンポーネントを 組 み 合 わせて 新 しいソフトウェア が 開 発 できることを 目 的 としている. (5) ソフトウェアプロダクトライン (1)~(4) の 技 術 は 再 利 用 されるソフトウェア 部 品 に 着 目 しているが,ソフトウェアプロダク トラインはソフトウェア 資 産 の 構 築 とソフトウェア 資 産 の 再 利 用 プロセスを 改 善 してより 効 率 的 なソフトウェア 部 品 の 再 利 用 を 実 現 させるものである. 本 研 究 では 最 新 技 術 であるソフトウェアプロダクトラインの 試 行 と 評 価 を 行 うが,ソフトウ ェア 資 産 の 構 築 では(1)から(4)の 技 術 が 利 用 されることになる. 2.1.2. ソフトウェアプロダクトラインについて ソフトウェアの 再 利 用 は 品 質,コスト, 納 期 の 改 善 策 として 期 待 されてきた. 初 期 段 階 では サブルーチンが 作 成 され,モジュール,オブジェクト,コンポーネントと 進 化 し[LINDA2006], 2000 年 頃 から 計 画 的 な 再 利 用 を 目 的 としてソフトウェアプロダクトラインの 考 え 方 が 広 がっ ている. 従 来 の 製 品 毎 の 開 発 プロセスとソフトウェアプロダクトラインの 開 発 プロセスとの 違 いは,ソフトウェア 資 産 を 開 発 するドメイン 開 発 とソフトウェア 資 産 を 活 用 して 個 々のアプリ 7
ケーション(システム)を 開 発 するアプリケーション 開 発 ( 以 下,AP 開 発 )の2つのプロセス が 体 系 化 されていることである. 図 5[KLAUS2005]にソフトウェアプロダクトラインの 概 要 を 示 す. 図 5.ソフトウェアプロダクトライン 概 要 [KLAUS2005] ドメイン 資 産 を 構 築 するドメイン 開 発 は 以 下 の5つのプロセスで 構 成 される. (1a) 製 品 管 理 : 主 にソフトウェア 製 品 系 列 のマーケティングを 扱 い, 製 品 のロードマップを 出 力 する. (1b) ドメイン 要 求 開 発 : 製 品 ロードマップを 入 力 とし, 製 品 系 列 の 共 通 要 求 及 び 可 変 要 求 を 抽 出 する. (1c) ドメイン 設 計 : 製 品 系 列 の 共 通 要 求 及 び 可 変 要 求 から 製 品 系 列 アプリケーションの 高 位 の 構 造 を 示 す 参 照 アーキテクチャを 構 築 し, 可 変 性 に 対 応 する 仕 組 みを 設 計 する. (1d) ドメイン 実 現 : 再 利 用 可 能 な 詳 細 設 計 と 実 装 を 行 う. (1e) ドメイン 試 験 : 再 利 用 可 能 なコンポーネントの 妥 当 性 確 認 と 検 証 を 行 う. ドメイン 資 産 を 活 用 するAP 開 発 は 以 下 の4つのプロセスで 構 成 される. (2a) アプリケーション 要 求 開 発 : 個 々の 製 品 の 要 求 仕 様 を 開 発 し,ドメイン 成 果 物 との 差 分 を 明 確 にする. (2b) アプリケーション 設 計 : 参 照 アーキテクチャを 利 用 し,アプリケーションのアーキテクチ ャを 設 計 する. (2c) アプリケーション 実 現 : 再 利 用 可 能 なコンポーネントを 利 用 し,アプリケーションを 実 装 する. (2d) アプリケーション 試 験 :アプリケーションの 仕 様 に 照 らして 妥 当 性 確 認 と 検 証 を 行 う. 8
2.1.3. ソフトウェアプロダクトライン 実 践 の 課 題 ソフトウェアプロダクトラインはエレベータの 制 御 ソフトといった 具 体 的 なドメインへの 適 用 はイメージしやすい. 既 に 存 在 している 用 途 別 のエレベータの 共 通 点 と 相 違 点 が 比 較 的 簡 単 に 抽 出 できると 考 えられる. 今 回 は 業 務 システムという 比 較 的 広 い 範 囲 のソフトウェアを 対 象 とするため, 共 通 点 と 相 違 点 をどう 抽 出 するかという 課 題 がある. 例 えば 製 品 の 出 荷 システム, 決 算 業 務 を 行 う 経 理 システム, 社 員 の 人 事 考 課 を 管 理 する 人 事 システムといった 業 務 システム に 対 して 共 通 点 と 相 違 点 を 明 確 にする 必 要 がある.さらにコスト 削 減 の 為 にはドメイン 資 産 が 幅 広 く 再 利 用 される 必 要 があり, 有 用 性, 可 用 性 の 高 いドメイン 資 産 を 構 築 する 必 要 がある. 2.2. ソフトウェア 品 質 管 理 ソフトウェアの 欠 陥 はレビューやテストで 検 出 する.レビューやテストにはさまざまな 手 法 が 存 在 するが, 本 研 究 は 欠 陥 数 を0に 近 づけるのが 目 的 ではなく, 目 標 とした 欠 陥 密 度 に 欠 陥 数 を 制 御 することが 目 的 である 為, 再 レビュー, 追 加 テスト 等 の 判 断 ができる 品 質 管 理 の 手 法 を 検 討 する. 2.2.1. ソフトウェア 品 質 管 理 の 手 法 テストやレビューの 完 了 判 断 に 利 用 できるよく 知 られる 手 法 として 以 下 のものがある. (1) コードカバレッジを 基 準 としたテストの 実 施 ホワイトボックステストでソースコード 中 の 命 令 がどの 程 度 網 羅 されたかを 示 す 指 標 である. コードカバレッジは, 通 常 3 種 類 の 基 準 を 用 いて 測 定 される. 命 令 網 羅 (C0) : コード 中 のすべての 命 令 が 実 行 された 際,100%となる. 分 岐 網 羅 (C1) : コード 中 のすべての 分 岐 が 実 行 された 際,100%となる. 条 件 網 羅 (C2) : コード 中 のすべての 分 岐 の 組 み 合 わせが 実 行 された 際,100%となる. テストの 基 準 を C0 から C1, C2 とあげれば 残 存 欠 陥 を 検 出 できる 確 率 が 高 まり, 信 頼 性 の 向 上 が 期 待 できるが,テスト 工 数 が 増 加 するためシステム 開 発 コストの 増 加 や 納 期 の 長 期 化 が 課 題 となる. (2) 信 頼 度 成 長 曲 線 の 利 用 によるテストの 終 了 判 断 信 頼 度 成 長 曲 線 は 縦 軸 に 検 出 欠 陥 数, 横 軸 に 実 施 したテスト 項 目 数 または 日 付 をとった 折 れ 線 グラフで 時 間 と 共 に 右 上 方 向 にプロットが 追 加 される. 一 般 的 にはテスト 項 目 数 の 増 加 に 従 って 検 出 量 が 減 る 為, 作 り 込 まれた 欠 陥 数 に 収 束 していく. 図 6 に 示 すようなゴンペルツ 曲 線 等 を 使 って 近 似 曲 線 を 求 めることで 残 存 欠 陥 数 を 予 想 することができ,テストを 完 了 するか, 継 続 するかの 判 断 に 利 用 することができる. 一 般 的 には 単 体 テストではなく,プログラムの 開 発 が 終 了 した 後 に 行 う 統 合 テストで 利 用 されるケースが 多 い.この 手 法 は 欠 陥 がシステム 全 体 に 均 一 に 分 布 する 場 合 は 有 効 であるが, 欠 陥 が 偏 在 している 場 合,テストの 順 序 によっては 成 長 曲 線 が 一 端 収 束 傾 向 を 示 した 後, 急 激 に 増 加 することがあり, 制 約 となっている. 9
250 信 頼 度 成 長 曲 線 累 積 検 出 欠 陥 数 200 150 100 50 0 検 出 欠 陥 累 積 数 ゴンペルツ 曲 線 0 200 400 600 800 テスト 項 目 数 図 6. 信 頼 度 成 長 曲 線 のサンプル (3) 管 理 図 シューハート 管 理 図 (JIS Z 9021)は, 品 質 や 製 造 工 程 が 統 計 的 に 安 定 な 状 態 にあるか 判 断 す るグラフのことである. 日 々の 工 程 管 理 で 利 用 できるため, 品 質 の 平 準 化 を 実 現 するために 有 効 である.ソフトウェア 開 発 の 利 用 に 関 してはプロセス 改 善 モデルである CMMI[MARY2009] ではレベル4で 管 理 図 等 の 統 計 的 手 法 を 使 った 管 理 を 要 求 しており, 成 熟 した 組 織 で 利 用 され ている. 設 計, 開 発 プロセスの 進 行 に 合 わせて 監 視 できるため, 欠 陥 の 再 発 防 止 策 が 実 施 でき る. 本 研 究 では 管 理 図 の 試 行 と 評 価 を 行 う. 信 頼 性 成 長 曲 線 は 通 常, 設 計 実 装 が 終 わった 後 の 統 合 テストで 利 用 されるため 開 発 コスト 削 減 の 効 果 が 期 待 できない. 一 方, 管 理 図 は 設 計 実 装 中 に 利 用 できるため 欠 陥 予 防 によるコスト 削 減 の 効 果 が 期 待 できる. 2.2.2. 管 理 図 について 管 理 図 は 品 質 や 工 程 が 統 計 的 に 安 定 しているかどうか 判 断 するために 利 用 するグラフである. 図 7 に 長 さ, 重 量, 時 間 といった 計 量 値 に 利 用 されるX 管 理 図 の 例 を 示 す. 縦 軸 が 管 理 指 標 を 表 す. 過 去 のデータから 平 均 値 を 求 めて, 中 心 線 (CL)を 設 定 する.また, 標 準 偏 差 (σ)を 計 算 し,CL+3σを 上 方 管 理 限 界 (UCL),CL-3σを 下 方 管 理 限 界 (LCL)とする.さらに CL と UCL,LCL の 間 を3 分 割 する. 横 軸 は 管 理 対 象 のデータを 発 生 順 に 並 べる.JIS 規 格 JIS Z 9021 では 異 常 判 定 の8つの 判 定 基 準 が 示 されているが,そのうち 最 もわかりやすい 判 断 基 準 は(a)プ ロットした 点 が 管 理 限 界 を 超 えるもので, 他 に(b) 連 続 する3 点 中 2 点 が3 分 割 した 領 域 A にあ るといったものが 示 されている. 一 方, 文 献 [STEPHEN2002]ではソフトウェアへの 管 理 図 の 適 用 は 正 規 の 統 計 的 プロセス 管 理 (SPC)やプロセス 能 力 に 使 うのではなく,むしろ 一 貫 性 と 安 定 性 を 改 善 するためのツールとして 用 いることが 有 効 であることが 示 されている. 10
管 理 図 は 管 理 対 象 の 種 類 によりいくつかの 種 類 が 用 意 されているが, 欠 陥 数 の 管 理 は 計 数 値 を 扱 う u 管 理 図 の 利 用 が 基 本 となる.u 管 理 図 の 例 を 図 8 に 示 す. 縦 軸 はプログラムの 欠 陥 密 度 ( 規 模 あたりの 欠 陥 数 )を 示 している. 横 軸 はプログラムを 表 す( 図 8 では,10 個 のプログ ラム 1~10,テスト 実 施 順 に 並 べている). 各 プログラムは 登 録, 照 会, 変 更, 削 除 の 機 能 を 持 ち, 複 数 のソースファイルで 構 成 されているため, 各 点 は 総 ライン 数 に 対 する 欠 陥 の 加 重 平 均 となっている. 中 央 線 (CL)は 組 織 全 体 の 実 績 から 求 めた 基 準 値 である.u 管 理 図 の 管 理 限 界 は 中 心 線 (CL)と 対 象 物 の 規 模 を 使 って 式 2で 求 めることができる[JIS2007][STEPHEN2002]. UUU = CC + 3 CC/ 規 模 式 2 規 模 に 応 じて 階 段 状 の 管 理 限 界 になっている. 規 模 の 大 きいものほど 管 理 限 界 の 幅 が 狭 くなる. 更 に, 中 央 線 と 管 理 限 界 の 2/3 の 位 置 に 補 助 線 を 描 いている.この 例 では 下 方 管 理 限 界 (LCL) は 計 算 上 0 以 下 となるが, 欠 陥 数 がマイナスになることはないので LCL は 描 画 していない. 図 7.X 管 理 図 のサンプル UCL 異 常 値 2/3 中 央 線 図 8. 検 出 欠 陥 密 度 のu 管 理 図 11
2.2.3. 管 理 図 導 入 の 課 題 管 理 図 は 多 くの 工 業 製 品 で 工 程 の 管 理 に 利 用 されている.しかし, 公 開 されているソフトウ ェア 開 発 への 適 用 事 例 が 少 なく, 実 践 上 のノウハウが 得 られにくい. 実 践 を 通 じて 明 らかにし ていく 必 要 がある.また,ソフトウェア 技 術 者 の 多 くは 統 計 的 な 手 法 に 精 通 していないため, 開 発 現 場 に 普 及 させる 為 にはツールの 提 供 が 必 要 と 考 えられる. 2.3. アジャイルソフトウェア 開 発 2.3.1. アジャイルソフトウェア 開 発 について アジャイルソフトウェア 開 発 は 迅 速 かつ 適 応 的 にソフトウェア 開 発 を 行 う 軽 量 な 開 発 手 法 群 の 総 称 である.Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas による 以 下 のアジャイルソフトウェア 開 発 宣 言 がアジャイルソフトウェア 開 発 の 定 義 であると 考 えられる. アジャイルソフトウェア 開 発 宣 言 私 たちは,ソフトウェア 開 発 の 実 践 あるいは 実 践 を 手 助 けする 活 動 を 通 じて,よりよい 開 発 方 法 を 見 つけだそうとしている.この 活 動 を 通 して, 私 たちは 以 下 の 価 値 に 至 った. プロセスやツールよりも 個 人 と 対 話 を, 包 括 的 なドキュメントよりも 動 くソフトウェアを, 契 約 交 渉 よりも 顧 客 との 協 調 を, 計 画 に 従 うことよりも 変 化 への 対 応 を, 価 値 とする.すなわち, 左 記 のことがらに 価 値 があることを 認 めながらも, 私 たちは 右 記 のこ とがらにより 価 値 をおく. Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas 2001, 上 記 の 著 者 たち この 宣 言 は,この 注 意 書 きも 含 めた 形 で 全 文 を 含 めることを 条 件 に 自 由 にコピーしてよい. また,アジャイルソフトウェア 開 発 宣 言 の 背 後 にある 原 則 として 表 5 に 示 すアジャイルソフト ウェアの 21 の 原 則 がある. 比 較 的 歴 史 の 長 いアジャイルソフトウェア 開 発 手 法 として,Scrum, Crystal Clear, XP(eXtreme Programming),Adaptive Software Development, FDD(Feature Driven Development), Dynamic System Development Method(DSMM) 等 がある. 文 献 [VERSION2001]にアジャイルソフトウェア 開 発 手 法 の 利 用 状 況 の 調 査 結 果 が 示 されており,Scrum および Scrum と XP を 組 み 合 わせた 利 用 が 全 体 の 74%を 占 めている. 本 研 究 では 利 用 実 績 の 多 い Scrum の 評 価 を 行 う. 12
表 5.アジャイルソフトウェアの 12 の 原 則 1 顧 客 満 足 を 最 優 先 し, 価 値 のあるソフトウェアを 早 く 継 続 的 に 提 供 します. 2 要 求 の 変 更 はたとえ 開 発 の 後 期 であっても 歓 迎 します. 変 化 を 味 方 につけることによって,お 客 様 の 競 争 力 を 引 き 上 げます. 3 動 くソフトウェアを,2-3 週 間 から 2-3 ヶ 月 というできるだけ 短 い 時 間 間 隔 でリリースします. 4 ビジネス 側 の 人 と 開 発 者 は,プロジェクトを 通 して 日 々 一 緒 に 働 かなければなりません. 5 意 欲 に 満 ちた 人 々を 集 めてプロジェクトを 構 成 します. 環 境 と 支 援 を 与 え 仕 事 が 無 事 終 わるまで 彼 らを 信 頼 します. 6 情 報 を 伝 えるもっとも 効 率 的 で 効 果 的 な 方 法 はフェイス トゥ フェイスで 話 をすることです. 7 動 くソフトウェアこそが 進 捗 の 最 も 重 要 な 尺 度 です. 8 アジャイル プロセスは 持 続 可 能 な 開 発 を 促 進 します. 一 定 のペースを 継 続 的 に 維 持 できるようにしなければなりません. 9 技 術 的 卓 越 性 と 優 れた 設 計 に 対 する 不 断 の 注 意 が 機 敏 さを 高 めます. 10 シンプルさ(ムダなく 作 れる 量 を 最 大 限 にすること)が 本 質 です. 11 最 良 のアーキテクチャ 要 求 設 計 は, 自 己 組 織 的 なチームから 生 み 出 されます. 12 チームがもっと 効 率 を 高 めることができるかを 定 期 的 に 振 り 返 り,それに 基 づいて 自 分 たちのやり 方 を 最 適 に 調 整 します. 2.3.2. Scrum について Scrum は 竹 内 弘 高 氏, 野 中 郁 次 郎 氏 が 日 米 の 製 造 業 の 設 計 開 発 を 調 査 した 文 献 [TAKEUCHI1986] が 起 源 となっており,Ken Schwaber 氏,Jeff Sutherland 氏 がソフトウ ェア 開 発 へ 適 用 したものである. 以 下, 文 献 [KEN2011a]を 基 に Scrum の 概 要 を 説 明 する. Scrum は, 複 雑 で 変 化 の 激 しい 問 題 に 対 応 するためのフレームワークであり, 可 能 な 限 り 価 値 の 高 いプロダクトを 生 産 的 かつ 創 造 的 にリリースするためのものであり, 役 割, 成 果 物,イ ベントが 定 義 されている. (1) 役 割 ソフトウェア 開 発 に 携 わる 人 について, 次 の(R1)~(R3)の3つの 役 割 が 定 義 されている.(R1) プロダクトオーナー:ソフトウェアの 開 発 順 序 を 決 める 権 限 を 持 ち, 価 値 を 最 大 化 する 責 任 を 持 つ 要 求 者 である.(R2) 開 発 チーム:ソフトウェアを 開 発 チームであり, 通 常 5~9 名 で 構 成 される.(R3) スクラムマスター: 開 発 チームに Scrum を 正 しく 理 解 させ, 開 発 チームが 成 果 を 上 げるために 支 援 や 奉 仕 を 行 う. 一 般 的 なプロジェクトマネージャーとは 役 割 が 異 なる. (2) 成 果 物 次 の(P1)~(P3)の3 種 類 の 成 果 物 が 定 義 されている.(P1) プロダクトバックログ:プロダク トオーナーが 作 成 するソフトウェア 要 件 の 一 覧 である. 要 件 には 優 先 順 位 が 示 されている.(P2) スプリントバックログ: 次 回 リリースする 機 能 をプロダクトバックログから 選 択 したもので 開 発 チームが 作 成 する.(P3) インクリメント:スプリントバックログの 機 能 を 既 存 の( 前 回 リリ ースした)ソフトウェアに 追 加 実 装 したもので, 動 作 して,かつ,リリース 可 能 なものである. (3) イベント 次 の(E1)~(E5)の5 種 類 のイベントが 定 義 されている. 図 9 に Scrum の1サイクルを 示 す. (E1) スプリント 計 画 ミーティング: 2つのパートに 分 かれており,Part 1 ではプロダクトオー ナーが 作 成 したプロダクトバックログを 元 に 何 をすべきか 理 解 する.Part 2 では 今 回 の 開 発 で 13
作 成 すべき 機 能 とそのための 作 業 を 計 画 する.(E2) スプリント: 計 画 した 機 能 を 開 発 する.ス プリントの 期 間 は 通 常 2 週 間 から1ヶ 月 とされている.(E3) デイリースクラム: 毎 日 行 う 15 分 以 内 のミーティングで 進 捗 の 評 価 と 次 に 行 うタスクの 調 整 を 行 う.(E4) スプリントレビュ ー: 開 発 チームが 開 発 した 機 能 のデモをプロダクトオーナーに 対 して 行 う.プロダクトオーナ ーはデモを 確 認 して, 完 了 しているかどうかの 判 断 を 行 う.(E5) スプリントレトロスペクティ ブ: 人 関 係 プロセス ツールの 観 点 から 今 回 のスプリントを 点 検 し, 改 善 計 画 を 作 成 する. 図 9.Scrum のイベントと 成 果 物 2.3.3. 課 題 アジャイルソフトウェアの 12 の 原 則 に 顧 客 満 足 を 最 優 先 し, 価 値 のあるソフトウェアを 早 く 継 続 的 に 提 供 します という 項 目 が 存 在 するものの 価 値 あるソフトウェアを 提 供 できる 仕 組 みは 明 確 に 示 されていない. 付 加 価 値 の 高 いソフトウェアを 開 発 するためにはさまざまなアイ デアが 創 出 され, 提 案 されることが 必 要 であり, 更 にそのためには 開 発 者 のモチベーションが 高 く, 設 計 スキルも 向 上 する 必 要 がある.Scrum にこのような 効 果 があるか 評 価 する 必 要 があ る. 14
第 3 章 適 用 組 織 について ここではソフトウェアプロダクトライン, 統 計 的 品 質 管 理,Scrum の 適 用 を 行 った 住 友 電 気 工 業 株 式 会 社 の 情 報 システム 部 門 の 特 徴 を 説 明 する. (1) 体 制 情 報 システム 部 門 は 事 業 部 単 位 ではなくコーポレート 部 門 に 組 織 されており,1つの 組 織 で 全 社 横 断 的 に 生 産 管 理, 在 庫 管 理, 販 売 管 理, 購 買 管 理, 物 流 管 理, 会 計, 人 事 等 のといった 社 内 の 業 務 プロセスを 支 援 するエンタープライズ システムの 開 発 保 守 運 用 を 行 っている. システムの 開 発 は 情 報 システム 部 が 企 画, 要 件 定 義 を 担 当 し, 設 計 開 発 保 守 は 情 報 子 会 社 である 住 友 電 工 情 報 システム 株 式 会 社 が 担 当 しており, 開 発 に 関 与 する 技 術 者 は 合 計 約 200 名 である.また, 新 技 術 の 導 入 や 標 準 化 は 親 会 社 の 情 報 システム 部 が 担 当 している. (2) 開 発 技 術 システム 開 発 の 標 準 化 を 重 視 している 組 織 であり, 開 発 ツール, 開 発 プロセスは 全 社 で 統 一 している.オープンソースソフトウェアの 開 発 ツールを 積 極 的 に 採 用 しており,Java, Tomcat, Eclipse, PostgreSQL 等 を 全 てのシステム 開 発 で 利 用 している. (3) 方 法 論 設 計 手 法 としてデータ 中 心 設 計 を 採 用 し, 全 システムで ER 図 (Entity Relationship Diagram)を 作 成 している.データベース 設 計 の 属 人 性 を 極 力 排 除 し, 正 規 化 されたデータベー スを 実 装 することが 原 則 となっている. 高 品 質 のデータベース 設 計 がシステム 開 発 の 生 産 性 向 上, 品 質 の 基 盤 となっている. (4) ソフトウェア 開 発 の 改 善 活 動 ソフトウェア 開 発 の 品 質, 納 期,コストの 改 善 は 継 続 的 に 行 っており,これまで 表 6 に 示 す ような 取 り 組 みを 行 っている. 特 に CMMI [MARY2009] [WATTS1991]のモデルを 使 ったプロセス 改 善 は 継 続 的 に 実 施 しており,CMMI の 評 定 資 格 を 持 っている 技 術 者 が 50 名 在 籍 している.なお, CMMI を 使 った 評 定 は 米 国, 中 国 をはじめ 88 カ 国 で 実 施 されており, 評 定 結 果 は5 段 階 で 示 される. レベル1はレベル 2 に 未 達 の 状 態 を 示 している. 状 態 が 定 義 されているレベル 2~5 の 割 合 はそれぞれ 24.3%, 63.6%, 1.7%, 6.3%であり, 多 くの 組 織 がレベル 3 に 留 まっている.[CMMI2013] 表 6. 品 質 コスト 納 期 改 善 の 取 り 組 み 年 取 り 組 み 内 容 1994 データ 中 心 設 計 の 導 入 1999 Java による 自 社 フレームワークを 開 発 2001 CMM によるプロセス 改 善 を 開 始 2003 CMM レベル3 達 成 2003 ソフトウェアプロダクトライン 試 行 開 始 2007 統 計 的 品 質 管 理 試 行 開 始 2011 CMMI レベル5 達 成 (5) ハードウェア 環 境 1997 年 以 降 PCサーバーを 採 用 し,コスト 削 減 を 図 っている. 現 在 は 社 内 にクラウドサーパ ーを 設 置 し,ハードウェアを 共 用 しているが,Intel ベースの CPU を 利 用 した Linux サーバー 上 でシステムが 稼 働 している. 15
(6) ツール 開 発 システム 開 発 を 支 援 する 開 発 ツールは 必 要 に 応 じて 自 社 開 発 することも 多 く,1989 年 から 10 年 間 はソースコードジェネレータを 自 社 開 発 して 利 用 していた.また,2005 年 にシステム 開 発 で 作 成 された 仕 様 書 等 のドキュメントを 一 元 管 理 する 文 書 管 理 ツールを 自 社 開 発 している. その 他,サーバーの 異 常 監 視 を 行 う 運 用 支 援 ツールも 自 社 開 発 して 運 用 している. 16
第 4 章 ソフトウェアプロダクトライン 適 用 によるソフトウェア 再 利 用 の 試 行 と 評 価 4.1. はじめに ソフトウェアの 大 規 模 化 と 複 雑 化 に 伴 い, 高 品 質 なソフトウェアを 短 期 間 に 効 率 良 く 開 発 す ることが 求 められている. 再 利 用 はこれを 実 現 する 一 つの 有 効 な 手 法 であると 考 えられ 多 くの 研 究 が 行 われてきた [WILLIAM2006]. 再 利 用 の 形 態 はサブルーチン,モジュール,オブジェク ト,コンポーネントと 進 化 し,2000 年 代 にはソフトウェアプロダクトライン( 以 下, SPL)[SEC2009][KLAUS2005]の 考 え 方 が 広 まっている. SPL の2つの 特 徴 は(a)ソフトウェア 資 産 を 構 築 するドメイン 開 発 とソフトウェア 資 産 を 活 用 するアプリケーション 開 発 の2つのプロセスを 分 離 する,(b)ソフトウェア 資 産 のどの 部 分 が 共 通 でどの 部 分 が 可 変 なのかを 明 示 的 に 示 すことである.SPL は 従 来 のアドホックな 再 利 用 では なく 計 画 的 な 再 利 用 を 実 現 することが 目 的 となっている.SPL は 組 み 込 み 系 の 分 野 では 多 くの 事 例 が 報 告 [YOSHIMURA2006][YOSHIMURA2008]されているが,エンタープライズ システムの 事 例 報 告 は 少 ない[ISHIDA2009]. 住 友 電 気 工 業 の 情 報 システム 部 門 ( 以 降, 当 組 織 )は 第 3 章 で 述 べたとおりエンタープライ ズ システムの 開 発 を 主 な 業 務 としており, 継 続 的 に 品 質,コスト, 納 期 の 改 善 に 取 り 組 んで いる. 本 論 文 では 1999 年 から 開 始 した,SPL に 基 づくソフトウェア 部 品 の 再 利 用 により 社 内 の 業 務 システム 開 発 で 作 成 するソースコード 量 を 削 減 することで 開 発 コストを 低 減 させる 取 り 組 みと,2003 年 から 2012 年 までの 10 年 間 の 実 績 評 価 について 報 告 する.ソフトウェア 部 品 へは 業 務 ロジックを 対 象 とするアプローチと 画 面 部 品 を 中 心 とするアプローチが 考 えられたが,こ れまでの 経 験 から 後 者 の 方 が 開 発 するソースコード 量 の 削 減 に 効 果 があると 考 えた. 業 務 シス テムで 利 用 する 画 面 はそれぞれ 表 示 するデータ 項 目 が 異 なり,データ 長 や 入 力 方 法 が 異 なるた め 簡 単 に 部 品 化 することができない.この 問 題 を 解 決 するためにデータ 項 目 をオブジェクト 化 する 項 目 オブジェクトの 考 案 し 画 面 部 品 を 開 発 した.また, 操 作 性 の 高 い 画 面 部 品 を 提 供 する ことで 利 用 者 の 満 足 度 を 高 め, 開 発 者 の 再 利 用 に 対 する 心 理 的 な 抵 抗 を 解 消 した.さらに 演 習 を 中 心 とした3 日 間 のトレーニング コースを 定 期 開 催 することで 全 社 展 開 することができた. これらの 取 り 組 みの 結 果,IPA/SEC が 発 行 している 文 献 [IPA2010]に 掲 載 されている 生 産 性 と 比 較 して,3~5 倍 の 高 い 生 産 性 と 利 用 者 の 高 い 満 足 度 が 実 現 できている. 4.2. SPL の 導 入 目 的 1999 年 にオブジェクト 指 向 言 語 Java をサーバーサイドで 利 用 する 技 術 が 登 場 したことをこ とによりソフトウェア 部 品 の 開 発 環 境 が 容 易 に 入 手 できるようになった. 当 組 織 では 以 前 から 開 発 コスト 削 減 の 手 段 としてオブジェクト 指 向 言 語 によるソフトウェアの 再 利 用 を 検 討 してお り,1999 年 にソフトウェア 部 品 の 開 発 を 進 めることになった. 当 時 は 個 々の 開 発 チームで 共 通 部 品 を 開 発 し 再 利 用 を 進 めていたが 局 所 的 な 再 利 用 のため 大 きな 成 果 は 得 られていなかった. ソフトウェア 資 産 を 構 築 し 再 利 用 によるコスト 削 減 効 果 を 得 るためには 各 開 発 プロジェクトが 開 発 する 成 果 物 量 を 削 減 し, 開 発 工 数 を 削 減 する 必 要 がある.また,ソフトウェア 資 産 の 開 発 投 資 に 対 する 効 果 を 最 大 化 するためには 開 発 したソフトウェア 資 産 は 全 プロジェクトに 展 開 し, 長 期 間 利 用 する 必 要 がある.このような 全 社 的 な 再 利 用 を 進 めるためには SPL で 示 されている ようにドメイン 開 発 チームとAP 開 発 チームを 分 離 し,ソフトウェア 資 産 の 開 発 にも 要 求 定 義 から 試 験 のプロセスを 実 施 する 必 要 があると 考 えた. 17
SPL 導 入 の 目 的 は,(a)AP 開 発 プロジェクトが 開 発 する 成 果 物 量 を 削 減 できるソフトウェア 資 産 を 構 築,(b)ソフトウェア 資 産 を 長 期 間, 全 社 展 開 することでコスト 削 減 効 果 を 最 大 化 する ことである. 4.3. エンタープライズ システムへの SPL 適 用 の 課 題 文 献 [ISHIDA2009],[ISHIDA2007]ではエンタープライズ システム 開 発 における SPL 適 用 の 課 題 が 述 べられている.ここでは 当 組 織 の 状 況 を 説 明 する. (1-1) 移 り 変 わる 実 装 技 術 と 非 機 能 要 件 の 高 度 化 ソフトウェア 資 産 を 構 築 する 上 で 資 産 が 永 続 的 に 利 用 できることは 重 要 な 要 素 である. 当 組 織 では OS,ミドルウェアに OSS を 積 極 的 に 採 用 することで,ベンダーの 事 業 戦 略 ( 事 業 撤 退 を 含 む)の 影 響 を 受 けにくい 環 境 を 整 えている.また, 開 発 言 語 は 複 数 のベンダーが 提 供 して いる Java を 採 用 しており, 長 期 間 の 利 用 が 期 待 できる 状 態 となっている.また, 操 作 性 やリ アルタイム 性,24 時 間 稼 働 等 の 非 機 能 要 件 は 製 造 業 ということもあり, 大 きな 問 題 となってい ない. 全 社 員 が 利 用 する 勤 務 管 理 システムでは 利 用 者 が 数 千 名, 同 時 利 用 は 数 百 名 の 規 模 であ り, 事 業 部 毎 に 開 発 するシステムでは 同 時 利 用 者 は 100 名 以 下 であることが 多 い. 従 って, 一 般 の PC サーバーの 能 力 で 処 理 可 能 な 負 荷 である. (1-2) RDBMS への 依 存 度 一 般 に,SQL による RDBMS の 処 理 がボトルネックになることが 指 摘 されている. 当 組 織 では 同 時 利 用 者 数 が 少 ないことに 加 え,サーバー 能 力 が 不 足 気 味 であった 1990 年 代 から, 正 規 化 されたテーブル 構 造 を 実 装 した 上 で 十 分 な 応 答 速 度 を 確 保 するチューニング 技 術 を 蓄 積 し ているため,SQL をそのまま 利 用 しても 問 題 が 発 生 していない. (1-3) 個 別 案 件 主 体 とレガシーシステムの 存 在 案 件 単 位 で 利 用 する 技 術 やコスト, 納 期 の 制 約 があり,SPL 適 用 の 障 害 になることが 示 され ている. 当 組 織 では 新 技 術 を 評 価 し, 社 内 展 開 する 部 署 が 設 置 されているため, 案 件 単 位 で 個 別 に 技 術 を 選 定 することがなく,SPL を 導 入 しやすい 環 境 となっている. (1-4) 工 数 削 減 できるソフトウェア 資 産 の 構 築 文 献 [ISHIDA2007]の 事 例 では SPL の 取 り 組 みが 初 期 段 階 で 充 分 な 結 果 が 得 られていない.よ りコスト 削 減 効 果 があるソフトウェア 資 産 の 構 築 が 求 められている. 4.4. SPL 推 進 方 針 4.で 示 した(1-1), (1-2), (1-3) の 課 題 は 既 に 解 消 していたため,(1-4), (2-1), (2-2) の 課 題 に 取 り 組 んだ. 4.4.1. 開 発 量 が 削 減 できるソフトウェア 資 産 の 開 発 ソフトウェアの 再 利 用 により 開 発 コストを 削 減 するためにはAP 開 発 において 開 発 するソー スコード 量 が 削 減 できるソフトウェア 資 産 が 必 要 となる. 文 献 [ISHIDA2009][ISHIDA2007] の 例 ではユーザーインターフェースではなく,ビジネスロジックに 焦 点 を 当 てている. 一 方, 我 々の Web システム 構 築 の 経 験 ではビジネスロジックよりも 画 面 出 力 に 関 するソースコード 18
の 方 が 多 いことがわかっている. 我 々は 画 面 部 品 を 開 発 することで(1-4)の 課 題 を 克 服 すること にした.しかし,ユーザーインターフェースである 画 面 は 利 用 者 の 要 求 により 多 くのバリエー ションがあり, 部 品 化 が 難 しい.また, 部 品 化 により 画 面 デザインの 自 由 度 が 低 下 すると, 操 作 性 の 悪 化 により 利 用 者 の 満 足 度 が 低 下 する 恐 れもある. 画 面 部 品 の 開 発 にあたっては 操 作 性 のよい 画 面 が 作 成 できる 機 能 を 持 たせ, 部 品 化 により 利 用 者 の 満 足 度 を 向 上 させることにした. 4.4.2. ソフトウェア 資 産 の 展 開 (2-1),(2-2)はソフトウェア 資 産 展 開 の 課 題 と 位 置 付 けた. 開 発 したソフトウェア 資 産 は 全 社 に 展 開 し, 長 期 間 利 用 することでコスト 削 減 効 果 を 最 大 化 したい.また,ソフトウェア 資 産 の 欠 陥 除 去 等 の 保 守 コストも 抑 制 したい. 機 能 拡 張 により 基 本 アーキテクチャが 変 更 すると 欠 陥 除 去 のための 調 査 コストやソースコードの 修 正 コストが 増 加 することが 予 想 されるため,ドメイ ン 要 求 分 析 を 実 施 しすることで 安 定 したアーキテクチャを 構 築 することにした.その 上 で(2-1) の 品 質 管 理 の 課 題 をドメイン 開 発 チーム 内 の 構 成 管 理 で 解 決 する 体 制 を 検 討 する.また,(2-2) の 人 的 側 面 の 課 題 は 開 発 者 が 積 極 的 に 使 いたいと 思 うよう, 利 用 者 の 満 足 度 を 高 められる 操 作 性 の 高 い 画 面 部 品 を 提 供 することで 解 決 することにした.さらにトレーニング 等 の 支 援 体 制 を 整 備 することでソフトウェア 資 産 が 容 易 に 利 用 できる 環 境 を 整 えることにした. 4.4.3. SPL 導 入 の 組 み 込 み 系 との 共 通 課 題 文 献 [NONAKA2009]では 組 み 込 み 系,エンタープライズ 系 共 通 の 課 題 として 以 下 のものが 示 されている. (2-1) 品 質 管 理 のためのソフトウェア 構 成 管 理 開 発 したソフトウェア 資 産 はAP 開 発 で 利 用 された 後 も 機 能 拡 張 や 欠 陥 除 去 が 行 われ, 複 数 バージョンの 資 産 が 開 発 される. 欠 陥 除 去 は 配 付 されたすべてのバージョンに 対 して 実 施 され るべきであるが, 構 成 管 理 をうまく 行 わないと 局 所 的 にしか 欠 陥 除 去 が 行 われない 可 能 性 があ る. (2-2) 再 利 用 に 対 する 人 間 的 側 面 NIH(Not Invented Here)は 自 分 達 が 開 発 したものでないと 再 利 用 したがらない 傾 向 を 表 す 言 葉 であるが,NIH 症 候 群 を 考 慮 したプロジェクト 運 営 が 必 要 である. 4.5. ドメイン 開 発 の 実 践 4.5.1. ドメイン 要 求 開 発 ドメイン 要 求 開 発 ではソフトウェア 部 品 を 抽 出 し, 安 定 したアーキテクチャを 構 築 するため に 想 定 されているアプリケーションの 固 定 化 できる 共 通 点 と 個 別 に 変 更 できる 可 変 点 を 抽 出 す る. (1) 共 通 要 件 の 抽 出 想 定 するドメインは 企 業 内 のエンタープライズ システムであり, 生 産 管 理, 在 庫 管 理, 販 売 管 理, 購 買 管 理, 物 流 管 理, 会 計, 人 事 といった 幅 広 い 業 務 を 支 援 するソフトウェアである. 図 10 にエンタープライズ システムの 構 造 を 示 す.サーバー 内 にデータベースを 構 築 し, 正 規 化 されたテーブル 構 造 が 実 装 されている. 端 末 には Web ブラウザがインストールされており, サーバー 内 のプログラムにアクセスすることで 業 務 を 行 う.プログラムは 注 文 登 録 や 出 荷 指 示 等,1つの 業 務 に 対 応 したもので 複 数 の 画 面 で 構 成 されている.1つのシステムが 対 応 する 業 務 は 30~50 種 類 程 度 のものが 多 い. 19
図 10.エンタープライズ システムの 構 造 上 記 構 造 を 前 提 とし, 以 下 の 共 通 的 な 要 件 が 存 在 している. (R1) エンドユーザーはブラウザでシステムにアクセスし, 業 務 で 利 用 する 画 面 を 表 示 する. (R2) エンドユーザーは 画 面 を 操 作 して,データベースにデータを 登 録, 照 会, 変 更, 削 除 する. (R3) その 際,システムは 入 力 された 値 のエラーチェックを 行 う. (R4) システムは 必 要 に 応 じて,データベースのデータを 加 工 してブラウザに 表 示 する. (R5) システムは 必 要 に 応 じて, 入 力 されたデータを 加 工 してデータベースに 登 録, 変 更 する. (R6) システムは 処 理 結 果 を 端 末 に 表 示 する. (2) 画 面 の 共 通 点 と 可 変 点 の 抽 出 図 11, 図 12 に 業 務 で 使 用 する 画 面 の 例 を 示 す. 図 11 は 商 品 を 登 録 する 画 面 である. 図 12 は 商 品 の 注 文 を 登 録 する 画 面 である.この2つの 画 面 の 共 通 点 は,(a)タイトル,(b)メニュー, (c)1 つ 以 上 のデータ 入 力 ブロック( 図 12 では(c-1),(c-2)),(d) 登 録 ボタンが 配 置 されている ことである. 可 変 点 は, 共 通 点 の 中 に 多 く 含 まれており, 以 下 のものが 抽 出 できる. タイトルに 表 示 されている 文 字 が 商 品 登 録 と 注 文 受 付 で 異 なる. データ 入 力 項 目 は 図 11 では1ブロック, 図 12 では2ブロックで 構 成 されている. データ 入 力 ブロックに 含 まれるデータ 項 目 ( 商 品 コード, 受 注 番 号 等 )が 異 なる. 部 品 化 の 課 題 となるのはデータ 入 力 項 目 であり, 可 変 点 は 以 下 の 通 りである. データ 項 目 の 名 称 データ 入 力 領 域 の 桁 数 データ 入 力 の 方 法 (TEXT, CHECKBOX 等 ) 20
図 11. 商 品 登 録 画 面 の 例 図 12. 注 文 受 付 画 面 の 例 21
(3) 画 面 遷 移 の 共 通 点 と 可 変 点 の 抽 出 画 面 遷 移 についても 再 利 用 を 行 うため, 共 通 点 と 可 変 点 を 抽 出 した. 基 本 的 な 画 面 遷 移 を 図 13 に 示 す. 利 用 者 がアプリケーションのメニューからプログラムを 選 択 すると,プログラム 内 のメニューから(a) 登 録 入 力 画 面 または(d) 検 索 条 件 入 力 画 面 を 表 示 することができる.その 後 は 矢 印 で 示 された 流 れで 画 面 を 進 めることができ, 登 録, 照 会, 変 更, 削 除 の 業 務 が 行 えるよう になっている.この 画 面 遷 移 で 可 変 点 は,(h) 変 更 確 認 画 面,(k) 削 除 確 認 画 面 で,アプリケーシ ョン 要 求 に 応 じて 省 略 することができる. 図 13. 画 面 遷 移 の 共 通 化 4.5.2. ドメイン 設 計 ドメイン 設 計 ではAP 開 発 で 使 用 するアーキテクチャを 設 計 する. 今 回 のソフトウェア 資 産 は Web システムを 前 提 としており, 端 末 とサーバーとの 通 信 が 毎 回 切 断 されるという 条 件 の 中 で 可 変 点 に 対 応 できる 構 造 にする 必 要 がある. 図 14 に 利 用 者 が 画 面 に 入 力 したデータをデー タベースに 登 録 する 際 の 処 理 の 流 れを 示 す.この 流 れは 6.1 の 要 件 (R1)から(R6)に 対 応 してい る. 端 末 の 登 録 ボタンを 押 すと,サーバー 内 の 登 録 処 理 が 起 動 される.まず, 共 通 部 の(1) 入 力 値 取 得 は 端 末 から 送 信 されたデータをデータ 項 目 毎 に 分 解 し, 変 数 に 保 管 する. 次 に,(2) 基 本 エラーチェックでは 変 数 に 格 納 されたデータが 予 め 定 義 されたデータ 型 ( 文 字 型, 数 値 型, 日 付 型 等 )に 合 っているか, 日 付 の 場 合 は 閏 年 を 考 慮 して 存 在 する 日 か 等 のエラーチェックを 実 施 する.その 後,アプリケーションが 追 加 のエラーチェックを 要 求 されているのであれば,(3) 拡 張 エラーチェックを 実 行 し, 要 求 に 対 応 する.この 様 なアーキテクチャを 作 成 し, (R1), (R2), (R6)を 共 通 点 とし,(R3), (R4), (R5)は 可 変 点 として 処 理 が 追 加 できるようにした. 22
図 14.データをデータベースに 登 録 する 処 理 の 流 れ 4.5.3. ドメイン 実 現 ドメイン 実 現 では,ソフトウェア 資 産 の 詳 細 設 計 と 実 装 を 行 う.エンタープライズ システ ムでのソフトウェア 資 産 実 装 の 課 題 は 対 象 となる 事 業 部 や 対 象 業 務 の 違 いで 使 用 しているデー タ 項 目 が 異 なることである. 画 面 はデータベースの 項 目 を 表 示 するため, 同 じ 注 文 入 力 の 画 面 でも 事 業 部 毎 にデータ 項 目 が 異 なり, 再 利 用 が 難 しくなる. 同 様 にデータベースとの 入 出 力 を 行 うデータ 項 目 も 異 なるためそのままではソフトウェア 資 産 の 再 利 用 ができない. 4.5.3.1. 画 面 に 関 する 可 変 点 抽 出 と 抽 象 化 ブラウザにデータの 入 力 画 面 を 表 示 するための HTML を 図 15 に 示 す.この 画 面 では, 受 注 品 目 と 受 注 数 量 の 入 力 項 目 のブロックが 1 つずつ 表 示 される.この HTML を 出 力 する 再 利 用 可 能 な プログラムを 考 える 場 合, 下 線 を 引 いた 部 分 が 可 変 点 となり, 残 りの 部 分 は 共 通 点 である. 従 って, 共 通 点 の 方 が 可 変 点 より 多 く, 再 利 用 の 効 果 が 期 待 できる.AP 開 発 者 がソフトウェア 資 産 に 追 加 する 情 報 は, 画 面 に 表 示 し 利 用 者 が 認 識 するためのデータラベル,プログラム 内 で 処 理 するためのデータ 識 別 子 ( 当 組 織 のルールでは 英 数 字 ), 桁 数 の3 種 類 が 必 要 となり, 具 体 的 には 商 品 コード, prod_cd, 8 桁, 数 量, order_qty, 5 桁 の 6 項 目 設 定 が 必 要 であ る.このような 単 一 の 単 純 な 画 面 では 画 面 表 示 機 能 の 部 品 化 は 簡 単 である.しかし, 我 々の 組 織 で 標 準 的 なシステムでは 200 以 上 の 画 面 があり,それぞれ 平 均 5 つのデータ 項 目 が 使 用 され ているとすれば 合 計 3000 件 (5 項 目 3 種 類 200 画 面 )の 定 義 が 必 要 となる.また, 実 際 のシ ステムの 画 面 はもう 少 し 複 雑 で, 図 11 に 示 したように RADIO ボタンで 選 択 できたり,プルダ ウン 形 式 で 値 を 選 択 できたりするものもある.その 選 択 肢 も 画 面 毎 に 設 定 する 必 要 があり, 再 利 用 のための 作 業 が 増 加 する. 23
<form action= > <table> <tr><th> 商 品 コード</th> <td><input type="text" name="prod_cd" size="8"></td></tr> <tr><th> 数 量 </th> <td><input type="text" name="order_qty" size="5"></td></tr> </table> <input type="submit" value=" 登 録 "> </form> 図 15. 受 注 品 目, 受 注 数 量 入 力 画 面 の HTML 図 16. 画 面 部 品 の 構 成 画 面 表 示 の 機 能 を 部 品 化 するためには,AP 開 発 チームの 作 業 量 を 削 減 する 必 要 がある. 図 16 にこの 課 題 を 解 決 するための 仕 組 みを 示 す. 商 品 コード 等 のデータ 項 目 は,データベース 設 計 時 に 項 目 名 称 や 実 装 用 の 識 別 子, 桁 数 等 が 設 計 されているため,AP 開 発 チームは, 各 画 面 を 設 計 実 装 する 際 にデータベースの 設 計 情 報 を 参 照 している. 図 16 の(b) 項 目 オブジェクト はデータベース 設 計 で 設 計 された 設 計 情 報 をサーバー 上 のメモリにオブジェクトとして 実 装 し たものである. 例 えば, 商 品 コードは 商 品 登 録 画 面 や 注 文 入 力 画 面 でも 通 常 同 じデータラベル, 同 じ 桁 数 となるため 画 面 毎 に 設 定 する 必 要 はない. 図 16 で 今 回 作 成 する(a)プログラムには 画 面 に 出 力 したいデータ 項 目 の 実 装 用 識 別 子 prod_cd を 設 定 する. 利 用 者 がブラウザに 画 面 を 表 示 する 際,prod_cd をキーとしてメモリ 中 の 項 目 オブジェクトを 検 索 し, 項 目 オブジェクトか らデータラベル, 入 力 桁 数 を 取 り 出 すことで 画 面 を 表 示 することができる. 更 に, 項 目 オブジ ェクトの 入 力 形 式 に RADIO ボタンを 指 定 し, 選 択 肢 を 登 録 しておけば, 利 用 者 が RADIO ボタン で 入 力 できる 画 面 を 出 力 することができる. 項 目 オブジェクトに 必 要 な 基 本 情 報 はデータベー 24
スの 設 計 情 報 から 自 動 生 成 可 能 であるため,AP 開 発 者 は 必 要 に 応 じて 追 加 情 報 を 登 録 するだ けでよい.また,プログラム 開 発 では,データラベルや 桁 数 を 気 にすることなく, 表 示 したい データ 項 目 の 実 装 用 識 別 子 を 指 定 するだけで 画 面 部 品 の 再 利 用 が 簡 単 にできる. 図 17 に 項 目 オブジェクトを 利 用 する 主 な 画 面 部 品 を 示 す. 部 品 は 入 力 画 面 と 表 示 画 面 に 分 類 でき, 更 にデ ータを1 件 表 示 するものと 複 数 件 のデータをリスト 表 示 するものに 分 類 できるため, 合 計 4 種 類 できる.その 他,マトリックス 形 式 で 表 示 する 部 品 も 存 在 するが,ごく 一 部 の 機 能 でのみ 利 用 されている. 項 目 オブジェクトの 考 案 により 画 面 部 品 を 実 現 することができた. 業 務 で 利 用 する 画 面 はこ れらの 部 品 を 組 み 合 わせることで 開 発 することができるが,これらの 部 品 を 組 み 合 わせて 図 12 に 示 したような 画 面 全 体 を 中 間 部 品 として 開 発 できるようになった.さらにこの 中 間 部 品 を 使 って 図 13 の 画 面 遷 移 や 図 14 の 共 通 点 の 部 分 も 部 品 化 できるようになりAP 開 発 チームが 作 成 するソースコード 量 の 削 減 が 期 待 できるソフトウェア 資 産 が 構 築 できた. 図 17. 主 な 画 面 部 品 25
4.5.3.2. 画 面 部 品 の 高 機 能 化 画 面 部 品 の 開 発 は 開 発 工 数 削 減 が 期 待 できる 一 方 で 画 面 デザインの 制 約 となる. 制 約 が 強 け れば 利 用 者 の 満 足 度 を 低 下 させたり, 開 発 者 が 再 利 用 に 対 してネガティブな 印 象 を 持 ったりす ることになる. 再 利 用 を 全 社 展 開 するためには 使 い 勝 手 の 良 い 画 面 を 従 来 よりも 少 ない 工 数 で 開 発 できるようにする 必 要 がある. Web ブラウザは 本 来 閲 覧 用 のソフトウェアであり,データ 登 録 作 業 を 効 率 的 に 行 えるように 設 計 されていない.そのためAP 開 発 者 は JavaScript 等 でプログラムを 作 成 して 操 作 性 を 改 善 する 必 要 がある. 今 回 開 発 した 画 面 部 品 では 図 18 に 示 すようにカーソルキーやリターンキー で 項 目 移 動 ができるようになっている.このような 機 能 はマルチブラウザ 対 応 にする 必 要 があ り,セキュリティ 面 の 配 慮 も 必 要 となる.また,ブラウザのバージョンアップにも 継 続 的 に 対 応 する 必 要 がある.このような 継 続 的 に 保 守 が 必 要 な 高 機 能 部 品 をドメイン 開 発 チームが 品 質 保 証 して 提 供 することで,AP 開 発 チームに 対 してソフトウェア 資 産 を 活 用 した 方 が 低 コスト でよいシステムが 開 発 できるという 動 機 づけを 行 っている. 図 18.カーソル 操 作 4.5.3.3. 構 成 管 理 開 発 したソフトウェア 資 産 はソースコードでAP 開 発 チームに 提 供 し,AP 開 発 チームでカ スタマイズする 方 法 とドメイン 開 発 チームが 機 能 追 加 してバイナリ 形 式 のライブラリで 提 供 す る 方 法 が 考 えられる. 我 々は 後 者 を 採 用 した.その 理 由 は 欠 陥 除 去 すべきバージョンの 特 定 作 業 が 容 易 で 品 質 保 証 の 点 で 優 れており, 新 機 能 を 全 社 展 開 するのにも 好 都 合 であるからである. 一 方, 複 数 のAP 開 発 が 並 行 して 進 行 している 状 況 ではドメイン 開 発 チームはタイムリーに 新 機 能 の 提 供 や 欠 陥 除 去 が 行 える 高 い 開 発 能 力 が 要 求 されるという 制 約 がある.ドメイン 開 発 チ ームはリリースしたソフトウェア 資 産 の 各 バージョンを 一 元 管 理 し, 欠 陥 が 発 見 された 場 合, 各 AP 開 発 チームが 利 用 しているバージョンのソフトウェア 資 産 に 対 して 欠 陥 除 去 を 行 い, 新 しいライブラリを 提 供 する. 各 AP 開 発 者 はライブラリ 間 の 互 換 性 を 心 配 することなく 開 発 作 業 を 継 続 することができる. 4.5.4. ドメイン 試 験 ドメイン 試 験 では,ドメイン 開 発 で 作 成 した 成 果 物 の 試 験 を 行 う.また,ドメイン 試 験 で 開 発 した 成 果 物 をAP 開 発 チームに 提 供 する. 当 組 織 でのドメイン 試 験 の 課 題 は 品 質 保 証 であっ た.ソフトウェア 資 産 はAP 開 発 チームのニーズに 合 わせて, 短 い 周 期 で 新 機 能 のリリースを 行 っている.この 際, 他 の 機 能 への 悪 影 響 があれば,AP 開 発 チームの 開 発 効 率 を 悪 化 させる 恐 れや, 本 番 稼 働 中 のシステムのトラブルを 引 き 起 こす 危 険 があり, 高 い 品 質 管 理 が 求 められ る. 日 々 増 加 するソフトウェア 資 産 を 人 手 でテストすることはできないため, 自 動 テストツー 26
ルを 活 用 したテストを 行 っている. 作 成 したテストシナリオは 約 1000 種 類 あり,テスト 項 目 数 は 約 10000 である.AP 開 発 チームへリリースする 際, 一 晩 かけて 自 動 テストすることで 互 換 性 が 確 保 されていることを 確 認 し, 不 具 合 流 出 を 防 止 している.なお,AP 開 発 チームへの 試 験 成 果 物 の 提 供 はできていない. 4.6. アプリケーション 開 発 の 実 践 4.6.1. トレーニング 演 習 を 中 心 とした3 日 間 のトレーニング コースを 開 発 した. 定 員 は 10 名 で 月 1 回 の 定 期 開 催 に 加 え,プロジェクトの 状 況 に 応 じて 追 加 開 催 した. 新 入 社 員 は 入 社 後 の 新 人 研 修 で 全 員 が トレーニングを 受 け, 研 修 課 題 のプログラムを 数 本 開 発 する. 現 在 は 開 発 者 全 員 がトレーニン グを 受 けた 状 態 で 開 発 を 行 っており, 定 期 開 催 のトレーニングは 協 力 会 社 から 新 たに 開 発 に 加 わる 開 発 者 向 けに 行 われている. 4.6.2. アプリケーション 要 求 開 発 アプリケーション 要 求 開 発 では,ソフトウェア 資 産 を 活 用 し, 個 別 アプリケーションの 要 求 を 開 発 する.エンタープライズ システムでは,ユーザーインターフェースである 画 面 帳 票 や,データベース 更 新 時 の 計 算 ロジック 等 を 明 確 にし, 利 用 部 門 と 合 意 する.ソフトウェアの 再 利 用 を 効 果 的 に 行 うためにはこの 段 階 で 再 利 用 可 能 なソフトウェアで 実 現 可 能 な 仕 様 になっ ている 必 要 がある. 今 回 の 取 り 組 みでは 画 面 部 品 が 再 利 用 の 対 象 となっているため, 画 面 設 計 が 再 利 用 の 度 合 いを 決 めるポイントとなる.ソフトウェア 資 産 を 活 用 した 実 装 経 験 がある 開 発 者 が 要 求 開 発 を 行 うのが 望 ましいが, 最 初 の3 年 間 は 実 装 経 験 のない 開 発 者 が 要 件 定 義 を 行 う ケースも 多 いため,ドメイン 開 発 チームのメンバーが 設 計 された 画 面 をレビューし, 再 利 用 が できるよう 指 導 していた. 現 在 では 要 求 開 発 の 担 当 者 が 入 社 後 に 実 装 を 経 験 しているケースが 多 く, 望 ましい 状 態 に 近 づいている. 4.6.3. アプリケーション 実 現 アプリケーション 実 現 では,アプリケーションの 詳 細 設 計 と 実 装 を 行 う. 当 組 織 ではソフト ウェア 資 産 の 可 変 点 の 設 定 は XML 形 式 のファイルで 行 い,ソフトウェア 資 産 で 実 現 できない 機 能 は Java でコーディングする. 作 成 したコードはプラグイン 方 式 で 既 存 のソフトウェア 資 産 から 呼 び 出 され, 要 求 にあった 機 能 が 実 現 できるようになっている.また,ソフトウェア 部 品 は 体 系 化 されており, 開 発 者 はネーミングルールにより 必 要 な 部 品 が 簡 単 に 特 定 できるよう になっている. 27
4.7. 評 価 ここでは 4.4 の SPL 推 進 方 針 で 示 した 課 題 と 解 決 策 の 評 価 を 行 う.ソフトウェア 部 品 の 開 発 は 1999 年 より 行 っているが 2003 年 に 部 品 化 の 範 囲 を 拡 大 したため 評 価 対 象 は 2003~2012 年 の 10 年 間 で 開 発 した 約 300 の 業 務 システムとする. 4.7.1. 構 築 したソフトウェア 資 産 の 評 価 今 回 の 取 り 組 みでは 再 利 用 性 の 高 いソフトウェア 部 品 を 構 築 することで,AP 開 発 チームが 開 発 するソースコードの 量 を 削 減 し, 開 発 コストを 削 減 することが 目 的 であった. (1) 開 発 コード 量 削 減 の 評 価 開 発 したソフトウェア 部 品 によるコードの 削 減 量 を 評 価 するため,これまでにソフトウェア 資 産 を 再 利 用 して 開 発 したプログラム 13,174 本 を 調 査 した.その 結 果,4,595 本 (34.9%)のプロ グラムは, 既 存 の 可 変 点 に 対 する 設 定 のみで 実 現 できていた. 残 りの 8,579 本 (65.1%)は 可 変 点 に 対 して 追 加 コーディングを 行 っている. 追 加 コーディングを 行 ったソースコードのライン 数 の 分 布 を 図 19 に 示 す.ライン 数 は 空 白 行 やコメントを 取 り 除 いた 論 理 行 数 である. 平 均 値 は 164 行 であり, 中 央 値 は 77 行 であった. 文 献 [JUAS2011]のデータを 利 用 して, 機 能 当 たりのラ イン 数 を 計 算 すると 2084 行 となり,ソフトウェア 資 産 の 再 利 用 によりコード 量 が 約 92% 削 減 さ れており, 狙 い 通 りのソフトウェア 部 品 が 構 築 できたと 考 えられる. 図 19. 作 成 したプログラムのライン 数 の 分 布 (2) 開 発 生 産 性 の 評 価 コスト 削 減 の 成 果 を 評 価 するため, 文 献 [IPA2010]のデータと 比 較 する. 今 回 のソフトウェア 資 産 を 活 用 した 開 発 での 開 発 生 産 性 は 0.33FP 2 / 人 時 であった. 文 献 [IPA2010]に 掲 載 されてい るFP 生 産 性 に 今 回 の 結 果 を 加 えたものを 図 20 に 示 す. 今 回 開 発 したシステムの 規 模 は 1500 ~5000FP のものが 多 く, 左 側 の 箱 ひげ 図 で 見 ると 一 般 的 な 開 発 の 中 央 値 に 比 べ3~5 倍 程 度 の 生 産 性 が 実 現 できている. 右 側 の 分 布 を 見 ても 比 較 的 高 い 生 産 性 が 達 成 できていることがわ かる.ただし, 生 産 性 は 要 求 される 品 質 に 応 じて 再 利 用 とは 無 関 係 にテスト 工 数 が 増 加 するこ とも 考 えられる 為,この 評 価 結 果 は 参 考 値 と 考 えるべきである. 2 FP: ファンクションポイント[ALBRECHT1994] 28
図 20. 生 産 性 のベンチマーク 結 果 との 比 較 (3) 利 用 者 満 足 度 の 評 価 今 回 の 取 り 組 みでは 操 作 性 の 高 い 画 面 が 実 現 できる 高 機 能 な 画 面 部 品 を 提 供 することで NIH 症 候 群 を 回 避 することが1つの 対 策 であった. 部 品 機 能 の 強 化 による 利 用 者 の 満 足 度 を 評 価 するためにシステム 稼 働 してから3ヶ 月 後 に 実 施 している 利 用 者 向 けアンケート 調 査 の 結 果 を 集 計 した.その 結 果 を 図 21 に 示 す. 有 効 回 答 は 298 件 であった. 縦 軸 は 回 答 数 である. 良 い, 非 常 に 良 い という 回 答 が 188 件 (63%)あり, 利 用 者 のニーズに 応 えられていると 考 え られる. 180 160 140 120 100 80 60 40 20 0 図 21. 操 作 性 に 関 するアンケート 結 果 4.7.2. ソフトウェア 資 産 展 開 の 評 価 開 発 したソフトウェア 資 産 は 10 年 間 社 内 の 全 開 発 プロジェクトで 再 利 用 されており, 当 初 の 狙 い 通 り 展 開 できている.ソフトウェア 資 産 展 開 の 課 題 は 品 質 保 証 のための 構 成 管 理 と NIH 症 候 群 の 回 避 であった. 発 見 された 欠 陥 の 除 去 はドメイン 開 発 チームが 一 括 して 行 っているため 29
特 に 問 題 は 発 生 してない.また,AP 開 発 チームが 独 自 に 開 発 すると 手 間 がかかる 高 機 能 部 品 を 提 供 することで NIH 症 候 群 も 回 避 でき 積 極 的 にソフトウェア 資 産 を 活 用 する 取 り 組 みが 進 んでいる. 4.8. 考 察 4.8.1. ソフトウェア 資 産 構 築 に 関 する 考 察 今 回 調 査 した 13,174 本 のプログラムでは 318 個 のソフトウェア 部 品 が 延 べ 28,444 回 再 利 用 されている. 再 利 用 された 部 品 の 利 用 頻 度 を 図 22 に 示 す. 横 軸 は 部 品 を 示 し, 縦 軸 に 利 用 割 合 と 累 積 値 を 示 している. 最 も 利 用 回 数 の 多 かった 機 能 部 品 は 1,929 回 使 用 され, 全 体 の 6.78% を 占 めていた. 上 位 15 個 の 部 品 で 50.4%,34 個 で 70.5%,55 個 で 80.3%,120 個 で 90.0%, 200 個 で 92.9%,318 個 で 93.8%であった.200 位 以 下 の 部 品 の 使 用 率 は 0.02% 以 下 と 低 い 値 であった. 当 組 織 では 部 品 が 必 要 になる 前 に 網 羅 的 に 部 品 を 提 供 する 戦 略 をとったが 投 資 効 率 の 観 点 では 開 発 するソフトウェア 資 産 の 範 囲 は 利 用 頻 度 の 高 いものに 絞 り 込 む 戦 略 も 考 えられ る. 100.00% 90.00% 80.00% 70.00% 60.00% 50.00% 累 積 値 40.00% 30.00% 20.00% 割 合 10.00% 0.00% 1 26 51 76 101 126 151 176 201 226 251 276 301 図 22. 部 品 の 利 用 頻 度 4.8.2. 継 続 的 なソフトウェア 資 産 の 機 能 拡 張 SPL ではドメイン 開 発 チームとAP 開 発 チームを 分 離 し, 協 業 することが 望 ましいとされて いる[SEC2009]. 当 組 織 では 操 作 性 の 高 い 部 品 が 提 供 できたこともあり, 各 AP 開 発 チームは 汎 用 的 な 部 品 を 独 自 に 開 発 せず,ドメイン 開 発 チームに 依 頼 するようになった. 要 件 定 義 や 外 部 設 計 の 段 階 からドメイン 開 発 チームに 機 能 追 加 の 相 談 があり,AP 開 発 チームと 協 業 しなが らソフトウェア 資 産 の 拡 張 と 他 プロジェクトへの 展 開 ができる 体 制 になっている. 開 発 者 にと って 魅 力 あるソフトウェア 部 品 の 提 供 がソフトウェア 資 産 の 拡 張 展 開 サイクルがうまく 回 る 重 要 な 要 因 だと 考 えられる. 30
4.9. まとめ 本 章 では 画 面 および 画 面 遷 移 の 処 理 を 項 目 オブジェクトと 呼 ばれる 抽 象 化 技 術 を 利 用 して 部 品 化 することで 広 範 囲 に 利 用 できるソフトウェア 資 産 が 構 築 でき,エンタープライズ システ ムの 開 発 においても SPL が 効 果 的 に 適 用 できることを 示 した.ビジネスロジックではなく 画 面 出 力 を 部 品 化 することで 開 発 する 成 果 物 量 を 削 減 し, 開 発 コストの 削 減 が 実 現 できている.ま た, 画 面 部 品 の 機 能 強 化 により 利 用 者 の 満 足 度 を 向 上 することができている. 今 回 開 発 したソ フトウェア 資 産 は 住 友 電 工 以 外 の 組 織 にも 外 販 しており, 開 発 コスト 低 減 の 効 果 が 確 認 できて いる.なお, 本 章 で 示 した 事 例 は 画 面 が 少 なく, 計 算 ロジックが 多 いソフトウェアでは 効 果 が 期 待 できず 別 のアプローチが 必 要 となる. 今 回 の 取 り 組 みではAP 開 発 のプログラム 開 発 工 程 のみが 対 象 であった. 要 件 定 義, 設 計, テストの 領 域 でソフトウェア 資 産 を 構 築 し, 再 利 用 することで 更 なる 開 発 コスト 削 減 が 今 後 の 課 題 である. 31
第 5 章 管 理 図 を 利 用 した 効 率 的 な 欠 陥 管 理 手 法 の 評 価 5.1. はじめに 近 年,ソフトウェアの 利 用 は 社 会 インフラとなる 金 融 交 通 等 のシステムや 企 業 内 システム 等 に 広 範 囲 に 広 がっており,システム 障 害 が 国 民 生 活 や 企 業 活 動 に 支 障 をきたすこともある. 日 本 では 証 券 取 引 所 のシステム 障 害 等 により 経 済 産 業 省 が 情 報 システムの 信 頼 性 向 上 に 関 す るガイドライン [KEISAN2009]を 発 行 し, 情 報 システムの 品 質 改 善 の 取 り 組 みを 後 押 している. 文 献 [JUAS2013b]によればシステムの 品 質 は 毎 年 向 上 し, 納 品 後 に 顧 客 よって 発 見 された 欠 陥 の 密 度 は 中 央 値 で 0.20 件 / 開 発 工 数 ( 人 月 )まで 改 善 されている.また, 文 献 [CUSUMANO2003]によ ればインド, 米 国, 欧 州 にくらべ 日 本 の 欠 陥 密 度 が 1/10 以 下 と 極 めて 高 い 品 質 を 実 現 している ことがわかる. 一 方 で,テスト 強 化 により 高 品 質 を 実 現 している 企 業 はそのためのコストを 負 担 しており, 全 体 としてのコスト 削 減 が 課 題 となっている. 住 友 電 気 工 業 ではシステムの 品 質 向 上 と 投 資 効 率 の 両 立 をめざし,コスト 増 加 を 抑 制 しなが ら 品 質 改 善 を 目 指 してきている. 品 質 改 善 でよく 利 用 される 方 法 はテストを 重 視 し( 例 えば, テスト 項 目 を 増 やすことで 網 羅 性 を 上 げ),より 多 くの 欠 陥 を 納 品 前 に 検 出 する 方 法 である.し かし,この 方 法 ではテスト 設 計,テスト 実 施 のコスト 増 加 が 避 けられない.そこで 以 下 の2つ の 施 策 を 実 施 することにした. (a) 作 込 む 欠 陥 数 を 削 減 し, 修 正 工 数 の 削 減 を 図 る. (b) 作 込 まれた 欠 陥 をできるだけ 早 期 に 効 率 よく 検 出 する 仕 組 みを 確 立 し, 修 正 工 数 の 増 加 を 押 さえる( 例 えば, 設 計 の 欠 陥 がソースコードに 残 された 場 合, 欠 陥 場 所 の 特 定 コストが 増 加 するため). これらを 実 現 するためにはプロジェクト 進 行 中 に 欠 陥 の 作 込 と 検 出 の 状 況 を 把 握 し, 迅 速 に 対 策 が 実 施 できるようにする 必 要 がある. 組 織 全 体 でこれらの 施 策 を 実 施 するには 欠 陥 管 理 の システム 化 が 不 可 欠 であると 考 え,レビューやテストの 結 果 を 登 録 することで, 欠 陥 の 作 込 や 検 出 の 状 況 がリアルタイムに 把 握 できるシステムを 構 築 した.プロジェクトマネージャーが, 毎 週, 欠 陥 作 込 検 出 状 況 を 監 視 し, 問 題 発 生 後 すぐに 対 策 を 実 施 することで 欠 陥 の 再 発 防 止 ができるようになることが 期 待 される. 欠 陥 管 理 システムの 導 入 後, 導 入 前 に 比 べて 本 番 稼 働 後 3ヶ 月 間 に 検 出 される 不 具 合 は 1/2 以 下 となった. 本 論 文 では 開 発 した 欠 陥 管 理 システムの 機 能 とその 適 用 効 果 について 報 告 する. 以 降,5.2.では, 本 取 り 組 みの 背 景 について 説 明 する.5.3.では, 開 発 した 欠 陥 管 理 システム について 述 べ,5.4.では 組 織 内 での 展 開 について 紹 介 する.5.5.で 適 用 結 果 について 考 察 し,6. でまとめと 今 後 の 課 題 について 述 べる. 5.2. 取 り 組 みの 背 景 と 方 針 5.2.1. 組 織 の 状 況 今 回 対 象 とする 組 織 は 住 友 電 気 工 業 のグループ 企 業 を 対 象 としたエンタープライズ システ ムの 開 発 を 主 な 業 務 とする 組 織 である.システム 規 模 は 1000~3000FP[ALBRECHT1994]のもの が 多 い. 開 発 者 の 人 数 は 約 400 名 である( 但 し,システム 開 発 の 負 荷 により 協 力 会 社 の 人 数 が 増 減 する). 当 組 織 では 新 規 開 発 が 多 く, 既 存 システムに 対 する 保 守 開 発 に 比 べ 約 1.5 倍 となっ ている. 技 術 的 な 特 徴 を 次 の(1)~(5)にまとめる. (1) 標 準 化 の 徹 底 : システム 開 発 で 使 用 する OS,ミドルウェア,フレームワーク,RDBMS 等 の 開 発 環 境 をはじめ, 各 種 仕 様 書 やソースコードの 書 式 を 統 一 している. 開 発 者 はどのプ 32