• 検索結果がありません。

オランダ花市場

2012/11/15 形式手法の導入 ©  2012,    Sako  Hiroshi   34

このプロジェクトを受託した

Altran  Praxsis  

という会社は、顧客との契約も形 式仕様の項目ベースで行い、問題が生じたときにそれがどちらの責任か が逐一明確になるようになっている

iFacts: テストケースの記述  

自然言語  +   形式記述

Test Design

厳密な仕様策定手順の一例

• 

要求記述の内容のうち、問題領域自身の性質(システムが変える ことのできない部分)と、構築対象(システムが影響を及ぼす部分)

への記述を区別する (

à  

領域資産化)

• 

要求記述を読み、用語を切り出す

• 

クラスもしくは型と、関数もしくは操作の候補を見つける

• 

クラスの構造(型、属性、関連)に関する概略を書く

• 

関数/操作に関する概略を書く(シグニチャを決める)

• 

要求記述から不変な性質を抽出して定義する

• 

事前条件、事後条件もしくは定義本体を記入することによって、関 数/操作定義を完成させる、必要ならば型定義を変更する

• 

作成された仕様のモデルが利用者の期待や、要求中に現れる項 目や制約を満たしているかどうかをアニメーション等を通して検証 する

 

• 

以上のステップを必要なだけ繰り返す

2012/11/15 形式手法の導入 ©  2012,    Sako  Hiroshi   36

「問題領域」の語彙の充実

厳密さ ((機械処理、テスト可能))

貸出機能

:  

図書館型 * 書籍型 * 利用者型

 

             -­‐>  

図書館型

貸出機能

(lib,  book,  user)  ==  

       is  not  yet  specified      pre  

         book  in  set  dom  lib.

登録書籍

 

             -­‐-­‐  

書籍が登録書籍であること

and  user  in  set  lib.

登録利用者

 

               -­‐-­‐  

利用者が登録利用者であること

and  

書籍貸出可能数

(lib,  book)  >  0  

               -­‐-­‐  

書籍に貸し出し用の余裕があること

and  (user  in  set  dom  lib.

貸出中

and  (card  lib.

貸出

(user)  <  3))    

               -­‐-­‐  

利用者の利用制限冊数を超えていないこと

post  

               -­‐-­‐  

指定された書籍が「貸出中」に登録されてい

(user  in  set  dom  RESULT.

貸出中

)  and  (book  in  set  

厳密さ+読み易さ

貸出機能

:  

図書館型 * 書籍型 * 利用者型

 

             -­‐>  

図書館型

貸出機能

(lib,  book,  user)  ==  

       is  not  yet  specified      pre  

       

登録済み書籍

(lib,  book)  

       and  

登録済み利用者

(lib,  user)  

       and  

貸出可能書籍

(lib,  book)  

       and  

利用者貸出制限数内

(lib,  user)  

   post  

       

書籍貸出中

(RESULT,  book,  user);

問題領域の語彙を充実させることに よって仕様の見通しが良くなる。

 

一部は仕様部品資産として残る

既存資産の進化例

Level  0  

現状

Level  1  

現状記述

Level  2  

現状改善

Level  3  

次世代準備

(既存の仕様書) 階層構造を持つ 機種共通部分と独自部分

に分かれる

(仕様の回帰テストにより)既存の日本語仕様書との一致を保証済み 全体像を把握しやすい

仕様の十分な抽象化

検索性の向上 ある関心に特化した   閲覧性がある

日本語仕様書   Ver.  A

日本語仕様書   Ver.  A

日本語仕様書   Ver.  B 形式仕様書  

Ver.  X

形式仕様書   Ver.  Y

日本語仕様書   Ver.  C 形式仕様書  

Ver.  Z

日本語仕様書との対応が明確 で読みやすい記述

リファクタリング   フィードバック  

2012/11/15 形式手法の導入 ©  2012,    Sako  Hiroshi   38

階層記述の例

記述階層名 記述目的 記述例

検証シナリオ階層 仕様アニメーションを行うための 検証シナリオ(テストケースなど)を 定義した階層

(

例えば非接触

IC

カードの場合

)

個別コマンド検証シナリオなど

機能仕様階層 特定の応用に対する機能仕様を 定義する階層

カード操作コマンド仕様など 問題領域データ階層 問題領域に特有の共通データ等

を定義した階層

具体的なファイル構造など

問題領域階層 共通問題領域で繰り返し利用さ れる関数や不変条件などを定義す る階層

カードファイルシステム、データパケッ トの変換など

共通領域階層 特定の問題領域に依存しない階 層。ネットワーク(数学的な意味で)

や、組合せアルゴリズム、文字列 や数値に関する共通処理などがこ こで記述される

階層型データ処理など

学習リソース

2012/11/15 形式手法の導入 ©  2012,    Sako  Hiroshi   40

利用できる様々なリソース

• 

様々な実践ノ ウハウの提供

• 

実践ノウハウ の共有

•  VDM,  B,  SPIN,   etc  …

• 

基本的な情報

書籍 ツール

コンサ ルタン

ト コミュニ

ティ

VDM

研究会

 

SEA  SIGFM  

関連したドキュメント