Technology‎ > ‎FAST/PASTA‎ > ‎

PASTA(Process and Artifact State Transition Abstraction)



PASTAの概要

  PASTA(Process and Artifact State Transition Abstraction)とは、グラフィカルで、体系的で、精密な、構造化されたやり方で、複雑なシステムをモデリングする手法です。プロセスの概要を簡潔に示すものに使うことができる一方で、自動化を可能にするレベルの精密かつ詳細な記述を与えることもできます。
 PASTAは、成果物の状態(A状態)と、プロセスの状態(P状態)という、2つの状態を抽象化して利用します。そのため、プロセスおよび成果物を抽象化することを強調し、「Process and Artifact State Transition Abstraction(PASTA)」と呼ばれています。

PASTAの目的

 PASTAの目的は、プロセスを実行するエンジニアが、プロセスの作業成果物について、次のことを正確に把握できるようにすることです。
  • 個々の時点において実行できる作業と実行できない作業 
  • 作業成果物の完成基準 
 PASTAは、イベントの全体的な順序を規定しようとしない点で、完成されていません。 PASTAは、むしろ、個々の時点で次に着手することのできるアクティビティの1つ1つを記述し、エンジニア自身がこの中から進むべきアクティビティを選択するように促します。

PASTAにおける状態マシン

 PASTAは、プロセス内で行われる決定について、並列に動作する状態マシンを表現することができます。また、PASTAで記述される状態マシンの各状態は、あるロールを担う人たちが実行するアクティビティに対応しています。PASTAで状態ベースのプロセスモデルが用いられるのは、ソフトウェア開発など複雑なプロセスで発生する並列性や後戻りを直ぐに状態モデルにマッピングできるからです。特に、状態モデルでは以前に通過した状態に簡単に遷移できるため、後戻りが表現可能です。 また、状態マシンの並列性によって、同時に複数の異なるアクティビティを実行することができます。



PASTAモデルの要素

 PASTAモデルは、以下の7つの要素から構成されています。

(1)ロール
 「ロール」は、責務、任務、制限、または、作業部隊などの1ユニットを表現するのに当てられます。これを多数作成することにより、組織を記述し、プロセスを実施する人々に作業を割り当てることができます。「ロール」では、あるアクティビティを誰が実行できるかを示します。

(2)成果物
 「成果物」は、最終的または中間的な作業成果物、または、それらを作成する際に必要となる情報に相当します。このような作業成果物には、文書、コード、または、その他、多様な表現形式の情報が含まれています。「成果物」は、何を作成すべきかを示します。

(3)成果物状態(A状態)
 「成果物状態」(A状態)とは、成果物における状態であり、通常、その成果物が完成に至までの進捗状況を表しています。成果物の状態は、そのプロセスにおける「開始条件」および「完了条件」を示します。

(4)プロセス状態(P状態)
 「プロセス状態」(P状態)とは、特定の状況下で、特定の関心を達成するために実行されるアクティビティグループのことです。P状態が実行される(または稼働状態に入る)際の状況は、そのP状態に突入する前に満たされなければならない「開始条件」として定義されます。P状態を実行した時の効果については「完了条件」として定義されます。P状態が稼働状態に入った後、「完了条件」を満たした時点で、プロセスはそのP状態から抜けます。P状態の「開始条件」および「完了条件」は、「成果物状態」(A状態)として表現されます。「成果物状態」は、プロセスが実施されている間、どの時点にどのP状態の開始に突入できるかを決定付けます。
 P状態がサブP状態の集まりとして構成されることもあります。各サブP状態は、それぞれ部分的な関心を達成させたり、または、そのP状態の目的の実現を支援するものです。最終的には、各P状態は成果物に対する操作から構成されます。P状態は、次に進む前に完了させておくべき作業、その作業をどの時点で実行できるか、誰がそれを実行できるか、および、アクティビティを完了する際の基準を示します。

(5)操作
 「操作」は、1つ、または複数の成果物上で実行されるアクティビティのことであり、これはもはや、これ以上、サブアクティビティ群へと分割されることのない最小単位のアクティビティのことです。「操作」は、P 状態階層の最下層を形成します。「操作」の実行は、成果物をある状態から他の状態へと遷移させる引き金となります。「操作」についての記述は、アクティビティを実行する手段を伝えます。各「操作」には、「開始条件」と「完了条件」があり、それぞれ、操作を実行する前に満たすべき条件、操作を完了した時点で満たすべき条件を定義します。「操作」では、何を実行すべきかと、誰が実行できるかについて示します。

