.. _pad-reference: Problem Analysis Diagram(PAD) ============================= .. contents:: Contents of this page PAD 縺ッ繝輔Ο繝シ繝√Ε繝シ繝医↓莉」繧上k繝励Ο繧ー繝ゥ繝�縺ョ隲也炊縺ョ陦ィ險俶ウ輔→縺励※譌・遶玖」ス菴懈園縺ァ閠�。医&繧後� 1979蟷エ縺ォ荳闊ャ縺ォ蜈ャ髢九&繧後◆菴懷峙豕輔〒縺吶� [Futamura1980]_ 蠖捺凾縲√�繝ュ繧ー繝ゥ繝溘Φ繧ー險隱槭〒 if-else 譁�d 郢ー繧願ソ斐@縺ョ while 譁�↑縺ゥ縺ョ縺�o繧�k蛻カ蠕。讒矩�縺悟ー主�縺輔l蟋九a縺セ縺励◆縲ゅ◎繧後↓蜷医o縺帙※ 繝励Ο繧ー繝ゥ繝�縺ョ隲也炊縺ョ陦ィ險俶ウ輔〒繧ゅ∝宛蠕。讒矩�縺ォ蜷医o縺帙◆陦ィ險倥′縺ァ縺阪k繧ゅ�縺梧署譯医&繧後※ 縺�∪縺励◆縲1AD縺ッ縺昴�繧医≧縺ェ陦ィ險俶ウ輔��代▽縺ァ縺吶よーク繧峨¥譖ク邀阪′蟄伜惠縺励↑縺�憾諷九′邯壹>縺ヲ 縺�◆繧医≧縺ァ縺吶′縲∵怙霑題ァ」隱ャ譖ク繧呈嶌縺九l縺滓婿繧ゅ>繧九h縺�〒縺� [Takase2018]_ 縲� .. figure:: pad-example.png Fig. 1 PAD縺ョ萓� UML縺ョ繧キ繝シ繧ア繝ウ繧ケ蝗ウ縺ァ繧ょ�逅��豬√l繧堤ケー繧願ソ斐@繧��蟯舌r蜷ォ繧√※陦ィ迴セ縺吶k縺薙→縺後〒縺阪∪縺吶� 縺昴l縺ォ蜉�縺医※PAD繧剃スソ縺�虚讖溘↓縺ッ縲√←繧薙↑繧ゅ�縺後≠繧九〒縺励g縺�°縲� UML縺ョ繧キ繝シ繧ア繝ウ繧ケ蝗ウ繧呈嶌縺上↓縺ゅ◆縺」縺ヲ縺ッ縲∝�逅�↓蠢�ヲ√↑繝��繧ソ縺ョ謖√■荳サ縺ィ縺ェ縺上け繝ゥ繧ケ繧� 豎コ繧√◆縺ゅ→縺ァ縲√↑縺�@縺ッ豎コ繧√↑縺後i繧キ繝シ繧ア繝ウ繧ケ繧定�∴縺セ縺吶� 縺ィ縺薙m縺後√す繝溘Η繝ャ繝シ繧キ繝ァ繝ウ繝励Ο繧ー繝ゥ繝�縺ョ險ュ險医↓縺翫>縺ヲ縺ッ縲√ョ繝シ繧ソ縺ョ謖√■荳サ縺ォ縺、縺�※ 閠�∴繧句燕縺ォ縲∝�逅�焔鬆�↓縺、縺�※讀懆ィ弱@縺溘¥縺ェ繧狗憾豕√′縺ゅj縺セ縺吶ゅ◎縺ョ繧医≧縺ェ蝣エ髱「縺ァ 繝��繧ソ縺ョ謖√■荳サ縺ォ邏ー縺九¥隗ヲ繧後★縺ォ險ュ險医@縺溘>譎ゅ↓縲 ̄AD縺梧怏逕ィ縺�縺ィ遲���諢溘§縺ヲ縺�∪縺吶� 遘大ュヲ逧�↑繧キ繝溘Η繝ャ繝シ繧キ繝ァ繝ウ繝励Ο繧ー繝ゥ繝�縺ァ縺ッ縲√�繝ュ繧ー繝ゥ繝�險ュ險医�蜃コ逋コ轤ケ縺檎黄逅�樟雎。縺ョ 謾ッ驟肴婿遞句シ上�髮「謨」蛹冶。ィ迴セ縺ォ縺ェ縺」縺ヲ縺�k縺薙→縺悟、壹¥縲√ョ繝シ繧ソ縺ョ謖√■荳サ縺ッ縺輔※縺翫″縲√d繧九∋縺� 險育ョ励�謇矩��′豎コ縺セ縺」縺ヲ縺�k縺薙→縺御ク闊ャ逧�〒縺吶ゅ◎縺薙〒縲√ョ繝シ繧ソ縺ョ謖√■荳サ縺ォ縺、縺�※縺ッ 隗ヲ繧後★縺ォ縲√d繧翫◆縺�ィ育ョ励�謇矩��r險倩ソー縺ァ縺阪k陦ィ險俶ウ輔′谺イ縺励¥縺ェ繧翫∪縺吶� PAD縺ッ縺昴�繧医≧縺ェ縺薙→縺悟庄閭ス縺ェ陦ィ險俶ウ輔〒縺吶� 繧ッ繝ゥ繧ケ險ュ險医↓閾ウ繧句燕縺ョ谿オ髫弱〒縲∽クヲ蛻励↓蜍穂ス懊&縺帙k蜷��繝ュ繧サ繧ケ縺ョ荳ュ縺ョ蜃ヲ逅�焔鬆�r 譖ク縺榊�縺励※讀懆ィ弱☆繧九◆繧√↓PAD縺ッ譛臥畑縺ァ縺ゅk縺ィ遲���閠�∴縺セ縺吶� PAD縺ョ讒矩� --------- PAD縺ァ縺ッ縲∬ヲ∫エ�繧貞�蟶ー逧�↓邨�∩蜷医o縺帙k縺薙→縺ァ菴懷峙縺励∪縺吶� PAD縺ョ隕∫エ�縺ッ縲√�繝ュ繧ー繝ゥ繝溘Φ繧ー險隱槭�蛻カ蠕。讒矩�縺ォ蟇セ蠢懊@縺ヲ縺翫j縲�」謗・縲∝�蟯舌∫ケー繧願ソ斐@縲� 謇狗カ壹″蜻シ縺ウ蜃コ縺励↑縺ゥ縺後≠繧翫∪縺吶� 蜊倡エ斐↑蜃ヲ逅� ---------- PAD縺ョ荳ュ縺ァ蜊倡エ斐↑蜃ヲ逅�√▽縺セ繧雁峙縺ョ荳翫〒縺ッ繧「繝医Α繝�け縺ェ縺九◆縺セ繧翫→縺励※陦ィ迴セ縺励※縲� 縺昴l莉・荳雁峙隗」縺帙★縺ォ險闡峨〒隱ャ譏弱@縺ヲ貂医∪縺帙k蜃ヲ逅��縲�聞譁ケ蠖「縺ァ陦ィ迴セ縺励∪縺吶� 髟キ譁ケ蠖「縺ョ荳ュ縺ォ蜃ヲ逅��隱ャ譏弱r譖ク縺阪∪縺吶� 蜃ヲ逅��隱ャ譏弱�邏ー縺九&縺ッ蝗ウ縺ョ雜」譌ィ縺ォ豐ソ縺」縺ヲ隱ソ謨エ縺励∪縺吶ゅた繝シ繧ケ繧ウ繝シ繝峨�譁�ウ輔〒 譖ク縺�※繧ゅ°縺セ縺�∪縺帙s縺後∵勸騾壹�譌・蟶ク隱槭〒譖ク縺阪∪縺吶� .. figure:: basic-element.png Fig. 2 蜊倡エ斐↑蜃ヲ逅� 騾」謗・ ---- 蜃ヲ逅�1, 蜃ヲ逅�2, 蜃ヲ逅�3... 縺ィ騾先ャ。逧�↓螳溯。後@縺ヲ縺�¥縺ョ縺碁」謗・縺ァ縺吶� 邵ヲ邱壹r蠑輔>縺ヲ縲√◎縺ョ邱壹�蜿ウ蛛エ縺ォ騾」謗・縺輔l繧玖ヲ∫エ�繧堤クヲ縺ォ荳ヲ縺ケ縺ヲ譖ク縺阪∪縺吶� .. figure:: sequence.png Fig. 3 騾」遽 蜿榊セゥ ---- for譁�『hile譁�‥o while 譁�↑縺ゥ縺ョ蜿榊セゥ縺ッ縲∫ケー繧願ソ斐@譚。莉カ繧呈嶌縺�◆髟キ譁ケ蠖「繧呈嶌縺�※縲� 縺昴%縺九i蜿ウ縺ォ豌エ蟷ウ邱壹r蠑輔″縲∵ーエ蟷ウ邱壹�蜈医↓郢ー繧願ソ斐@蟇セ雎。縺ョ隕∫エ�繧呈嶌縺阪∪縺吶� 蜿榊セゥ譚。莉カ繧貞�鬆ュ縺ァ蛻、螳壹☆繧九�縺九∵忰蟆セ縺ァ蛻、螳壹☆繧九�縺九r陦ィ迴セ縺吶k縺溘a縺ォ縲∫ケー繧願ソ斐@譚。莉カ縺ョ 髟キ譁ケ蠖「縺ョ蟾ヲ遶ッ縲√∪縺溘�蜿ウ遶ッ繧剃コ碁㍾邱壹↓縺励∪縺吶� .. figure:: loop.png Fig. 4 蜿榊セゥ 驕ク謚� ---- if譁�dswitch case 譁�↑縺ゥ縲∵擅莉カ縺ォ蠢懊§縺ヲ蜃ヲ逅�r蛻�j譖ソ縺医k縺ョ縺碁∈謚槭〒縺吶� 蜿ウ遶ッ縺悟�繧薙□譌励�繧医≧縺ェ蝗ウ蠖「繧呈嶌縺阪∵覧縺ョ荳ュ縺ォ譚。莉カ繧呈嶌縺阪∪縺吶� 譌励�蜿ウ遶ッ縺ョ荳贋ク九�縺ィ繧薙′縺」縺ヲ縺�※縲√◎縺ョ蜈医�縺昴l縺槭l縺ォ驕ク謚槭&繧後k隕∫エ�繧呈嶌縺阪∪縺吶� 譚。莉カ縺梧�遶九@縺溘i荳翫�隕∫エ�縲∵�遶九@縺ェ縺九▲縺溘i荳九�隕∫エ�縺悟ョ溯。後&繧後∪縺吶� 蛻�イ舌�蛟呵」懊′3縺、莉・荳翫≠繧句�エ蜷医↓縺ッ縲∵覧縺ョ縺ィ繧薙′縺」縺滄Κ蛻�r蛻�イ舌�謨ー縺ォ蜷医o縺帙※ 蠅励d縺励∪縺吶� .. figure:: selection.png Fig. 5 驕ク謚� 螳夂セゥ ---- 蜃ヲ逅�r縺翫♀縺セ縺九↓隱ャ譏弱@縺滉ク翫〒縲√◎繧後r蜈キ菴鍋噪縺ォ繝悶Ξ繧、繧ッ繝繧ヲ繝ウ縺励※譖ク縺阪◆縺� 蝣エ蜷医↓縺ッ縲∝ョ夂セゥ縺ョ陦ィ險倥r菴ソ縺�∪縺吶� 縺セ縺壹♀縺翫∪縺九↑隱ャ譏弱r髟キ譁ケ蠖「縺ォ譖ク縺阪∪縺吶ゅ◎縺薙°繧牙承縺ォ莠碁㍾邱壹r莨ク縺ー縺励� 莠碁㍾邱壹�荳翫↓ def 縺ィ譖ク縺阪∪縺吶ゅ◎縺ョ蜈医↓繝悶Ξ繧、繧ッ繝繧ヲ繝ウ縺励◆蜈医�隕∫エ�繧呈嶌縺阪∪縺吶� .. figure:: definition.png Fig. 6 螳夂セゥ 謇狗カ壹″蜻シ縺ウ蜃コ縺� -------------- 謇狗カ壹″縺ゅk縺��髢「謨ー蜻シ縺ウ蜃コ縺励�縲�聞譁ケ蠖「縺ョ蟾ヲ蜿ウ遶ッ繧剃コ碁㍾邱壹↓縺励�聞譁ケ蠖「縺ョ荳ュ縺ォ 謇狗カ壹″縺ョ蜷榊燕繧呈嶌縺阪∪縺吶� 蜻シ縺ー繧後k蛛エ縺ョ謇狗カ壹″縺ッ縲∫峡遶九@縺溷ョ夂セゥ縺ョPAD縺ィ縺励※譖ク縺阪∪縺吶� .. figure:: procedure.png Fig.7 謇狗カ壹″蜻シ縺ウ蜃コ縺� 遶ッ蟄� ---- �代▽縺ョPAD縺ョ髢句ァ九→邨ゆコ�↓縺ッ縲�聞荳ク縺ョ遶ッ蟄舌r襍キ縺阪∪縺吶� .. figure:: terminal.png Fig. 8 遶ッ蟄