このページの本文へ移動します。

KINDAI UNIVERSITY

  • 近畿大学ホーム
  • 学部・大学院一覧

最先端研究

近畿大学理工学部のトップランナー いま注目の最先端研究

ソフトウェア開発の失敗を減らすために
近畿大学理工学部 情報学科 講師
角田雅照

社会に必要不可欠なソフトウェア

私が取り組んでいる主な研究分野は「ソフトウェア工学」と呼ばれるものです。
ソフトウェア工学について説明する前に、まずソフトウェアについて説明しましょう。学生の皆さんにとって身近なソフトウェアとして、ワープロソフト、ゲームソフト、スマートフォンの基礎となるOS(オペレーティングシステム)と呼ばれるソフト、歌声合成ソフトなどが挙げられると思います。
ソフトウェアはそのような身近な場面だけでなく、会社の仕事でも広く利用されています。例えば鉄道の券売機を動かしているソフトや銀行のATM(現金自動預け払い機)を動かしているソフトなどがあり、さらに多くの会社では販売管理ソフト、給与計算ソフト、会計管理ソフトなどと呼ばれるソフトを用いて仕事を行っています。
会社での仕事はソフトウェアを使わなくても、紙や電話、FAXを使って処理することもできます。コンピュータとソフトウェアが登場する前は、そのようにして仕事をしていました。ただし、ソフトウェアを使う場合と比較して、非常に手間がかかる。すなわち非効率という問題があります。そこで、紙などを利用して仕事をする代わりに、販売管理ソフトなどを用いて、仕事の効率を高めるということが行われているのです。なぜなら、仕事が非効率だと他社との競争に負けたり、従業員に充分な給与が払えなくなったりするため、これを避けなければならないというわけです。

ソフトウェアによる仕事の効率化

ソフトウェア開発は難しい

「ソフトウェアによって仕事の効率を高める」というのがソフトウェアを利用する目的となるわけですが、そこにたどり着くのは決して簡単ではありません。仕事で使うソフトウェアはソフトウェア技術者が作る、すなわち開発をするわけですが、開発では様々な問題が起こります。ここで、仕事で使うソフトウェアの開発について説明しましょう。説明では「他の人が使うソフトウェアを、仕事として作ること(受託開発)」を想定しています。

ソフトウェア開発には以下の特徴があります。

  • 多くの人で作る(8人程度。多い場合は50人を超える場合もある)
  • 作る時間が長い(半年程度。長い場合は1年半を超える場合もある)
  • 作るものが大きい(4万8千行程度。大きい場合は50万行を超える場合もある)
  • 作る人は使う人に、どんなソフトを作って欲しいかを聞く必要がある
  • 作る人は使う人にお金を請求する
  • 使う人は仕事でソフトウェアを用いる

このような特徴があるため、ソフトウェア開発では計画及び管理が必要となります。例えば、日曜大工(小さくて自分で使うもの)なら計画や管理は必要ありませんが、建築物(大きくて他人に売るもの)を作るならこれらは不可欠となります。
もしソフトウェア開発において、計画・管理が不十分だと、様々な問題が起こります。最も大きな問題は、ソフトウェアの品質です。ソフトウェアの品質が低いとは、ソフトウェアが動かない、ソフトウェアの計算結果がおかしい、などを指します。例えば、インターネットの販売を管理するソフトウェアが動かなくなると、注文を受け付けられなくなり、給料は払っているが売上は出ない状態になります。こうなると「ソフトウェアによって仕事の効率を高める」ことが目的であるにも関わらず、逆の結果がもたらされることになります。
また、計画・管理が不十分な場合、締切(納期)に間に合わないということが起きます。これは機会損失と呼ばれる問題を起こします。例えば、クリスマスのケーキを販売するソフトウェアの開発が遅れてしまい、クリスマス後に完成したとすると、ケーキの売り時を逃し、売上が下がるという問題が起きます。さらに、コスト(お金)の問題が起きることもあります。例えば、ソフトウェア開発を始める時に、技術者2人が1ヶ月間で作ると見積もり、200万円で売ると契約したとします。しかし、実際には技術者3人が1ヶ月間で作ることになり、費用が200万円以上かかったとすると、ソフトウェアを開発した企業は赤字となります。
上記のような品質、納期、コストに問題がないソフトウェア開発の割合は30%程度であるという調査もあることから、ソフトウェア開発は決して容易ではないということがわかるかと思います。

