他社製ソフトを使う時の注意点

2017年12月8日

他社製ソフトウエアは要注意です

他社製ソフトウエア を開発するソフトウエアの一部としてを利用する時には色々と注意する点があります。他社製ソフトウエア が購入ソフトウエアなのかオープンソースソフトウエアなのかフリーソフトウエアなのかによって、注意点や対策も変わってきます。いずれにしても、自社開発のソフトウエアと同じように、品質を保証し製品のライフサイクルに渡って保守の提供が必要になるので、それが実現できるかどうかという点が重要な注意点です。

他社製ソフトウエアは使っていますか?

皆さんは開発するソフトウエアの中に他社製のソフトウエアを組み込む事はありますか? グータラ親父が関わってきた組み込み系ソフトウエアの開発では、昔はソフトウエアの全てを自社開発していたのですが、インターネットが広まってきた頃から、他社製のソフトウエアの組み込みが必要となってきました。その後もハードウエアの性能向上に従ってソフトウエアの大規模化が進んだ結果、他社製ソフトウエアを使う比率がどんどん高くなっていきました。 今では90%以上が他社製ソフトウエアです。

他社製ソフトウエアにも大きく3種類に分かれますね

  • 購入ソフトウエア:他社からソースコードやオブジェクトコードを購入して入手します
  • オープンソースソフトウエア:OSSライセンスで公開されたソースコードを入手します
  • フリーソフトウエア:主にチップベンダが提供するサンプルコードです

では、これらの他社製ソフトウエアのメリット・デメリットはどんな物でしょうか? デメリットによくい注意して取り込まないとソフトウエア開発プロジェクトに大きな問題を引き起こす事もあります。では、どんな事に注意すれば良いのか順番に見ていきましょう。

購入ソフトウエア

製品に組み込む時に一番使い勝手が良いのが、他社が販売しているソフトウエアを購入して入手する購入ソフトウエアです。購入の仕方には販売元によりいろいろですが、よくあるのはソースコードの開発ライセンスとそのソースコードから生成した実行コードを製品に組み込んで販売できる再販売権を購入するパターンですね。ソースコードが提供されずに、実行コードに組み込むためのオブジェクトコードだけを販売している事もあります。これらの購入ソフトウエアについてメリットとデメリットを書き出すと以下のようなところででょうか。

メリット

  • 販売会社が品質を保証してくれる(販売会社はなんらかのテストを実施している)
  • 販売会社から技術支援が受けられる(問い合わせ対応だったり利用方法の講習だったり)
  • 場合によってはソフトウエアの保守も受けられる

デメリット

  • 導入時の初期費用や販売時のロイヤリティ費用が掛かる
  • 保守を受けるにも年間保守契約の締結が必要で費用が掛かる(初期費用の1割とか)
  • 契約によっては製品の販売範囲に制約が発生する場合がある(アジア限定とか)

まあ、要するに有料なのでそれなりに品質が良く技術支援も得られるので、自社のソフトウエアに取り込み易いというのがメリットです。デメリットは費用が掛かる事ですが、もう一つ忘れてはいけないのが、保守がいつまで提供されるかどうかです。特に海外のベンダからソフトウエアを購入する時には、保守条件をよく確認する事が大切です。

保守サービスとしてどのような内容が提供されるのか、それは何時まで継続されるのか? ベンダによっては保守はソフトウエアをリリースして3年までとか割と早い時期に保守が終了してしまうような条件を提示している事もあるので、注意しましょう。 ソースコードが購入できないオブジェクトコードだけの販売形態をとっているソフトウエアを採用して、採用後3年でその保守が終了してしまい、その後に重大なセキュリティ上の問題が発覚した、という様な事になると結構大変です。

オープンソースソフトウエア

最近はオープンソースソフトウエア(Open Source Software) を製品に組み込む事も増えてきました。購入ソフトウエアと違って費用が掛からないのが嬉しいのですが、あまり安易に使うと痛い目にあいます。このオープンソースソフトウエアについてメリットとデメリットを書き出すと以下のようなところででしょうか。

メリット

  • 提供されている機能の種類が多いので必要なソースコードが見つかる可能性が高い
  • ソースコードが入手できるので自社で機能追加や品質改善ができる
  • 標準的な物なら市場での稼働実績が豊富にあり枯れたソフトウエアが期待できる

デメリット

  • 品質保証は原則としてされていないので自社で品質を保証する必要がある
  • 組み込みに必要な技術情報は自社で集めなければならない場合が多い
  • ライセンス条件が多種多様で確認に手間がかかる
  • 保守が何時まで提供されるのか判らない

オープンソースソフトウエアは、ソースコードが公開されているので一見手軽に利用できそうに思えるのですが、実際に自社の製品に組み込むとなると、結構な手間が必要です。まず第一に、誰も品質を保証していないので、自社で品質を保証する必要があります。リリースの前にしっかりと社内テストが必要になります。また、もしもリリース後に潜在バグが見つかった場合、保守のために自分達でソースコードを解析してバグ取りをする事も必要になります。また、ライセンスの条件が多種多様で、それらのライセンス条件が相反していないかの確認も必要です。これらの事に対応するだけの作業工数をちゃんと見積もって、その上でやはり採用のメリットがあるならば採用しよう、というように十分に事前検討をする事をお勧めします。

フリーソフトウエア

フリーソフトウエアって何でしょう? 実はフリーソフトウエアという名称は世間一般には存在しないので、この言葉はグータラ親父の造語なのです。自由に使っていいけど、品質保証も保守も提供しない、でもオープンソースソフトウエアのような公開ソフトウエアで無いものを、フリーソフトウエアと呼んでいました。 具体的には、何等かのチップを利用するために、チップベンダが無償で提供してくれるドライバーソフトウエアやSDK(Software Development Kit)等ですね。ベンダによっては、サンプルソフトウエアという名前で提供してくれる時もあります。では、メリットとデメリットを上げてみましょう。

メリット

  • ベンダによる技術支援が受けられる場合が多い(チップを使ってもらうためなので)
  • ソースコードで提供されるので自社で機能追加や不具合修正ができる
  • ややこしいライセンスに縛られる事はない

デメリット

  • 品質は保証されていない事が多い
  • 保守は短期間なら実施される事もあるが、基本的には保守は提供されない

フリーソフトウエアは殆どの場合チップベンダが自社製のチップを使ってもらうために、そのチップを使うのに必要な標準的な機能を作りこんだソフトウエアを無償で提供するという物が多いです。一応動作はするのですが、チップベンダでも十分なテストをして品質を保証している訳でもないので、使う場合には自社でしっかりとテストをする事が大切です。チップベンダが提供してくれているソフトウエアなので大丈夫だろう、と誤解して十分なテストをせずに使っていると、思わぬ潜在バグに悩まされる事もあるので、注意が必要です。

他社製ソフトウエアにはいろいろと注意する点があります

グータラ親父がソフトウエアの開発を他社製ソフトウエアを使う時に気を付けていた事について、ざっと書き出してみましたが、結構いろいろな項目があります。概要だけは少しは判って頂けたかもしれませんが、各々の内容についてもう少し具体的に紹介した記事を、この後に少しづつ書いていく予定です。

とはいえ何時になるのかまだ判らないのですが、時間を見つけて書き溜めていく予定です。記事が書けたら、この下に具体的な記事のリストが見えるようになりますので、興味のあるかたは参照ください。

Posted by グータラ親父