(6)分析
 「分析」は、プロセスや、プロセスの実行中における成果物の状態、および、プロセスを実施する人々のロールに関する情報を提供するアクティビティです。「分析」では、現在の進捗状況、そこまでに要した期間や資源、成果物の品質を示します。

(7)関係
 「関係」は、「プロセス要素」間の関係を示すものである。「成果物階層」、「アクティビティ階層」、「ロール階層」はPASTA内に埋め込まれている「関係」を表現しています。一部プロセスのモデリングでは、ロール間でのコミュニケーションなど、特定の「関係」を追加することが別途必要になることもあります。



PASTAプロセスモデル

PASTAでは、プロセスの要素を表現するのに、ツリー図、フォーム、状態遷移図が使用されます。プロセス状態の階層、成果物の階層、ロールの階層は木構造を使って表現されます。また、プロセス状態を定義したり、成果物とその状態を表現したりするのに、表形式のフォームを利用します。プロセス状態に関するフォームは、開始条件、完了条件、状態遷移、その状態内で実行できる操作と分析が記述されます。さらに、プロセス状態マシンや成果物状態マシンを記述するために状態遷移図を使用します。図1では、ツリー図、フォーム、状態遷移図のそれぞれで記述される要素と表現例、簡単な特徴を示しています。また、図2では、PASTAで使用する記述方法とその要素について示しています。

図1:PASTAで使用する記述方法とその内容



図2:PASTAで使用する記述方法とその要素


 PASTAでは、PASTAで使用する一連の表、および、ツリーや図のセマンティクスについて、予め定義しています。表1は、「審査_ドメイン」というプロセス状態のフォームです。図3は、そのプロセス状態遷移図です。後者のプロセス状態遷移図の中には、一連のサブプロセス状態が盛り込まれ、その開始条件や完了条件が成果物状態として示されています。たとえば、「収集_データ」というサブプロセス状態の開始条件は、「経済_モデル」という成果物が「被参照」状態の時です。

表1:審査_ドメインのプロセス状態定義フォーム


図3:審査_ドメインのプロセス状態遷移図





PASTAエディタ

  PASTAモデル作成時には、PASTAエディタを利用します。PASTAエディタを利用することによって、ツリー図や状態遷移図を作成したり、各種フォームのテンプレートを記入できるようになります。また、 PASTAモデルのセマンティクスをこのエディタに埋め込むことによって、図とツリーの一貫性を検査したり、ツリーと図の間で冗長な情報を自動的に書き込んだり、既存のプロセス要素を再利用するのに役立つメニューをユーザに提示したりすることが可能になります。図4〜6は、PASTAエディタの使用例を示します。

図4:PASTAモデルの使用イメージ


図5:PASTAエディタの使用例


図6:PASTAエディタによるツリー図の使用例




PASTAモデルが提供する機能

  PASTAモデルは、以下の機能を提供します。
  • 成果物やその状態を電子的に保存し、リクエストに応じ、その状態を報告する。 
  • モデルの定義通りにプロジェクトが進んでいるかを分析し、進捗状況の情報(成果物およびプロセスの状態、操作、資源の割当と使用、作成されたコードや文書の品質など)を開発者に提供する。 
  • 成果物上での操作のうち、自動化可能な操作を実行する。 
  • プロセスの実施者や設計者向けに、プロセス定義のオンラインガイドを提供する。 
  • プロセスの実施者に向けたオンラインヘルプを提供する。たとえば、次に実行可能なアクティビティ、その実行に役立つ情報などを教える。 
  • プロセスが電子的に利用可能であるので、それを印刷し、チームメンバーに回し、 参照できるようにする。 


PASTAの適用実績

  PASTAモデルは、標準化された正確なFASTの記述を提供します。これまでに、下記のような適用実績があります。
  • ソフトウェアインスペクションプロセス 
  • Boochソフトウェア設計手法 
  • 医療技術の臨床的行為を扱うプロセス 
  • 核廃棄処理プロセス など 


【参考文献】
[1]David M.Weiss, Chi Tau Rovert Lai, "Software Product-Line Engineering: A Family-Based Software Development Process", 1999, Addison-Wesley, Professional
[2]Maarit Harsu, "FAST Product-Line Architecture Process", 2002
[3]Tao Xie, "Software, Process, Business Process and Software Process", thhp://people.engr.ncsu.edu/txie/publications/softprocess-slides.pdf