ソフトウェアの品質に問題がある例

ソフトウェア工学により開発を支援する

ではソフトウェア開発の失敗を避けるために、どのように開発を計画・管理すべきでしょうか。それを示している学問が「ソフトウェア工学」です。私は特に「ソフトウェア開発工数見積もり」に重点的に取り組んでいます。ここで工数とは作業量のことであり、単位は「人月(人数×期間)」となります。工数はのべ人数ともみなせます。例えば2人月の作業量とは、2人で開発すると1ヶ月かかり、1人で開発すると2ヶ月かかる程度の作業量となります。

技術者数と納期との関係(工数:2人月)

工数の見積もり(予測)はソフトウェア開発の初期に行われます。工数はファンクションポイント(*1)などに基づき、類似性に基づく見積もり方法(*2)などにより見積もられます。その結果に基づき、ソフトウェアの納期はいつにするか、価格はどの程度とするか、技術者は何人配置するかなどを決定します。もし見積もった工数と実際(ソフトウェア開発が終わった後)の工数が大きく異なる場合、納期遅れやコストの超過を引き起こします。そのため、工数の誤差をいかに小さくするかが非常に重要となります。

私が取り組んでいる研究テーマのひとつは、この誤差を小さくすることであり、他大学や海外の研究者と共同で研究に取り組んでいます。その成果のうちのひとつはESEM (International Symposium on Empirical Software Engineering and Measurement) というトップクラスの国際会議で表彰されています。これからもソフトウェア開発の失敗を少しでも減らすために、研究に取り組んでいきたいと考えています。

メッセージ

私は大学卒業後、3年半ほど企業でソフトウェア開発の仕事に就いていました。そこでソフトウェア開発の難しさを、身を持って知りました。ソフトウェア開発を少しでも改善するにはどうしたら良いかを自分で勉強しているうちに、ソフトウェア工学という学問にたどり着きました。そこから、ソフトウェア工学に取り組みたいという思いが強くなり、会社を辞めて大学院に入学して今に至ります。出身は経済学部で、大学を卒業した時点では理系の研究者になるとは思ってもいませんでした。若い皆さんには多くの可能性があります。「自分はこんなものだ」と自分の可能性を限定してしまうのは非常にもったいないと思います。自分の可能性を信じて、色々なことにチャレンジしてみてください。

用語説明
*1 ファンクションポイントとは
ソフトウェアの大きさを表す数値であり、ソフトウェアの設計書から求められる。この数値が大きいほど、ソフトウェアが複雑で、多くの機能を持つことを示す。
*2 類似性に基づく見積もり方法とは
協調フィルタリングとも呼ばれる方法であり、過去の似た事例を発見し、そこから見積もりを行う方法である。ショッピングWebサイトでの商品推薦にもしばしば利用されている。

情報学科 講師
角田雅照

所属 学科 / 情報学科専攻 / エレクトロニクス系工学専攻
研究室 ソフトウエア工学研究室
略歴
2007年 奈良先端科学技術大学院大学情報科学研究科博士後期課程修了 博士(工学)
2007年 奈良先端科学技術大学院大学情報科学研究科 特任助教
2012年 東洋大学総合情報学部 助教
2013年 近畿大学理工学部情報学科 講師
受賞
2012年 International Symposium on Empirical Software Engineering and Measurement (ESEM), Best Short Paper Award )
2012年 International Workshop on Empirical Software Engineering in Practice (IWESEP), Best Paper Award)
2015年 ソフトウェアエンジニアリングシンポジウム2015,インタラクティブ賞
2015年 SEC journal,論文賞(所長賞)
最先端研究一覧

このページの先頭へ

MENU閉じる
      訪問者別