6. シーケンシングの実現
6.2 擬似コード
SCORM 2004 では,擬似コードによってシーケンシング動作を構成する各プロセスの動作を
厳密に規定している.ここでは,各プロセスの呼び出し関係と処理の概略を整理する.
表6.1と表6.2にプロセスの呼び出し関係を示す.表6.1はOverall Sequencing Processを主 体として,そこから呼び出されるプロセスの関係を記述したものである.この中で,複数個所か ら呼び出されているプロセスは太字で示してあり,その詳細が表6.2に示されている.プロセス 名のあとのカギカッコ中の記号は,規格書の擬似コードで用いられているプロセスの識別コード である.
以下に主要なプロセスの概略を説明する.
6.2.1 Overall Sequensing Process
シーケンシング動作全体に相当するプロセスである.6.1 に述べた各処理に該当するプロセス を順次呼び出す.すなわち,Navigation Request Process, Termination Request Process, Select Children Process, Randomize Children Process, Sequencing Request Process, Delivery Request Process, Content Delivery Environment Processを順次呼び出して,シーケンシングの 一連の動作を実現する.
表 6.1 擬似コードプロセスの呼び出し関係 Overall Sequencing Process [OP.1]
Navigation Request Process [NB.2.1]
Termination Request Process [TB.2.3]
End Attempt Process [UP.4]
Sequencing Exit Action Rules Subprocess [TB.2.1]
Sequencing Rules Check Process [UP.2]
Terminate Descendent Attempts Process [UP.3]
End Attempt Process [UP.4]
Sequencing Post Condition Rules Subprocess [TB.2.2]
Sequencing Rules Check Process [UP.2]
Terminate Descendent Attempts Process [UP.3]
Select Children Process [SR.1]
Randomize Children Process [SR.2]
Sequencing Request Process [SB.2.12]
Start Sequencing Request Process [SB.2.5]
Flow Subprocess [SB.2.3]
Resume All Sequencing Request Process [SB.2.6]
Exit Sequencing Request Process [SB.2.11]
Retry Sequencing Request Process [SB.2.10]
Flow Subprocess [SB.2.3]
Continue Sequencing Request Process [SB.2.7]
Flow Subprocess [SB.2.3]
Previous Sequencing Request Process [SB.2.8]
Flow Subprocess [SB.2.3]
Choice Sequencing Request Process [SB.2.9]
Sequencing Rules Check Process [UP.2]
Choice Activity Traversal Subprocess [SB.2.4]
Sequencing Rules Check Process [UP.2]
Choice Flow Subprocess [SB.2.9.1]
Choice Flow Tree Traversal Subprocess [SB.2.9.2]
Choice Flow Tree Traversal Subprocess [SB.2.9.2] REC Flow Subprocess [SB.2.3]
Terminate Descendent Attempts Process [UP.3]
Delivery Request Process [DB.1.1]
Check Activity Process [UP.5]
Content Delivery Environment Process [DB.2]
Clear Suspended Activity Subprocess [DB.2.1]
Terminate Descendent Attempts Process [UP.3]
6.2.2 Termination Request Process
終了要求の処理を行う.アクティビティの終了処理とロールアップを行う End Attempt Process,終了ルールの処理を行うSequencing Exit Action Rules Subprocess,ポストコンディ ションルールの処理を行うSequencing Post Condition Rules Subprocess,現在のアクティビテ ィの祖先のアクティビティの終了処理を行うTerminate Descendent Attempts Processから構成 される.
6.2.3 Sequencing Request Process
受け取ったシーケンシング要求に応じて,シーケンシング要求の種別に応じた各プロセス,す なわち,Start, Resume All, Exit, Retry, Continue, Previous, ChoiceのいずれかのSequencing Request Processが呼び出される.これらのうち,Start, Retry, Continue, Previousのプロセス
ではFlow Subprocessを用いてアクティビティツリーのトラバーサルを行って提示するアクティ
表 6.2 擬似コードプロセスの呼び出し関係(補助プロセス)
Flow Subprocess [SB.2.3]
Flow Tree Traversal Subprocess [SB.2.1]
Flow Tree Traversal Subprocess [SB.2.1] REC Flow Activity Traversal Subprocess [SB.2.2]
Sequencing Rules Check Process [UP.2]
Flow Tree Traversal Subprocess [SB.2.1]
Flow Activity Traversal Subprocess [SB.2.2] REC Check Activity Process [UP.5]
Terminate Descendent Attempts Process [UP.3]
End Attempt Process [UP.4]
End Attempt Process [UP.4]
Overall Rollup Process [RB.1.5]
Measure Rollup Process [RB.1.1]
Objective Rollup Process [RB.1.2]
Objective Rollup Using Measure Process [RB.1.2 a]
Objective Rollup Using Rules Process [RB.1.2 b]
Rollup Rule Check Subprocess [RB.1.4]
Activity Progress Rollup Process [RB.1.3]
Rollup Rule Check Subprocess [RB.1.4]
Rollup Rule Check Subprocess [RB.1.4]
Check Child for Rollup Subprocess [RB.1.4.2]
Sequencing Rules Check Process [UP.2]
Evaluate Rollup Conditions Subprocess [RB.1.4.1]
Check Activity Process [UP.5]
Sequencing Rules Check Process [UP.2]
Limit Conditions Check Process [UP.1]
Sequencing Rules Check Process [UP.2]
Sequencing Rule Check Subprocess [UP.2.1]
ビティを決定する.
Choiceの場合は,現在のアクティビティと移動先として指定されたアクティビティのアクティ
ビティツリー中の関係によって独自のトラバーサル処理を行って指定されたアクティビティが提 示可能かどうかを決定する.
6.2.4 Flow Subprocess
現在のアクティビティから前方ないし後方にツリートラバーサルを試み,提示候補のアクティ ビティを決定する.内部は,Flow Tree Traversal Subprocess と Flow Activity Traersal Subprocessが再帰的に呼び出される構成になっている.Flow Tree Traersal Subprocessではプ リコンディションルールなどのチェックは行わず,現在のアクティビティと指定された移動方向 から,次のアクティビティを決定する.Flow Activity Traersal Subprocess では,Flow Tree
Traersal Subprocess で得られたアクティビティに対してプリコンディションルールなどのチェ
ックを行い,実際に配信が可能かどうかをチェックする.また,Skipプリコンディションルール が成り立っているような場合は,Flow Tree Traersal Subprocess と Flow Activity Traersal
Subprocessをさらに再帰的に適用してツリーをトラバースする.
6.2.5 End Attempt Process
アクティビティの終了処理を行う.具体的には,アクティビティが葉ノードで,アクティビテ ィに関連付けられた学習資源がSCOで無い場合は,デフォルトのトラッキング情報を設定する.
また,Overall Rollup Processを呼び出してロールアップを実行する.Overall Rollup Process では,Measure Rollup Process, Objective Rollup Process, Activity Progress Rollup Processに よってそれぞれ,習得度ロールアップ,学習目標ロールアップ,進捗状態ロールアップを行う.
6.2.6 Check Activity Process
アクティビティの制限条件,Disable プリコンディションルールなどのチェックを行い,アク ティビティが配信可能がどうかをチェックする.
6.2.7 Sequencing Rules Check Process
シーケンシングルールの条件節が成立するか否かのチェックを行う.