FAQ

ここでは,Keyman's Net に掲載した記事に寄せられたご質問からの回答を中心に順次記述していきます.ここでは,UMLを利用した要求仕様の記述についてご説明しました.

作成者間でのバラツキが発生するのでは?

UMLに関かわる問題としては,オブジェクト図が人によって異なる可能性があります.実際にそうである経験をされたことも多いだろうと思います.しかし,モデルに関しては次の言葉を先ず心に留めるべきだろうと思います.「正しいモデルは存在しない.それが目的に合致しているかどうかだけである」.仕様に関しては,ソフトウェアシステムが明確に定義できればよいので,その目的に合致していればよいのだろうと考えます.ただ,一貫性を保つための方策がないわけではありません.仕様型では,あるアクションを説明するのに必要なオブジェクトのみを使用して説明します.ここにでてくるオブジェクトは,全体の大きなモデル図に含まれるべきです.作成としては,全体のオブジェクト図を作ってから,個々の仕様型を起こすこともできます.或いは,個々の仕様型を作成した後で,合成して一つの大きなオブジェクト図を作る.差異があれば修正するということも可能です.

新規に取り組むには,敷居が高いのではないか?

本当の難しさは,UMLの記法というよりも要求仕様の記述の難しさだろうと思います.例えば,IEEE Std830-1998(ソフトウェア要求仕様のためのIEEE推奨案)に示されるように,次を満足する必要があるだろうと思います.

  1.  正確である
  2.  明白である
  3.  完全である
  4.  一貫している
  5.  重要性,そして/または,安定性に従ってランク付けされている
  6.  検証可能である
  7.  修正可能である
  8.  追跡可能である

良い仕様を作るためには,これらを満足する必要があり,そのための一つの手段が仕様型だと考えています.しかし,そうはいっても敷居は高いのだろうと思います.一つの方法として,次のように段階的に進める方法があるかと思います.

  •  自然言語でコンパクトに仕様を記述してみる.
  •  仕様のうち,機能要件にでてくる用語をオブジェクトで表現できるか考えてみる.
  •  幾つかの記述されたオブジェクト表現を横並びで見て,一貫性が保てるようにする.

手戻りはどうする?

ここでは仕様を中心に考えています.設計が終わったあとで,或いはコードが作成されたあとで,仕様が変わったら?やはり,仕様をきちんと変更するべきだろうと思います.自動的にリバースする手段はないと考えています.どちらかというと,変更管理をきちんと実施することではと考えています.

結局のところUMLは使いにくいのだが.ダイヤグラムは沢山あるし.

多分,UMLの絵をもって文書としているところが一番の問題だろうと思います.「絵」と「文書」ですからもともと違いがあります.UML図はあくまで補助的に用いるべきと考えています.Nirvanaでは,メタファイル形式での出力をサポートしていますから,Windowsで文書を作成するお客様は,イメージ出力では得られない質の高い出力を得ることができます.

要求仕様をユーザと共有するのが難しいのでは?

要求仕様は,ユーザ(発注者)の了解を得る必要があります.おっしゃるとおり,書かれたものは,立場の異なる相互にとって理解容易なものである必要があると考えています.仕様型では,基本的なUML表記に関する知識が必要です.しかし,書かれたものを読むことに関しては,半日程度のトレーニングで十分と考えています.一方で,記述するにはもう少し時間が必要になります.きちんとかかれたものを読むのは簡単で,かつ認識のずれが簡単に見つかります.ただ,明確な記述ができるようになるには,正しい記述の選択ができないといけないので,もう少し時間が必要と云うことになります.これらのコストはかけるに値します.簡潔で明瞭な仕様を得ることができるようになりますから.

工数がかかるのではないのか?

仕様型の記述は,通常の仕様記述と特に変わりません.むしろ,明確な記述が可能になる分(使用する言葉をオブジェクトとしてきちんと定義できるので),時間は短くなるだろうと考えています.

仕様型だけで全て記述できるの?

仕様型は基本的に集合に基づく書き方になります.実際にクラス図がベースになっています.従って動的なふるまいに関しては,状態機械図(UML2.1でいうステートマシン図)が必要になります.Nirvanaはリンク機能を持っていますので,ダイヤグラム間を関連付けすることができ,自由に図間をジャンプすることができます.


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-06-22 (金) 18:49:42 (176d)