.. _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 遶ッ蟄