MINERVA superseeded IF/Prolog.
Please see
http://www.ifcomputer.co.jp/MINERVA
for details.
We discontinued to sell IF/Prolog Dec 31. 2003.
Dedicated technical support for IF/Prolog ended Dec 31 2008.
This site is maintained as a community service only.
ノキア携帯電話はヨーロッパで最大、世界では2番目最も大きい携帯電話メーカーです。
ノキアのソフトウェア開発過程の組織的な改善は、1987年以後行われました。焦点は、始めソフトウェア開発のやり方から置かれ、その後、品質とソフトウェア工程監視へと進みました ― 1992年にはISO 9001を取得しました。
このドキュメントは、ASTAPセミナー「通信分野における先端ソフトウェアセミナー」(1995年6月21日にストックホルムに行われた)用に書かれたドキュメントを元に、1996年4月にアップデートされました。ノキアの会社データは、現在の数字です。
ノキア携帯電話は、
- すべての一般に使われているセルラシステムへ携帯電話を納める世界的な会社
- ヨーロッパでは最大、世界で第二の携帯電話製造業者
- 発展が著しいデジタルセルラーデータ市場において。製品と技術の中で先駆者
- 1995年のネット販売は、16,52,000,000 FIM以上(1994年に10 702,000,000FIM )
- 社員11,800人
の会社です。
ノキア携帯電話は、フィンランド・ヘルシンキに本社を持つノキア(世界的な電話通信と
電子関連のグループ)の一部です。ノキアは、45の国に約34000人の従業員を持ち、1995
年にはUSD 8,400,000,000の純利益をあげました。
ノキアソフトウェア開発の背景
ノキアのソフトウェアの開発過程の組織的な改善は、1987年以後行なわれました。当初、焦点は、ソフトウェア・製品とソフトウェア開発手法に置かれていました。この間に、デザインツール、コードジェネレーター、テスト環境等のようなソフトウェア開発ツール、手法が選ばれて、使用されました。
その後、焦点は、品質とソフトウェア工程開発に移されました。改善すべき点は、問題を分析して、その工程をISO9000-3のガイドラインと比較することによって明確
化されました。ソフトウェア工程と組織の両方を改善するための活動が何度も行なわれました。この努力の結果、ノキアのソフトウェア工程は、1992年にISO 9001の認証を受けました。
ソフトウェア工程は引き続き、改善されています。製品バージョンと改訂版が増え
、ソフトウェア開発時間がより短縮される中、再利用とカスタム化が重要になりま
す。ノキアの製品には、ニーズと要求事項の異なる広範囲のユーザーグループが存在します
、そして、製品カスタム化の最も経済的な方法は、平行してソフトウェアバージョンを作ることです。現在、ノキアでは、再使用可能なソフトウェア部品とソフトウェアカスタム化を生成するための先進技術の開発をソフトウェア工程の改善領域と見なしています。
Prologツール
80年代後半のAIブームの中、ノキアではルールベースのシステムが研究されました、そして、Prologを使った小さな経験が蓄積されました。ソフトウェア開発環境は、
VAX-VMSで、最初の『本当のProlog』IF/Prolog v.3.2.4がインストールされていました。
同時に、構造分析とデザイン(SA/SD)のための様々なツールが市場に出回っていた中、Prosa Structured AnalysisとDesign EnvironmentがCASEツールとして選ばれました。このツールは、また、Prologフォーマットの中でもグラフィック・モデル情報を保存できるツールとしては初期のものでした。
ソフトウェア開発は、製品種・製品数の増加のためにより複雑になています。このため、
ソフトウェア生産の自動化および既存ソフトウェアを再利用に対する必要性(そして、可能性)は、ますます高まっています
主にVAX-VMSでPrologアプリケーションが開発されている理由としては、
- ソース・コードから定量的情報を得る
- 携帯電話ソフトウェアの一部を構成する
- 自動的に設計資料からコードを生成する
為です。
これらのツールは、現在も異なるノキアの事業所で、そして、異なる種類のプラットホームの中で、日常的に使用されています。VAX-VMSに加えてHP-UXワークステーションも、ソフトウェア開発のために使われます。過去数年の間に、Prolog言語も、初期のエジンバラ標準から最新のISO Prolog標準へと開発が進み、現在ノキアの異なる種類のプラットホームの中に 3つの異なるIF/Prologバージョンがあります。これにもかかわらず、我々のPrologアプリケーションの大部分は、まだそれらのいずれかの中ででも実行可能です。
ケース1:ソフトウェアを構成する
問題:
市場領域とユーザーグループに応じて、異なる種類の携帯電話が必要です。
市場領域とユーザーグループに特有のソフトウェアを市場に出すために、汎用目的のソフトウェアを構成するにはどうしたら良いでしょうか? 該当するソフトウェアは以前C言語で書かれていました、そして、そのコードのコンフィギュレーション可能な部品には、特定のCコンパイル・フラグが使われています。
解:
ソフトウェアの中の異なる部品を異なる電話の中で取り込む為のルールを指定することができます。
。ルールは、コンパイル・フラグを選択・非選択するため使用されます。コンパイル・フ
ラグは、その後、コードの一部として取り込まれるか、最終的なソフトウェア製品から取り除かれま
す。これらのルールは、携帯電話の
に応じて異なるPrologファイルの中で定義されます。
コンフィギュレーションツールは、Prologの中で実現されます。それは、データベースからすべての関連したソース・コード・ファイルを選んで、条件つきのコンパイルに必要なヘッダーファイルのセットを生成します。
Prologフォーマットされたコンフィギュレーションファイルが、入力としてそのツールのために使われます。この種類の構成は、携帯電話のソフトウェアの一部のためにだけ行われます。
ケース2:自動的にコードを生成する
問題:
携帯電話ソフトウェアの一部分は、SA/SDツールと構造化設計法(応用表記法をもつWard & Mellor)を使って設計されています。これは、例えばステートマシンに基づいたアプリケーションだけに適用されます。たとえば、ステートマシンを使ってモデル化されたソフトウェアの部分であればこれに当たります。典型的なモデルは、いわゆる『階層モデル』と共に連結されるいくつかの状態転換図から成ります。生成するデザインは、どのようにそのコードと実際の設計文書の間の一貫性を保証し、速くコンパクトなコードを実装すればよいのでしょうか?
解:
グラフィックSA/SDツールを使い、これにより図をPrologフォーマットの中で保存し
ます。このPrologインタフェースは以下のために使用することができます:
- 典型的な表記法を分析
- ソフトウェア設計を構成
- コード自動的生成
そのコードジェネレーターはPrologで実現されます、そして、非常に最適化されたコードを生成し、他のソース・コード・ファイルの中で取り込まれます。最初のうちは、その状態移行図は自動的に内部のPrologデータベースに読取られます、そして、実際のコード生成の前に、そのデータベース(そして、デザイン・ドキュメント)の一貫性がチェックされます。また、コード生成の間に、予選択された製品機能に従って設計を構成することが可能です
。
なぜPrologを使うのか?
Prolog言語は、これらの2つのケースで以下の理由により選ばれました:
- 解が、簡単にルール書式に書くことができます。
- ルールを、目標領域項を使って書くことができます。
- ルールベースのユーザ・インタフェースは、自然言語構造にしたがって簡単に修正できます。
- Prologのルールは、特別なパーサーを必要としません。
- リストと内部のデータベースと再帰とバックトラックにより、効果的なプログラミングが可能です。
- C言語インタフェースにより、多くのアプリケーションの開発をすることができます。
- プロトタイピングとプログラム開発を迅速に行うことができます。
Prologアプリケーションが簡単に異なるプラットホーム(および、IF/Prologの別バージョン)に移植することができることは、ノキアにとって大きい利点でした。一度ツールが開発された後は、異なるシステム環境への移植には、小さな変更しか必要ではありません。また、開発時間は、Prolog言語の性質と素晴らしい視覚的なデバッガーのために短縮されました。しかし、いくつかのの欠点は明らかになりました。Prologコードを理解して、効果的に書くことができる人の数は限られています。そして、アプリケーションを異なるサイトとプラットホームで実行させる為には、ランタイムライセンスが必要です。(スタンドアロンPrologアプリケーションが必要です)
得られた利益
効果的なソフトウェア開発工程の中で、高いソフトウェア品質、最小限のソフトウェア生産コストと最大ソフトウェア再利用は、常に必要事項です。上述したPrologツールにより以下のよう利益が発生しました。:
- ソフトウェア開発をより速く行ない、管理がより簡単になった。
- ソフトウェア品質は改善された。(手動でのコーディングはより少なくなった)
- 最適化コードが生成された。
- ソフトウェアコードの再利用に役立った。
- ソフトウェア開発のために使われる時間が減少した。
現在、Prologは我々にとって有益な選択肢であったと言えます。将来ソフトウェア工程改善が続く中で、『第二世代』のために、ソフトウェア開発を支えるための企業内ツールが必要となります。これらのツールは、コード再利用、ソフトウェア品質と工程効果を最適化するために必要となります。
我々は、過去にProlog実験に成功しました。そして今後もPrologは、ノキア内のツールの強力な候補として企業内ツール開発の中で存在し続けるでしょう。
国
フィンランド、デンマーク、ドイツ、グレートブリテンとUSA
ハードウェア
HP 9000/700の数列UNIXワークステーションDEC VaxStations(VM)
DEC AlphaStations(VM)
ソフトウェア
IF/Prolog(C.)
|