« ソフトウエア開発改革のアプローチ~そのニ:自動化とMDA、ATG、SATソルバ) | トップページ | Merry Xmas »

2008年12月22日 (月)

ソフトウエア開発改革のアプローチ~その三:自動化とMDA、ATG、SATソルバ)

(ソフトウエア開発改革のアプローチ~そのニ:自動化とMDA、ATG、SATソルバ)の続き

SATソルバによるコード解析は、SATソルバエンジンを搭載した検証をツールによるコード解析である。

SATを利用した形式的検証が現場へと急速に進んでおり、既にSATソルバエンジンを搭載した海外製の検証ツールが存在して現場で利用されている。

SATソルバエンジンは、論理関数の充足可能性判定を応用しているのだが、エレクトロニクスの分野でやはり先行的に実績がある。
ソフトウエアの分野では近年のCPUの劇的な性能向上とSATアルゴリズムの研究で実用化が可能になってきた。

SATはプログラム言語を問わず利用できる(と思う)が、プログラム言語から必ず論理式にしてからSATソルバエンジンで判定させることが必要となる。
プログラム言語から論理式へは、いきなり変換するのではなく少し準備が必要となるだ。

  • 代入文毎に新しい変数宣言し、その変数を使った式で記述する
  • ループ部分は、ループを用いない方法でコードを記述する
  • 必要に応じて条件と分岐を明確にする前に、if文などを追加あるいは修正する

これらのプログラム言語の修正やプログラム言語から論理式への変換作業は、通常は検証ツールが自動で実施してくれる。

利用者に興味があるのは、「SATソルバエンジンを搭載した解析ツールと従来の解析ツールでは何が異なるのであろうか」と言うことだろう。

SATソルバエンジンの実現アルゴリズムにも依存するので、検証ツールによって異なると思われるが、代表的には、

  • デッドコードの発見
  • マルチタスクプログラミングに関連する不具合(排他制御,デッドロック,etc)の発見
  • 冗長なコード記述の発見
  • パフォーマンスに問題があるコードの発見

などを得意としている。従来の静的解析ツールでは解析評価できなかった、プログラムを動作してみないと分からない不具合の発見まで可能になる。開発の早期の段階で少しでも不具合部分が発見できるのは、やはり大きいな意味を持つ。

SATソルバエンジンを搭載した解析ツール含め、MDA、ATGを利用して効果を挙げるには開発プロセスと検証プロセスの戦略が重要である。

SATはその性質上、大きなコードを一度に解析することは向いていない
つまり、SATソルバエンジンを搭載した解析ツールをどのように開発や検証作業の中に取り込むかが重要となる。
どのようにすれば作業コストを減らしながらも、品質を向上できる作業の手順を検討することになる。

SATが大きなコードを一度に解析することは向いていないことは、実開発では本質的な問題にはならない。

検証作業は本来、オブジェクトや関数=>コンポーネント(あるいはサブシステム)など小さい粒度から大きい粒度の順序で、検証を積み上げ式に実施していくことが重要である。

つまり、SATソルバエンジンを搭載した解析ツールを検証作業の過程で段階的に利用するのだ。

もし、いきなり一度に大きなサイズのソフトウエアを、何らかの解析ツールにかける事を実施している企業があれば、現在の開発や検証作業の進め方が間違っていると思った方が良い。

開発対象の大規模化&複雑化に伴い、エンジニアが人力のみで、十分なレビューやテストを実施することは限界である。既に限界を超えている状態である。

科学的なアプローチとツールを利用した技術戦略を利用しないで、人海戦略や担当者任せのアドホックな開発が実施されている企業は、設計が不十分であり、レビューやテストが不完全なままの状態で出荷することになる
このような体質はメーカーの倫理問題も問われる、遅かれ早かれ品質面でそのうち不具合による大きな事故を引き起こすだろう。

また、建築物の耐震偽装、食品の産地偽装など偽装問題続きで騒がれているが、ソフトウエアの分野でも今のままの現状が続けば、「品質の偽装」をおこなう企業が出てこないとも限らない。

そのためにも、深夜までの残業、派遣社員に依存した人海戦術、安易な国内外へのアウトソーシングという「一時しのぎの方法」から脱却し、ソフトウエア開発改革が必要となる。

=HSCI Takanari Hashimoto(URL:http://hsc-i.com/)=

|

« ソフトウエア開発改革のアプローチ~そのニ:自動化とMDA、ATG、SATソルバ) | トップページ | Merry Xmas »

「パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/112989/43495640

この記事へのトラックバック一覧です: ソフトウエア開発改革のアプローチ~その三:自動化とMDA、ATG、SATソルバ):

« ソフトウエア開発改革のアプローチ~そのニ:自動化とMDA、ATG、SATソルバ) | トップページ | Merry Xmas »