Professional Documents
Culture Documents
نرم افزار 2
نرم افزار 2
نرم افزار 2
ﺩﺭ ﺳﻄﺢ ﺗﻜﻨﻴﻜﻲ ،ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺎ ﻳﻚ ﺳﺮﻱ ﺍﺯ ﻛﺎﺭﻫﺎﻱ ﻣﺪﻟﺴﺎﺯﻱ ﺷﺮﻭﻉ ﻣﻲﺷـﻮﺩ ﻛـﻪ ﺑـﻪ ﻣﺸﺨﺼـﺔ ﻧﻴﺎﺯﻫـﺎﻱ
ﻛﺎﻣﻞ ﻭ ﻧﻤﺎﻳﺶ ﻃﺮﺍﺣﻲ ﺟﺎﻣﻌﻲ ﺑﺮﺍﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺩﺭﺣﺎﻝ ﺍﻳﺠﺎﺩ ﺗﺒﺪﻳﻞ ﻣﻲﮔﺮﺩﻧﺪ .ﻣﺪﻝ ﺗﺤﻠﻴﻞ ،ﻛـﻪ ﺩﺭ ﻭﺍﻗـﻊ ﻣﺠﻤﻮﻋـﻪﺍﻱ
ﺍﺯ ﻣﺪﻝﻫﺎ ﺍﺳﺖ ،ﺍﻭﻟﻴﻦ ﻧﻤﺎﻳﺶ ﺗﻜﻨﻴﻜﻲ ﺍﺯ ﺳﻴﺴﺘﻢ ﻣﻲﺑﺎﺷﺪ .ﺩﺭ ﻃﻮﻝ ﺳﺎﻝ ﻫﺎ ،ﺭﻭﺵ ﻫـﺎﻱ ﺑﺴـﻴﺎﺭﻱ ﺑـﺮﺍﻱ ﻣﺪﻟﺴـﺎﺯﻱ
ﺗﺤﻠﻴﻞ ﭘﻴﺸﻨﻬﺎﺩ ﺷﺪﻩﺍﻧﺪ .ﺑﻪ ﻫﺮ ﺣﺎﻝ ،ﺩﻭ ﺭﻭﺵ ﺍﺯ ﺁﻧﻬﺎ ﺩﺭ ﺣﺎﻝ ﺣﺎﺿﺮ ﻭﺟﻮﺩ ﺩﺍﺭﻧﺪ .ﺍﻭﻟـﻲ ،ﺗﺤﻠﻴـﻞ ﺳـﺎﺧﺘﻴﺎﻓﺘﻪ ،ﺭﻭﺵ
ﻣﺪﻟﺴﺎﺯﻱ ﻛﻼﺳﻴﻚ ﻣﻲﺑﺎﺷﺪ ﻭ ﺩﺭ ﺍﻳﻦ ﻓﺼﻞ ﺗﻮﺻﻴﻒ ﻣﻲﺷﻮﺩ .ﺭﻭﺵ ﺩﻳﮕﺮ ،ﺗﺤﻠﻴﻞ ﺷﻲﮔﺮﺍ ،ﺑـﺎ ﺟﺰﻳﻴـﺎﺕ ﺩﺭ ﻓﺼـﻮﻝ
ﺁﺗﻲ ﺑﺤﺚ ﻣﻲﺷﻮﺩ.
ﺗﺤﻠﻴﻞ ﺳﺎﺧﺘﻴﺎﻓﺘﻪ ﻓﻌﺎﻟﻴﺖ ﺳﺎﺧﺖ ﻣﺪﻝ ﻣﻲﺑﺎﺷﺪ .ﺑﺎ ﺑﻪ ﻛﺎﺭﮔﻴﺮﻱ ﺍﺻﻮﻝ ﺗﺤﻠﻴﻞ ﻋﻤﻠﻴﺎﺗﻲ ﺑﺤﺚ ﺷـﺪﻩ ﺩﺭ ﻫﻤـﻴﻦ ﻓﺼـﻞ
ﻣﺪﻝ ﻫﺎﻱ ﺩﺍﺩﻩ ﺍﻱ ،ﻋﻤﻠﻜﺮﺩ ،ﻭ ﺭﻓﺘﺎﺭ ،ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﻭ ﻣﺸﺨﺺ ﻛﻨﻨﺪﺓ ﺁﻧﭽﻪ ﺑﺎﻳﺪ ﺍﻳﺠﺎﺩ ﺷﻮﺩ ﻣﻲﺑﺎﺷﻨﺪ.
ﺗﺎﺭﻳﺨﭽﻪ
ﻛﺎﺭﻫﺎﻱ ﺍﻭﻟﻴﻪ ﺩﺭ ﻣﺪﻟﺴﺎﺯﻱ ﺗﺤﻠﻴﻞ ﺩﺭ ﺩﻫﺔ ۱۹۶۰ﻭ ﺍﻭﺍﻳﻞ ﺩﻫﺔ ۱۹۷۰ﺷـﺮﻭﻉ ﺷـﺪ ،ﺍﻣـﺎ ﺍﻭﻟـﻴﻦ ﻇﻬـﻮﺭ ﺭﻭﺵ ﺗﺤﻠﻴـﻞ
ﺳﺎﺧﺘﻴﺎﻓﺘﻪ ﻣﺮﺗﺒﻂ ﺑﺎ ﻋﻨﻮﺍﻥ ﻣﻬﻢ ﺩﻳﮕﺮﻱ ﺑﻮﺩ " :ﻃﺮﺍﺣﻲ ﺳﺎﺧﺘﻴﺎﻓﺘﻪ" .ﻣﺤﻘﻘﻴﻦ ﻧﻴﺎﺯ ﺑـﻪ ﻳـﻚ ﻧﺸـﺎﻥﮔـﺬﺍﺭﻱ ﮔﺮﺍﻓﻴﻜـﻲ
ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩﻫﺎ ،ﻭ ﻓﺮﺁﻳﻨﺪﻫﺎﻳﻲ ﺩﺍﺷﺘﻨﺪ ﻛﻪ ﺁﻥ ﺩﺍﺩﻩﻫﺎ ﺭﺍ ﺗﺒﺪﻳﻞ ﻣﻲﻧﻤﻮﺩﻧـﺪ .ﺍﻳـﻦ ﻓﺮﺁﻳﻨـﺪﻫﺎ ﺑـﻪ ﻃـﻮﺭ ﺗﻘﺮﻳﺒـﻲ ﺑـﺮ
ﻣﻌﻤﺎﺭﻱ ﻃﺮﺍﺣﻲ ﻣﻨﻄﺒﻖ ﻣﻲﺷﻮﻧﺪ.
ﻭﺍﮊﺓ ﺗﺤﻠﻴﻞ ﺳﺎﺧﺘﻴﺎﻓﺘﻪ ،ﻛﻪ ﺍﺑﺘﺪﺍ ﺗﻮﺳﻂ Douglas Rossﺍﺳـﺘﻔﺎﺩﻩ ﺷـﺪ ،ﺗﻮﺳـﻂ DeMarcoﻣﺸـﻬﻮﺭ ﮔﺮﺩﻳـﺪ ﻭ
ﺑﻌﺪﻫﺎ ﺗﻮﺳﻌﻪ ﻳﺎﻓﺖ .ﺍﻳﻦ ﺗﻮﺳﻌﻪﻫﺎ ﺑﺎﻋﺚ ﺍﻧﺠﺎﻡ ﺭﻭﺵ ﺗﺤﻠﻴﻞ ﻗﻮﻱﺗﺮﻱ ﮔﺮﺩﻳﺪﻧﺪﻩ ﮐﻪ ﻣﻲ ﺗﻮﺍﻧﺴﺖ ﺑﻪ ﻃـﻮﺭ ﻣـﺆﺛﺮﻱ ﺩﺭ
ﻣﺴﺎﻳﻞ ﻣﻬﻨﺪﺳﻲ ﺑﻪ ﻛﺎﺭ ﮔﺮﻓﺘﻪ ﺷﻮﺩ .ﺗﻼﺵ ﻫـﺎﻳﻲ ﺑـﺮﺍﻱ ﺗﻮﺳـﻌﺔ ﻳـﻚ ﻧﺸـﺎﻥﮔـﺬﺍﺭﻱ ﻳﻜﭙﺎﺭﭼـﻪ ﭘﻴﺸـﻨﻬﺎﺩ ﮔﺮﺩﻳـﺪ ،ﻭ
ﺭﻭﺵﻫﺎﻱ ﻣﺪﺭﻧﻲ ﻣﻨﺘﺸﺮ ﺷﺪﻧﺪ ﺗﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﺑﺰﺍﺭﻫﺎﻱ CASEﺭﺍ ﻣﻌﺮﻓﻲ ﻧﻤﺎﻳﻨﺪ.
ﺩﺭ ﺍﻳﻦ ﻣﺮﺣﻠﻪ ﺗﺤﻠﻴﮕﺮ ﺍﻗﺪﺍﻡ ﺑﻪ ﻣﺪﻟﺴﺎﺯﻱ ﻧﻴﺎﺯﻫﺎﻱ ﺳﻴﺴﺘﻢ ﻣﻮﺭﺩ ﻣﻄﺎﻟﻌﻪ ﻣﻲ ﻧﻤﺎﻳﺪ .ﺭﻭﺵﻫﺎﻱ
ﻣﺪﻟﺴﺎﺯﻱ ﺳﻴﺴﺘﻢ ﻫﺎ ﻣﺘﻨﻮﻉ ﻭ ﮔﺴﺘﺮﺩﻩ ﻫﺴﺘﻨﺪ.
ﺩﺭ ﻣﺠﻤﻮﻉ ٢ﺭﻭﺵ ﻣﺘﺪﺍﻭﻝ ﺑﺮﺍﻱ ﻣﺪﻟﺴﺎﺯﻱ ﺳﻴﺴﺘﻤﻬﺎ ﻭﺟﻮﺩ ﺩﺍﺭﺩ :
-ﺷﺊ ﮔﺮﺍ )(Object Oriented -ﺳﺎﺧﺘﻴﺎﻓﺘﻪ )(Structured
ﺍﺯ ﻣﺘﺪﺍﻭﻟﺘﺮﻳﻦ ﺭﻭﺵ ﻫﺎﻱ ﺳﺎﺧﺘﻴﺎﻓﺘﻪ) (SSADM-Structured System Analysis & Design Methodﺍﺳﺖ.
ﻧﮕﺮﺵ ﺳﺎﺯﻣﺎﻧﺪﻫﻲ ﺷﺪﻩ ﻭ ﻣﻨﻈﻢ ﺳﻴﺴﺘﻤﻲ ﺍﺯ ﺑﺎﻻ ﺑﻪ ﭘﺎﻳﻴﻦ) (Top Downﺑﺮﺍﻱ ﺗﺤﻠﻴﻞ ﻭ ﻃﺮﺍﺣﻲ ﻭ ﻧﮕﺮﺵ ﭘﺎﻳﻴﻦ
ﺑﻪ ﺑﺎﻻ) (Bottom Upﺑﺮﺍﻱ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻧﺮﻡ ﺍﻓﺰﺍﺭ .ﺩﺭ ﺍﻳﻦ ﺭﻭﺵ:
ﻣﺴﺘﻨﺪﺍﺕ ﻗﻮﻱ ﺑﺎﻋﺚ ﺑﺎﻻ ﺑﺮﺩﻥ ﻗﺎﺑﻠﻴﺖ ﻧﮕﻬﺪﺍﺭﻱ ﻣﻲﮔﺮﺩﺩ. ×
ﺍﻧﺪﺍﺯﻩ ﻣﺴﺎﻟﻪ ﺑﺎ ﺍﻓﺮﺍﺯ ﻧﻤﻮﺩﻥ ﻣﻨﺎﺳﺐ ﺗﻌﻴﻴﻦ ﻣﻲﮔﺮﺩﺩ. ×
ﺍﺯ ﻧﻤﺎﺩ ﮔﺮﺍﻓﻴﻜﻲ ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺭﻭﺍﺑﻂ ﺳﻴﺴﺘﻢ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﮔﺮﺩﺩ. ×
ﺗﻤﺎﻳﺰ ﺑﻴﻦ ﻧﻤﺎﻳﺶ ﻓﻴﺰﻳﻜﻲ ﻭ ﻣﻨﻄﻘﻲ ﻭﺟﻮﺩ ﺩﺍﺭﺩ. ×
ﻭ… ×
ﺍﻫﺪﺍﻑ ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﻧﻴﺎﺯ
vﻧﻴﺎﺯﻫﺎﻱ ﻣﺸﺘﺮﻱ ﺭﺍ ﺗﺸﺮﻳﺢ ﻣﻲ ﻛﻨﺪ.
vﭘﺎﻳﻪ ﻭ ﻣﺒﻨﺎﻳﻲ ﺑﺮﺍﻱ ﻣﺪﻝ ﻃﺮﺍﺣﻲ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺑﻮﺟﻮﺩ ﻣﻲ ﺁﻭﺭﺩ.
vﻣﺠﻤﻮﻋﻪ ﺍﻳﻲ ﺍﺯ ﻧﻴﺎﺯﻫﺎ ﺭﺍ ﺗﻌﺮﺑﻒ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﻣﻲ ﺗﻮﺍﻥ ﺩﺭﺳﺘﻲ ﻭ ﺍﻋﺘﺒﺎﺭ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺭﺍ ﺁﺯﻣﺎﻳﺶ ﻧﻤﻮﺩ.
ﻣﺸﺨﺼﺎﺕ ﻛﻨﺘﺮﻝ
ﻣﺪﻟﺴﺎﺯﻱ ﺭﻓﺘﺎﺭﺳﻴﺴﺘﻢ
)ﺧﺮﻭﺟﻲ(
ﻛﺘﺎﺏ ﻭ ﻛﺘﺎﺏﻓﺮﻭﺷﻲ ﺑﺮﻗﺮﺍﺭ ﻣﻲﺷﻮﺩ ﺯﻳﺮﺍ ﺍﻳﻦ ﺩﻭ ﺷﻲﺀ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﻣﺮﺗﺒﻂ ﻣﻲﺑﺎﺷﻨﺪ .ﺍﻣﺎ ﺍﻳـﻦ ﺭﻭﺍﺑـﻂ ﭼـﻪ ﻫﺴـﺘﻨﺪ؟ ﺑـﻪ
ﻣﻨﻈﻮﺭ ﻣﺸﺨﺺ ﻧﻤﻮﺩﻥ ﺍﻳﻦ ﺟﻮﺍﺏ ،ﺑﺎﻳﺪ ﻧﻘﺶ ﻛﺘﺎﺏ ﻫﺎ ﻭ ﻛﺘﺎﺏﻓﺮﻭﺷﻲ ﺩﺭ ﺯﻣﻴﻨﺔ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻛﻪ ﺍﻳﺠﺎﺩ ﻣﻲﺷﻮﺩ ﺭﻭﺷـﻦ
ﺷﻮﺩ .ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﺯﻭﺝﻫﺎﻱ ﺷﻲﺀ -ﺭﺍﺑﻄﻪ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮﻧﺪ ﻛﻪ ﺭﻭﺍﺑﻂ ﺭﺍ ﺗﻌﺮﻳﻒ ﻣﻲﻧﻤﺎﻳﻨﺪ .ﺑﺮﺍﻱ ﻣﺜﺎﻝ،
¨ ﻛﺘﺎﺏﻓﺮﻭﺷﻲ ﻛﺘﺎﺏ ﻫﺎ ﺭﺍ ﺳﻔﺎﺭﺵ ﻣﻲﺩﻫﺪ.
¨ ﻛﺘﺎﺏﻓﺮﻭﺷﻲ ﻛﺘﺎﺏ ﻫﺎ ﺭﺍ ﺑﻪ ﻧﻤﺎﻳﺶ ﻣﻲﮔﺬﺍﺭﺩ.
¨ ﻛﺘﺎﺏﻓﺮﻭﺷﻲ ﻛﺘﺎﺏ ﻫﺎ ﺭﺍ ﻧﮕﻬﺪﺍﺭﻱ ﻣﻲﻛﻨﺪ.
¨ ﻛﺘﺎﺏﻓﺮﻭﺷﻲ ﻛﺘﺎﺏ ﻫﺎ ﺭﺍ ﻣﻲﻓﺮﻭﺷﺪ.
¨ ﻛﺘﺎﺏﻓﺮﻭﺷﻲ ﻛﺘﺎﺏ ﻫﺎ ﺭﺍ ﺑﺮ ﻣﻲﮔﺮﺩﺍﻧﺪ.
ﻛﺘﺎﺏ ﻓﺮﻭﺷﮕﺎﻩ
ﺳﻔﺎﺭﺵ ﻣﻲﺩﻫﺪ
ﻧﻤﺎﻳﺶ ﻣﻲﺩﻫﺪ
ﺍﻧﺒﺎﺭ ﻣﻲﻛﻨﺪ
ﻛﺘﺎﺏ ﻣﻲﻓﺮﻭﺷﺪ ﻓﺮﻭﺷﮕﺎﻩ
ﺑﺮﻣﻲﮔﺮﺩﺍﻧﺪ
ﺩﺭﺟﻪ ،ﺣﺪﺍﻛﺜﺮ ﺗﻌﺪﺍﺩ ﺍﺷﻴﺎﻳﻲ ﺭﺍ ﻛﻪ ﻣﻲﺗﻮﺍﻧﻨﺪ ﺩﺭ ﻳﻚ ﺭﺍﺑﻄﻪ ﺷﺮﻛﺖ ﻛﻨﻨﺪ ﺗﻌﺮﻳﻒ ﻣﻲﻧﻤﺎﻳﺪ .ﺑﻪ ﻫﺮ ﺣﺎﻝ ،ﻧﺸـﺎﻥ ﺩﻫﻨـﺪﺓ
ﺍﻳﻦ ﻣﻄﻠﺐ ﻧﻴﺴﺖ ﻛﻪ ﺷﻲﺀ ﺩﺍﺩﺓ ﺧﺎﺹ ﺑﺎﻳﺪ ﺩﺭ ﻳﻚ ﺭﺍﺑﻄﻪ ﺷﺮﻛﺖ ﻧﻤﺎﻳـﺪ ﻳـﺎ ﺷـﺮﻛﺖ ﻧﻨﻤﺎﻳـﺪ .ﺑـﻪ ﻣﻨﻈـﻮﺭ ﻣﺸـﺨﺺ
ﻧﻤﻮﺩﻥ ﺍﻳﻦ ﺍﻃﻼﻋﺎﺕ ،ﻣﺪﻝ ﺩﺍﺩﻩ ،ﺍﻟﺰﺍﻡ ﺭﺍ ﺑﻪ ﺯﻭﺝ ﺷﻲﺀ -ﺭﺍﺑﻄﻪ ﻣﻲﺍﻓﺰﺍﻳﺪ.
ﺍﻟﺰﺍﻡ :ﺑﺮﺍﻱ ﻳﻚ ﺭﺍﺑﻄﻪ "ﺻﻔﺮ" ﺍﺳﺖ ﺍﮔﺮ ﻧﻴﺎﺯ ﺻﺮﻳﺤﻲ ﺑﺮﺍﻱ ﻭﺟﻮﺩ ﺭﺍﺑﻄﻪ ﻧﺒﺎﺷﺪ ،ﻳﺎ ﺭﺍﺑﻄﻪ ﺍﺧﺘﻴﺎﺭﻱ ﺍﺳﺖ .ﺑـﺮﺍﻱ ﺭﺍﺑﻄـﻪ
ﺍﻱ "ﻳﻚ" ﺍﺳﺖ ﺍﮔﺮ ﺭﺧﺪﺍﺩﻱ ﺍﺯ ﻳﻚ ﺭﺍﺑﻄﻪ ﺿﺮﻭﺭﻱ ﺑﺎﺷﺪ .ﺑﻪ ﻣﻨﻈﻮﺭ ﻧﺸﺎﻥ ﺩﺍﺩﻥ ﺍﻳﻦ ﻣﻄﻠـﺐ ،ﻧـﺮﻡﺍﻓـﺰﺍﺭﻱ ﺭﺍ ﺩﺭ ﻧﻈـﺮ
ﺑﮕﻴﺮﻳﺪ ﻛﻪ ﺗﻮﺳﻂ ﺷﺮﻛﺖ ﺗﻠﻔﻦ ﻣﺤﻠﻲ ﺑﺮﺍﻱ ﭘﺮﺩﺍﺯﺵ ﺩﺭﺧﻮﺍﺳﺖﻫﺎﻱ ﺳﺮﻭﻳﺲ ﺍﺳﺘﻔﺎﺩﻩ ﺷﺪﻩ ﺍﺳﺖ .ﻳﻚ ﻣﺸﺘﺮﻱ ﻧﺸﺎﻥ
ﻣﻲﺩﻫﺪ ﻛﻪ ﻣﺸﻜﻠﻲ ﻭﺟﻮﺩ ﺩﺍﺭﺩ .ﺍﮔﺮ ﺁﻥ ﻣﺸﻜﻞ ﺑﻪ ﺳﺎﺩﮔﻲ ﺗﺸﺨﻴﺺ ﺩﺍﺩﻩ ﺷﻮﺩ ،ﻳﻚ ﻋﻤﻞ ﺗﻌﻤﻴﺮ ﺍﻧﺠﺎﻡ ﻣﻲ ﮔﻴـﺮﺩ .ﺑـﻪ
ﻫﺮ ﺣﺎﻝ ،ﺍﮔﺮ ﻣﺸﻜﻞ ﭘﻴﭽﻴﺪﻩ ﺑﺎﺷﺪ ،ﭼﻨﺪﻳﻦ ﺗﻌﻤﻴﺮ ﻣﻤﮑﻦ ﺍﺳﺖ ﻻﺯﻡ ﺑﺎﺷﺪ.
ﺍﻟﺰﺍﻡ :ﺩﻻﻟﺖ ﺑﺮ ﻭﺿﻌﻴﺖ ﻗﻄﻌﯽ ﺩﺍﺭﺩ ﻭ ﺑﺮﺍﯼ ﺍﻧﺠﺎﻡ ﺍﻟﺰﺍﻡ :ﺩﻻﻟﺖ ﺑﺮ ﻭﺿﻌﻴﺘﯽ ﺍﺧﺘﻴﺎﺭﯼ ﺩﺍﺭﺩ ﮐﻪ ﻣﻤﮑﻦ ﺍﺳﺖ
ﺍﻋﻤﺎﻝ ﺗﻌﻤﻴﺮ ﺑﺎﻳﺪ ﻳﮏ ﻣﺸﺘﺮﯼ ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ. ﺩﺭ ﺁﻥ ﻋﻤﻞ ﺗﻌﻤیﺮ ﻻﺯﻡ ﻧﺒﺎﺷﺪ.
ﺣﻤﻞ ﻛﻨﻨﺪﻩ
ﺗﻮﺟﻪ :ﺣﺪﺍﻗﻞ ﻧﺘﻴﺠﻪ ﺣﺎﺻﻠﻪ ،ﺷﻜﻞ ﺟﺪﺍﻭﻝ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﺍﻳﻲ ﻣﻲ ﺑﺎﺷﺪ .
DFDﺳﻄﺢ ﺻﻔﺮ ﻛﻪ ﻣﺪﻝ ﺍﺳﺎﺳﻲ ﺳﻴﺴﺘﻢ ﻳﺎ ﻣﺪﻝ ﺯﻣﻴﻨﻪ ﻧﻴﺰ ﻧﺎﻣﻴﺪﻩ ﻣﻲﺷﻮﺩ ،ﻛﻞ ﻋﻨﺼﺮ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﻳـﻚ
ﺣﺒﺎﺏ ،ﻫﻤﺮﺍﻩ ﺑﺎ ﺩﺍﺩﻩﻫﺎﻱ ﻭﺭﻭﺩﻱ ﻭ ﺧﺮﻭﺟﻲ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺗﻮﺳـﻂ ﭘﻴﻜـﺎﻥ ﻫـﺎﻱ ﻭﺍﺭﺩ ﺷـﺪﻩ ﻭ ﺧـﺎﺭﺝ ﺷـﺪﻥ ﻧﺸـﺎﻥ
ﻣﻲﺩﻫﺪ .ﻓﺮﺁﻳﻨﺪﻫﺎﻱ )ﺣﺒﺎﺏ ﻫﺎﻱ( ﺍﺿﺎﻓﻲ ﻭ ﻣﺴﻴﺮ ﺟﺮﻳﺎﻥ ﺍﻃﻼﻋﺎﺕ ﺩﺭ ﺿﻤﻦ ﺗﺠﺰﻳﻪ DFDﺳﻄﺢ ﺻﻔﺮ ﺑﺮﺍﻱ ﻧﺸـﺎﻥ
ﺩﺍﺩﻥ ﺟﺰﻳﻴﺎﺕ ﺑﻴﺸﺘﺮ ،ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻣﻲﺷﻮﻧﺪ .ﺑﺮﺍﻱ ﻣﺜﺎﻝ DFD ،ﺳﻄﺢ ۱ﻣﻲﺗﻮﺍﻧﺪ ﺣـﺎﻭﻱ ﭘـﻨﺞ ﻳـﺎ ﺷـﺶ ﺣﺒـﺎﺏ ﺑـﻪ
ﻫﻤﺮﺍﻩ ﭘﻴﻜﺎﻥ ﻫﺎﻱ ﻣﺘﺼﻞ ﻛﻨﻨﺪﺓ ﺁﻥ ﻫﺎ ﺑﺎﺷﺪ .ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻳﻦ ﻓﺮﺁﻳﻨﺪﻫﺎﻱ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺩﺭ ﺳـﻄﺢ ،۱ﺯﻳـﺮ ﺗـﺎﺑﻌﻲ ﺍﺯ
ﻛﻞ ﺳﻴﺴﺘﻢ ﺑﻴﺎﻥ ﺷﺪﻩ ﺩﺭ ﻣﺪﻝ ﺯﻣﻴﻨﻪ ﻣﻲﺑﺎﺷﺪ ﻭ ﺍﻟﻲ ﺁﺧﺮ.
ﻧﺸﺎﻥﮔﺬﺍﺭﻱ ﺍﺳﺘﻔﺎﺩﻩ ﺷﺪﻩ ﺑﺮﺍﻱ ﺗﻮﺳﻌﺔ ،DFDﺑﻪ ﺗﻨﻬﺎﻳﻲ ﺑﺮﺍﻱ ﺗﻮﺻﻴﻒ ﻧﻴﺎﺯﻫﺎﻱ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻣﻨﺎﺳﺐ ﻧﻤـﻲﺑﺎﺷـﺪ .ﺑـﻪ
ﻛﺎﺭﮔﻴﺮﻱ ﻣﺆﻟﻔﺔ ﺩﻳﮕﺮﻱ ﺍﺯ ﻧﺸﺎﻥﮔﺬﺍﺭﻱ ﺑﺮﺍﻱ ﺗﺤﻠﻴﻞ ﺳﺎﺧﺘﻴﺎﻓﺘﻪ ﺑﻪ ﻧﺎﻡ ﻓﺮﻫﻨﮓ ﺩﺍﺩﻩﻫﺎ ﻣﮑﻤﻞ DFDﺍﺳﺖ.
ﻧﺸﺎﻥﮔﺬﺍﺭﻱ ﮔﺮﺍﻓﻴﻜﻲ DFDﺑﺎﻳﺪ ﺑﺎ ﻣﺘﻦ ﺗﻮﺻﻴﻔﻲ ﻫﻤﺮﺍﻩ ﺷﻮﺩ .ﻣﺸﺨﺼﺔ ﻓﺮﺁﻳﻨﺪ ) (PSPECﺍﺳـﺘﻔﺎﺩﻩ ﻣـﻲﺷـﻮﺩ ﺗـﺎ
ﺟﺰﻳﻴﺎﺕ ﭘﺮﺩﺍﺯﺵ ﻣﺸﺨﺺ ﺷﺪﻩ ﺗﻮﺳﻂ ﻳﻚ ﺣﺒﺎﺏ ﺭﺍ ﺩﺭ DFDﻣﺸـﺨﺺ ﻧﻤﺎﻳـﺪ .ﺍﻳـﻦ ﻣﺸﺨﺼـﺔ ﻓﺮﺁﻳﻨـﺪ ،ﺗﻮﺻـﻴﻒ
ﻛﻨﻨﺪﺓ ﻭﺭﻭﺩﻱ ﻳﻚ ﺗﺎﺑﻊ ،ﻭ ﻣﺸﺨﺺ ﻛﻨﻨﺪﺓ ﺍﻟﮕﻮﺭﻳﺘﻤﻲ ﺍﺳﺖ ﻛﻪ ﺑﺮﺍﻱ ﺗﺒﺪﻳﻞ ﻭﺭﻭﺩﻱ ﻭ ﺗﻮﻟﻴﺪ ﺧﺮﻭﺟﻲ ﺑـﻪ ﻛـﺎﺭ ﮔﺮﻓﺘـﻪ
ﻣﻲﺷﻮﺩ ،ﻋﻼﻭﻩ ﺑﺮ ﺁﻥ PSPEC ،ﻣﺤﺪﻭﺩﻳﺖﻫﺎﻳﻲ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ ﻛـﻪ ﺑـﺮ ﻓﺮﺁﻳﻨـﺪ )ﺗـﺎﺑﻊ( ،ﻭ ﺧﺼﻮﺻـﻴﺎﺕ ﻛـﺎﺭﺍﻳﻲ
ﻣﺮﺑﻮﻁ ﺑﻪ ﺁﻥ ﻓﺮﺁﻳﻨﺪ ،ﺗﺤﻤﻴﻞ ﺷﺪﻩﺍﻧﺪ .ﻫﻤﭽﻨﻴﻦ ﻣﺤـﺪﻭﺩﻳﺖﻫـﺎﻱ ﻃﺮﺍﺣـﻲ ﻛـﻪ ﺑـﺮ ﺭﻭﺵ ﭘﻴـﺎﺩﻩﺳـﺎﺯﻱ ﻓﺮﺁﻳﻨـﺪ ﺗـﺄﺛﻴﺮ
ﻣﻲﮔﺬﺍﺭﻧﺪ ﺗﻮﺳﻂ PSPECﺗﻌﻴﻴﻦ ﻣﻲﮔﺮﺩﻧﺪ.
ﺑﻪ ﻫﻤﻴﻦ ﺟﻬﺖ ﺑﻌﺪ ﺍﺯ ﺷﻜﺴﺘﻦ ﺳﻴﺴﺘﻢ ﺗﺎ ﺳﻄﺢ ﺟﺰﻳﻴﺎﺕ ﺑﻪ ﺗﻮﺻﻴﻒ ﭘﺮﺩﺍﺯﺵ ﻣﻲ ﭘﺮﺩﺍﺯﻳﻢ .ﺑﻌﺪﺍﺯ ﺭﺳﻢ
DFDﺑﺎﻳﺪ ﺑﻪ ﺷﺮﺡ ﭘﺮﺩﺍﺯﺵ ﻫﺎ ) (PSPECﺑﭙﺮﺩﺍﺯﻳﻢ ﻛﻪ ﻣﺸﻜﻼﺕ DFDﺭﺍ ﺣﻞ ﻧﻤﺎﻳﺪ.
External Entity
) (C-Computerﮐﺎﻣﭙﻴﻮﺗﺮﻱ
Data Storde ﺫﺧﻴﺮﻩ ﺍﻃﻼﻋﺎﺕ
) (M-Manualﺩﺳﺘﻲ
ﺗﻮﺟﻪ :ﻣﺠﻤﻮﻋﻪﺍﻳﻲ ﺍﺯ ﭘﺮﺩﺍﺯﺵ ﻫﺎ ،ﻓﻌﺎﻟﻴﺖ ﻭ ﻣﺠﻤﻮﻋﻪﺍﻳﻲ ﺍﺯ ﻓﻌﺎﻟﻴﺖ ﻫﺎ ،ﺯﻳﺮ ﺳﻴﺴﺘﻢ ﻭ ﻣﺠﻤﻮﻋﻪ ﺍﻳـﻲ ﺍﺯ ﺯﻳـﺮ
ﺳﻴﺴﺘﻢ ﻫﺎ ،ﺳﻴﺴﺘﻢ ﻧﺎﻣﻴﺪﻩ ﻣﻲﺷﻮﺩ .
ﻣﻬﻤﺘﺮﻳﻦ ﻛﺎﺭ ﺩﺭ DFDﺷﻜﺴﺘﻦ ﺑﻪ ﺍﺟﺰﺍ ،ﻛﻮﭼﻜﺘﺮ ﺍﺯ ﺧﻮﺩﺵ ﺍﺳﺖ )ﺑﻪ ﻃﻮﺭ ﻣﻨﻄﻘﻲ ﻭ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺒﻲ (.
X
Y
F1 Z F2
ﻧﻤﺎﻳﺶ ﺟﺮﻳﺎﻥ ﻛﻨﺘﺮﻝ ﻳﺎ ﻭﺍﻗﻌﻪ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺷﻮﺩ .ﺑﻨﺎﺑﺮﺍﻳﻦ ،ﻧﻤﻮﺩﺍﺭ ﺟﺮﻳﺎﻥ ﻛﻨﺘﺮﻝ ﺗﻌﺮﻳﻒ ﻣﻲﺷـﻮﺩCFD(Control .
) Flow Diagramﺷﺎﻣﻞ ﻫﻤﺎﻥ ﻓﺮﺁﻳﻨﺪﻫﺎﻱ DFDﺍﺳﺖ ،ﺍﻣﺎ ،ﺑﻪ ﺟﺎﻱ ﻧﺸﺎﻥ ﺩﺍﺩﻥ ﺟﺮﻳﺎﻥ ﺩﺍﺩﻩ ،ﺟﺮﻳـﺎﻥ ﻛﻨﺘـﺮﻝ
ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ .ﺑﻪ ﺟﺎﻱ ﻧﺸﺎﻥ ﺩﺍﺩﻥ ﻓﺮﺁﻳﻨﺪﻫﺎﻱ ﻛﻨﺘﺮﻝ ﺑﻪ ﻃﻮﺭ ﻣﺴﺘﻘﻴﻢ ﺩﺭ ﺍﻳـﻦ ﻣـﺪﻝ ﺟﺮﻳـﺎﻥ ،ﻳـﻚ ﻧﺸـﺎﻥﮔـﺬﺍﺭﻱ
ﺍﺭﺟﺎﻋﻲ )ﺧﻂ ﺗﻮﭘﺮ( ﺑﻪ ﻳﻚ ﻣﺸﺨﺼﺔ ﻛﻨﺘﺮﻝ ) (CSPESﻣﻲﺑﺎﺷﺪ ﻛﻪ ﻓﺮﺁﻳﻨﺪﻫﺎﻳﻲ )ﺗﻮﺍﺑﻊ( ﺭﺍ ﻛﻨﺘﺮﻝ ﻣﻲﻧﻤﺎﻳـﺪ ﻛـﻪ ﺩﺭ
DFDﺑﺮ ﻣﺒﻨﺎﻱ ﻭﺍﻗﻌﺔ ﻋﺒﻮﺭﻛﻨﻨﺪﻩ ﺍﺯ ﺍﻳﻦ ﭘﻨﺠﺮﻩ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩﺍﻧﺪ.
ﻧﻤﻮﺩﺍﺭﻫﺎﻱ ﺟﺮﻳﺎﻥ ﺩﺍﺩﻩ ﺑﺮﺍﻱ ﻧﺸﺎﻥ ﺩﺍﺩﻥ ﺩﺍﺩﻩﻫﺎ ﻭ ﻓﺮﺁﻳﻨﺪﻫﺎﻳﻲ ﻛﻪ ﺁﻧﻬﺎ ﺭﺍ ﺩﺳـﺘﻜﺎﺭﻱ ﻣـﻲﻛﻨﻨـﺪ ﺍﺳـﺘﻔﺎﺩﻩ ﻣـﻲﺷـﻮﻧﺪ.
ﻧﻤﻮﺩﺍﺭﻫﺎﻱ ﺟﺮﻳﺎﻥ ﻛﻨﺘﺮﻝ ﻧﺸﺎﻥ ﻣﻲﺩﻫﻨﺪ ﻛﻪ ﭼﮕﻮﻧﻪ ﻭﻗﺎﻳﻊ ﺩﺭ ﻣﻴﺎﻥ ﻓﺮﺁﻳﻨﺪﻫﺎ ﺟﺮﻳـﺎﻥ ﺩﺍﺭﻧـﺪ ﻭ ﻭﻗـﺎﻳﻊ ﺧـﺎﺭﺟﻲ ﺭﺍ ﻛـﻪ
ﺑﺎﻋﺚ ﻓﻌﺎﻝ ﺷﺪﻥ ﻓﺮﺁﻳﻨﺪﻫﺎﻱ ﮔﻮﻧﺎﮔﻮﻥ ﻣﻲﺷﻮﻧﺪ ﻣﺸﺨﺺ ﻣﻲﻧﻤﺎﻳﻨﺪ .ﺭﺍﺑﻄﺔ ﺑﻴﻦ ﻣﺪﻝ ﻫﺎﻱ ﻓﺮﺁﻳﻨﺪ ﻭ ﻛﻨﺘﺮﻝ ﺑﻪ ﺻﻮﺭﺕ
ﺷﻤﺎﺗﻴﻚ ﺩﺭ ﺷﻜﻞ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩﺍﻧﺪ .ﻣﺪﻝ ﻓﺮﺁﻳﻨﺪ ﺑﻪ ﻣﺪﻝ ﻛﻨﺘﺮﻝ ﺍﺯ ﻃﺮﻳﻖ ﺷﺮﺍﻳﻂ ﺩﺍﺩﻩﻫﺎ ﻣﺮﺗﺒﻂ ﻣﻲﺷﻮﺩ .ﺍﻳﻦ ﻣـﺪﻝ
ﻛﻨﺘﺮﻝ ،ﺑﻪ ﻣﺪﻝ ﻓﺮﺁﻳﻨﺪ ﺍﺯ ﻃﺮﻳﻖ ﺍﻃﻼﻋﺎﺕ ﻓﻌﺎﻝﺳﺎﺯﻱ ﻓﺮﺁﻳﻨﺪ ﻣﻮﺟﻮﺩ ﺩﺭ CSPECﻣﺘﺼﻞ ﻣﻲﺷﻮﺩ.
ﻣﺪﻝ ﻓﺮﺁﻳﻨﺪ
ﻭﺭﻭﺩ ﺩﺍﺩﻩ ﺩﺍﺩﻩ ﺧﺮﻭﺟﻲ
DFDS
PSPECS
ﻓﻌﺎﻝﺳﺎﺯﻱ
ﻓﺮﺁﻳﻨﺪﻫﺎ
ﺷﺮﺍﻳﻂ
ﻣﺪﻝ ﻛﻨﺘﺮﻝ
DFDS
PSPECS
ﺧﺮﻭﺝ ﻛﻨﺘﺮﻝ ﻭﺭﻭﺩ
ﻛﻨﺘﺮﻝ
ﺷﮑﻞ : ۱۰ﺭﺍﺑﻄﻪ ﺑﻴﻦ ﻣﺪﻝ ﻫﺎﻱ ﺩﺍﺩﻩ ﻭ ﻛﻨﺘﺮﻝ
STDﺭﻓﺘﺎﺭ ﺳﻴﺴﺘﻢ ﺭﺍ ﺩﺭ ﺑﺮﺧﻮﺭﺩ ﺑﺎ ﺭﻭﻳﺪﺍﺩ ﻫﺎﻱ ﻣﺨﺘﻠﻒ ﻛﻪ ﻣﻨﺠﺮ ﺑﻪ ﺗﻐﻴﻴﺮ ﻭﺿﻌﻴﺖ ﺳﻴﺴﺘﻢ ﻣﻲﺷﻮﺩ ﺑﻪ ﺗﺼﻮﻳﺮ
ﻣﻲﻛﺸﺪ .
× ﺩﺭ :STDﺣﺮﻛﺖ ﺳﻴﺴﺘﻢ ﺍﺯ ﻳﻚ ﻭﺿﻌﻴﺖ ﺑﻪ ﻭﺿﻌﻴﺖ ﺩﻳﮕﺮ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﻣﻲ ﺷﻮﺩ.
× ﺩﺭ ﺍﻳﻨﺠﺎ ﻧﻘﺎﻁ ﻛﻨﺘﺮﻝ ﻧﻴﺰ ﻣﺸﺨﺺ ﻣﻲ ﺷﻮﺩ.
ﺧﻮﺍﻧﺪﻥ
ﻭﺭﻭﺩﻱ
ﺍﭘﺮﺍﺗﻮﺭ
ﺗﺸﺨﻴﺺ
ﺗﻐﺬﻳﻪ ﻣﺸﻜﻞ
ﻣﺠﺪﺩ
ﭘﺮ
ﻛﺎﻏﺬ
ﺗﻮﻟﻴﺪ ﺍﺷﻜﺎﻝ
ﺑﻴﻜﺎﺭ
ﻓﺮﺍﺧﻮﺍﻧﻲ ﺧﻮﺍﻧﺪﻥ ﻭﺭﻭﺩﻱ ﻛﺎﺭﺑﺮ
ﺧﻮﺍﻧﺪﻥ ﻓﺮﺍﻣﻴﻦ
ﺗﺸﺨﻴﺺ ﻣﺸﻜﻞ
ﭘﻴﻜﺮ ﺑﻨﺪﻱ ﺳﻴﺴﺘﻢ )ﺍﻃﻼﻋﺎﺕ ﺍﻭﻟﻴﻪ ( ﻛﻨﺘﺮﻝ ﺣﺲ ﻛﻨﻨﺪﻩ ﻫﺎ )ﺁﻧﺎﻟﻴﺰ ﺭﻭﻳﺪﺍﺩ( ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻛﺎﺭﺑﺮ
ﺧﻮﺍﻧﺪﻥ ﻭﺿﻌﻴﺖ ﺣﺲ ﻛﻨﻨﺪﻩ ﺗﺸﺨﻴﺺ ﻧﻮﻉ ﺭﻭﻳﺪﺍﺩ ﻓﻌﺎﻝ /ﻏﻴﺮ ﻓﻌﺎﻝ ﻛﺮﺩﻥ ﺯﻧﮓ ﺧﻄﺮ ﺷﻤﺎﺭﻩ ﮔﻴﺮﻱ
ﺻﻔﺤﻪ ﻛﻨﺘﺮﻝ
ﺯﻧﮓ ﺧﻄﺮ
ﺣﺲ ﻛﻨﻨﺪﻩ ﻫﺎ
ﻛﻨﺘﺮﻝ ﻣﻲﻛﻨﺪ
ﺑﺮﻧﺎﻣﻪ ﻣﻲﺩﻫﺪ
ﻛﺎﺭ ﭼﻬﺎﺭﻡ :ﺍﻳﺠﺎﺩ ﻣﺪﻝ ﺟﺮﻳﺎﻥ ﺩﺍﺩﻩ ﻭ ﺷﻜﺴﺖ ﺁﻥ ﺗﺎ ﺳﻄﺢ ﺗﻔﺼﻴﻠﻲ )(DFD
ﻓﻌﺎﻝ /ﻏﻴﺮﻓﻌﺎﻝ
ﻧﻤﻮﺩﻥ ﺳﻴﺴﺘﻢ
ﻧﻤﺎﻳﺶ ﭘﺎﺳﺦ
ﻛﺎﺭﺑﺮ
ﭘﺮﭼﻢ ﺣﺎﻟﺖ ﭼﺸﻤﻚﺯﻥ ﻧﻤﺎﻳﺶ ﻭﺿﻌﻴﺖ ﺍﻋﻤﺎﻝ
ﻓﺮﺍﺧﻮﺍﻧﻲ ﻧﻤﺎﻳﺶ ﭘﻴﻐﺎﻡﻫﺎ ﻭ ﻓﺮﺍﺧﻮﺍﻧﻲ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻛﺎﺭﺑﺮ
ﻭﺿﻌﻴﺖ
¨ ﻣﺤﻞ ﺍﺳﺘﻔﺎﺩﻩ ﻭ ﻧﺤﻮﺓ ﺍﺳﺘﻔﺎﺩﻩ -ﻟﻴﺴﺘﻲ ﺍﺯ ﻓﺮﺁﻳﻨـﺪﻫﺎﻳﻲ ﻛـﻪ ﺍﻳـﻦ ﺷـﻲﺀ ﺩﺍﺩﻩ ﻳـﺎ ﻛﻨﺘـﺮﻝ ﺭﺍ ﺍﺳـﺘﻔﺎﺩﻩ
ﻣﻲﻛﻨﻨﺪ ﻫﻤﺮﺍﻩ ﺑﺎ ﻧﺤﻮﺓ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺁﻧﻬﺎ )ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﻭﺭﻭﺩﻱ ﻓﺮﺁﻳﻨﺪ ،ﺧﺮﻭﺟـﻲ ﺍﺯ ﻓﺮﺁﻳﻨـﺪ ،ﺑـﻪ ﻋﻨـﻮﺍﻥ
ﺣﺎﻓﻈﻪ ،ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﻮﺟﻮﺩﻳﺖ ﺧﺎﺭﺟﻲ(.
¨ ﺗﻮﺻﻴﻒ ﻣﺤﺘﻮﻳﺎﺕ -ﺗﻮﺿﻴﺤﻲ ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﻣﺤﺘﻮﻳﺎﺕ.
¨ ﺍﻃﻼﻋﺎﺕ ﺗﻜﻤﻴﻠﻲ -ﺍﻃﻼﻋﺎﺕ ﺩﻳﮕـﺮﻱ ﺩﺭ ﻣـﻮﺭﺩ ﺍﻧـﻮﺍﻉ ﺩﺍﺩﻩﻫـﺎ ،ﻣﻘـﺎﺩﻳﺮ ﺍﻭﻟﻴـﻪ )ﺩﺭ ﺻـﻮﺭﺕ ﻭﺟـﻮﺩ(،
ﻣﺤﺪﻭﺩﻳﺖﻫﺎ ،ﻭ ﻣﺎﻧﻨﺪ ﺁﻥ.
ﻃﺮﺍﺣﻲ ﭼﻴﺴﺖ؟ ﻃﺮﺍﺣﻲ ﺑﺎﺯﻧﻤﺎﻳﻲ ﻣﻬﻨﺪﺳﻲ ﻭ ﻫﺪﻓﻤﻨﺪ ﭼﻴـﺰﻱ ﺍﺳـﺖ ﻛـﻪ ﻗـﺮﺍﺭ ﺍﺳـﺖ ﺳـﺎﺧﺘﻪ ﺷـﻮﺩ .ﻃﺮﺍﺣـﻲ ﺭﺍ
ﻣﻲﺗﻮﺍﻥ ﻣﻄﺎﺑﻖ ﺑﺎ ﺧﻮﺍﺳﺘﻪﻫﺎﻱ ﻣﺸﺘﺮﻱ ﭘﻴﺶ ﺑﺮﺩ ﻭ ﺩﺭ ﻋﻴﻦ ﺣﺎﻝ ﺑﺮﺍﺳﺎﺱ ﻣﺠﻤﻮﻋﻪ ﻣﻌﻴﺎﺭﻫﺎﻱ ﺍﺯ ﭘﻴﺶ ﺗﻌﺮﻳﻒ ﺷـﺪﺓ
ﻃﺮﺍﺣﻲ "ﺧﻮﺏ" ،ﻛﻴﻔﻴﺖ ﺁﻥ ﺭﺍ ﺍﺭﺯﻳﺎﺑﻲ ﻛﺮﺩ .ﺩﺭ ﺯﻣﻴﻨﺔ ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﻃﺮﺍﺣـﻲ ﺑـﺮ ﭼﻬـﺎﺭ ﻛـﺎﻧﻮﻥ ﺍﺻـﻠﻲ ﻣﺘﻤﺮﻛـﺰ
ﺍﺳﺖ :ﺩﺍﺩﻩﻫﺎ ،ﻣﻌﻤﺎﺭﻱ ،ﻭﺍﺳﻂﻫﺎ ،ﭘﻴﻤﺎﻧﻪﻫﺎ.
ﺭﻭﺵﻫﺎﻱ ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﺯ ﻋﻤﻖ ،ﺍﻧﻌﻄﺎﻑﭘﺬﻳﺮﻱ ﻭ ﻣﺎﻫﻴﺖ ،ﺍﺯ ﺍﺭﺗﺒﺎﻁ ﺍﻧـﺪﻛﻲ ﺑـﺎ ﺷـﻴﻮﻩﻫـﺎﻱ ﻛﻼﺳـﻴﻚ ﻃﺮﺍﺣـﻲ
ﻣﻬﻨﺪﺳﻲ ﺑﺮﺧﻮﺭﺩﺍﺭﻧﺪ .ﺑﺎ ﺍﻳﻦ ﻭﺟﻮﺩ ﺷﻴﻮﻩﻫﺎﻳﻲ ﺑﺮﺍﻱ ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻭﺟﻮﺩ ﺩﺍﺭﻧﺪ؛ ﻣﻌﻴﺎﺭﻫﺎﻳﻲ ﺑـﺮﺍﻱ ﻛﻴﻔﻴـﺖ ﻃﺮﺍﺣـﻲ
ﺩﺭ ﺩﺳﺘﺮﺱ ﻣﻲﺑﺎﺷﻨﺪ ﻭ ﻣﻲ ﺗﻮﺍﻥ ﺍﺯ ﻧﺸﺎﻥﮔﺬﺍﺭﻱ ﻃﺮﺍﺣﻲ ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ.
ﺩﺍﺩﻩﻫﺎ
ﻃﺮﺍﺣﻲ ﻣﻌﻤﺎﺭﻱ
ﻣﻌﻤﺎﺭﻱ
ﻧﻤﻮﺩﺍﺭ ﺍﻧﺘﻘﺎﻝ ﻭﺿﻌﻴﺖ
· ﻃﺮﺍﺣﻲ ﺩﺍﺩﻩ
ﻣﺸﺨﺼﺎﺕ ﻛﻨﺘﺮﻝ
ﻣﺪﻝ ﻃﺮﺍﺣﻲ
ﻣﺪﻝ ﺗﺤﻠﻴﻞ
ﻃﺮﺍﺣﻲ ﺩﺍﺩﻩﻫﺎ ،ﻣﺪﻝ ﺍﻃﻼﻋﺎﺗﻲ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺩﺭ ﻃﻮﻝ ﺗﺤﻠﻴﻞ ﺭﺍ ﺑـﻪ ﺳـﺎﺧﺘﺎﺭﻫﺎﻱ ﺩﺍﺩﻩﺍﻱ ﻻﺯﻡ ﺩﺭ ﺍﺟـﺮﺍﻱ ﻧـﺮﻡﺍﻓـﺰﺍﺭ
ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨﺪ .ﺍﺷﻴﺎﺀ ﻭ ﺭﻭﺍﺑﻂ ﺗﻌﻴﻴﻦ ﺷﺪﺓ ﺩﺍﺩﻩﻫﺎ ﺩﺭ ﻧﻤﻮﺩﺍﺭ ﺍﺭﺗﺒﺎﻁ ﻣﻮﺟﻮﺩﻳﺖﻫﺎ ﻭ ﻣﺤﺘﻮﺍﻱ ﻣﺸﺮﻭﺡ ﺩﺍﺩﻩﺍﻱ ﺩﺭ ﻓﺮﻫﻨـﮓ
ﺩﺍﺩﻩﻫﺎ ،ﻣﺒﻨﺎﻱ ﻓﻌﺎﻟﻴﺖ ﻃﺮﺍﺣﻲ ﺩﺍﺩﻩﻫﺎ ﺭﺍ ﻓﺮﺍﻫﻢ ﻣﻲﻛﻨﻨﺪ .ﺑﺨﺸﻲ ﺍﺯ ﻃﺮﺍﺣﻲ ﺩﺍﺩﻩﻫﺎ ﻣﻤﻜﻦ ﺍﺳـﺖ ﺑـﺎ ﻃﺮﺍﺣـﻲ ﻣﻌﻤـﺎﺭﻱ
ﻧﺮﻡﺍﻓﺰﺍﺭ ﻫﻤﺮﺍﻩ ﺷﻮﺩ .ﻃﺮﺍﺣﻲ ﺟﺰﻳﻲﺗﺮ ﺩﺍﺩﻩﻫﺎ ﻫﻤﺮﺍﻩ ﺑﺎ ﻃﺮﺍﺣﻲ ﻫﺮ ﻳﻚ ﺍﺯ ﻣﻮﻟﻔﻪﻫﺎﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺻﻮﺭﺕ ﻣﻲﮔﻴﺮﺩ.
ﻃﺮﺍﺣﻲ ﻣﻌﻤﺎﺭﻱ ،ﺭﺍﺑﻄﺔ ﺑﻴﻦ ﻋﻨﺎﺻﺮ ﺍﺻﻠﻲ ﺳﺎﺧﺘﺎﺭﻱ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺭﺍ ﺗﻌﻴﻴﻦ ﻣﻲﻛﻨﺪ ،ﻳﻌﻨﻲ ﺭﺍﺑﻄﺔ " ﺍﻟﮕﻮﻫﺎﻱ ﻃﺮﺍﺣـﻲ"
ﺑﻪ ﻛﺎﺭ ﺭﻓﺘﻪ ﺩﺭ ﺗﺤﻘﻖ ﻧﻴﺎﺯﻣﻨﺪﻱﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺷﺪﺓ ﺳﻴﺴﺘﻢ ﻭ ﻣﺤﺪﻭﺩﻳﺖﻫﺎﻱ ﻣﺆﺛﺮ ﺑﺮ ﺷـﻴﻮﺓ ﺍﺟـﺮﺍﻱ ﺍﻟﮕﻮﻫـﺎﻱ ﻃﺮﺍﺣـﻲ
ﻣﻌﻤﺎﺭﻱ ﻧﻤﺎﻳﺶ ﻃﺮﺍﺣﻲ ﻣﻌﻤﺎﺭﻱ ﻳﺎ – ﭼﺎﺭﭼﻮﺏ ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻴﻮﺗﺮﻱ – ﺣﺎﺻﻞ ﺗﻌﻴﻴﻦ ﺳﻴﺴـﺘﻢ ،ﻣـﺪﻝ ﺗﺤﻠﻴﻠـﻲ ﻭ
ﺍﺭﺗﺒﺎﻁ ﺳﻴﺴﺘﻢﻫﺎﻱ ﻓﺮﻋﻲ ﺗﻌﻴﻴﻦ ﺷﺪﻩ ﺩﺭ ﻣﺪﻝ ﺗﺤﻠﻴﻠﻲ ﺍﺳﺖ.
ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ،ﺗﻮﺻﻴﻒ ﻛﻨﻨﺪﺓ ﻧﺤﻮﺓ ﺍﺭﺗﺒﺎﻁ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺩﺭ ﻣﺤﺪﻭﺩﺓ ﺧﻮﺩ ،ﺑﺎ ﺳﻴﺴﺘﻢﻫﺎﻳﻲ ﻛـﻪ ﺑـﺎ ﺁﻥ ﺗﻌﺎﻣـﻞ ﺩﺍﺭﻧـﺪ ﻭ
ﺍﻓﺮﺍﺩﻱ ﺍﺳﺖ ﻛﻪ ﺁﻥ ﺭﺍ ﺑﻪ ﻛﺎﺭ ﻣﻲﺑﺮﻧﺪ .ﻳﻚ ﻭﺍﺳﻂ ﺑﺮ ﮔﺮﺩﺵ ﺍﻃﻼﻋﺎﺕ )ﻣﺜﻞ ﺩﺍﺩﻩﻫﺎ ﻭ ﻳﺎ ﻛﻨﺘـﺮﻝ( ﻭ ﻧـﻮﻋﻲ ﺧﺎﺻـﻲ ﺍﺯ
ﺭﻓﺘﺎﺭ ﺩﻻﻟﺖ ﺩﺍﺭﺩ .ﺑﻨﺎﺑﺮﺍﻳﻦ ﻧﻤﻮﺩﺍﺭﻫﺎﻱ ﺟﺮﻳﺎﻥ ﺩﺍﺩﻩﻫﺎ ﻭ ﻛﻨﺘـﺮﻝ ،ﺍﻛﺜـﺮ ﺍﻃﻼﻋـﺎﺕ ﻻﺯﻡ ﺑـﺮﺍﻱ ﻃﺮﺍﺣـﻲ ﻭﺍﺳـﻂ ﺭﺍ ﺍﺭﺍﻳـﻪ
ﻣﻲﻛﻨﻨﺪ.
ﻃﺮﺍﺣﻲ ﻣﺆﻟﻔﻪ ،ﻋﻨﺎﺻﺮ ﺳﺎﺧﺘﺎﺭﻱ ﻣﻌﻤﺎﺭﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﺑـﻪ ﺗﻮﺻـﻴﻒ ﺭﻭﻳـﻪﺍﻱ ﻣﻮﻟﻔـﻪ ﻧـﺮﻡﺍﻓـﺰﺍﺭﻱ ﺗﺒـﺪﻳﻞ ﻣـﻲﻛﻨـﺪ.
ﺍﻃﻼﻋﺎﺕ ﺑﻪ ﺩﺳﺖ ﺁﻣﺪﻩ ﺍﺯ STD, CSPEC, PSPECﭘﺎﻳﻪ ﻭ ﺍﺳﺎﺱ ﻃﺮﺍﺣﻲ ﻣﺆﻟﻔﻪ ﺑﻪ ﺷﻤﺎﺭ ﻣﻲﺭﻭﻧـﺪ .ﺍﻫﻤﻴـﺖ
ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﺗﻨﻬﺎ ﺑﺎ ﻳﻚ ﻛﻠﻤﻪ ﻳﻌﻨﻲ " ﻛﻴﻔﻴﺖ " ﻣﻲﺗﻮﺍﻥ ﺑﻴﺎﻥ ﻛﺮﺩ .ﻃﺮﺍﺣﻲ ﺭﻭﻧﺪﻱ ﺍﺳﺖ ﻛﻪ ﻃـﻲ ﺁﻥ ﻛﻴﻔﻴـﺖ ﺩﺭ
ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﺑﻬﺒﻮﺩ ﻣﻲﻳﺎﺑﺪ .ﻃﺮﺍﺣﻲ ،ﻧﻤﻮﻧﻪﻫﺎﻳﻲ ﺍﺯ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﻛﻪ ﺍﺯ ﻟﺤﺎﻅ ﻛﻴﻔﻲ ﻗﺎﺑﻞ ﺍﺭﺯﻳﺎﺑﻲ ﻫﺴﺘﻨﺪ ،ﺩﺭ ﺍﺧﺘﻴـﺎﺭ
ﻣﺎ ﻗﺮﺍﺭ ﻣﻲﺩﻫﺪ .ﻃﺮﺍﺣﻲ ﺗﻨﻬﺎ ﺭﺍﻫﻲ ﺍﺳﺖ ﻛﻪ ﺑﻪ ﻭﺍﺳﻄﺔ ﺁﻥ ﻣﻲﺗـﻮﺍﻧﻴﻢ ﺑـﻪ ﻃـﻮﺭ ﺻـﺤﻴﺢ ﻧﻴﺎﺯﻣﻨـﺪﻳﻬﺎ ﻭ ﺧﻮﺍﺳـﺘﻪﻫـﺎﻱ
ﻣﺸﺘﺮﻱ ﺭﺍ ﺑﻪ ﻳﻚ ﻣﺤﺼﻮﻝ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻳﺎ ﺳﻴﺴﺘﻢ ﺗﻜﻤﻴﻞ ﺷﺪﻩ ﺗﺒﺪﻳﻞ ﻛﻨﻴﻢ.
ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻳﻚ ﻓﺮﺁﻳﻨﺪ ﺗﻜﺮﺍﺭﻱ ﺍﺳﺖ ﻛﻪ ﺑﻪ ﻣﻮﺟﺐ ﺁﻥ ﻧﻴﺎﺯﻣﻨﺪﻱﻫﺎ ﻭ ﺿﺮﻭﺭﺕﻫﺎ ﺑﺮﺍﻱ ﺳﺎﺧﺖ ﻧـﺮﻡﺍﻓـﺰﺍﺭ ،ﺗﺒـﺪﻳﻞ
ﺑﻪ ﻳﻚ " ﻃﺮﺡ ﻳﺎ ﻧﻘﺸﻪ " ﻣﻲﺷﻮﻧﺪ .ﺩﺭ ﺍﺑﺘﺪﺍ ،ﻃﺮﺡ ﻳﻚ ﺩﻳﺪ ﻛﻠﻲ ﺍﺯ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫـﺪ .ﻳﻌﻨـﻲ ﺁﻧﻜـﻪ ﻃﺮﺍﺣـﻲ ﺩﺭ
ﺳﻄﺢ ﺑﺎﻻﻳﻲ ﺍﺯ ﺍﻧﺘﺰﺍﻉ ﺍﺭﺍﺋﻪ ﻣﻲﺷﻮﺩ .ﺑﺎ ﺍﻧﺠﺎﻡ ﺗﻜﺮﺍﺭ ﺩﺭ ﻃﺮﺍﺣﻲ ،ﭘﺎﻻﻳﺶ ﺑﻌﺪﻱ ،ﺑﻪ ﻧﻤـﺎﻳﺶ ﻃﺮﺍﺣـﻲ ﺩﺭ ﺳـﻄﻮﺡ ﺑﺴـﻴﺎﺭ
ﭘﺎﻳﻴﻦﺗﺮ ﺍﻧﺘﺰﺍﻉ ﻣﻨﺠﺮ ﻣﻲﮔﺮﺩﺩ .ﺍﻳﻦ ﺳﻄﻮﺡ ﻧﻴﺰ ﺑﺮﺍﻱ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﻧﻴﺎﺯﻣﻨﺪﻱﻫﺎ ﻗﺎﺑﻞ ﺭﺩﻳﺎﺑﻲ ﺍﺳﺖ ،ﺍﻣـﺎ ﺍﻳـﻦ ﻧـﻮﻉ ﺍﺭﺗﺒـﺎﻁ
ﻇﺮﻳﻒﺗﺮ ﻣﻲﺑﺎﺷﺪ.
ﺭﺍﻫﻨﻤﺎﻱ ﺍﺭﺯﻳﺎﺑﻲ ﻳﻚ ﻃﺮﺍﺣﻲ ﺧﻮﺏ ﺑﻪ ﺷﺮﺡ ﺯﻳﺮ ﺍﺭﺍﻳﻪ ﺷﺪﻩﺍﻧﺪ:
¨ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﻫﻤﺔ ﺿﺮﻭﺭﺕﻫﺎﻱ ﺁﺷﻜﺎﺭ ﻣﻮﺟﻮﺩ ﺩﺭ ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﺭﺍ ﺗﺤﻘﻖ ﺑﺨﺸﻴﺪﻩ ﻭ ﺑﺎ ﺗﻤﺎﻣﻲ ﺧﻮﺍﺳـﺘﻪﻫـﺎ
ﻭ ﻧﻴﺎﺯﻫﺎﻱ ﺿﻤﻨﻲ ﻭ ﻣﻄﻠﻮﺏ ﻣﺸﺘﺮﻱ ﺳﺎﺯﮔﺎﺭ ﺑﺎﺷﺪ.
¨ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺑﺮﺍﻱ ﻛﺴﺎﻧﻲ ﻛﻪ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻣﻲﻛﻨﻨﺪ ﻭ ﻧﻴﺰ ﺍﺷﺨﺎﺻﻲ ﻛﻪ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﺁﺯﻣﻮﻥ ﻧﻤﻮﺩﻩ ﻭ ﺑﻌـﺪﺍﹰ
ﺁﻥ ﺭﺍ ﭘﺸﺘﻴﺒﺎﻧﻲ ﻣﻲﻛﻨﻨﺪ ،ﺭﺍﻫﻨﻤﺎﻳﻲ ﺧﻮﺍﻧﺎ ﻭ ﻗﺎﺑﻞ ﺩﺭﻙ ﺑﺎﺷﺪ.
¨ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺗﺼﻮﻳﺮ ﻛﺎﻣﻠﻲ ﺍﺯ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﺍﺭﺍﺋﻪ ﻛﺮﺩﻩ ﻭ ﺣﻮﺯﻩﻫﺎﻱ ﺩﺍﺩﻩﺍﻱ ،ﻛـﺎﺭﺑﺮﺩﻱ ﻭ ﺭﻓﺘـﺎﺭﻱ ﺭﺍ ﺍﺯ ﺩﻳـﺪ
ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﻣﻮﺭﺩ ﺗﻮﺟﻪ ﻗﺮﺍﺭ ﺩﻫﺪ.
ﺑﺮﺍﻱ ﺍﺭﺯﻳﺎﺑﻲ ﻛﻴﻔﻴﺖ ﻳﻚ ﻃﺮﺍﺣﻲ ﺧﻮﺏ ﺑﺎﻳﺪ:
¨ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﻳﻚ ﺳﺎﺧﺘﺎﺭ ﻣﻌﻤﺎﺭﻱ ﺍﺭﺍﻳﻪ ﻛﻨﺪ ﻛﻪ ) (۱ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﻟﮕﻮﻫﺎﻱ ﻗﺎﺑﻞ ﺗﺸﺨﻴﺺ ﻃﺮﺍﺣـﻲ ﺍﻳﺠـﺎﺩ
ﺷﺪﻩ ﺑﺎﺷﺪ (۲) .ﻣﺘﺸﻜﻞ ﺍﺯ ﺍﺟﺰﺍﺀ ﻭ ﻋﻨﺎﺻﺮﻱ ﺑﺎﺷﺪ ﻛﻪ ﺧﺼﻮﺻﻴﺎﺕ ﻃﺮﺍﺣﻲ ﺧﻮﺏ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫﻨـﺪ )ﺑﻌـﺪﺍﹰ
ﺩﺭ ﺍﻳﻦ ﻓﺼﻞ ﻣﻮﺭﺩ ﺑﺤﺚ ﻗﺮﺍﺭ ﻣﻲﮔﻴﺮﻧﺪ( ﻭ ) (۳ﺑﻪ ﺷﻴﻮﻩﺍﻱ ﺗﻜـﺎﻣﻠﻲ ﺍﺟـﺮﺍ ﺷـﺪﻩ ﻭ ﺑـﺪﻳﻦ ﺗﺮﺗﻴـﺐ ﺍﺟـﺮﺍ ﻭ
ﺁﺯﻣﻮﻥ ﺭﺍ ﺗﻬﺴﻴﻞ ﻛﻨﺪ.
¨ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﭘﻴﻤﺎﻧﻪﺍﻱ )ﻣﺎﮊﻭﻻﺭ( ﺑﺎﺷﺪ ﻳﻌﻨﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺎﻳﺪ ﺑﻪ ﻃﻮﺭ ﻣﻨﻄﻘـﻲ ﺑـﻪ ﺍﺟﺰﺍﻳـﻲ ﺗﻘﺴـﻴﻢ ﺷـﻮﺩ ﻛـﻪ
ﺍﻋﻤﺎﻝ ﺍﺻﻠﻲ ﻭ ﻓﺮﻋﻲ ﺧﺎﺻﻲ ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﻫﻨﺪ.
¨ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺴﺘﻲ ﻧﻤﺎﻳﺶﻫﺎﻱ ﻣﺠﺰﺍﻳﻲ ﺍﺯ ﺩﺍﺩﻩﻫﺎ ،ﻣﻌﻤﺎﺭﻱ ،ﻭﺍﺳﻂﻫﺎ ﻭ ﺍﺟﺰﺍﺀ )ﭘﻴﻤﺎﻧﻪﻫﺎ( ﺭﺍ ﺩﺭ ﺑﺮﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
١۵٧ ﺗﻬﻴﻪ ﻭ ﺗﻨﻈﻴﻢ :ﺩﻛﺘﺮ ﺍﺳﻼﻡ ﻧﺎﻇﻤﻲ ﺗﺎﺑﺴﺘﺎﻥ ۱۳۸۴
ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ
ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺑﻪ ﺳﺎﺧﺘﺎﺭﻫﺎﻱ ﺩﺍﺩﻩﺍﻱ ﻣﻨﺠﺮ ﺷﻮﺩ ﻛﻪ ﺑﺮﺍﻱ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺍﺷـﻴﺎﺀ ﻣﻨﺎﺳـﺐ ﺑـﻮﺩﻩ ﻭ ﺍﺯ ﺍﻟﮕﻮﻫـﺎﻱ ¨
ﻗﺎﺑﻞ ﺗﺸﺨﻴﺺ ﺩﺍﺩﻩﻫﺎ ﻧﺎﺷﻲ ﻣﻲﺷﻮﻧﺪ.
ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺑﻪ ﺍﺟﺰﺍﻳﻲ ﻣﻨﺘﻬﻲ ﮔﺮﺩﺩ ﻛﻪ ﺧﺼﻮﺻﻴﺎﺕ ﻣﺴﺘﻘﻞ ﻛﺎﺭﺑﺮﺩﻱ ﺭﺍ ﻧﻤﺎﻳﺶ ﺩﻫﻨﺪ. ¨
ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺑﻪ ﻭﺍﺳﻂﻫﺎﻳﻲ ﺧﺘﻢ ﺷﻮﺩ ﻛﻪ ﺍﺯ ﭘﻴﭽﻴﺪﮔﻲ ﺭﻭﺍﺑﻂ ﺑﻴﻦ ﭘﻴﻤﺎﻧﻪﻫﺎ ﻭ ﻣﺤﻴﻂ ﺧﺎﺭﺟﻲ ﻣﻲﻛﺎﻫﻨﺪ. ¨
ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺣﺎﺻﻞ ﻛﺎﺭﺑﺮﺩ ﻳﻚ ﺷﻴﻮﺓ ﻗﺎﺑﻞ ﺗﻜﺮﺍﺭ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﻃﻼﻋﺎﺕ ﺑﻪ ﺩﺳـﺖ ﺁﻣـﺪﻩ ﺩﺭ ﻃـﻮﻝ ﺗﺤﻠﻴـﻞ ¨
ﻧﻴﺎﺯﻣﻨﺪﻳﻬﺎﻱ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺑﺎﺷﺪ.
ﺍﺻﻮﻝ ﻃﺮﺍﺣﻲ
ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﻫﻢ ﻳﻚ ﻓﺮﺁﻳﻨﺪ ﺍﺳﺖ ﻭ ﻫﻢ ﻳﻚ ﻣﺪﻝ .ﺩﺍﻭﻳﺲ ] [DAV95ﻣﺠﻤﻮﻋﻪ ﺍﺻﻮﻟﻲ ﺭﺍ ﺑـﺮﺍﻱ ﻃﺮﺍﺣـﻲ
ﻧﺮﻡﺍﻓﺰﺍﺭ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲﻛﻨﺪ ﻛﻪ ﺍﻳﻦ ﺍﺻﻮﻝ ﺑﻪ ﺷﺮﺡ ﺯﻳﺮ ﺍﺭﺍﻳﻪ ﻣﻲﺷﻮﻧﺪ:
vﺑﺎﺭﻳﻚ ﺑﻴﻨﻲ ﻧﺒﺎﻳﺪ ﺩﺭ ﻓﺮﺁﻳﻨﺪ ﻃﺮﺍﺣﻲ ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ .ﻳﻚ ﻃﺮﺍﺡ ﺧـﻮﺏ ﺑﺎﻳﺴـﺘﻲ ﺭﻫﻴﺎﻓـﺖﻫـﺎﻱ
ﺩﻳﮕﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﻭ ﻫﺮ ﻳﻚ ﺭﺍ ﺑﺮﺍﺳﺎﺱ ﺿﺮﻭﺭﺕﻫﺎﻱ ﻣﺴﺎﻟﻪ ،ﻣﻨﺎﺑﻊ ﻣﻮﺟﻮﺩ ﺑـﺮﺍﻱ ﺍﻧﺠـﺎﻡ ﻛـﺎﺭ ﻭ
ﻣﻔﺎﻫﻴﻢ ﻃﺮﺍﺣﻲ ﻣﻮﺭﺩ ﻗﻀﺎﻭﺕ ﻗﺮﺍﺭ ﺩﻫﺪ.
vﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﻗﺎﺑﻞ ﺭﺩﻳﺎﺑﻲ ﺑﻪ ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﺑﺎﺷﺪ .ﺍﺯ ﺁﻥ ﺟﺎ ﻛﻪ ﻫﺮ ﻳﻚ ﺍﺯ ﻋﻨﺎﺻﺮ ﻣﺪﻝ ﻃﺮﺍﺣـﻲ ﺍﻏﻠـﺐ
ﻗﺎﺑﻞ ﺭﺩﻳﺎﺑﻲ ﺑﻪ ﺿﺮﻭﺭﻳﺎﺕ ﭼﻨﺪﮔﺎﻧﻪ ﺍﺳﺖ ،ﺑﻨﺎﺑﺮﺍﻳﻦ ﻭﺟﻮﺩ ﺭﻭﺷﻲ ﺑﺮﺍﻱ ﭘﻴﮕﻴﺮﻱ ﭼﮕﻮﻧﮕﻲ ﺭﻓﻊ ﻧﻴﺎﺯﻣﻨﺪﻱﻫـﺎ
ﺩﺭ ﻣﺪﻝ ﻃﺮﺍﺣﻲ ﻻﺯﻡ ﺍﺳﺖ.
vﻃﺮﺍﺣﻲ ﻧﺒﺎﻳﺪ ﺩﻭﺑﺎﺭﻩﻛﺎﺭﻱ ﺑﺎﺷﺪ .ﺳﻴﺴﺘﻢﻫﺎ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺠﻤﻮﻋﻪ ﺍﻟﮕﻮﻫﺎﻱ ﻃﺮﺍﺣﻲ ﺳﺎﺧﺘﻪ ﻣـﻲﺷـﻮﻧﺪ
ﻛﻪ ﺍﺣﺘﻤﺎﻻﹰ ﺑﺎ ﺧﻴﻠﻲ ﺍﺯ ﺁﻧﻬﺎ ﻗﺒﻼﹰ ﻫﻢ ﺑﺮﺧﻮﺭﺩ ﺩﺍﺷﺘﻪﺍﻧﺪ .ﺍﻳﻦ ﺍﻟﮕﻮﻫﺎ ﺑﺎﻳﺪ ﻫﻤـﻮﺍﺭﻩ ﺑـﻪ ﻋﻨـﻮﺍﻥ ﮔﺰﻳﻨـﻪ ﺩﻳﮕـﺮ
ﺩﻭﺑﺎﺭﻩ ﻛﺎﺭﻱ ﺍﻧﺘﺨﺎﺏ ﮔﺮﺩﻧﺪ .ﻣﻨﺎﺑﻊ ﻣﺤﺪﻭﺩﻧﺪ! ﻟﺬﺍ ﺯﻣﺎﻥ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺻـﺮﻑ ﺍﺭﺍﻳـﻪ ﻧﻈـﺮﺍﺕ ﻭﺍﻗﻌـﺎﹰ ﺟﺪﻳـﺪ ﻭ
ﻳﻜﭙﺎﺭﭼﻪ ﻛﺮﺩﻥ ﺍﻟﮕﻮﻫﺎﻱ ﺍﺯ ﻗﺒﻞ ﻣﻮﺟﻮﺩ ﺷﻮﺩ.
vﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﻓﺎﺻﻠﺔ ﻣﻨﻄﻘﻲ ﺑﻴﻦ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻭ ﻣﺴـﺎﻟﻪ ﻣﻮﺟـﻮﺩ ﺩﺭ ﺟﻬـﺎﻥ ﻭﺍﻗﻌـﻲ ﺭﺍ ﺑـﻪ ﺣـﺪﺍﻗﻞ
ﺑﺮﺳﺎﻧﺪ .ﻳﻌﻨﻲ ،ﺳﺎﺧﺘﺎﺭ ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺎﻳﺪ )ﺩﺭ ﺻﻮﺭﺕ ﺍﻣﻜﺎﻥ( ﺳﺎﺧﺘﺎﺭ ﻣﻴﺪﺍﻥ ﻣﺴﺎﻟﻪ ﺭﺍ ﺗﻘﻠﻴﺪ ﻧﻤﺎﻳﺪ.
vﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺍﺯ ﻳﻜﻨﻮﺍﺧﺘﻲ ﻭ ﻳﻜﭙﺎﺭﭼﮕﻲ ﺑﺮﺧﻮﺭﺩﺍﺭ ﺑﺎﺷﺪ .ﺍﮔﺮ ﺍﻳﻦ ﻃﻮﺭ ﺑﻪ ﻧﻈﺮ ﺑﺮﺳﺪ ﻛﻪ ﺗﻮﺳـﻌﺔ ﻛـﻞ
ﻛﺎﺭ ﺑﺮﻋﻬﺪﺓ ﻳﻚ ﺷﺨﺺ ﺑﻮﺩﻩ ،ﺩﺭ ﺍﻳﻦ ﺻﻮﺭﺕ ﻃﺮﺍﺣﻲ ﻳﻜﺴـﺎﻥ ﻭ ﻳﻜﻨﻮﺍﺧـﺖ ﺍﺳـﺖ .ﻗﺒـﻞ ﺍﺯ ﺷـﺮﻭﻉ ﻛـﺎﺭ
ﻃﺮﺍﺣﻲ ،ﻗﻮﺍﻧﻴﻦ ،ﺳﺒﻚ ﻭ ﻗﺎﻟﺐﻫﺎ ﺑﺎﻳﺪ ﺑﺮﺍﻱ ﺗﻴﻢ ﻃﺮﺍﺣﻲ ﺗﻌﺮﻳﻒ ﻭ ﺗﻌﻴﻴﻦ ﮔﺮﺩﺩ .ﺗﻮﺟـﻪ ﻭ ﺩﻗـﺖ ﺩﺭ ﺗﻌﻴـﻴﻦ
ﻭﺍﺳﻂﻫﺎﻱ ﺑﻴﻦ ﺍﺟﺰﺍﻱ ﻃﺮﺍﺣﻲ ،ﻳﻜﭙﺎﺭﭼﮕﻲ ﻃﺮﺍﺣﻲ ﺭﺍ ﺑﻪ ﺩﻧﺒﺎﻝ ﺧﻮﺍﻫﺪ ﺩﺍﺷﺖ.
vﺳﺎﺧﺘﺎﺭ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﭘﺬﻳﺮﺍﻱ ﺗﻐﻴﻴﺮ ﺑﺎﺷﺪ .ﻣﻔﺎﻫﻴﻢ ﻣﻮﺭﺩ ﺑﺤﺚ ﻃﺮﺍﺣﻲ ﺩﺭ ﺑﺨﺶ ﺑﻌﺪﻱ ،ﺑﺎﻋﺚ ﺗﻄﺎﺑﻖ
ﺁﻥ ﺑﺎ ﺍﻳﻦ ﺍﺻﻞ ﻣﻲﺑﺎﺷﻨﺪ.
vﺳﺎﺧﺘﺎﺭ ﻃﺮﺍﺣﻲ ﺣﺘﻲ ﺩﺭ ﺻﻮﺭﺕ ﻣﻮﺍﺟﻬﻪ ﺑﺎ ﺩﺍﺩﻩﻫﺎﻱ ﻏﻴﺮﻋﺎﺩﻱ ،ﺭﻭﻳﺪﺍﺩﻫﺎ ﻳـﺎ ﺷـﺮﺍﻳﻂ ﻛـﺎﺭﻱ،
ﺑﺎﻳﺪ ﺑﻪ ﺁﺭﺍﻣﻲ ﺍﺯ ﻛﺎﺭ ﺑﺎﻳﺴﺘﺪ .ﻳﻚ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺧﻮﺏ ﻃﺮﺍﺣﻲ ﺷﺪﻩ ﻧﺒﺎﻳﺪ ﻫﺮﮔﺰ ﻧﺎﮔﻬﺎﻥ ﻣﺘﻮﻗﻒ ﮔﺮﺩﺩ .ﺑﻠﻜـﻪ
ﺑﺎﻳﺪ ﻃﺮﺍﺣﻲ ﺁﻥ ﺑﻪ ﮔﻮﻧﻪﺍﻱ ﺑﺎﺷﺪ ﻛﻪ ﺑﺎ ﺷﺮﺍﻳﻂ ﻏﻴﺮﻋﺎﺩﻱ ﺳﺎﺯﮔﺎﺭ ﺑﻮﺩﻩ ﻭ ﺍﮔﺮ ﻗﺮﺍﺭ ﺷـﺪ ﭘﺮﺩﺍﺯﺷـﻲ ﺭﺍ ﭘﺎﻳـﺎﻥ
ﺩﻫﺪ ﺍﻳﻦ ﻛﺎﺭ ﺑﻪ ﻃﻮﺭ ﻣﻼﻳﻢ ﺍﻧﺠﺎﻡ ﺩﻫﺪ.
vﻃﺮﺍﺣﻲ ﺑﻪ ﻣﻌﻨﺎﻱ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻧﻴﺴﺖ ﻭ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻧﻴﺰ ﻣﻌﺎﺩﻝ ﻃﺮﺍﺣﻲ ﻧﻤﻲﺑﺎﺷﺪ .ﺣﺘﻲ ﭘﺲ
ﺍﺯ ﺍﻳﺠﺎﺩ ﻃﺮﺍﺣﻲﻫﺎﻱ ﺟﺰﻳﻲ ﺭﻭﻳﻪﺍﻱ ﺑﺮﺍﻱ ﺍﺟﺰﺍﻱ ﺑﺮﻧﺎﻣﻪ ،ﺳﻄﺢ ﺍﻧﺘﺰﺍﻉ ﻣﺪﻝ ﻃﺮﺍﺣﻲ ﺑﺎﻻﺗﺮ ﺍﺯ ﺑﺮﻧﺎﻣـﺔ ﻣﻨﺒـﻊ
ﺍﺳﺖ .ﺗﻨﻬﺎ ﺗﺼﻤﻴﻤﺎﺕ ﻃﺮﺍﺣﻲ ﺍﺗﺨﺎﺫ ﺷﺪﻩ ﺩﺭ ﺳﻄﺢ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴـﻲ ،ﺟﺰﻳﻴـﺎﺕ ﻇﺮﻳـﻒ ﭘﻴـﺎﺩﻩﺳـﺎﺯﻱ ﺭﺍ ﻛـﻪ
ﻣﻮﺟﺐ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﻃﺮﺍﺣﻲ ﺭﻭﻳﻪﺍﻱ ﻣﻲﺷﻮﻧﺪ ﺭﺍ ﻣﻄﺮﺡ ﻣﻲﻛﻨﺪ.
vﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺿﻤﻦ ﺷﻜﻞﮔﻴﺮﻱ ،ﺍﺯ ﻧﻈﺮ ﻛﻴﻔﻲ ﻣـﻮﺭﺩ ﺍﺭﺯﻳـﺎﺑﻲ ﻗـﺮﺍﺭ ﮔﻴـﺮﺩ ﻧـﻪ ﺑﻌـﺪ ﺍﺯ ﺍﺗﻤـﺎﻡ.
ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﻣﻔﺎﻫﻴﻢ ﻃﺮﺍﺣﻲ )ﻓﺼﻞ ﻗﺒﻞ( ﻭ ﺍﻗﺪﺍﻣﺎﺕ ﻃﺮﺍﺣﻲ ﺑﺮﺍﻱ ﻛﻤﻚ ﺑﻪ ﻃﺮﺍﺡ ﺑﻪ ﻣﻨﻈـﻮﺭ ﺍﺭﺯﻳـﺎﺑﻲ
ﻛﻴﻔﻲ ،ﺩﺭ ﺩﺳﺘﺮﺱ ﻣﻲﺑﺎﺷﻨﺪ.
vﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺑﻪ ﻣﻨﻈﻮﺭ ﺑﻪ ﺣﺪﺍﻗﻞ ﺭﺳﺎﻧﺪﻥ ﺧﻄﺎﻫﺎﻱ ﻣﻔﻬﻮﻣﻲ )ﻣﻌﻨﺎﻳﻲ( ﻣﺮﻭﺭ ﻭ ﺑﺮﺭﺳـﻲ ﺷـﻮﺩ.
ﮔﺎﻩ ﻫﻨﮕﺎﻡ ﺑﺮﺭﺳﻲ ﻭ ﻣﺮﻭﺭ ﻃﺮﺍﺣﻲ ،ﺗﻤﺎﻳﻞ ﺑﻪ ﺗﺄﻛﻴﺪ ﺭﻭﻱ ﺟﺰﻳﻴﺎﺕ ﻭﺟﻮﺩ ﺩﺍﺭﺩ .ﻳﻌﻨـﻲ ﺩﺭ ﺟﻨﮕـﻞ ﻓﻘـﻂ ﺑـﻪ
ﺩﻧﺒﺎﻝ ﺩﺭﺧﺖ ﺑﻮﺩﻥ .ﺗﻴﻢ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺴﺘﻲ ﻗﺒﻞ ﺍﺯ ﻧﮕﺮﺍﻧﻲ ﺩﺭﺑﺎﺭﺓ ﻣﺪﻝ ﻃﺮﺍﺣﻲ ،ﺗﻀـﻤﻴﻦ ﻛﻨـﺪ ﻛـﻪ ﻋﻨﺎﺻـﺮ
ﺍﺻﻠﻲ ﻣﻔﻬﻮﻣﻲ ﺩﺭ ﻃﺮﺍﺣﻲ )ﺣﺬﻑ ﻭ ﺍﺯ ﻗﻠﻢ ﺍﻓﺘﺎﺩﮔﻲ ،ﺍﺑﻬﺎﻡ ﻭ ﻧﺎﺳﺎﺯﮔﺎﺭﻱ( ﻣﻮﺭﺩ ﺗﻮﺟـﻪ ﻗﺮﺍﺭﮔﺮﻓﺘـﻪ ﻭ ﺭﻓـﻊ ﻭ
ﺭﺟﻮﻉ ﮔﺸﺘﻪﺍﻧﺪ.
ﻗﻮﺍﻋﺪ ﻃﺮﺍﺣﻲ
ﻗﻮﺍﻋﺪ ﻃﺮﺍﺣﻲ ﻛﻪ ﺩﺭ ﺍﺩﺍﻣﻪ ﺑﺤﺚ ﺍﺭﺍﻳﻪ ﺷﺪﻩ ﺍﺳﺖ ،ﺩﺭ ﭘﺎﺳﺦ ﺳﻮﺍﻻﺕ ﺯﻳﺮ ﻛﻤﻚ ﻣﻲ ﻧﻤﺎﻳﺪ:
oﭼﻪ ﻣﻌﻴﺎﺭﻱ ﺑﺮﺍﻱ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺑﻪ ﻣﻮﻟﻔﻪ ﻫﺎﻱ ﻣﺠﺰﺍ ﭼﻴﺴﺖ ؟
oﭼﮕﻮﻧﻪ ﻛﺎﺭ ﻛﺮﺩﻫﺎ ﻳﺎ ﺳﺎﺧﺘﺎﺭ ﺩﺍﺩﻩ ﻫﺎ ﺍﺯ ﻧﻤﺎﻳﺶ ﻣﻔﻬﻮﻣﻲ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﻣﺠﺰﺍ ﻣﻲ ﺷﻮﺩ ؟
oﺁﻳﺎ ﻣﻌﻴﺎﺭ ﻳﻜﻨﻮﺍﺧﺘﻲ ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ﻛﻴﻔﻴﺖ ﻃﺮﺍﺣﻲ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺭﺍ ﺗﻌﺮﻳﻒ ﻛﻨﺪ ؟
oﻫﺪﻑ ﺍﺯ ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ ﻛﺎﺭ ﻛﺮﺩﻥ ﺁﻥ ﻭ ﻳﺎ ﺩﺭﺳﺖ ﻛﺎﺭ ﻛﺮﺩﻥ ﺁﻥ ﺍﺳﺖ؟
?GETTING A PROGRAM TO WORK OR GETTING IT RIGHT
oﻫﺪﻑ ﺍﺯ ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ ﺩﺭﺳﺖ ﻛﺎﺭ ﻛﺮﺩﻥ ﺍﺳﺖ ﻭ ﺑﺮﺍﻱ ﺍﻳﻨﻜﺎﺭ :
ﺗﺤﻠﻴﻞ ﺳﻴﺴﺘﻢ ﺩﺭﺳﺖ ﺗﺤﻠﻴﻞ ﻧﻴﺎﺯ ﺩﺭﺳﺖ ﺧﻮﺏ ﻃﺮﺍﺣﻲ ﺷﻮﺩ
ﺍﻧﺘﺰﺍﻉ
ﻭﻗﺘﻲ ﺑﺮﺍﻱ ﻫﺮ ﻣﺴﺎﻟﻪ ﺑﻪ ﺩﻧﺒﺎﻝ ﺭﺍﻩﺣﻞ ﭘﻴﻤﺎﻧﻪﺍﻱ ﺑﺎﺷﻴﻢ ،ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺳﻄﻮﺡ ﺍﻧﺘﺰﺍﻉ ﻧﻴﺰ ﻣﻄﺮﺡ ﻣﻲﮔﺮﺩﻧـﺪ .ﺩﺭ ﺑـﺎﻻﺗﺮﻳﻦ
ﺳﻄﺢ ﺍﻧﺘﺰﺍﻉ ،ﺭﺍﻩﺣﻞ ﺑﺎ ﺑﻜﺎﺭﮔﻴﺮﻱ ﺯﺑﺎﻥ ﻣﺤﻴﻂ ﻣﺴﺌﻠﻪ ﻭ ﺑﻪ ﺻﻮﺭﺕ ﻛﻠﻲ ﺑﻴﺎﻥ ﻣﻲﺷـﻮﺩ .ﺩﺭ ﺳـﻄﻮﺡ ﭘـﺎﻳﻴﻦﺗـﺮ ﺍﻧﺘـﺰﺍﻉ،
ﺟﻬﺖﮔﻴﺮﻱ ﻭ ﮔﺮﺍﻳﺶ ﺑﻴﺸﺘﺮ ﺭﻭﻳﻪﺍﻱ ﺍﺳﺖ .ﺍﺻﻄﻼﺣﺎﺕ ﻣﺴﺎﻟﻪﮔﺮﺍ ﺩﺭ ﺗﻼﺵ ﺑﺮﺍﻱ ﺑﻴﺎﻥ ﻳﻚ ﺭﺍﻩﺣﻞ ﺑـﺎ ﺍﺻـﻄﻼﺣﺎﺕ
ﺍﺟﺮﺍﻳﻲ ﺗﻠﻔﻴﻖ ﻣﻲﺷﻮﻧﺪ .ﻭ ﻧﻬﺎﻳﺖ ﺍﻳﻦ ﻛﻪ ﺩﺭ ﭘﺎﻳﻴﻦﺗﺮﻳﻦ ﺳﻄﺢ ﺍﻧﺘﺰﺍﻉ ،ﺭﺍﻩﺣﻞ ﺑﻪ ﮔﻮﻧﻪﺍﻱ ﺑﻴﺎﻥ ﻣﻲﺷﻮﺩ ﻛـﻪ ﻣﺴـﺘﻘﻴﻤﺎﹲ
ﻗﺎﺑﻞ ﺍﺟﺮﺍ ﺑﺎﺷﺪ.
ﺣﻴﻦ ﭘﻴﺸﺮﻭﻱ ﺩﺭ ﺳﻄﻮﺡ ﻣﺨﺘﻠﻒ ﺍﻧﺘﺰﺍﻉ ،ﺗﻼﺵ ﻣﻲﻛﻨﻴﻢ ﺗﺎ ﺍﻧﺘﺰﺍﻉﻫﺎﻱ ﺭﻭﻳﻪﺍﻱ ﻭ ﺩﺍﺩﻩﻫﺎ ﺍﻳﺠﺎﺩ ﮔﺮﺩﺩ .ﺍﻧﺘـﺰﺍﻉ ﺭﻭﻳـﻪﺍﻱ
ﺗﻮﺍﻟﻲ ﻣﺸﺨﺼﻲ ﺍﺯ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞﻫﺎ ﺍﺳﺖ ﻛﻪ ﻋﻤﻠﻜﺮﺩ ﺧﺎﺹ ﻭ ﻣﺤﺪﻭﺩﻱ ﺩﺍﺭﺩ .ﻧﻤﻮﻧﻪﺍﻱ ﺍﺯ ﻳﻚ ﺍﻧﺘﺰﺍﻉ ﺭﻭﻳـﻪﺍﻱ ،ﻭﺟـﻮﺩ
ﻛﻠﻤﺔ " " Openﺑﺮﺍﻱ ﻳﻚ " " Doorﻣﻲﺑﺎﺷﺪ Open .ﺑﺮ ﺯﻧﺠﻴﺮﺓ ﻃﻮﻻﻧﻲ ﻣﺮﺍﺣﻞ ﺭﻭﻳـﻪﺍﻱ ﺩﻻﻟـﺖ ﺩﺍﺭﺩ) :ﻣـﺜﻼﹰ
ﺭﻓﺘﻦ ﺑﻪ ﺳﻤﺖ ﺩﺭ ،ﻳﺎ ﺑﺮﺩﻥ ﺩﺳﺖ ﻭ ﮔﺮﻓﺘﻦ ﺩﺳـﺘﮕﻴﺮﻩ ،ﭼﺮﺧﺎﻧـﺪﻥ ﺩﺳـﺘﮕﻴﺮﻩ ﻭ ﻛﺸـﻴﺪﻥ ﺩﺭ ،ﻓﺎﺻـﻠﻪ ﮔـﺮﻓﺘﻦ ﺍﺯ ﺩﺭ ﻭ
ﻏﻴﺮﻩ(
ﺍﻧﺘﺰﺍﻉ ﻛﻞ ﺳﻮﻣﻴﻦ ﺷﻜﻞ ﺍﻧﺘﺰﺍﻋﻲ ﺍﺳﺖ ﻛﻪ ﺩﺭ ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻪ ﻛـﺎﺭ ﻣـﻲﺭﻭﺩ .ﻫﻤﺎﻧﻨـﺪ ﺍﻧﺘـﺰﺍﻉ ﺭﻭﻳـﻪﺍﻱ ﻭ ﺩﺍﺩﻩﺍﻱ،
ﺍﻧﺘﺰﺍﻉ ﻛﻞ ﺑﺮ ﻣﻜﺎﻧﻴﺰﻡ ﻛﻨﺘﺮﻝ ﺑﺮﻧﺎﻣﻪ ﺑﺪﻭﻥ ﻣﺸﺨﺺ ﻛﺮﺩﻥ ﺟﺰﻳﻴﺎﺕ ﺩﺍﺧﻠﻲ ﺍﺷﺎﺭﻩ ﺩﺍﺭﺩ .ﻧﻤﻮﻧﺔ ﺍﻧﺘﺰﺍﻉ ﻛﻨﺘـﺮﻝ "ﺳـﻤﺎﻓﻮﺭ
ﻫﻤﺰﻣﺎﻧﻲ" ﺍﺳﺖ ﻛﻪ ﺑﺮﺍﻱ ﻫﻤﺎﻫﻨﮓ ﻛﺮﺩﻥ ﻓﻌﺎﻟﻴﺖﻫﺎ ﺩﺭ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﺑﻪ ﻛﺎﺭ ﻣﻲﺭﻭﺩ.
ﭘﺎﻻﻳﺶ
ﭘﺎﻻﻳﺶ ﮔﺎﻡ ﺑﻪ ﮔﺎﻡ ﻳﻚ ﺭﺍﻫﺒﺮﺩ ﻃﺮﺍﺣﻲ ﺑﺎﻻ ﺑﻪ ﭘﺎﻳﻴﻦ ﺍﺳﺖ .ﺑﺮﻧﺎﻣﻪ ﺑﺎ ﺳـﻄﻮﺡ ﭘﺎﻻﻳﺸـﻲ ﻣﺘـﻮﺍﻟﻲ ﺟﺰﻳﻴـﺎﺕ ﺭﻭﻳـﻪﺍﻱ،
ﺗﻮﺳﻌﻪ ﻣﻲﻳﺎﺑﺪ .ﺗﺎ ﺯﻣﺎﻥ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺩﺳﺘﻮﺭﺍﺕ ﺯﺑﺎﻥ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ،ﺍﻳﺠﺎﺩ ﺗﻮﺳـﻌﺔ ﺳﻠﺴـﻠﻪ ﻣﺮﺍﺗـﺐ ﺑـﺎ ﺗﺠﺰﻳـﺔ ﺩﺳـﺘﻮﺭ
ﻣﺎﻛﺮﻭﺳﻜﻮﭘﻲ ﻋﻤﻞ )ﺍﻧﺘﺰﺍﻉ ﺭﻭﻳﻪﺍﻱ( ﺑﺮ ﺷﻴﻮﻩﺍﻱ ﮔﺎﻡ ﺑﻪ ﮔﺎﻡ ﺻﻮﺭﺕ ﻣﻲﮔﻴﺮﺩ .ﺩﻳﺪ ﻛﻠﻲ ﺍﻳﻦ ﻣﻔﻬـﻮﻡ ﺗﻮﺳـﻂ Wirth
ﺍﺭﺍﻳﻪ ﻣﻲﺷﻮﺩ:
ﻣﻔﻬﻮﻡ ﭘﻴﻤﺎﻧﻪﺍﻱ ﺩﺭ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺗﻘﺮﻳﺒﺎﹰ ﭘﻨﺞ ﺩﻫﻪ ،ﻣﻮﺭﺩ ﺣﻤﺎﻳﺖ ﻭﺍﻗﻊ ﺷﺪﻩ ﺍﺳﺖ .ﻣﻌﻤﺎﺭﻱ ﻧﺮﻡﺍﻓـﺰﺍﺭﻱ ﭘﻴﻤﺎﻧـﻪﺍﻱ
ﺍﺳﺖ؛ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺮ ﺍﺟﺰﺍﻱ ﻧﺸﺎﻧﻲ ﭘﺬﻳﺮ ﺑﺎ ﺍﺳﺎﻣﻲ ﺟﺪﺍﮔﺎﻧﻪ ﺑﻪ ﻧﺎﻡ " ﭘﻴﻤﺎﻧﻪﻫﺎ " ﺗﻘﺴﻴﻢ ﻣﻲﺷﻮﺩ ﻛـﻪ ﺑـﺮﺍﻱ ﺭﻓـﻊ ﻧﻴﺎﺯﻫـﺎﻱ
ﻣﺴﺎﻟﻪ ،ﻳﻜﭙﺎﺭﭼﻪ ﻭ ﻣﺠﺘﻤﻊ ﻣﻲﺑﺎﺷﻨﺪ.
M
ﻫﺰﻳﻨﻪ /ﭘﻴﻤﺎﻧﻪ
ﺗﻌﺪﺍﺩ ﭘﻴﻤﺎﻧﻪ
ﺷﻜﻞ :۲ﭘﻴﻤﺎﻧﻪ ﺷﺪﻥ ﻭ ﻫﺰﻳﻨﻪ ﻧﺮﻡﺍﻓﺰﺍﺭ
Meyersﭘﻨﺞ ﻣﻌﻴﺎﺭ ﺭﺍ ﺩﺭ ﺍﺭﺯﻳﺎﺑﻲ ﻳﻚ ﺷﻴﻮﺓ ﻃﺮﺍﺣﻲ ﻭ ﺑﺮﺍﺳﺎﺱ ﺗﻮﺍﻧﺎﻳﻲ ﺁﻥ ﺩﺭ ﺗﻌﺮﻳﻒ ﻳﻚ ﺳﻴﺴﺘﻢ ﻣﺆﺛﺮ ﭘﻴﻤﺎﻧـﻪﺍﻱ
ﻣﻌﺮﻓﻲ ﻣﻲﻛﻨﺪ:
oﺗﺠﺰﻳﻪﭘﺬﻳﺮﻱ ﭘﻴﻤﺎﻧﻪﺍﻱ :ﺍﮔﺮ ﺷﻴﻮﺓ ﻃﺮﺍﺣﻲ ﻣﻜﺎﻧﻴﺰﻡ ﻣﻨﻈﻤﻲ ﺭﺍ ﺑﺮﺍﻱ ﺗﺠﺰﻳﺔ ﻣﺴﺎﻟﻪ ﺑـﻪ ﻣﺴـﺎﻳﻞ ﻓﺮﻋـﻲ
ﺍﺭﺍﻳﻪ ﺩﻫﺪ ،ﺩﺭ ﺁﻥ ﺻﻮﺭﺕ ﭘﻴﭽﻴﺪﮔﻲ ﻣﺴﺎﻟﻪ ﻛﻠﻲ ﻛﺎﻫﺶ ﻳﺎﻓﺘﻪ ﻭ ﺑﺪﻳﻦ ﺗﺮﺗﻴـﺐ ﺗﺤﻘـﻖ ﻳـﻚ ﺭﺍﻩﺣـﻞ ﻣـﺆﺛﺮ
ﭘﻴﻤﺎﻧﻪﺍﻱ ﻣﻴﺴﺮ ﻣﻲﮔﺮﺩﺩ.
oﻗﺎﺑﻠﻴﺖ ﺗﺮﻛﻴﺐ ﭘﻴﻤﺎﻧﻪﺍﻱ :ﺍﮔﺮ ﻳﻚ ﺷﻴﻮﺓ ﻃﺮﺍﺣﻲ ﺍﻣﻜـﺎﻥ ﻫـﻢﮔـﺬﺍﺭﻱ ﺍﺟـﺰﺍﻱ ﻣﻮﺟـﻮﺩ )ﻗﺎﺑـﻞ ﺍﺳـﺘﻔﺎﺩﻩ
ﻣﺠﺪﺩ( ﻃﺮﺍﺣﻲ ﺭﺍ ﺩﺭ ﻳﻚ ﺳﻴﺴﺘﻢ ﺟﺪﻳﺪ ﺑﻪ ﻭﺟﻮﺩ ﺑﻴﺎﻭﺭﺩ ،ﺁﻥﮔﺎﻩ ﻳﻚ ﺭﺍﻩﺣﻞ ﭘﻴﻤﺎﻧـﻪﺍﻱ ﺑـﻪ ﺩﺳـﺖ ﺧﻮﺍﻫـﺪ
ﺁﻣﺪ ﻛﻪ ﺩﻭﺑﺎﺭﻩﻛﺎﺭﻱ ﻧﺨﻮﺍﻫﺪ ﺩﺍﺷﺖ.
oﻗﺎﺑﻠﻴﺖ ﺩﺭﻙ ﭘﻴﻤﺎﻧﻪﺍﻱ :ﺍﮔﺮ ﭘﻴﻤﺎﻧﻪﺍﻱ ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﭘﻴﻤﺎﻧﻪ ﻣﺴﺘﻘﻞ ﻗﺎﺑﻞ ﺩﺭﻙ ﺑﺎﺷﺪ )ﺑـﺪﻭﻥ ﺍﺭﺟـﺎﻉ ﺑـﻪ
ﭘﻴﻤﺎﻧﻪﻫﺎﻱ ﺩﻳﮕﺮ( ﺳﺎﺧﺘﻦ ﻭ ﺗﻐﻴﻴﺮ ﺁﻥ ﺁﺳﺎﻥﺗﺮ ﺧﻮﺍﻫﺪ ﺑﻮﺩ.
oﺍﺳﺘﻤﺮﺍﺭ ﭘﻴﻤﺎﻧﻪﺍﻱ :ﺍﮔﺮ ﺗﻐﻴﻴﺮﺍﺕ ﻛﻮﭼﻚ ﺩﺭ ﻧﻴﺎﺯﻣﻨﺪﻱﻫﺎﻱ ﺳﻴﺴﺘﻢ ،ﺑﻴﺶ ﺍﺯ ﺗﻐﻴﻴـﺮ ﺳﻴﺴـﺘﻢ ،ﻣﻨﺠـﺮ ﺑـﻪ
ﺗﻐﻴﻴﺮﺍﺕ ﺩﺭ ﭘﻴﻤﺎﻧﻪﻫﺎﻱ ﺟﺪﺍﮔﺎﻧﻪ ﺷﻮﺩ ،ﺗﺄﺛﻴﺮ ﺍﺛﺮﺍﺕ ﺟﺎﻧﺒﻲ ﺣﺎﺻﻞ ﺍﺯ ﺗﻐﻴﻴﺮ ﺑﻪ ﺣﺪﺍﻗﻞ ﺧﻮﺍﻫﺪ ﺭﺳﻴﺪ.
oﻣﺤﺎﻓﻈﺖ ﭘﻴﻤﺎﻧﻪﺍﻱ :ﺍﮔﺮ ﺩﺭ ﻳﻚ ﭘﻴﻤﺎﻧﻪ ﺷﺮﺍﻳﻂ ﻏﻴﺮﻋﺎﺩﻱ ﭘﻴﺶ ﺑﻴﺎﻳﺪ ﻭ ﺗـﺄﺛﻴﺮﺍﺕ ﺁﻥ ﺑـﻪ ﻫﻤـﺎﻥ ﭘﻴﻤﺎﻧـﻪ
ﻣﺤﺪﻭﺩ ﺷﻮﺩ ،ﺗﺄﺛﻴﺮ ﺍﺛﺮﺍﺕ ﺟﺎﻧﺒﻲ ﻧﺎﺷﻲ ﺍﺯ ﺧﻄﺎ ،ﺑﻪ ﺣﺪﺍﻗﻞ ﺧﻮﺍﻫﺪ ﺭﺳﻴﺪ.
ﻣﻌﻤﺎﺭﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ
ﺁﻳﺎ ﻣﻌﻤﺎﺭﻱ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺑﺎﻳﺴﺘﻲ ﺍﺯ ﻣﺪﻝ ﻧﻴﺎﺯ ﺍﺳﺘﺨﺮﺍﺝ ﮔﺮﺩﺩ؟
ﻣﻌﻤﺎﺭﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻪ " ﺳﺎﺧﺘﺎﺭ ﻛﻠﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻭ ﺭﺍﻩﻫﺎﻱ ﺍﻳﺠﺎﺩ ﻳﻜﭙﺎﺭﭼﮕﻲ ﺫﻫﻨـﻲ ﺳﻴﺴـﺘﻢ ﺍﺯ ﻃﺮﻳـﻖ ﺍﻳـﻦ ﺳـﺎﺧﺘﺎﺭ " ﺍﺷـﺎﺭﻩ
ﻣﻲﻛﻨﺪ .ﻣﻌﻤﺎﺭﻱ ﺩﺭ ﺳﺎﺩﻩﺗﺮﻳﻦ ﺷﻜﻞ ﺧﻮﺩ ﻋﺒﺎﺭﺕ ﺍﺳﺖ ﺍﺯ ﺳﺎﺧﺘﺎﺭ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺒﻲ ﺍﺟﺰﺍﺀ ﺑﺮﻧﺎﻣﻪ )ﭘﻴﻤﺎﻧـﻪﻫـﺎ(،
ﺷﻴﻮﺓ ﺍﺭﺗﺒﺎﻁ ﺍﻳﻦ ﺍﺟﺰﺍﺀ ﻭ ﺳﺎﺧﺘﺎﺭ ﺩﺍﺩﻩﻫﺎﻳﻲ ﻛﻪ ﺗﻮﺳﻂ ﺍﺟﺰﺍﺀ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﻣﻲﮔﻴﺮﻧﺪ.
ﻳﻜﻲ ﺍﺯ ﺍﻫﺪﺍﻑ ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﻧﻘﺸﺔ ﻣﻌﻤﺎﺭﻱ ﺳﻴﺴﺘﻢ ﺍﺳﺖ .ﺍﻳﻦ ﻧﻘﺸـﻪ ﭼـﺎﺭﭼﻮﺏ ﻭ ﻣﺒﻨـﺎﻳﻲ ﺍﺳـﺖ ﻛـﻪ ﻓﻌﺎﻟﻴـﺖﻫـﺎﻱ
ﺟﺰﻳﻲﺗﺮ ﻃﺮﺍﺣﻲ ﺑﺮﺍﺳﺎﺱ ﺁﻥ ﺍﻧﺠﺎﻡ ﻣﻲﮔﻴﺮﻧﺪ .ﻣﺠﻤﻮﻋﻪ ﺍﻟﮕﻮﻫﺎﻱ ﻣﻌﻤﺎﺭﻱ ،ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﻗﺎﺩﺭ ﻣﻲﺳﺎﺯﺩ ﺗـﺎ ﻣﻔـﺎﻫﻴﻢ
ﺳﻄﺢ ﻃﺮﺍﺣﻲ ﺭﺍ ﻣﺠﺪﺩﺍﹰ ﻗﺎﺑﻞ ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﻳﺪ.
M ﺗﻮﺍﻥ
ﻋﻤﻖ
d e k
i m
ﭘﻬﻨﺎ
ﺗﺠﺰﻳﻪ ﺳﺎﺧﺘﺎﺭﻱ
ﺍﮔﺮ ﺳﺒﻚ ﻣﻌﻤﺎﺭﻱ ﻳﻚ ﺳﻴﺴﺘﻢ ،ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺒﻲ ﺑﺎﺷﺪ ،ﻣﻲﺗﻮﺍﻥ ﺳﺎﺧﺘﺎﺭ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﻫﻢ ﺑـﻪ ﺻـﻮﺭﺕ ﺍﻓﻘـﻲ ﻭ ﻫـﻢ ﺑـﻪ ﻃـﻮﺭ
ﻋﻤﻮﺩﻱ ﺗﻘﺴﻴﻢﺑﻨﺪﻱ ﻛﺮﺩ .ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺷﻜﻞ ۴ﺍﻟﻒ ،ﺗﻘﺴﻴﻢﺑﻨﺪﻱ ﺍﻓﻘﻲ ،ﺷﺎﺧﻪﻫﺎﻱ ﺟﺪﺍﮔﺎﻧـﺔ ﺳﻠﺴـﻠﻪ ﻣﺮﺍﺗـﺐ ﭘﻴﻤﺎﻧـﻪﺍﻱ ﺭﺍ
ﺑﺮﺍﻱ ﻫﺮ ﻳﻚ ﺍﺯ ﻭﻇﺎﻳﻒ ﺍﺻﻠﻲ ﺑﺮﻧﺎﻣﻪ ﺗﻌﻴﻴﻦ ﻣﻲﻛﻨﺪ .ﭘﻴﻤﺎﻧﻪﻫﺎﻱ ﻛﻨﺘﺮﻟﻲ ﻛﻪ ﺑﺎ ﺳﺎﻳﺔ ﺗﻴﺮﻩﺗـﺮ ﻧﺸـﺎﻥ ﺩﺍﺩﻩ ﺷـﺪﻩﺍﻧـﺪ ،ﺑـﺮﺍﻱ
ﻫﻤﺎﻫﻨﮕﻲ ﺍﺭﺗﺒﺎﻁ ﺑﻴﻦ ﻭﻇﺎﻳﻒ ﻭ ﺍﺟﺮﺍﻱ ﺁﻧﻬﺎ ﺑﻪ ﻛﺎﺭ ﻣﻲﺭﻭﺩ .ﺳﺎﺩﻩﺗﺮﻳﻦ ﺷﻴﻮﺓ ﺗﻘﺴـﻴﻢﺑﻨـﺪﻱ ﺍﻓﻘـﻲ ،ﺳـﻪ ﺑﺨـﺶ ﺭﺍ ﺗﻌﻴـﻴﻦ
ﻣﻲﻛﻨﺪ ﻛﻪ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ :ﻭﺭﻭﺩﻱ ،ﺗﻐﻴﻴﺮ ﻭ ﺗﺒﺪﻳﻞ ﺩﺍﺩﻩﻫﺎ )ﻛﻪ ﺍﻏﻠﺐ ﻓﺮﺁﻳﻨﺪ ﻧﺎﻡ ﺩﺍﺭﺩ( ﻭ ﺧﺮﻭﺟﻲ.
ﺗﻘﺴﻴﻢﺑﻨﺪﻱ ﻣﻌﻤﺎﺭﻱ ﺑﻪ ﺻﻮﺭﺕ ﺍﻓﻘﻲ ،ﻣﺰﺍﻳﺎﻱ ﺭﻭﺷﻨﻲ ﺭﺍ ﺑﻪ ﻫﻤﺮﺍﻩ ﺩﺍﺭﺩ.
¨ ﻣﻨﺠﺮ ﺑﻪ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻣﻲﺷﻮﺩ ﻛﻪ ﺁﺯﻣﻮﻥ ﺁﻥ ﺁﺳﺎﻥﺗﺮ ﺍﺳﺖ.
¨ ﻣﻨﺠﺮ ﺑﻪ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻣﻲﺷﻮﺩ ﻛﻪ ﻧﮕﻬﺪﺍﺭﻱ ﻭ ﺣﻔﻆ ﺁﻥ ﺁﺳﺎﻥﺗﺮ ﺍﺳﺖ.
¨ ﻣﻨﺠﺮ ﺑﻪ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻣﻲﺷﻮﺩ ﻛﻪ ﺍﻧﺘﺸﺎﺭ ﺁﻥ ﺍﺯ ﭘﻴﺎﻣﺪﻫﺎﻱ ﺟﻨﺒﻲ ﻛﻤﺘﺮﻱ ﺑﺮﺧﻮﺭﺩﺍﺭ ﺍﺳﺖ.
¨ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺭﺍ ﺍﻳﺠﺎﺩ ﻣﻲﻛﻨﺪ ﻛﻪ ﺑﺴﻂ ﻭ ﺗﻮﺳﻌﺔ ﺁﻥ ﺳﺎﺩﻩﺗﺮ ﺍﺳﺖ.
ﺍﺯ ﺁﻥ ﺟﺎ ﻛﻪ ﻛﺎﺭﻛﺮﺩ ﺍﺻﻠﻲ ﺍﺯ ﻳﻜﺪﻳﮕﺮ ﺟﺪﺍ ﻣﻲﮔﺮﺩﻧﺪ ،ﺗﻐﻴﻴﺮﺍﺕ ﭘﻴﭽﻴﺪﮔﻲ ﻛﻤﺘﺮﻱ ﺩﺍﺭﻧـﺪ ﻭ ﺑﺴـﻂ ﻭ ﺗﻮﺳـﻌﺔ ﺳﻴﺴـﺘﻢ )ﻛـﻪ
ﺍﻣﺮﻱ ﺭﺍﻳﺞ ﺍﺳﺖ( ﺑﺪﻭﻥ ﺗﺄﺛﻴﺮﺍﺕ ﺟﺎﻧﺒﻲ ،ﺭﺍﺣﺖﺗﺮ ﺍﻧﺠﺎﻡ ﻣﻲﺷﻮﺩ .ﺍﺯ ﺟﻨﺒـﺔ ﻣﻨﻔـﻲ ،ﺗﻘﺴـﻴﻢﺑﻨـﺪﻱ ﺍﻓﻘـﻲ ﺑﺎﻋـﺚ ﻣـﻲﺷـﻮﺩ
ﺩﺍﺩﻩﻫﺎﻱ ﺑﻴﺸﺘﺮﻱ ﺍﺯ ﻭﺍﺳﻂﻫﺎﻱ ﭘﻴﻤﺎﻧﻪ ﻋﺒﻮﺭ ﻛﺮﺩﻩ ﻭ ﻛﻨﺘﺮﻝ ﻛﻠﻲ ﮔﺮﺩﺵ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﺩﺷﻮﺍﺭ ﻭ ﭘﻴﭽﻴﺪﻩ ﻣﻲﺳـﺎﺯﺩ)ﺩﺭ ﺻـﻮﺭﺗﻲ
ﻛﻪ ﻓﺮﺁﻳﻨﺪ ﻣﺴﺘﻠﺰﻡ ﺟﺎﺑﻪﺟﺎﻳﻲ ﺳﺮﻳﻊ ﺍﺯ ﻳﻚ ﻛﺎﺭﻛﺮﺩ ﺑﻪ ﻛﺎﺭﻛﺮﺩﻱ ﺩﻳﮕﺮ ﺑﺎﺷﺪ(.
ﻛﺎﺭﻛﺮﺩ ۱
ﻛﺎﺭﻛﺮﺩ ۲
ﭘﻴﻤﺎﻧﻪﻫﺎﻱ
ﺍﺗﺨﺎﺫ ﺗﺼﻤﻴﻢ
ﭘﻴﻤﺎﻧﻪﻫﺎﻱ
" ﻛﺎﺭﮔﺮ" ﺷﻜﻞ ) :۴ﺏ( ﺍﻓﺮﺍﺯ ﻋﻤﻮﺩﻱ
ﺑﻴﺎﻧﮕﺮ ﺁﻥ ﺍﺳﺖ ﻛﻪ "ﻭﺟﻪ ﻣﺸﺨﺼﺔ ﭘﻴﻤﺎﻧﻪﻫﺎ ،ﺗﺼﻤﻴﻤﺎﺕ ﻃﺮﺍﺣـﻲ ﺍﺳـﺖ ﻛـﻪ ﻫـﺮ ﭘﻴﻤﺎﻧـﻪ ﺍﺯ ﭘﻴﻤﺎﻧـﻪﻫـﺎﻱ ﺩﻳﮕـﺮ ﻣﺨﻔـﻲ
ﻣﻲﺳﺎﺯﺩ" .ﺑﻪ ﻋﺒﺎﺭﺗﻲ ﺩﻳﮕﺮ ،ﭘﻴﻤﺎﻧﻪﻫﺎ ﺑﺎﻳﺪ ﻃﻮﺭﻱ ﻃﺮﺍﺣﻲ ﻭ ﻣﺸﺨﺺ ﺷﻮﻧﺪ ﻛﻪ ﺍﻃﻼﻋﺎﺕ )ﺭﻭﻳﻪ ﻭ ﺩﺍﺩﻩﻫﺎ( ﻣﻮﺟـﻮﺩ ﺩﺭ ﻫـﺮ
ﭘﻴﻤﺎﻧﻪ ﺑﺮﺍﻱ ﭘﻴﻤﺎﻧﻪﻫﺎﻱ ﺩﻳﮕﺮﻱ ﻛﻪ ﺑﻪ ﭼﻨﻴﻦ ﺍﻃﻼﻋﺎﺗﻲ ﻧﻴﺎﺯ ﻧﺪﺍﺭﻧﺪ ،ﻏﻴﺮ ﻗﺎﺑﻞ ﺩﺳﺘﺮﺳﻲ ﺑﺎﺷﺪ .ﺑﻨﺎﺑﺮﺍﻳﻦ:
ﻫﻤﻪ ﺍﻃﻼﻋﺎﺕ ﺭﺍ ﺑﻪ ﻫﻤﻪ ﻛﺎﺭﺑﺮﺍﻥ ﻧﺒﺎﻳﺪ ﻧﺸﺎﻥ ﺩﺍﺩ.
¨ ﻭﻳﮋﮔﻲ ﭘﻴﻤﺎﻧﻪ ﺍﻱ) (modularﻳﮏ ﺭﻭﺵ ﭘﺬﻳﺮﻓﺘﻪ ﺷﺪﻩ ﺩﺭ ﮐﻠﻴﻪ ﺭﺷﺘﻪ ﻫﺎﻱ ﻣﻬﻨﺪﺳﻲ ﺍﺳﺖ.
¨ ﺗﺎﺛﻴﺮﺍﺕ ﻃﺮﺍﺣﻲ ﭘﻴﻤﺎﻧﻪﺍﻱ:
ﮐﺎﻫﺶ ﭘﻴﭽﻴﺪﮔﻲ
ﺗﺴﻬﻴﻞ ﺗﻐﻴﻴﺮﺍﺕ
ﺍﻣﮑﺎﻥ ﺗﻮﺳﻌﻪ ﻣﻮﺍﺯﻱ ﻣﻮﻟﻔﻪ ﻫﺎﻱ ﻣﺨﺘﻠﻒ ﻭ ﺩﺭ ﻧﺘﻴﺠﻪ ﺁﻥ ﺗﺴﻬﻴﻞ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ
¨ ﺳﻪ ﻣﻔﻬﻮﻡ ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﺩﺭ ﻃﺮﺍﺣﻲ ﭘﻴﻤﺎﻧﻪﻫﺎ:
ﺍﺳﺘﻘﻼﻝ ﻋﻤﻠﻴﺎﺗﻲ )(Functional Independence
ﺍﻧﺴﺠﺎﻡ )(Cohesion
ﭘﻴﻮﺳﺘﮕﻲ )(Coupling
ﺍﺳﺘﻘﻼﻝ ﻋﻤﻠﻴﺎﺗﻲ
ﻣﻔﻬﻮﻡ " ﺍﺳﺘﻘﻼﻝ ﻋﻤﻠﻴﺎﺗﻲ " ﭘﻴﺎﻣﺪ ﻣﺴﺘﻘﻴﻢ ﭘﻴﻤﺎﻧﻪ ﺳﺎﺧﺘﻦ ﻭ ﻣﻔﺎﻫﻴﻢ ﺍﻧﺘﺰﺍﻉ ﻭ ﭘﻨﻬﺎﻥﺳﺎﺯﻱ ﺍﻃﻼﻋﺎﺕ ﺍﺳﺖ .ﺍﺳـﺘﻘﻼﻝ ﻋﻤﻠﻴـﺎﺗﻲ
ﺍﺯ ﻃﺮﻳﻖ ﺍﻳﺠﺎﺩ ﭘﻴﻤﺎﻧﻪﻫﺎﻳﻲ ﺑﺎ ﻋﻤﻠﻜﺮﺩ ﻳﻚ ﻣﻨﻈﻮﺭﻩ ﻭ ﻋﺪﻡ ﺍﺭﺗﺒﺎﻁ ﺑﻴﺶ ﺍﺯ ﺣﺪ ﺑﺎ ﭘﻴﻤﺎﻧﻪﻫﺎﻱ ﺩﻳﮕﺮ ،ﺗﺤﻘﻖ ﻣـﻲﻳﺎﺑـﺪ .ﺑـﻪ ﺑﻴـﺎﻥ
ﺩﻳﮕﺮ ،ﻣﺎ ﻗﺼﺪ ﺩﺍﺭﻳﻢ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺭﺍ ﻃﺮﺍﺣﻲ ﻛﻨﻴﻢ ﻛﻪ ﻫﺮ ﭘﻴﻤﺎﻧﻪ ﻳﻚ ﻭﻇﻴﻔﺔ ﺧﺎﺹ ﻓﺮﻋﻲ ﺍﺯ ﺿﺮﻭﺭﺕﻫﺎ ﺭﺍ ﺍﻧﺠـﺎﻡ ﺩﺍﺩﻩ ﻭ ﺍﺯ ﺩﻳـﺪ
ﺳﺎﻳﺮ ﺑﺨﺶﻫﺎﻱ ﺳﺎﺧﺘﺎﺭ ﺑﺮﻧﺎﻣﻪ ،ﻭﺍﺳﻂ ﺳﺎﺩﻩﺍﻱ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
ﺗﻮﺳﻌﺔ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺑﺎ ﭘﻴﻤﺎﻧﻪﺍﻱ ﺷﺪﻥ ﻛﺎﺭﺁﻣﺪ ﻳﻌﻨﻲ ﭘﻴﻤﺎﻧﻪﻫﺎﻱ ﻣﺴﺘﻘﻞ ،ﺁﺳﺎﻥﺗﺮ ﺍﺳﺖ ﺯﻳﺮﺍ ﻛﺎﺭ ﺗﻘﺴـﻴﻢﺑﻨـﺪﻱ ﺷـﺪﻩ ﻭ ﻭﺍﺳـﻂﻫـﺎ
ﺳﺎﺩﻩ ﺷﺪﻩﺍﻧﺪ) .ﺍﻧﺸﻌﺎﺑﺎﺕ ﺭﺍ ﻫﻨﮕﺎﻡ ﺍﻧﺠﺎﻡ ﺗﻮﺳﻌﻪ ﺗﻮﺳﻂ ﻳﻚ ﺗﻴﻢ ،ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ (.ﻧﮕﻬـﺪﺍﺭﻱ ﻭ ﺁﺯﻣـﻮﻥ ﭘﻴﻤﺎﻧـﻪﻫـﺎﻱ ﻣﺴـﺘﻘﻞ
ﺳﺎﺩﻩﺗﺮ ﺍﺳﺖ ﺯﻳﺮﺍ ﺗﺄﺛﻴﺮﺍﺕ ﺛﺎﻧﻮﻳﻪ ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﺑﻪ ﻭﺍﺳﻄﺔ ﺗﻐﻴﻴﺮ ﻃﺮﺍﺣﻲ /ﺑﺮﻧﺎﻣﻪ ،ﻣﺤﺪﻭﺩ ﻣﻲﺷﻮﻧﺪ .ﺍﻧﺘﺸﺎﺭ ﺧﻄﺎ ﻛﺎﻫﺶ ﻣﻲﻳﺎﺑـﺪ ﻭ
ﭘﻴﻤﺎﻧﻪﻫﺎﻳﻲ ﺑﺎ ﻗﺎﺑﻠﻴﺖ ﺍﺳﺘﻔﺎﺩﺓ ﻣﺠﺪﺩ ﺍﻣﻜﺎﻥﭘﺬﻳﺮ ﻣﻲﮔﺮﺩﻧﺪ .ﺑﻪ ﻃﻮﺭ ﺧﻼﺻﻪ ،ﺍﺳﺘﻘﻼﻝ ﻋﻤﻠﻴﺎﺗﻲ ﺭﻣﺰ ﻃﺮﺍﺣـﻲ ﺧـﻮﺏ ﻭ ﻃﺮﺍﺣـﻲ،
ﺭﻣﺰ ﻛﻴﻔﻴﺖ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﺳﺖ .ﺍﺳﺘﻘﻼﻝ ﺑﺎ ﺩﻭ ﻣﻌﻴﺎﺭ ﻛﻴﻔﻲ ﺍﺭﺯﻳﺎﺑﻲ ﻣﻲﮔﺮﺩﺩ :ﺍﻧﺴﺠﺎﻡ ﻭ ﺍﺗﺼﺎﻝ
ﺍﻧﺴﺠﺎﻡ" ﻗﺪﺭﺕ ﻋﻤﻠﻴﺎﺗﻲ ﻧﺴﺒﻲ ﻳﻚ ﭘﻴﻤﺎﻧﻪ ﺍﺳﺖ ﻭ ﺍﺗﺼﺎﻝ ﻣﻘﻴﺎﺱ ﻭﺍﺑﺴﺘﮕﻲ ﻧﺴﺒﻲ ﭘﻴﻤﺎﻧﻪﻫﺎ ﺑﻪ ﻫﻢ ﻣﻲﺑﺎﺷﺪ.
ﭼﺮﺍ ﺍﺳﺘﻘﻼﻝ ﺩﺍﺭﺍﯼ ﺍﻫﻤﻴﺖ ﺍﺳﺖ؟
ﺗﻮﺳﻌﻪ ﺁﺳﺎﻧﺘﺮ n
ﺗﺴﻬﻴﻞ ﺩﺭﻧﮕﻬﺪﺍﺭﯼ ﻭ ﺁﺯﻣﺎﻳﺶ n
ﮐﺎﻫﺶ ﺍﻧﺘﺸﺎﺭ ﺧﻄﺎ n
ﻗﺎﺑﻠﻴﺖ ﺍﺳﺘﻔﺎﺩﻩ ﻣﺠﺪﺩ n
ﺍﻧﺴﺠﺎﻡ)(Cohesion
ﺍﻧﺴﺠﺎﻡ ﻳﺎ ﭼﺴﺒﻨﺪﮔﻲ ،ﺑﺴﻂ ﻃﺒﻴﻌﻲ ﻣﻔﻬﻮﻡ ﭘﻨﻬﺎﻥﺳﺎﺯﻱ ﺍﻃﻼﻋﺎﺕ ﺍﺳﺖ .ﻳﻚ ﭘﻴﻤﺎﻧﻪ ﻳﻜﭙﺎﺭﭼﻪ ،ﻳـﻚ ﻭﻇﻴﻔـﻪ ﻣﻨﻔـﺮﺩ ﺭﺍ ﺩﺭ ﻳـﻚ
ﺭﻭﻳﻪ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻭ ﺑﺎ ﺑﺮﻗﺮﺍﺭﻱ ﺍﺭﺗﺒﺎﻁ ﻣﺤﺪﻭﺩ ﺑﺎ ﺭﻭﻳﻪﻫﺎﻱ ﺩﺭ ﺣﺎﻝ ﺍﺟﺮﺍﻱ ﺳﺎﻳﺮ ﺑﺨﺶﻫﺎﻱ ﺑﺮﻧﺎﻣﻪ ،ﺍﻧﺠـﺎﻡ ﻣـﻲﺩﻫـﺪ .ﺑـﻪ ﺑﻴـﺎﻥ
ﺳﺎﺩﻩﺗﺮ ،ﻳﻚ ﭘﻴﻤﺎﻧﻪ ﻣﻨﺴﺠﻢ )ﺑﻪ ﻃﻮﺭ ﺍﻳﺪﻩﺁﻝ( ﺑﺎﻳﺪ ﺗﻨﻬﺎ ﻳﻚ ﻛﺎﺭ ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﻫﺪ.
ﺍﻧﺴﺠﺎﻡ ﺭﺍ ﻣﻲﺗﻮﺍﻥ ﺑﻪ ﺻﻮﺭﺕ ﻳﻚ " ﻃﻴﻒ " ﻧﺸﺎﻥ ﺩﺍﺩ .ﻣﺎ ﻫﻤﻴﺸﻪ ﺗﻼﺵ ﻣﻲﻛﻨﻴﻢ ﺗﺎ ﺑﻪ ﺍﻧﺴﺠﺎﻡ ﻭ ﭘﻜﭙﺎﺭﭼﮕﻲ ﺯﻳـﺎﺩ ﺩﺳـﺖ
ﻳﺎﺑﻴﻢ .ﻫﺮ ﭼﻨﺪ ﻛﻪ ﺩﺍﻣﻨﺔ ﻣﺘﻮﺳﻂ ﻃﻴﻒ ﻧﻴﺰ ﺍﻏﻠﺐ ﻗﺎﺑﻞ ﻗﺒﻮﻝ ﺍﺳﺖ .ﻣﻘﻴﺎﺱ ﺍﻧﺴﺠﺎﻡ ،ﻏﻴﺮﺧﻄﻲ ﺍﺳـﺖ .ﻳﻌﻨـﻲ ﺁﻥ ﻛـﻪ ،ﺍﻧﺴـﺠﺎﻡ
ﺍﻧﺘﻬﺎﻱ ﭘﺎﻳﺎﻧﻲ ﺑﻪ ﻣﺮﺍﺗﺐ ﺑﺪﺗﺮ ﺍﺯ ﺩﺍﻣﻨﺔ ﻣﺘﻮﺳﻂ )ﺍﻭﺍﺳﻂ ﻃﻴﻒ( ﺍﺳﺖ ﻛﻪ ﺗﻘﺮﻳﺒﺎﹰ ﺑﻪ ﺍﻧﺪﺍﺯﺓ ﺍﻧﺴـﺠﺎﻡ ﺍﻧﺘﻬـﺎﻱ ﺑـﺎﻻﻳﻲ ،ﻗﺎﺑـﻞ ﻗﺒـﻮﻝ
ﻣﻲﺑﺎﺷﺪ .ﻋﻤﻼﹰ ﻟﺰﻭﻣﻲ ﻧﺪﺍﺭﺩ ﻛﻪ ﻃﺮﺍﺡ ﺑﻪ ﻃﺒﻘﻪﺑﻨﺪﻱ ﺍﻧﺴﺠﺎﻡ ﺩﺭ ﻳﻚ ﭘﻴﻤﺎﻧﻪ ﺧﺎﺹ ﺑﭙﺮﺩﺍﺯﺩ ،ﺑﻠﻜـﻪ ﺑﺎﻳـﺪ ﻣﻔﻬـﻮﻡ ﻛﻠـﻲ ﺭﺍ ﺩﺭﻙ
ﻧﻤﻮﺩﻩ ﻭ ﻫﻨﮕﺎﻡ ﻃﺮﺍﺣﻲ ﭘﻴﻤﺎﻧﻪﻫﺎ ﺑﺎﻳﺴﺘﻲ ﺍﺯ ﺳﻄﻮﺡ ﭘﺎﻳﻴﻦ ﺍﻧﺴﺠﺎﻡ ﺍﺟﺘﻨﺎﺏ ﻛﺮﺩ.
ﺍﺗﺼﺎﻝ)(Coupling
ﺍﺗﺼﺎﻝ ،ﻣﻘﻴﺎﺱ ﺍﺭﺗﺒﺎﻁ ﺑﻴﻦ ﭘﻴﻤﺎﻧﻪﻫﺎ ﺩﺭ ﺳﺎﺧﺘﺎﺭ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﺳﺖ .ﺍﺗﺼﺎﻝ ﺑﻪ ﭘﻴﭽﻴﺪﮔﻲ ﻭﺍﺳﻂ ﺑﻴﻦ ﭘﻴﻤﺎﻧﻪﻫﺎ ،ﻧﻘﻄﻪ ﻭﺭﻭﺩ )ﺩﺧـﻮﻝ( ﻭ
ﺍﺭﺟﺎﻉ ﺑﻪ ﻳﻚ ﭘﻴﻤﺎﻧﻪ ﻭ ﻧﻮﻉ ﺩﺍﺩﻩﻫﺎﻱ ﻋﺒﻮﺭﻱ ﺍﺯ ﻭﺍﺳﻂ ،ﺑﺴﺘﮕﻲ ﺩﺍﺭﺩ.
ﺩﺭ ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﺗﻼﺵ ﻣﺎ ﺩﺭ ﺟﻬﺖ ﭘﺎﻳﻴﻦﺗﺮﻳﻦ ﺳﻄﺢ ﻣﻤﻜﻦ ﺍﺗﺼﺎﻝ ﺍﺳﺖ .ﺍﺗﺼﺎﻝ ﺳﺎﺩﺓ ﺑﻴﻦ ﭘﻴﻤﺎﻧـﻪﻫـﺎ ﺑﺎﻋـﺚ ﺍﻳﺠـﺎﺩ
ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻣﻲﺷﻮﺩ ﻛﻪ ﻓﻬﻢ ﺁﻥ ﺳﺎﺩﻩﺗﺮ ﺑﻮﺩﻩ ﻭ ﻫﻨﮕﺎﻡ ﻭﻗﻮﻉ ﺧﻄﺎﻫﺎ ﺩﺭ ﻳﻚ ﻣﺤﻞ ﻭ ﭘﺨﺶ ﺁﻧﻬﺎ ﺩﺭ ﺳﻴﺴﺘﻢ ،ﻛﻤﺘـﺮ ﺩﺭ ﻣﻌـﺮﺽ
» ﺍﺛﺮ ﻓﺰﻭﻧﮕﺮﻱ« ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﻗﺮﺍﺭ ﺩﺍﺭﺩ.
ﺩﺭ ﺷﻜﻞ ﺯﻳﺮ ﭘﻴﻤﺎﻧﻪ cﺗﺎﺑﻊ ﭘﻴﻤﺎﻧﻪ aﺑﻮﺩﻩ ﻭ ﺍﺯ ﻃﺮﻳﻖ ﻟﻴﺴﺖ ﻗﺮﺍﺭﺩﺍﺩﻱ ﺍﺭﮔﻮﻣﺎﻥ ﻛﻪ ﺩﺍﺩﻩﻫﺎ ﺍﺯ ﻃﺮﻳﻖ ﺁﻥ ﻣﻨﺘﻘﻞ ﻣﻲﺷﻮﻧﺪ ،ﻗﺎﺑـﻞ
ﺩﺳﺘﺮﺳﻲ ﺍﺳﺖ .ﺗﺎ ﻣﺎﺩﺍﻣﻲ ﻛﻪ ﻟﻴﺴﺖ ﺁﺭﮔﻮﻣﺎﻥ ﺳﺎﺩﻩ ﻭﺟﻮﺩ ﺩﺍﺭﺩ) ﻳﻌﻨﻲ ﺩﺍﺩﻩﻫﺎﻱ ﺳﺎﺩﻩ ﺍﻧﺘﻘﺎﻝ ﻳﺎﻓﺘﻪ ﻭ ﺍﺭﺗﺒﺎﻃﻲ ﻳﻚ ﺑﻪ ﻳﻚ ﺑـﻴﻦ
ﺍﻗﻼﻡ ﺑﺮﻗﺮﺍﺭ ﺍﺳﺖ( ،ﺍﺗﺼﺎﻝ ﺿﻌﻴﻒ ﻳﺎ)ﺍﺗﺼﺎﻝ ﺩﺍﺩﻩﻫﺎ( ﺩﺭ ﺍﻳﻦ ﺑﺨﺶ ﺍﺯ ﺳﺎﺧﺘﺎﺭ ﺑﻪ ﻧﻤﺎﻳﺶ ﮔﺬﺍﺷـﺘﻪ ﻣـﻲﺷـﻮﺩ .ﻧـﻮﻋﻲ ﺍﺗﺼـﺎﻝ
ﺩﺍﺩﻩﻫﺎ ﺑﻪ ﻧﺎﻡ " ﺍﺗﺼﺎﻝ ﺑﺮﭼﺴﺒﻲ" ﺯﻣﺎﻧﻲ ﻇﺎﻫﺮ ﻣﻲﺷﻮﺩ ﻛﻪ ﺑﺨﺸﻲ ﺍﺯ ﺳﺎﺧﺘﺎﺭ ﺩﺍﺩﻩﺍﻱ) ﺑﻪ ﺟﺎﻱ ﺁﺭﮔﻮﻣﺎﻥﻫﺎﻱ ﺳﺎﺩﻩ( ﺍﺯ ﻃﺮﻳـﻖ
ﻭﺍﺳﻂ ﭘﻴﻤﺎﻧﻪ ،ﻣﻨﺘﻘﻞ ﻣﻲﮔﺮﺩﺩ .ﺍﻳﻦ ﺍﺗﺼﺎﻝ ﺑﻴﻦ ﭘﻴﻤﺎﻧﻪﻫﺎﻱ aﻭ bﺑﻮﺟﻮﺩ ﻣﻲﺁﻳﺪ.
١۶۴ ﺗﻬﻴﻪ ﻭ ﺗﻨﻈﻴﻢ :ﺩﻛﺘﺮ ﺍﺳﻼﻡ ﻧﺎﻇﻤﻲ ﺗﺎﺑﺴﺘﺎﻥ ۱۳۸۴
ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ
ﺩﺭ ﺳﻄﻮﺡ ﻣﺘﻮﺳﻂ " ﺍﺗﺼﺎﻝ ﺑﺎ ﺍﻧﺘﻘﺎﻝ ﻛﻨﺘﺮﻝ ﺑﻴﻦ ﭘﻴﻤﺎﻧﻪﻫـﺎ " ﺗﻮﺻـﻴﻒ ﻣـﻲﮔـﺮﺩﺩ " .ﺍﺗﺼـﺎﻝ ﻛﻨﺘـﺮﻝ" ﺩﺭ ﺍﻛﺜـﺮ ﻃﺮﺍﺣـﻲﻫـﺎﻱ
ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺑﺴﻴﺎﺭ ﺭﺍﻳﺞ ﺍﺳﺖ ﻭ ﺩﺭ ﺷﻜﻞ ﺯﻳﺮ ﺑﺎ ﻋﺒﻮﺭ " ﻧﺸﺎﻧﻪ ﻧﻤﺎﻱ ﻛﻨﺘﺮﻝ " )ﻣﺘﻐﻴﺮﻱ ﻛﻪ ﺗﺼﻤﻴﻤﺎﺕ ﺭﺍ ﺩﺭ ﻳﻚ ﭘﻴﻤﺎﻧـﻪ ﺗـﺎﺑﻊ ﻳـﺎ
ﺣﺎﻛﻢ ﻛﻨﺘﺮﻝ ﻣﻲﻛﻨﺪ( ﺑﻴﻦ ﭘﻴﻤﺎﻧﻪﻫﺎﻱ dﻭ eﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ.
ﺩﺭ ﺻﻮﺭﺕ ﺍﺭﺗﺒﺎﻁ ﭘﻴﻤﺎﻧﻪﻫﺎ ﺑﺎ ﻣﺤﻴﻂ ﺧﺎﺭﺝ ﺍﺯ ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﺳﻄﻮﺡ ﻧﺴﺒﺘﺎﹰ ﺑﺎﻻﻱ ﺍﺗﺼﺎﻝ ،ﺑﻪ ﻭﺟﻮﺩ ﻣﻲﺁﻳﻨـﺪ .ﺑﻌﻨـﻮﺍﻥ ﻣﺜـﺎﻝ
،I/Oﭘﻴﻤﺎﻧﻪﻫﺎ ﺭﺍ ﺑﻪ ﺩﺳﺘﮕﺎﻩﻫﺎﻱ ﺧﺎﺹ ،ﻗﺎﻟﺐﻫﺎ ﻭ ﭘﺮﻭﺗﻮﻛﻞﻫﺎﻱ ﺍﺭﺗﺒﺎﻃﺎﺗﻲ ،ﻣﺘﺼﻞ ﻣﻲﻛﻨﺪ.
" ﺍﺗﺼﺎﻝ ﺧﺎﺭﺟﻲ " ﺿﺮﻭﺭﻱ ﺍﺳﺖ ﺍﻣﺎ ﺑﺎﻳﺪ ﺑﻪ ﺗﻌﺪﺍﺩ ﻛﻤﻲ ﺍﺯ ﭘﻴﻤﺎﻧﻪﻫﺎ ﻣﺤﺪﻭﺩ ﺷﻮﺩ .ﺍﺗﺼﺎﻝ ﺳﻄﺢ ﺑﺎﻻ ﻧﻴﺰ ﺯﻣﺎﻧﻲ ﭘﺪﻳﺪ ﻣﻲﺁﻳﺪ ﻛـﻪ
ﺗﻌﺪﺍﺩﻱ ﺍﺯ ﭘﻴﻤﺎﻧﻪﻫﺎ ﺑﻪ ﻧﺎﺣﻴﺔ ﺳﺮﺍﺳﺮﻱ ﺩﺍﺩﻩﻫﺎ ﺍﺭﺟﺎﻉ ﻣﻲﻛﻨﻨﺪ " ﺍﺗﺼﺎﻝ ﻣﺸﺘﺮﻙ" ﻛﻪ ﻧﺎﻡ ﺍﻳﻦ ﺣﺎﻟﺖ ﻣﻲﺑﺎﺷﺪ.
ﺑﺎﻻﺗﺮﻳﻦ ﻣﻴﺰﺍﻥ ﺍﺗﺼﺎﻝ ﺑﺎ ﻋﻨﻮﺍﻥ " ﺍﺗﺼﺎﻝ ﻣﺤﺘﻮﺍ " ﺯﻣﺎﻧﻲ ﺑﻪ ﻭﺟﻮﺩ ﻣﻲﺁﻳﺪ ﻛﻪ ﻳـﻚ ﭘﻴﻤﺎﻧـﻪ ،ﺍﺯ ﺩﺍﺩﻩﻫـﺎ ﻳـﺎ ﺍﻃﻼﻋـﺎﺕ ﻛﻨﺘﺮﻟـﻲ
ﻣﻮﺟﻮﺩ ﺩﺭ ﺣﺪ ﻭ ﻣﺮﺯ ﭘﻴﻤﺎﻧﻪﺍﻱ ﺩﻳﮕﺮ ،ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﻛﻨﺪ .ﺛﺎﻧﻴﺎﹰ ﺍﺗﺼﺎﻝ ﻣﺤﺘﻮﺍﻳﻲ ﺑﻪ ﻫﻨﮕﺎﻡ ﺍﻳﺠﺎﺩ ﺷﺎﺧﻪﻫﺎﻳﻲ ﺩﺭ ﻣﻴـﺎﻥ ﻳـﻚ ﭘﻴﻤﺎﻧـﻪ
ﻧﻴﺰ ﺍﺗﻔﺎﻕ ﻣﻲﺍﻓﺘﺪ .ﺍﻳﻦ ﺣﺎﻟﺖ ﺍﺗﺼﺎﻝ ،ﻗﺎﺑﻞ ﭘﻴﺸﮕﻴﺮﻱ ﺑﻮﺩﻩ ﻭ ﺑﺎﻳﺪ ﺍﺯ ﺁﻥ ﺍﺟﺘﻨﺎﺏ ﻛﺮﺩ.
ﺷﻜﻞ " :۵ﻧﻤﻮﺩﺍﺭ ﻧﺨﺴﺖ " ﺳﺎﺧﺘﺎﺭ ﺑﺮﻧﺎﻣﻪ ﺑﺮﺍﻱ ﺣﺲﮔﺮﻫﺎﻱ ﻧﻤﺎﻳﺶ ﺩﻫﻨﺪﻩ
.۶ﺑﺮﺍﻱ ﭘﻴﻤﺎﻧﻪ ﻫﺎﻳﻲ ﺑﺎ " ﻭﺭﻭﺩﻱ ﻛﻨﺘﺮﻝ ﺷﺪﻩ " ﺗﻼﺵ ﻧﻤﻮﺩﻩ ﻭ ﺍﺯ " ﺍﺗﺼﺎﻻﺕ ﻧﺎﻣﻌﻘﻮﻝ" ﺧـﻮﺩﺩﺍﺭﻱ ﻛﻨﻴـﺪ .ﺍﻳـﻦ
ﺫﻫﻨﻴﺖ ﻃﺮﺍﺣﻲ ،ﺩﺭﺑﺎﺭﺓ ﺍﺗﺼﺎﻝ ﻣﺤﺘﻮﺍﻳﻲ ،ﻫﺸﺪﺍﺭ ﻣﻲﺩﻫﺪ .ﺩﺭ ﺻﻮﺭﺕ ﻣﺤﺪﻭﺩﺳﺎﺯﻱ ﻭ ﻛﻨﺘﺮﻝ ﻭﺍﺳﻂﻫﺎﻱ ﭘﻴﻤﺎﻧـﻪ ،ﺩﺭﻙ
ﻭ ﺩﺭ ﻧﺘﻴﺠﻪ ﻧﮕﻬﺪﺍﺭﻱ ﻭ ﺗﺮﻣﻴﻢ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺳﺎﺩﻩﺗﺮ ﻣﻲﮔﺮﺩﺩ.
ﺷﻜﻞ " :۵ﻧﻤﻮﺩﺍﺭ ﻧﺨﺴﺖ " ﺳﺎﺧﺘﺎﺭ ﺑﺮﻧﺎﻣﻪ ﺑﺮﺍﻱ ﺣﺲﮔﺮﻫﺎﻱ ﻧﻤﺎﻳﺶ ﺩﻫﻨﺪﻩ
ﺳﭙﺲ ﻃﺮﺍﺣﯽ ﺩﺍﺩﻩ ﻫﺎ ﻣﺸﺨﺺ ﻣﻲﺷﻮﺩ .ﺳﺎﺧﺘﺎﺭ ﺑﺎﻧﮏ ﺍﻃﻼﻋﺎﺗﯽ ،ﻫﺮ ﺳﺎﺧﺘﺎﺭ ﻓﺎﻳﻞ ﺧـﺎﺭﺟﯽ ،ﺳـﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﻫـﺎﯼ ﺩﺍﺧﻠـﯽ ﻭ
ﻳﮏ ﺍﺭﺟﺎﻉ ﻣﺘﻘﺎﺑﻞ) (Cross Referenceﮐﻪ ﺍﺷﻴﺎﯼ ﺩﺍﺩﻩﺍﯼ ﺭﺍ ﺑﻪ ﻓﺎﻳﻞﻫﺎﯼ ﻣﺸﺨﺼﯽ ﻣﺘﺼﻞ ﻣﻲﮐﻨـﺪ ،ﻫﻤﮕـﯽ ﺗﻌﺮﻳـﻒ
ﻣﻲﺷﻮﻧﺪ.
ﻃﺮﺍﺣﯽ ﻣﻌﻤﺎﺭﯼ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ ﮐﻪ ﻣﻌﻤﺎﺭﯼ ﺑﺮﻧﺎﻣﻪ ﭼﮕﻮﻧﻪ ﺍﺯ ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﺍﺳﺖ .ﺑﻌﻼﻭﻩ ﺍﺯ ﻧﻤﻮﺩﺍﺭﻫـﺎﻱ ﺳـﺎﺧﺘﺎﺭﯼ
ﺑﺮﺍﯼ ﻧﺸﺎﻥ ﺩﺍﺩﻥ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺐ ﭘﻴﻤﺎﻧﻪ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺷﻮﺩ.
ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂﻫﺎﯼ ﺩﺍﺧﻠﯽ ﻭ ﺧﺎﺭﺟﯽ ﺑﺮﻧﺎﻣﻪ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻣـﻲﺷـﻮﺩ ﻭ ﺟﺰﻳﻴـﺎﺕ ﻃﺮﺍﺣـﯽ ﻭﺍﺳـﻂ ﺍﻧﺴـﺎﻥ _ ﻣﺎﺷـﻴﻦ ﺷـﺮﺡ ﺩﺍﺩﻩ
ﻣﻲﺷﻮﺩ.
ﻣﻮﻟﻔﻪﻫﺎ ،ﻋﻨﺎﺻﺮ ﺟﺪﺍﮔﺎﻧﻪ ﺍﺯ ﺳﻴﺴﺘﻢ ﻣﺜﻞ ﺯﻳﺮﺑﺮﻧﺎﻣﻪﻫﺎ ،ﺗﻮﺍﺑﻊ ﻳﺎ ﺭﻭﻳﻪﻫﺎ ،ﺍﺑﺘﺪﺍ ﺑﺎ ﺯﺑﺎﻥ ﻣﺎﺩﺭﯼ ﺷﺮﺡ ﺩﺍﺩﻩ ﻣﻲﺷﻮﻧﺪ .ﺩﺭ ﺍﻳﻦ ﻣﺮﺣﻠـﻪ
ﻋﻤﻠﮑﺮﺩ ﺭﻭﻳﻪﺍﯼ ﻳﮏ ﻣﻮﻟﻔﻪ )ﭘﻴﻤﺎﻧﻪ( ﺗﻮﺿﻴﺢ ﺩﺍﺩﻩ ﻣﻲﺷﻮﺩ .ﺳﭙﺲ ﺍﺯ ﻳﮏ ﺍﺑﺰﺍﺭ ﻃﺮﺍﺣﯽ ﺭﻭﻳﻪﺍﯼ ﺑـﺮﺍﯼ ﺗﺮﺟﻤـﻪ ﺍﻳـﻦ ﻧﺴـﺨﻪ ﺑـﺎ
ﺗﻮﺻﻴﻔﯽ ﺳﺎﺧﺘﻴﺎﻓﺘﻪ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺷﻮﺩ.
ﻣﺸﺨﺼﺎﺕ ﻃﺮﺍﺣﯽ ﺷﺎﻣﻞ ﻳﮏ ﺍﺭﺟﺎﻉ ﻣﺘﻘﺎﺑﻞ ) (Cross Referenceﺧﻮﺍﺳﺘﻪ ﻫﺎ ﺍﺳﺖ .ﻫﺪﻑ ﺍﺯ ﺍﻳﻦ ﺍﺭﺟـﺎﻉ ﻣﺘﻘﺎﺑـﻞ ﮐـﻪ
ﺗﻮﺳﻂ ﻳﮏ ﻣﺎﺗﺮﻳﺲ ﻣﺘﻘﺎﺑﻞ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﻣیﺸﻮﺩ:
nﺍﺛﺒﺎﺕ ﺑﺮ ﺁﻭﺭﺩﻩ ﺷﺪﻥ ﻫﻤﻪ ﺧﻮﺍﺳﺘﻪﻫﺎ ﺗﻮﺳﻂ ﻃﺮﺍﺡ ﻧﺮﻡﺍﻓﺰﺍﺭ
nﻧﺸﺎﻥ ﺩﺍﺩﻥ ﺍﻳﻨﮑﻪ ﮐﺪﺍﻡ ﻣﻮﻟﻔﻪﻫﺎ ﺑﺮﺍﯼ ﭘﻴﺎﺩﻩ ﺳﺎﺯﯼ ﺧﻮﺍﺳﺘﻪﻫﺎﯼ ﻣﺸﺨﺺ ﺍﻫﻤﻴﺖ ﺣﻴﺎﺗﯽ ﺩﺍﺭﺩ.
ﺁﺧﺮﻳﻦ ﺑﺨﺶ ﺍﺯ ﻣﺸﺨﺼﺎﺕ ﻃﺮﺍﺣﯽ ﺷﺎﻣﻞ ﺩﺍﺩﻩ ﻫﺎﯼ ﻣﮑﻤﻞ ﺍﺳﺖ .ﺗﻮﺻﻴﻔﺎﺕ ﺍﻟﮕﻮﺭﻳﺘﻢﻫﺎ ،ﺭﻭﻳﻪﻫﺎﯼ ﺩﻳﮕﺮ ،ﺩﺍﺩﻩﻫـﺎﯼ ﺟـﺪﻭﻟﯽ،
ﻧﻴﺎﺯﻫﺎﻳﻲ ﺍﺯ ﻣﺴﺘﻨﺪﺍﺕ ﺩﻳﮕﺮ ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﺎﺩﺩﺍﺷﺖ ﺧﺎﺹ ﺑﺎ ﭘﻴﻮﺳﺘﯽ ﺟﺪﺍﮔﺎﻧﻪ ﺍﺭﺍﻳﻪ ﻣﻲﺷﻮﻧﺪ .ﺑﻬﺘﺮ ﺍﺳﺖ ﮐﻪ ﻳﮏ ﺟـﺰﻭﻩ ﺭﺍﻫﻨﻤـﺎﯼ
ﻧﺼﺐ ﻭ ﺭﺍﻩ ﺍﻧﺪﺍﺯﯼ ﻣﻘﺪﻣﺎﺗﯽ ﺗﻬﻴﻪ ﻭ ﺿﻤﻴﻤﻪ ﻣﺴﺘﻨﺪ ﻃﺮﺍﺣﯽ ﺷﻮﺩ.
ﭼﺎﺭﭼﻮﺏ ﮔﺰﺍﺭﺵ ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻢ ﺩﺭ ﺻﻔﺤﻪ ﺑﻌﺪ ﺍﺭﺍﻳﻪ ﺷﺪﻩ ﺍﺳﺖ.
-۱۷ﭘﻴﻤﺎﻧﻪﻫﺎﻱ g ،cﻭ kﻫﺮﻛﺪﺍﻡ ﺑﻪ ﺩﺍﺩﻩﺍﻱ )ﻣﺎﻧﻨﺪ ﻓﺎﻳﻞ ﻳﺎ ﻧﺎﺣﻴﻪﺍﻱ ﺍﺯ ﺣﺎﻓﻈﻪ ﻛﻪ ﺩﺳﺘﻴﺎﺑﻲ ﺳﺮﺍﺳﺮﻱ ﺑـﻪ ﺁﻥ ﻭﺟـﻮﺩ
ﺩﺍﺭﺩ( ﺩﺭ ﻧﺎﺣﻴﻪ ﺳﺮﺍﺳﺮﻱ ﺩﺍﺩﻩﻫﺎ ﺩﺳﺘﻴﺎﺑﻲ ﺩﺍﺭﻧﺪ .ﭘﻴﻤﺎﻧﻪ ،cﺩﺍﺩﻩﺍﻱ ﺭﺍ ﻣﻘﺪﺍﺭ ﺩﻫﻲ ﻣـﻲﻧﻤﺎﻳـﺪ .ﺳـﭙﺲ ﭘﻴﻤﺎﻧـﻪ g
ﻣﻘﺪﺍﺭ ﺁﻥ ﺭﺍ ﻣﺤﺎﺳﺒﻪ ﻭ ﺑﻬﻨﮕﺎﻡ ﻣﻲﻛﻨﺪ .ﺩﺭ ﺍﻳﻦ ﺣﺎﻟﺖ ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﺳﻄﻮﺡ ﺍﺗﺼﺎﻝ ) (Couplingﻭﺟﻮﺩ ﺩﺍﺭﺩ؟
ﺏExternal Coupling - ﺍﻟﻒData Couplig -
ﺩContent Coupling - ﺝCommon Coupling -
ﻣﻌﻤﺎﺭﻱ ﭼﻴﺴﺖ؟
ﻭﻗﺘﻲ ﺩﺭ ﻣﻮﺭﺩ ﻣﻌﻤﺎﺭﻱ ﻳﻚ ﺳﺎﺧﺘﻤﺎﻥ ﻳﺎ ﺑﻨﺎ ﺻﺤﺒﺖ ﻣﻲﻛﻨﻴﻢ ،ﻧﮕﺮﺵﻫﺎﻱ ﻣﺘﻔﺎﻭﺗﻲ ﺑﻪ ﺫﻫﻨﻤﺎﻥ ﻣـﻲﺭﺳـﺪ .ﺩﺭ ﺳـﺎﺩﻩﺗـﺮﻳﻦ
ﺳﻄﺢ ،ﺷﻜﻞ ﻛﻠﻲ ﺳﺎﺧﺘﻤﺎﻥ ﻓﻴﺰﻳﻜﻲ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﻣﻲﮔﻴﺮﻳﻢ .ﺍﻣﺎ ﺩﺭ ﻭﺍﻗﻊ ﻣﻌﻤـﺎﺭﻱ ﺁﻥ ،ﺑﺴـﻴﺎﺭ ﭘﻴﭽﻴـﺪﻩﺗـﺮ ﺍﺯ ﺍﻳﻨﻬﺎﺳـﺖ .ﺍﻳـﻦ
ﺣﺎﻟﺘﻲ ﺍﺳﺖ ﻛﻪ ﺩﺭ ﺁﻥ ﺍﺟﺰﺍﻱ ﻣﺨﺘﻠﻒ ﺳﺎﺧﺘﻤﺎﻧﻲ ﺑﻪ ﺻﻮﺭﺗﻲ ﺑﺎ ﻫﻢ ﺗﺮﻛﻴﺐ ﻣﻲﺷﻮﻧﺪ ﻛﻪ ﻳﻚ ﻛﻞ ﺳﺎﺯﻣﺎﻥﻳﺎﻓﺘـﻪ ﻭ ﻣﻨﺴـﺠﻢ
ﺭﺍ ﺗﺸﻜﻴﻞ ﻣﻲﺩﻫﻨﺪ .ﺍﻳﻦ ﺷﻴﻮﻩﺍﻱ ﺍﺳﺖ ﻛﻪ ﺑﺎ ﺁﻥ ﺳﺎﺧﺘﻤﺎﻥ ،ﻫﻤﺮﺍﻩ ﺑـﺎ ﺳـﺎﺧﺘﻤﺎﻥﻫـﺎﻱ ﻣﺠـﺎﻭﺭ ﺧـﻮﺩ ﺩﺭ ﻣﺤـﻴﻂ ﺳـﺎﺯﮔﺎﺭﻱ
ﻣﻲﻳﺎﺑﺪ ﻭ ﻫﻤﺎﻫﻨﮓ ﻣﻲﺷﻮﺩ .ﺩﺭ ﺍﻳﻦ ﺟﺎ ﺍﻳﻦ ﺳﺎﺧﺘﺎﺭ ﺳﻴﺴﺘﻢ ﺗﺎ ﺣﺪﻱ ﻫﺪﻑ ﻣﺸﺨﺺ ﺷﺪﻩ ﺧـﻮﺩ ﺭﺍ ﻧﺸـﺎﻥ ﺩﺍﺩﻩ ﻭ ﻧﻴﺎﺯﻫـﺎﻱ
ﺻﺎﺣﺒﺶ ﺭﺍ ﺑﺮﻃﺮﻑ ﻣﻲﻛﻨﺪ .ﺩﺭ ﺍﻳﻦ ﺟﺎ ﺣﺲ ﺯﻳﺒﺎﺷﻨﺎﺳﻲ ﺳﺎﺧﺘﻤﺎﻥ ﻳﻌﻨﻲ ﺗﺄﺛﻴﺮ ﺑﺼﺮﻱ ﺳﺎﺧﺘﻤﺎﻥ ،ﻭ ﺷﻴﻮﻩ ﺗﺮﻛﻴﺐ ﺑﺎﻓـﺖﻫـﺎ،
ﺭﻧﮓﻫﺎ ﻭ ﻣﻮﺍﺩ ﺑﺮﺍﻱ ﺧﻠﻖ ﻧﻤﺎ ﻭ ﻣﺤﻴﻂ ﺯﻧﺪﻩ ﺩﺭﻭﻧﻲ ﻣﻄﺮﺡ ﺍﺳﺖ .ﺩﺭ ﺍﻳﻦ ﺟﺎ ﺟﺰﻳﻴﺎﺕ ﻛﻮﭼﻚ ﻣﺜﻞ ﻃﺮﺍﺣﻲ ﺗﺴـﻬﻴﻼﺕ ﻧـﻮﺭ،
ﻧﻮﻉ ﻛﻒﭘﻮﺵ ﻭ ...ﻓﻬﺮﺳﺘﻲ ﺑﻠﻨﺪ ﺑﺎﻻ ﺭﺍ ﺑﻪ ﻭﺟﻮﺩ ﻣﻲﺁﻭﺭﻧﺪ ﻭ ﻧﻬﺎﻳﺘﺎﹰ ،ﻣﻮﺿﻮﻉ ﺍﺻﻠﻲ ﻫﻨﺮ ﺍﺳﺖ.
ﺩﺭ ﻣﻮﺭﺩ ﺳﺎﺧﺘﺎﺭ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﭼﻪ ﻣﻲﺗﻮﺍﻥ ﮔﻔﺖ؟ Bassﻭ ﻫﻤﻜﺎﺭﺍﻧﺶ ] [BAS98ﺍﻳﻦ ﻋﺒـﺎﺭﺕ ﺩﺷـﻮﺍﺭ ﻭ ﺩﻳـﺮﻓﻬﻢ ﺭﺍ ﺑـﻪ
ﺷﻜﻞ ﺯﻳﺮ ﺗﻌﺮﻳﻒ ﻛﺮﺩﻩﺍﻧﺪ:
ﻣﻌﻤﺎﺭﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺩﺭ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﻳﺎ ﺳﻴﺴﺘﻢ ﻣﺤﺎﺳﺒﺎﺗﻲ ﻋﺒﺎﺭﺗﺴﺖ ﺍﺯ ﺳﺎﺧﺘﺎﺭ ﻳﺎ ﺳﺎﺧﺘﺎﺭﻫﺎﻱ ﺳﻴﺴﺘﻢ ﻛـﻪ ﺷـﺎﻣﻞ ﺍﺟـﺰﺍﻱ
ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ،ﻣﺸﺨﺼﻪﻫﺎﻱ ﻣﺸﻬﻮﺩ ﺑﺮﻭﻧﻲ ﺍﻳﻦ ﺍﺟﺰﺍﺀ ﻭ ﺍﺭﺗﺒﺎﻃﺎﺕ ﻣﻴﺎﻥ ﺁﻧﻬﺎ ﻣﻲﺑﺎﺷﺪ.
ﭼﺮﺍ ﻣﻌﻤﺎﺭﻱ؟
ﻣﻌﻤﺎﺭﻱ ،ﻳﻚ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻋﻤﻠﻴﺎﺗﻲ ﻧﻴﺴﺖ .ﺑﻠﻜﻪ ﻧﻤﻮﺩﻱ ﺍﺳﺖ ﻛﻪ ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﻗﺎﺩﺭ ﻣﻲﺳﺎﺯﺩ:
(۱ﻣﻴﺰﺍﻥ ﺗﺄﺛﻴﺮ ﻃﺮﺡ ﺭﺍ ﺩﺭ ﻣﺮﺗﻔﻊ ﻧﻤﻮﺩﻥ ﻧﻴﺎﺯﻣﻨﺪﻱﻫﺎﻱ ﺑﻴﺎﻥ ﺷﺪﻩ ،ﺗﺤﻠﻴﻞ ﻛﻨﺪ.
(۲ﻣﻌﻤﺎﺭﻱﻫﺎﻱ ﺟﺎﻳﮕﺰﻳﻦ ﺩﻳﮕﺮ ﺭﺍ ﺩﺭ ﻣﺮﺣﻠﻪﺍﻱ ﻛﻪ ﺗﻐﻴﻴﺮ ﻃﺮﺡ ﻫﻨﻮﺯ ﻧﺴﺒﺘﺎﹰ ﺁﺳﺎﻥ ﺍﺳﺖ ،ﺑﺮﺭﺳﻲ ﻛﻨﺪ.
(۳ﺧﻄﺮﺍﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﺳﺎﺧﺖ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﻛﺎﻫﺶ ﺩﻫﺪ.
ﻃﺮﺍﺣﻲ ﺩﺍﺩﻩﻫﺎ
ﻃﺮﺍﺣﻲ ﺩﺍﺩﻩﻫﺎ ،ﻫﻢ ﭼﻮﻥ ﺩﻳﮕﺮ ﻓﻌﺎﻟﻴﺘﻬﺎﻱ ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ )ﻛﻪ ﮔﺎﻫﻲ ﺑﻪ ﺁﻥ ﻣﻌﻤﺎﺭﻱ ﺩﺍﺩﻩﻫـﺎ ﻧﻴـﺰ ﻣـﻲﮔﻮﻳﻨـﺪ( ﻣـﺪﻟﻲ ﺍﺯ
ﺩﺍﺩﻩﻫﺎ ﻭ /ﻳﺎ ﺍﻃﻼﻋﺎﺕ ﺭﺍ ﺩﺭ ﺳﻄﺢ ﺑﺎﻻﻳﻲ ﺍﺯ ﺣﺎﻟﺖ ﺍﻧﺘﺰﺍﻋﻲ ،ﺍﻳﺠﺎﺩ ﻣﻲﻛﻨﺪ .ﺳﭙﺲ ﻣﺪﻝ ﺩﺍﺩﻩﺍﻱ ﺑﻪ ﺻﻮﺭﺕ ﺑﺎﺯﻧﻤـﺎﻳﻲ ﺧـﺎﺹ
ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﺩﺭﻣﻲﺁﻳﺪ ﻛﻪ ﻣﻲﺗﻮﺍﻥ ﺁﻥ ﺭﺍ ﺑﻪ ﻭﺳﻴﻠﻪ ﺳﻴﺴﺘﻢ ﻣﺒﺘﻨﻲ ﺑـﺮ ﻛـﺎﻣﭙﻴﻮﺗﺮ ﭘـﺮﺩﺍﺯﺵ ﻛـﺮﺩ .ﺩﺭ ﺑﺴـﻴﺎﺭﻱ ﺍﺯ ﺑﺮﻧﺎﻣـﻪﻫـﺎﻱ
ﻛﺎﺭﺑﺮﺩﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﻣﻌﻤﺎﺭﻱ ﺩﺍﺩﻩﻫﺎ ﺗﺄﺛﻴﺮ ﺷﮕﺮﻓﻲ ﺑﺮ ﻣﻌﻤﺎﺭﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺩﺍﺭﺩ ﻛﻪ ﺑﺎﻳﺪ ﺁﻥ ﺭﺍ ﭘﺮﺩﺍﺯﺵ ﻛﻨﺪ.
ﺍﺷﻴﺎﺀ ﺩﺍﺩﻩﺍﻱ ﺭﺍ ﭘﺎﻻﻳﺶ ﻛﺮﺩﻩ ﻭ ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﺍﻧﺘﺰﺍﻋﺎﺕ ﺩﺍﺩﻩﺍﻱ ﺭﺍ ﺗﻮﺳﻌﻪ ﻣﻲﺩﻫﺪ.
ﺻﻔﺎﺕ ﺍﺷﻴﺎﺀ ﺩﺍﺩﻩﺍﻱ ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﻳﺎ ﭼﻨﺪ ﺳﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﺍﻱ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﻣﻲ ﻛﻨﺪ.
ﺳﺎﺧﺘﻤﺎﻥﻫﺎﻱ ﺩﺍﺩﻩﺍﻱ ﺑﻪ ﻣﻨﻈﻮﺭ ﺍﻃﻤﻴﻨﺎﻥ ﺍﺯ ﺍﺭﺗﺒﺎﻁﻫﺎﻱ ﻣﻨﺎﺳﺐ ﺑﺎﺯﻧﮕﺮﻱ ﻣﻲﮔﺮﺩﺩ.
ﺳﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﻫﺎ ﺗﺎ ﺣﺪ ﻣﻤﻜﻦ ﺳﺎﺩﻩﺳﺎﺯﻱ ﻣﻲ ﮔﺮﺩﻧﺪ.
ﻃﺮﺍﺣﯽ ﻣﺒﺘﻨﯽ ﺑﺮ ﺩﺍﺩﻩ ﻫﺎ ﻳﮏ ﺭﻭﺵ ﻃﺮﺍﺣﯽ ﻣﻌﻤﺎﺭﻱ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺍﺳﺖ ﮐﻪ ﺑﻪ ﺭﺍﺣﺘﯽ ﺍﻣﮑﺎﻥ ﮔـﺬﺭ ﺍﺯ ﻣﺮﺣﻠـﻪ ﺗﺤﻠﻴـﻞ ﻧﻴـﺎﺯ ﺑـﻪ
ﻃﺮﺍﺣﯽ ﺗﻮﺻﻴﻒ ﺳﺎﺧﺘﻤﺎﻥ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﻣﯽ ﺩﻫﺪ.
ﻣﺪﻝ ﺳﺎﺯﻱ ﺩﺍﺩﻩ ،ﺳﺎﺧﺘﺎﺭ ﺩﺍﺩﻩ ،ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ،ﻭ ﺍﻧﺒﺎﺭ ﺩﺍﺩﻩﻫﺎ
ﺍﺷﻴﺎﻱ ﺩﺍﺩﻩﺍﻱ ﻛﻪ ﺩﺭ ﻃﻮﻝ ﺗﺤﻠﻴﻞ ﻧﻴﺎﺯﻫﺎﻱ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺗﻌﺮﻳﻒ ﺷﺪﻩﺍﻧـﺪ ،ﺑـﺎ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ﻧﻤـﻮﺩﺍﺭﻫـﺎﻱ ﻣﻮﺟﻮﺩﻳـﺖ /ﺭﺍﺑﻄـﻪ ﻭ
ﻓﺮﻫﻨﮓ ﺩﺍﺩﻩﻫﺎ ،ﻣﺪﻟﺴﺎﺯﻱ ﻣﻲﺷﻮﻧﺪ .ﻛﺎﺭ ﻃﺮﺍﺣﻲ ﺩﺍﺩﻩﻫﺎ ،ﻋﻨﺎﺻﺮ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﻣﺪﻝ ﻧﻴﺎﺯﻫـﺎ ﺭﺍ ﺩﺭ ﺳـﻄﺢ ﺟـﺰﺀ ﻧـﺮﻡﺍﻓـﺰﺍﺭﻱ ﺑـﻪ
ﺳﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﻫﺎ ﻭ ﻭﻗﺘﻲ ﻻﺯﻡ ﺑﺎﺷﺪ ﻣﻌﻤﺎﺭﻱ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩﺍﻱ ﺭﺍ ﺩﺭ ﺳﻄﺢ ﺑﺮﻧﺎﻣﻪ ﻛﺎﺭﺑﺮﺩﻱ ،ﺗﺒﺪﻳﻞ ﻣﻲﻛﻨﺪ.
ﺳﺒﻚﻫﺎﻱ ﻣﻌﻤﺎﺭﻱ
Data-centered architectures o
Data flow architectures o
Call and return architectures o
Object-oriented architectures o
Layered architectures o
ﻣﻌﻤﺎﺭﻱﻫﺎﻱ ﻣﺘﻤﺮﻛﺰ ﺑﺮ ﺩﺍﺩﻩﻫﺎ -ﻳﻚ ﻣﺨﺰﻥ ﺩﺍﺩﻩﺍﻱ ﺩﺭ ﻣﺮﻛﺰ ﺍﻳﻦ ﻣﻌﻤﺎﺭﻱ ﻗﺮﺍﺭ ﺩﺍﺭﺩ ﻭ ﺍﻏﻠﺐ ﺗﻮﺳﻂ ﺩﻳﮕﺮ ﺍﺟﺰﺍﻳﻲ ﻛـﻪ
ﺑﻪ ﺭﻭﺯﺳﺎﺯﻱ ،ﺍﻓﺰﻭﺩﻥ ،ﺣﺬﻑ ﻳﺎ ﻛﺎﺭﻫﺎﻱ ﺩﻳﮕﺮ ﺍﺻﻼﺣﻲ ﺭﺍ ﺩﺭ ﻣﻮﺭﺩ ﻣﺨﺰﻥ ﺍﻧﺠﺎﻡ ﻣﻲﺩﻫﻨﺪ ،ﻗﺎﺑﻞ ﺩﺳﺘﺮﺳﻲ ﺍﺳﺖ.
ﻣﻌﻤﺎﺭﻱﻫﺎﻱ ﺟﺮﻳﺎﻥ ﺩﺍﺩﻩﻫﺎ .ﺍﻳﻦ ﻣﻌﻤﺎﺭﻱ ﻭﻗﺘﻲ ﺑﻪ ﻛﺎﺭ ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮﺩ ﻛﻪ ﺩﺍﺩﻩﻫﺎﻱ ﻭﺭﻭﺩﻱ ﻗﺮﺍﺭ ﺍﺳـﺖ ﺍﺯ ﻃﺮﻳـﻖ ﻳـﻚ
ﺳﺮﻱ ﺍﺟﺰﺍﺀ ﻣﺤﺎﺳﺒﺎﺗﻲ ﻳﺎ ﺗﻐﻴﻴﺮﺍﺗﻲ ،ﺑﻪ ﺩﺍﺩﻩﻫﺎﻱ ﺧﺮﻭﺟﻲ ﺗﺒﺪﻳﻞ ﺷﻮﻧﺪ.
ﻣﻌﻤﺎﺭﻱ ﻓﺮﺍﺧﻮﺍﻧﻲ ﻭ ﺑﺎﺯﮔﺸﺖ -ﺍﻳﻦ ﺳﺒﻚ ﺍﺯ ﻣﻌﻤﺎﺭﻱ ﻃﺮﺍﺡ ﻧﺮﻡﺍﻓﺰﺍﺭ )ﻣﻌﻤﺎﺭ ﺳﻴﺴﺘﻢ( ﺭﺍ ﻗﺎﺩﺭ ﻣﻲﺳـﺎﺯﺩ ﺗـﺎ ﺑـﻪ ﺳـﺎﺧﺘﺎﺭ
ﺑﺮﻧﺎﻣﻪﺍﻱ ﺩﺳﺖ ﻳﺎﺑﺪ ﻛﻪ ﺍﺯ ﻧﻈﺮ ﺍﺻﻼﺡ ﻭ ﺍﺭﺯﻳﺎﺑﻲ ﻧﺴﺒﺘﺎﹰ ﺳﺎﺩﻩ ﺍﺳﺖ.
_______________________________________________________________
ﻣﻌﻤﺎﺭﻱﻫﺎﻱ ﺷﻲﮔﺮﺍ .ﺍﺟﺰﺍﻱ ﻳﻚ ﺳﻴﺴﺘﻢ ﺩﺭ ﺑﺮﮔﻴﺮﻧﺪﻩ ﺩﺍﺩﻩﻫﺎ ﻭ ﻋﻤﻠﻴﺎﺗﻲ ﻫﺴﺘﻨﺪ ﻛﻪ ﺑﺎﻳﺪ ﺑـﺮﺍﻱ ﺗﻐﻴﻴـﺮ ﺩﺍﺩﻩﻫـﺎ ﺑـﻪ ﻛـﺎﺭ
ﺭﻭﻧﺪ .ﺍﺭﺗﺒﺎﻁ ﻭ ﻫﻤﺎﻫﻨﮕﻲ ﺑﻴﻦ ﺍﺟﺰﺍ ﺍﺯ ﻃﺮﻳﻖ ﻋﺒﻮﺭ ﭘﻴﺎﻡﻫﺎ ﺣﺎﺻﻞ ﻣﻲﺷﻮﺩ)ﺍﻳﻦ ﻣﻌﻤﺎﺭﻱ ﺩﺭ ﻓﺼـﻮﻝ ﺁﺗـﻲ ﻣـﻮﺭﺩ ﺑﺤـﺚ ﻗـﺮﺍﺭ
ﻣﻲﮔﻴﺮﺩ(.
ﻣﻌﻤﺎﺭﻱﻫﺎﻱ ﻻﻳﻪﺍﻱ .ﺳﺎﺧﺘﺎﺭ ﺍﺻﻠﻲ ﺍﻳﻦ ﻣﻌﻤﺎﺭﻱ ﺩﺭ ﺷﻜﻞ ﺯﻳﺮ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ .ﺗﻌﺪﺍﺩﻱ ﻻﻳﻪﻫﺎﻱ ﻣﺨﺘﻠﻒ ﺗﻌﺮﻳـﻒ
ﺷﺪﻩﺍﻧﺪ ﻛﻪ ﻫﺮ ﻛﺪﺍﻡ ﺑﻪ ﻋﻤﻠﻴﺎﺗﻲ ﺩﺳﺖ ﻣﻲﻳﺎﺑﻨﺪ ﻛﻪ ﺑﻪ ﻃﻮﺭ ﮔﺴﺘﺮﺩﻩﺍﻱ ﺑﻪ ﻣﺠﻤﻮﻋﻪ ﺩﺳﺘﻮﺭﺍﺕ ﻣﺎﺷﻴﻦ ﻧﺰﺩﻳﻚﺗﺮ ﻣـﻲﺷـﻮﻧﺪ.
ﺩﺭ ﻻﻳﻪ ﺧﺎﺭﺟﻲﺗﺮ ،ﺍﺟﺰﺍﺀ ﺩﺭ ﺧﺪﻣﺖ ﻋﻤﻠﻴﺎﺕ ﻭﺍﺳﻂ ﻛﺎﺭﺑﺮ ﻫﺴﺘﻨﺪ .ﺩﺭ ﻻﻳﻪ ﺩﺍﺧﻠﻲﺗـﺮ ،ﺍﺟـﺰﺍﺀ ﻛـﺎﺭ ﺍﺭﺗﺒـﺎﻁ ﺳﻴﺴـﺘﻢ ﻋﺎﻣـﻞ ﺭﺍ
ﺍﻧﺠﺎﻡ ﻣﻲﺩﻫﻨﺪ .ﻻﻳﻪﻫﺎﻱ ﻣﻴﺎﻧﻲ ﺧﺪﻣﺎﺕ ﺍﺳﺘﻔﺎﺩﻩ ﻭ ﺑﻬﺮﻩﺑﺮﺩﺍﺭﻱ ﻭ ﻋﻤﻠﻴﺎﺕ ﻛﺎﺭﻛﺮﺩﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﻣﻬﻴﺎ ﻣﻲﻛﻨﻨﺪ.
ﭘﻴﭽﻴﺪﮔﻲ ﻣﻌﻤﺎﺭﻱ
ﻳﻚ ﺭﻭﺵ ﻣﻔﻴﺪ ﺑﺮﺍﻱ ﺍﺭﺯﻳﺎﺑﻲ ﭘﻴﭽﻴﺪﮔﻲ ﻛﻠﻲ ﻣﻌﻤﺎﺭﻱ ﭘﻴﺸﻨﻬﺎﺩﻱ ،ﻋﺒﺎﺭﺗﺴﺖ ﺍﺯ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﻭﺍﺑﺴﺘﮕﻲ ﻣﻴﺎﻥ ﺍﺟﺰﺍﺀ ﺩﺭﻭﻥ
ﻣﻌﻤﺎﺭﻱ .ﺍﻳﻦ ﻭﺍﺑﺴﺘﮕﻲﻫﺎ ﻧﺎﺷﻲ ﺍﺯ ﺟﺮﻳﺎﻥ ﻛﻨﺘﺮﻝ /ﺍﻃﻼﻋﺎﺕ ﺩﺭﻭﻥ ﺳﻴﺴﺘﻢ ﻣﻲﺑﺎﺷﻨﺪ.
ZHAOﺳﻪ ﻧﻮﻉ ﻭﺍﺑﺴﺘﮕﻲ ﺍﺭﺍﻳﻪ ﻣﻲﺩﻫﺪ[ZHA98 ] :
¨ ﻭﺍﺑﺴﺘﮕﻲﻫﺎﻱ ﻣﺸﺘﺮﻙ ﻧﻤﺎﻳﺎﻥﮔﺮ ﺍﺭﺗﺒﺎﻃﺎﺕ ﻭﺍﺑﺴﺘﻪﺍﻱ ﺩﺭ ﻣﻴﺎﻥ ﻣﺼﺮﻑﻛﻨﻨﺪﮔﺎﻧﻲ ﻫﺴﺘﻨﺪ ﻛﻪ ﺍﺯ ﻣﻨﺒﻌﻲ ﻳﻜﺴﺎﻥ
ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩﻩ ﻳﺎ ﺗﻮﻟﻴﺪﻛﻨﻨﺪﮔﺎﻧﻲ ﻛﻪ ﺑﺮﺍﻱ ﻣﺼﺮﻑﻛﻨﻨﺪﮔﺎﻧﻲ ﻳﻜﺴﺎﻥ ﺗﻮﻟﻴﺪ ﻣﻲﻛﻨﻨﺪ .ﻣﺜﻼﹰ ،ﺩﺭ ﻣﻮﺭﺩ ﺩﻭ ﺟﺰﺀ v،u ،ﺍﮔﺮ u
ﻭ vﻫﺮ ﺩﻭ ﺑﻪ ﻳﻚ ﺳﺮﻱ ﺩﺍﺩﻩ ﺳﺮﺗﺎﺳﺮﻱ ﻳﻜﺴﺎﻧﻲ ﺭﺟﻮﻉ ﻛﻨﻨﺪ ،ﻳﻚ ﻭﺍﺳﻄﻪ ﻭﺍﺑﺴﺘﮕﻲ ﻣﺸﺘﺮﻙ ﺑﻴﻦ v،uﻭﺟﻮﺩ ﺩﺍﺭﺩ.
¨ ﻭﺍﺑﺴﺘﮕﻲﻫﺎﻱ ﺟﺮﻳﺎﻥ ﻧﻤﺎﻳﺎﻥﮔﺮ ﺍﺭﺗﺒﺎﻃﺎﺕ ﻭﺍﺑﺴﺘﮕﻲ ﻣﻴﺎﻥ ﺗﻮﻟﻴﺪﻛﻨﻨﺪﻩ ﻭ ﻣﺼﺮﻑﻛﻨﻨﺪﻩﻫﺎﻱ ﻣﻨﺒﻊ ﺍﺳﺖ .ﺩﺭ ﻣﻮﺭﺩ ﺩﻭ
ﺟﺰﺀ v،uﺍﮔﺮ ﺑﺎﻳﺪ uﻗﺒﻞ ﺍﺯ ﺟﺮﻳﺎﻥ ﻳﺎﻓﺘﻦ ﻛﻨﺘﺮﻝ ﺩﺭ vﺗﻜﻤﻴﻞ ﺷﻮﺩ ﻳﺎ ﺍﮔﺮ uﺑﻪ ﻭﺳﻴﻠﻪ ﭘﺎﺭﺍﻣﺘﺮﻫﺎﻳﻲ ﺑﺎ vﺍﺭﺗﺒﺎﻁ
ﺑﺮﻗﺮﺍﺭ ﻣﻲﻛﻨﺪ ،ﺩﺭ ﺍﻳﻦ ﺻﻮﺭﺕ ﻳﻚ ﺟﺮﻳﺎﻥ ﻭﺍﺑﺴﺘﮕﻲ ﻣﻴﺎﻥ ﺍﻳﻦ ﺩﻭ ﻭﺟﻮﺩ ﺩﺍﺭﺩ.
¨ ﻭﺍﺑﺴﺘﮕﻲﻫﺎﻱ ﻣﺤﺪﻭﺩ ﺷﺪﻩ ﻧﻤﺎﻳﺎﻥﮔﺮ ﻣﺤﺪﻭﺩﻳﺖﻫﺎ ﻭ ﻗﻴﻮﺩﻱ ﺩﺭ ﺟﺮﻳﺎﻥ ﻧﺴﺒﻲ ﻛﻨﺘﺮﻝ ﻣﻴﺎﻥ ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ
ﻓﻌﺎﻟﻴﺖﻫﺎ ﻫﺴﺘﻨﺪ .ﻣﺜﻼﹰ ﺩﺭ ﻣﻮﺭﺩ ﺩﻭ ﺟﺰﺀ ، v،uﺁﻧﻬﺎ ﻧﻤﻲﺗﻮﺍﻧﻨﺪ ﺩﺭ ﻳﻚ ﺯﻣﺎﻥ ﺍﺟﺮﺍ ﺷﻮﻧﺪ ﭘﺲ ﻳﻚ ﻭﺍﺳﻄﻪ ﻭﺍﺑﺴﺘﮕﻲ
ﻣﺤﺪﻭﺩ ﻭ ﻣﻘﻴﺪ ﺷﺪﻩ ﺑﻴﻦ ﺁﻧﻬﺎ ﻭﺟﻮﺩ ﺩﺍﺭﺩ.
ﻭﺍﺑﺴﺘﮕﻲﻫﺎﻱ ﻣﺸﺘﺮﻙ ﻭ ﺟﺮﻳﺎﻥ ﻛﻪ ﻣﻮﺭﺩ ﺗﻮﺟﻪ ZAHOﻗﺮﺍﺭ ﮔﺮﻓﺖ ﺍﺯ ﺑﻌﻀﻲ ﺟﻬﺎﺕ ﺷﺒﻴﻪ ﻣﻔﻬﻮﻡ ﺍﻧﺴﺠﺎﻡ ﻭ ﺍﺗﺼﺎﻝ
ﻫﺴﺘﻨﺪ.
ﺩﺭ ﺭﻭﺵ ﺗﺮﺍﮐﻨﺸﯽ ،ﺟﺮﻳﺎﻧﯽ ﻭﺍﺭﺩ ﺳﻴﺴﺘﻢ ﻣﯽ ﺷﻮﺩ ﻭ ﺳﻴﺴﺘﻢ ﺍﻧﺘﺨﺎﺏ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﺍﺯ ﮐﺪﺍﻡ ﺷﺎﺧﻪ ﺧﺎﺭﺝ ﺷﻮﺩ.
ﺩﺭ ﺳﻄﻮﺡ ﺑﺎﻻﻳﻲ ﻣﻌﻤﺎﺭﯼ ﮐﻨﺘﺮﻝ ﻣﻄﺮﺡ ﺍﺳﺖ ﻭﻟﯽ ﺩﺭ ﺳﻄﻮﺡ ﭘﺎﻳﻴﻨﯽ ﻧﺤﻮﻩ ﺗﺒﺪﻳﻞ ﺍﻃﻼ ﻋﺎﺕ ﺭﺍ ﻣﻲﺗﻮﺍﻥ ﺩﻳﺪ.
ﻭ ﻳﺎ ﻗﺴﻤﺖ ﮐﻨﺘﺮﻝ ﺣﺴﮕﺮ ﻳﮏ ﺗﺒﺪﻳﻞ ﺍﺳﺖ ﭼﻮﻥ ﺩﺭ ﺗﺮﺍﮐﻨﺶ ﻳﮑﯽ ﺍﺯ ﺧﺮﻭﺟﻲﻫﺎ ﺍﻧﺘﺨﺎﺏ ﻣﯽ ﺷﻮﺩ ﻭﻟﯽ ﺩﺭ ﮐﻨﺘﺮﻝ ﺣﺴﮕﺮ
ﻫﺮ ﺳﻪ ﺧﺮﻭﺟﯽ ﻫﻤﺰﻣﺎﻥ ﺍﺗﻔﺎﻕ ﻣﯽ ﺍﻓﺘﺪ.
ﺍﮔﺮ ﻣﺮﺍﺣﻞ ۳ﺗﺎ ۵ﮐﻪ ﻋﺒﺎﺭﺕ ﺍﺳﺖ ﺍﺯ ﺭﺳﻢ ﺗﻔﺼﻴﻠﯽ ﻭ ﺗﻌﻴﻴﻦ ﺟﺮﻳﺎﻥ ﻭ ﻣﺮﺯ ﺁﻥ ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﻫﻴﻢ ﺩﺭ ﻣﺮﺣﻠﻪ ۶ﺧﻮﺍﻫﻴﻢ ﺩﺍﺷﺖ:
ﺷﻜﻞ :۱۱ﻣﺜﺎﻟﻲ ﺍﺯ ﻧﺤﻮﻩ ﻧﮕﺎﺷﺖ ﺟﺮﻳﺎﻥ ﺗﺮﺍﻛﻨﺸﻲ ﻭ ﺗﺒﺪﻳﻠﻲ ﺳﻴﺴﺘﻢ ﺧﺎﻧﻪ ﺍﻣﻦ ﺑﻪ ﺳﺎﺧﺘﺎﺭ
ﺑﺎﺯ ﻧﮕﺮﯼ ﺣﺎﺻﻞ ﻣﻤﮑﻦ ﺍﺳﺖ ﻧﺘﻴﺠﻪ ﺭﺍ ﺗﻌﺪﻳﻞ ﮐﺘﺪ)ﻣﯽﺗﻮﺍﻥ ﺍﻳﻦ ﻋﻤﻞ ﺭﺍ ﺩﺭ ﻣﺮﺣﻠﻪ ﺩﻳﮕﺮﯼ ﻣﺜﻞ ﻣﺮﺣﻠﻪ ۷ﺍﻧﺠﺎﻡ ﺩﺍﺩ(.
ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺜﺎﻝ ﻣﯽ ﺗﻮﺍﻥ ﺑﺨﺶ”ﻗﺎﻟﺐ ﻧﻤﺎﻳﺶ” ﻭ” ﺗﻮﻟﻴﺪ ﻧﻤﺎﻳﺶ” ﺭﺍ ﺩﺭ ﻳـﮏ ﻣﺮﺣﻠـﻪ ﺑـﺎ ﻋﻨـﻮﺍﻧﯽ ﺟﺪﻳـﺪ ﻣﺜـﻞ “ﭘـﺮﺩﺍﺯﺵ
ﻧﻤﺎﻳﺶ ﺍﻃﻼﻋﺎﺕ ﺍﻧﺠﺎﻡ ﺩﺍﺩ...”.
ﺩﺭ ﺍﻳﻦ ﻣﺮﺣﻠﻪ ﺑﺎﺯﻧﮕﺮﯼ ﺍﻧﺠﺎﻡ ﻣﯽ ﮔﻴﺮﺩﻭ ﻧﻴﺰ ﭘﺎﻻﻳﺶ ﺳﺎﺧﺘﺎﺭ ﺍﻭﻟﻴﻪ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺑـﻪ ﻣﻨﻈـﻮﺭ ﺑﻬﺒـﻮﺩ ﮐﻴﻔﻴـﺖ ﻧـﺮﻡ ﺍﻓـﺰﺍﺭ ﺍﻧﺠـﺎﻡ
ﻣﻲﮔﻴﺮﺩ.
ﺩﺭ ﺑﺎﺯﻧﮕﺮﯼ ﺑﺎﻳﺪ ﺍﺻﻮﻝ ﻭ ﺿﻮﺍﺑﻂ ﻃﺮﺍﺣﯽ ،ﺩﺭﮎ ،ﻣﻬﺎﺭﺕ ،ﺗﺠﺮﺑﻪ ﻭ ﻗﻮﺍﻋﺪ ﺑﺎﺯﻧﮕﺮﯼ ......ﺩﺧﺎﻟﺖ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻨﺪ.
ﺣﻞ :ﺍﺯ ﺭﻭﯼ ﺷﮑﻞ ﺩﺭ ﻣﻲﻳﺎﺑﻴﻢ ﮐﻪ DFDﻣﺎ ﺗﺮﺍﮐﻨﺸﯽ ﺍﺳﺖ ﻣﮕﺮ ﺁﻧﮑﻪ ﺷﺮﺣﯽ ﺭﻭﯼ ﺁﻥ ﻧﻮﺷﺘﻪ ﺷﺪﻩ ﺑﺎﺷﺪ ﻣﺒﻨﯽ ﺑﺮ ﺍﻳﻨﮑـﻪ
ﻫﺮ ﺳﻪ ﺧﺮﻭﺟﯽ ﻫﻤﺰﻣﺎﻥ ﺍﺗﻔﺎﻕ ﻣﯽ ﺍﻓﺘﻨﺪ ﺩﺭ ﺍﻳﻦ ﺻﻮﺭﺕ ﻣﯽ ﮔﻮﻳﻴﻢ ﺟﺮﻳﺎﻥ ﺗﺒﺪﻳﻠﻲ ﺍﺳﺖ.
ﻣﺜﺎﻝ :ﻣﻌﻤﺎﺭﻱ ﺑﺮﻧﺎﻣﻪ ﻛﺘﻨﺎﻇﺮ ﺑﺎ ﺳﻴﺴﺘﻢ ﺧﺎﻧﻪ ﺍﻣﻦ ﺭﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ DFDﻫﺎﻱ ﺩﺍﺩﻩ ﺷﺪﻩ ﺑﻪ ﺩﺳﺖ ﺁﻭﺭﻳﺪ.
ﺣﻞ :ﺑﺨﺸﻲ ﺍﺯ ﺟﺮﻳﺎﻥ ﺩﺍﺩﻩﻫﺎ ﺳﻴﺴﺘﻢ ﺧﺎﻧﻪ ﺍﻣﻦ ﺩﺭ ﺳﻄﺢ ﻳﻚ ﺩﺭ ﺻﻔﺤﻪ ﺑﻌﺪ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ.
ﺗﻮﻟﻴﺪ ﺻﻔﺤﻪ
ﻧﻤﺎﻳﺶ
ﻗﺎﻟﺐﺑﻨﺪﻱ
ﺻﻔﺤﻪ ﻧﻤﺎﻳﺶ
ﺗﻮﻟﻴﺪ ﺍﻋﻼﻡ
ﺧﻄﺮ
ﺑﺮﻗﺮﺍﺭﻱ ﺍﺗﺼﺎﻝ
ﺑﻪ ﺷﺒﻜﻪ ﺗﻠﻔﻦ
ﺗﻮﻟﻴﺪ ﭘﺎﻟﺲ
ﺗﻠﻔﻦ
ﺍﺟﺮﺍ ﻛﻨﻨﺪﻩ
ﺣﺴﮕﺮﻫﺎﻱ
ﺑﺪﺳﺖ ﺁﻭﺭﺩﻥ ﺍﻃﻼﻋﺎﺕ ﭘﺎﺳﺦ ﺗﺜﺒﻴﺖ ﻛﻨﻨﺪﻩ ﺷﺮﺍﻳﻂ ﺁﮊﻳﺮ ﻛﻨﺘﺮﻝ ﻛﻨﻨﺪﻩ ﺧﺮﻭﺟﻲ ﺁﮊﻳﺮ
ﺍﺳﺘﻔﺎﺩﻩ ﻣﻮﻓﻖ ﺍﺯ ﻧﮕﺎﺷﺖ ﺗﺮﺍﻛﻨﺶ ﻳﺎ ﺗﺒﺪﻳﻞ ﺑﺎ ﻛﺎﺭﻫﺎﻱ ﺍﺿﺎﻓﻲ ﺩﻳﮕﺮﻱ ﺗﻜﻤﻴﻞ ﻣﻲﺷﻮﺩ ﻛﻪ ﺑـﻪ ﻋﻨـﻮﺍﻥ ﺑﺨﺸـﻲ ﺍﺯ ﻃﺮﺍﺣـﻲ
ﻣﻌﻤﺎﺭﻱ ﺿﺮﻭﺭﻱ ﻫﺴﺘﻨﺪ .ﺑﻌﺪ ﺍﺯ ﺳﺎﺧﺖ ﺳﺎﺧﺘﺎﺭ ﺑﺮﻧﺎﻣﻪ ﻭ ﺍﺻﻼﺡ ﺁﻥ ،ﻛﺎﺭﻫﺎﻱ ﺯﻳﺮ ﺑﺎﻳﺪ ﺗﻜﻤﻴﻞ ﮔﺮﺩﺩ:
ﮔﺰﺍﺭﺵ ﺍﺯ ﭘﺮﺩﺍﺯﺵﻫﺎﻱ ﻫﺮ ﭘﻴﻤﺎﻧﻪ ﺍﺭﺍﻳﻪ ﺷﻮﺩ. ¨
ﻳﻚ ﺗﻮﺿﻴﺢ ﺩﺭ ﻣﻮﺭﺩ ﻭﺍﺳﻂ ﺑﺮﺍﻱ ﻫﺮ ﭘﻴﻤﺎﻧﻪ ﺩﺍﺩﻩ ﺷﻮﺩ. ¨
ﺳﺎﺧﺘﺎﺭﻫﺎﻱ ﺩﺍﺩﻩﺍﻱ ﻣﺤﻠﻲ ﻭ ﺳﺮﺍﺳﺮﻱ ﺗﻌﺮﻳﻒ ﺷﻮﻧﺪ. ¨
ﺗﻤﺎﻡ ﻣﺤﺪﻭﺩﻳﺖﻫﺎﻱ ﻃﺮﺍﺣﻲ ﺫﻛﺮ ﺷﻮﻧﺪ. ¨
ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﺑﺎﺯﻧﮕﺮﻱ ﻃﺮﺍﺣﻲﻫﺎ ﺁﻣﺎﺩﻩ ﺷﻮﺩ. ¨
ﺍﺻﻼﺡ ﺩﺭ ﺻﻮﺭﺕ ﻟﺰﻭﻡ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮﺩ. ¨
ﻗﻮﺍﻋﺪ ﻃﻼﻳﻲ
Mendalﺩﺭ ﻛﺘﺎﺏ ﺧﻮﺩ ﺑﺎ ﻋﻨﻮﺍﻥ ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ [MAN 97 ] ،ﺳﻪ "ﻗﺎﻧﻮﻥ ﻃﻼﻳﻲ" ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﺍﺭﺍﻳﻪ ﻣﯽ ﮐﻨﺪ:
-۱ﻭﺍﮔﺬﺍﺭﻱ ﻛﻨﺘﺮﻝ ﺑﻪ ﻛﺎﺭﺑﺮ
-۲ﻛﺎﻫﺶ ﺑﺎﺭ ﺣﺎﻓﻈﺔ ﻛﺎﺭﺑﺮ
-۳ﺳﺎﺯﮔﺎﺭ ﻛﺮﺩﻥ ﻭﺍﺳﻂ ﻫﺎ
ﺍﻳﻦ ﻗﻮﺍﻧﻴﻦ ﻃﻼﻳﻲ ،ﻋﻤﻼﹰ ﻣﺒﻨﺎﻳﯽ ﺑﺮﺍﯼ ﻣﺠﻤﻮﻋﻪ ﺍﺻﻮﻝ ﻃﺮﺍﺣـﻲ ﻭﺍﺳـﻂ ﻛـﺎﺭﺑﺮ ﻫﺴـﺘﻨﺪ ﻛـﻪ ﺍﻳـﻦ ﻓﻌﺎﻟﻴـﺖ ﻣﻬـﻢ ﻃﺮﺍﺣـﻲ
ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺭﺍ ﻫﺪﺍﻳﺖ ﻣﯽ ﮐﻨﻨﺪ .ﭖ
ﺍﻳﺠﺎﺩ ﭘﻴﺶ ﮔﺰﻳﺪﻩﻫﺎﻱ ﻣﻌﻨﻲﺩﺍﺭ .ﻣﺠﻤﻮﻋﺔ ﺁﻏﺎﺯﻳﻦ ﭘﻴﺶ ﻓﺮﺽﻫﺎ ﺑﺎﻳﺪ ﺑﺮﺍﻱ ﻛﺎﺭﺑﺮ ﻣﺘﻮﺳﻂ ﻣﻌﻨﻲﺩﺍﺭ ﺑﺎﺷـﺪ ،ﺍﻣـﺎ .۲
ﻛﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺘﻮﺍﻧﺪ ﺍﻭﻟﻮﻳﺖﻫﺎﻱ ﻓﺮﺩﻱ ﺧﻮﺩ ﺭﺍ ﻣﺸﺨﺺ ﻛﻨﺪ .ﻫﺮ ﭼﻨﺪ ﻛﻪ ﺍﻣﻜـﺎﻥ ﺗﻨﻈـﻴﻢ ﻣﺠـﺪﺩ ،ﺑﺎﻳﺴـﺘﻲ ﻣﻮﺟـﻮﺩ
ﺑﺎﺷﺪ ﺗﺎ ﺗﻌﺮﻳﻒ ﻣﺠﺪﺩ ﻣﻘﺎﺩﻳﺮ ﺍﺻﻠﻲ ﭘﻴﺶ ﮔﺰﻳﺪﻩ ﺍﻣﻜﺎﻥﭘﺬﻳﺮ ﮔﺮﺩﺩ.
ﺗﻌﻴﻴﻦ ﻣﻴﺎﻥﺑﺮﻫﺎﻳﻲ ﻛﻪ ﺷﻬﻮﺩﻱ ﻫﺴﺘﻨﺪ .ﺯﻣﺎﻧﻲ ﻛﻪ ﺑﺮﺍﻱ ﺍﻧﺠـﺎﻡ ﻋﻤﻠﻜـﺮﺩ ﺳﻴﺴـﺘﻢ ﺍﺯ ﻣﺠﻤﻮﻋـﻪ ﺍﯼ ﺍﺯ ﻛﻠﻤـﺎﺕ -۴
ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺷﻮﺩ) ،ﻣﺜﻼﹰ alt- Pﺑﺮﺍﻱ ﻓﻌﺎﻝ ﻛﺮﺩﻥ ﻋﻤﻞ ﭼﺎﭖ( ،ﻛﻠﻤﺎﺕ ﺣﻔﻈﻲ ﺑﺎﻳﺪ ﺑﻪ ﺷـﻴﻮﻩﺍﻱ ﻛـﻪ ﺑـﻪ ﺧـﺎﻃﺮ
ﺁﻭﺭﺩﻥ ﺁﻥ ﺁﺳﺎﻥ ﺑﺎﺷﺪ ﻭ ﺑﻪ ﻋﻤﻞ ﻣﻮﺭﺩ ﻧﻈﺮ ﻣﺮﺗﺒﻂ ﮔﺮﺩﺩ) .ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺜﺎﻝ ،ﺣﺮﻑ ﺍﻭﻝ ﺁﻥ ﻋﻤﻞ ،ﻓﺮﺍﺧﻮﺍﻧﺪﻩ ﺷﻮﺩ(.
ﻃﺮﺡ ﺑﺼﺮﻱ ﻭﺍﺳﻂ ﺑﺎﻳﺪ ﺑﺮﺍﺳﺎﺱ ﺍﺳﺘﻌﺎﺭﺓ ﺟﻬﺎﻥ ﻭﺍﻗﻌﻲ ﺑﺎﺷﺪ .ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺜﺎﻝ ﺳﻴﺴﺘﻢ ﭘﺮﺩﺍﺧـﺖ ﻓـﺎﻛﺘﻮﺭ ﺑﺎﻳـﺪ -۵
ﺑﺮﺍﻱ ﻫﺪﺍﻳﺖ ﻛﺎﺭﺑﺮ ﻃﻲ ﻓﺮﺍﻳﻨﺪ ﭘﺮﺩﺍﺧﺖ ﺻﻮﺭﺕﺣﺴﺎﺏ ،ﺍﺯ ﺍﺳﺘﻌﺎﺭﺓ ﺩﺳﺘﻪ ﭼﻚ ﻭ ﺛﺒﺖ ﭼـﻚ ﺍﺳـﺘﻔﺎﺩﻩ ﻛﻨـﺪ .ﺍﻳـﻦ
ﻣﺴﺎﻟﻪ ﺑﻪ ﻛﺎﺭﺑﺮ ﺍﻣﻜﺎﻥ ﻣﻲﺩﻫﺪ ﺗﺎ ﺑﻪ ﺟﺎﻱ ﺣﻔﻆ ﺳﻠﺴﻠﻪ ﻛﺎﺭﻫﺎﻱ ﻏﻴﺮ ﻣﺘﻌﺎﺭﻑ ﺗﻌﺎﻣﻠﻲ ،ﺑﻪ ﻋﻼﻳﻢ ﺑﺼـﺮﻱ ﺷـﻨﺎﺧﺘﻪ
ﺷﺪﻩ ﻣﺘﻮﺳﻞ ﺷﻮﺩ.
ﺁﺷﻜﺎﺭﺳﺎﺯﻱ ﺍﻃﻼﻋﺎﺕ ﺑﻪ ﺷﻴﻮﻩﺍﻱ ﺗﺪﺭﻳﺠﻲ .ﻭﺍﺳﻂ ﺑﺎﻳﺪ ﺑﻪ ﻃﻮﺭ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺒﻲ ﺳﺎﺯﻣﺎﻥﺩﻫـﻲ ﺷـﻮﺩ .ﻳﻌﻨـﻲ ﺁﻥ -۶
ﻛﻪ ﺍﻃﻼﻋﺎﺕ ﺩﺭﺑﺎﺭﺓ ﻳﻚ ﻋﻤﻞ ،ﺷﻲ ﻳﺎ ﻳﻚ ﺷﻴﻮﻩ ﺑﺎﻳﺪ ﺍﺑﺘﺪﺍ ﺩﺭ ﺳﻄﺢ ﺑﺎﻻﻳﻲ ﺍﺯ ﺍﻧﺘﺰﺍﻉ ﺍﺭﺍﻳﻪ ﮔﺮﺩﺩ .ﺟﺰﻳﻴﺎﺕ ﺑﻴﺸـﺘﺮ
ﺑﺎﻳﺪ ﭘﺲ ﺍﺯ ﺍﻋﻼﻡ ﻋﻼﻗﺔ ﻛﺎﺭﺑﺮ ﺑﺎ ﺍﻧﺘﺨﺎﺏ ﻭﯼ ﺍﺯ ﻃﺮﻳﻖ ﻣﺎﻭﺱ ،ﺩﺭ ﺍﺧﺘﻴﺎﺭ ﺍﻭ ﻗﺮﺍﺭ ﮔﻴﺮﺩ .ﻣﺜﺎﻝ ﺭﺍﻳﺞ ﺩﺭ ﺑﺴـﻴﺎﺭﻱ ﺍﺯ
ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﻛﺎﺭﺑﺮﺩﻱ ﻭﺍﮊﻩﭘﺮﺩﺍﺯﻱ ،ﻋﻤﻞ ﺧﻂ ﺯﻳﺮ ﺍﺳﺖ .ﺍﻳﻦ ﻛﺎﺭﻛﺮﺩ ﻳﻜﻲ ﺍﺯ ﭼﻨﺪﻳﻦ ﻛﺎﺭﻛﺮﺩﻱ ﺍﺳﺖ ﻛﻪ ﺩﺭ ﻣﻨـﻮﻱ
ﻗﺎﻟﺐﺑﻨﺪﻱ ﻣﺘﻦ ﻗﺮﺍﺭ ﺩﺍﺭﺩ .ﻫﺮ ﭼﻨﺪ ﻛﻪ ﺗﻤﺎﻣﻲ ﺍﻣﻜﺎﻧﺎﺕ ﺧﻂ ﺯﻳﺮ ،ﻓﻬﺮﺳﺖ ﻧﻤﻲﺷﻮﻧﺪ .ﻛﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺍﺑﺘﺪﺍ ﺧـﻂ ﺯﻳـﺮ ﺭﺍ
ﺍﻧﺘﺨﺎﺏ ﻛﻨﺪ ﻭ ﺳﭙﺲ ﺗﻤﺎﻣﻲ ﺍﻣﻜﺎﻧﺎﺕ ﺧﻂ ﺯﻳـﺮ )ﺧـﻂ ﺯﻳـﺮ ﺗـﻚ ﺧﻄـﻲ ،ﺩﻭ ﺧﻄـﻲ ﻭ ﻧﻘﻄـﻪﭼـﻴﻦ( ﺑـﻪ ﻧﻤـﺎﻳﺶ
ﺩﺭﻣﻲﺁﻳﻨﺪ.
ﺳﺎﺯﮔﺎﺭﺳﺎﺯﻱ ﻭﺍﺳﻂ
ﺩﺭ ﺍﻳﻦ ﻗﺎﻧﻮﻥ ﻧﻴﺰ ﺭﻋﺎﻳﺖ ﻧﮑﺎﺕ ﺯﻳﺮ ﺍﻟﺰﺍﻣﯽ ﺍﺳﺖ.
-۱ﻗﺮﺍﺭﺩﺍﺩﻥ ﻋﻤﻞ ﻓﻌﻠﻲ ﺩﺭ ﻳﻚ ﺑﺎﻓﺖ ﻣﻌﻨﻲﺩﺍﺭ ﺗﻮﺳﻂ ﻛﺎﺭﺑﺮ .ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﻭﺍﺳﻂﻫﺎ ،ﻻﻳﻪﻫﺎﻱ ﭘﻴﭽﻴﺪﺓ ﺗﻌـﺎﻣﻠﻲ ﺭﺍ ﺑـﺎ
ﺗﺼﺎﻭﻳﺮ ﺯﻳﺎﺩﻱ ﺩﺭ ﺻﻔﺤﺔ ﻧﻤﺎﻳﺶ ﭘﻴﺎﺩﻩ ﻣﻲﻛﻨﻨﺪ .ﺗﻬﻴﻪ ﻧﺸﺎﻥﮔﺮﻫﺎ )ﻣﺜﻞ ﻋﻨﺎﻭﻳﻦ ﭘﻨﺠﺮﻩ ،ﺷـﻤﺎﻳﻞﻫـﺎﻱ ﮔﺮﺍﻓﻴﻜـﻲ،
ﻛﺪﮔﺬﺍﺭﻱ ﺛﺎﺑﺖ ﺭﻧﮓ( ،ﺍﺯ ﺍﻳﻦ ﻧﻈﺮ ﻛﻪ ﻛﺎﺭﺑﺮ ﺭﺍ ﻗﺎﺩﺭ ﻣﻲﺳﺎﺯﻧﺪ ﺗﺎ ﻣﺤﻴﻂ ﻛﺎﺭﻱ ﻣﻮﺟﻮﺩ ﺭﺍ ﺑﺸﻨﺎﺳﺪ ،ﺍﻫﻤﻴـﺖ ﺩﺍﺭﻧـﺪ.
ﺑﻪ ﻋﻼﻭﻩ ،ﻛﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺘﻮﺍﻧﺪ ﻣﺒﺪﺃ ﺧﻮﺩ ﻭ ﺍﻣﻜﺎﻧﺎﺕ ﻣﻮﺟﻮﺩ ﺑﺮﺍﻱ ﮔﺬﺭ ﺑﻪ ﻋﻤﻠﻲ ﺟﺪﻳﺪ ﺭﺍ ﺗﻌﻴﻴﻦ ﻛﻨﺪ.
-۲ﺣﻔﻆ ﺛﺒﺎﺕ ﺩﺭ ﺧﺎﻧﻮﺍﺩﺓ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﻛﺎﺭﺑﺮﺩﻱ .ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﻛﺎﺭﺑﺮﺩﻱ )ﻳﺎ ﻣﺤﺼﻮﻻﺕ( ﺑﺎﻳـﺪ ﻫﻤﮕـﻲ
ﻗﻮﺍﻧﻴﻦ ﻳﻜﺴﺎﻥ ﻃﺮﺍﺣﻲ ﺭﺍ ﭘﻴﺎﺩﻩ ﺳﺎﺯﯼ ﻛﻨﻨﺪ ،ﺑﻪ ﻧﺤﻮﻱ ﻛﻪ ﺳﺎﺯﮔﺎﺭﻱ ﺩﺭ ﺗﻤﺎﻣﻲ ﺗﻌﺎﻣﻼﺕ ﻭ ﻣﺤﺎﻭﺭﻩﻫﺎ ﺣﻔﻆ ﺷﻮﺩ.
-۳ﺍﮔﺮ ﻣﺪﻝﻫﺎﻱ ﺗﻌﺎﻣﻠﻲ ﭘﻴﺸﻴﻦ ﺍﻧﺘﻈﺎﺭﺍﺗﻲ ﺭﺍ ﺩﺭ ﻛﺎﺭﺑﺮ ﺑﻪ ﻭﺟﻮﺩ ﺁﻭﺭﺩﻩﺍﻧﺪ ،ﺗﺎ ﺯﻣﺎﻧﻲ ﻛﻪ ﺩﻟﻴﻞ ﻗﺎﻧﻊﻛﻨﻨﺪﻩﺍﻱ ﻧﺪﺍﺭﻳﺪ
ﺍﺯ ﺍﻧﺠﺎﻡ ﺗﻐﻴﻴﺮﺍﺕ ﺧﻮﺩﺩﺍﺭﻱ ﻛﻨﻴﺪ .ﭘﺲ ﺍﺯ ﺗﺒﺪﻳﻞ ﻳﻚ ﺗﺮﺗﻴﺐ ﺧﺎﺹ ﺗﻌﺎﻣﻠﻲ ﻭ ﻳـﺎ ﻳـﻚ ﺍﺳـﺘﺎﻧﺪﺍﺭﺩ ﻋﻤﻠـﻲ )ﻣﺜـﻞ
ﻛﺎﺭﺑﺮﺩ alt – Sﺑﺮﺍﻱ ﺫﺧﻴﺮﻩ ﻓﺎﻳﻞ( ﺍﺯ ﺗﻐﻴﻴﺮ ﺁﻥ ﺧﻮﺩﺩﺍﺭﯼ ﮐﻨﻴﺪ .ﺯﻳﺮﺍ ﻛﺎﺭﺑﺮ ﺩﺭ ﻣﻮﺍﺟﻬﻪ ﺑﺎ ﻫـﺮ ﺑﺮﻧﺎﻣـﺔ ﻛـﺎﺭﺑﺮﺩﻱ
ﺩﻳﮕﺮ ﻫﻤﻴﻦ ﺍﻧﺘﻈﺎﺭ ﺭﺍ ﺩﺍﺭﺩ ﻭ ﺍﻧﺠﺎﻡ ﻳﻚ ﺗﻐﻴﻴﺮ )ﻣﺜﻞ ﻛـﺎﺭﺑﺮﺩ alt – Sﺑـﺮﺍﯼ ﺗﻐﻴﻴـﺮ ﻣﻘﻴـﺎﺱ( ﺳـﺒﺐ ﺁﺷـﻔﺘﮕﻲ ﻭ
ﺳﺮﺩﺭﮔﻤﻲ ﺍﻭ ﺧﻮﺍﻫﺪ ﺷﺪ.
ﺍﺻﻮﻝ ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ﻛﻪ ﺩﺭ ﺍﻳﻦ ﺑﺨﺶ ﻭ ﻗﺴﻤﺖﻫﺎﻱ ﻗﺒﻠﻲ ﻣـﻮﺭﺩ ﺑﺤـﺚ ﻗـﺮﺍﺭ ﮔﺮﻓﺘﻨـﺪ ،ﺭﺍﻫﻨﻤـﺎﻱ ﺍﺻـﻠﻲ ﻳـﻚ ﻣﻬﻨـﺪﺱ
ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻪ ﺷﻤﺎﺭ ﻣﻲﺭﻭﻧﺪ .ﺩﺭ ﻗﺴﻤﺖﻫﺎﻱ ﺑﻌﺪﻱ ،ﻓﺮﺁﻳﻨﺪ ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ﺭﺍ ﺑﺮﺭﺳﻲ ﺧﻮﺍﻫﻴﻢ ﻛﺮﺩ.
ﻛﻪ ﺩﺭ ﺗﻤﺎﻡ ﻃﺮﺍﺣﻲﻫﺎﻱ ﻭﺍﺳﻂ ﻛﺎﺭﺑﺮﺩ ﺩﺍﺭﻧﺪ ﻣﺪﻧﻈﺮ ﻗﺮﺍﺭ ﻣﻲﮔﻴﺮﻧﺪ ،ﺑﺮﺍﻱ ﺍﻟﮕﻮﺳﺎﺯﻱ ﻭ ﭘﻴـﺎﺩﻩﺳـﺎﺯﻱ ﻧﻬـﺎﻳﻲ ﻣـﺪﻝ ﻃﺮﺍﺣـﻲ،
ﺍﺑﺰﺍﺭﻫﺎﻳﻲ ﺑﻪ ﻛﺎﺭ ﻣﻲﺭﻭﻧﺪ ﻭ ﻧﺘﻴﺠﻪ ﺍﺯ ﻟﺤﺎﻅ ﻛﻴﻔﻲ ﺍﺭﺯﻳﺎﺑﻲ ﻣﻲﮔﺮﺩﺩ.
ﻫﻨﮕﺎﻡ ﻃﺮﺍﺣﻲ ﻣﺤﻴﻂ ﺗﻌﺎﻣﻞ ﺍﺯ ﻃﺮﻳﻖ ﺗﺎﻳﭗ ﻓﺮﻣﺎﻧﻬﺎ ﺑﻪ ﻣﺴﺎﻳﻞ ﺯﻳﺮ ﺑﺎﻳﺪ ﺗﻮﺟﻪ ﺩﺍﺷﺖ:
ﺁﻳﺎ ﻫﺮ ﻳﮏ ﺍﺯ ﮔﺰﻳﻨﻪ ﻫﺎﻱ ﻣﻨﻮ ﺩﺍﺭﺍﻱ ﻳﮏ ﻓﺮﻣﺎﻥ ﻣﺘﻨﺎﻇﺮ ﻫﺴﺖ؟ §
ﻓﺮﻣﺎﻧﻬﺎ ﭼﻪ ﺷﮑﻠﻲ ﺑﻪ ﺧﻮﺩ ﻣﻲ ﮔﻴﺮﻧﺪ؟ §
ﻓﺮﺍ ﮔﻴﺮﻱ ﻭ ﺑﻪ ﺧﺎﻃﺮ ﺳﭙﺮﺩﻥ ﻓﺮﻣﺎﻧﻬﺎ ﭼﻘﺪﺭ ﺩﺷﻮﺍﺭ ﺧﻮﺍﻫﺪ ﺑﻮﺩ؟ﺍﮔﺮ ﻓﺮﻣﺎﻧﻲ ﻓﺮﺍﻣﻮﺵ ﺷﺪ ،ﭼﻪ ﻣﻲ ﺗﻮﺍﻥ ﮐﺮﺩ؟ §
ﺁﻳﺎ ﮐﺎﺭﺑﺮ ﻣﻲ ﺗﻮﺍﻧﺪ ﻓﺮﻣﺎﻧﻬﺎ ﺭﺍ ﺑﻪ ﺳﻠﻴﻘﻪ ﺧﻮﻳﺶ ﻣﺨﺘﺼﺮ ﻭ ﮐﻮﺗﺎﻩ ﮐﻨﺪ؟ §
ﭼﻨﺪ ﻣﺴﺎﹰﻟﻪ ﻃﺮﺍﺣﻲ ﺭﺍﻫﻨﮕﺎﻡ ﭘﺮﺩﺍﺧﺘﻦ ﺑﻪ ﺗﺴﻬﻴﻼﺕ ﺭﺍﻫﻨﻤﺎ ﺑﺎﻳﺪ ﺩﺭ ﻧﻈﺮ ﺩﺍﺷﺖ:
ﺁﻳﺎ ﺭﺍﻫﻨﻤﺎ ﺑﺮﺍﻱ ﮐﻠﻴﻪ ﻋﻤﻠﮑﺮﺩﻫﺎﻱ ﺳﻴﺴﺘﻢ ﻭﺩﺭﻫﻤﻪ ﺍﻭﻗﺎﺕ ﺗﻌﺎﻣﻞ ﺑﺎ ﺳﻴﺴﺘﻢ ﺩﺭ ﺩﺳﺘﺮﺱ ﺧﻮﺍﻫﺪ ﺑﻮﺩ؟ §
ﮐﺎﺭﺑﺮﭼﮕﻮﻧﻪ ﺩﺭﺧﻮﺍﺳﺖ ﮐﻤﮏ ﻭﺭﺍﻫﻨﻤﺎﻳﻲ ﻣﻲ ﮐﻨﺪ؟ §
ﺭﺍﻫﻨﻤﺎﭼﮕﻮﻧﻪ ﺍﺭﺍﻳﻪ ﺧﻮﺍﻫﺪ ﺷﺪ؟ §
ﮐﺎﺭﺑﺮ ﭼﮕﻮﻧﻪ ﺑﻪ ﺗﻌﺎﻣﻠﻬﺎﻱ ﻋﺎﺩﻱ ﺑﺎﺯ ﻣﻲ ﮔﺮﺩﺩ؟ §
ﺍﻃﻼﻋﺎﺕ ﺭﺍﻫﻨﻤﺎ ﭼﮕﻮﻧﻪ ﺳﺎﺧﺘﺎﺭﻱ ﺩﺍﺭﻧﺪ؟ §
ﺗﺤﻠﻴﻞ ﻛﺎﺭﺑﺮ،
ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ﻭﺍﺳﻂ
ﻭﻇﺎﺋﻒ ﻭ ﻣﺤﻴﻂ
ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ
ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﻭﺍﺳﻂ
ﺳﻴﺴﺘﻢ ﺗﻮﺳﻌﻪ ﻭﺍﺳﻂ ﮐﺎﺭﺑﺮ)(UIDSﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺆﻟﻔﻪ ﻫﺎﻱ ﻧﺮﻡ ﺍﻓﺰﺍﺭﻱ،ﺭﺍﻫﮑﺎﺭﻱ ﺑﺮﺍﯼ ﻣﻮﺍﺭﺩ ﺯﻳﺮ ﻓﺮﺍﻫﻢ ﻣﻲ ﺁﻭﺭﺩ:
ﻣﺪﻳﺮﻳﺖ ﺩﺳﺘﮕﺎﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ)ﻣﺜﻞ ﻣﻮﺱ ﻳﺎ ﺻﻔﺤﻪ ﮐﻠﻴﺪ( §
ﺍﻋﺘﺒﺎﺭ ﺳﻨﺠﻲ ﻭﺭﻭﺩﻱ ﮐﺎﺭﺑﺮ §
ﮐﻨﺘﺮﻝ ﺧﻄﺎﻭ ﻧﻤﺎﻳﺶ ﭘﻴﺎﻣﻬﺎﻱ ﺧﻄﺎ §
ﻓﺮﺍﻫﻢ ﺁﻭﺭﺩﻥ ﺑﺎﺯ ﺧﻮﺩ)ﻣﺜﻞ ﺑﺎﺯﺗﺎﺏ ﻭﺭﻭﺩﻱ ﺧﻮﺩﮐﺎﺭ( §
ﻓﺮﺍﻫﻢ ﺁﻭﺭﺩﻥ ﺭﺍﻫﻨﻤﺎ ﻭ ﭘﻴﺎﻡ §
ﮐﻨﺘﺮﻝ ﭘﻨﺠﺮﻩ ﻫﺎﻭ ﻓﻴﻠﺪﻫﺎ،ﺣﺮﮐﺖ ﺩﺭ ﺩﺍﺧﻞ ﭘﻨﺠﺮﻩ ﻫﺎ §
ﺑﺮﻗﺮﺍﺭﻱ ﺍﺭﺗﺒﺎﻁ ﻣﻴﺎﻥ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﮐﺎﺭﺑﺮﺩﻱ ﻭ ﻭﺍﺳﻂ §
ﺟﺪﺍ ﮐﺮﺩﻥ ﺑﺮﻧﺎﻣﻪ ﮐﺎﺭﺑﺮﺩﻱ ﺍﺯ ﻋﻤﻠﮑﺮﺩﻫﺎﻱ ﻣﺪﻳﺮﻳﺖ ﻭﺍﺳﻂ §
ﻣﺠﺎﺯ ﮐﺮﺩﻥ ﮐﺎﺭﺑﺮ ﺑﻪ ﺳﻔﺎﺭﺷﻲ ﮐﺮﺩﻥ ﻭﺍﺳﻂ §
ﻣﺘﺄﺳﻔﺎﻧﻪ ،ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﻃﺮﺍﺣﺎﻥ ﻛﻤﻲ ﺩﻳﺮ ﺍﻳﻦ ﻣﺴﺎﻳﻞ ﺭﺍ ﺩﺭ ﻓﺮﺁﻳﻨﺪ ﻃﺮﺍﺣﻲ ﻣﺪﻧﻈﺮ ﻗﺮﺍﺭ ﻣﻲﺩﻫﻨﺪ )ﮔﺎﻫﻲ ﻗﺒﻞ ﺍﺯ ﺩﺭ ﺩﺳﺘﺮﺱ
ﻗﺮﺍﺭ ﮔﺮﻓﺘﻦ ﻳﻚ ﻧﻤﻮﻧﺔ ﻋﻤﻠﻲ ،ﺍﺷﺎﺭﺓ ﻣﺨﺘﺼﺮ ﺑﻪ ﻳﻚ ﻣﺸﻜﻞ ﺻﻮﺭﺕ ﻧﻤﻲﮔﻴﺮﺩ (.ﺗﻜﺮﺍﺭ ﻏﻴﺮ ﺿﺮﻭﺭﻱ ،ﺗﺄﺧﻴﺮﻫﺎﻱ ﭘﺮﻭﮊﻩ ﻭ
ﻧﺎﺭﺿﺎﻳﺘﻲ ﻣﺸﺘﺮﻱ ،ﺍﻏﻠﺐ ﺍﺯ ﭘﻴﺎﻣﺪﻫﺎﻱ ﺣﺎﺻﻠﻪ ﺍﺳﺖ .ﭘﺲ ﺑﻬﺘﺮ ﺁﻥ ﺍﺳﺖ ﻛﻪ ﻫﺮ ﻳﻚ ﺍﺯ ﻣﺴﺎﻳﻞ ﺩﺭ ﺁﻏﺎﺯ ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻭ
ﺑﻪ ﻫﻨﮕﺎﻡ ﺍﻧﺠﺎﻡ ﺭﺍﺣﺖ ﺗﻐﻴﻴﺮﺍﺕ ﻭ ﭘﺎﻳﻴﻦ ﺑﻮﺩﻥ ﻫﺰﻳﻨﻪﻫﺎ ،ﻣﻮﺭﺩ ﺗﻮﺟﻪ ﻗﺮﺍﺭ ﮔﻴﺮﻧﺪ.
ﺯﻣﺎﻥ ﭘﺎﺳﺦﮔﻮﻳﻲ ﺳﻴﺴﺘﻢ ﺍﺯ ﺯﻣﺎﻧﻲ ﻛﻪ ﻛﺎﺭﺑﺮ ﻋﻤﻞ ﻛﻨﺘﺮﻟﻲ ﺭﺍ ﺍﻧﺠﺎﻡ ﻣﻲﺩﻫﺪ )ﻣﺜﻼﹰ ﻛﻠﻴﺪ ﺑﺎﺯﮔﺸﺖ ﺭﺍ ﺯﺩﻩ ﻳﺎ ﺭﻭﻱ ﻣﺎﻭﺱ
ﻛﻠﻴﻚ ﻣﻲﻛﻨﺪ( ﺗﺎ ﺯﻣﺎﻥ ﭘﺎﺳﺦﮔﻮﻳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺎ ﺍﻗﺪﺍﻡ ﻳﺎ ﺧﺮﻭﺟﻲ ﻣﻄﻠﻮﺏ ،ﺍﻧﺪﺍﺯﻩﮔﻴﺮﻱ ﻣﻲﺷﻮﺩ.
ﺯﻣﺎﻥ ﭘﺎﺳﺦﮔﻮﻳﻲ ﺳﻴﺴﺘﻢ ﺩﻭ ﻭﻳﮋﮔﻲ ﻣﻬﻢ ﺩﺍﺭﺩ :ﻃﻮﻝ ﻭ ﺗﻐﻴﻴﺮﭘﺬﻳﺮﻱ .ﺍﮔﺮ ﻃﻮﻝ ﭘﺎﺳﺦﮔﻮﻳﻲ ﺳﻴﺴﺘﻢ ﺑﺴﻴﺎﺭ ﻃﻮﻻﻧﻲ ﺑﺎﺷﺪ،
ﻧﺎﺍﻣﻴﺪﻱ ﻭ ﻓﺸﺎﺭ ﺭﻭﻱ ﻛﺎﺭﺑﺮ ،ﻧﺘﻴﺠﻪﺍﻱ ﺍﺟﺘﻨﺎﺏﻧﺎﭘﺬﻳﺮ ﺍﺳﺖ .ﻫﺮ ﭼﻨﺪ ﻛﻪ ﺍﮔﺮ ﻭﺍﺳﻂ ،ﺑﺎﻋﺚ ﺩﺳﺘﭙﺎﭼﮕﻲ ﻛﺎﺭﺑﺮ ﺷﻮﺩ ،ﺯﻣﺎﻥ
ﭘﺎﺳﺦﮔﻮﻳﻲ ﺑﺴﻴﺎﺭ ﻛﻮﺗﺎﻩ ﻧﻴﺰ ﻣﻲﺗﻮﺍﻧﺪ ﻣﻀﺮ ﺑﺎﺷﺪ .ﭘﺎﺳﺦﮔﻮﻳﻲ ﺳﺮﻳﻊ ﻣﻤﻜﻦ ﺍﺳﺖ ﻣﻮﺟﺐ ﻋﺠﻠﺔ ﻛﺎﺭﺑﺮ ﻭ ﺑﻨﺎﺑﺮﺍﻳﻦ ﺍﻧﺠﺎﻡ ﺍﺷﺘﺒﺎﻩ
ﺍﺯ ﺳﻮﻱ ﺍﻭ ﺷﻮﺩ.
ﺗﻐﻴﻴﺮﭘﺬﻳﺮﻱ ﺑﻪ ﺍﻧﺤﺮﺍﻑ ﺍﺯ ﺯﻣﺎﻥ ﻣﻴﺎﻧﮕﻴﻦ ﭘﺎﺳﺦﮔﻮﻳﻲ ﺍﺷﺎﺭﻩ ﺩﺍﺷﺘﻪ ﻭ ﺍﺯ ﺧﻴﻠﻲ ﺟﻬﺎﺕ ،ﻣﻬﻢﺗﺮﻳﻦ ﻣﺸﺨﺼﺔ ﺯﻣﺎﻥ ﭘﺎﺳﺦﮔﻮﻳﻲ
ﺑﻪ ﺷﻤﺎﺭ ﻣﻲﺭﻭﺩ .ﺗﻐﻴﻴﺮﭘﺬﻳﺮﻱ ﻛﻢ ،ﺣﺘﻲ ﺩﺭ ﺻﻮﺭﺕ ﻃﻮﻻﻧﻲ ﺑﻮﺩﻥ ﺯﻣﺎﻥ ﭘﺎﺳﺦﮔﻮﻳﻲ ،ﺑﻪ ﻛﺎﺭﺑﺮ ﺍﻣﻜﺎﻥ ﻣﻲﺩﻫﺪ ﺗﺎ ﺑﻪ ﻃﺮﻳﻖ
ﻣﻨﺎﺳﺐ ﺗﻌﺎﻣﻞ ﺭﺍ ﺑﺮﻗﺮﺍﺭ ﻛﻨﺪ .ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺜﺎﻝ ،ﭘﺎﺳﺦ ﻳﻚ ﺛﺎﻧﻴﻪﺍﻱ ﺑﻪ ﻳﻚ ﻓﺮﻣﺎﻥ ،ﺑﻪ ﭘﺎﺳﺦﮔﻮﻳﻲ ﻣﺘﻐﻴﺮ ﺑﻴﻦ ﻳﻚ ﺗﺎ ﺩﻭ ﻭ ﻧﻴﻢ
ﺛﺎﻧﻴﻪ ،ﺗﺮﺟﻴﺞ ﺩﺍﺭﺩ .ﻛﺎﺭﺑﺮ ﻫﻤﻴﺸﻪ ﺑﻼﺗﻜﻠﻴﻒ ﺍﺳﺖ ﻭ ﻧﻤﻲﺗﻮﺍﻧﺪ ﻛﻪ ﺩﺭ ﭘﺸﺖ ﺻﺤﻨﻪ ﭼﻪ ﺧﺒﺮ ﺍﺳﺖ ﻭ ﭼﻪ ﺍﺗﻔﺎﻗﻲ ﺍﻓﺘﺎﺩﻩ ﺍﺳﺖ.
ﺗﻘﺮﻳﺒﺎﹰ ﺗﻤﺎﻣﻲ ﻛﺎﺭﺑﺮﺍﻥ ﻳﻚ ﺳﻴﺴﺘﻢ ﺗﻌﺎﻣﻠﻲ ﻛﺎﻣﭙﻴﻮﺗﺮﻱ ،ﮔﻬﮕﺎﻩ ﺑﻪ ﻛﻤﻚ ﻧﻴﺎﺯ ﺩﺍﺭﻧﺪ .ﺩﻭ ﻧﻮﻉ ﺍﻣﻜﺎﻧﺎﺕ ﻛﻤﻜﻲ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ:
ﻳﻜﭙﺎﺭﭼﻪ ﻭ ﺍﻓﺰﻭﺩﻧﻲ [RUB 88 ] ،ﺗﺴﻬﻴﻼﺕ ﻛﻤﻜﻲ ﻳﻜﭙﺎﺭﭼﻪ ﺍﺯ ﺁﻏﺎﺯ ﺩﺭ ﺩﺍﺧﻞ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻃﺮﺍﺣﻲ ﻣﻲﺷﻮﺩ .ﺍﻳﻦ ﻧﻮﻉ
ﮐﻤﮏ ﺑﻪ ﮐﺎﺭﺑﺮ ﻏﺎﻟﺒﺎﹰ ﺣﺴﺎﺱ ﺑﻪ ﻣﺘﻦ ﺍﺳﺖ ﻭ ﻛﺎﺭﺑﺮ ﺭﺍ ﻗﺎﺩﺭ ﻣﻲﺳﺎﺯﺩ ﺗﺎ ﺍﺯ ﻣﻴﺎﻥ ﻣﻮﺿﻮﻋﺎﺕ ﻣﺮﺗﺒﻂ ﺑﺎ ﺍﻋﻤﺎﻝ ﺩﺭ ﺣﺎﻝ ﺍﺟﺮﺍ،
ﺍﻗﺪﺍﻡ ﺑﻪ ﺍﻧﺘﺨﺎﺏ ﻛﻨﺪ .ﻭﺍﺿﺢ ﺍﺳﺖ ﻛﻪ ﺍﻳﻦ ﺍﻣﺮ ،ﺯﻣﺎﻥ ﻻﺯﻡ ﺑﺮﺍﻱ ﺩﺭﻳﺎﻓﺖ ﻛﻤﻚ ﺗﻮﺳﻂ ﻛﺎﺭﺑﺮ ﺭﺍ ﻛﺎﻫﺶ ﺩﺍﺩﻩ ﻭ ﻛﺎﺭﺑﺮﭘﺴﻨﺪﻱ
ﻭﺍﺳﻂ ﺭﺍ ﺍﻓﺰﺍﻳﺶ ﻣﻲﺩﻫﺪ .ﺗﺴﻬﻴﻼﺕ ﻛﻤﻜﻲ ﺍﻓﺰﻭﺩﻧﻲ .ﭘﺲ ﺍﺯ ﺳﺎﺧﺖ ﺳﻴﺴﺘﻢ ﺑﻪ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﻓﺰﻭﺩﻩ ﻣﻲﺷﻮﺩ .ﻣﻤﻜﻦ ﺍﺳﺖ
ﻛﺎﺭﺑﺮ ﻣﺠﺒﻮﺭ ﺷﻮﺩ ﺑﺮﺍﻱ ﻳﺎﻓﺘﻦ ﺭﺍﻫﻨﻤﺎﻳﻲ ﺻﺤﻴﺢ ﻭ ﻣﻨﺎﺳﺐ ،ﻓﻬﺮﺳﺘﻲ ﺑﺎ ﺻﺪﻫﺎ ﻣﻮﺿﻮﻉ ﺭﺍ ﺟﺴﺘﺠﻮ ﻛﻨﺪ ﻭ ﺍﻏﻠﺐ ﺑﺎ ﺷﺮﻭﻉ
ﻧﺎﺩﺭﺳﺖ ،ﺍﻃﻼﻋﺎﺕ ﻏﻴﺮﻣﺮﺗﺒﻂ ﺭﺍ ﺩﺭﻳﺎﻓﺖ ﻧﻤﺎﻳﺪ .ﺷﻜﻲ ﻧﻴﺴﺖ ﻛﻪ ﺍﻣﻜﺎﻧﺎﺕ ﻛﻤﻜﻲ ﻳﻜﭙﺎﺭﭼﻪ ﺑﺮ ﻧﻮﻉ ﺍﻓﺰﻭﺩﻧﻲ ﺁﻥ ﺑﺮﺗﺮﻱ
ﺩﺍﺭﺩ.
ﻫﻨﮕﺎﻡ ﺑﺮﻭﺯ ﺧﻄﺎ ،ﭘﻴﻐﺎﻡﻫﺎﻱ ﺧﻄﺎ ﻭ ﻫﺸﺪﺍﺭﻫﺎ " .ﺍﺧﺒﺎﺭ ﺑﺪﻱ" ﺍﺳﺖ ﻛﻪ ﺑﻪ ﻛﺎﺭﺑﺮﺍﻥ ﺳﻴﺴﺘﻢﻫﺎﻱ ﺗﻌﺎﻣﻠﻲ ﺍﺭﺍﻳﻪ ﻣﻲﮔﺮﺩﺩ .ﺩﺭ
ﺑﺪﺗﺮﻳﻦ ﺣﺎﻟﺖ ،ﭘﻴﻐﺎﻡﻫﺎﻱ ﺧﻄﺎ ﻭ ﺍﺧﻄﺎﺭﻫﺎ ،ﺍﻃﻼﻋﺎﺕ ﺑﻲﻓﺎﻳﺪﻩ ﻳﺎ ﮔﻤﺮﺍﻩ ﻛﻨﻨﺪﻩ ﺭﺍ ﻣﻨﺘﻘﻞ ﻛﺮﺩﻩ ﻭ ﺗﻨﻬﺎ ﺑﺎﻋﺚ ﺗﺸﺪﻳﺪ ﻧﺎﻛﺎﻣﻲ
ﻛﺎﺭﺑﺮ ﻣﻲﺷﻮﻧﺪ .ﺗﻌﺪﺍﺩ ﻛﺎﺭﺑﺮﺍﻥ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻛﻪ ﺑﺎ ﺧﻄﺎﻳﻲ ﺍﺯ ﻧﻮﻉ ﺯﻳﺮ ﻣﻮﺍﺟﻪ ﻧﺸﺪﻩ ﺑﺎﺷﻨﺪ ،ﺑﺴﻴﺎﺭ ﺍﻧﺪﻙ ﺍﺳﺖ.
ﻓﺮﻣﺎﻥ ﺗﺎﻳﭗ ﺷﺪﻩ ﺯﻣﺎﻧﻲ ،ﺭﺍﻳﺞﺗﺮﻳﻦ ﺷﻴﻮﺓ ﻣﺤﺎﻭﺭﻩ ﺑﻴﻦ ﻛﺎﺭﺑﺮ ﻭ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺳﻴﺴﺘﻢ ﺑﻮﺩ ﻭ ﺩﺭ ﻫﺮ ﻧﻮﻉ ﺑﺮﻧﺎﻣﺔ ﻛﺎﺭﺑﺮﺩﻱ ﺑﻪ ﻃﻮﺭ
ﻣﻌﻤﻮﻝ ﺑﻪ ﻛﺎﺭ ﻣﻲﺭﻓﺖ .ﺍﻣﺮﻭﺯﻩ ،ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺭﺍﺑﻂﻫﺎﻱ ﭘﻨﺠﺮﻩﺍﻱ ﻭ ﺍﺷﺎﺭﻩ ﻭ ﺍﻧﺘﺨﺎﺏ ،ﻛﺎﺭﺑﺮﺩ ﻓﺮﺍﻣﻴﻦ ﺗﺎﻳﭗ ﺷﺪﻩ ﺭﺍ ﻛﺎﻫﺶ
ﺩﺍﺩﻩ ،ﺍﻣﺎ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﻛﺎﺭﺑﺮﺍﻥ ﻣﺎﻫﺮ ﻫﻢﭼﻨﺎﻥ ﺷﻴﻮﺓ ﺍﺭﺗﺒﺎﻃﻲ ﻣﺠﻬﺰ ﺑﻪ ﻓﺮﻣﺎﻥ ﺭﺍ ﺗﺮﺟﻴﺢ ﻣﻲﺩﻫﻨﺪ .ﺑﻪ ﻫﻨﮕﺎﻡ ﺍﻧﺘﺨﺎﺏ ﻓﺮﺍﻣﻴﻦ
ﺗﺎﻳﭗ ﺷﺪﻩ ﺑﻪ ﻋﻨﻮﺍﻥ ﻧﻮﻋﻲ ﺷﻴﻮﺓ ﻣﺤﺎﻭﺭﻩ ،ﺑﺮﺧﻲ ﻣﺴﺎﻳﻞ ﻃﺮﺍﺣﻲ ﻣﻮﺭﺩ ﺗﻮﺟﻪ ﻗﺮﺍﺭ ﻣﻲﮔﻴﺮﻧﺪ:
¨ ﺁﻳﺎ ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻧﺘﺨﺎﺏﻫﺎﻱ ﻣﻨﻮ ﻳﻚ ﻓﺮﻣﺎﻥ ﻣﺮﺗﺒﻂ ﺧﻮﺍﻫﺪ ﺩﺍﺷﺖ؟
¨ ﻓﺮﺍﻣﻴﻦ ﺑﻪ ﭼﻪ ﺷﻜﻠﻲ ﺧﻮﺍﻫﻨﺪ ﺑﻮﺩ؟ ﺍﻣﻜﺎﻧﺎﺕ ﻣﻮﺟﻮﺩ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ :ﺗﻮﺍﻟﻲ ﻛﻨﺘﺮﻝ )ﻣﺜﻞ (Alt + P؛ ﻛﻠﻴﺪﻫﺎﻱ ﺗـﺎﺑﻌﻲ،
ﻭﺍﮊﺓ ﺗﺎﻳﭗ ﺷﺪﻩ.
¨ ﻳﺎﺩﮔﻴﺮﻱ ﻭ ﺑﻪ ﺧﺎﻃﺮ ﺳﭙﺮﺩﻥ ﻓﺮﺍﻣﻴﻦ ﺗﺎ ﭼﻪ ﺣﺪ ﺩﺷﻮﺍﺭ ﺍﺳﺖ؟ ﺩﺭ ﺻﻮﺭﺕ ﻓﺮﺍﻣﻮﺷـﻲ ﻳـﻚ ﻓﺮﻣـﺎﻥ ،ﭼـﻪ ﻣـﻲﺗـﻮﺍﻥ
ﻛﺮﺩ؟
¨ ﺁﻳﺎ ﻣﻲﺗﻮﺍﻥ ﻓﺮﺍﻣﻴﻦ ﺭﺍ ﺗﻮﺳﻂ ﻛﺎﺭﺑﺮ ﺳﻔﺎﺭﺷﻲ ﻳﺎ ﺍﺧﺘﺼﺎﺭﻱ ﻛﺮﺩ؟
ﺗﺤﻠﻴﻞ ﻣﺤﻴﻂ ﮐﺎﺭﺑﺮ ﺑﺮ ﻣﺤﻴﻂ ﮐﺎﺭﻓﻴﺰﻳﮑﻲ ﺗﮑﻴﻪ ﺩﺍﺭﺩـ ﺍﺯ ﺟﻤﻠﻪ ﭘﺮﺳﺸﻬﺎﻳﻲ ﮐﻪ ﺑﺎﻳﺪ ﻣﻄﺮﺡ ﺷﻮﻧﺪ ،ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ:
ﻭﺍﺳﻂ ﺍﺯ ﻧﻈﺮ ﻓﻴﺰﻳﮑﻲ ﺩﺭ ﮐﺠﺎ ﻗﺮﺍﺭ ﺩﺍﺩﻩ ﺧﻮﺍﻫﺪ ﺷﺪ؟ §
ﺁﻳﺎ ﮐﺎﺭﺑﺮ ﺑﻪ ﺣﺎﻟﺖ ﻧﺸﺴﺘﻪ ﮐﺎﺭ ﻣﻲ ﮐﻨﺪ ﻳﺎ ﺍﻳﺴﺘﺎﺩﻩ،ﻳﺎ ﮐﺎﺭﻫﺎﻱ ﺩﻳﮕﺮﻱ ﺍﻧﺠﺎﻡ ﻣﻲ ﺩﻫﺪ ﮐﻪ ﺑﺎ ﻭﺍﺳﻂ ﺑﻲ ﺍﺭﺗﺒﺎﻁ §
ﻫﺴﺘﻨﺪ؟
ﺁﻳﺎ ﺳﺨﺖ ﺍﻓﺰﺍﺭ ﻭﺍﺳﻂ ﻣﺤﺪﻭﺩﻳﺘﻬﺎﻱ ﺟﺎ،ﻧﻮﺭ ﻭ ﺳﺮﻭ ﺻﺪﺍ ﺭﺍ ﺩﺭ ﺑﺮ ﻣﻲ ﮔﻴﺮﺩ؟ §
ﺑﻪ ﻃﻮﺭ ﮐﻠﻲ ﻫﺮ ﭘﻴﺎﻡ ﺧﻄﺎ ﻳﺎ ﻫﺸﺪﺍﺭ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﺗﻮﺳﻂ ﻳﮏ ﺳﻴﺴﺘﻢ ﻣﺤﺎﻭﺭﻩ ﺍﻱ ﺑﺎﻳﺪ ﺩﺍﺭﺍﻱ ﻭﻳﮋﮔﻴﻬﺎﻱ ﺯﻳﺮ ﺑﺎﺷﺪ:
ﭘﻴﺎﻡ ﺑﺎﻳﺪ ﻣﺸﮑﻞ ﺭﺍ ﺑﻪ ﺯﺑﺎﻧﻲ ﺷﺮﺡ ﺩﻫﺪ ﮐﻪ ﮐﺎﺭ ﺑﺮ ﻗﺎﺩﺭﺑﻪ ﺩﺭﮎ ﺁﻥ ﺑﺎﺷﺪ §
ﭘﻴﺎﻡ ﺑﺎﻳﺪ ﺣﺎﻭﻱ ﻳﮏ ﺗﻮﺻﻴﻪ ﺳﺎﺯﻧﺪﻩ ﺑﺮﺍﻱ ﺭﻫﺎﻳﻲ ﺍﺯ ﻭﺿﻌﻴﺖ ﺧﻄﺎ ﺑﺎﺷﺪ §
ﭘﻴﺎﻡ ﺑﺎﻳﺪ ﻫﺮ ﮔﻮﻧﻪ ﺗﺒﻌﺎﺕ ﻣﻨﻔﻲ ﺧﻄﺎ )ﻣﺜﻼ ﻓﺎﻳﻠﻬﺎﻱ ﺩﺍﺩﻩ ﺍﻱ ﻣﺨﺪﻭﺵ ﺷﺪﻩ(ﺭﺍﺧﺎﻃﺮ ﻧﺸﺎﻥ ﮐﻨﺪ ﺗﺎ ﮐﺎﺭﺑﺮ ﺑﺘﻮﺍﻧﺪ §
ﺁﻧﻬﺎﺭﺍﭼﮏ ﮐﻨﺪ
ﭘﻴﺎﻡ ﺑﺎﻳﺪ ﺑﺎ ﻳﮏ ﻧﺸﺎﻧﻪ ﺳﻤﻌﻲ ﻳﺎ ﺑﺼﺮﻱ ﻫﻤﺮﺍﻩ ﺑﺎﺷﺪ §
ﭘﻴﺎﻡ ﺑﺎﻳﺪ ﻗﻀﺎﻭﺕ ﮔﻮﻧﻪ ﺑﺎﺷﺪ §
ﺍﺭﺯﻳﺎﺑﻲ ﻃﺮﺍﺣﻲ
ﭘﺲ ﺍﺯ ﺍﻳﺠﺎﺩ ﺍﻟﮕﻮﻱ ﻋﻤﻠﻲ ﻭﺍﺳﻂ ﻛﺎﺭﺑﺮ ،ﺍﻳﻦ ﻣﺪﻝ ﺑﺎﻳﺪ ﻣﻮﺭﺩ ﺍﺭﺯﻳﺎﺑﻲ ﻗﺮﺍﺭ ﮔﻴﺮﺩ ﺗﺎ ﻣﻌﻠﻮﻡ ﺷﻮﺩ ﻛﻪ ﺁﻳﺎ ﻧﻴﺎﺯﻫﺎﻱ ﻛﺎﺭﺑﺮ ﺭﺍ
ﺑﺮﻃﺮﻑ ﻣﻲﻛﻨﺪ ﻳﺎ ﺧﻴﺮ؟ ﺍﺭﺯﻳﺎﺑﻲ ﻣﻲﺗﻮﺍﻧﺪ ﺩﺭ ﻳﻚ ﻃﻴﻒ ﺭﺳﻤﻲ ﺻﻮﺭﺕ ﮔﻴﺮﺩ ﻛﻪ ﮔﺴﺘﺮﺓ ﺁﻥ ﺑﺎ ﺍﻧﺠﺎﻡ ﺁﺯﻣﻮﻧﻲ ﻏﻴﺮ ﺭﺳﻤﻲ ﻛﻪ
ﺿﻤﻦ ﺁﻥ ﻛﺎﺭﺑﺮ ﺑﺎﺯﺗﺎﺑﻲ ﺑﺪﻭﻥ ﻓﮑﺮ ﻗﺒﻠﯽ ﺩﺍﺭﺩ ﺷﺮﻭﻉ ﺷﺪﻩ ﻭ ﺑﻪ ﻣﻄﺎﻟﻌﺔ ﺭﺳﻤﻲ ﺧﺘﻢ ﻣﻲﺷﻮﺩ ﻛﻪ ﺍﺯ ﺭﻭﺵﻫﺎﻱ ﺁﻣﺎﺭﻱ ﺑﺮﺍﻱ
ﺍﺭﺯﻳﺎﺑﻲ ﭘﺮﺳﺶﻧﺎﻣﻪﻫﺎﻱ ﺗﻜﻤﻴﻞ ﺷﺪﻩ ﺗﻮﺳﻂ ﻛﺎﺭﺑﺮﺍﻥ ﻧﻬﺎﻳﻲ ،ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﻛﻨﺪ .ﭼﺮﺧﺔ ﺍﺭﺯﻳﺎﺑﻲ ﻭﺍﺳﻂ ﻛﺎﺭﺑﺮ ﻣﺸﻠﺒﻪ ﺷﻜﻞ ۲
ﻣﯽ ﺑﺎﺷﺪ.
ﺑﺮﺧﻲ ﻣﻌﻴﺎﺭﻫﺎﻱ ﺍﺭﺯﻳﺎﺑﻲ ] [MOR81ﺭﺍ ﻫﻨﮕﺎﻡ ﺑﺮﺭﺳﻲﻫﺎﻱ ﺍﻭﻟﻴﻪ ﻃﺮﺍﺣﻲ ،ﻣﻲﺗﻮﺍﻥ ﺍﻋﻤﺎﻝ ﻛﺮﺩ:
-۱ﻃﻮﻝ ﻭ ﭘﻴﭽﻴﺪﮔﻲ ﻣﺸﺨﺼﺎﺕ ﻣﮑﺘﻮﺏ ﺳﻴﺴﺘﻢ ﻭ ﻭﺍﺳﻂ ﺁﻥ ،ﺑﻴﺎﻧﮕﺮ ﻣﻴﺰﺍﻥ ﻳﺎﺩﮔﻴﺮﻱ ﻻﺯﻡ ﺗﻮﺳﻂ ﻛﺎﺭﺑﺮﺍﻥ ﺳﻴﺴﺘﻢ
ﻣﻲﺑﺎﺷﺪ.
-۲ﺗﻌﺪﺍﺩ ﻭﻇﺎﻳﻒ ﺗﻌﻴﻴﻦ ﺷﺪﺓ ﻛﺎﺭﺑﺮ ﻭ ﻣﻴﺎﻧﮕﻴﻦ ﺍﻋﻤﺎﻝ ﺩﺭ ﻫﺮ ﻛﺎﺭ ،ﻧﺸﺎﻥ ﺩﻫﻨﺪﺓ ﺯﻣﺎﻥ ﻣﺤﺎﻭﺭﻩ ﻭ ﻛﺎﺭﺁﻳﻲ ﻛﻠﻲ
ﺳﻴﺴﺘﻢ ﺍﺳﺖ.
-۳ﺗﻌﺪﺍﺩ ﺍﻋﻤﺎﻝ ،ﻭﻇﺎﻳﻒ ﻭ ﻭﺿﻌﻴﺖﻫﺎﻱ ﺳﻴﺴﺘﻢ ﻛﻪ ﺩﺭ ﻣﺪﻝ ﻃﺮﺍﺣﻲ ﺗﻌﻴﻴﻦ ﺷﺪﻩ ،ﺑﻪ ﺑﺎﺭ ﺣﺎﻓﻈﺔ ﻛﺎﺭﺑﺮﺍﻥ ﺳﻴﺴﺘﻢ
ﺩﻻﻟﺖ ﺩﺍﺭﺩ.
-۴ﺭﻭﺵ ﺍﺭﺗﺒﺎﻁ ﻭﺍﺳﻂ ،ﺍﻣﻜﺎﻧﺎﺕ ﻛﻤﻜﻲ ﻭ ﺧﻄﺎﮔﺮﺩﺍﻧﻲ ،ﺩﺭ ﻛﻞ ﺑﻴﺎﻧﮕﺮ ﭘﻴﭽﻴﺪﮔﻲ ﻭﺍﺳﻂ ﻭ ﻣﻴﺰﺍﻥ ﭘﺬﻳﺮﺵ ﺍﺯ ﺳﻮﻱ
ﻛﺎﺭﺑﺮ ﻣﻲﺑﺎﺷﺪ.
ﭘﺲ ﺍﺯ ﺳﺎﺧﺘﻪ ﺷﺪﻥ ﺍﻭﻟﻴﻦ ﻣﺪﻝ ،ﻃﺮﺍﺣﻲ ﻣﻲﺗﻮﺍﻧﺪ ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﺩﺍﺩﻩﻫﺎﻱ ﻛﻴﻔﻲ ﻭ ﻛﻤﻲ ﺭﺍ ﻛﻪ ﺑﻪ ﺍﺭﺯﻳﺎﺑﻲ ﻭﺍﺳﻂ ﻛﻤﻚ
ﺧﻮﺍﻫﻨﺪ ﻛﺮﺩ ،ﺭﺍ ﺟﻤﻊﺁﻭﺭﻱ ﻣﻲﻛﻨﺪ .ﻭﻳﮋﮔﯽ ﻫﺎﯼ ﭘﺮﺳﺸﻨﺎﻣﻪ ﻫﺎﻳﯽ ﮐﻪ ﻣﯽ ﺗﻮﺍﻥ ﺑﻴﻦ ﮐﺎﺭﺑﺮﺍﻥ ﺗﻮﺯﻳﻊ ﮐﺮﺩ ﻣﯽ ﺗﻮﺍﻧﺪ ﺷﺎﻣﻞ
ﻣﻮﺍﺭﺩ ﺯﻳﺮ ﺑﺎﺷﺪ:
.۱ﭘﺎﺳﺦ ﻫﺎﯼ ﺳﺎﺩﻩ ﺁﺭﯼ /ﺧﻴﺮ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
.۲ﭘﺎﺳﺦ ﻋﺪﺩﯼ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
.۳ﭘﺎﺳﺦ ﻣﻘﻴﺎﺳﯽ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
.۴ﭘﺎﺳﺦ ﺩﺭﺻﺪﯼ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
ﺳﻮﺍﻻﺕ ﻣﯽ ﺗﻮﺍﻧﻨﺪ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﺑﺎﺷﻨﺪ:
.۱ﺁﻳﺎ ﻧﻤﺎﺩﻫﺎ) (ICONSﺧﻮﺩ ﺗﻮﺻﻴﻒ ﻫﺴﺘﻨﺪ؟ ﺍﮔﺮ ﻧﻴﺴﺘﻨﺪ ﮐﺪﺍﻡ ﻧﻤﺎﺩ ﻧﻴﺎﺯ ﺑﻪ ﺗﻮﺻﻴﻒ ﺩﺍﺭﺩ ؟
.۲ﺁﻳﺎ ﻋﻤﻠﻴﺎﺕ ﺭﺍ ﺑﻪ ﺁﺳﺎﻧﯽ ﻣﯽ ﺗﻮﺍﻥ ﺑﻪ ﺧﺎﻃﺮ ﺳﭙﺮﺩ ﻭ ﺍﺟﺮﺍ ﮐﺮﺩ؟
.۳ﺗﺎ ﮐﻨﻮﻥ ﺍﺯ ﭼﻨﺪ ﻋﻤﻞ ﻣﺘﻔﺎﻭﺕ ﺍﺳﺘﻔﺎﺩﻩ ﮐﺮﺩﻩ ﺍﻳﺪ؟
.۴ﺳﻬﻮﻟﺖ ﻓﺮﺍﮔﻴﺮﯼ ﻋﻤﻠﻴﺎﺕ ﺍﺻﻠﯽ ﺳیﺴﺘﻢ ﺗﺎ ﭼﻪ ﺣﺪﯼ ﺍﺳﺖ؟ ) ﺑﻴﻦ ۱ﺗﺎ (۵
.۵ﺩﺭ ﻣﻘﺎﻳﺴﻪ ﺑﺎ ﻭﺍﺳﻂ ﻫﺎﯼ ﺩﻳﮕﺮﯼ ﮐﻪ ﺍﺳﺘﻔﺎﺩﻩ ﮐﺮﺩﻩ ﺍﻳﺪ ،ﺑﻪ ﺍﻳﻦ ﻭﺍﺳﻂ ﭼﻪ ﺍﻣﺘیﺎﺯﯼ ﻣﯽ ﺩﻫﻴﺪ؟
ﭘﺲ ﺍﺯ ﺟﻤﻊ ﺁﻭﺭﯼ ﺍﻃﻼﻋﺎﺕ ﻣﺮﺑﻮﻃﻪ ﺑﺎﻳﺪ ﻧﺴﺒﺖ ﺑﻪ ﺗﺤﻠﻴﻞ ﻭ ﺟﻤﻊ ﺑﻨﺪﯼ ﺁﻥ ﺍﻗﺪﺍﻡ ﻧﻤﻮﺩ.
ﺳﻪ ﻗﺎﻋﺪﻩ ﻃﻼﻳﻲ ﻣﻨﺪﻝ) (mandelﺩﺭ ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂﻫﺎ ﺷﺎﻣﻞ -۱ﺳﭙﺮﺩﻥ ﻛﻨﺘﺮﻝ ﺑﻪ ﻛﺎﺭﺑﺮ -۲ﻛﺎﺳﺘﻦ ﺍﺯ ﺑﺎﺭ .۱
ﺣﺎﻓﻈﻪ ﻛﺎﺭﺑﺮ ﻭ ﺳﺎﺯﮔﺎﺭ ﺳﺎﺧﺘﻦ ﻭﺍﺳﻂﻫﺎ ﺍﺳﺖ.
ﺏ( ﻏﻠﻂ ﺍﻟﻒ( ﺩﺭﺳﺖ
ﻭﺍﺳﻂﻫﺎﻱ ﺧﺎﺭﺟﻲ ﺩﺭ ﺗﻌﺎﻣﻞ ﺑﺎ ﻣﻮﺟﻮﺩﻳﺖﻫﺎﻱ ﺑﻴﺮﻭﻧﻲ ﺳﻴﺴﺘﻢ ﺩﺭ ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﺑﺎ ﺷﻨﺎﺳﺎﻳﻲ ﺩﺍﺩﻩ ﻭ ﻛﻨﺘﺮﻝ .۲
ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﻃﺮﺍﺣﻲ ﻣﻲﮔﺮﺩﺩ.
ﺏ( ﻏﻠﻂ ﺍﻟﻒ( ﺩﺭﺳﺖ
ﺩﺭ ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂﻫﺎﻱ ﻛﺎﺭﺑﺮ ﺑﺎﻳﺪ ﻧﺤﻮﻩ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﻭﺍﺳﻂ ،ﻣﺤﻴﻂ)ﻓﻨﺂﻭﺭﻱ( ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻭ ﻋﻮﺍﻣﻞ ﺣﺴﺎﺱ .۳
ﻛﺎﺭﺑﺮ ﺭﺍ ﺩﺭﻧﻈﺮ ﮔﺮﻓﺖ.
ﺏ( ﻏﻠﻂ ﺍﻟﻒ( ﺩﺭﺳﺖ
ﻛﺎﺭﺑﺮ ﺩﺭ ﺯﻣﺎﻥ ﻛﺎﺭ ﺑﺎ ﺳﻴﺴﺘﻢ ،ﺯﻣﺎﻥ ﭘﺎﺳﺨﮕﻮﻳﻲ ﺳﻴﺴﺘﻢ ﺭﺍ ﻣﻮﺭﺩ ﺍﺭﺯﻳﺎﺑﻲ ﻗﺮﺍﺭ ﻣﻲﺩﻫﺪ .ﻣﻌﻴﺎﺭﻫﺎﻱ ﻗﺎﺑﻞ .۴
ﺍﻧﺪﺍﺯﻩﮔﻴﺮﻱ ﺑﺮﺍﻱ ﺍﻳﻦ ﻛﺎﺭ ﭼﻴﺴﺖ؟
ﺏ( ﻃﻮﻝ ﺯﻣﺎﻥ ﭘﺎﺳﺦ ﺝ( ﻃﻮﻝ ﺯﻣﺎﻥ ﭘﺎﺳﺦ ﻭ ﺗﻐﻴﻴﺮﭘﺬﻳﺮﻱ ﺩ( ﺍﻧﺤﺮﺍﻓﺎﺕ ﺯﻣﺎﻥ ﭘﺎﺳﺦ ﺍﻟﻒ( ﻣﻴﺎﻧﮕﻴﻦ ﻃﻮﻝ ﺯﻣﺎﻥ ﭘﺎﺳﺦ
ﻭﺍﺳﻂﻫﺎﻱ ﻛﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻓﺮﻫﻨﮓ ﻭ ﺩﺍﻧﺶ ﻋﻤﻮﻣﻲ ﻛﺎﺭﺑﺮﺍﻥ ﺗﻬﻴﻪ ﮔﺮﺩﺩ. .۵
ﺏ( ﻏﻠﻂ ﺍﻟﻒ( ﺩﺭﺳﺖ
ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﺍﺻﻮﻝ ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ﺯﻳﺮ ﺍﺟﺎﺯﻩ ﻧﻤﻲﺩﻫﺪ ﻛﻪ ﻛﺎﺭﺑﺮ ﺩﺭ ﺗﻌﺎﻣﻞ ﻛﻨﺘﺮﻟﻲ ﺑﺎ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻗﺮﺍﺭ ﺩﺍﺷﺘﻪ .۶
ﺑﺎﺷﺪ.
ﺍﻟﻒ( ﺗﻌﺎﻣﻠﻲ ﻛﻪ ﺑﺘﻮﺍﻧﺪ ﺍﺟﺮﺍﻱ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﻗﻄﻊ ﻧﻤﺎﻳﺪ.
ﺏ( ﺗﻌﺎﻣﻠﻲ ﻛﻪ ﺑﺘﻮﺍﻧﺪ ﻋﻤﻠﻴﺎﺕ ﺭﺍ ﺑﺎﺯﮔﺮﺩﺍﻧﻲ ﻧﻤﺎﻳﺪ.
ﺝ( ﭘﻨﻬﺎﻥ ﻛﺮﺩﻥ ﺍﻣﻮﺭ ﻓﻨﻲ ﺩﺍﺧﻠﻲ ﺍﺯ ﺩﻳﺪ ﻛﺎﺭﺑﺮ
ﺩ( ﻓﻘﻂ ﺷﺎﻣﻞ ﻳﻚ ﺭﻭﺵ ﺗﻌﺮﻳﻒ ﺩﺷﻮﺍﺭ ﻭ ﺳﺨﺖ ﺑﺮﺍﻱ ﺗﻜﻤﻴﻞ ﻳﻚ ﻭﻇﻴﻔﻪ
ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﺍﺻﻮﻝ ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ﺯﻳﺮ ،ﺑﺎﺭ ﺣﺎﻓﻈﻪ ﻛﺎﺭﺑﺮ ﺭﺍ ﻛﺎﻫﺶ ﻣﻲﺩﻫﺪ. .۷
ﺍﻟﻒ( ﺗﻌﺮﻳﻒ Shortcutﻫﺎﻱ ﻣﺴﺘﻘﻴﻢ
ﺏ( ﻓﺎﺵ ﻛﺮﺩﻥ ﺍﻃﻼﻋﺎﺕ ﺑﻪ ﺷﻴﻮﻩﺍﻱ ﻓﺰﺍﻳﻨﺪﻩ
ﺝ( ﺍﺳﺘﻘﺮﺍﺭ ﭘﻴﺶﻓﺮﺽﻫﺎﻱ ﺑﺎ ﻣﻌﻨﻲ
ﺩ( ﺗﻤﺎﻡ ﻣﻮﺍﺭﺩ ﻓﻮﻕ
ﺩﻟﻴﻞ ﻛﺎﺳﺘﻦ ﺍﺯ ﺑﺎﺭ ﺣﺎﻓﻈﺔ ﻛﺎﺭﺑﺮ ﺁﻥ ﺍﺳﺖ ﻛﻪ ﻭﻱ ﺑﺘﻮﺍﻧﺪ ﺩﺭ ﺗﻌﺎﻣﻞ ﺑﺎ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺳﺮﻳﻌﺘﺮ ﻛﺎﺭ ﺭﺍ ﺗﻤﺎﻡ ﻛﻨﺪ. .۸
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
ﺳﺎﺯﮔﺎﺭﻱ ﻭﺍﺳﻂﻫﺎ ﻣﻨﺠﺮ ﺑﻪ .۹
ﺍﻟﻒ( ﻣﻜﺎﻧﻴﺰﻡﻫﺎﻱ ﻭﺭﻭﺩﻱ ﺩﺭ ﺗﻤﺎﻡ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻛﺎﺭﺑﺮﺩﻱ ﻳﻜﺴﺎﻥ ﺑﺎﻗﻲ ﻣﻲﻣﺎﻧﺪ.
ﺏ( ﻫﺮ ﺑﺮﻧﺎﻣﺔ ﻛﺎﺭﺑﺮﺩﻱ ﺑﺎﻳﺪ ﻧﮕﺎﻩ ﻭ ﺍﺣﺴﺎﺱ ﻣﻨﺤﺼﺮ ﺑﻪ ﺧﻮﺩ ﺭﺍ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ.
ﺝ( ﺭﻭﺵﻫﺎﻱ ﺭﺍﻫﺒﺮﺩﻱ ﺣﺴﺎﺱ ﺑﻪ ﻣﺤﺘﻮﺍ ﻫﺴﺘﻨﺪ.
ﺩ( ﻣﻮﺍﺭﺩ ﺍﻟﻒ ﻭ ﺏ
.۱۰ﺍﮔﺮ ﻣﺪﻟﻬﺎﻱ ﺗﻌﺎﻣﻠﻲ ﮔﺬﺷﺘﻪ ﺑﺎﺭﻱ ﺗﻮﻗﻌﺎﺕ ﻳﻚ ﻛﺎﺭﺑﺮ ﺧﺎﺹ ﺳﺎﺧﺘﻪ ﺷﺪﻩ ﺑﺎﺷﻨﺪ ﺑﻪ ﻃﻮﺭ ﻛﻠﻲ ﺗﻐﻴﻴﺮ ﻣﺪﻝﻫﺎ
ﺍﻳﺪﺓ ﺧﻮﺑﻲ ﻧﻴﺴﺖ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﻣﺪﻝﻫﺎﻱ ﺯﻳﺮ ﺳﻮﺩﻣﻨﺪﻱ ﻛﺎﺭﺑﺮ ﻧﻬﺎﻳﻲ ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻣﭙﻴﻮﺗﺮﻱ ﺭﺍ ﺷﺮﺡ ﻣﻲﺩﻫﺪ؟ .۱۱
ﺩ( ﺗﺼﻮﻳﺮ ﺳﻴﺴﺘﻤﻲ ﺝ( ﻣﺪﻝ ﻣﺮﺑﻮﻁ ﺑﻪ ﻛﺎﺭﺑﺮ)ﺑﺮﺩﺍﺷﺖ ﺳﻴﺴﺘﻤﻲ ﺏ( ﻣﺪﻝ ﻛﺎﺭﺑﺮﻱ ﺍﻟﻒ( ﻣﺪﻝ ﻃﺮﺍﺣﻲ
.۱۲ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﻣﺪﻝﻫﺎﻱ ﺯﻳﺮ ﺗﺼﻮﻳﺮﻱ ﺍﺯ ﻳﻚ ﺳﻴﺴﺘﻢ ﺭﺍ ﺍﺭﺍﻳﻪ ﻣﻲﺩﻫﺪ ﻛﻪ ﻛﺎﺭﺑﺮ ﻧﻬﺎﻳﻲ ﺩﺭ ﺫﻫﻦ ﺧﻮﺩ ﺍﻳﺠﺎﺩ
ﻛﺮﺩﻩ ﺍﺳﺖ؟
ﺩ( ﺗﺼﻮﻳﺮ ﺳﻴﺴﺘﻤﻲ ﺝ( ﺑﺮﺩﺍﺷﺖ ﺳﻴﺴﺘﻤﻲ ﺏ( ﻣﺪﻝ ﻛﺎﺭﺑﺮﻱ ﺍﻟﻒ( ﻣﺪﻝ ﻃﺮﺍﺣﻲ
.۱۳ﻛﺪﺍﻡ ﻳﻚ ﺍﺯﻣﺪﻝﻫﺎﻱ ﺯﻳﺮ ﻧﮕﺎﻩ ﻭ ﻧﮕﺮﺷﻲ ﺑﻪ ﻭﺍﺳﻂ ﻛﺎﺭﺑﺮ ﺑﺎ ﭘﺸﺘﻴﺒﺎﻧﻲ ﺗﻤﺎﻡ ﺍﻃﻼﻋﺎﺕ ﺭﺍ ﺩﺍﺭﺩ؟
ﺩ( ﺗﺼﻮﻳﺮ ﺳﻴﺴﺘﻤﻲ ﺝ( ﺑﺮﺩﺍﺷﺖ ﺳﻴﺴﺘﻤﻲ ﺏ( ﻣﺪﻝ ﻛﺎﺭﺑﺮ ﺍﻟﻒ( ﻣﺪﻝ ﻛﺎﺭﺑﺮﻱ
.۱۴ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﻓﻌﺎﻟﻴﺖﻫﺎﻱ ﭼﺎﺭﭼﻮﺑﻪﺍﻱ)ﭘﺸﺘﻴﺒﺎﻧﻲ( ﺯﻳﺮ ﺑﻪ ﻃﻮﺭ ﻃﺒﻴﻌﻲ ﺩﺭ ﻓﺮﺁﻳﻨﺪ ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ
ﻗﺮﺍﺭ ﻧﻤﻲﮔﻴﺮﻧﺪ:
ﺩ( ﺗﺤﻠﻴﻞ ﻛﺎﺭﺑﺮ ﻭﻇﺎﻳﻒ ﺝ( ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ﻭﺍﺳﻂ ﺏ( ﺳﺎﺧﺖ ﻭﺍﺳﻂ ﺍﻟﻒ( ﺑﺮﺁﻭﺭﺩ ﻫﺰﻳﻨﻪ
.۱۵ﻛﺪﺍﻡ ﻧﮕﺮﺵ ﺑﺮ ﺗﺤﻠﻴﻞ ﻭﻇﺎﻳﻒ ﻛﺎﺭﺑﺮ ﺩﺭ ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ﻛﺎﺭﺑﺮ ﻣﻔﻴﺪ ﺍﺳﺖ؟
ﺍﻟﻒ( ﺩﺍﺷﺘﻦ ﻛﺎﺭﺑﺮﺍﻧﻲ ﻛﻪ ﺗﺮﺟﻴﺤﺎﺕ ﺧﻮﺩ ﺭﺍ ﺗﻮﺳﻂ ﭘﺮﺳﺸﻨﺎﻣﻪ ﺑﻴﺎﻥ ﻛﺮﺩﻩﺍﻧﺪ.
ﺏ( ﺗﻜﻴﻪ ﺑﺮ ﻗﻀﺎﻭﺕ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﺎﻥ ﺑﺎ ﺗﺠﺮﺑﻪ
ﺝ( ﻣﻄﺎﻟﻌﻪ ﺳﻴﺴﺘﻢﻫﺎﻱ ﻣﻜﺎﻧﻴﺰﻩ ﺷﺪﻩ ﻣﺮﺗﺒﻂ
ﺩ( ﻣﺸﺎﻫﺪﺓ ﻧﺤﻮﺓ ﺍﻧﺠﺎﻡ ﻛﺎﺭ ﺩﺳﺘﻲ ﻛﺎﺭﺑﺮﺍﻥ
ﻃﺮﺍﺣﻲ ﺩﺭ ﺳﻄﺢ ﻣﺆﻟﻔﻪ ﻛﻪ » ﻃﺮﺍﺣﻲ ﺭﻭﻳﻪﺍﻱ« ﻧﻴﺰ ﻧﺎﻡ ﺩﺍﺭﺩ ،ﭘﺲ ﺍﺯ ﺗﻌﻴـﻴﻦ ﻃﺮﺍﺣـﻲ ﺩﺍﺩﻩﻫـﺎ ،ﻣﻌﻤـﺎﺭﻱ ﻭ ﻭﺍﺳـﻂ ﺍﻧﺠـﺎﻡ
ﻣﻲﮔﻴﺮﺩ ﻭ ﻫﺪﻑ ﺗﺒﺪﻳﻞ ﻣﺪﻝ ﻃﺮﺍﺣﻲ ﺑﻪ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻋﻤﻠﻴﺎﺗﻲ ﻣﻲﺑﺎﺷﺪ .ﺍﻣﺎ ﺳﻄﺢ ﺍﻧﺘﺰﺍﻋﻲ ﻣـﺪﻝ ﻃﺮﺍﺣـﻲ ﻣﻮﺟـﻮﺩ ،ﻧﺴـﺒﺘﺎﹰ ﺯﻳـﺎﺩ
ﺑﻮﺩﻩ ﻭ ﻣﻴﺰﺍﻥ ﺍﻧﺘﺰﺍﻉ ﺑﺮﻧﺎﻣﺔ ﻋﻤﻠﻴﺎﺗﻲ ﻛﻢ ﺍﺳﺖ .ﺗﺒﺪﻳﻞ ﻭ ﺑﺮﮔﺮﺩﺍﻥ ،ﺳﺨﺖ ﻭ ﺩﺷﻮﺍﺭ ﺑﻮﺩﻩ ﻭ ﻣﻮﺟﺐ ﺍﻳﺠـﺎﺩ ﺧﻄﺎﻫـﺎﻱ ﻇﺮﻳﻔـﻲ
ﻣﻲﺷﻮﺩ ﻛﻪ ﻳﺎﻓﺘﻦ ﻭ ﺗﺼﺤﻴﺢ ﺁﻧﻬﺎ ﺩﺭ ﻣﺮﺍﺣﻞ ﺑﻌﺪﻱ ﻓﺮﺁﻳﻨﺪ ﻧﺮﻡ ﺍﻓﺰﺍﺭﻱ ﺩﺷﻮﺍﺭ ﺍﺳﺖ.
ﻧﻤﺎﻳﺶ ﻃﺮﺍﺣﻲ ﻻﻳﻪﺍﻱ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻳﻚ ﺯﺑﺎﻥ ﺑﺮﻧﺎﻣﻪﺳﺎﺯﻱ ﺍﻣﻜﺎﻥﭘﺬﻳﺮ ﺍﺳﺖ .ﺍﺳﺎﺳﺎﹰ ،ﺑﺮﻧﺎﻣﻪ ﺑﺎ ﺑﻪ ﻛـﺎﺭﮔﻴﺮﻱ ﻣـﺪﻝ ﻃﺮﺍﺣـﻲ
ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﺭﺍﻫﻨﻤﺎ ،ﺍﻳﺠﺎﺩ ﻣﻲﮔﺮﺩﺩ .ﺭﻭﺵ ﺩﻳﮕﺮ ﻧﻤﺎﻳﺶ ﻃﺮﺍﺣﻲ ﺭﻭﻳﻪﺍﻱ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻧﻤﺎﻳﺶ ﻭﺍﺳـﻄﻪ )ﻣـﺜﻼﹰ ﮔﺮﺍﻓﻴﻜـﻲ،
ﺟﺪﻭﻟﻲ ﻳﺎ ﻣﺘﻨﻲ ﺍﺳﺖ( ﻛﻪ ﺑﻪ ﺭﺍﺣﺘﻲ ﻗﺎﺑﻞ ﺗﺒﺪﻳﻞ ﺑﻪ ﺑﺮﻧﺎﻣﺔ ﻣﻨﺒﻊ ﻣﻲﺑﺎﺷﺪ .ﺻﺮﻑﻧﻈﺮ ﺍﺯ ﻣﻜـﺎﻧﻴﺰﻡ ﺑـﻪ ﻛـﺎﺭ ﺭﻓﺘـﻪ ﺩﺭ ﻧﻤـﺎﻳﺶ
ﻃﺮﺍﺣﻲ ﺭﻭﻳﻪﺍﻱ ،ﺳﺎﺧﺘﻤﺎﻥﻫﺎﻱ ﺩﺍﺩﻩﺍﻱ ،ﻭﺍﺳﻂﻫﺎﻱ ﻭ ﺍﻟﮕﻮﺭﻳﺘﻢﻫﺎﻱ ﻣﺸﺨﺺ ﺷﺪﻩ ﺑﺎﻳـﺪ ﺑـﺎ ﻣﺠﻤﻮﻋـﻪﺍﻱ ﺍﺯ ﺭﻫﻨﻤﻮﺩﻫـﺎﻱ
ﻃﺮﺍﺣﻲ ﻣﻄﺎﺑﻘﺖ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻨﺪ ﺗﺎ ﺿﻤﻦ ﭘﻴﺸﺮﻓﺖ ﻭ ﺗﻜﻤﻴﻞ ﻃﺮﺍﺣﻲ ﺭﻭﻳﻪﺍﻱ ،ﻣﺎﻧﻊ ﺧﻄﺎ ﮔﺮﺩﻧﺪ.
ﺷﺮﻁ
T
T Repeat
ﺷﺮﻁ Case F ﺑﺨﺶ
F
F
T Do While T
F
ﺗﻜﺮﺍﺭ
T
ﺑﺨﺶ Else
ﻭﻇﻴﻔﻪ ﻧﺨﺴﺖ
ﻭﻇﻴﻔﻪ ﺑﻌﺪﻱ
ﺷﺮﻁ
ﺑﺨﺶ Then
ﻭﻇﻴﻔﻪ ﺣﻠﻘﻪ
ﺷﺮﻁ ﺣﻠﻘﻪ
ﻧﻤﺎﻳﺶ ﮔﺮﺍﻓﻴﻜﻲ ﺳﺎﺯﻩﻫﺎﻱ ﺳﺎﺧﺘﻴﺎﻓﺘﻪ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻧﻤﻮﺩﺍﺭ ﻣﺴﺘﻄﻴﻠﯽ) ﻳﺎ ﺟﻌﺒﻪﺍﻱ ( ﺩﺭ ﺷﻜﻞ ۳ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ .ﻋﻨﺼﺮ
ﺍﺻﻠﻲ ﻧﻤﻮﺩﺍﺭ ﻳﻚ ﻛﺎﺩﺭ ﻳﺎ ﺟﻌﺒﻪ ﺍﺳﺖ .ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺗﻮﺍﻟﻲ ،ﺩﻭ ﻣﺴﺘﻄﻴﻞ ﺍﺯ ﭘﺎﻳﻴﻦ ﺑﻪ ﺑﺎﻻ ﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻣﺘﺼﻞ ﻣﻲﺷﻮﻧﺪ .ﺑﺮﺍﯼ
ﻧﻤﺎﻳﺶ ، if-Then- elseﻣﺴﺘﻄﻴﻞ else- Part, Then- Partﺑﻪ ﺩﻧﺒﺎﻝ Conditionﻗﺮﺍﺭ ﻣﻲﮔﻴﺮﺩ .ﺗﻜﺮﺍﺭ ﺑﺎ
ﻳﻚ ﺍﻟﮕﻮﻱ ﻣﺤﺪﻭﺩﻛﻨﻨﺪﻩ ﻛﻪ ﻓﺮﺁﻳﻨﺪ ﻗﺎﺑﻞ ﺗﻜﺮﺍﺭ ﺭﺍ ﻣﺤﺼﻮﺭ ﻣﻲﻛﻨﺪ (Repeat-Until–Part DO–Wile-Part) .ﺑﻪ ﻧﻤﺎﻳﺶ
ﺩﺭ ﻣﻲﺁﻳﺪ .ﺩﺭ ﻧﻬﺎﻳﺖ ،ﺍﻧﺘﺨﺎﺏ ﺑﺎ ﺑﻪ ﻛﺎﺭﮔﻴﺮﻱ ﻓﺮﻡ ﮔﺮﺍﻓﻴﻜﻲ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺩﺭ ﭘﺎﻳﻴﻦ ﺗﺼﻮﻳﺮ ،ﺑﻪ ﻧﻤﺎﻳﺶ ﺩﺭ ﻣﻲﺁﻳﺪ.
ﻧﻤﻮﺩﺍﺭ ﻛﺎﺩﺭﻱ ﻧﻴﺰ ﻣﺎﻧﻨﺪ ﻓﻠﻮﭼﺎﺭﺕﻫﺎ ﺑﻪ ﻫﻨﮕﺎﻡ ﭘﺎﻻﻳﺶ ﻋﻨﺎﺻﺮ ﭘﺮﺩﺍﺯﺷﻲ ﻳﻚ ﭘﻴﻤﺎﻧﻪ ،ﺩﺭ ﭼﻨﺪﻳﻦ ﺻﻔﺤﻪ ﻻﻳﻪﺑﻨﺪﻱ ﻣﻲﺷﻮﺩ.
ﻳﻚ ﻓﺮﺍﺧﻮﺍﻧﻲ ﭘﻴﻤﺎﻧﻪ ﺗﻮﺳﻂ ﻛﺎﺩﺭﻱ ﺩﺭ ﺩﺍﺧﻞ ﭘﻴﻤﺎﻧﻪ ﻛﻪ ﻧﺎﻡ ﺁﻥ ﺩﺭﻭﻥ ﻳﻚ ﺑﻴﻀﻲ ﻣﺤﺼﻮﺭ ﺷﺪﻩ ،ﻗﺎﺑﻞ ﻧﻤﺎﻳﺶ ﺍﺳﺖ.
ﺍﻗﺪﺍﻣﺎﺕ
ﺣﺪﺍﻗﻞ ﻫﺰﻳﻨﻪ ﻣﺎﻫﺎﻧﻪ
ﺻﻮﺭﺕ ﺣﺴﺎﺏ ﺯﻣﺎﻧﺒﻨﺪﻱ ﺍﻟﻒ
ﺻﻮﺭﺕ ﺣﺴﺎﺏ ﺯﻣﺎﻧﺒﻨﺪﻱ ﺏ
ﺩﻳﮕﺮ ﺍﻗﺪﺍﻣﺎﺕ
;PROCEDURE security.monitor
;INTERFACE RETURNS system.status
TYPE signal 1S STRUCTURE DEFINED
;name 1S STRING LENGTH VAR
;address 1S HEX device location
;bound. Value IS upper bound SCALAR
;message IS STRING LENGTH VAR
;END signal TYPE
;)TYPE system.status IS BIT (4
TYPE alarm. Type DEFINED
ﺝ( ﻧﺸﺎﻥﮔﺬﺍﺭﻱ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺪ ﺑﻪ ﻧﻤﺎﻳﺶ ﺭﻭﻳﻪﺍﻱ ﻣﻨﺠﺮ ﺷﻮﺩ ﻛﻪ ﺩﺭﻙ ﻭ ﺑﺮﺭﺳﻲ ﺁﻥ ﺁﺳﺎﻥ ﺑﺎﺷﺪ .ﺑﻪ ﻋـﻼﻭﻩ ،ﻧﺸـﺎﻥﮔـﺬﺍﺭﻱ
ﺑﺎﻳﺪ ﺗﻮﺍﻧﺎﻳﻲ " " code toﺭﺍ ﺗﻘﻮﻳﺖ ﻛﻨﺪ ﺑﻪ ﻃﻮﺭﻱ ﻛﻪ ﺑﺮﻧﺎﻣﻪ ﻳﺎ ﻛﺪ ﺩﺭ ﻭﺍﻗﻊ ﺑﻪ ﻣﺤﺼﻮﻝ ﺟﺎﻧﺒﻲ ﻭ ﻃﺒﻴﻌﻲ ﻃﺮﺍﺣـﻲ ﺗﺒـﺪﻳﻞ
ﺷﻮﺩ .ﻭ ﻧﻬﺎﻳﺘﺎﹰ ﺍﻳﻦ ﻛﻪ ﻧﻤﺎﻳﺶ ﻃﺮﺍﺣﻲ ﺑﺎﻳﺴﺘﻲ ﺑﻪ ﺭﺍﺣﺘﻲ ﻗﺎﺑﻞ ﻧﮕﻬﺪﺍﺭﻱ ﺑﺎﺷﺪ ﺑﻪ ﻧﺤﻮﻱ ﻛﻪ ﻃﺮﺍﺣﻲ ﻫﻤﻮﺍﺭﻩ ﺑﻪ ﻃﻮﺭ ﺻـﺤﻴﺢ
ﻧﺸﺎﻥ ﺩﻫﻨﺪﺓ ﺑﺮﻧﺎﻣﻪ ﺑﺎﺷﺪ.
ﻣﺎ ﺩﺭ ﺟﻬﺎﻧﻲ ﺍﺯ ﺍﺷﻴﺎﺀ ﺯﻧﺪﮔﻲ ﻣﻲﻛﻨﻴﻢ .ﺍﻳﻦ ﺍﺷﻴﺎﺀ ﺩﺭ ﻃﺒﻴﻌﺖ ،ﺩﺭ ﻧﻬﺎﺩﻫﺎﻱ ﺳﺎﺧﺖ ﺩﺳﺖ ﺑﺸﺮ ،ﺩﺭ ﺗﺠﺎﺭﺕ ﻭ ﺩﺭ ﻣﺤﺼﻮﻻﺗﻲ
ﻛﻪ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﻛﻨﻴﻢ ،ﻭﺟﻮﺩ ﺩﺍﺭﻧﺪ .ﺁﻧﻬﺎ ﺭﺍ ﻣﻲﺗﻮﺍﻥ ﺑﺴﺘﻪﺑﻨﺪﻱ ﻛﺮﺩ ،ﺗﻮﺻﻴﻒ ﻧﻤﻮﺩ ،ﺳﺎﺯﻣﺎﻧﺪﻫﻲ ﻛﺮﺩ ،ﺗﺮﻛﻴﺐ ﻛﺮﺩ ،ﺩﺳﺘﻜﺎﺭﻱ
ﻛﺮﺩ ﻭ ﺍﻳﺠﺎﺩ ﻧﻤﻮﺩ .ﺑﻨﺎﺑﺮﺍﻳﻦ ،ﺗﻌﺠﺒﻲ ﻧﺪﺍﺭﺩ ﻛﻪ ﺑﺮﺍﻱ ﺍﻳﺠﺎﺩ ﻧﺮﻡﺍﻓﺰﺍﺭﻫﺎﻱ ﻛﺎﻣﭙﻴﻮﺗﺮﻱ ﻧﻴﺰ ﺩﻳﺪﮔﺎﻫﻲ ﺷﻲﺀﮔﺮﺍ ﭘﻴﺸﻨﻬﺎﺩ ﺷﻮﺩ-
ﺍﻳﻦ ﺷﻜﻞ ﺍﻧﺘﺰﺍﻋﻲ ﻣﺎ ﺭﺍ ﻗﺎﺩﺭ ﻣﻲﺳﺎﺯﺩ ﺗﺎ ﺟﻬﺎﻥ ﺭﺍ ﺑﻪ ﺷﻴﻮﻩﺍﻱ ﻣﺪﻟﺴﺎﺯﻱ ﻛﻨﻴﻢ ﻛﻪ ﺑﻬﺘﺮ ﻗﺎﺑﻞ ﺩﺭﻙ ﻭ ﻛﺎﻭﺵ ﺑﺎﺷﺪ.
ﺭﻭﺵ ﺷﻲﺀﮔﺮﺍ ﺩﺭ ﺗﻮﺳﻌﺔ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﻭﻟﻴﻦ ﺑﺎﺭ ﺩﺭ ﺍﻭﺍﺧﺮ ﺩﻫﺔ ۱۹۶۰ﺑﺮﺍﻱ ﺗﻮﺳﻌﺔ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻪ ﻛﺎﺭ ﮔﺮﻓﺘﻪ ﺷﺪ .ﻭﻟﻲ ۲۰ﺳﺎﻝ
ﻃﻮﻝ ﻛﺸﻴﺪ ﺗﺎ ﻓﻨﺂﻭﺭﻱ ﺷﻲﺀﮔﺮﺍ ﺑﻪ ﻃﻮﺭ ﮔﺴﺘﺮﺩﻩ ﻣﻮﺭﺩ ﺍﺳﺘﻔﺎﺩﻩ ﻗﺮﺍﺭ ﮔﻴﺮﺩ .ﺩﺭ ﺳﺮﺗﺎﺳﺮ ﺩﻫﺔ ،۱۹۹۰ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ
ﺷﻲﺀﮔﺮﺍ ﺍﻟﮕﻮﻱ ﺍﻧﺘﺨﺎﺑﻲ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻧﻮﻳﺴﺎﻥ ﺷﺪ ﻭ ﺗﻌﺪﺍﺩ ﻓﺰﺍﻳﻨﺪﻩﺍﻱ ﺍﺯ ﺳﻴﺴﺘﻢ ﻫﺎﻱ ﺍﻃﻼﻋﺎﺗﻲ ﻭ ﻣﻬﻨﺪﺳﺎﻥ
ﺣﺮﻓﻪﺍﻱ ﺑﻪ ﺁﻥ ﺭﻭﻱ ﺁﻭﺭﺩﻧﺪ .ﺑﻪ ﻣﺮﻭﺭ ﺯﻣﺎﻥ ،ﻓﻨﺂﻭﺭﻱ ﻫﺎﻱ ﺷﻲﺀﮔﺮﺍ ﺟﺎﻳﮕﺰﻳﻦ ﺭﻭﺵ ﻫﺎﻱ ﻛﻼﺳﻴﻚ ﺗﻮﺳﻌﺔ ﻧﺮﻡﺍﻓﺰﺍﺭ
ﻣﻲﺷﻮﻧﺪ .ﺳﻮﺍﻝ ﻣﻬﻢ ﺍﻳﻦ ﺍﺳﺖ :ﭼﺮﺍ؟
ﭘﺎﺳﺦ ﺍﻳﻦ ﺳﺆﺍﻝ )ﻫﻤﺎﻧﻨﺪ ﭘﺎﺳﺦ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺳﻮﺍﻻﺕ ﺩﻳﮕﺮ ﺩﺭ ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ( ﭘﺎﺳﺦ ﺳﺎﺩﻩﺍﻱ ﻧﻴﺴﺖ .ﺑﺮﺧﻲ ﺍﺳﺘﺪﻻﻝ
ﻣﻲﻛﻨﻨﺪ ﻛﻪ ﻧﺮﻡﺍﻓﺰﺍﺭﻧﻮﻳﺴﺎﻥ ﺣﺮﻓﻪﺍﻱ ﺻﺮﻓﺎﹰ ﺑﻪ ﺩﻧﺒﺎﻝ ﻳﻚ ﺭﻭﺵ ﺟﺪﻳﺪ ﺑﻮﺩﻧﺪ ،ﻭﻟﻲ ﺍﻳﻦ ﺩﻳﺪﮔﺎﻩ ﺑﻴﺶ ﺍﺯ ﺣﺪ ﺳﺎﺩﻩﻧﮕﺮﺍﻧﻪ
ﺍﺳﺖ .ﻓﻨﺂﻭﺭﻱ ﻫﺎﻱ ﺷﻲﺀﮔﺮﺍ ﺑﻪ ﭼﻨﺪﻳﻦ ﻣﺰﻳﺖ ﺫﺍﺗﻲ ﻣﻨﺠﺮ ﻣﻲﺷﻮﻧﺪ ﻛﻪ ﻫﻢ ﺩﺭ ﺳﻄﺢ ﻣﺪﻳﺮﻳﺘﻲ ﻭ ﻫﻢ ﻓﻨﻲ ﻣﺰﺍﻳﺎﻳﻲ ﺑﻪ
ﻫﻤﺮﺍﻩ ﺩﺍﺭﺩ.
ﻓﻨﺂﻭﺭﻱ ﻫﺎﻱ ﺷﻲﺀﮔﺮﺍ ﻣﻨﺠﺮ ﺑﻪ ﺍﺳﺘﻔﺎﺩﻩ ﻣﺠﺪﺩ ﻣﻲﺷﻮﺩ ﻭ ﺍﺳﺘﻔﺎﺩﻩ ﻣﺠﺪﺩ )ﺍﺯ ﻣﺆﻟﻔﻪﻫﺎﻱ ﺑﺮﻧﺎﻣﻪ( ﻣﻨﺠﺮ ﺑﻪ ﺗﻮﺳﻌﻪ ﺳﺮﻳﻌﺘﺮ
ﻧﺮﻡﺍﻓﺰﺍﺭﻫﺎ ﻭ ﺑﺮﻧﺎﻣﻪﻫﺎﻳﻲ ﺑﺎ ﻛﻴﻔﻴﺖ ﺑﺎﻻﺗﺮ ﻣﻲﺷﻮﺩ .ﻧﮕﻬﺪﺭﺍﻱ ﻧﺮﻡﺍﻓﺰﺍﺭﻫﺎﻱ ﺷﻲﺀﮔﺮﺍ ﺁﺳﺎﻧﺘﺮ ﺍﺳﺖ ﺯﻳﺮﺍ ﺳﺎﺧﺘﺎﺭ ﺁﻥ ﺫﺍﺗﺎﹰ ﻓﺎﻗﺪ
ﭘﻴﻮﺳﺘﮕﻲ ﺍﺳﺖ .ﺍﻳﻦ ﻣﻮﺿﻮﻉ ،ﺑﻪ ﻫﻨﮕﺎﻡ ﺍﻋﻤﺎﻝ ﺗﻐﻴﻴﺮﺍﺕ ،ﺍﺛﺮﺍﺕ ﺟﺎﻧﺒﻲ ﻛﻤﺘﺮﻱ ﺑﻪ ﻭﺟﻮﺩ ﻣﻲﺁﻭﺭﺩ ﻭ ﺑﺮﺍﻱ ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ
ﻭ ﻣﺸﺘﺮﻱ ﺩﺭﺩﺳﺮ ﻛﻤﺘﺮﻱ ﺍﻳﺠﺎﺩ ﻣﻲﻛﻨﺪ .ﺑﻪ ﻋﻼﻭﻩ ،ﺗﻄﺒﻴﻖ ﺩﺍﺩﻥ ﻭ ﺗﻐﻴﻴﺮ ﺩﺍﺩﻥ ﺍﻧﺪﺍﺯﺓ ﺳﻴﺴﺘﻢ ﻫﺎﻱ ﺷﻲﺀﮔﺮﺍ ﺁﺳﺎﻧﺘﺮ ﺍﺳﺖ
)ﻳﻌﻨﻲ ﺳﻴﺴﺘﻢ ﻫﺎﻱ ﺑﺰﺭﮒ ﺭﺍ ﻣﻲﺗﻮﺍﻥ ﺑﺎ ﻣﻮﻧﺘﺎﮊ ﻛﺮﺩﻥ ﺯﻳﺮﺳﻴﺴﺘﻢ ﻫﺎﻱ ﻗﺎﺑﻞ ﺍﺳﺘﻔﺎﺩﻩ ﻣﺠﺪﺩ ﺍﻳﺠﺎﺩ ﻛﺮﺩ(.
ﺳﺎﻝ ﻫﺎ ﺑﻮﺩ ﻛﻪ ﺍﺻﻄﻼﺡ ﺷﻲﺀﮔﺮﺍ ) (OOﺑﺮﺍﻱ ﻣﺸﺨﺺ ﻛﺮﺩﻥ ﺭﻭﺷﻲ ﺑﻪ ﻛﺎﺭ ﻣﻲﺭﻓﺖ ﻛﻪ ﺩﺭ ﺁﻥ ﺍﺯ ﺯﺑﺎﻧﻬﺎﻱ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ
ﺷﻲﺀﮔﺮﺍ )ﻣﺜﻞ ﺍِﺩﺍ ،۹۵ﺟﺎﻭﺍ ،C++ ،ﺍﻳﻔﻞ ﻭ ﺍﺳﻤﺎﻟﺘﺎﻙ( ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺷﻮﺩ .ﺍﻣﺮﻭﺯﻩ ﺍﻟﮕﻮﻱ OOﺷﺎﻣﻞ ﺩﻳﺪﮔﺎﻫﻲ ﻛﺎﻣﻞ ﺍﺯ
ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻣﻲﺷﻮﺩ Berar .ﺑﻪ ﺍﻳﻦ ﻧﻜﺘﻪ ﭼﻨﺪﻳﻦ ﺍﺷﺎﺭﻩ ﺩﺍﺭﺩ ] :[BER93
ﻣﺰﺍﻳﺎﻱ ﻓﻨﺂﻭﺭﻱ ﺷﻲﺀﮔﺮﺍ ﺍﮔﺮ ﺑﻪ ﻃﻮﺭ ﺯﻭﺩﻫﻨﮕﺎﻡ ﻭ ﺩﺭ ﺳﺮﺗﺎﺳﺮ ﻓﺮﺁﻳﻨﺪ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻪ ﺁﻥ ﭘﺮﺩﺍﺧﺘﻪ ﺷﻮﺩ .ﺑﻬﺒﻮﺩ ﻣﻲﻳﺎﺑﺪ .ﺁﻧﻬﺎ ﻛﻪ
ﺑﻪ ﻓﻨﺂﻭﺭﻱ ﺷﻲﺀﮔﺮﺍ ﺭﻭﻱ ﻣﻲﺁﺭﻭﻧﺪ ،ﺑﺎﻳﺪ ﺗﺄﺛﻴﺮ ﺁﻥ ﺭﺍ ﺑﺮ ﻛﻞ ﻓﺮﺁﻳﻨﺪ ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻣﻮﺭﺩ ﺳﻨﺠﺶ ﻗﺮﺍﺭ ﺩﻫﻨﺪ .ﻓﻘﻂ
ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺑﺮﻧﺎﻣﻪﻧﻮﻳﺴﻲ ﺷﻲﺀﮔﺮﺍ ) (OOPﻧﻴﺴﺖ ﻛﻪ ﺑﻬﺘﺮﻳﻦ ﻧﺘﺎﻳﺞ ﺭﺍ ﺑﺒﺎﺭ ﺩﻫﺪ .ﻣﻬﻨﺪﺳﺎﻥ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻭ ﻣﺪﻳﺮﺍﻥ ﺁﻧﻬﺎ ﺑﺎﻳﺪ
ﭼﻨﻴﻦ ﻋﻨﺎﺻﺮﻱ ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ ﺗﺤﻠﻴﻞ ﻧﻴﺎﺯﻫﺎﻱ ﺷﻲﺀﮔﺮﺍ ) ،(OORAﻃﺮﺍﺣﻲ ﺷﻲﺀﮔﺮﺍ ) ،(OODﺗﺤﻠﻴﻞ ﺩﺍﻣﻨﻪ ﺷﻲﺀﮔﺮﺍ
) ،(OODAﺳﻴﺴﺘﻢ ﻫﺎﻱ ﺑﺎﻧﻚ ﺍﻃﻼﻋﺎﺗﻲ ﺷﻲﺀﮔﺮﺍ ) (OODBMSﻭ ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺷﻲﺀﮔﺮﺍ ﺑﻪ ﻛﻤﻚ ﻛﺎﻣﭙﻴﻮﺗﺮ
) (OOCASEﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻧﺪ.
ﻛﻮﺷﺶ ﻛﺮﺩﻩﺍﻳﻢ ﺗﺎ ﺗﻌﺮﻳﻔﻲ ﺣﻜﺎﻳﺖﻭﺍﺭ ﺍﺯ ﻛﻼﺱ ﺭﺍ ﺑﺎ ﺗﻮﺻﻴﻒ ﺻﻔﺎﺕ ﺁﻥ ﺍﺭﺍیﻪ ﻛﻨﻴﻢ .ﻭﻟﻲ ﭼﻴﺰﻱ ﻛﻢ ﺍﺳﺖ .ﻫﺮ ﻛﺪﺍﻡ ﺍﺯ
ﺍﻋﻀﺎﻱ ﻛﻼﺱ ﺍﺛﺎﺛﻴﻪ ﺭﺍ ﻣﻲﺗﻮﺍﻥ ﺑﻪ ﭼﻨﺪﻳﻦ ﺷﻴﻮﻩ ﺩﺳﺘﻜﺎﺭﻱ ﻛﺮﺩ .ﻣﻲﺗﻮﺍﻥ ﺁﻥ ﺭﺍ ﺧﺮﻳﺪ ،ﻓﺮﻭﺧﺖ ،ﺗﻐﻴﻴﺮ ﻓﻴﺰﻳﻜﻲ ﺩﺭ ﺁﻥ
ﺍﻳﺠﺎﺩ ﻛﺮﺩ )ﻣﺜﻼﹰ ﭘﺎﻳﻪﻫﺎ ﺭﺍ ﺍﺭﻩ ﻛﺮﺩ ﻳﺎ ﺁﻥ ﺭﺍ ﺍﺭﻏﻮﺍﻧﻲ ﺭﻧﮓ ﻛﺮﺩ( ﻳﺎ ﺍﺯ ﻣﻜﺎﻧﻲ ﺑﻪ ﻣﻜﺎﻥ ﺩﻳﮕﺮ ﺟﺎﺑﺠﺎ ﻛﺮﺩ .ﻫﺮ ﻳﻚ ﺍﺯ ﻋﻤﻠﻴﺎﺕ
)ﻳﺎ ﻣﺘﺪﻫﺎ ﻳﺎ ﺳﺮﻭﻳﺲ ﻫﺎ( ﻳﻚ ﻳﺎ ﭼﻨﺪ ﺻﻔﺖ ﺷﻲﺀ ﺭﺍ ﺗﻐﻴﻴﺮ ﻣﻲﺩﻫﻨﺪ .ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﺍﮔﺮ ﺻﻔﺖ ﻣﻜﺎﻥ ﻳﻚ ﻋﻨﺼﺮ ﺩﺍﺩﻩﺍﻱ
ﻣﺮﻛﺐ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﺑﺎﺷﺪ:
ﺍﺗﺎﻕ +ﻃﺒﻘﻪ +ﺳﺎﺧﺘﻤﺎﻥ= ﻣﻜﺎﻥ
ﻛﻼﺱ :ﺍﺛﺎﺛﻴﻪ
ﺷﻲﺀ :ﺻﻨﺪﻟﻲ
ﻫﺰﻳﻨﻪ
ﺍﺑﻌﺎﺩ
ﻭﺯﻥ
ﻣﻜﺎﻥ
ﺭﻧﮓ
ﺩﺭ ﺍﻳﻦ ﺻﻮﺭﺕ ،ﻋﻤﻠﻲ ﻛﻪ ﺟﺎﺑﺠﺎﻳﻲ ﻧﺎﻡ ﺩﺍﺭﺩ ،ﻳﻚ ﻳﺎ ﭼﻨﺪ ﻣﻮﺭﺩ ﺍﺯ ﺍﻳﻦ ﻋﻨﺎﺻﺮ ﺩﺍﺩﻩﺍﻱ )ﺳﺎﺧﺘﻤﺎﻥ ،ﻃﺒﻘﻪ ،ﺍﺗﺎﻕ( ﺭﺍ ﻛﻪ ﻣﻜﺎﻥ
ﺭﺍ ﺗﺸﻜﻴﻞ ﻣﻲﺩﻫﻨﺪ ،ﺗﻐﻴﻴﺮ ﻣﻲﺩﻫﺪ .ﺑﺮﺍﻱ ﺍﻧﺠﺎﻡ ﺍﻳﻦ ﻛﺎﺭ ،ﻋﻤﻞ ﺟﺎﺑﺠﺎﻳﻲ ﺑﺎﻳﺪ ﺍﺯ ﺍﻳﻦ ﻋﻨﺎﺻﺮ ﺩﺍﺩﻩﺍﻱ ﺩﺍﺩﻩﺍﻱ ﺁﮔﺎﻩ ﺑﺎﺷﺪ.
ﻣﺎﺩﺍﻣﻲ ﻛﻪ ﺻﻨﺪﻟﻲ ﻭ ﻣﻴﺰ ﻫﺮ ﺩﻭ ﻧﻤﻮﻧﻪﻫﺎﻱ ﻛﻼﺱ ﺍﺛﺎﺛﻴﻪ ﺑﺎﺷﻨﺪ ،ﺍﺯ ﻋﻤﻞ ﺟﺎﺑﺠﺎﻳﻲ ﻣﻲﺗﻮﺍﻥ ﺑﺮﺍﻱ ﺁﻧﻬﺎ ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ .ﻫﻤﺔ
ﻋﻤﻠﻴﺎﺕ ﻣﻌﺘﺒﺮ )ﻣﺜﻞ ﺧﺮﻳﺪﻥ ،ﻓﺮﻭﺧﺘﻦ ،ﺗﻮﺯﻳﻊ ﻛﺮﺩﻥ( ﺑﺮﺍﻱ ﻛﻼﺱ ﺍﺛﺎﺛﻴﻪ ﺑﻪ ﺗﻌﺮﻳﻒ ﺷﻲﺀ ﻣﺘﺼﻞ ﻫﺴﺘﻨﺪ ﻭ ﺑﺮﺍﻱ ﻛﻠﻴﻪ
ﻧﻤﻮﻧﻪﻫﺎﻱ ﺍﻳﻦ ﻛﻼﺱ ﺑﻪ ﺍﺭﺙ ﮔﺬﺍﺷﺘﻪ ﻣﻲﺷﻮﻧﺪ.
ﺷﻲﺀ ﺻﻨﺪﻟﻲ )ﻭ ﻛﻼﹰ ﻫﻤﺔ ﺍﺷﻴﺎﺀ( ﺩﺍﺩﻩﻫﺎ )ﻣﻘﺎﺩﻳﺮ ﺻﻔﺎﺗﻲ ﻛﻪ ﺻﻨﺪﻟﻲ ﺭﺍ ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﻨﺪ( ،ﻋﻤﻠﻴﺎﺕ )ﻋﻤﻠﻴﺎﺗﻲ ﻛﻪ ﺑﺮﺍﻱ ﺗﻐﻴﻴﺮ
ﺩﺍﺩﻥ ﺻﻔﺎﺕ ﺻﻨﺪﻟﻲ ﺑﻪ ﻛﺎﺭ ﻣﻲﺭﻭﻧﺪ( ،ﺍﺷﻴﺎﻱ ﺩﻳﮕﺮ )ﺍﺷﻴﺎﻱ ﻣﺮﻛﺒﻲ ﻛﻪ ﻗﺎﺑﻞ ﺗﻌﺮﻳﻒ ﻫﺴﺘﻨﺪ( ،ﺛﺎﺑﺖ ﻫﺎ)ﻣﻘﺎﺩﻳﺮ ﺛﺎﺑﺖ( ﻭ
ﺍﻃﻼﻋﺎﺕ ﻣﺮﺑﻮﻃﻪ ﺩﻳﮕﺮ ﺭﺍ ﺑﺴﺘﻪﺑﻨﺪﻱ ﻣﻲﻛﻨﻨﺪ .ﺑﺴﺘﻪﺑﻨﺪﻱ ﺑﺪﺍﻥ ﻣﻌﻨﺎ ﺍﺳﺖ ﻛﻪ ﻛﻠﻴﺔ ﺍﻳﻦ ﺍﻃﻼﻋﺎﺕ ﺗﺤﺖ ﻳﻚ ﻧﺎﻡ
ﺑﺴﺘﻪﺑﻨﺪﻱ ﺷﻮﻧﺪ ﻭ ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﻣﺸﺨﺼﻪ ﻳﺎ ﻗﻄﻌﻪ ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﻛﺎﺭ ﺑﺮﺩﻩ ﺷﻮﻧﺪ.
ﺍﻛﻨﻮﻥ ﻛﻪ ﺑﺎ ﭼﻨﺪ ﻣﻔﻬﻮﻡ ﺍﺳﺎﺳﻲ ﺁﺷﻨﺎ ﺷﺪﻳﻢ ،ﺗﻌﺮﻳﻔﻲ ﺭﺳﻤﻲﺗﺮ ﺍﺯ ﺷﻲﺀﮔﺮﺍﻳﻲ ،ﺑﻲﻣﻨﺎﺳﺒﺖ ﻧﺨﻮﺍﻫﺪ ﺑﻮﺩ Coad .ﻭ
[COA91] Yourdonﺍﻳﻦ ﺍﺻﻄﻼﺡ ﺭﺍ ﭼﻨﻴﻦ ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﻨﺪ:
ﺍﺭﺗﺒﺎﻃﺎﺕ +ﻭﺭﺍﺛﺖ +ﻃﺒﻘﻪﺑﻨﺪﻱ +ﺍﺷﻴﺎﺀ= ﺷﻲﺀﮔﺮﺍﻳﻲ
ﺑﻨﺎﺑﺮﺍﻳﻦ ﻫﺮ ﺷﻲﺀ ﺍﺯ ﮐﻼﺱ ﺍﺛﺎﺙ ﺧﺎﻧﻪ ﺑﻪ ﺭﻭﺵ ﻫﺎﻱ ﻣﺨﺘﻠﻒ ﻗﺎﺑﻞ ﺗﻐﻴﻴﺮ ﺍﺳﺖ :ﺧﺮﻳﺪﻩ ﺷﻮﺩ ،ﻓﺮﻭﺧﺘﻪ ﺷﻮﺩ ﻳﺎ ﺍﺯ ﻳﮏ
ﻣﮑﺎﻥ ﺑﻪ ﻣﮑﺎﻥ ﺩﻳﮕﺮ ﻣﻨﺘﻘﻞ ﺷﻮﺩ.
· ﻫﺮ ﮐﺪﺍﻡ ﺍﺯ ﺍﻳﻦ ﻋﻤﻠﻴﺎﺕ) (operationsﻳﺎ ﺧﺪﻣﺎﺕ) (servicesﻳﺎ ﻣﺘﺪﻫﺎ) (methodsﻳﮏ ﻳﺎ ﭼﻨﺪ ﺻﻔﺖ
ﺍﺯ ﺻﻔﺎﺕ ﺷﻲﺀ ﺭﺍ ﺗﻐﻴﻴﺮ ﻣﻲ ﺩﻫﻨﺪ.
· ﺍﺷﻴﺎ ﺩﺭ ﺩﺭﻭﻥ ﺧﻮﺩ ﺩﺍﺩﻩ ﻫﺎ )ﻣﻘﺎﺩﻳﺮ ﺻﻔﺎﺕ( ،ﻋﻤﻠﻴﺎﺕ )ﺍﻋﻤﺎﻟﻲ ﮐﻪ ﺑﺮ ﺷﻲﺀ ﻭﺍﺭﺩ ﻣﻲ ﺷﻮﻧﺪ ﺗﺎ ﺻﻔﺎﺕ ﺁﻥ ﺭﺍ ﺗﻐﻴﻴﺮ
ﺩﻫﺪ( ،ﺍﺷﻴﺎﻱ ﺩﻳﮕﺮ)ﺍﺷﻴﺎﻱ ﺗﺮﮐﻴﺒﻲ( ،ﺛﺎﺑﺖ ﻫﺎ ﻭ ﺳﺎﻳﺮ ﺍﻃﻼﻋﺎﺕ ﻣﺮﺑﻮﻁ ﺭﺍ ﺑﺴﺘﻪ ﺑﻨﺪﻱ ﻣﻲ ﮐﻨﻨﺪ.
ﻛﻼﺱ :ﺍﺛﺎﺛﻴﻪ
ﻫﺰﻳﻨﻪ
ﺍﺑﻌﺎﺩ
ﻭﺯﻥ
ﺍﻳﻦ ﺍﺷﻴﺎﺀ ﻛﻠﻴﺔ ﺻﻔﺎﺕ ﻭﻋﻤﻠﻴﺎﺕ
ﻣﻜﺎﻥ
ﺭﺍ ﺍﺯ ﻛﻼﺱ ﺑﻪ ﺍﺭﺙ ﻣﻲﺑﺮﻧﺪ
ﺭﻧﮓ
ﺧﺮﻳﺪﻥ
ﻓﺮﻭﺧﺘﻦ
ﻭﺯﻥ ﻛﺮﺩﻥ
ﺟﺎﺑﺠﺎﻳﻲ ﺷﻲﺀ :ﺻﻨﺪﻟﻲ
ﻫﺰﻳﻨﻪ
ﺷﻲﺀ :ﺻﻨﺪﻟﻲ ﺍﺑﻌﺎﺩ
ﻭﺯﻥ
ﻫﺰﻳﻨﻪ
ﻣﻜﺎﻥ
ﺍﺑﻌﺎﺩ
ﺭﻧﮓ
ﻭﺯﻥ
ﺧﺮﻳﺪﻥ
ﻣﻜﺎﻥ
ﻓﺮﻭﺧﺘﻦ
ﺭﻧﮓ
ﻭﺯﻥ ﻛﺮﺩﻥ
ﺧﺮﻳﺪﻥ
ﺟﺎﺑﺠﺎﻳﻲ
ﻓﺮﻭﺧﺘﻦ
ﻭﺯﻥ ﻛﺮﺩﻥ
ﺟﺎﺑﺠﺎﻳﻲ
ﺗﻨﻬﺎ ﺭﺍﻩ ﺑﺮﺍﻱ ﺩﺳﺘﺮﺳﻲ ﺑﻪ ﺻﻔﺎﺕ ﺍﺯ ﻃﺮﻳﻖ ﻳﮑﻲ ﺍﺯ ﻣﺘﺪﻫﺎﺳﺖ)ﮐﻼﺱ ﺩﺍﺩﻩ ﻫﺎ ﻭ ﻣﺘﺪﻫﺎ ﺭﺍ ﺑﺴﺘﻪ ﺑﻨﺪﻱ ﻣﻲ ﮐﻨﺪ (.
ﺍﻳﻦ ﮐﺎﺭ ﺑﺎﻋﺚ ﭘﻨﻬﺎﻥ ﺳﺎﺯﻱ ﺍﻃﻼﻋﺎﺕ) (Information Hidingﻣﻲ ﺷﻮﺩ ﻭ ﺑﺎﻋﺚ ﮐﻤﺘﺮﺷﺪﻥ ﺗﺎﺛﻴﺮ ﺍﺛﺮﺍﺕ
ﺟﺎﻧﺒﻲ ﻣﺮﺗﺒﻂ ﺑﺎ ﺗﻐﻴﻴﺮﺍﺕ ﻣﻲ ﺷﻮﺩ.
ﺍﺯ ﺁﻧﺠﺎﻳﻲ ﮐﻪ ﻣﺘﺪﻫﺎ ﺗﻌﺪﺍﺩ ﻣﺤﺪﻭﺩﻱ ﺍﺯ ﺻﻔﺎﺕ ﺭﺍ ﺗﻐﻴﻴﺮ ﻣﻲ ﺩﻫﻨﺪ ،ﺁﻧﻬﺎ ﻣﻨﺴﺠﻢ) (Cohesiveﻫﺴﺘﻨﺪ؛ ﻭ ﺑﺨﺎﻃﺮ ﺍﻳﻨﮑﻪ
ﺍﺭﺗﺒﺎﻃﺎﺕ ﻓﻘﻂ ﺍﺯ ﻃﺮﻳﻖ ﻣﺘﺪﻫﺎ ﺭﺥ ﻣﻲ ﺩﻫﺪ ،ﮐﻼﺱ ﺍﺯ ﺳﺎﻳﺮ ﺍﺟﺰﺍﻱ ﺳﻴﺴﺘﻢ ﺟﺪﺍ) (Decoupledﻣﻲ ﺷﻮﺩ .ﺍﻳﻦ
ﺧﺼﻮﺻﻴﺎﺕ ﻣﻨﺠﺮ ﺑﻪ ﺷﮑﻞ ﮔﻴﺮﻱ ﻳﮏ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺑﺎ ﮐﻴﻔﻴﺖ ﺑﺎﻻ)(High-Quality Softwareﻣﻲ ﺷﻮﺩ.
ﺯﺑﺮ ﮐﻼﺱ ) (Superclassﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﮐﻼﺱ ﻫﺎﺳﺖ ،ﻭ ﺯﻳﺮ ﮐﻼﺱ) (Subclassﻳﮏ ﻧﻤﻮﻧﻪ ﺧﺎﺹ ﺍﺯ
ﻳﮏ ﮐﻼﺱ ﺍﺳﺖ.
ﺍﻳﻦ ﺗﻌﺎﺭﻳﻒ ﺩﻻﻟﺖ ﺑﺮ ﻭﺟﻮﺩ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺐ ﮐﻼﺱ) (Class Hierarchyﻣﻲ ﮐﻨﺪ ﮐﻪ ﺩﺭ ﺁﻥ ﺻﻔﺎﺕ ﻭ ﻋﻤﻠﻴﺎﺕ
ﺯﺑﺮ ﮐﻼﺱ ﺑﻮﺳﻴﻠﻪ ﺯﻳﺮ ﮐﻼﺱ ﻫﺎ ﺑﻪ ﺍﺭﺙ ﺑﺮﺩﻩ ﻣﻲ ﺷﻮﻧﺪ .ﺍﻟﺒﺘﻪ ﻫﺮ ﮐﺪﺍﻡ ﺍﺯ ﺍﻳﻦ ﺯﻳﺮ ﮐﻼﺱ ﻫﺎ ﻣﻤﮑﻦ ﺍﺳﺖ ﺩﺍﺩﻩ ﻫﺎ ﻭ
ﻣﺘﺪﻫﺎﻱ “ﺧﺼﻮﺻﻲ” ﺩﺍﺷﺘﻪ ﺑﺎﺷﻨﺪ.
ﺻﻔﺎﺕ
ﭘﻴﺶ ﺍﺯ ﺍﻳﻦ ﺩﻳﺪﻳﻢ ﻛﻪ ﺻﻔﺎﺕ ﺑﻪ ﻛﻼﺱ ﻫﺎ ﻭﺍﺷﻴﺎﺀ ﻣﺘﺼﻞ ﻫﺴﺘﻨﺪ ﻭ ﺷﻲﺀ ﻳﺎ ﻛﻼﺱ ﺭﺍ ﺑﻪ ﻧﺤﻮﻱ ﺗﻮﺻﻴﻒ ﻣﻲﻛﻨﻨﺪ .ﺑﺤﺜﻲ
ﺩﺭﺑﺎﺭﺓ ﺻﻔﺎﺕ ﺗﻮﺳﻂ de Champeauxﻭ ﻫﻤﻜﺎﺭﺍﻥ ﻭﻱ ] [CHA93ﺍﺭﺍﻳﻪ ﺷﺪﻩ ﺍﺳﺖ:
ﻧﻬﺎﺩﻫﺎﻱ ﻣﻮﺟﻮﺩ ﺩﺭ ﺯﻧﺪﮔﻲ ﻭﺍﻗﻌﻲ ،ﻏﺎﻟﺒﺎﹰ ﺑﺎ ﻭﺍﮊﻩﻫﺎﻳﻲ ﺗﻮﺻﻴﻒ ﻣﻲﺷﻮﻧﺪ ﻛﻪ ﻧﺸﺎﻧﮕﺮ ﻭﻳﮋﮔﻲ ﻫﺎﻱ ﭘﺎﻳﺪﺍﺭﻧﺪ .ﺍﻛﺜﺮ
ﺍﺷﻴﺎﻱ ﻓﻴﺰﻳﻜﻲ ﺩﺍﺭﺍﻱ ﻭﻳﮋﮔﻲ ﻫﺎﻳﻲ ﺍﺯ ﻗﺒﻴﻞ ﺭﻧﮓ ،ﺷﻜﻞ ،ﻭﺯﻥ ﻭ ﺟﻨﺲ ﻣﻮﺍﺩ ﻫﺴﺘﻨﺪ .ﺍﻓﺮﺍﺩ ﺩﺍﺭﺍﻱ ﻭﻳﮋﮔﻲ ﻫﺎﻳﻲ
ﻣﺜﻞ ﺗﺎﺭﻳﺦ ﺗﻮﻟﺪ ،ﻭﺍﻟﺪﻳﻦ ،ﻧﺎﻡ ﻭ ﺭﻧﮓ ﭼﺸﻢ ﻫﺴﺘﻨﺪ .ﻫﺮ ﻭﻳﮋﮔﻲ ﺭﺍ ﻣﻲﺗﻮﺍﻥ ﺑﻪ ﻋﻨﻮﺍﻥ ﺭﺍﺑﻄﻪﺍﻱ ﺩﻭﺩﻭﻳﻲ ﻣﻴﺎﻥ ﻳﻚ
ﻛﻼﺱ ﻭ ﻳﻚ ﺩﺍﻣﻨﻪ ﻣﻌﻴﻦ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺖ.
· ﺻﻔﺎﺕ ﺑﻪ ﮐﻼﺱ ﻫﺎ ﻭ ﺍﺷﻴﺎ ﻣﺘﺼﻞ ﻫﺴﺘﻨﺪ ،ﻭ ﺁﻧﻬﺎ ﮐﻼﺱ ﻳﺎ ﺷﻲ ﺭﺍ ﺑﻪ ﻧﻮﻋﻲ ﺗﻌﺮﻳﻒ ﻣﻲ ﮐﻨﻨﺪ.
· ﻳﮏ ﺻﻔﺖ ﻣﻘﺪﺍﺭ ﺧﻮﺩ ﺭﺍ ﺍﺯ ﻳﮏ ﻣﻴﺪﺍﻥ ﻣﻘﺎﺩﻳﺮ ﻣﻲ ﮔﻴﺮﺩ .ﺩﺭ ﺍﮐﺜﺮ ﺣﺎﻻﺕ ،ﺩﺍﻣﻨﻪ ﻓﻘﻂ ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﻣﻘﺎﺩﻳﺮ ﺍﺳﺖ.
ﻣﺜﺎﻝ :ﺩﺍﻣﻨﻪ ﻣﻘﺎﺩﻳﺮ ﺑﺮﺍﻱ ﺭﻧﮓ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ } ﺳﻔﻴﺪ ،ﺳﻴﺎﻩ ،ﻧﻘﺮﻩ ،ﺧﺎﮐﺴﺘﺮﻱ ،ﺁﺑﻲ .{ ... ،
· ﺩﺭ ﺣﺎﻻﺕ ﭘﻴﭽﻴﺪﻩ ﺗﺮ ،ﺩﺍﻣﻨﻪ ﻣﻲ ﺗﻮﺍﻧﺪ ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﮐﻼﺱ ﻫﺎ ﺑﺎﺷﺪ .ﻣﺜﺎﻝ :ﺩﺍﻣﻨﻪ ﻣﻘﺎﺩﻳﺮ ﺑﺮﺍﯼ ﮐﻼﺱ ﺧﻮﺩﺭﻭ
ﻋﺒﺎﺭﺕ ﺍﺳﺖ ﺍﺯ } ۴ﺳﻴﻠﻨﺪﺭ ۶ ،ﺳﻴﻠﻨﺪﺭ ۸ ،ﺳﻴﻠﻨﺪﺭ ۱۰ ،ﺳﻴﻠﻨﺪﺭ ۲۴ ،ﺳﻴﻠﻨﺪﺭ ،ﻭ .{ ...
)ﭘﺎﺭﺍﻣﺘﺮﻫﺎ( ﻋﻤﻞ.
ﺷﻲﺀ ﻓﺮﺳﺘﻨﺪﻩ ﻓﺮﺳﺘﻨﺪﻩ
ﺷﻲﺀ ﮔﻴﺮﻧﺪﻩ
ﭘﻴﻐﺎﻡ ﻫﺎ )(Messages
ﭘﻴﻐﺎﻡ ﻫﺎ ﺍﺑﺰﺍﺭﻫﺎﻱ ﺗﻌﺎﻣﻞ ﺍﺷﻴﺎﺀ ﻫﺴﺘﻨﺪ .ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻓﻨﺎﻭﺭﻱ ﻣﻌﺮﻓﻲ ﺷﺪﻩ ﺩﺭ ﺑﺨﺶ ﻗﺒﻞ ،ﭘﻴﻐﺎﻡ ﺑﺎﻋﺚ ﺑﺮﺍﻧﮕﻴﺨﺘﻦ ﺭﻓﺘﺎﺭﻱ
ﺧﺎﺹ ﺩﺭ ﺷﻲﺀ ﮔﻴﺮﻧﺪﻩ ﻣﻲﺷﻮﺩ .ﺍﻳﻦ ﺭﻓﺘﺎﺭ ﺯﻣﺎﻧﻲ ﻣﺸﺎﻫﺪﻩ ﻣﻲﺷﻮﺩ ﻛﻪ ﻋﻤﻠﻲ ﺍﺟﺮﺍ ﺷﻮﺩ .ﺑﻨﺎﺑﺮﺍﻳﻦ:
· ﭘﻴﻐﺎﻡ ﻫﺎ ﺍﺑﺰﺍﺭﻱ ﻫﺴﺘﻨﺪ ﮐﻪ ﺍﺷﻴﺎ ﺍﺯ ﻃﺮﻳﻖ ﺁﻧﻬﺎ ﺑﺎ ﻳﮑﺪﻳﮕﺮ ﺍﺭﺗﺒﺎﻁ ﺑﺮﻗﺮﺍﺭ ﻣﻲ ﮐﻨﻨﺪ.
· ﻋﻤﻠﻴﺎﺕ ﻣﻮﺟﻮﺩ ﺩﺭ ﺷﻲ ﻓﺮﺳﺘﻨﺪﻩ ﭘﻴﻐﺎﻣﻲ ﺑﻪ ﻓﺮﻡ ﺯﻳﺮ ﺗﻮﻟﻴﺪ ﻣﻲ ﮐﻨﺪ:
· ﭘﻴﻐﺎﻡ ] :ﻣﻘﺼﺪ ،ﻋﻤﻠﻴﺎﺕ ،ﭘﺎﺭﺍﻣﺘﺮﻫﺎ [
ﮐﻪ ﻣﻘﺼﺪ ﺷﻲ ﮔﻴﺮﻧﺪﻩ ﺭﺍ -ﮐﻪ ﺑﺎ ﺩﺭﻳﺎﻓﺖ ﭘﻴﻐﺎﻡ ﻓﻌﺎﻝ ﻣﻲ ﺷﻮﺩ – ﺗﻌﺮﻳﻒ ﻣﻲ ﮐﻨﺪ ،ﻋﻤﻠﻴﺎﺕ ﺑﻪ ﻋﻤﻠﻴﺎﺗﻲ ﺍﺷﺎﺭﻩ ﻣﻲ ﮐﻨﺪ
ﮐﻪ ﭘﻴﻐﺎﻡ ﺭﺍ ﻗﺮﺍﺭ ﺍﺳﺖ ﺩﺭﻳﺎﻓﺖ ﮐﻨﺪ ،ﻭ ﭘﺎﺭﺍﻣﺘﺮﻫﺎ ﺍﻃﻼﻋﺎﺗﻲ ﺭﺍ ﺗﺎﻣﻴﻦ ﻣﻲ ﮐﻨﻨﺪ ﮐﻪ ﺑﺮﺍﻱ ﺩﺭﺳﺖ ﺍﻧﺠﺎﻡ ﺷﺪﻥ ﻋﻤﻠﻴﺎﺕ
ﻻﺯﻣﻨﺪ.
ﺷﻲ ﮔﻴﺮﻧﺪﻩ ﺑﺎ ﺍﻧﺘﺨﺎﺏ ﻋﻤﻠﻴﺎﺗﻲ ﮐﻪ ﻧﺎﻡ ﭘﻴﻐﺎﻡ ﺭﺍ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻣﻲ ﮐﻨﺪ ،ﺍﺟﺮﺍﻱ ﺁﻥ ،ﻭ ﺑﺎﺯﮔﺮﺩﺍﻧﺪﻥ ﮐﻨﺘﺮﻝ ﺑﻪ ﻓﺮﺍﺧﻮﺍﻧﻨﺪﻩ؛ ﺑﻪ
ﭘﻴﻐﺎﻡ ﭘﺎﺳﺦ ﻣﻲ ﺩﻫﺪ.
ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺜﺎﻟﻲ ﺍﺯ ﻣﺒﺎﺩﻟﻪ ﭘﻴﻐﺎﻣﻬﺎ ﺩﺭ ﺩﺍﺧﻞ ﻳﻚ ﺳﻴﺴﺘﻢ ،OOﺍﺷﻴﺎﻱ ﺷﻜﻞ ۷ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ .ﭼﻬﺎﺭ ﺷﻲﺀ C ،B ،A
ﻭ Dﺑﺎ ﻣﺒﺎﺩﻟﻪ ﭘﻴﻐﺎﻡ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺍﺭﺗﺒﺎﻁ ﺑﺮﻗﺮﺍﺭ ﻣﻲﻛﻨﻨﺪ .ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﺍﮔﺮ ﺷﻲﺀ Bﺑﺨﻮﺍﻫﺪ ﻋﻤﻠﻴﺎﺕ op10ﺍﺯ ﺷﻲﺀ Dﺭﺍ
ﺍﺟﺮﺍ ﻛﻨﺪ ،ﭘﻴﻐﺎﻣﻲ ﺑﻪ ﺷﻜﻞ ﺯﻳﺮ ﺑﻪ Dﺍﺭﺳﺎﻝ ﻣﻲﻛﻨﺪ:
)D . op10 (data
ﺷﻲﺀ Dﻧﻴﺰ ﺑﻪ ﻋﻨﻮﺍﻥ ﺑﺨﺸﻲ ﺍﺯ ﺍﺟﺮﺍﻱ op10ﻣﻤﻜﻦ ﺍﺳﺖ ﭘﻴﻐﺎﻣﻲ ﺑﻪ ﺷﻜﻞ ﺯﻳﺮ ﺑﻪ Cﺑﻔﺮﺳﺘﺪ:
)C . op08 (data
Cﻋﻤﻞ op08ﺭﺍ ﻣﻲﻳﺎﺑﺪ ،ﺁﻥ ﺭﺍ ﺍﺟﺮﺍ ﻣﻲﻛﻨﺪ ،ﻭ ﺳﭙﺲ ﻳﻚ ﻣﻘﺪﺍﺭ ﺑﺎﺯﮔﺸﺘﻲ ﻣﻨﺎﺳﺐ ﺑﻪ Dﺍﺭﺳﺎﻝ ﻣﻲﻛﻨﺪ .ﻋﻤﻞ op10
ﻛﺎﻣﻞ ﻣﻲﺷﻮﺩ ﻭ ﻣﻘﺪﺍﺭﻱ ﺭﺍ ﺑﻪ Bﺑﺎﺯﻣﻲﮔﺮﺩﺍﻧﺪ.
A
Op1
Op2 B
Op3
Op4
OP5
ﭘﻴﻐﺎﻡ
ﻣﻘﺪﺍﺭ ﺑﺮﮔﺸﺘﻲ
C D
OP6
OP7
Op10
OP8 Op11
OP9 ﻣﻘﺪﺍﺭ ﺑﺮﮔﺸﺘﻲ
ﻭﺭﺍﺛﺖ )(Inheritance
ﻭﺭﺍﺛﺖ ﻳﮑﻲ ﺍﺯ ﻣﻬﻤﺘﺮﻳﻦ ﺗﻔﺎﻭﺕ ﻫﺎ ﺑﻴﻦ ﺳﻴﺴﺘﻢ ﻫﺎﻱ ﺳﻨﺘﻲ ﻭ ﺳﻴﺴﺘﻢ ﻫﺎﻱ ﺷﻲ ﮔﺮﺍﺳﺖ .ﻳﮏ ﺯﻳﺮ ﮐﻼﺱ Yﺗﻤﺎﻡ
ﺻﻔﺎﺕ ﻭ ﻋﻤﻠﻴﺎﺕ ﺭﺍ ﺍﺯ ﺯﺑﺮ ﮐﻼﺱ ﺧﻮﺩ Xﺑﻪ ﺍﺭﺙ ﻣﻲ ﺑﺮﺩ .ﺍﻳﻦ ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﺍﺳﺖ ﮐﻪ ﺗﻤﺎﻡ ﺳﺎﺧﺘﺎﺭﻫﺎﻱ ﺩﺍﺩﻩ ﻭ ﺍﻟﮕﻮﺭﻳﺘﻢ
ﻫﺎﻳﻲ ﮐﻪ ﺩﺭ ﺍﺑﺘﺪﺍ ﺑﺮﺍﻱ Xﻃﺮﺍﺣﻲ ﻭ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺷﺪﻩ ﺍﻧﺪ ،ﺍﮐﻨﻮﻥ ﺑﺮﺍﻱ Yﻧﻴﺰ ﻣﻮﺟﻮﺩ ﻣﻲ ﺑﺎﺷﻨﺪ.
ﻫﺮ ﺗﻐﻴﻴﺮ ﺩﺭ ﺩﺍﺩﻩ ﻫﺎ ﻳﺎ ﻋﻤﻠﻴﺎﺕ ﻣﻮﺟﻮﺩ ﺩﺭ ﺯﺑﺮﮐﻼﺱ ﺳﺮﻳﻌﺎ ﺑﻮﺳﻴﻠﻪ ﺗﻤﺎﻡ ﺯﻳﺮﮐﻼﺳﻬﺎﻳﻲ ﮐﻪ ﺍﺯ ﺁﻥ ﺯﺑﺮﮐﻼﺱ ﺍﺭﺙ ﻣﻲ ﺑﺮﻧﺪ،
ﺑﻪ ﺍﺭﺙ ﺑﺮﺩﻩ ﻣﻲ ﺷﻮﺩ .ﺑﻨﺎﺑﺮﺍﻳﻦ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺐ ﮐﻼﺱ ﺗﺒﺪﻳﻞ ﺑﻪ ﻣﮑﺎﻧﻴﺰﻣﻲ ﺷﺪﻩ ﺍﺳﺖ ﮐﻪ ﺑﻮﺳﻴﻠﻪ ﺁﻥ ﺗﻐﻴﻴﺮﺍﺕ )ﺩﺭ ﺳﻄﻮﺡ
ﺑﺎﻻ( ﺳﺮﻳﻌﺎ ﻣﻲ ﺗﻮﺍﻧﻨﺪ ﺩﺭ ﺳﻴﺴﺘﻢ ﭘﺨﺶ ﺷﻮﻧﺪ.
· ﮔﺰﻳﻨﻪ ﻫﺎﻱ ﻻﺯﻡ ﺑﺮﺍﻱ ﺗﻮﻟﻴﺪ ﻳﮏ ﮐﻼﺱ ﺟﺪﻳﺪ
ﻣﯽ ﺗﻮﺍﻥ ﻳﮏ ﮐﻼﺱ ﺭﺍ ﺍﺯ ﺍﺑﺘﺪﺍ ﻃﺮﺍﺣﻲ ﻭ ﺳﺎﺧﺖ ﺩﺭ ﺍﻳﻦ ﺣﺎﻟﺖ ﺍﺯ ﻭﺭﺍﺛﺖ ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﻲ ﺷﻮﺩ. .۱
ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺐ ﮐﻼﺱ ﺭﺍ ﺟﺴﺘﺠﻮ ﮐﻨﻴﻢ ﺗﺎ ﮐﻼﺳﻲ ﺑﺎﻻﺗﺮ ﺭﺍ ﺩﺭ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺐ ﭘﻴﺪﺍ ﮐﻨﻴﻢ ﮐﻪ ﺍﮐﺜﺮ ﺻﻔﺎﺕ ﻭ .۲
ﻋﻤﻠﻴﺎﺕ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﺭﺍ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ .ﮐﻼﺱ ﺟﺪﻳﺪ ﺍﺯ ﮐﻼﺱ ﺑﺎﻻﺗﺮ ﺍﺭﺙ ﻣﻲ ﺑﺮﺩ ﻭ ﺩﺭ ﺻﻮﺭﺕ ﻧﻴﺎﺯ ﺻﻔﺎﺕ ﻭ ﻋﻤﻠﻴﺎﺕ
ﺟﺪﻳﺪ ﺭﺍ ﺍﺿﺎﻓﻪ ﻣﻲ ﮐﻨﻴﻢ.
ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺐ ﮐﻼﺱ ﺭﺍ ﺩﻭﺑﺎﺭﻩ ﺳﺎﺯﻣﺎﻧﺪﻫﻲ ﮐﻨﻴﻢ ﺗﺎ ﺻﻔﺎﺕ ﻭ ﻋﻤﻠﻴﺎﺕ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﻗﺎﺑﻞ ﺍﺭﺙ ﺑﺮﯼ ﺷﻮﻧﺪ. .۳
ﺧﺼﻮﺻﻴﺎﺕ ﻳﮏ ﮐﻼﺱ ﻣﻮﺟﻮﺩ ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺩﻭﺑﺎﺭﻩ ﻧﻮﻳﺴﻲ ) (Overrideﮐﺮﺩ ﻭ ﻧﺴﺨﻪ ﻫﺎﻱ ﺧﺼﻮﺻﻲ .۴
ﺻﻔﺎﺕ ﻭ ﻋﻤﻠﻴﺎﺕ ﺭﺍ ﺑﺮﺍﻱ ﺍﻳﻦ ﮐﻼﺱ ﺟﺪﻳﺪ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﮐﺮﺩ.
· ﺳﭙﺲ ،ﺩﺭ ﺩﺍﺧﻞ ﻃﺮﺍﺣﻲ ﻫﺮ ﻧﻮﻉ ﮔﺮﺍﻑ ،ﻣﻨﻄﻖ ﮐﻨﺘﺮﻟﻲ ﻣﺸﺎﺑﻪ ﺯﻳﺮ ﺑﺎﻳﺪ ﺗﻌﺒﻴﻪ ﺷﻮﺩ :
ﺑﺮﺍﻱ ﺣﻞ ﺍﻳﻦ ﻣﺸﮑﻞ ،ﺗﻤﺎﻡ ﮔﺮﺍﻑ ﻫﺎ ﺭﺍ ﺯﻳﺮ ﮐﻼﺱ ﻫﺎﻳﻲ ﺍﺯ ﻳﮏ ﮐﻼﺱ ﮐﻠﻲ ﺑﻪ ﻧﺎﻡ graphﻗﺮﺍﺭ ﻣﻲ ﺩﻫﻴﻢ .ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ
ﺍﺯ ﻣﻔﻬﻮﻡ overloadingﻫﺮ ﺯﻳﺮ ﮐﻼﺱ ﻳﮏ ﻋﻤﻠﻴﺎﺕ ﺑﻪ ﻧﺎﻡ drawﺗﻌﺮﻳﻒ ﻣﻲ ﮐﻨﺪ .ﻳﮏ ﺷﻲ ﻣﻲ ﺗﻮﺍﻧﺪ ﭘﻴﻐﺎﻡ
drawﺭﺍ ﺑﻪ ﻫﺮﻳﮏ ﺍﺯ ﺍﺷﻴﺎﻳﻲ ﮐﻪ ﺍﺯ ﻫﺮ ﻳﮏ ﺍﺯ ﺯﻳﺮ ﮐﻼﺱ ﻫﺎ ﻧﻤﻮﻧﻪ ﺳﺎﺯﻱ ) (instantiateﺷﺪﻩ ﺍﺳﺖ ﺑﻔﺮﺳﺘﺪ .ﺷﻴﺌﻲ
ﮐﻪ ﭘﻴﻐﺎﻡ ﺭﺍ ﺩﺭﻳﺎﻓﺖ ﻣﻲ ﮐﻨﺪ ،ﻋﻤﻠﻴﺎﺕ drawﻣﺮﺑﻮﻁ ﺑﻪ ﺧﻮﺩ ﺭﺍ ﻓﺮﺍﺧﻮﺍﻧﻲ ﻣﻲ ﮐﻨﺪ ﺗﺎ ﮔﺮﺍﻑ ﻣﻨﺎﺳﺐ ﺭﺍ ﺗﻮﻟﻴﺪ ﮐﻨﺪ.
.۷ﺳﺎﺧﺘﺎﺭﻫﺎﻳﻲ)ﻣﺜﻞ ﺣﺴﮕﺮﻫﺎ ،ﻭﺳﺎﻳﻞ ﻧﻘﻠﻴﻪ ﭼﻬﺎﺭ ﭼﺮﺥ ﻳﺎ ﮐﺎﻣﭙﻴﻮﺗﺮﻫﺎ( ﮐﻪ ﮐﻼﺳﻲ ﺍﺯ ﺍﺷﻴﺎﺀ ﻳﺎ ﮐﻼﺱ ﻫﺎﻱ
ﻣﺮﺗﺒﻄﻲ ﺍﺯ ﺍﺷﻴﺎﺀ ﺭﺍ ﺗﻌﺮﻳﻒ ﻣﻲ ﮐﻨﻨﺪ.
ﺗﻮﺟﻪ ﺑﻪ ﺍﻳﻦ ﻧﮑﺘﻪ ﻧﻴﺰ ﻣﻬﻢ ﺍﺳﺖ ﮐﻪ ﺍﺷﻴﺎﺀ ﭼﻪ ﭼﻴﺰﻫﺎﻳﻲ ﻧﻴﺴﺘﻨﺪ .ﺑﻪ ﻃﻮﺭ ﮐﻠﻲ ﻳﮏ ﺷﻲﺀ ﻫﻴﭽﮕﺎﻩ ﻧﺒﺎﻳﺪ ﻳﮏ “ﻧﺎﻡ ﺭﻭﻳﻪ ﺍﻱ
ﺩﺳﺘﻮﺭﻱ” ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ .ﻳﮏ ﺗﺠﺰﻳﻪ ﮔﺮﺍﻣﺮﻱ ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺑﺮﺍﻱ ﺗﻔﮑﻴﮏ ﺍﺷﻴﺎﺀ )ﺍﺳﺎﻣﻲ( ﻭ ﻋﻤﻠﻴﺎﺕ ﺑﻪ ﮐﺎﺭ ﺑﺮﺩ.
· ﺷﺶ ﺧﺼﻮﺻﻴﺖ ﮔﺰﻳﻨﺸﻲ ﮐﻪ ﺗﺤﻠﻴﻠﮕﺮ ﺑﺎﻳﺪ ﺩﺭ ﻣﻮﺭﺩ ﻫﺮ ﺷﻲﺀ ﺑﺎﻟﻘﻮﻩ ﺍﻱ ﮐﻪ ﺩﺭ ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﺑﮑﺎﺭ ﻣﯽ ﺑﺮﺩ ﺩﺭ ﻧﻈﺮ
ﺑﮕﻴﺮﺩ :
.۱ﺍﻃﻼﻋﺎﺕ ﺫﺧﻴﺮﻩ ﺷﺪﻩ -ﺷﻲﺀ ﺑﺎﻟﻘﻮﻩ ﻓﻘﻂ ﺩﺭ ﺻﻮﺭﺗﻲ ﻫﻨﮕﺎﻡ ﺗﺤﻠﻴﻞ ﻣﻔﻴﺪ ﺧﻮﺍﻫﺪ ﺑﻮﺩ ﮐﻪ ﺑﺮﺍﻱ ﻋﻤﻠﮑﺮﺩ ﺳﻴﺴﺘﻢ
ﺑﻪ ﺍﻃﻼﻋﺎﺕ ﺁﻥ ﻧﻴﺎﺯ ﺑﺎﺷﺪ.
.۲ﺧﺪﻣﺎﺕ ﻣﻮﺭﺩ ﻧﻴﺎﺯ -ﺷﻲﺀ ﺑﺎﻟﻘﻮﻩ ﺑﺎﻳﺪ ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﻋﻤﻠﻴﺎﺕ ﻗﺎﺑﻞ ﺷﻨﺎﺳﺎﻳﻲ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ﻣﻲ ﺗﻮﺍﻧﻨﺪ ﺻﻔﺎﺕ
ﺁﻧﺮﺍ ﺑﻪ ﻃﺮﻳﻘﻲ ﺗﻐﻴﻴﺮ ﺩﻫﻨﺪ.
.۳ﺻﻔﺎﺕ ﭼﻨﺪﮔﺎﻧﻪ -ﻳﮏ ﺷﻲﺀ ﺑﺎ ﻳﮏ ﺻﻔﺖ ﻣﻤﮑﻦ ﺍﺳﺖ ﺩﺭ ﻃﻮﻝ ﻃﺮﺍﺣﻲ ﻣﻔﻴﺪ ﺑﺎﺷﺪ ﻭﻟﻲ ﻣﻤﮑﻦ ﺍﺳﺖ ﺑﻬﺘﺮ ﺑﺎﺷﺪ
ﺩﺭ ﻫﻨﮕﺎﻡ ﺗﺤﻠﻴﻞ ﺑﻪ ﻋﻨﻮﺍﻥ ﺻﻔﺘﻲ ﺍﺯ ﺷﻲﺀ ﺩﻳﮕﺮ ﻣﻨﻈﻮﺭ ﺷﻮﺩ.
.۴ﺻﻔﺎﺕ ﻣﺸﺘﺮﮎ -ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﺻﻔﺎﺕ ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺑﺮﺍﻱ ﻳﮏ ﺷﻲﺀ ﺑﺎﻟﻘﻮﻩ ﺗﻌﺮﻳﻒ ﮐﺮﺩ ﻭ ﺍﻳﻦ ﺻﻔﺖ ﻫﺎ ﺩﺭ ﺗﻤﺎﻡ
ﻧﻤﻮﻧﻪ ﻫﺎﻱ ﺷﻲﺀ ﺑﮑﺎﺭ ﻣﻲ ﺭﻭﻧﺪ.
.۵ﻋﻤﻠﻴﺎﺕ ﻣﺸﺘﺮﮎ -ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﻋﻤﻠﻴﺎﺕ ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺑﺮﺍﻱ ﻳﮏ ﺷﻲﺀ ﺑﺎﻟﻘﻮﻩ ﺗﻌﺮﻳﻒ ﮐﺮﺩ ﻭ ﺍﻳﻦ ﻋﻤﻠﻴﺎﺕ ﺩﺭ
ﺗﻤﺎﻡ ﻧﻤﻮﻧﻪ ﻫﺎﻱ ﺷﻲﺀ ﺑﮑﺎﺭ ﻣﻲ ﺭﻭﻧﺪ.
.۶ﻧﻴﺎﺯﻫﺎﻱ ﺿﺮﻭﺭﻱ -ﻣﻮﺟﻮﺩﻳﺖ ﻫﺎﻱ ﺧﺎﺭﺟﻲ ﮐﻪ ﺩﺭ ﻓﻀﺎﻱ ﻣﺴﺄﻟﻪ ﻇﺎﻫﺮ ﻣﻲ ﺷﻮﻧﺪ ﻭ ﺍﻃﻼﻋﺎﺕ ﺿﺮﻭﺭﻱ ﺑﺮﺍﻱ
ﮐﺎﺭﮐﺮﺩ ﻫﺮ ﺭﺍﻫﮑﺎﺭ ﺭﺍ ﺗﻮﻟﻴﺪ ﻳﺎ ﻣﺼﺮﻑ ﻣﻲ ﮐﻨﻨﺪ ،ﺑﺎﻳﺪ ﺑﻪ ﻋﻨﻮﺍﻥ ﺷﻲﺀ ﺩﺭ ﻣﺪﻝ ﻧﻴﺎﺯﻫﺎ ﺗﻌﺮﻳﻒ ﺷﻮﻧﺪ.
· ﺑﺮﺍﻱ ﺗﻮﺳﻌﻪ ﻳﮏ ﻣﺠﻤﻮﻋﻪ ﺑﺎﻣﻌﻨﻲ ﺍﺯ ﺻﻔﺎﺕ ،ﺗﺤﻠﻴﻠﮕﺮ ﻣﻲ ﺗﻮﺍﻧﺪ ﺷﺮﺡ ﭘﺮﺩﺍﺯﺵ ﻣﺴﺄﻟﻪ ﺭﺍ ﻣﻄﺎﻟﻌﻪ ﮐﻨﺪ ﻭ
ﭼﻴﺰﻫﺎﻳﻲ ﺭﺍ ﺍﻧﺘﺨﺎﺏ ﮐﻨﺪ ﮐﻪ ﺑﻪ ﻃﻮﺭ ﻣﻨﻄﻘﻲ ﺑﻪ ﺷﻲﺀ ﺗﻌﻠﻖ ﺩﺍﺭﻧﺪ.
· ﺑﻪ ﻋﻼﻭﻩ ﺑﺎﻳﺪ ﺑﻪ ﺍﻳﻦ ﺳﺆﺍﻝ ﭘﺎﺳﺦ ﺩﺍﺩ» :ﭼﻪ ﻋﻨﺎﺻﺮ ﺩﺍﺩﻩ ﺍﻱ )ﻣﺮﮐﺐ ﻭﻳﺎ ﺳﺎﺩﻩ( ﺍﻳﻦ ﺷﻲﺀ ﺭﺍ ﺩﺭ ﺣﻴﻄﻪ ﻣﺴﺄﻟﻪ ﺑﻪ
ﻃﻮﺭ ﮐﺎﻣﻞ ﺗﻌﺮﻳﻒ ﻣﻲ ﮐﻨﻨﺪ؟«
ﺗﻌﺮﻳﻒ ﻋﻤﻠﻴﺎﺕ
ﻋﻤﻠﻴﺎﺕ ،ﺭﻓﺘﺎﺭ ﻳﮏ ﺷﻲﺀ ﺭﺍ ﺗﻌﺮﻳﻒ ﻣﻲ ﮐﻨﻨﺪ ﻭ ﺻﻔﺎﺕ ﺁﻧﺮﺍ ﺑﻪ ﻃﺮﻳﻘﻲ ﺗﻐﻴﻴﺮ ﻣﻲ ﺩﻫﻨﺪ .ﺑﻪ ﻃﻮﺭ ﻣﺸﺨﺺ ،ﻳﮏ ﻋﻤﻞ ﻣﻘﺪﺍﺭ
ﻳﮏ ﻳﺎ ﭼﻨﺪ ﺻﻔﺖ ﻣﻮﺟﻮﺩ ﺩﺭ ﺷﻲﺀ ﺭﺍ ﺗﻐﻴﻴﺮ ﻣﻲ ﺩﻫﺪ .ﻳﮏ ﻋﻤﻞ ﺑﺎﻳﺪ ﺍﺯ ﻣﺎﻫﻴﺖ ﺻﻔﺎﺕ ﺷﻲﺀ ﺁﮔﺎﻩ ﺑﺎﺷﺪ ﻭ ﺑﺎﻳﺪ ﺑﻪ ﺷﻴﻮﻩ ﺍﻱ
ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺷﻮﺩ ﮐﻪ ﺩﺳﺘﮑﺎﺭﻱ ﺩﺍﺩﻩ ﻫﺎﻱ ﺑﻪ ﺩﺳﺖ ﺁﻣﺪﻩ ﺍﺯ ﺻﻔﺎﺕ ﺭﺍ ﻣﻴﺴﺮ ﺳﺎﺯﺩ.
· ﺭﺩﻩ ﺑﻨﺪﻱ ﻋﻤﻠﻴﺎﺕ
.١ﻋﻤﻠﻴﺎﺗﻲ ﮐﻪ ﺑﺎ ﺩﺍﺩﻩ ﻫﺎ ﺭﺍ ﺑﻪ ﻃﺮﻳﻘﻲ ﮐﺎﺭ ﻣﻲ ﮐﻨﻨﺪ)ﻣﺜﻼﹰ ﺍﺿﺎﻓﻪ ﮐﺮﺩﻥ ،ﺣﺬﻑ ﮐﺮﺩﻥ ،ﻗﺎﻟﺐ ﺑﻨﺪﻱ ﺩﻭﺑﺎﺭﻩ ﻭ
ﮔﺰﻳﻨﺶ(،
.۲ﻋﻤﻠﻴﺎﺗﻲ ﮐﻪ ﻣﺤﺎﺳﺒﻪ ﺍﻱ ﺭﺍ ﺍﻧﺠﺎﻡ ﻣﻲ ﺩﻫﻨﺪ ،ﻭ
.۳ﻋﻤﻠﻴﺎﺗﻲ ﺑﺮﺍﻱ ﺭﺥ ﺩﺍﺩﻥ ﻳﮏ ﺭﻭﻳﺪﺍﺩ ﮐﻨﺘﺮﻟﻲ ﺑﺮ ﺷﻲﺀ ﻧﻈﺎﺭﺕ ﻣﻲ ﮐﻨﻨﺪ.
ﺩﺭ ﺍﺛﻨﺎﻱ ﻃﺮﺡ ﺭﻳﺰﻱ ،ﻓﻌﺎﻟﻴﺖ ﻫﺎﻱ ﻣﺮﺗﺒﻂ ﺑﺎ ﻫﺮ ﻳﮏ ﺍﺯ ﻣﺆﻟﻔﻪ ﻫﺎﻱ ﻣﺴﺘﻘﻞ ،ﺑﺮﻧﺎﻣﻪ ﺭﻳﺰﻱ ﻭ ﺯﻣﺎﻧﺒﻨﺪﻱ ﻣﻲ ·
ﺷﻮﺩ.
ﻃﻲ ﻣﺮﺍﺣﻞ ﺍﻭﻟﻴﻪ ﻣﻬﻨﺪﺳﻲ ،ﺗﺤﻠﻴﻞ ﻭ ﻃﺮﺍﺣﻲ ﺑﻪ ﻃﻮﺭ ﺗﮑﺮﺍﺭﻱ ﺍﻧﺠﺎﻡ ﻣﻲ ﺷﻮﺩ .ﻫﺪﻑ ﺁﻥ ﺍﺳﺖ ﮐﻪ ﮐﻠﻴﻪ ·
ﻋﻨﺎﺻﺮ ﻣﻬﻢ ﻣﺪﻝ ﻫﺎﻱ ﺗﺤﻠﻴﻞ ﻭ ﻃﺮﺍﺣﻲ OOﻣﺸﺨﺺ ﺷﻮﻧﺪ.
ﺑﻪ ﻣﻮﺍﺯﺍﺕ ﭘﻴﺸﺮﻓﺖ ﮐﺎﺭﻫﺎﻱ ﻣﻬﻨﺪﺳﻲ ،ﻧﺴﺨﻪ ﻫﺎﻱ ﺗﺪﺭﻳﺠﻲ ﺍﺯ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺳﺎﺧﺘﻪ ﻣﻲ ﺷﻮﺩ. ·
ﺩﺭ ﺍﺛﻨﺎﻱ ﺍﻳﻦ ﺗﮑﺎﻣﻞ ،ﺑﺮﺍﻱ ﻫﺮ ﮔﺎﻡ ﻳﮏ ﺳﺮﻱ ﺑﺎﺯﺑﻴﻨﻲ ،ﺍﺭﺯﻳﺎﺑﻲ ﻣﺸﺘﺮﻱ ﻭ ﺁﺯﻣﻮﻥ ﺍﺟﺮﺍ ﻣﻲ ﺷﻮﺩ ﻭ ﻧﺘﻴﺠﻪ ·
ﺁﻥ ﺑﺮ ﻓﻌﺎﻟﻴﺖ ﺑﺮﻧﺎﻣﻪ ﺭﻳﺰﻱ ﺑﻌﺪﻱ ﺗﺄﺛﻴﺮ ﺧﻮﺍﻫﺪ ﮔﺬﺍﺷﺖ.
· ﺗﻌﺪﺍﺩ ﻣﺘﻮﻥ ﺳﻨﺎﺭﻳﻮ ﻣﺴﺘﻘﻴﻤﺎﹰ ﺑﺎ ﺍﻧﺪﺍﺯﻩ ﺑﺮﻧﺎﻣﻪ ﮐﺎﺭﺑﺮﺩﻱ ﻭ ﺑﺎ ﺗﻌﺪﺍﺩ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﺁﺯﻣﻮﻧﻲ ﮐﻪ ﺑﺎﻳﺪ ﭘﺲ ﺍﺯ ﺳﺎﺧﺘﻪ
ﺷﺪﻥ ﺳﻴﺴﺘﻢ ﺭﻭﻱ ﺁﻥ ﺍﻣﺘﺤﺎﻥ ﺷﻮﻧﺪ ،ﺍﺭﺗﺒﺎﻁ ﺩﺍﺭﺩ.
ﻣﻌﻴﺎﺭﻫﺎ ﻭ ﺑﺮﺁﻭﺭﺩ ﭘﺮﻭﮊﻩ
.۱ﺗﻌﺪﺍﺩ ﮐﻼﺱ ﻫﺎﻱ ﮐﻠﻴﺪﻱ .ﮐﻼﺱ ﻫﺎﻱ ﮐﻠﻴﺪﻱ »ﻣﺆﻟﻔﻪ ﻫﺎﻱ ﺑﺴﻴﺎﺭ ﻣﺴﺘﻘﻞ« ﻫﺴﺘﻨﺪ ﮐﻪ ﺩﺭ ﺍﻭﺍﻳﻞ
OOAﺗﻌﺮﻳﻒ ﻣﻲ ﺷﻮﻧﺪ.
ﺍﺯ ﺁﻧﺠﺎ ﮐﻪ ﮐﻼﺱ ﻫﺎﻱ ﮐﻠﻴﺪﻱ ،ﺩﺭ ﺩﺍﻣﻨﻪ ﻣﺴﺄﻟﻪ ﺍﻫﻤﻴﺖ ﺍﺳﺎﺳﻲ ﺩﺍﺭﻧﺪ ،ﺗﻌﺪﺍﺩ ﺍﻳﻦ ﮔﻮﻧﻪ ﮐﻼﺱ ﻫﺎ ﺷﺎﺧﺼﻲ ﺍﺯ
ﻣﻘﺪﺍﺭ ﮐﺎﺭ ﻻﺯﻡ ﺑﺮﺍﻱ ﺗﻮﺳﻌﻪ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﻭ ﻧﻴﺰ ﺷﺎﺧﺼﻲ ﺍﺯ ﻣﻘﺪﺍﺭ ﺑﺎﻟﻘﻮﻩ ﺍﺳﺘﻔﺎﺩﻩ ﻣﺠﺪﺩ ﺩﺭ ﺍﺛﻨﺎﻱ ﺗﻮﺳﻌﻪ ﺳﻴﺴﺘﻢ ﺍﺳﺖ.
.۲ﺗﻌﺪﺍﺩﮐﻼﺱ ﻫﺎﻱ ﭘﺸﺘﻴﺒﺎﻥ .ﮐﻼﺱ ﻫﺎﻱ ﭘﺸﺘﻴﺒﺎﻥ ﺑﺮﺍﻱ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺳﻴﺴﺘﻢ ﻻﺯﻣﻨﺪ ﻭﻟﻲ ﺍﺭﺗﺒﺎﻁ ﻣﺴﺘﻘﻴﻢ ﺑﺎ
ﺩﺍﻣﻨﻪ ﻣﺴﺄﻟﻪ ﻧﺪﺍﺭﻧﺪ.
ﻣﺜﺎﻝ ﻫﺎ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ ﮐﻼﺱ ﻫﺎﻱ ،GUIﮐﻼﺱ ﻫﺎﻱ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺑﺎﻧﮏ ﻫﺎﻱ ﺍﻃﻼﻋﺎﺗﻲ ﻭ ﮐﻼﺱ ﻫﺎﻱ
ﻣﺤﺎﺳﺒﺎﺗﻲ.
.۳ﺗﻌﺪﺍﺩ ﻣﻴﺎﻧﮕﻴﻦ ﮐﻼﺱ ﻫﺎﻱ ﭘﺸﺘﻴﺒﺎﻥ ﺑﻪ ﺍﺯﺍﻱ ﻫﺮ ﮐﻼﺱ ﮐﻠﻴﺪﻱ -ﺍﮔﺮ ﺗﻌﺪﺍﺩ ﻣﻴﺎﻧﮕﻴﻦ ﮐﻼﺱ ﻫﺎﻱ
ﭘﺸﺘﻴﺒﺎﻥ ﺑﻪ ﺍﺯﺍﻱ ﻫﺮ ﮐﻼﺱ ﺑﺮﺍﻱ ﻳﮏ ﻣﺴﺄﻟﻪ ﻣﺸﺨﺺ ﺑﺎﺷﺪ ،ﺑﺮﺁﻭﺭﺩ ﺑﺴﻴﺎﺭ ﺳﺎﺩﻩ ﻣﻲ ﺷﻮﺩ.
ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲ ﺷﻮﺩ ﮐﻪ ﺩﺭ ﺑﺮﻧﺎﻣﻪ ﮐﺎﺭﺑﺮﺩﻱ ﺑﺎ GUIﺗﻌﺪﺍﺩ ﮐﻼﺱ ﻫﺎﻱ ﭘﺸﺘﻴﺒﺎﻥ ﺩﻭ ﺗﺎﺳﻪ ﺑﺮﺍﺑﺮ ﮐﻼﺱ ﻫﺎﻱ ﮐﻠﻴﺪﻱ
ﻭ ﺩﺭ ﺑﺮﻧﺎﻣﻪ ﻫﺎﻱ ﻓﺎﻗﺪ GUIﻳﮏ ﺗﺎ ﺩﻭ ﺑﺮﺍﺑﺮ ﮐﻼﺱ ﻫﺎﻱ ﮐﻠﻴﺪﻱ ﺑﺎﺷﺪ.
.۴ﺗﻌﺪﺍﺩ ﺯﻳﺮﺳﻴﺴﺘﻢ ﻫﺎ -ﻳﮏ ﺯﻳﺮﺳﻴﺴﺘﻢ ،ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﮐﻼﺱ ﻫﺎﺳﺖ ﮐﻪ ﭘﺸﺘﻴﺒﺎﻥ ﻋﻤﻠﮑﺮﺩﻱ ﺍﺳﺖ ﮐﻪ ﺑﺮﺍﻱ
ﮐﺎﺭﺑﺮ ﻧﻬﺎﻳﻲ ﺳﻴﺴﺘﻢ ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪﻩ ﺍﺳﺖ .ﻫﻨﮕﺎﻣﻲ ﮐﻪ ﺯﻳﺮﺳﻴﺴﺘﻢ ﻫﺎ ﺷﻨﺎﺳﺎﻳﻲ ﺷﺪﻧﺪ ،ﺗﻨﻈﻴﻢ ﻳﮏ ﺯﻣﺎﻧﺒﻨﺪﻱ
ﻣﻨﻄﻘﻲ ،ﺁﺳﺎﻧﺘﺮ ﻣﻲ ﺷﻮﺩ.
.۵ﺗﻌﺪﺍﺩ ﮐﻞ ﮐﻼﺱ ﻫﺎ )ﮐﻠﻴﺪﻱ +ﭘﺸﺘﻴﺒﺎﻥ( ﺭﺍ ﺩﺭ ﺗﻌﺪﺍﺩ ﻣﻴﺎﻧﮕﻴﻦ ﻭﺍﺣﺪﻫﺎﻱ ﮐﺎﺭﻱ ﺿﺮﺏ ﮐﻨﻴﺪ Lorenz.ﻭ
Kiddﺑﻪ ﺍﺯﺍﻱ ﻫﺮ ﮐﻼﺱ ۱۵ﺗﺎ ۲۰ﻧﻔﺮ-ﺭﻭﺯ ﮐﺎﺭ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲ ﮐﻨﻨﺪ.
.۶ﺑﺮﺁﻭﺭﺩ ﻣﺒﺘﻨﻲ ﺑﺮ ﮐﻼﺳﻬﺎ ﺭﺍ ﺑﺎ ﺿﺮﺏ ﺗﻌﺪﺍﺩ ﻣﻴﺎﻧﮕﻴﻦ ﻭﺍﺣﺪﻫﺎﻱ ﮐﺎﺭ ﺑﻪ ﺍﺯﺍﻱ ﻫﺮ ﻣﺘﻦ ﺳﻨﺎﺭﻳﻮ ،ﭼﮏ ﮐﻨﻴﺪ.
ﺯﻣﺎﻧﺒﻨﺪﻱ ﭘﺮﻭﮊﻩ ﻫﺎﻱ ﺷﻲﺀﮔﺮﺍ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﺎﻫﻴﺖ ﺗﮑﺮﺍﺭﻱ ﭼﻬﺎﺭﭼﻮﺏ ﻓﺮﺁﻳﻨﺪ ،ﺩﺷﻮﺍﺭ ﺍﺳﺖ Lorenz .ﻭ Kiddﻣﺠﻤﻮﻋﻪ
ﺍﻱ ﺍﺯ ﻣﻌﻴﺎﺭﻫﺎ ﺭﺍ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲ ﮐﻨﻨﺪ ﮐﻪ ﺑﻪ ﺯﻣﺎﻧﺒﻨﺪﻱ ﭘﺮﻭﮊﻩ ﮐﻤﮏ ﻣﻲ ﮐﻨﺪ:
.۱ﺗﻌﺪﺍﺩﺗﮑﺮﺍﺭﻫﺎﻱ ﺍﺻﻠﻲ -ﺑﺎ ﻳﺎﺩﺁﻭﺭﻱ ﻣﺪﻝ ﺣﻠﺰﻭﻧﻲ ﻳﮏ ﺩﻭﺭ ﺗﮑﺮﺍﺭ ﺍﺻﻠﻲ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﻃﻲ ﮐﺮﺩﻥ ۳۶۰ﺩﺭﺟﻪ
ﺍﺯ ﺣﻠﺰﻭﻥ ﺍﺳﺖ Lorenz .ﻭ Kiddﭘﻴﺸﻨﻬﺎﺩ ﻣﻲ ﮐﻨﻨﺪ ﺗﮑﺮﺍﺭﻫﺎﻳﻲ ﺑﺎ ﻃﻮﻝ ۲,۵ﺗﺎ ۴ﻣﺎﻩ ﺭﺍ ﺑﻪ ﺑﻬﺘﺮﻳﻦ ﻭﺟﻪ
ﻣﻲ ﺗﻮﺍﻥ ﭘﻴﮕﻴﺮﻱ ﻭ ﻣﺪﻳﺮﻳﺖ ﮐﺮﺩ.
.۲ﺗﻌﺪﺍﺩ ﻗﺮﺍﺭﺩﺍﺩﻫﺎﻱ ﮐﺎﻣﻞ ﺷﺪﻩ -ﻗﺮﺍﺭﺩﺍﺩ ﺑﻪ ﮔﺮﻭﻫﻲ ﺍﺯ ﻣﺴﺆﻭﻟﻴﺖ ﻫﺎﻱ ﻋﻤﻮﻣﻲ ﻣﺮﺗﺒﻂ ﺍﻃﻼﻕ ﻣﻲ ﺷﻮﺩ
ﮐﻪ ﺗﻮﺳﻂ ﺯﻳﺮﺳﻴﺴﺘﻢ ﻫﺎ ﻭ ﮐﻼﺱ ﻫﺎ ﻓﺮﺍﻫﻢ ﻣﻲ ﺷﻮﻧﺪ .ﻗﺮﺍﺭﺩﺍﺩ ﻳﮏ ﻧﻘﻄﻪ ﻋﻄﻒ ﻋﺎﻟﻲ ﺍﺳﺖ ﻭ ﺣﺪﺍﻗﻞ ﻳﮏ
ﻗﺮﺍﺭﺩﺍﺩ ﺑﺎﻳﺪ ﺑﺎ ﻫﺮﺑﺎﺭ ﺗﮑﺮﺍﺭ ﻣﺮﺗﺒﻂ ﺷﻮﺩ.
ﺷﻬﺮﺕ OOA
ﻣﺤﺒﻮﺑﻴﺖ ﻓﻨﺂﻭﺭﻱﻫﺎﻱ ﺷﻲﺀﮔﺮﺍ ﻣﻨﺠﺮ ﺑﻪ ﺍﺑﺪﺍﻉ ﺩﻫﻬﺎ ﺭﻭﺵ OOAﺩﺭ ﺍﻭﺍﺧﺮ ﺩﻫﺔ ۱۹۸۰ﻭ ﺍﻭﺍﻳﻞ ﺩﻫﺔ ۹۰ﺷﺪ .ﻫﺮ ﻳﻚ ﺍﺯ
ﺍﻳﻦ ﺭﻭﺵﻫﺎ ﻣﻌﺮﻑ ﻓﺮﺁﻳﻨﺪﻱ ﺑﺮﺍﻱ ﺗﺤﻠﻴﻞ ﻳﻚ ﻣﺤﺼﻮﻝ ﻳﺎ ﺳﻴﺴﺘﻢ ،ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﻧﻤﻮﺩﺍﺭ ﻛﻪ ﺍﺯ ﻓﺮﺁﻳﻨﺪ ﺑﻪ ﺩﺳﺖ ﻣﻲﺁﻳﻨﺪ،
ﻭ ﻧﺸﺎﻧﻪ ﮔﺬﺍﺭﻱ ﻫﺎﻳﻲ ﺍﺳﺖ ﻛﻪ ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﻗﺎﺩﺭ ﺑﻪ ﺍﻳﺠﺎﺩ ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﻣﻲﻛﻨﺪ .ﺭﻭﺵ ﻫﺎﯼ ﺯﻳﺮ ﻃﯽ ﺩﻫﻪ
ﺍﺧﻴﺮﻛﺎﺭﺑﺮﺩ ﺑﻴﺸﺘﺮﻱ ﺩﺍﺭﻧﺪ.
ﺭﻭﺵ ﺑﻮﭺ) :[BOO94 ] (Boochﺍﻳﻦ ﺭﻭﺵ ﺷﺎﻣﻞ ﻳﻚ ﻓﺮﺁﻳﻨﺪ ﺗﻮﺳﻌﺔ ﻣﻴﻜﺮﻭ ﻭ ﻳﻚ ﻓﺮﺁﻳﻨﺪ ﺗﻮﺳﻌﺔ ﻣﺎﻛﺮﻭ
ﺍﺳﺖ .ﺳﻄﺢ ﻣﻴﻜﺮﻭ ،ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﻭﻇﺎﻳﻒ ﺗﺤﻠﻴﻞ ﺭﺍ ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﺪ ﻛﻪ ﺑﺮﺍﻱ ﻫﺮ ﻣﺮﺣﻠﻪ ﺍﺯ ﻓﺮﺁﻳﻨﺪ ﻣﺎﻛﺮﻭ ﺩﻭﺑﺎﺭﻩ ﺍﺟﺮﺍ
ﻣﻲﺷﻮﺩ .ﺍﺯ ﺍﻳﻦ ﺭﻭ ،ﻳﻚ ﺭﻭﺵ ﺗﻜﺎﻣﻠﻲ ﺻﻮﺭﺕ ﻣﯽ ﮔﻴﺮﺩ .ﺩﺭ ﻓﺮﺁﻳﻨﺪ ﺗﻮﺳﻌﺔ ﻣﻴﻜﺮﻭ ﺑﻮﭺ ﺑﺮﺍﻱ ،OOAﻛﻼﺱ ﻫﺎ ،ﺍﺷﻴﺎﺀ ﻭ
ﻣﻌﺎﻧﻲ ﺁﻧﻬﺎ ﺗﻌﻴﻴﻦ ﻣﻲﺷﻮﺩ؛ ﺭﻭﺍﺑﻂ ﻣﻴﺎﻥ ﻛﻼﺱ ﻫﺎ ﻭ ﺍﺷﻴﺎﺀ ﺗﻌﻴﻴﻦ ﻣﻲﮔﺮﺩﺩ ﻭ ﭘﺎﻻﻳﺶ ﻫﺎﻱ ﻻﺯﻡ ﺻﻮﺭﺕ ﻣﻲﭘﺬﻳﺮﺩ ﺗﺎ ﻣﺪﻝ
ﺗﺤﻠﻴﻞ ﺷﻨﺎﺳﺎﻳﯽ ﺷﻮﺩ.
ﺭﻭﺵ ﻭﻳﺮﻑ -ﺑﺮﻭﻙ) :[WIR90] (Wriffs & Brokﻭﻳﺮﻑ -ﺑﺮﻭﻙ ﺑﻴﻦ ﻭﻇﺎﻳﻒ ﻃﺮﺍﺣﻲ ﻭ ﺗﺤﻠﻴﻞ ،ﺗﻔﺎﻭﺕ
ﭼﻨﺪﺍﻧﻲ ﻗﺎﻳﻞ ﻧﻤﻲﺷﻮﻧﺪ .ﺩﺭ ﻋﻮﺽ ،ﻓﺮﺁﻳﻨﺪﻱ ﭘﻴﻮﺳﺘﻪ ﺭﺍ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲﻛﻨﻨﺪ ﻛﻪ ﺑﺎ ﺍﺭﺯﻳﺎﺑﻲ ﻣﺸﺨﺼﺎﺕ ﻣﺸﺘﺮﻱ ﺁﻏﺎﺯ ﻣﻲﺷﻮﺩ ﻭ
ﺑﺎ ﻃﺮﺍﺣﻲ ﭘﺎﻳﺎﻥ ﻣﻲﻳﺎﺑﺪ .ﻭﻇﺎﻳﻒ ﻣﺮﺗﺒﻂ ﺑﺎ ﺗﺤﻠﻴﻞ ﺩﺭ ﺍﻳﻦ ﺭﻭﺵ ﺑﻪ ﺍﺧﺘﺼﺎﺭ ﺑﻪ ﺷﺮﺡ ﺯﻳﺮ ﻣﻲ ﺑﺎﺷﺪ:
¨ ﺍﺭﺯﻳﺎﺑﻲ ﻣﺸﺨﺼﺎﺕ ﻣﺸﺘﺮﻱ
¨ ﺍﺳﺘﺨﺮﺍﺝ ﻛﻼﺱ ﻫﺎﻱ ﻧﺎﻣﺰﺩ ﺍﺯ ﺭﻭﻱ ﻣﺸﺨﺼﺎﺕ ،ﺍﺯ ﻃﺮﻳﻖ ﺗﺠﺰﻳﻪ ﮔﺮﺍﻣﺮﻱ
¨ ﮔﺮﻭﻩﺑﻨﺪﻱ ﻛﻼﺱ ﻫﺎ ﺑﻪ ﻧﻴﺖ ﺷﻨﺎﺳﺎﻳﻲ ﻛﻼﺱ ﻫﺎﻱ ﭘﺎﻳﻪ
¨ ﺗﻌﺮﻳﻒ ﻣﺴﻮﻭﻟﻴﺖ ﻫﺎ ﺑﺮﺍﻱ ﻫﺮ ﻛﻼﺱ
¨ ﻧﺴﺒﺖ ﺩﺍﺩﻥ ﻣﺴﻮﻭﻟﻴﺖ ﻫﺎ ﺑﻪ ﻫﺮ ﻛﻼﺱ
¨ ﺗﻌﻴﻴﻦ ﺭﻭﺍﺑﻂ ﻣﻴﺎﻥ ﻛﻼﺱ ﻫﺎ
¨ ﺗﻌﻴﻴﻦ ﻣﺸﺎﺭﻛﺖ ﻣﻴﺎﻥ ﻛﻼﺱ ﻫﺎ ﺑﺮﺍﺳﺎﺱ ﻣﺴﻮﻭﻟﻴﺖ
¨ ﺳﺎﺧﺖ ﻧﻤﺎﻳﺶ ﻫﺎﻱ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺒﻲ ﺍﺯ ﻛﻼﺱ ﻫﺎ
¨ ﺗﻮﻟﻴﺪ ﮔﺮﺍﻑ ﻣﺸﺎﺭﻛﺖ ﺑﺮﺍﻱ ﺳﻴﺴﺘﻢ
ﮔﺮﭼﻪ ﻣﺮﺍﺣﻞ ،ﺍﺻﻄﻼﺡ ﺷﻨﺎﺳﻲ ﻭ ﻓﺮﺁﻳﻨﺪﻫﺎﯼ ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻳﻦ ﺭﻭﺵ ﻫﺎﻱ OOﻣﺘﻔﺎﻭﺕ ﺍﺳﺖ ،ﻭﻟﯽ ﻓﺮﺁﻳﻨﺪﻫﺎﻱ ﻛﻠﻲ
OOAﺑﺴﻴﺎﺭ ﻣﺸﺎﺑﻬﻨﺪ .ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺮﺍﻱ ﺍﺟﺮﺍﻱ ﺗﺤﻠﻴﻞ ﺷﻲﺀﮔﺮﺍ ﺑﺎﻳﺪ ﻣﺮﺍﺣﻞ ﻛﻠﻲ ﺯﻳﺮ ﺭﺍ ﺩﻧﺒﺎﻝ ﻛﻨﺪ:
ﺭﻭﺷﻦ ﻛﺮﺩﻥ ﺧﻮﺍﺳﺘﻪﻫﺎﻱ ﻣﺸﺘﺮﻱ ﺑﺮﺍﻱ ﺳﻴﺴﺘﻢ .۱
ﺷﻨﺎﺳﺎﻳﻲ ﺳﻨﺎﺭﻳﻮ ﻳﺎ ﻣﻮﺍﺭﺩ ﻛﺎﺭﺑﺮﺩ .۲
ﺍﻧﺘﺨﺎﺏ ﻛﻼﺱ ﻫﺎ ﻭ ﺍﺷﻴﺎﺀ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻧﻴﺎﺯﻫﺎ)ﺧﻮﺍﺳﺘﻪﻫﺎ( ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﺭﺍﻫﻨﻤﺎ .۳
ﺷﻨﺎﺳﺎﻳﻲ ﺻﻔﺎﺕ ﻭ ﻋﻤﻠﻴﺎﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﻫﺮ ﻳﻚ ﺍﺯ ﺍﺷﻴﺎﻱ ﺳﻴﺴﺘﻤﻲ .۴
ﺗﻌﺮﻳﻒ ﺳﺎﺧﺘﺎﺭﻫﺎ ﻭ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺒﻲ ﻛﻪ ﻛﻼﺱ ﻫﺎ ﺭﺍ ﺳﺎﺯﻣﺎﻧﺪﻫﻲ ﻣﻲﻛﻨﻨﺪ. .۵
ﻣﺴﺌﻮﻟﻴﺖ ﻫﺎ
.١ﻫﻮﺷﻤﻨﺪﯼ ﺳﻴﺴﺘﻢ ﺑﺎﻳﺪ ﺍﺯ ﺗﻮﺯﻳﻌﯽ ﻣﻨﺎﺳﺐ ﺑﺮﺧﻮﺭﺩﺍﺭ ﺑﺎﺷﺪ.
.٢ﻫﺮ ﻣﺴﻮﻭﻟﻴﺘﯽ ﺭﺍ ﺑﺎﻳﺪ ﻫﺮ ﭼﻪ ﮐﻠﯽ ﺗﺮ ﺑﻴﺎﻥ ﮐﺮﺩ.
.٣ﺍﻃﻼﻋﺎﺕ ﻭ ﺭﻓﺘﺎﺭﯼ ﮐﻪ ﺑﻪ ﺁﻥ ﻣﺮﺑﻮﻁ ﻣﯽ ﺷﻮﺩ ﺑﺎﻳﺪ ﺩﺭ ﻳﮏ ﮐﻼﺱ ﻗﺮﺍﺭ ﮔیﺮﺩ.
.٤ﺍﻃﻼﻋﺎﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﻳﮏ ﭼﻴﺰ ﺑﺎﻳﺪ ﺩﺭ ﻳﮏ ﮐﻼﺱ ﻣﺘﻤﺮﮐﺰ ﺷﻮﺩ.
.٥ﻣﺴﻮﻭﻟﻴﺖ ﻫﺎ ﺑﺎﻳﺪ ﺩﺭ ﺻﻮﺭﺕ ﺍﻣﮑﺎﻥ ﺑﻴﻦ ﮐﻼﺱ ﻫﺎ ﭘﺨﺶ ﺷﻮﺩ.
ﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺍﺯ ﻛﻼﺱ ﻫﺎﻱ ﻣﺮﺗﺒﻂ ﺑﺎ ﺍﺭﺗﺒﺎﻃﺎﺕ ﻧﺎﻣﮕﺬﺍﺭﻱ ﺷﺪﻩ ﻭ ﭼﻨﺪﻱ ﻫﺎﻱ ﻣﺸﺨﺺ
ﺍﮐﻨﻮﻥ ﺩﺭ ﺍﺩﺍﻣﻪ ﺑﺤﺚ ﻓﺮﺍﻳﻨﺪ ﺗﺤﻠﻴﻞ ﺷﯽﺀ ﮔﺮﺍﻳﯽ ﺭﺍ ﺑﺎ ﻣﺜﺎﻝ ﺳﻴﺴﺘﻢ ﺧﺎﻧﻪ ﺍﻣﻦ ﻳﮑﺒﺎﺭ ﺩﻳﮕﺮ ﺍﺩﺍﻣﻪ ﻣﯽ ﺩﻫﻴﻢ.
ﻣﻮﺍﺭﺩ ﮐﺎﺭﺑﺮﺩ)(Use-Case
ﻣﻮﺭﺩ ﻛﺎﺭﺑﺮﺩ ﻳﻜﻲ ﺍﺯ ﻧﻤﻮﺩﺍﺭﻫﺎﻱ UMLﻣﻲ ﺑﺎﺷﺪ ﻛﻪ ﺩﺭ ﻭﺍﻗﻊ ﺷﺮﺣﻲ ﺍﺯ ﻣﺠﻤﻮﻋﻪ ﺗﻌﺎﻣﻼﺕ ﺑﻴﻦ ﻛﺎﺭﺑﺮﺍﻥ ﻭ ﺳﻴﺴﺘﻢ ﺍﺳﺖ.
Use-Caseﺳﻴﺴﺘﻢ ﺭﺍ ﺍﺯ ﺩﻳﺪﮔﺎﻩ ﻛﺎﺭﺑﺮ ﻧﻬﺎﻳﻲ ﻣﺪﻟﺴﺎﺯﻱ ﻣﻲ ﻛﻨﺪUse-Case .ﻫﺎ ﺑﺎﻳﺪ ﺍﻫﺪﺍﻑ ﺯﻳﺮ ﺭﺍ ﺑﺮﺁﻭﺭﺩﻩ ﺳﺎﺯﻧﺪ:
• ﺗﻌﺮﻳﻒ ﺧﻮﺍﺳﺘﻪ ﻫﺎﻱ ﻋﻤﻠﻴﺎﺗﻲ ﺳﻴﺴﺘﻢ ﺑﺎ ﺗﻌﺮﻳﻒ ﻳﻚ ﺳﻨﺎﺭﻳﻮﻱ ﻛﺎﺭﺑﺮﺩ ﻛﻪ ﻣﺸﺘﺮﻱ ﻭ ﺗﻴﻢ ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺩﺭ ﻣﻮﺭﺩ
ﺁﻥ ﺑﻪ ﺗﻮﺍﻓﻖ ﺭﺳﻴﺪﻩ ﺍﻧﺪ.
• ﻓﺮﺍﻫﻢ ﺁﻭﺭﺩﻥ ﺗﻮﺻﻴﻔﻲ ﻭﺍﺿﺢ ﻭ ﻋﺎﺭﻱ ﺍﺯ ﺍﺑﻬﺎﻡ ﺍﺯ ﭼﮕﻮﻧﮕﻲ ﺗﻌﺎﻣﻞ ﺳﻴﺴﺘﻢ ﻭ ﻛﺎﺭﺑﺮ ﻧﻬﺎﻳﻲ ﺑﺎ ﻳﻜﺪﻳﮕﺮ
• ﻓﺮﺍﻫﻢ ﺁﻭﺭﺩﻥ ﻣﺒﻨﺎﻳﻲ ﺑﺮﺍﻱ ﺍﻧﺠﺎﻡ ﺁﺯﻣﻮﻥﻫﺎﻱ ﺍﻋﺘﺒﺎﺭ ﺳﻨﺠﻲ
ﻣﺮﺍﺣﻞ ﻛﺎﺭ:
• ﺷﻨﺎﺳﺎﻳﻲ ﻛﻼﺱﻫﺎ
• ﺷﻨﺎﺳﺎﻳﻲ ﻣﺴﻮﻭﻟﻴﺖﻫﺎ )ﺻﻔﺎﺕ ﻭ ﻋﻤﻠﻴﺎﺕ (
• ﺷﻨﺎﺳﺎﻳﻲ ﻣﺸﺎﺭﻛﺖ ﻛﻨﻨﺪﻩﻫﺎ
ﺷﻨﺎﺳﺎﻳﻲ ﻛﻼﺱﻫﺎ
ﺷﺶ ﺧﺼﻮﺻﻴﺖ ﺑﺮﺍﻱ ﺷﻨﺎﺳﺎﻳﻲ ﻛﻼﺱﻫﺎﻱ ﺑﺎﻟﻘﻮﻩ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮﺩ:
-١ﺍﻃﻼﻋﺎﺕ ﻧﮕﻬﺪﺍﺭﻱ ﺷﺪﻩ
-٢ﺍﻃﻼﻋﺎﺕ ﻣﻮﺭﺩ ﻧﻴﺎﺯ
-٣ﺻﻔﺎﺕ ﭼﻨﺪﮔﺎﻧﻪ
-٤ﺻﻔﺎﺕ ﻣﺸﺘﺮﻙ
-٥ﻋﻤﻠﻴﺎﺕ ﻣﺸﺘﺮﻙ
-٦ﺧﻮﺍﺳﺘﻪﻫﺎﻱ ﺍﺳﺎﺳﻲ
ﺍﻧﻮﺍﻉ ﻛﻼﺳﻬﺎ
-١ﻛﻼﺱﻫﺎﻱ ﺩﺳﺘﮕﺎﻫﻲ )( Device Classes
-٢ﻛﻼﺱﻫﺎﻱ ﺧﻮﺍﺹ ) ( Property Classes
-٣ﻛﻼﺱﻫﺎﻱ ﺗﻌﺎﻣﻞ ) ( Interaction Classes
ﻭﻳﮋﮔﻴﻬﺎﻱ ﻳﻚ ﻛﻼﺱ
-١ﻋﻴﻨﻲ ﻳﺎ ﺍﻧﺘﺰﺍﻋﻲ
-٢ﺍﺗﻤﻲ ﻳﺎ ﻣﺠﺘﻤﻊ
-٣ﺗﺮﺗﻴﺒﻲ ﻳﺎ ﻏﻴﺮ ﺗﺮﺗﻴﺒﻲ
-٤ﮔﺬﺭﺍ ،ﻣﻮﻗﺖ ﻳﺎ ﺩﺍﺋﻤﻲ
-٥ﺟﺎﻣﻌﻴﺖ ﻛﻼﺱ
ﺷﻨﺎﺳﺎﻳﻲ ﻣﺴﻮﻭﻟﻴﺖﻫﺎ
ﭘﻨﺞ ﺩﺳﺘﻮﺭ ﺍﻟﻌﻤﻞ ﺑﺮﺍﻱ ﺗﺨﺼﻴﺺ ﻣﻨﺎﺳﺐ ﻣﺴﻮﻭﻟﻴﺖﻫﺎ ﺑﻪ ﻛﻼﺱﻫﺎ ﺑﻪ ﺷﺮﺡ ﺯﻳﺮ ﻣﻲﺑﺎﺷﺪ:
-١ﺗﻮﺯﻳﻊ ﻣﻨﺎﺳﺐ ﻫﻮﺷﻤﻨﺪﻱ ﺳﻴﺴﺘﻢ
-٢ﺑﻴﺎﻥ ﻛﻠﻲ ﻣﺴﻮﻟﻴﺖﻫﺎ
-٣ﻗﺮﺍﺭ ﮔﺮﻓﺘﻦ ﺍﻃﻼﻋﺎﺕ ﻭ ﺭﻓﺘﺎﺭ ﻣﺮﺑﻮﻁ ﺑﻪ ﻫﺮ ﻛﻼﺱ ﺩﺭ ﻫﻤﺎﻥ ﻛﻼﺱ
-٤ﻣﺘﻤﺮﻛﺰ ﺷﺪﻥ ﺍﻃﻼﻋﺎﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﻫﻢ ﺩﺭ ﻳﻚ ﻛﻼﺱ
-٥ﺑﻪ ﺍﺷﺘﺮﺍﻙ ﮔﺬﺍﺷﺘﻦ ﻣﺴﻮﻭﻟﻴﺖﻫﺎ ﺑﻴﻦ ﻛﻼﺱﻫﺎﻱ ﻣﺮﺗﺒﻂ
ﻛﺎﺭﺕ ﺷﺎﺧﺺ
ﻛﺎﺭﺕﻫﺎﻳﻲ ﻛﻪ ﺑﺮﺍﻱ ﻧﺸﺎﻥ ﺩﺍﺩﻥ ﻛﻼﺱﻫﺎ ﺑﻪ ﻛﺎﺭ ﻣﻲ ﺭﻭﻧﺪ ﻭ ﺩﺍﺭﺍﻱ ﺳﻪ ﺑﺨﺶ ﻫﺴﺘﻨﺪ:
-١ﻧﺎﻡ ﻛﻼﺱ ﺩﺭ ﺑﺎﻻﻱ ﻛﺎﺭﺕ
-٢ﻟﻴﺴﺘﻲ ﺍﺯ ﻣﺴﻮﻭﻟﻴﺖﻫﺎﻱ ﻛﻼﺱ ﺩﺭ ﻃﺮﻑ ﭼﭗ
-٣ﻟﻴﺴﺘﻲ ﺍﺯ ﻣﺸﺎﺭﻛﺖﻛﻨﻨﺪﻩ ﻫﺎ ﺩﺭ ﻃﺮﻑ ﺭﺍﺳﺖ
ﻧﻤﻮﻧﻪﺍﻱ ﺍﺯ ﻳﻚ ﻛﺎﺭﺕ ﺷﺎﺧﺺ ﺩﺭ ﺷﻜﻞ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ.
ﻧﺎﻡ ﻛﻼﺱ:
ﻧﻮﻉ ﻛﻼﺱ ) ﻣﺜﻼ ﺩﺳﺘﮕﺎﻫﻲ ،ﺧﻮﺍﺹ ،ﻧﻘﺶ ،ﺭﻭﻳﺪﺍﺩ (
ﺧﺼﻮﺻﻴﺖ ﻛﻼﺱ ) ﻣﺜﻼ ﻣﻠﻤﻮﺱ ،ﺍﺗﻤﻲ ،ﻫﻤﺰﻣﺎﻥ ﻭ (..
ﻣﺸﺎﺭﻛﺖ ﻛﻨﻨﺪﻩ ﻫﺎ : ﻣﺴﺌﻮﻟﻴﺘﻬﺎ:
ﻣﺜﺎﻝ SafeHome
-١ﺻﺎﺣﺒﺨﺎﻧﻪ ﺑﻪ ﺗﺎﺑﻠﻮﻱ ﻛﻨﺘﺮﻝ ﻧﮕﺎﻩ ﻣﻲ ﻛﻨﺪ ﺗﺎ ﺗﻌﻴﻴﻦ ﻛﻨﺪ ﻛﻪ ﺁﻳﺎ ﺳﻴﺴﺘﻢ ﺁﻣﺎﺩﻩ ﺩﺭﻳﺎﻓﺖ ﻭﺭﻭﺩﻱ ﻫﺴﺖ ﻳﺎ ﺧﻴﺮ .
ﺍﮔﺮ ﺳﻴﺴﺘﻢ ﺁﻣﺎﺩﻩ ﻧﺒﺎﺷﺪﺻﺎﺣﺒﺨﺎﻧﻪ ﺑﺎﻳﺪ ﺍﺯ ﻧﻈﺮ ﻓﻴﺰﻳﻜﻲ ﺩﺭﻫﺎ ﻳﺎ ﭘﻨﺠﺮﻩ ﻫﺎ ﺭﺍ ﺑﺒﻨﺪﺩﺗﺎ ﻧﺸﺎﻧﮕﺮ ﺁﻣﺎﺩﮔﻲ ﺍﺭﺍﺋﻪ
ﺷﻮﺩ.
-٢ﺻﺎﺣﺒﺨﺎﻧﻪ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺻﻔﺤﻪ ﻛﻠﻴﺪ ،ﻛﻠﻤﻪ ﻋﺒﻮﺭ ﭼﻬﺎﺭ ﺭﻗﻤﻲ ﺭﺍ ﻭﺍﺭﺩ ﻣﻲ ﻛﻨﺪ .ﺍﻳﻦ ﻛﻠﻤﻪ ﺑﺎ ﻛﻠﻤﻪ ﻋﺒﻮﺭ
ﻣﻮﺟﻮﺩ ﺩﺭ ﺳﻴﺴﺘﻢ ﻣﻘﺎﻳﺴﻪ ﻣﻲ ﺷﻮﺩ .ﺍﮔﺮ ﻛﻠﻤﻪ ﻋﺒﻮﺭ ﻧﺎﺩﺭﺳﺖ ﺑﺎﺷﺪ ،ﺗﺎﺑﻠﻮﻱ ﻛﻨﺘﺮﻝ ﺑﻮﻕ ﻣﻲ ﺯﻧﺪ ﻭ ﺁﻣﺎﺩﻩ
ﻭﺭﻭﺩﻱ ﺑﻌﺪﻱ ﺧﻮﺍﻫﺪ ﺷﺪ .ﺍﮔﺮ ﻛﻠﻤﻪ ﻋﺒﻮﺭ ﺩﺭﺳﺖ ﺑﺎﺷﺪ ،ﻣﻨﺘﻈﺮ ﻓﻌﺎﻟﻴﺘﻬﺎﻱ ﺩﻳﮕﺮ ﻣﻲ ﻣﺎﻧﺪ.
-٣ﺻﺎﺣﺒﺨﺎﻧﻪ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺻﻔﺤﻪ ﻛﻠﻴﺪ Stay ،ﻳﺎ Awayﺭﺍ ﻭﺍﺭﺩ ﻣﻲ ﻛﻨﺪ ﺗﺎ ﺳﻴﺴﺘﻢ ﻓﻌﺎﻝ ﺷﻮﺩ.
Stayﻓﻘﻂ ﺣﺴﮕﺮ ﻫﺎﻱ ﻣﺤﻴﻄﻲ ﺭﺍ ﻓﻌﺎﻝ ﻣﻲ ﻛﻨﺪ Away .ﺗﻤﺎﻡ ﺣﺴﮕﺮ ﻫﺎ ﺭﺍ ﻓﻌﺎﻝ ﻣﻲ ﻛﻨﺪ.
-٤ﭘﺲ ﺍﺯ ﻓﻌﺎﻝ ﺳﺎﺯﻱ ﺻﺎﺣﺒﺨﺎﻧﻪ ﻣﻲ ﺗﻮﺍﻧﺪ ﺗﻤﺎﻡ ﺣﺴﮕﺮﻫﺎ ﺭﺍ ﻓﻌﺎﻝ ﻛﻨﺪ.
-٢ﺣﺎﻟﺖ ﻫﺮ ﺳﻴﺴﺘﻢ ﺍﺯ ﺩﻳﺪﮔﺎﻩ ﺧﺎﺭﺟﻲ ﻭ ﺩﺭ ﺣﺎﻟﻲ ﻛﻪ ﺳﻴﺴﺘﻢ ﻋﻤﻠﻜﺮﺩ ﺧﻮﺩ ﺭﺍ ﺍﺟﺮﺍ ﻣﻲ ﻛﻨﺪ .ﻧﻤﻮﺩﺍﺭ ﺗﺮﺗﻴﺐ
)( Sequence Diagram
-۱ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﺍﺻﻮﻝ ﺑﻨﻴﺎﺩﻱ ﺑﺮﺍﻱ ﺗﺤﻠﻴﻞ ﺗﻮﺳﻂ ﻛﻮﺩ ﻭ ﻳﻮﺭﺩﻭﻥ ﺑﻜﺎﺭ ﺑﺮﺩﻩ ﻣﻲﺷﻮﻧﺪ.
ﺩ( ﺗﻤﺎﻡ ﻣﻮﺍﺭﺩ ﺝ( ﺩﻳﺪﻩ ﺷﺪﻥ ﺟﺰﺋﻴﺎﺕ ﺑﻴﺸﺘﺮ ﺏ( ﻣﺪﻟﺴﺎﺯﻱ ﺩﺍﻣﻨﻪ ﺍﻃﻼﻋﺎﺕ ﺍﻟﻒ( ﺗﻮﺻﻴﻒ ﻋﻤﻠﻜﺮﺩ
-۲ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﮔﺰﻳﻨﻪﻫﺎﻱ ﺯﻳﺮ ﻧﺎﺩﺭﺳﺖ ﺍﺳﺖ؟
ﺍﻟﻒ( ﻫﻴﭻ ﺗﻮﺍﻓﻖ ﺟﻬﺎﻧﻲ ﺑﺮ ﺳﺮ ﻣﻔﺎﻫﻴﻢ ﻣﺒﻨﺎﻳﻲ OOAﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ.
ﺏ( ﺍﺗﺼﺎﻻﺕ ﺍﺷﻴﺎ ﺩﺭ OOAﺑﺎﻳﺪ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﻮﺩ.
ﺝ( ﻧﻈﺮﻳﻪ ﻛﻮﺩ ﻭ ﻳﻮﺭﺩﻭﻥ ﺑﻌﻨﻮﺍﻥ ﻣﺒﻨﺎﻱ OOAﺍﺳﺖ.
ﺩ( ﺭﻓﺘﺎﺭ ﺍﺷﻴﺎ ﺩﺭ OOAﺑﺎﻳﺪ ﻣﺪﻟﺴﺎﺯﻱ ﺷﻮﺩ.
-۳ﭼﻪ ﻛﺴﻲ OOAﺭﺍ ﺍﻧﺠﺎﻡ ﻣﻲﺩﻫﺪ؟
ﺩ( ۲ﻭ ۳ ﺝ( ﻛﺎﺭﺑﺮ ﺏ( ﻃﺮﺍﺡ ﺍﻟﻒ( ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ
-۴ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﮔﺰﻳﻨﻪﻫﺎﻱ ﺯﻳﺮﺩﺭ ﻣﻮﺭﺩ ﺗﺤﻠﻴﻞ ﺷﻲﮔﺮﺍ ﻧﺎﺩﺭﺳﺖ ﺍﺳﺖ؟
ﺍﻟﻒ( ﺭﻭﺵ ﺁﻥ ﻧﺴﺒﺖ ﺑﻪ ﻣﻬﻨﺪﺳﻲ ﺍﻃﻼﻋﺎﺕ ﺍﻧﺪﻛﻲ ﺗﻔﺎﻭﺕ ﺩﺍﺭﺩ.
ﺏ( ﺭﻭﺵ ﺁﻥ ﺗﻐﻴﻴﺮ ﺑﻨﻴﺎﺩﻱ ﻧﺴﺒﺖ ﺑﻪ ﺗﺤﻠﻴﻞ ﺳﺎﺧﺘﻴﺎﻓﺘﻪ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ.
ﺝ( ﻣﺤﺼﻮﻝ ﺁﻥ ﻳﻚ ﻣﺪﻝ ﺷﻲﮔﺮﺍ ﺍﺳﺖ.
ﺩ( ﻓﺮﺁﻳﻨﺪ ﺗﻮﺳﻌﻪ ﻣﻴﻜﺮﻭ ﺭﻭﺵ ﺭﻭﻣﺒﻮ ﺍﺳﺖ.
-۵ﻛﺪﺍﻣﻴﻚ ﺍﺯ ﮔﺰﻳﻨﻪﻫﺎﻱ ﺯﻳﺮ ﺍﺯ ﻭﻇﺎﻳﻒ ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺮﺍﻱ ﺍﺟﺮﺍﻱ ﺗﺤﻠﻴﻞ ﺷﻲﮔﺮﺍ ﻧﻴﺴﺖ؟
ﺏ( ﺷﻨﺎﺳﺎﻳﻲ ﻣﻮﺍﺭﺩ ﻛﺎﺭﺑﺮﺩ ﺍﻟﻒ( ﺳﺎﺧﺖ ﻳﻚ ﻣﺪﻝ ﺷﻲ -ﺭﻓﺘﺎﺭ
ﺩ( ﺳﺎﺧﺖ ﻳﻚ ﻣﺪﻝ ﺷﻲ -ﻭﺍﺳﻂ ﺝ( ﺍﺭﺯﻳﺎﺑﻲ ﻣﺸﺨﺼﺎﺕ ﻣﺸﺘﺮﻱ
-۶ﻓﺮﺁﻳﻨﺪ OOﺩﺭ ﻛﺎﺭ ﺧﻮﺩ ﺑﻪ ﺍﺷﻴﺎ ﻧﻴﺎﺯ ﻧﺪﺍﺭﺩ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۷ﻓﺮﺁﻳﻨﺪ OOﺩﺭ ﺁﻏﺎﺯ ﻛﺎﺭ ﺧﻮﺩ ﺗﻮﺳﻂ ) ...ﺍﮔﺮ ﺩﺭ ﻛﻨﺘﺮﻝ ﻓﺮﺁﻳﻨﺪ ﺑﻜﺎﺭ ﮔﺮﻓﺘﻪ ﺷﻮﺩ (.ﺷﺮﻭﻉ ﻣﻲﺷﻮﺩ.
ﺩ( ﻫﺮ ۳ﻣﻮﺭﺩ ﺝ( ﺑﻌﻀﻲ ﺑﺮﻧﺎﻣﻪﻫﺎ ﺏ( ﻣﺎﺷﻴﻨﻬﺎ ﺍﻟﻒ( ﺍﻧﺴﺎﻥ
-۸ﺩﺭ ﺍﺛﻨﺎﻱ ﺗﺤﻠﻴﻞ ﺧﻮﺍﺳﺘﻪﻫﺎ ﺑﺎﻳﺪ ﺑﻪ ﺍﻃﻼﻋﺎﺕ ﺍﺻﻠﻲ ﺗﺎﻛﻴﺪ ﺷﻮﺩ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۹ﺍﻃﻼﻋﺎﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﻳﻚ ﭼﻴﺰ ﺑﺎﻳﺪ ﺩﺭ ﻣﻴﺎﻥ ﭼﻨﺪ ﻛﻼﺱ ﺗﻮﺯﻳﻊ ﺷﻮﻧﺪ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۱۰ﻧﻤﺎﻳﺶ ﺳﺎﺧﺘﺎﺭ ﺍﻓﺮﺍﺯ CRC ،ﺭﺍ ﺩﺭ ﺍﺧﺘﻴﺎﺭ ﺗﺤﻠﻴﻠﮕﺮ ﻗﺮﺍﺭ ﻣﻲﺩﻫﺪ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۱۱ﭘﻜﻴﺞ ....
ﺏ( ﺩﺭ UMLﻧﺸﺎﻥ ﺩﺍﺩﻩ ﻧﻤﻲﺷﻮﺩ. ﺍﻟﻒ( ﺍﺯ ﻟﺤﺎﻅ ﻫﺪﻑ ﻣﺎﻧﻨﺪ ﺯﻳﺮﺳﻴﺴﺘﻢ ﺍﺳﺖ.
ﺩ( ﻫﻤﺎﻥ ﺳﻴﺴﺘﻢ ﺍﺳﺖ. ﺝ( ﺍﺯ ﻟﺤﺎﻅ ﻣﺤﺘﻮﻳﺎﺕ ﻣﺎﻧﻨﺪ ﺳﻴﺴﺘﻢ ﺍﺳﺖ.
-۱۲ﺣﺴﮕﺮ ﺑﻪ ﻭﺿﻌﻴﺖ ...ﻭﺍﺑﺴﺘﻪ ﺍﺳﺖ.
ﺩ( ﺍﻟﻒ ﻭ ﺝ ﺝ( ﺣﺴﮕﺮﻫﺎ ﺏ( ﺳﻴﺴﺘﻢ ﺍﻟﻒ( ﭘﻜﻴﺞ
-۱۳ﺳﺎﺧﺘﻦ ﻳﻚ ﻧﻤﻮﺩﺍﺭ ﮔﺬﺭﺍ ﺑﺮﺍﻱ ﺳﻴﺴﺘﻢ ﻭﻇﻴﻔﻪ ﻛﻴﺴﺖ.
ﺩ( ﻛﺎﺭﺑﺮ ﺝ( ﺗﺤﻠﻴﻞﮔﺮ ﺍﻟﻒ( ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺏ( ﻃﺮﺍﺡ
..... UML -۱۴
ﺍﻟﻒ( ﺑﺮﺍﻱ ﻧﺸﺎﻥ ﺩﺍﺩﻥ ﺑﺮﺧﻲ ﺍﺯ ﺭﻓﺘﺎﺭ ﭘﻮﻳﺎﻱ ﺍﺷﻴﺎ ﻭ ﻛﻼﺱﻫﺎﻳﻲ ﺍﺳﺖ.
ﺏ( ﺗﻠﻔﻴﻘﻲ ﺍﺯ ﻧﻤﻮﺩﺍﺭﻫﺎﻱ ﺣﺎﻟﺖ ،ﻣﺸﺎﺭﻛﺖ ،ﺗﺮﺗﻴﺐ ﻭ ﻓﻌﺎﻟﻴﺖ ﺍﺳﺖ.
ﺝ( ﺯﺑﺎﻧﻲ ﺑﺮﺍﻱ ﻣﺪﻟﺴﺎﺯﻱ ﺍﺳﺖ.
ﺩ( ﻫﺮ ۳ﻣﻮﺭﺩ
-۱۵ﻣﺪﻝ ﺭﻓﺘﺎﺭ ﺍﺷﻴﺎ ﺭﻓﺘﺎﺭ ﻛﻠﻲ ﺳﻴﺴﺘﻢ OOﺍﺳﺖ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺗﺤﻠﻴﻞ ﺷﻲﺀ ﮔﺮﺍ ﺭﺍ ﺑﻪ ﻳﻚ ﻣﺪﻝ ﻃﺮﺍﺣﻲ ﺗﺒﺪﻳﻞ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺑـﻪ ﻋﻨـﻮﺍﻥ ﻧﻘﺸـﻪ ﺭﺍﻫﻨﻤـﺎﻳﻲ
ﺑﺮﺍﻱ ﺳﺎﺧﺖ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﻋﻤﻞ ﻣﻲ ﻛﻨـﺪ .ﺑـﺎ ﺍﻳـﻦ ﻭﺟـﻮﺩ ،ﻭﻇﻴﻔـﻪ ﻣﻬﻨـﺪﺱ ﻧـﺮﻡ ﺍﻓـﺰﺍﺭ ﻣـﻲ ﺗﻮﺍﻧـﺪ ﺩﺷـﻮﺍﺭ ﺑﺎﺷـﺪ] Gamma .
[GAM95ﻭ ﻫﻤﻜﺎﺭﺍﻥ ﻭﻱ ﺗﺼﻮﻳﺮ ﺧﻮﺑﻲ ﺍﺯ OODﺭﺍ ﺍﺭﺍﻳﻪ ﻣﻲ ﺩﻫﻨﺪ:
ﻃﺮﺍﺣﻲ ﻧﺮﻡ ﺍﻓﺰﺍﺭﻫﺎﻱ ﺷﻲﺀ ﮔﺮﺍ ﺩﺷﻮﺍﺭ ﺍﺳﺖ ﻭ ﻃﺮﺍﺣﻲ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺷﻲﺀ ﮔﺮﺍ ﺑﺎ ﻗﺎﺑﻠﻴﺖ ﺍﺳـﺘﻔﺎﺩﻩ ﻣﺠـﺪﺩ ﺍﺯ ﺁﻥ ﻫـﻢ ﺩﺷـﻮﺍﺭﺗﺮ .ﺑﺎﻳـﺪ
ﺍﺷﻴﺎﻱ ﻣﺮﺗﺒﻂ ﺭﺍ ﺑﻴﺎﺑﻴﺪ ،ﺁﻧﻬﺎ ﺭﺍ ﺩﺭ ﻛﻼﺱﻫﺎﻳﻲ ﻣﻨﺎﺳﺐ ﺩﺳﺘﻪ ﺑﻨﺪﻱ ﻛﻨﻴﺪ ﻭ ﺭﻭﺍﺑﻂ ﻛﻠﻴﺪﻱ ﻣﻴﺎﻥ ﺁﻧﻬﺎ ﺭﺍ ﻣﺸـﺨﺺ ﻛﻨﻴـﺪ .ﻃﺮﺍﺣـﻲ
ﺷﻤﺎ ﺑﺎﻳﺪ ﻣﺨﺘﺺ ﻣﺴﺎﻟﻪ ﻣﻮﺭﺩ ﻧﻈﺮ ﺑﺎﺷﺪ ،ﻭﻟﻲ ﺩﺭ ﻋﻴﻦ ﺣﺎﻝ ﺁﻧﻘﺪﺭ ﻋﻤﻮﻣﻴﺖ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ ﻣﺴﺎﻳﻞ ﻭ ﺧﻮﺍﺳﺘﻪ ﻫﺎﻱ ﺁﻳﻨـﺪﻩ ﺭﺍ ﻧﻴـﺰ
ﭘﺎﺳﺨﮕﻮ ﺑﺎﺷﺪ .ﺑﺎﻳﺪ ﺍﺯ ﻃﺮﺍﺣﻲ ﺩﻭﺑﺎﺭﻩ ﭘﺮﻫﻴﺰ ﻛﻨﻴﺪ ﻳﺎ ﺣﺪﺍﻗﻞ ﺁﻥ ﺭﺍ ﺑﻪ ﻛﻤﺘﺮﻳﻦ ﻣﻴﺰﺍﻥ ﺑﺮﺳﺎﻧﻴﺪ .ﻃﺮﺍﺣﺎﻥ ﺷﻲﺀ ﮔـﺮﺍﻱ ﻛـﺎﺭ ﺁﺯﻣـﻮﺩﻩ
ﻣﻌﺘﻘﺪﻧﺪ ﻛﻪ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﻃﺮﺍﺣﻲ ﺍﻧﻌﻄﺎﻑ ﭘﺬﻳﺮ ﻭ ﻗﺎﺑﻞ ﺍﺳﺘﻔﺎﺩﻩ ﻣﺠﺪﺩ ،ﺑﺮﺍﻱ ﺑﺎﺭ ﺍﻭﻝ ﺍﮔﺮ ﻏﻴﺮ ﻣﻤﻜﻦ ﻧﺒﺎﺷﺪ ،ﺑﺴـﻴﺎﺭ ﺩﺷـﻮﺍﺭ ﺍﺳـﺖ.
ﭘﻴﺶ ﺍﺯ ﺁﻥ ﻛﻪ ﻃﺮﺍﺣﻲ ﭘﺎﻳﺎﻥ ﻳﺎﺑﺪ ،ﻣﻌﻤﻮﻻﹰ ﺳﻌﻲ ﻣﻲ ﻛﻨﻨﺪ ﺍﺯ ﺁﻥ ﭼﻨﺪ ﺑﺎﺭ ﺍﺳﺘﻔﺎﺩﻩ ﺑﻪ ﻋﻤﻞ ﺁﻭﺭﻧﺪ ﻭ ﺁﻥ ﺭﺍ ﻫﺮ ﺑﺎﺭ ﺍﺻﻼﺡ ﻛﻨﻨﺪ.
ﺑﺮﺧﻼﻑ ﻣﺪﻝﻫﺎﻱ ﻃﺮﺍﺣﻲ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﺳﻨﺘﻲ OOD ،ﻣﻨﺠﺮ ﺑﻪ ﻳﻚ ﻃﺮﺍﺣﻲ ﻣﻲ ﺷﻮﺩ ﻛﻪ ﺷﺎﻣﻞ ﺳـﻄﻮﺡ ﻣﺘﻔـﺎﻭﺗﻲ ﺍﺯ ﭘﻴﻤﺎﻧـﻪ ﻫـﺎ
ﺍﺳﺖ .ﻣﻮﻟﻔﻪ ﻫﺎﻱ ﺳﻴﺴﺘﻢ ﺍﺻﻠﻲ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮﺳﻴﺴﺘﻢ ﻳﺎ ﭘﻴﻤﺎﻧﻪ ﺳﻄﺢ ﺳﻴﺴﺘﻤﻲ ﺳﺎﺯﻣﺎﻧﺪﻫﻲ ﻣﻲ ﺷـﻮﻧﺪ .ﺩﺍﺩﻩ ﻫـﺎ ﻭ ﻋﻤﻠﻴـﺎﺗﻲ
ﻛﻪ ﺩﺍﺩﻩ ﻫﺎ ﺭﺍ ﺩﺳﺘﻜﺎﺭﻱ ﻣﻲ ﻛﻨﻨﺪ ،ﺩﺭ ﺍﺷﻴﺎﺀ -ﻳﻚ ﺷﻜﻞ ﭘﻴﻤﺎﻧﻪ ﺍﻱ ﻛﻪ ﻣﻮﻟﻔﻪ ﺳﺎﺯﻧﺪﻩ ﺳﻴﺴﺘﻢﻫﺎﻱ OOﺍﺳﺖ -ﺑﺴﺘﻪ ﺑﻨـﺪﻱ
ﻣﻲ ﺷﻮﻧﺪ .ﺑﻪ ﻋﻼﻭﻩ OOD ،ﺑﺎﻳﺪ ﺳﺎﺯﻣﺎﻥ ﺩﺍﺩﻩ ﻫﺎﻱ ﻣﺮﺑﻮﻁ ﺑﻪ ﺻﻔﺎﺕ ﻭ ﺟﺰﻳﻴﺎﺕ ﺭﻭﻳﻪﺍﻱ ﻫﺮ ﻳﻚ ﺍﺯ ﻋﻤﻠﻴﺎﺕ ﺭﺍ ﺗﻮﺻـﻴﻒ ﻛﻨـﺪ.
ﺍﻳﻨﻬﺎ ﻧﺸﺎﻧﮕﺮ ﻣﻮﻟﻔﻪ ﻫﺎﻱ ﺩﺍﺩﻩ ﻫﺎ ﻭ ﺍﻟﮕﻮﺭﻳﺘﻤﻲ ﺳﻴﺴﺘﻢ OOﺑﻮﺩﻩ ﺩﺭ ﭘﻴﻤﺎﻧﻪﺍﻱ ﻛﺮﺩﻥ ﺳﻴﺴﺘﻢ ﺳﻬﻢ ﺩﺍﺭﺩ.
ﻃﺮﺍﺣﻲ ﺯﻳﺮﺳﻴﺴﺘﻢﻫﺎ ﺑﺎ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﺧﻮﺍﺳﺘﻪ ﻫﺎﻱ ﻣﺸﺘﺮﻱ )ﻛﻪ ﺩﺭ ﻣﻮﺍﺭﺩ ﻛﺎﺭﺑﺮﺩ ﺍﺭﺍﻳﻪ ﺷـﺪﻧﺪ( ﻭ ﺭﻭﻳـﺪﺍﺩﻫﺎ ﻭ ﺣﺎﻟـﺖﻫـﺎﻳﻲ ﺑـﻪ
ﺩﺳﺖ ﻣﻲ ﺁﻳﺪ ﻛﻪ ﻗﺎﺑﻞ ﻣﺸـﺎﻫﺪﻩ ﻫﺴـﺘﻨﺪ)ﻣـﺪﻝ ﺭﻓﺘـﺎﺭ ﺍﺷـﻴﺎﺀ( .ﻃﺮﺍﺣـﻲ ﻛـﻼﺱﻫـﺎ ﻭ ﺍﺷـﻴﺎﺀ ﺍﺯ ﺗﻮﺻـﻴﻒ ﺻـﻔﺎﺕ ،ﻋﻤﻠﻴـﺎﺕ ﻭ
ﻣﺸﺎﺭﻛﺖﻫﺎﻱ ﻣﻮﺟﻮﺩ ﺩﺭ ﻣﺪﻝ CRCﺗﺼﻮﻳﺮ ﺑﺮﺩﺍﺭﻱ ﻣﻲ ﺷﻮﺩ .ﻃﺮﺍﺣﻲ ﭘﻴﻐﺎﻡﻫﺎ ﺗﻮﺳﻂ ﻣﺪﻝ ﺭﻭﺍﺑﻂ ﻣﻴﺎﻥ ﺍﺷﻴﺎﺀ ﺑـﻪ ﺩﺳـﺖ ﻣـﻲ
ﺁﻳﺪ ﻭ ﻃﺮﺍﺣﻲ ﻣﺴﻮﻭﻟﻴﺖﻫﺎ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺻﻔﺎﺕ ،ﻋﻤﻠﻴﺎﺕ ﻭ ﻣﺸﺎﺭﻛﺖﻫﺎﻱ ﺷﺮﺡ ﺩﺍﺩﻩ ﺷﺪﻩ ﺩﺭ ﻣﺪﻝ CRCﺑﻪ ﺩﺳﺖ ﻣﻲ ﺁﻳﺪ.
Fishmanﻭ [FIC92] Kemererﺩﻩ ﻣﻮﻟﻔﻪ ﻣﺪﻟﺴﺎﺯﻱ ﻃﺮﺍﺣﻲ ﺭﺍ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲ ﻛﻨﻨﺪ ﻛﻪ ﻣﻲ ﺗﻮﺍﻥ ﺁﻧﻬﺎ ﺭﺍ ﺑـﺮﺍﻱ ﻣﻘﺎﻳﺴـﻪ
ﺭﻭﺵﻫﺎﻱ ﻃﺮﺍﺣﻲ ﺷﻲﺀ ﮔﺮﺍ ﻭ ﺳﻨﺘﻲ ﺑﻪ ﻛﺎﺭ ﺑﺮﺩ:
.۱ﻧﻤﺎﻳﺶ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺐ ﭘﻴﻤﺎﻧﻪ ﻫﺎ
.۲ﻣﺸﺨﺺ ﺳﺎﺯﻱ ﺗﻌﺎﺭﻳﻒ ﺩﺍﺩﻩ ﻫﺎ
.۳ﻣﺸﺨﺺ ﺳﺎﺯﻱ ﻣﻨﻄﻖ ﺭﻭﻳﻪ ﺍﻱ
ﻣﺴﺎﻳﻞ ﻃﺮﺍﺣﻲ
Bertrandﻭ [MYE90 ] Meyerﭘﻨﺞ ﻣﻼﻙ ﺑﺮﺍﻱ ﻗﻀﺎﻭﺕ ﺩﺭ ﺧﺼﻮﺹ ﺗﻮﺍﻧﺎﻳﻲ ﺭﻭﺵﻫﺎﻱ ﻃﺮﺍﺣﻲ ﺑﺮﺍﻱ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ
ﭘﻴﻤﺎﻧﻪﺍﻱ ﺑﻮﺩﻥ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲﻛﻨﺪ ﻭ ﺁﻧﻬﺎ ﺭﺍ ﺑﻪ ﻃﺮﺍﺣﻲ ﺷﻲﺀ ﮔﺮﺍ ﺭﺍﺑﻂ ﻣﻲ ﺩﻫﺪ:
· ﺗﺠﺰﻳﻪ ﭘﺬﻳﺮﻱ :ﻣﻴﺰﺍﻥ ﺳﻬﻮﻟﺘﻲ ﻛﻪ ﺭﻭﺵ ﻃﺮﺍﺣﻲ ﺑﻪ ﻃﺮﺍﺡ ﻛﻤﻚ ﻣﻲ ﻛﻨﺪ ﺗﺎ ﻣﺴﺎﻟﻪ ﺍﻱ ﺑﺰﺭﮒ ﺭﺍ ﺑـﻪ ﭼﻨـﺪ ﻣﺴـﺎﻟﻪ
ﻛﻮﭼﻜﺘﺮ ﺗﺠﺰﻳﻪ ﻛﻨﺪ ﻛﻪ ﺭﺍﺣﺖ ﺗﺮ ﻗﺎﺑﻞ ﺣﻞ ﺑﺎﺷﻨﺪ؛
· ﺗﺮﻛﻴﺐ ﭘﺬﻳﺮﻱ .ﺣﺪﻱ ﻛﻪ ﺭﻭﺵ ﻃﺮﺍﺣﻲ ﺍﻃﻤﻴﻨﺎﻥ ﻣﻲ ﺩﻫﺪ ﺗﺎ ﻣﻮﻟﻔﻪ ﻫﺎﻱ ﺑﺮﻧﺎﻣـﻪ )ﭘﻴﻤﺎﻧـﻪ ﻫـﺎ( ﭘـﺲ ﺍﺯ ﻃﺮﺍﺣـﻲ ﻭ
ﺳﺎﺧﺘﻪ ﺷﺪﻥ ،ﺩﺭ ﺍﻳﺠﺎﺩ ﺳﻴﺴﺘﻢﻫﺎﻱ ﺩﻳﮕﺮ ﻗﺎﺑﻞ ﺍﺳﺘﻔﺎﺩﻩ ﺑﺎﺷﻨﺪ؛
· ﺩﺭﻙ ﭘﺬﻳﺮﻱ :ﺳﻬﻮﻟﺖ ﺩﺭﻙ ﻳﻚ ﻣﻮﻟﻔﻪ ﺍﺯ ﺑﺮﻧﺎﻣﻪ ﺑﺪﻭﻥ ﺭﺟﻮﻉ ﺑﻪ ﺍﻃﻼﻋﺎﺕ ﺩﻳﮕﺮ ﻳﺎ ﭘﻴﻤﺎﻧﻪ ﻫﺎﻱ ﺩﻳﮕﺮ؛
· ﺗﺪﺍﻭﻡ :ﺗﻮﺍﻧﺎﻳﻲ ﺍﻳﺠﺎﺩ ﺗﻐﻴﻴﺮﺍﺕ ﻛﻮﭼﻚ ﺩﺭ ﺑﺮﻧﺎﻣﻪ ،ﺑﻪ ﻃﻮﺭﻱ ﻛﻪ ﺍﻳﻦ ﺗﻐﻴﻴﺮﺍﺕ ﺧﻮﺩﺷﺎﻥ ﺭﺍ ﺑﺎ ﺗﻐﻴﻴﺮﺍﺕ ﻣﺘﻨـﺎﻇﺮ ﺩﺭ ﻳـﻚ
ﻳﺎ ﭼﻨﺪ ﭘﻴﻤﺎﻧﻪ ﻧﺸﺎﻥ ﺩﻫﻨﺪﻩ؛
· ﻣﺤﺎﻓﻈﺖ :ﺧﺼﻮﺻﻴﺘﻲ ﺍﺯ ﻣﻌﻤﺎﺭﻱ ﻛﻪ ﺍﻧﺘﺸﺎﺭ ﺍﺛﺮﺍﺕ ﺟﺎﻧﺒﻲ ﺣﺎﺻﻞ ﺍﺯ ﺧﻄﺎ ﺭﺍ ﺩﺭ ﻳﻚ ﭘﻴﻤﺎﻧﻪ ﻛﺎﻫﺶ ﻣﻲﺩﻫﺪ.
[MEY90 ] Meyerﭘﻴﺸﻨﻬﺎﺩ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﭘﻨﺞ ﺍﺻﻞ ﻃﺮﺍﺣﻲ ﺯﻳﺮ ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺑﺮﺍﻱ ﻣﻌﻤﺎﺭﻱ ﭘﻴﻤﺎﻧـﻪ ﺍﻱ ﺑـﻮﺩﻥ ﺑـﻪ ﺩﺳـﺖ
ﺁﻭﺭﺩ:
-۱ﻭﺍﺣﺪﻫﺎﻱ ﭘﻴﻤﺎﻧﻪ ﺍﻱ ﺑﻮﺩﻥ ﺯﻳﺎﻧﻲ؛
-۲ﻭﺍﺳﻂﻫﺎﻱ ﻣﻌﺪﻭﺩ؛
-۳ﻭﺍﺳﻂﻫﺎﻱ ﻛﻮﭼﻚ )ﺍﺗﺼﺎﻝ ﺿﻌﻴﻒ(؛
-۴ﻭﺍﺳﻂﻫﺎﻱ ﻣﺸﺨﺺ؛
-۵ﻣﺨﻔﻲ ﺳﺎﺯﻱ ﺍﻃﻼﻋﺎﺕ)ﺍﻧﺴﺠﺎﻡ ﺑﺎﻻ(
ﺩﻭﺭﻧﻤﺎﻱ OOD
ﺩﺭ ﺩﻫﻪ ۱۹۸۰ﻭ ﺍﻭﺍﻳﻞ ﺩﻫﻪ ،۱۹۹۰ﮔﺴﺘﺮﻩ ﻭﺳﻴﻌﻲ ﺍﺯ ﺭﻭﺵﻫﺎﻱ ﺗﺤﻠﻴﻞ ﻭ ﻃﺮﺍﺣﻲ ،OOﭘﻴﺸﻨﻬﺎﺩ ﻭ ﺑﻪ ﻛﺎﺭ ﮔﺮﻓﺘـﻪ ﺷـﺪﻧﺪ .ﺍﻳـﻦ
ﺭﻭﺵﻫﺎ ﻣﻮﻟﺪ ﻧﺸﺎﻧﻪ ﮔﺬﺍﺭﻱ ،ﺍﺻﻮﻝ ﻃﺮﺍﺣﻲ ﻭ ﻣﺪﻝﻫﺎﻱ ﻣﺮﺑﻮﻁ ﺑﻪ OODﻧﻮﻳﻦ ﺷﺪﻧﺪ .ﻧﮕـﺎﻫﻲ ﺍﺟﻤـﺎﻟﻲ ﺑـﻪ ﺭﻭﺵﻫـﺎﻱ ﺍﻭﻟﻴـﻪ
OODﺧﺎﻟﻲ ﺍﺯ ﻟﻄﻒ ﻧﺒﻮﺩﻩ ﻭ ﻣﻲﺗﻮﺍﻧﺪ ﺁﻣﻮﺯﻧﺪﻩ ﻧﻴﺰ ﺑﺎﺷﺪ:
ﺭﻭﺵ :Boochﻫﻤﺎﻥ ﻃﻮﺭ ﻛﻪ ﺩﺭ ﻓﺼﻞ ۱۸ﮔﻔﺘﻪ ﺷﺪ ،ﺍﻳﻦ ﺭﻭﺵ ﺷﺎﻣﻞ ﻳﻚ ﻓﺮﺁﻳﻨﺪ ﺗﻮﺳﻌﻪ ﻣﻴﻜﺮﻭ ﻭﻳﻚ ﻓﺮﺁﻳﻨﺪ ﺗﻮﺳﻌﻪ
ﻣﺎﻛﺮﻭ ﺍﺳﺖ .ﺩﺭ ﺯﻣﻴﻨﺔ ﻃﺮﺍﺣﻲ ،ﺗﻮﺳﻌﺔ ﻣﺎﻛﺮﻭ ﺷﺎﻣﻞ ﻳﻚ ﻓﻌﺎﻟﻴﺖ ﻃﺮﺍﺣـﻲ ﻣﻌﻤـﺎﺭﻱ ﺍﺳـﺖ ﻛـﻪ ﺍﺷـﻴﺎﻱ ﻣﺸـﺎﺑﻪ ﺭﺍ ﺩﺭ ﺍﻓﺮﺍﺯﻫـﺎﻱ
ﻣﻌﻤﺎﺭﻱ ﺟﺪﺍﮔﺎﻧﻪ ،ﮔﺮﻭﻩﺑﻨﺪﻱ ﻣﻲﻛﻨﺪ؛ ﺍﺷﻴﺎﺀ ﺭﺍ ﺍﺯ ﻧﻈﺮ ﺳﻄﺢ ﺍﻧﺘﺰﺍﻉ ،ﻻﻳﻪﺑﻨﺪﻱ ﻣﻲﻛﻨـﺪ ،ﺳـﻨﺎﺭﻳﻮﻫﺎﻱ ﻣـﺮﺗﺒﻂ ﺭﺍ ﺷﻨﺎﺳـﺎﻳﻲ؛ ﻳـﻚ
ﻧﻤﻮﻧﻪ ﺍﻭﻟﻴﻪ ﺑﺮﺍﻱ ﻃﺮﺍﺣﻲ ﺍﻳﺠﺎﺩ ﻭ ﻧﻤﻮﻧﻪ ﺍﻭﻟﻴﻪ ﺭﺍ ﺑﺎ ﺍﻋﻤﺎﻝ ﺁﻥ ﺭﻭﻱ ﺳﻨﺎﺭﻳﻮﻫﺎﻱ ﻛﺎﺭﺑﺮﺩ ،ﺍﻋﺘﺒﺎﺭﺳـﻨﺠﻲ ﻣـﻲﻛﻨـﺪ .ﺗﻮﺳـﻌﻪ ﻣﻴﻜـﺮﻭ،
ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﻗﻮﺍﻋﺪ ﺭﺍ ﺗﻌﻴﻴﻦ ﻣﻲﻛﻨﺪ ﻛﻪ ﺣﺎﻛﻢ ﺑﺮ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻋﻤﻠﻴﺎﺕ ﻭ ﺻﻔﺎﺕ ﻫﺴﺘﻨﺪ ﻭ ﺳﻴﺎﺳﺖﻫﺎﻱ ﺧـﺎﺹ ﺩﺍﻣﻨـﻪ ﺭﺍ ﺑـﺮﺍﻱ
ﻣﺪﻳﺮﻳﺖ ﺣﺎﻓﻈﻪ ،ﻛﻨﺘﺮﻝ ﺧﻄﺎ ﻭ ﻋﻤﻠﻜﺮﺩﻫﺎﻱ ﺯﻳﺮﺳﺎﺧﺘﻲ ﺩﻳﮕﺮ ﻭﺿﻊ ﻣﻲﻛﻨﻨﺪ؛ ﺳﻨﺎﺭﻳﻮﻫﺎﻳﻲ ﺭﺍ ﺗﻮﺳﻌﻪ ﻣـﻲﺩﻫـﺪ ﻛـﻪ ﻣﻌـﺎﻧﻲ ﺍﻳـﻦ
ﻗﻮﺍﻋﺪ ﻭ ﺳﻴﺎﺳﺖﻫﺎ ﺭﺍ ﺗﺒﻴﻴﻦ ﻣﻲﻛﻨﺪ؛ ﺑﺮﺍﻱ ﻫﺮ ﺳﻴﺎﺳﺖ ﻳﻚ ﻧﻤﻮﻧﻪ ﺍﻭﻟﻴﻪ ﻣﻲﺳﺎﺯﺩ؛ ﻧﻤﻮﻧﻪ ﺍﻭﻟﻴﻪ ﺭﺍ ﺩﺳﺘﻜﺎﺭﻱ ﻭ ﭘﺎﻻﻳﺶ ﻣـﻲﻛﻨـﺪ ﻭ
ﻫﺮ ﺳﻴﺎﺳﺖ ﺭﺍ ﻣﻮﺭﺩ ﺑﺎﺯﺑﻴﻨﻲ ﻗﺮﺍﺭ ﻣﻲﺩﻫﺪ .ﺑﻪ ﻃﻮﺭﻱ ﻛﻪ ﺗﺼﻮﻳﺮ ﻣﻌﻤﺎﺭﻱ ﺳﻴﺴﺘﻢ ﺁﺷﻜﺎﺭ ﮔﺮﺩﺩ] .[BOO94
ﺭﻭﺵ .Ramboughﺗﻜﻨﻴﻚ ﻣﺪﻟﺴﺎﺯﻱ ﺍﺷﻴﺎ ) (OMTﺷﺎﻣﻞ ﻳﻚ ﻓﻌﺎﻟﻴﺖ ﻃﺮﺍﺣﻲ ﺍﺳﺖ ﻛـﻪ ﺍﺟـﺮﺍﻱ ﻃﺮﺍﺣـﻲ ﺩﺭ ﺳـﻄﺢ
ﺍﻧﺘﺰﺍﻉ ﻣﺘﻔﺎﻭﺕ ﺭﺍ ﺗﺸﻮﻳﻖ ﻣﻲﻛﻨﺪ .ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻢ ﺑﺮ ﺁﺭﺍﻳﺶ ﻗﻄﻌﺎﺗﻲ ﺗﺄﻛﻴﺪ ﺩﺍﺭﺩ ﻛﻪ ﺑﺮﺍﻱ ﺳـﺎﺧﺖ ﻣﺤﺼـﻮﻝ ﻳـﺎ ﺳﻴﺴـﺘﻢ ﻛﺎﻣـﻞ
ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﺍﺳﺖ .ﻣﺪﻝ ﺗﺤﻠﻴﻞ ،ﺑﻪ ﺯﻳﺮﺳﻴﺴﺘﻢﻫﺎﻳﻲ ﺍﻓﺮﺍﺯ ﻣﻲﺷﻮﺩ ﻛﻪ ﺑﻪ ﭘﺮﺩﺍﺯﻧﺪﻩﻫﺎ ﻭ ﻭﻇﺎﻳﻒ ﺍﺧﺘﺼﺎﺹ ﺩﺍﺩﻩ ﻣﻲﺷـﻮﻧﺪ .ﺭﺍﻫﺒـﺮﺩﻱ
ﺑﺮﺍﻱ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﻣﺪﻳﺮﻳﺖ ﺩﺍﺩﻩﻫﺎ ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﻣﻨﺎﺑﻊ ﺳﺮﺗﺎﺳﺮﻱ ﻭ ﺭﺍﻫﻜﺎﺭﻫﺎﻱ ﻛﻨﺘﺮﻟﻲ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﺑﺮﺍﻱ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺁﻧﻬﺎ ﺷﻨﺎﺳـﺎﻳﻲ
ﻣﻲﺷﻮﻧﺪ.
ﻃﺮﺍﺣﻲ ﺍﺷﻴﺎﺀ ﺑﺮ ﺁﺭﺍﻳﺶ ﻣﺸﺮﻭﺡ ﻳﻚ ﺷﻲﺀ ﻣﻨﻔﺮﺩ ﺗﺄﻛﻴﺪ ﺩﺍﺭﺩ .ﻋﻤﻠﻴﺎﺕ ﺍﺯ ﻣﺪﻝ ﺗﺤﻠﻴـﻞ ﺍﻧﺘﺨـﺎﺏ ﻣـﻲﺷـﻮﻧﺪ ﻭ ﺑـﺮﺍﻱ ﻫـﺮ ﻋﻤـﻞ
ﺍﻟﮕﻮﺭﻳﺘﻢﻫﺎﻳﻲ ﺗﻌﻴﻴﻦ ﻣﻲﺷﻮﻧﺪ .ﺳﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﻫﺎﻱ ﻣﻨﺎﺳﺐ ﺑﺮﺍﻱ ﺻﻔﺎﺕ ﻭ ﺍﻟﮕﻮﺭﻳﺘﻢﻫـﺎ ﺍﺭﺍﻳـﻪ ﻣـﻲﺷـﻮﻧﺪ .ﻛـﻼﺱﻫـﺎ ﻭ ﺻـﻔﺎﺕ
ﻛﻼﺱﻫﺎ ﺑﻪ ﺷﻴﻮﻩﺍﻱ ﻃﺮﺍﺣﻲ ﻣﻲ ﺷﻮﻧﺪ ﻛﻪ ﺩﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺩﺍﺩﻩﻫﺎ ﺭﺍ ﺑﻬﻴﻨﻪ ﻛﺮﺩﻩ ﺑﺎﺯﺩﻫﻲ ﻛﺎﺭ ﻛﺎﻣﭙﻴﻮﺗﺮﻱ ﺭﺍ ﺑﻬﺒﻮﺩ ﻣﻲﺑﺨﺸﻨﺪ .ﺑـﺮﺍﻱ
ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﺭﻭﺍﺑﻂ ﻣﻴﺎﻥ ﺍﺷﻴﺎﺀ ﻳﻚ ﻣﺪﻝ ﭘﻴﻐﺎﻡﺭﺳﺎﻧﻲ ﺍﻳﺠﺎﺩ ﻣﻲﺷﻮﺩ].[RUM91
ﺭﻭﺵ .Jacobsonﻓﻌﺎﻟﻴﺖ ﻃﺮﺍﺣـﻲ ﺑـﺮﺍﻱ ) OOSEﻣﻬﻨﺪﺳـﻲ ﻧـﺮﻡﺍﻓـﺰﺍﺭ ﺷـﻲﺀﮔـﺮﺍ( ،ﻧﺴـﺨﻪ ﺳـﺎﺩﻩﺍﻱ ﺍﺯ ﻳـﻚ ﺭﻭﺵ
ﺷﻲﺀﮔﺮﺍﻳﻲ ﻣﻘﺪﻣﺎﺗﻲ ﺍﺳﺖ ﻛﻪ ﺁﻥ ﺭﺍ ﻧﻴﺰ Jacobsonﺍﺑﺪﺍﻉ ﻛﺮﺩﻩ ﺍﺳﺖ .ﻣـﺪﻝ ﻃﺮﺍﺣـﻲ ﺑـﺮ ﻗﺎﺑﻠﻴـﺖ ﭘﻴﮕﻴـﺮﻱ ﻣـﺪﻝ ﺗﺤﻠﻴـﻞ
OOSEﺗﺄﻛﻴﺪ ﺩﺍﺭﺩ .ﻧﺨﺴﺖ ،ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﺍﻳﺪﻩﺁﻟﻲ ﺍﻧﺘﺨﺎﺏ ﻣﻲﺷﻮﺩ ﻛﻪ ﺩﺭ ﻣﺤﻴﻂ ﺟﻬﺎﻥ ﻭﺍﻗﻌﻲ ﺑﮕﻨﺠﺪ .ﺳﭙﺲ ﺍﺷﻴﺎﻱ ﻃﺮﺍﺣـﻲ
ﺍﺻﻠﻲ ،ﻣﻮﺳﻮﻡ ﺑﻪ ﺑﻠﻮﻙ ﺍﻳﺠﺎﺩ ﻣﻲﺷﻮﻧﺪ ﻭ ﺑﻪ ﻋﻨﻮﺍﻥ ﺑﻠﻮﻙﻫﺎﻱ ﻭﺍﺳﻂ ،ﺑﻠﻮﻙﻫﺎﻱ ﻣﻮﺟﻮﺩﻳﺖ ﻭ ﺑﻠﻮﻙﻫـﺎﻱ ﻛﻨﺘـﺮﻝ ﮔـﺮﻭﻩﺑﻨـﺪﻱ
ﻣﻲﺷﻮﻧﺪ .ﺍﺭﺗﺒﺎﻁ ﻣﻴﺎﻥ ﺑﻠﻮﻙﻫﺎ ﺩﺭ ﺣﻴﻦ ﺍﺟـﺮﺍ ﺗﻌﻴـﻴﻦ ﻣـﻲﺷـﻮﺩ ﻭ ﺑﻠـﻮﻙﻫـﺎ ﺑـﻪ ﺻـﻮﺭﺕ ﺯﻳـﺮ ﺳﻴﺴـﺘﻢ ﺳـﺎﺯﻣﺎﻧﺪﻫﻲ ﻣـﻲﺷـﻮﺩ
] .[JAC92
ﺭﻭﺵ Coadﻭ .Yourdonﺍﻳﻦ ﺭﻭﺵ ﺑﺮﺍﻱ OODﺑﺎ ﻣﻄﺎﻟﻌﻪ ﭼﮕﻮﻧﮕﻲ ﺍﻧﺠﺎﻡ ﻛﺎﺭ ﻃﺮﺍﺣﻲ ﺗﻮﺳـﻂ ﻃﺮﺍﺣﺎﻥ ﻛﺎﺭﺁﻣـﺪ
ﺷﻲﺀﮔﺮﺍ ﺗﻮﺳﻌﻪ ﻳﺎﻓﺘﻪ ﺍﺳﺖ .ﺍﻳﻦ ﺭﻭﺵ ﻃﺮﺍﺣﻲ ﻧﻪ ﺗﻨﻬﺎ ﺑﻪ ﻛﺎﺭﺑﺮﺩ ﻣﻲﭘﺮﺩﺍﺯﺩ ،ﺑﻠﻜﻪ ﺑـﻪ ﺯﻳﺮﺳـﺎﺧﺖ ﻛـﺎﺭﺑﺮ ﻧﻴـﺰ ﺗﻮﺟـﻪ ﺩﺍﺭﺩ ﻭ ﺑـﺮ
ﻧﻤﺎﻳﺶ ﭼﻬﺎﺭ ﻣﻮﻟﻔﻪ ﺍﺻﻠﻲ ﺳﻴﺴﺘﻢ ،ﻳﻌﻨﻲ ﺩﺍﻣﻨﻪ ﻣﺴﺎﻟﻪ ،ﺗﻌﺎﻣﻞ ﺑﺎ ﺍﻧﺴﺎﻥ ،ﻣـﺪﻳﺮﻳﺖ ﻭﻇـﺎﻳﻒ ﻭ ﻣـﺪﻳﺮﻳﺖ ﺩﺍﺩﻩ ﻫـﺎ ﺗﺄﻛﻴـﺪ
ﺩﺍﺭﺩ].[COA91
ﺭﻭﺵ .Wirfs-Brockﺍﻳﻦ ﺭﻭﺵ ﻃﻴﻒ ﭘﻴﻮﺳﺘﻪﺍﻱ ﺍﺯ ﻭﻇﺎﻳﻒ ﺭﺍ ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﺪ ﻛﻪ ﺩﺭ ﺁﻥ ،ﺗﺤﻠﻴـﻞ ﺑﻼﻓﺎﺻـﻠﻪ ﻣﻨﺠـﺮ ﺑـﻪ
ﻃﺮﺍﺣﻲ ﻣﻲﺷﻮﺩ .ﭘﺮﻭﺗﻜﻞﻫﺎﻱ ﻣﺮﺑﻮﻁ ﺑﻪ ﻫﺮ ﻛﻼﺱ ﺑﺎ ﭘﺎﻻﻳﺶ ﭘﺮﻭﺗﻜﻞﻫﺎﻱ ﻣﻴﺎﻥ ﺍﺷﻴﺎﺀ ﺍﻳﺠﺎﺩ ﻣﻲﺷﻮﻧﺪ .ﻫﺮ ﻋﻤـﻞ )ﻣﺴـﻮﻭﻟﻴﺖ(
ﻭ ﭘﺮﻭﺗﻜﻞ )ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ( ﺩﺭ ﺳﻄﺤﻲ ﺍﺯ ﺟﺰﻳﻴﺎﺕ ﻃﺮﺍﺣﻲ ﻣﻲﺷﻮﺩﻛﻪ ﻗﺎﺑﻞ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﺑﺎﺷـﻨﺪ .ﻣﺸﺨﺼـﻪﻫـﺎﻱ ﻣﺮﺑـﻮﻁ ﺑـﻪ ﻫـﺮ
ﻛﻼﺱ )ﺗﻌﺮﻳﻒ ﻣﺴﺌﻮﻟﻴﺖﻫﺎﻱ ﺧﺼﻮﺻﻲ ﻭ ﺟﺰﻳﻴﺎﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﻋﻤﻠﻴﺎﺕ( ﻭ ﻫﺮ ﺯﻳﺮﺳﻴﺴﺘﻢ ﺷﻨﺎﺳﺎﻳﻲ ﻫﻤﺔ ﻛﻼﺱﻫﺎﻱ ﺑﺴﺘﻪﺑﻨـﺪﻱ
ﺷﺪﻩ ﻭ ﺗﻌﺎﻣﻞ ﻣﻴﺎﻥ ﺯﻳﺮﺳﻴﺴﺘﻢﻫﺎ( ﺗﻬﻴﻪ ﻣﻲﺷﻮﺩ].[WIR90
ﮔﺮﭼﻪ ﺍﺻﻄﻼﺣﺎﺕ ﻭ ﻣﺮﺍﺣﻞ ﻓﺮﺁﻳﻨﺪ ﺑﺮﺍﻱ ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻳﻦ ﺭﻭﺵﻫﺎﻱ OODﻣﺘﻔﺎﻭﺕ ﺍﺳـﺖ ،ﻭﻟـﻲ ﻛـﻞ ﻓﺮﺁﻳﻨـﺪ OODﻳﻜـﻲ
ﺍﺳﺖ .ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺮﺍﻱ ﺍﺟﺮﺍﻱ ﻣﻬﻨﺪﺳﻲ ﺷﻲﺀﮔﺮﺍ ﺑﺎﻳﺪ ﻣﺮﺍﺣﻞ ﺯﻳﺮ ﺭﺍ ﺍﺟﺮﺍ ﻛﻨﺪ:
.۱ﺗﻮﺻﻴﻒ ﻛﻠﻴﻪ ﺯﻳﺮﺳﻴﺴﺘﻢﻫﺎ ﻭ ﺍﺧﺘﺼﺎﺹ ﺩﺍﺩﻥ ﺁﻥ ﺑﻪ ﭘﺮﺩﺍﺯﻧﺪﻩﻫﺎ ﻭ ﻭﻇﺎﻳﻒ.
.۲ﺍﻧﺘﺨﺎﺏ ﻳﻚ ﺭﺍﻫﺒﺮﺩ ﻃﺮﺍﺣﻲ ﺑﺮﺍﻱ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﻣﺪﻳﺮﻳﺖ ﺩﺍﺩﻩﻫﺎ ،ﭘﺸﺘﻴﺒﺎﻧﻲ ﻭﺍﺳﻂﻫﺎ ﻭ ﻣﺪﻳﺮﻳﺖ ﻭﻇﺎﻳﻒ.
.۳ﻃﺮﺍﺣﻲ ﻳﻚ ﺭﺍﻫﻜﺎﺭ ﻛﻨﺘﺮﻟﻲ ﻣﻨﺎﺳﺐ ﺑﺮﺍﻱ ﺳﻴﺴﺘﻢ.
ﺍﺟﺮﺍﻱ ﻃﺮﺍﺣﻲ ﺍﺷﻴﺎﺀ ﺑﺎ ﺍﻳﺠﺎﺩ ﻳﻚ ﻧﻤﺎﻳﺶ ﺭﻭﻳﻪﺍﻱ ﺑﺮﺍﻱ ﻫﺮ ﻋﻤـﻞ ﻭ ﺳـﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﻫـﺎ ﺑـﺮﺍﻱ ﺻـﻔﺎﺕ .۴
ﻛﻼﺱﻫﺎ.
ﺍﺟﺮﺍﻱ ﻃﺮﺍﺣﻲ ﭘﻴﻐﺎﻡﻫﺎ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺸﺎﺭﻛﺖ ﻣﻴﺎﻥ ﺍﺷﻴﺎﺀ ﻭ ﺭﻭﺍﺑﻂ ﻣﻴﺎﻥ ﺍﺷﻴﺎﺀ. .۵
ﺍﻳﺠﺎﺩ ﻣﺪﻝ ﻃﺮﺍﺣﻲ. .۶
ﺑﺎﺯﺑﻴﻨﻲ ﻣﺪﻝ ﻃﺮﺍﺣﻲ ﻭ ﺗﻜﺮﺍﺭ ﺁﻥ ﺗﺎ ﺣﺪ ﻛﻔﺎﻳﺖ. .۷
ﺗﺤﻠﻴﻞ ﺷﻲﺀﮔﺮﺍ
ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻢ
ﻃﺮﺍﺣﻲ ﻣﺪﻳﺮﻳﺖ
ﻭﻇﺎﻳﻒ
ﻃﺮﺍﺣﻲ ﺍﺷﻴﺎﺀ
ﻃﺮﺍﺣﻲ ﻣﺪﻳﺮﻳﺖ
ﺩﺍﺩﻩﻫﺎ
ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ
ﺍﻧﺴﺎﻧﻲ
ﺩﺭﺧﻮﺍﺳﺖ
ﺯﻳﺮﺳﻴﺴﺘﻢ ﻣﺸﺘﺮﻱ ﺯﻳﺮﺳﻴﺴﺘﻢ ﻛﺎﺭﮔﺰﺍﺭ
ﻗﺮﺍﺭﺩﺍﺩ
ﺩﺭﺧﻮﺍﺳﺖ
ﺯﻳﺮﺳﻴﺴﺘﻢ ﻧﻈﻴﺮ ﺯﻳﺮﺳﻴﺴﺘﻢ ﻧﻈﻴﺮ
ﺩﺭﺧﻮﺍﺳﺖ
ﻗﺮﺍﺭﺩﺍﺩ ﻗﺮﺍﺭﺩﺍﺩ
ﺗﻮﺻﻴﻒ ﺍﺷﻴﺎﺀ
ﺗﻮﺻﻴﻒ ﻃﺮﺍﺣﻲ ﻳﻚ ﺷﻲﺀ )ﻧﻤﻮﻧﻪﺍﻱ ﺍﺯ ﻳﻚ ﻛﻼﺱ ﻳﺎ ﺯﻳﺮﻛﻼﺱ( ﻣﻲﺗﻮﺍﻧﺪ ﻳﻜﻲ ﺍﺯ ﺩﻭ ﺷﻜﻞ ﺯﻳﺮ ﺍﻧﺠﺎﻡ ﮔﻴﺮﺩ]:[GOL83
.۱ﺗﻮﺻﻴﻒ ﻗﺮﺍﺭﺩﺍﺩ ﻛﻪ ﻭﺍﺳﻂ ﺷﻲﺀ ﺭﺍ ﺑﺎ ﺗﻌﺮﻳﻒ ﻫﺮ ﭘﻴﻐﺎﻣﻲ ﻛﻪ ﺷﻲﺀ ﻣﻲﺗﻮﺍﻧﺪ ﺩﺭﻳﺎﻓـﺖ ﻛﻨـﺪ ﻭ ﻋﻤﻠـﻲ ﻛـﻪ ﺷـﻲﺀ ﺑـﻪ
ﻫﻨﮕﺎﻡ ﺩﺭﻳﺎﻓﺖ ﺁﻥ ﭘﻴﻐﺎﻡ ﺍﺟﺮﺍ ﻣﻲﻛﻨﺪ ،ﺑﺮﻗﺮﺍﺭ ﻣﻲﺳﺎﺯﺩ ،ﻳﺎ
.۲ﺗﻮﺻﻴﻒ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻣﺮﺑﻮﻁ ﺑﻪ ﻋﻤﻞ ﺩﺭﺧﻮﺍﺳﺖ ﺷﺪﻩ ﺗﻮﺳﻂ ﭘﻴﻐﺎﻡ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ .ﺟﺰﻳﻴـﺎﺕ ﭘﻴـﺎﺩﻩﺳـﺎﺯﻱ ﺷـﺎﻣﻞ
ﺍﻃﻼﻋﺎﺗﻲ ﺩﺭﺑﺎﺭﻩ ﺑﺨﺶ ﺧﺼﻮﺻﻲ ﺷﻲﺀ ﻣﻲ ﺷﻮﺩ ،ﻳﻌﻨﻲ ﺟﺰﻳﻴﺎﺗﻲ ﺩﺭﺑﺎﺭﻩ ﺳﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﻫﺎﻳﻲ ﻛﻪ ﺻـﻔﺎﺕ ﺷـﻲﺀ ﻭ ﺟﺰﻳﻴـﺎﺕ
ﺭﻭﻳﻪﺍﻱ ﺗﻮﺻﻴﻔﮕﺮ ﻋﻤﻠﻴﺎﺕ ﺭﺍ ﺗﻮﺻﻴﻒ ﻣﻲﻛﻨﻨﺪ.
ﻣﺪﻝ ﻛﻼﺱﻫﺎ
ﻣﺪﻝ ﻛﻼﺱ ،ﺗﻮﺻﻴﻔﻲ ﺍﺯ ﻛﻼﺱﻫﺎ ﻭ ﺭﻭﺍﺑﻂ ﻣﻴﺎﻥ ﺁﻧﻬﺎ ﺩﺭ ﻳﻚ ﺳﻴﺴﺘﻢ ﺍﺳﺖ .ﺍﻳﻦ ﻣﺪﻝ ،ﺭﻓﺘﺎﺭ ﭘﻮﻳﺎﻱ ﺳﻴﺴـﺘﻢ ،ﻣـﺜﻼﹰ ﺭﻓﺘـﺎﺭ ﺗـﻚ
ﺗﻚ ﺍﺷﻴﺎﺀ ﺭﺍ ﺗﻮﺻﻴﻒ ﻧﻤﻲﻛﻨﺪ .ﻧﺨﺴﺘﻴﻦ ﻋﻨﺼﺮ ﻧﻤﻮﺩﺍﺭ ﻛﻼﺱﻫﺎ ،ﺷﺮﺣﻲ ﺍﺯ ﺗـﻚ ﺗـﻚ ﻛـﻼﺱﻫـﺎ ﺍﺳـﺖ .ﺷـﻜﻞ ۴ﭼﮕـﻮﻧﮕﻲ
ﺗﻮﺻﻴﻒ ﻳﻚ ﻛﻼﺱ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ .ﺍﻳﻦ ﻛﻼﺱ ﺑﻪ ﻣﺸﺘﺮﻳﺎﻥ ﻳﻚ ﺑﺎﻧﻚ ﻣﺮﺑﻮﻁ ﻣﻲﺷﻮﺩ.
ﺍﻳﻦ ﺷﻜﻞ ﺑﺴﻴﺎﺭ ﺳﺎﺩﻩ ﺍﺳﺖ ،ﺯﻳﺮﺍ ﺗﻨﻬﺎ ﻳﻚ ﻛﻼﺱ ﺩﺍﺭﺩ .ﺍﻳﻦ ﻣﺪﻝ ﺷﺎﻣﻞ ﻧﺎﻡ ﻛـﻼﺱ ) ،(Customerﻧـﺎﻡ ﺑﺮﺧـﻲ ﺻـﻔﺎﺕ ﺁﻥ
)ﻣﺜﻼﹰ ﺻﻔﺖ addressﻳﻌﻨﻲ ﻧﺸﺎﻧﻲ ﻣﺸﺘﺮﻱ ﺍﺳﺖ( ﻭ ﻟﻴﺴﺘﻲ ﺍﺯ ﻋﻤﻠﻴﺎﺕ )ﻣﺜﻼﹰ ،getNameﻧـﺎﻡ ﻣﺸـﺘﺮﻱ ﺭﺍ ﺑﺮﻣـﻲﮔﺮﺩﺍﻧـﺪ(
ﺍﺳﺖ .ﭘﺲ ﻫﺮ ﻣﺴﺘﻄﻴﻠﻲ ﻛﻪ ﻧﺸﺎﻧﮕﺮ ﻳﻚ ﻛﻼﺱ ﺍﺳﺖ ﺷﺎﻣﻞ ﻗﺴﻤﺘﻲ ﺑﺮﺍﻱ ﻧﺎﻡ ﻛﻼﺱ ،ﻗﺴﻤﺘﻲ ﺑـﺮﺍﻱ ﺻـﻔﺎﺕ ﺍﺷـﻴﺎﻱ ﺗﻌﺮﻳـﻒ
ﺷﺪﻩ ﺗﻮﺳﻂ ﺁﻥ ﻛﻼﺱ ﻭ ﻗﺴﻤﺘﻲ ﺑﺮﺍﻱ ﻟﻴﺴﺖ ﻋﻤﻠﻴﺎﺕ ﻣﺮﺗﺒﻂ ﺑﺎ ﺍﻳﻦ ﺷﻲﺀ ﺍﺳﺖ.
ﻣﺸﺘﺮﻱ
ﻧﺎﻡ
ﺁﺩﺭﺱ
ﻭﺿﻌﻴﺖ
getAccounts(): AccountCollection
)setName (String name
getName(): String
ﺗﻌﻤﻴﻢ
ﺍﻳﻦ ﺭﺍﺑﻄﻪ ﻣﻴﺎﻥ ﻛﻼﺱ Xﻭ ﻛﻼﺱ Yﺯﻣﺎﻧﻲ ﺑﺮﻗﺮﺍﺭ ﺍﺳﺖ ﻛﻪ ﻛﻼﺱ Yﻧﻤﻮﻧﻪ ﺧﺎﺹ ﺍﺯ ﻛﻼﺱ Xﺑﺎﺷﺪ .ﺑـﺮﺍﻱ ﻣﺜـﺎﻝ ،ﺑـﻴﻦ
ﻛﻼﺱ Accountﻛﻪ ﻧﺸﺎﻧﮕﺮ ﻳﻚ ﺣﺴﺎﺏ ﺑﺎﻧﻜﻲ ﻋﻤﻮﻣﻲ ﺍﺳﺖ ﻭ ﻳﻚ ﺣﺴﺎﺏ ﺟـﺎﺭﻱ Current Accountﻛـﻪ ﻧﻤﻮﻧـﻪ
ﺧﺎﺻﻲ ﺍﺯ ﻳﻚ ﺣﺴﺎﺏ ﺍﺳﺖ ،ﺭﺍﺑﻄﻪ ﺗﻌﻤﻴﻢ ﻭﺟﻮﺩ ﺩﺍﺭﺩ .ﺷﻜﻞ ۵ﭼﮕﻮﻧﮕﻲ ﻧﻤﺎﻳﺶ ﺍﻳـﻦ ﺭﺍﺑﻄـﻪ ﺭﺍ ﺩﺭ ﻳـﻚ ﻧﻤـﻮﺩﺍﺭ ﻛـﻼﺱﻫـﺎﻱ
UMLﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ.
CurrentAccount DepositAccount
ﺗﺠﻤﻊ ﻭ ﺗﺮﻛﻴﺐ
ﺭﻭﺍﺑﻂ ﻣﻬﻢ ﺩﻳﮕﺮ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ ﺗﺠﻤﻊ ﻭ ﺗﺮﻛﻴﺐ .ﺩﻭ ﺭﺍﺑﻄﻪ ﻭﺟﻮﺩ ﺩﺍﺭﻧﺪ ﻛﻪ ﻧﺸﺎﻥ ﻣﻲﺩﻫﻨﺪ ﻳﻚ ﻛﻼﺱ ﺍﺷﻴﺎﻳﻲ ﺗﻮﻟﻴﺪ ﻣـﻲﻛﻨـﺪ ﻛـﻪ
ﺑﺨﺸﻲ ﺍﺯ ﻳﻚ ﺷﻴﻲﺀ ﺍﺳﺖ ﻛﻪ ﺗﻮﺳﻂ ﻛﻼﺱ ﺩﻳﮕﺮﻱ ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﺍﺳﺖ .ﺑﺮﺍﻱ ﻣﺜـﺎﻝ ،ﺳﻴﺴـﺘﻤﻲ ﺑـﺮﺍﻱ ﻳـﻚ ﺗﻮﻟﻴﺪﻛﻨﻨـﺪﻩ ﺑﺎﻳـﺪ
ﺩﺍﺩﻩﻫﺎﻱ ﻣﺮﺑﻮﻁ ﺑﻪ ﺍﻗﻼﻣﻲ ﺭﺍ ﻧﮕﻬﺪﺍﺭﻱ ﻛﻨﺪ ﻛﻪ ﺗﻮﻟﻴﺪ ﻣﻲﺷﻮﻧﺪ ﻭ ﺍﻳﻨﻜﻪ ﺍﺯ ﭼﻪ ﻣﻮﺍﺭﺩﻱ ﺳﺎﺧﺘﻪ ﻣﻲﺷﻮﻧﺪ .ﻣـﺜﻼﹰ ﻳـﻚ ﻛـﺎﻣﭙﻴﻮﺗﺮ ﺍﺯ
ﻗﻄﻌﺎﺗﻲ ﻣﺜﻞ ﺩﺳﺘﮕﺎﻩ ﺍﺻﻠﻲ ،ﺣﺎﻓﻈﻪ ﺟﺎﻧﺒﻲ ،ﻛﺎﺭﺕﻫﺎﻱ ﺣﺎﻓﻈﻪ ﻭ ﻏﻴﺮﻩ ﺳﺎﺧﺘﻪ ﻣﻲﺷﻮﺩ .ﻛﺎﻣﭙﻴﻮﺗﺮ ﺍﺯ ﻗﻄﻌﺎﺕ ﺗﺸﻜﻴﻞ ﻣـﻲﺷـﻮﺩ ﻭ
ﺩﺭ ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻲﺀﮔﺮﺍ ﻛﻪ ﺑﺮﺍﻱ ﭘﺸﺘﻴﺒﺎﻧﻲ ﺗﻮﻟﻴﺪ ﺑﻪ ﻛﺎﺭ ﺑﺮﺩﻩ ﻣﻲﺷـﻮﺩ ،ﻳـﻚ ﺭﺍﺑﻄـﺔ ﺗﺠﻤﻌـﻲ ﻣﻴـﺎﻥ ﻛـﻼﺱ ﺗﻮﺻـﻴﻒ ﻛﻨﻨـﺪﻩ
ﻣﺤﺼﻮﻝ ﺗﻮﻟﻴﺪ ﺷﺪﻩ ﻭ ﻫﺮ ﻳﻚ ﺍﺯ ﻗﻄﻌﺎﺕ ﺁﻥ ﻭﺟﻮﺩ ﺩﺍﺭﺩ .ﺑﻨﺎﺑﺮﺍﻳﻦ ﻣﻲﮔﻮﻳﻴﻢ ﻳﻚ ﺭﺍﺑﻄﻪ ﺗﺠﻤـﻊ ﻭﺟـﻮﺩ ﺩﺍﺭﺩ .ﺷـﻜﻞ ۶ﭼﮕـﻮﻧﮕﻲ
ﻧﻤﺎﻳﺶ ﺍﻳﻦ ﺭﺍﺑﻄﻪ ﺗﺠﻤﻊ ﺭﺍ ﺩﺭ ﻧﻤﻮﺩﺍﺭ ﻛﻼﺱ UMLﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ.
ManufacturedProduct
ﺩﺭ ﺍﻳﻨﺠﺎ،ﺧﻄﻲ ﻛﻪ ﻟﻮﺯﻱ ﺗﻮﺧﺎﻟﻲ ﺑﻪ ﺁﻥ ﻣﺘﺼﻞ ﺍﺳﺖ ،ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ ﻛﻪ ﻛﻼﺱ ،ﺍﺷﻴﺎﻳﻲ ﺭﺍ ﺗﻮﺻﻴﻒ ﻣﻲﻛﻨﺪ ﻛﻪ ﺍﺷـﻴﺎﻱ
ﺩﻳﮕﺮ ﺭﺍ ﺑﺎ ﻫﻢ ﻣﺠﺘﻤﻊ ﻣﻲ ﻛﻨﻨﺪ .ﻛﻼﺳﻲ ﻛﻪ ﻟﻮﺯﻱ ﺑﻪ ﺁﻥ ﻣﺘﺼﻞ ﺍﺳﺖ ،ﺍﺷﻴﺎﻳﻲ ﺭﺍ ﺗﻮﺻﻴﻒ ﻣﻲﻛﻨﺪ ﻛـﻪ ﺷـﺎﻣﻞ ﺍﺷـﻴﺎﻳﻲ
ﺍﺳﺖ ﻛﻪ ﺗﻮﺳﻂ ﻛﻼﺱﻫﺎﻳﻲ ﺩﻳﮕﺮ ﺗﻌﺮﻳﻒ ﺷﺪﻩﺍﻧﺪ .ﺩﺭ ،UMLﺭﻭﺍﺑﻂ ﻣﻌﻤﻮﻻﹰ ﺑﻪ ﻫﻢ ﺁﻣﻴﺨﺘﻪﺍﻧﺪ .ﺑﺮﺍﻱ ﻣﺜﺎﻝ ﺩﺭ ﺷـﻜﻞ
،۲۲-۱۲ﭼﻨﺪ ﻣﺆﻟﻔﻪ ﻭﺟﻮﺩ ﺩﺍﺭﻧﺪ ﻛﻪ ﺑﺎ ﻛﻼﺱ Componentﺭﺍﺑﻄﻪ ﺗﻌﻤﻴﻢ ﺩﺍﺭﻧـﺪ )ﺷـﻜﻞ .(۲۲-۱۳ﺩﺭﺍﻳـﻦ ﺷـﻜﻞ
Cmponentﺑﺎ ﭼﻨﺪ ﻛﻼﺱ ﺍﺧﺘﺼﺎﺻﻲﺗﺮ ﻣﺮﺗﺒﻂ ﺍﺳﺖ ﻛﻪ ﺗﻮﺻﻴﻔﮕﺮ ﻗﻄﻌﺎﺗﻲ ﻫﺴﺘﻨﺪ ﻛﻪ ﻣﺤﺼﻮﻝ ﺭﺍﻣﻲﺗﻮﺍﻥ ﺍﺯ ﺁﻧﻬـﺎ
ManufacturedProduct ﻣﻮﻧﺘﺎﮊ ﻛﺮﺩ.
Component
Component
AccountCollection
ﻫﻤﺒﺴﺘﮕﻲﻫﺎ
ﺗﺠﻤﻊ ﻭ ﺗﺮﻛﻴﺐ ،ﻣﺜﺎﻝﻫﺎﻱ ﺧﺎﺻﻲ ﺍﺯ ﺭﺍﺑﻄﻪ ﻣﻴﺎﻥ ﺩﻭ ﻛﻼﺱ ﻫﺴﺘﻨﺪ .ﻭﻗﺘﻲ ﻳﻚ ﺭﺍﺑﻄﻪ ﻣﻴﺎﻥ ﺩﻭ ﻛﻼﺱ ﺑﺮﻗﺮﺍﺭ ﻣﻲﺷﻮﺩ ﻛـﻪ ﺑـﻴﻦ
ﺁﻥ ﺩﻭ ﺍﺗﺼﺎﻟﻲ ﺑﺮﻗﺮﺍﺭ ﺑﺎﺷﺪ؛ ﺍﻳﻦ ﺍﺗﺼﺎﻝ ﺩﺭ UMLﺑﻪ ﻋﻨﻮﺍﻥ ﻫﻤﺒﺴﺘﮕﻲ ﺷـﻨﺎﺧﺘﻪ ﻣـﻲﺷـﻮﺩ .ﺑﺮﺧـﻲ ﺍﺯ ﻣﺜـﺎﻝﻫـﺎﻱ ﻫﻤﺒﺴـﺘﮕﻲ
ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ:
¨ ﻛﻼﺱ ) Managerﻣﺪﻳﺮ( ﺑﺎ ﻛﻼﺱ ) Employeeﻛﺎﺭﻣﻨﺪ( ﺭﺍﺑﻄﻪ ﺩﺍﺭﺩ ،ﺯﻳﺮﺍ ﻳﻚ ﻣﺪﻳﺮ ﭼﻨﺪ ﻛﺎﺭﻣﻨـﺪ ﺭﺍ ﻣـﺪﻳﺮﻳﺖ
ﻣﻲﻛﻨﺪ.
¨ ﻛﻼﺱ ) Flightﭘﺮﻭﺍﺯ( ﺑﺎ ﻛﻼﺱ ) Planeﻫﻮﺍﭘﻴﻤﺎ( ﺑﺴﺘﮕﻲ ﺩﺍﺭﺩ ،ﺯﻳـﺮﺍ ﻫﻮﺍﭘﻴﻤـﺎ ﻳـﻚ ﭘـﺮﻭﺍﺯ ﺧـﺎﺹ ﺭﺍ ﺑـﻪ ﺍﻧﺠـﺎﻡ
ﻣﻲﺭﺳﺎﻧﺪ.
¨ ﻛﻼﺱ Computerﺑﺎ ﻛﻼﺱ ) Messageﭘﻴﻐﺎﻡ( ﺭﺍﺑﻄﻪ ﺩﺍﺭﺩ ،ﺯﻳﺮﺍ ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﭘﻴﻐﺎﻡﻫﺎ ﻣﻨﺘﻈﺮﻧـﺪ ﺗـﺎ ﺗﻮﺳـﻂ
ﻛﺎﻣﭙﻴﻮﺗﺮ ﭘﺮﺩﺍﺯﺵ ﺷﻮﻧﺪ.
¨ ﻛﻼﺱ ) BankStatementﺻﻮﺭﺕ ﺣﺴﺎﺏ( ﺑﺎ ﻛﻼﺱ ) Transactionﺗﺮﺍﻛﻨﺶ( ﺭﺍﺑﻄـﻪ ﺩﺍﺭﺩ ،ﺯﻳـﺮﺍ ﺻـﻮﺭﺕ
ﺣﺴﺎﺏ ﺷﺎﻣﻞ ﺟﺰﻳﻴﺎﺕ ﻫﺮ ﺗﺮﺍﻛﻨﺶ ﺍﺳﺖ.
ﺍﺯ ﻣﻴﺎﻥ ﺍﻳﻦ ﺭﻭﺍﺑﻂ ،ﻓﻘﻂ ﺁﺧﺮﻱ ﺭﺍﺑﻄﻪ ﺗﺠﻤﻌﻲ ﺍﺳﺖ .ﻫﻤﺔ ﺭﻭﺍﺑﻂ ﺩﻳﮕﺮ ،ﻫﻤﺒﺴﺘﮕﻲﻫﺎﻱ ﺳﺎﺩﻩﺍﻧﺪ .ﺍﻳﻦ ﻫﻤﺒﺴﺘﮕﻲﻫـﺎ ﺩﺭ UML
ﺑﻪ ﺻﻮﺭﺕ ﻳﻚ ﺧﻂ ﺭﺍﺳﺖ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﻣﻲﺷﻮﻧﺪ .ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﺩﺭ ﺷﻜﻞ ۹ﻧﺨﺴﺘﻴﻦ ﻫﻤﺒﺴﺘﮕﻲ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ.
ﻫﻤﺒﺴﺘﮕﻲ ﻣﻴﺎﻥ ﻛﻼﺱﻫﺎ ﺑﺮﺣﺴﺐ ﭼﻨﺪﮔﺎﻧﮕﻲ ﻫﻤﺒﺴﺘﮕﻲ ﻭ ﻧﺎﻡ ﻫﻤﺒﺴـﺘﮕﻲ ﻧﻴـﺰ ﻣﺴﺘﻨﺪﺳـﺎﺯﻱ ﻣـﻲﺷـﻮﺩ .ﺑـﺎ ﺩﺭ ﻧﻈـﺮ ﮔـﺮﻓﺘﻦ
ﻣﺜﺎﻝﻫﺎﻱ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺩﺭ ﺷﻜﻞ ،۹ﻧﮕﺎﻫﻲ ﺑﻪ ﭼﻨﺪﮔﺎﻧﮕﻲ ﺧﻮﺍﻫﻴﻢ ﺩﺍﺷﺖ.
Manager Manager
Employee Employee
Manager University
ﻣﺪﻳﺮ
ﺗﺨﺼﻴﺺ ﻛﺎﺭﻣﻨﺪﺍﻥ
»«uses
ﻣﺪﻳﺮ ﺍﻧﺒﺎﺭ
»«uses
ﻣﺸﺎﺭﻛﺖﻫﺎ
ﺩﺭ ﻓﺮﺍﻳﻨﺪ ﺍﺟﺮﺍﻱ ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻲﺀﮔﺮﺍ ،ﺍﺷﻴﺎﻱ ﺳﻴﺴﺘﻢ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺗﻌﺎﻣﻞ ﻣﻲﻛﻨﻨﺪ .ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﺩﺭ ﻳﻚ ﺳﻴﺴﺘﻢ ﺑﺎﻧﻜﺪﺍﺭﻱ ،ﺷـﻲﺀ
Accountﻣﻤﻜﻦ ﺍﺳﺖ ﭘﻴﻐﺎﻣﻲ ﺑﻪ ﻳﻚ ﺷﻲﺀ ﺗﻌﺎﻣﻠﻲ ﺍﺭﺳﺎﻝ ﻧﻤﺎﻳﺪ ﺗﺎ ﺗﺮﺍﻛﻨﺸﻲ ﺭﺍ ﺍﻳﺠﺎﺩ ﻛﻨﺪ ﻛﻪ ﺩﺭ ﺁﻥ ﺣﺴﺎﺏ ﺭﺥ ﺩﺍﺩﻩ ﺍﺳـﺖ.
ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﺍﺯ ﺣﺴﺎﺏ ﺑﺮﺩﺍﺷﺖ ﺷﺪﻩ ﺍﺳﺖ .ﺍﻳﻦ ﻧﻮﻉ ﺍﻃﻼﻋﺎﺕ ﺑﺮﺍﻱ ﻃﺮﺍﺣﻲ ﻳﻚ ﺳﻴﺴﺘﻢ ﺷﻲﺀﮔﺮﺍ ﺩﺭ ﺣـﻴﻦ ﻓﺮﺁﻳﻨـﺪ ﺷﻨﺎﺳـﺎﻳﻲ ﻭ
ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ﻛﻼﺱﻫﺎ ﻣﻬﻢ ﺍﺳﺖ .ﺍﺯ ﺍﻳﻦ ﺭﻭ UML ،ﺩﻭ ﻧﺸﺎﻧﻪﮔﺬﺍﺭﻱ ﻣﺘﻔﺎﻭﺕ ﺑﺮﺍﻱ ﺗﻌﺮﻳـﻒ ﺗﻌﺎﻣـﻞﻫـﺎ ﺩﺍﺭﺩ .ﻧﻤـﻮﺩﺍﺭ ﺗـﻮﺍﻟﻲ
) (Sequence Diagramﻭ ﻧﻤﻮﺩﺍﺭ ﺩﻳﮕﺮﻱ ﻛـﻪ ﺑـﻪ ﻋﻨـﻮﺍﻥ ﻧﻤـﻮﺩﺍﺭ ﻣﺸـﺎﺭﻛﺖ)(Collaboration Diagram
ﺷﻨﺎﺧﺘﻪ ﻣﻲﺷﻮﺩ ﻭ ﻫﻢ ﺍﺭﺯ ﻧﻤﻮﺩﺍﺭ ﺗﻮﺍﻟﻲ ﺍﺳﺖ؛ ﺩﺭ ﻭﺍﻗﻊ ،ﺁﻧﻬﺎ ﭼﻨﺎﻥ ﺷﺒﻴﻪ ﻳﻜﺪﻳﮕﺮﻧﺪ ﻛﻪ ﺍﺑﺰﺍﺭﻫﺎﻱ Caseﻏﺎﻟﺒـﺎﹰ ﻣـﻲﺗﻮﺍﻧﻨـﺪ ﻳـﻚ
ﻧﻤﻮﺩﺍﺭ ﺭﺍ ﺍﺯ ﺭﻭﻱ ﺩﻳﮕﺮﻱ ﺍﻳﺠﺎﺩ ﻛﻨﻨﺪ .ﺷﻜﻞﻫﺎﻱ ۱۴ﻭ ۱۵ﻧﻤﻮﻧﻪﻫﺎﻳﻲ ﺳﺎﺩﻩ ﺍﺯ ﻧﻤﻮﺩﺍﺭ ﺗﻮﺍﻟﻲ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫﻨﺪ.
ﺩﺭ ﻧﻤﻮﺩﺍﺭ ،۱۴ﺳﻪ ﺷﻲﺀ ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ﺩﺭ ﻳﻚ ﺗﻌﺎﻣﻞ ﺷـﺮﻛﺖ ﺩﺍﺭﻧـﺪ .ﺍﻭﻟـﻲ ،ﺷـﻲﺀ managerﺍﺳـﺖ ﻛـﻪ ﺗﻮﺳـﻂ ﻛـﻼﺱ
Employeeﺗﻮﺻﻴﻒ ﻣﻲ ﺷﻮﺩ .ﺍﻳﻦ ﺷﻲﺀ ﻳﻚ ﭘﻴﻐﺎﻡ updateReportﺭﺍ ﺑﻪ ﺷﻲﺀ salesReportﺍﺭﺳﺎﻝ ﻣﻲﻛﻨﺪ ﻛـﻪ
ﺳﭙﺲ ﺁﻥ ﺷﻲﺀ ﭘﻴﻐﺎﻡﻫﺎﻱ CreatTransactionﺭﺍ ﺑﻪ ﺷﻲﺀ ﺩﻳﮕﺮﻱ ﺑﻪ ﻧﺎﻡ salesTransactionﺍﺭﺳﺎﻝ ﻣﻲﻛﻨـﺪ .ﺩﺭ
ﻧﻤﻮﺩﺍﺭ ﺗﻮﺍﻟﻲ ،ﺳﻪ ﺷﻲﺀ ﻣﻮﺟﻮﺩﻧﺪ ﻛﻪ ﻳﻜﻲ ﺍﺯ ﺁﻧﻬﺎ ) (managerﺩﺍﺭﺍﻱ ﻛﻼﺱ ﻣﺸﺨﺺ ﺧﻮﺩ) (Employeeﺍﺳﺖ ﻭﻟﻲ ﺑﻘﻴـﻪ
ﺧﻴﺮ.
ﻣﺤﺘﻮﻳﺎﺕ ﻳﻜﻲ ﺍﺯ ﻛﺎﺩﺭﻫﺎﻱ ﻣﻮﺟﻮﺩ ﺩﺭ ﻧﻤﻮﺩﺍﺭ ﺗﻮﺍﻟﻲ ﻣﻲﺗﻮﺍﻧﺪ ﻓﻘﻂ ﺷﺎﻣﻞ ﻧﺎﻡ ﻳﻚ ﺷﻲﺀ ﺑﻪ ﻫﻤﺮﺍﻩ ﻧﺎﻡ ﻛﻼﺱ ﺁﻥ ﻛـﻪ ﺗﻮﺳـﻂ ﺩﻭ
ﻧﻘﻄﻪ ) (:ﺍﺯ ﻫﻢ ﺟﺪﺍ ﺷﺪﻩ ﻳﺎ ﺗﻨﻬﺎ ﻧﺎﻡ ﻛﻼﺱ ﻭ ﻗﺒﻞ ﺍﺯ ﺁﻥ ﺩﻭ ﻧﻘﻄﻪ ) (:ﺑﺎﺷﺪ؛ ﺩﺭ ﻣﻮﺭﺩﺁﺧﺮ ،ﺷﻲﺀ ﺑﺪﻭﻥ ﻧﺎﻡ ﺍﺳﺖ.
ﺷﻜﻞ ۱۴ﻧﻘﺶ ﻳﻚ ﺑﺎﺯﻳﮕﺮ ﺭﺍ ﻧﻴﺰ ﺩﺭ ﻣﺸﺎﺭﻛﺖ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ؛ ﺩﺭ ﺍﻳﻨﺠﺎ ،ﺑـﺎﺯﻳﮕﺮ BankCustomerﺑـﺎ ﺍﺭﺳـﺎﻝ ﭘﻴﻐـﺎﻡ
changeDetailsﺑﺎ ﻣﺪﻳﺮ ﺷﻲﺀ Employeeﺗﻌﺎﻣﻞ ﻣﻲﻛﻨﺪ.
ﺷﻜﻞ ۱۵ﻣﺜﺎﻝ ﺩﻳﮕﺮﻱ ﺍﺯ ﻳﻚ ﻧﻤﻮﺩﺍﺭ ﺗﻮﺍﻟﻲ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ .ﺩﺭ ﺍﻳﻨﺠﺎ ،ﺑﺎﺯﻳﮕﺮﻱ ﻛﻪ ﺗﻮﺳﻂ ﺷﻲﺀ ﺑـﺪﻭﻥ ﻧـﺎﻡ ﺗﻌﺮﻳـﻒ
ﺷﺪﻩ ﺍﺳﺖ ﺑﻪ ﻭﺳﻴﻠﻪ ﻛﻼﺱ BankCustomerﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﻣﻲ ﺷﻮﺩ ،ﺑﻪ ﺷﻲﺀ accountﭘﻴﻐﺎﻣﻲ ﺍﺭﺳﺎﻝ ﻣﻲ ﻛﻨﺪ ﻛـﻪ
ﺣﺴــﺎﺏ ﺭﺍ ﺗﻘﺎﺿــﺎ ﻣــﻲﻛﻨــﺪ .ﺍﻳــﻦ ﺷــﻲﺀ ﭼــﻚ ﻣــﻲﻛﻨﺪﻛــﻪ ﺁﻳــﺎ ﺣﺴــﺎﺏ ﻣﻌﺘﺒــﺮ ﺍﺳــﺖ ﻭ ﺳــﭙﺲ ﭘﻴﻐــﺎﻡ
generateBalanceReportﺑﻪ ﺷﻲﺀ balanceReportﺍﺭﺳﺎﻝ ﻣﻲﻛﻨـﺪ ﻛـﻪ ﺷـﺎﻣﻞ ﺩﺍﺩﻩﻫـﺎﻳﻲ ﺍﺳـﺖ ﻛـﻪ
ﻣﺸﺘﺮﻱ ﺑﺎﻧﻚ ﺩﺭﺧﻮﺍﺳﺖ ﻛﺮﺩﻩ ﺍﺳﺖ.
manager.
salesReport salesTransaction
Employee
oldCustomer:.
updateReport
BankCustomer
createTransaction
changeDetails
account balanceReport
:BankCustomer
queryAccount
checkValidAccount
generateBalanceReport
ﻧﻤﻮﺩﺍﺭﻫﺎﻱ ﺣﺎﻟﺖ
ﻳﻜﻲ ﺩﻳﮕﺮ ﺍﺯ ﺍﺟﺰﺍﻱ ﻣﻬﻢ ،UMLﻧﻤﻮﺩﺍﺭ ﺣﺎﻟﺖ ﺍﺳﺖ .ﺍﻳﻦ ﻧﻤﻮﺩﺍﺭ ،ﺣﺎﻟﺖﻫﺎﻱ ﮔﻮﻧﺎﮔﻮﻧﻲ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ ﻛﻪ ﺷﻲﺀ ﻣﻲﺗﻮﺍﻧـﺪ ﺁﻥ
ﺣﺎﻟﺖﻫﺎ ﺭﺍ ﺩﺍﺭﺍ ﺑﺎﺷﺪ ﻭ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ ﻛﻪ ﭼﮕﻮﻧﻪ ﻫﺮ ﺣﺎﻟﺖ ﺑﻪ ﺣﺎﻟﺖ ﺩﻳﮕﺮ ﮔﺬﺍﺭ ﻣﻲﻛﻨﺪ .ﭼﻨﻴﻦ ﻧﻤﻮﺩﺍﺭﻱ ﺷﺎﻣﻞ ﭼﻨﺪ ﻣﺆﻟﻔﻪ ﺍﺳﺖ:
ﺣﺎﻟﺖﻫﺎ ﻛﻪ ﺑﻪ ﺻﻮﺭﺕ ﻛﺎﺩﺭﻫﺎﻳﻲ ﺑﺎ ﮔﻮﺷﻪﻫﺎﻱ ﮔﺮﺩ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﻣﻲﺷﻮﻧﺪ. ¨
ﮔﺬﺍﺭﻫﺎﻱ ﻣﻴﺎﻥ ﺣﺎﻟﺖﻫﺎ ﻛﻪ ﺑﻪ ﺻﻮﺭﺕ ﺧﻄﻮﻁ ﭘﻴﻜﺎﻥﺩﺍﺭ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﻣﻲﺷﻮﻧﺪ. ¨
ﺭﻭﻳﺪﺍﺩﻫﺎ ﻛﻪ ﺑﺎﻋﺚ ﮔﺬﺍﺭ ﻣﻴﺎﻥ ﺣﺎﻟﺖﻫﺎ ﻣﻲﺷﻮﻧﺪ. ¨
ﻋﻼﻣﺖ ﺷﺮﻭﻉ ﻛﻪ ﺣﺎﻟﺖ ﺍﻭﻟﻴﺔ ﺷﻲﺀ ﺭﺍ ﺑﻪ ﻫﻨﮕﺎﻡ ﺍﻳﺠﺎﺩ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ. ¨
ﻋﻼﻣﺖ ﺗﻮﻗﻒ ﻛﻪ ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ ﺷﻴﺌﻲ ﺑﻪ ﭘﺎﻳﺎﻥ ﺣﻴﺎﺕ ﺧﻮﺩ ﺭﺳﻴﺪﻩ ﺍﺳﺖ. ¨
ﻧﻤﻮﻧﻪﺍﻱ ﺍﺯ ﻧﻤﻮﺩﺍﺭ ﺣﺎﻟﺖ ﺩﺭ ﺷﻜﻞ ۱۶ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ.
ﺩﺭ ﺍﻳﻨﺠﺎ ﭼﺮﺧﻪ ﺣﻴﺎﺕ ﻳﻚ ﺣﺴﺎﺏ ﺑﺎﻧﻜﻲ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ .ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﺣﺴﺎﺏ ﺍﻳﺠﺎﺩ ﺷﺪ ،ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﺣﺴﺎﺏ ﺧـﺎﻟﻲ ﺩﺭ
ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﻲ ﺷﻮﺩ .ﺑﻪ ﻣﺤﺾ ﺁﻧﻜﻪ ﻳﻚ ﺗﺮﺍﻛﻨﺶ ﺭﻭﻱ ﺣﺴﺎﺏ ﺭﺥ ﺩﺍﺩ ،ﺣﺴﺎﺏ ،ﻓﻌﺎﻝ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘـﻪ ﻣـﻲﺷـﻮﺩ .ﻧﻤـﻮﺩﺍﺭ ﺣﺎﻟـﺖ
ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ ﻛﻪ ﻭﻗﺘﻲ ﺣﺴﺎﺏ ﺑﺴﺘﻪ ﺷﺪ ،ﺑﺎﻳﺪ ﺍﺯ ﺑﻴﻦ ﺑﺮﻭﺩ.
closeAccount
createAccount
ﺣﺴﺎﺏ ﻓﻌﺎﻝ
ﺣﺴﺎﺏ ﺧﺎﻟﻲ
ﺗﺮﺍﻛﻨﺶ
A
*
1..
C
B
G
١
٧
0..
1..
D E F
ﺍﻟﻒ( Eﺑﺨﺸﻲ ﺍﺯ Cﻣﻲﺑﺎﺷﺪ E .ﻧﻮﻋﻲ ﺍﺯ Bﻣﻲﺑﺎﺷﺪ .ﻳﻚ ﺷﻲ ﺍﺯ ﻧﻮﻉ Gﺑﺎ ﭼﻨﺪ ﺷﻲ ﺍﺯ ﻧﻮﻉ Cﺭﺍﺑﻄﻪ ﺩﺍﺭﺩ .
ﺏ ( Cﺑﺨﺸﻲ ﺍﺯ Eﻣﻲﺑﺎﺷﺪ D .ﻧﻮﻋﻲ ﺍﺯ Bﻣﻲﺑﺎﺷﺪ .ﻳﻚ ﺷﻲ ﺍﺯ ﻧﻮﻉ Cﺑﺎ ﻳﻚ ﺗﺎ ﻫﻔﺖ ﻧﻮﻉ ﺍﺯ ﺷﻲ Fﺭﺍﺑﻄﻪ ﺩﺍﺭﺩ.
ﺝ ( Eﺑﺨﺸﻲ ﺍﺯ Cﻣﻲﺑﺎﺷﺪ E .ﻧﻮﻋﻲ ﺍﺯ Bﻣﻲﺑﺎﺷﺪ .ﻳﻚ ﺷﻲ ﺍﺯ ﻧﻮﻉ Cﺑﺎ ﻳﻚ ﺗﺎ ﻫﻔﺖ ﻧﻮﻉ ﺍﺯ ﺷﻲ Fﺭﺍﺑﻄﻪ ﺩﺍﺭﺩ.
ﺩ ( Cﺑﺨﺸﻲ ﺍﺯ Eﻣﻲﺑﺎﺷﺪ B .ﻧﻮﻋﻲ ﺍﺯ Dﻣﻲﺑﺎﺷﺪ .ﻳﻚ ﺷﻲ ﺍﺯ ﻧﻮﻉ Cﺑﺎ ﻳﻚ ﺗﺎ ﻫﻔﺖ ﻧﻮﻉ ﺍﺯ ﺷﻲ Fﺭﺍﺑﻄﻪ ﺩﺍﺭﺩ.
-۲ﭼﻬﺎﺭ ﻻﻳﻪ ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﺑﺮﺍﻱ ﻃﺮﺍﺣﻲ ﺷﻲﺀﮔﺮﺍ ﻣﺸﺎﺑﻪ ﻻﻳﻪﻫﺎﻱ ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﺩﺭ ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺳﻨﺘﻲ ﺍﺳﺖ.
ﺏ( ﻏﻠﻂ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۳ﻛﺪﺍﻣﻴﻚ ﺍﺯ ﮔﺰﻳﻨﻪﻫﺎﻱ ﺯﻳﺮ ﺩﺭ ﻣﺪﻝﻫﺎﻱ ﻃﺮﺍﺣﻲ ﺷﻲﺀﮔﺮﺍ ﻭﺟﻮﺩ ﺩﺍﺭﻧﺪ ﻭﻟﻲ ﺩﺭ ﻣﺪﻝﻫﺎﻱ ﻃﺮﺍﺣﻲ ﺳﻨﺘﻲ ﻧﻴﺴﺘﻨﺪ؟
ﺏ( ﻣﺸﺨﺼﺎﺕ ﺗﻌﺎﺭﻳﻒ ﺩﺍﺩﻩ ﻫﺎ ﺍﻟﻒ( ﻧﻤﺎﻳﺶ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺐ ﭘﻴﻤﺎﻧﻪﻫﺎ
ﺩ( ﻣﺸﺨﺼﺎﺕ ﻣﻨﻄﻖ ﺭﻭﻳﻪﺍﻱ ﺝ( ﻣﺸﺨﺼﺎﺕ ﺍﺭﺗﺒﺎﻁ ﭘﻴﻐﺎﻡﻫﺎ
-۴ﺩﺭ ﻃﺮﺍﺣﻲ ﺷﻲﺀ ﮔﺮﺍ ﺑﻪ ﺍﺗﺼﺎﻝ ﭘﺎﻳﻴﻦ ﭘﻴﻤﺎﻧﻪﻫﺎ ﺩﺳﺖ ﻣﻲﻳﺎﺑﻴﻢ ﻛﻪ ﺍﻳﻦ ﺍﻣﺮ ﺷـﺎﻣﻞ ﭘﻨﻬـﺎﻥﺳـﺎﺯﻱ ﺍﻃﻼﻋـﺎﺕ ﺑﻬﺘـﺮ
ﻧﺴﺒﺖ ﺑﻪ ﺳﺎﻳﺮ ﺭﻭﺵﻫﺎ ﺍﺳﺖ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۵ﻣﺮﺍﺣﻞ ﻋﻤﻮﻣﻲ ﻳﻜﺴﺎﻧﻲ ﺑﺮﺍﻱ ﻃﺮﺍﺣﻲ ﺷﻲﺀﮔﺮﺍ ﺑﻜﺎﺭ ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮﺩ ﺑﺠﺰ ﺍﻳﻨﻜﻪ ﺭﻭﺵ ﻃﺮﺍﺣـﻲ ﺧﺎﺻـﻲ ﺍﻧﺘﺨـﺎﺏ
ﻣﻲﮔﺮﺩﺩ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۶ﻧﮕﺮﺵ UMLﺑﻪ ﻃﺮﺍﺣﻲ ﺷﻲﺀﮔﺮﺍ ﺩﺍﺭﺍﻱ ﺩﻭ ﻓﻌﺎﻟﻴﺖ ﻋﻤﺪﻩ ﺍﺳﺖ .ﺍﻳﻦ ﻓﻌﺎﻟﻴﺖﻫﺎ ﻛﺪﺍﻣﻨﺪ؟
ﺏ( ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ﻭ ﻃﺮﺍﺣﻲ ﭘﻴﻐﺎﻡ ﺍﻟﻒ( ﻃﺮﺍﺣﻲ ﻣﻌﻤﺎﺭﻱ ﻭ ﻃﺮﺍﺣﻲ ﺍﺷﻴﺎﺀ
ﺩ( ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻢ ﻭ ﻃﺮﺍﺣﻲ ﺍﺷﻴﺎﺀ ﺝ( ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ﻭ ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻢ
-۷ﻛﺪﺍﻣﻴﻚ ﺍﺯ ﻓﻌﺎﻟﻴﺖﻫﺎﻱ ﺯﻳﺮ ﺑﺨﺸﻲ ﺍﺯ ﻓﻌﺎﻟﻴﺖ ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻢ ﺑﺎ ﻧﮕﺮﺵ UMLﺑﻪ OODﺍﺳﺖ؟
ﺍﻟﻒ( ﺍﻧﺘﺨﺎﺏ ﺍﺳﺘﺮﺍﺗﮋﻱ ﺑﺮﺍﻱ ﻣﺪﻳﺮﻳﺖ ﺩﺍﺩﻩﻫﺎ ﺏ( ﺍﻓﺮﺍﺯ ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﺑﻪ ﺯﻳﺮﺳﻴﺴﺘﻢﻫﺎ
ﺩ( ﺗﻤﺎﻡ ﻣﻮﺍﺭﺩ ﻓﻮﻕ ﺝ( ﻃﺮﺍﺣﻲ ﻭﺍﺳﻂ ﻛﺎﺭﺑﺮ
-۸ﺍﻭﻟﻴﻦ ﻣﺮﺣﻠﻪ ﺍﺯ ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻢ ﺩﺭ ،OODﺍﻓﺮﺍﺯ ﻣﺪﻝ ﺗﺤﻠﻴﻞ ﺑﻪ ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﻛﻼﺱﻫـﺎ ،ﺭﻭﺍﺑـﻂ ﺑـﻴﻦ ﺁﻧﻬـﺎ ،ﻭ
ﺭﻓﺘﺎﺭﻫﺎ ﺍﺳﺖ .ﺍﻳﻦ ﻛﺎﺭ ﺭﺍ .......ﻣﻲﻧﺎﻣﻨﺪ؟
ﺏ( ﺍﺭﺗﺒﺎﻁﻫﺎﻱ ﻣﺸﺘﺮﻱ /ﻛﺎﺭﮔﺰﺍﺭ ﺍﻟﻒ( ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺒﻲ ﻛﻼﺱﻫﺎ
ﺩ( ﻻﻳﻪﻫﺎﻱ ﺳﻴﺴﺘﻤﻲ ﺝ( ﺯﻳﺮﺳﻴﺴﺘﻢﻫﺎ
-۹ﻭﻗﺘﻲ ﺯﻳﺮﺳﻴﺴﺘﻢﻫﺎ ﻫﻤﺮﻭﻧﺪ )ﻫﻤﺰﻣﺎﻥ( ﻫﺴﺘﻨﺪ ﺑﺎﻳﺪ ﺁﻧﻬﺎ ﺭﺍ ﺑﻪ ﭘﺮﺩﺍﺯﻧﺪﻩﻫﺎﻱ ﻣﺠﺰﺍﻳﻲ ﺍﺧﺘﺼﺎﺹ ﺩﺍﺩ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۱۰ﻭﺍﺳﻂ ﻫﺎﻱ ﻛﺎﺭﺑﺮﺍﻥ ﻣﻌﻤﻮﻻﹰ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﺑﺰﺍﺭﻫﺎﻱ ﺍﺗﻮﻣﺎﺗﻴﻚ ﺳﺎﺧﺘﻪ ﻣﻲﺷﻮﺩ ﻛﻪ ﺷﺎﻣﻞ ﻛﻼﺱ ﻫﺎﻱ ﻗﺎﺑﻞ ﺍﺳـﺘﻔﺎﺩﺓ
ﻣﺠﺪﺩ ﺍﺳﺖ ﺑﻪ ﻃﻮﺭﻱﻛﻪ ﭘﻴﺎﺩﻩﺳﺎﺯ ﻓﻘﻂ ﺑﺎﻳﺪ ﺍﺷﻴﺎﺀ ﻣﻨﺎﺳﺐ ﺑﺎ ﻣﺤﺪﻭﺩﺓ ﻣﺴﺄﻟﻪ ﺭﺍ ﺩﺭ ﺁﻥ ﺗﻌﺮﻳﻒ ﻛﻨﺪ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۱۱ﻛﺪﺍﻣﻴﻚ ﺍﺯ ﺯﻣﻴﻨﻪﻫﺎﻱ ﺯﻳﺮ ﺑﻪ ﻋﻨﻮﺍﻥ ﺑﺨﺸﻲ ﺍﺯ ﻣﺪﻳﺮﻳﺖ ﺩﺍﺩﻩ ﻣﻮﻟﻔﻪﻫﺎﻱ ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻢ OODﺍﺳﺖ؟
ﺍﻟﻒ( ﺍﻳﺠﺎﺩ ﺯﻳﺮﺳﺎﺧﺘﺎﺭﻱ ﺑﺮﺍﻱ ﺫﺧﻴﺮﻩ ﻭ ﺑﺎﺯﻳﺎﺑﻲ ﺍﺷﻴﺎﺀ.
ﺏ( ﻣﺪﻳﺮﻳﺖ ﺩﺍﺩﻩﻫﺎﻳﻲ ﻛﻪ ﺑﺮﺍﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻛﺎﺭﺑﺮﺩﻱ ﺣﻴﺎﺗﻲ ﻭ ﺣﺴﺎﺱ ﻫﺴﺘﻨﺪ .
ﺝ( ﻧﺮﻣﺎﻝﺳﺎﺯﻱ ﺻﻔﺎﺕ ﻛﻼﺱﻫﺎﻱ ﺩﺍﺩﻩ .
ﺩ( ﻣﻮﺍﺭﺩ ﺍﻟﻒ ﻭ ﺏ
-۱۲ﻫﺮ ﻗﺮﺍﺭﺩﺍﺩﻱ ﺑﻴﻦ ﺯﻳﺮﺳﻴﺴﺘﻢﻫﺎ ﺩﻗﻴﻘﺎﹰ ﺍﺯ ﻃﺮﻳﻖ ﻳﻚ ﭘﻴﻐﺎﻡ ﻛﻪ ﺑﻴﻦ ﺍﺷﻴﺎﺀ ﺯﻳﺮ ﺳﻴﺴﺘﻢ ﻗﺮﺍﺭ ﺩﺍﺭﺩ ﺍﻳﺠﺎﺩ ﻣﻲﮔﺮﺩﺩ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۱۳ﻃﺮﺍﺡ ﺗﻮﺻﻴﻒ ﻳﻚ ﺷﻲﺀ ﻳﻜﻲ ﺍﺯ ﺩﻭ ﺻﻮﺭﺕ ﺯﻳﺮ ﻣﻲﺑﺎﺷﺪ:
ﺏ( ﺗﻮﺍﻟﻲ ﺍﭘﺮﺍﺗﻮﺭ ﻳﺎ ﮔﺮﺍﻑﻫﺎﻱ ﺻﻔﺎﺕ ﺍﻟﻒ( ﺍﻟﮕﻮﻱ ﺷﻲﺀ ﻳﺎ ﺷﺒﻪ ﻛﺪ
ﺩ( ﮔﺮﺍﻑ ﻫﻤﻜﺎﺭﻱ ﺯﻳﺮﺳﻴﺴﺘﻢ ﻳﺎ ﮔﺮﺍﻑ ﭘﺮﻭﺗﻜﻞ ﺝ( ﺗﻮﺻﻴﻒ ﭘﺮﻭﺗﻜﻞ ﻭ ﻳﺎ ﺗﻮﺻﻴﻒ ﺷﻲﺀ
-۱۴ﺩﺭ OODﻋﻤﻠﻴﺎﺕ ﺑﺎ ﺍﻋﻤﺎﻝ ﺯﻳﺮ ﭘﺎﻻﻳﺶ ﻣﻲﺷﻮﻧﺪ.
ﺏ( ﺗﻬﻴﻪ ﺗﺠﺰﻳﻪ ﮔﺮﺍﻣﺮﻱ ﺍﻟﻒ( ﺍﻳﺰﻭﻟﻪ ﻛﺮﺩﻥ ﻋﻤﻠﻴﺎﺕ ﺟﺪﻳﺪ ﺩﺭ ﭘﺎﻳﻴﻦﺗﺮﻳﻦ ﺳﻄﺢ ﺍﻧﺘﺰﺍﻉ
ﺩ( ﺗﻤﺎﻡ ﻣﻮﺍﺭﺩ ﺝ( ﻧﻮﺷﺘﻦ ﺧﻼﺻﻪ ﻓﺮﺁﻳﻨﺪ
-۱۵ﻃﺮﺍﺣﻲ ﺍﻟﮕﻮﻫﺎ ﺑﺮﺍﻱ ﻃﺮﺍﺣﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺷﻲﺀﮔﺮﺍ ﻗﺎﺑﻞ ﺍﺳﺘﻔﺎﺩﻩ ﻭ ﺑﻜﺎﺭﮔﻴﺮﻱ ﻧﻴﺴﺖ؟
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
-۱۶ﻃﺮﺍﺣﻲﻫﺎﻱ ﺷﻲﺀﮔﺮﺍ ﻧﻴﺎﺯﻱ ﺑﻪ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺗﻜﻨﻴﻚﻫﺎﻱ ﺑﺮﻧﺎﻣﻪﺳﺎﺯﻱ ﺷﻲﺀﮔﺮﺍ ﺩﺭ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﻧﺪﺍﺭﻧﺪ.
ﺏ( ﻧﺎﺩﺭﺳﺖ ﺍﻟﻒ( ﺩﺭﺳﺖ
ﺍﻫﻤﻴﺖ ﺁﺯﻣﺎﻳﺶ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻭ ﺍﺛﺮﺍﺕ ﺁﻥ ﺑﺮ ﻛﻴﻔﻴﺖ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻧﻴﺎﺯ ﺑﻪ ﺗﺄﻛﻴﺪ ﺑﻴﺸﺘﺮ ﻧﺪﺍﺭﺩ Deutch .ﺩﺭ ﺍﻳﻦ ﺑﺎﺭﻩ ﺍﻳﻦ ﮔﻮﻧـﻪ ﺑﻴـﺎﻥ
ﻣﻲﻧﻤﺎﻳﺪ:
ﺗﻮﺳﻌﺔ ﺳﻴﺴﺘﻢﻫﺎﻱ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺷﺎﻣﻞ ﻳﻚﺳﺮﻱ ﻓﻌﺎﻟﻴﺖﻫﺎﻱ ﺗﻮﻟﻴﺪ ﻣﻲﺑﺎﺷﺪ ﻛـﻪ ﺍﻣﻜـﺎﻥ ﺍﺷـﺘﺒﺎﻫﺎﺕ ﺍﻧﺴـﺎﻧﻲ ﺩﺭ ﺁﻥ
ﺯﻳﺎﺩ ﺍﺳﺖ .ﺧﻄﺎﻫﺎ ﺩﺭ ﺍﺑﺘﺪﺍﻱ ﻳﻚ ﻓﺮﺁﻳﻨﺪ ﻭ ﻣﺮﺍﺣﻞ ﺗﻮﺳﻌﻪ ﺑﻌﺪﻱ ﺁﻥ ﻇﻬﻮﺭ ﻣﻲﻧﻤﺎﻳﻨﺪ .ﺑﻪ ﺩﻟﻴﻞ ﻋﺪﻡ ﺗﻮﺍﻧـﺎﻳﻲ ﺍﻧﺠـﺎﻡ
ﻛﺎﺭﻫﺎ ﻭ ﺑﺮﻗﺮﺍﺭﻱ ﺍﺭﺗﺒﺎﻁ ﺑﻪ ﺻﻮﺭﺕ ﻛﺎﻣﻞ ،ﺗﻮﺳﻌﺔ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻫﻤﻮﺍﺭﻩ ﺑﺎ ﻓﻌﺎﻟﻴﺖ ﺗﻀﻤﻴﻦ ﻛﻴﻔﻴﺖ ﻫﻤﺮﺍﻩ ﺍﺳﺖ.
ﺁﺯﻣﺎﻳﺶ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻋﻨﺼﺮﻱ ﺣﻴﺎﺗﻲ ﺍﺯ ﺗﻀﻤﻴﻦ ﻛﻴﻔﻴﺖ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻣﻲﺑﺎﺷﺪ ﻭ ﻣﺮﻭﺭ ﺗﻘﺮﻳﺒـﻲ ﻣﺸﺨﺼـﻪ ،ﻃﺮﺍﺣـﻲ ،ﻭ ﺗﻮﻟﻴـﺪ ﻛـﺪ ﺭﺍ
ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ.
ﺻﺤﺖ ﻭ ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ
ﺁﺯﻣﺎﻳﺶ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻳﻚ ﻋﻨﺼﺮ ﺍﺯ ﻋﻨﻮﺍﻥ ﮔﺴﺘﺮﺩﻩﺗﺮﻱ ﺍﺳﺖ ﻛﻪ ﺍﻏﻠﺐ ﺑﺎ ﺻﺤﺖ ﻭ ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ) V&V-Validation
(& verificationﺷﻨﺎﺧﺘﻪ ﻣﻲﺷﻮﺩ .ﺻﺤﺖ ﺍﺷﺎﺭﻩ ﺑﻪ ﻣﺠﻤﻮﻋﻪ ﻓﻌﺎﻟﻴﺖﻫﺎﻳﻲ ﺩﺍﺭﺩ ﻛﻪ ﻣﻄﻤﺌﻦ ﻣـﻲﺳـﺎﺯﻧﺪ ﻧـﺮﻡﺍﻓـﺰﺍﺭ ﺑـﻪ
٢۵٠ ﺗﻬﻴﻪ ﻭ ﺗﻨﻈﻴﻢ :ﺩﻛﺘﺮ ﺍﺳﻼﻡ ﻧﺎﻇﻤﻲ ﺗﺎﺑﺴﺘﺎﻥ ۱۳۸۴
ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ
ﺩﺭﺳﺘﻲ ﻳﻚ ﺗﺎﺑﻊ ﺧﺎﺹ ﺭﺍ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﻣﻲﻧﻤﺎﻳﺪ .ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ﺍﺷﺎﺭﻩ ﺑﻪ ﻣﺠﻤﻮﻋﻪﺍﻱ ﻣﺘﻔﺎﻭﺕ ﺩﺍﺭﺩ ﻛـﻪ ﻣﻄﻤـﺌﻦ ﻣـﻲﺳـﺎﺯﻧﺪ
ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻛﻪ ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﻣﻨﻄﺒﻖ ﺑﺮ ﻧﻴﺎﺯﻫﺎﻱ ﻣﺸﺘﺮﻱ ﺍﺳﺖ Boehm .ﺍﻳﻦ ﻣﻄﻠﺐ ﺭﺍ ﺍﻳﻦ ﮔﻮﻧﻪ ﺑﻴﺎﻥ ﻣﻲﻛﻨﺪ:
" ﺁﻳﺎ ﻣﺤﺼﻮﻝ ﺭﺍ ﺩﺭﺳﺖ ﺍﻳﺠﺎﺩ ﻣﻲﻛﻨﻴﻢ؟ ﺻﺤﺖ:
ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ " :ﺁﻳﺎ ﻣﺤﺼﻮﻝ ﺩﺭﺳﺘﻲ ﺭﺍ ﺍﻳﺠﺎﺩ ﻣﻲﻛﻨﻴﻢ؟
ﺗﻌﺮﻳﻒ V&Vﺷﺎﻣﻞ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﻓﻌﺎﻟﻴﺖﻫﺎﻳﻲ ﺍﺳﺖ ﻛﻪ ﺗﻀﻤﻴﻦ ﻛﻴﻔﻴﺖ ﻧﺮﻡﺍﻓﺰﺍﺭ ) (SQAﻧﺎﻣﻴـﺪﻩ ﻣـﻲﺷـﻮﻧﺪ .ﺻـﺤﺖ ﻭ
ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ﺷﺎﻣﻞ ﮔﺮﻭﻩ ﻭﺳﻴﻌﻲ ﺍﺯ ﻓﻌﺎﻟﻴﺖﻫﺎﻱ SQAﻣـﻲﺑﺎﺷـﺪ ﺷـﺎﻣﻞ :ﻣﺮﻭﺭﻫـﺎﻱ ﻓﻨـﯽ ﺭﺳـﻤﻲ ،ﺑﺮﺭﺳـﻲ ﻛﻴﻔﻴـﺖ ﻭ
ﭘﻴﻜﺮﺑﻨﺪﻱ ،ﻧﻈﺎﺭﺕ ﺑﺮ ﻛﺎﺭﺍﻳﻲ ،ﺷﺒﻴﻪﺳﺎﺯﻱ ،ﺍﻣﻜﺎﻥﺳـﻨﺠﻲ ،ﻣـﺮﻭﺭ ﻣﺴـﺘﻨﺪﺍﺕ ،ﻣـﺮﻭﺭ ﺑﺎﻧـﻚ ﺍﻃﻼﻋـﺎﺗﻲ ،ﺗﺤﻠﻴـﻞ ﺍﻟﮕـﻮﺭﻳﺘﻢ،
ﺁﺯﻣﺎﻳﺶ ﺗﻮﺳﻌﻪ ،ﺁﺯﻣﺎﻳﺶ ﻛﻴﻔﻲ ،ﻭ ﺁﺯﻣﺎﻳﺶ ﻧﺼﺐ .ﺍﮔﺮﭼـﻪ ﺁﺯﻣـﺎﻳﺶ ﻧﻘـﺶ ﺑﺴـﻴﺎﺭ ﻣﻬﻤـﻲ ﺭﺍ ﺩﺭ V&Vﺩﺍﺭﺩ ،ﺑﺴـﻴﺎﺭﻱ ﺍﺯ
ﻓﻌﺎﻟﻴﺖﻫﺎﻱ ﺩﻳﮕﺮ ﻧﻴﺰ ﻻﺯﻡ ﻣﻲﺑﺎﺷﻨﺪ.
ﺍﻫﺪﺍﻑ ﺁﺯﻣﺎﻳﺶ
ﺩﺭ ﻣﻮﺭﺩ ﺁﺯﻣﺎﻳﺶ ﻧﺮﻡﺍﻓﺰﺍﺭ Myers ،ﭼﻨﺪ ﻗﺎﻧﻮﻥ ﺯﻳﺮ ﺭﺍ ﺑﻴﺎﻥ ﻣﻲﻛﻨﺪ ﻛﻪ ﺍﻫﺪﺍﻑ ﻣﻨﺎﺳﺒﻲ ﺑﺮﺍﻱ ﺁﺯﻣﺎﻳﺶ ﻫﺴﺘﻨﺪ:
-۱ﺁﺯﻣﺎﻳﺶ ﻓﺮﺁﻳﻨﺪﻱ ﺍﺳﺖ ﺷﺎﻣﻞ ﺍﺟﺮﺍﻱ ﺑﺮﻧﺎﻣﻪ ﺑﺎ ﻫﺪﻑ ﻳﺎﻓﺘﻦ ﺧﻄﺎ.
-۲ﻳﻚ ﻧﻤﻮﻧﻪ ﺁﺯﻣﺎﻳﺶ ﺧﻮﺏ ،ﻧﻤﻮﻧﻪ ﺍﯼ ﺍﺳﺖ ﻛﻪ ﺑﺎ ﺍﺣﺘﻤﺎﻝ ﺑﺎﻻﻳﻲ ﺧﻄﺎﻫﺎ ﺭﺍ ﺑﻴﺎﺑﺪ.
-۳ﺁﺯﻣﺎﻳﺶ ﻣﻮﻓﻖ ،ﺁﺯﻣﺎﻳﺸﻲ ﺍﺳﺖ ﻛﻪ ﺧﻄﺎﻫﺎﻱ ﻳﺎﻓﺖ ﻧﺸﺪﻩ ﺗﺎﻛﻨﻮﻥ ﺭﺍ ﺑﻴﺎﺑﺪ.
ﺍﻳﻦ ﺍﻫﺪﺍﻑ ﺗﻐﻴﻴﺮﻱ ﺩﺭﺍﻣﺎﺗﻴﻚ ﺭﺍ ﺩﺭ ﺩﻳﺪﮔﺎﻩ ﺍﻳﺠﺎﺩ ﻣﻲﻧﻤﺎﻳﻨﺪ .ﺍﻳﻦ ﺍﻫﺪﺍﻑ ﺑﺎﻋﺚ ﺗﻐﻴﻴـﺮ ﺩﺭ ﺩﻳـﺪﮔﺎﻩ ﻣﺘـﺪﺍﻭﻟﻲ ﻣـﻲﺷـﻮﻧﺪ ﻛـﻪ
ﺁﺯﻣﺎﻳﺶ ﻣﻮﻓﻖ ﺭﺍ ﺁﻥ ﻧﻮﻉ ﺁﺯﻣﺎﻳﺶ ﻣﻲﺩﺍﻧﺪ ﻛﻪ ﺩﺭ ﺁﻥ ﺧﻄﺎﻳﻲ ﻳﺎﻓﺖ ﻧﺸﻮﺩ .ﻫﺪﻑ ،ﻃﺮﺍﺣﻲ ﺁﺯﻣﺎﻳﺶ ﻫﺎﻳﻲ ﺍﺳﺖ ﻛﻪ ﺑـﻪ ﻃـﻮﺭ
ﺳﻴﺴﺘﻤﺎﺗﻴﻚ ﺭﺩﻩﻫﺎﻱ ﻣﺘﻔﺎﻭﺗﻲ ﺍﺯ ﺧﻄﺎﻫﺎ ﺭﺍ ﺁﺷﻜﺎﺭ ﻧﻤﺎﻳﻨﺪ ،ﻭ ﺍﻳﻦ ﻋﻤﻞ ﺭﺍ ﺑﺎ ﺣﺪﺍﻗﻞ ﻣﻘﺪﺍﺭ ﺯﻣﺎﻥ ﻭ ﻓﻌﺎﻟﻴﺖ ﺍﻧﺠﺎﻡ ﺩﻫﻨﺪ.
ﺍﺻﻮﻝ ﺁﺯﻣﺎﻳﺶ
ﻗﺒﻞ ﺍﺯ ﺑﻜﺎﺭﮔﻴﺮﻱ ﺭﻭﺵ ﻫﺎﻱ ﻃﺮﺍﺣﻲ ﻧﻤﻮﻧﻪ ﻫﺎﻱ ﻣﺆﺛﺮ ﺁﺯﻣﺎﻳﺶ ،ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓـﺰﺍﺭ ﺑﺎﻳـﺪ ﺍﺻـﻮﻝ ﺍﻭﻟﻴـﻪﺍﻱ ﺭﺍ ﻛـﻪ ﺁﺯﻣـﺎﻳﺶ
ﻧﺮﻡﺍﻓﺰﺍﺭ ﺭﺍ ﻫﺪﺍﻳﺖ ﻣﻲﻛﻨﻨﺪ ﺑﻔﻬﻤﺪ Davis .ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﺍﺻﻮﻝ ﺁﺯﻣﺎﻳﺶ ﺭﺍ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲﻛﻨﺪ:
ﺗﻤﺎﻡ ﺁﺯﻣﺎﻳﺶ ﻫﺎﻱ ﺑﺎﻳﺪ ﺑﺮﺍﺳﺎﺱ ﻧﻴﺎﺯﻫﺎﻱ ﻣﺸﺘﺮﻱ ﻗﺎﺑﻞ ﭘﻴﮕﻴﺮﻱ ﺑﺎﺷﻨﺪ. ¨
ﺁﺯﻣﺎﻳﺶ ﻫﺎ ﺑﺎﻳﺪ ﻣﺪﺗﻲ ﻃﻮﻻﻧﻲ ﻗﺒﻞ ﺍﺯ ﺷﺮﻭﻉ ﺁﺯﻣﺎﻳﺶ ﺑﺮﻧﺎﻣﻪﺭﻳﺰﻱ ﺷﻮﻧﺪ. ¨
ﺍﺻﻞ Paretoﺑﺮﺍﻱ ﺁﺯﻣﺎﻳﺶ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻜﺎﺭ ﮔﺮﻓﺘﻪ ﺷﻮﺩ. ¨
ﺁﺯﻣﺎﻳﺶ ﺑﺎﻳﺪ ﺑﺎ " ﺗﻮﺟﻪ ﺑﻪ ﺍﺟﺰﺍﺀ " ﺷﺮﻭﻉ ﺷﻮﺩ ﻭ ﺑﻪ ﺳﻤﺖ ﺁﺯﻣﺎﻳﺶ " ﻛﻠﻲ " ﭘﻴﺶ ﺭﻭﺩ. ¨
ﺁﺯﻣﺎﻳﺶ ﻛﺎﻣﻞ ﻭ ﺟﺎﻣﻊ ﺍﻣﻜﺎﻥﭘﺬﻳﺮ ﻧﻴﺴﺖ. ¨
ﺑﻪ ﻣﻨﻈﻮﺭ ﺩﺍﺷﺘﻦ ﺑﻴﺸﺘﺮﻳﻦ ﺗﺄﺛﻴﺮ ،ﺁﺯﻣﺎﻳﺶ ﺑﺎﻳﺪ ﺗﻮﺳﻂ ﺗﻴﻢ ﻣﺴﺘﻘﻠﻲ ﻫﺪﺍﻳﺖ ﺷﻮﺩ. ¨
ﻗﺎﺑﻠﻴﺖ ﺁﺯﻣﺎﻳﺶ
ﺩﺭ ﻣﻮﺍﺭﺩ ﺍﻳﺪﻩﺁﻝ ،ﻣﻬﻨﺪﺱ ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﺑﺮﻧﺎﻣﻪﺍﻱ ﻛﺎﻣﭙﻴﻮﺗﺮﻱ ،ﺳﻴﺴﺘﻢ ،ﻳﺎ ﻣﺤﺼﻮﻟﻲ ﺭﺍ ﺑـﺎ ﺩﺭ ﻧﻈـﺮ ﺩﺍﺷـﺘﻦ ﻗﺎﺑﻠﻴـﺖ ﺁﺯﻣـﺎﻳﺶ
ﻃﺮﺍﺣﻲ ﻣﻲﻛﻨﺪ .ﺍﻳﻦ ﻣﺴﺎﻟﻪ ﺑﺎﻋﺚ ﻣﻲﺷﻮﺩ ﺍﻓﺮﺍﺩﻱ ﻛﻪ ﻣﺴﻮﻭﻝ ﺁﺯﻣﺎﻳﺶ ﻫﺴﺘﻨﺪ ،ﻧﻤﻮﻧـﻪ ﻫـﺎﺍﻱ ﺁﺯﻣﺎﻳﺸـﻲ ﻣـﺆﺛﺮ ﺭﺍ ﺳـﺎﺩﻩﺗـﺮ
ﺍﻳﺠﺎﺩ ﻧﻤﺎﻳﻨﺪ .ﺍﻣﺎ ﻗﺎﺑﻠﻴﺖ ﺁﺯﻣﺎﻳﺶ ﭼﻴﺴﺖ؟ Bach Jamesﻗﺎﺑﻠﻴﺖ ﺁﺯﻣﺎﻳﺶ ﺭﺍ ﺍﻳﻦ ﮔﻮﻧﻪ ﺗﻮﺻﻴﻒ ﻣﻲﻛﻨﺪ:
ﻋﻤﻠﻴﺎﺗﻲ ﺑﻮﺩﻥ) " .(Operabilityﻧﺮﻡ ﺍﻓﺰﺍﺭ ﻫﺮﭼﻪ ﺑﻬﺘﺮ ﻛﺎﺭﻛﻨﺪ ،ﺑﺎ ﻛﺎﺭﺍﻳﻲ ﺑﺎﻻﺗﺮﻱ ﺁﺯﻣﺎﻳﺶ ﻣﻲﺷﻮﺩ" .
¨ ﺳﻴﺴﺘﻢ ﺍﺷﻜﺎﻻﺕ ﺍﻧﺪﻛﻲ ﺩﺍﺭﺩ )ﺍﺷﻜﺎﻻﺕ ،ﺗﺤﻠﻴﻞ ﻭ ﮔﺰﺍﺭﺵ ﺍﺿﺎﻓﻲ ﺭﺍ ﺑﺮ ﻓﺮﺁﻳﻨﺪ ﺁﺯﻣﺎﻳﺶ ﺗﺤﻤﻴﻞ ﻣﻲﻛﻨﻨﺪ(.
¨ ﻫﻴﭻ ﺍﺷﻜﺎﻟﻲ ،ﺍﺟﺮﺍﻱ ﺁﺯﻣﺎﻳﺸﺎﺕ ﺭﺍ ﻣﺘﻮﻗﻒ ﻧﻜﻨﺪ.
¨ ﻣﺤﺼﻮﻝ ﺩﺭ ﻣﺮﺍﺣﻞ ﻋﻤﻠﻴﺎﺗﻲ ﺗﻜﺎﻣﻞ ﻣﻲﻳﺎﺑﺪ )ﺗﻮﺳﻌﻪ ﻭ ﺁﺰﻣﺎﻳﺶ ﻫﻤﺰﻣﺎﻥ ﺭﺍ ﺍﻣﻜﺎﻥﭘﺬﻳﺮ ﻣﻲﻧﻤﺎﻳﺪ(.
ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ
ﻗﺒﻞ ﺍﺯ ﻣﻌﺮﻓﻲ ﺭﻭﺵ ﻣﺴﻴﺮ ﭘﺎﻳﻪ ،ﻳﻚ ﻧﺸﺎﻥﮔﺬﺍﺭﻱ ﺳﺎﺩﻩ ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺟﺮﻳﺎﻥ ﻛﻨﺘـﺮﻝ ﺑـﻪ ﻧـﺎﻡ ﮔـﺮﺍﻑ ﺟﺮﻳـﺎﻥ)ﻳـﺎ ﮔـﺮﺍﻑ
ﺑﺮﻧﺎﻣﻪ( ﺑﺎﻳﺪ ﻣﻌﺮﻓﻲ ﺷﻮﺩ .ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ،ﺟﺮﻳﺎﻥ ﻛﻨﺘﺮﻝ ﻣﻨﻄﻘﻲ ﺭﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻧﺸﺎﻥﮔﺬﺍﺭﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻩ ﺷـﺪﻩ ﺩﺭ ﺷـﻜﻞ ۱
ﻧﺸﺎﻥ ﻣﻲﺩﻫﺪ .ﻫﺮ ﻭﺍﺣﺪ ﺳﺎﺧﺘﺎﺭﻱ )ﻓﺼﻞ (۱۶ﻳﻚ ﻧﻤﺎﺩ ﻣﺘﻨﺎﻇﺮ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ﺩﺍﺭﺩ.
If While
Sequence
Case
Until
ﻫﺮﺩﺍﻳﺮﻩ ﻧﺸﺎﻥ ﺩﻫﻨﺪﺓ ﻳﻚ ﻳﺎ ﭼﻨﺪ PDLﺑﺪﻭﻥ ﺍﻧﺸﻌﺎﺏ ﻳﺎ ﺩﺳﺘﻮﺭﺍﺕ ﺑﺮﻧﺎﻣﻪ ﻣﺒﺪﺍﺀ ﻣﻲﺑﺎﺷﺪ .ﺑﻪ ﻣﺜﺎﻝ ﺯﻳﺮ ﺗﻮﺟﻪ ﮐﻨﻴﺪ.
1
2
3
6 4
11
ﺷﮑﻞ : ۲ﺭﻭﻧﺪ ﻧﻤﺎﯼ ﻳﮏ ﺑﺮﻧﺎﻣﻪ
1
ﻳﺎﻝ
ﮔﺮﻩ
2.3
6 4.5
R2
7 8
9
R1 ﻧﺎﺣﻴ
R4
10
11
ﮔﺮﻩ ﮔﺰﺍﺭﻩ
a
b x
IF a OR b
then procedure x
y x
else procedure y
ENDIF
ﺭﺍ ﺩﺭ ﻣﺠﻤﻮﻋﺔ ﭘﺎﻳﻪ ﺑﺮﻧﺎﻣﻪ ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ ﻭ ﺣﺪ ﺑﺎﻻﻳﻲ ﺭﺍ ﺑﺮﺍﻱ ﺗﻌﺪﺍﺩ ﺁﺯﻣﺎﻳﺶ ﻫﺎﻳﻲ ﻣﺸﺨﺺ ﻣﻲﻧﻤﺎﻳـﺪ ﻛـﻪ ﺑﺎﻳـﺪ ﺑـﺮﺍﻱ
ﺍﻃﻤﻴﻨﺎﻥ ﺍﺯ ﺍﺟﺮﺍﻱ ﺣﺪﺍﻗﻞ ﻳﻚ ﺑﺎﺭ ﻫﺮ ﻳﻚ ﺍﺯ ﺩﺳﺘﻮﺭﺍﺕ ﺍﻧﺠﺎﻡ ﺷﻮﻧﺪ.
ﻳﻚ ﻣﺴﻴﺮ ﻣﺴﺘﻘﻞ ،ﻫﺮ ﻣﺴﻴﺮﻱ ﺩﺭ ﺑﺮﻧﺎﻣﻪ ﺍﺳﺖ ﻛﻪ ﺣﺪﺍﻗﻞ ﻳﻚ ﻣﺠﻤﻮﻋﺔ ﺟﺪﻳـﺪ ﺍﺯ ﺍﺣﻜـﺎﻡ ﭘـﺮﺩﺍﺯﺵ ﻳـﺎ ﺷـﺮﻁ ﺟﺪﻳـﺪﻱ ﺭﺍ
ﻣﺸﺨﺺ ﻣﻲﻛﻨﺪ .ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﻣﺴﻴﺮ ﻣﺴﺘﻘﻞ ،ﺑﺮﺣﺴﺐ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ﺑﻴﺎﻥ ﻣﻲﺷﻮﺩ ،ﺑﺎﻳﺪ ﺣﺪﺍﻗﻞ ﺩﺭ ﻣﺴﻴﺮ ﻳﺎﻟﻲ ﺣﺮﻛـﺖ ﻛﻨـﺪ
ﻛﻪ ﻗﺒﻞ ﺍﺯ ﺗﻌﺮﻳﻒ ﺁﻥ ﻣﺴﻴﺮ ،ﺍﺯ ﺁﻥ ﻋﺒﻮﺭ ﻧﺸﺪﻩ ﺑﺎﺷﺪ .ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﻣﺴﻴﺮﻫﺎﻱ ﻣﺴﺘﻘﻞ ﺑﺮﺍﻱ ﮔـﺮﺍﻑ ﺟﺮﻳـﺎﻥ ﺩﺭ
ﺷﻜﻞ ۳ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ:
ﻣﺴﻴﺮ11 – ۱ :۱
ﻣﺴﻴﺮ 11 – 1 – 10 – 5 – 4 - 3 – 2 – ۱ : ۲
ﻣﺴﻴﺮ 11 -1– 10 – 9 – 8 – 6 - 3 – 2 – ۱ : ۳
ﻣﺴﻴﺮ 11 -1– 10 – 9 – 7 – 6 - 3 – 2 – ۱ : ۴
ﺗﻮﺟﻪ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ ﻫﺮ ﻣﺴﻴﺮ ﺟﺪﻳﺪ ،ﻳﻚ ﻳﺎﻝ ﺟﺪﻳﺪ ﺭﺍ ﺷﺎﻣﻞ ﻣﻲﺷﻮﺩ .ﻣﺴﻴﺮ ﺯﻳﺮ:
1 – 2 – 3 – 4 – 5 – 10 – 1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11
ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺴﻴﺮ ﻣﺴﺘﻘﻞ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻧﻤﻲﺷﻮﺩ ﺯﻳﺮﺍ ﻓﻘﻂ ﺗﺮﻛﻴﺒﻲ ﺍﺯ ﻣﺴﻴﺮﻫﺎﻱ ﻣﺸﺨﺺ ﺷﺪﺓ ﻗﺒﻠﻲ ﺍﺳـﺖ ﻭ ﻳـﺎﻝ ﺟﺪﻳـﺪﻱ
ﺭﺍ ﭘﻴﻤﺎﻳﺶ ﻧﻤﻲﻛﻨﺪ.
ﻭﻗﺘﯽ ﻣﺴﻴﺮﻫﺎﯼ ﭘﺎﻳﻪ ﺗﻌﻴﻴﻦ ﮔﺮﺩﻧﺪ ،ﺑﺎﻳﺪ ﺑﺮﺍﯼ ﻫﺮ ﻣﺴﻴﺮ ﭘﺎﻳﻪ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﺁﺯﻣﺎﻳﺶ ﻃﺮﺍﺣﯽ ﮐﺮﺩ ﻭ ﺳﭙﺲ ﺁﻧﻬﺎ ﺭﺍ ﺑـﺮﺍﯼ ﻳـﺎﻓﺘﻦ
ﺧﻄﺎ ﻫﺎﯼ ﺍﺣﺘﻤﺎﻟﯽ ﺍﺟﺮﺍ ﻧﻤﻮﺩ.
ﭘﻴﭽﻴﺪﮔﻲ ﺩﻭﺭﺍﻧﻲ ﺑﻪ ﻳﻜﻲ ﺍﺯ ﺍﻳﻦ ﺳﻪ ﺷﻜﻞ ﺯﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣﻲﺷﻮﺩ:
-۱ﺗﻌﺪﺍﺩ ﻧﻮﺍﺣﻲ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﭘﻴﭽﻴﺪﮔﻲ ﺩﻭﺭﺍﻧﻲ ﻣﻲﺑﺎﺵﺩ.
-۲ﭘﻴﭽﻴﺪﮔﻲ ﺩﻭﺭﺍﻧﻲ ،V(G) ،ﺑﺮﺍﻱ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ،G ،ﺑﻪ ﺍﻳﻦ ﺻﻮﺭﺕ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮﺩ:
V(G) = E – N + 2
ﻛﻪ Eﺗﻌﺪﺍﺩ ﻳﺎﻝ ﻫﺎﻱ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ،ﻭ Nﺗﻌﺪﺍﺩ ﮔﺮﻩﻫﺎﻱ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ﻣﻲﺑﺎﺷﺪ.
-۳ﭘﻴﭽﻴﺪﮔﻲ ﺩﻭﺭﺍﻧﻲ ،V(G) ،ﺑﺮﺍﻱ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ،G ،ﺑﻪ ﺍﻳﻦ ﺻﻮﺭﺕ ﻧﻴﺰ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮﺩ:
V(G) = P + 1
ﻛﻪ Pﺗﻌﺪﺍﺩ ﮔﺰﺍﺭﻩﻫﺎﻱ ﻣﻮﺟﻮﺩ ﺩﺭ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ Gﻣﻲﺑﺎﺷﺪ.
ﺑﺎ ﻣﺮﺍﺟﻌﻪ ﻣﺠﺪﺩ ﺑﻪ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ﺷﻜﻞ ،۳ﭘﻴﭽﻴﺪﮔﻲ ﺩﻭﺭﺍﻧﻲ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻟﮕﻮﺭﻳﺘﻢﻫﺎﻱ ﺫﻛﺮ ﺷﺪﻩ ﺍﻳﻦ ﮔﻮﻧﻪ
ﻣﺤﺎﺳﺒﻪ ﻣﻲﺷﻮﺩ:
-۱ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ﺩﺍﺭﺍﻱ ﭼﻬﺎﺭ ﻧﺎﺣﻴﻪ ﺍﺳﺖ.
9 + 2 = 4 -۲ﮔﺮﻩ 11 -ﻳﺎﻝ = )V(G
3 + 1 = 4 -۳ﮔﺮﺓ ﮔﺰﺍﺭﻩ = )V(G
ﺑﻨﺎﺑﺮﺍﻳﻦ ،ﭘﻴﭽﻴﺪﮔﻲ ﺩﻭﺭﻩﺍﻱ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ﺷﻜﻞ ۳ﺑﺮﺍﺑﺮ 4ﺍﺳﺖ.
ﻣﺎﺗﺮﻳﺲﻫﺎﻱ ﮔﺮﺍﻑ
ﺭﻭﻳﻪﺍﻱ ﺑﺮﺍﻱ ﺑﺪﺳﺖ ﺁﻭﺭﺩﻥ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ﻭ ﺣﺘﻲ ﻣﺸﺨﺺ ﻧﻤﻮﺩﻥ ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﻣﺴﻴﺮﻫﺎﻱ ﭘﺎﻳﻪ ،ﺑـﺮﺍﻱ ﻣﻜـﺎﻧﻴﺰﻩ ﻧﻤـﻮﺩﻥ
ﻣﻨﺎﺳﺐ ﻣﻲﺑﺎﺷﺪ .ﺑﻪ ﻣﻨﻈﻮﺭ ﺗﻮﺳﻌﺔ ﺍﺑﺰﺍﺭﯼ ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﻛﻪ ﺑﺮ ﭘﺎﻳﻪ ﺁﺯﻣﺎﻳﺶ ﻣﺴﻴﺮ ﻋﻤﻞ ﻣـﻲﻛﻨـﺪ ،ﺳـﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﺍﻱ ﺑـﻪ ﻧـﺎﻡ
ﻣﺎﺗﺮﻳﺲ ﮔﺮﺍﻑ ﺑﺴﻴﺎﺭ ﻣﻔﻴﺪ ﺍﺳﺖ.
ﻣﺎﺗﺮﻳﺲ ﮔﺮﺍﻑ ،ﻣﺎﺗﺮﻳﺲ ﻣﺮﺑﻌﻲ ﺍﺳﺖ ﻛﻪ ﺍﻧﺪﺍﺯﺓ ﺁﻥ )ﻳﻌﻨﻲ ﺗﻌﺪﺍﺩ ﺳﻄﺮﻫﺎ ﻭ ﺳﺘﻮﻧﻬﺎ( ﺑﺮﺍﺑﺮ ﺍﺳﺖ ﺑـﺎ ﺗﻌـﺪﺍﺩ ﮔـﺮﻩﻫـﺎ ﺩﺭ ﮔـﺮﺍﻑ
ﺟﺮﻳﺎﻥ ﮐﻪ ﻫﺮ ﺳﻄﺮ ﻭ ﺳﺘﻮﻥ ﻣﻌﺎﺩﻝ ﻳﻚ ﮔﺮﺓ ﻣﺸﺨﺺ ﺷﺪﻩ ﺍﺳﺖ ،ﻭ ﻭﺍﺭﺩﻩﻫﺎﻱ ﻣﺎﺗﺮﻳﺲ ﻣﻌﺎﺩﻝ ﺍﺭﺗﺒﺎﻃﺎﺕ )ﻳﺎﻝ ﻫﺎﻱ( ﺑـﻴﻦ
ﮔﺮﻩﻫﺎ ﻣﻲﺑﺎﺷﻨﺪ .ﻳﻚ ﻣﺜﺎﻝ ﺳﺎﺩﻩ ﺍﺯ ﮔﺮﺍﻑ ﺟﺮﻳﺎﻥ ﻭ ﻣﺎﺗﺮﻳﺲ ﮔﺮﺍﻑ ﻣﻌﺎﺩﻝ ﺁﻥ ﺩﺭ ﺷﻜﻞ ۵ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ.
1
٢۵۶ ﺗﻬﻴﻪ ﻭ ﺗﻨﻈﻴﻢ :ﺩﻛﺘﺮ ﺍﺳﻼﻡ ﻧﺎﻇﻤﻲ ﺗﺎﺑﺴﺘﺎﻥ ۱۳۸۴
a
ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ
ﻣﺘﺼﻞ ﺑﻪ ﮔﺮﻩ
ﮔﺮﻩ ۱ ۲ ۳ ۴ ۵
۱ a
۲
۳ d b
۴ c f
۵ g e
ﺁﺯﻣﺎﻳﺶ ﺷﺮﻁ
ﺁﺯﻣﺎﻳﺶ ﺷﺮﻁ ﺭﻭﺷﻲ ﺑﺮﺍﻱ ﻃﺮﺍﺣﻲ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﺁﺯﻣﺎﻳﺶ ﺍﺳﺖ ﻛﻪ ﺷﺮﻁﻫﺎﻱ ﻣﻨﻄﻘﻲ ﻣﻮﺟﻮﺩ ﺩﺭ ﻳﻚ ﭘﻴﻤﺎﻧـﺔ ﺑﺮﻧﺎﻣـﻪ ﺭﺍ
ﺑﺮﺭﺳﻲ ﻣﻲﻧﻤﺎﻳﺪ .ﻳﻚ ﺷﺮﻁ ﺳﺎﺩﻩ ،ﻣﺘﻐﻴﺮﻱ ﺑﻮﻟﻲ ﻳﺎ ﻋﺒﺎﺭﺗﻲ ﺭﺍﺑﻄﻪﺍﻱ ﺍﺳﺖ ،ﺍﺣﺘﻤﺎﻻﹰ ﺑﺎ ﻋﻤﻠﮕﺮ NOTﻛـﻪ ﻗﺒـﻞ ﺍﺯ ﺁﻥ
ﻗﺮﺍﺭ ﮔﺮﻓﺘﻪ .ﻋﺒﺎﺭﺕ ﺭﺍﺑﻄﻪﺍﻱ ﺑﻪ ﺍﻳﻦ ﺷﻜﻞ ﺍﺳﺖ:
> E 2ﻋﻤﻠﮕﺮ ﺭﺍﺑﻄﻪﺍﻱ < E1
ﻛﻪ E1ﻭ E 2ﻋﺒﺎﺭﺕ ﻫﺎﻱ ﻣﺤﺎﺳﺒﺎﺗﻲ ﻫﺴﺘﻨﺪ ﻭ > ﻋﻤﻠﮕﺮﺩ ﺭﺍﺑﻄﻪﺍﻱ < ﺷـﺎﻣﻞ ﻳﻜـﻲ ﺍﺯ ﻋﻤﻠﮕﺮﻫـﺎﻱ < ﻭ £ﻭ = ¹
)ﻧﺎﻣﺴﺎﻭﻱ( > ،ﻳﺎ ³ﻣﻲﺑﺎﺷﺪ .ﻳﻚ ﺷﺮﻁ ﻣﺮﻛﺐ ﺗﺸﻜﻴﻞ ﺷﺪﻩ ﺍﺳﺖ ﺍﺯ ﺩﻭ ﻳﺎ ﭼﻨﺪ ﺷﺮﻁ ﺳﺎﺩﻩ ،ﻋﻤﻠﮕـﺮﺩ ﺑـﻮﻟﻲ ،ﻭ ﭘﺮﺍﻧﺘﺰﻫـﺎ.
ﻓﺮﺽ ﻣﻲﻛﻨﻴﻢ ﻛﻪ ﻋﻤﻠﮕﺮﻫﺎﻱ ﺑﻮﻟﻲ ﺍﻣﻜﺎﻥ ﺷﺮﻁﻫﺎﻱ ﺗﺮﻛﻴﺒـﻲ ﺭﺍ ﺑـﺎ ﺍﺿـﺎﻓﻪ ﻧﻤـﻮﺩﻥ (&) AND ،(|) ORﻭ NOT
) ¬―( ﻣﻲﺩﻫﻨﺪ .ﺷﺮﻃﻲ ﺑﺪﻭﻥ ﻋﺒﺎﺭﺕ ﻫﺎﻱ ﺭﺍﺑﻄﻪﺍﻱ ،ﻋﺒﺎﺭﺗﻲ ﺑﻮﻟﻲ ﺍﺳﺖ.
ﺍﮔﺮ ﻳﻚ ﺷﺮﻁ ﻏﻠﻂ ﺑﺎﺷﺪ ،ﺣﺪﺍﻗﻞ ﻳﻚ ﻣﺆﻟﻔﺔ ﺁﻥ ﺷﺮﻁ ﻏﻠﻂ ﺧﻮﺍﻫﺪ ﺑﻮﺩ .ﺑﻨـﺎﺑﺮﺍﻳﻦ ،ﺍﻧـﻮﺍﻉ ﺧﻄﺎﻫـﺎ ﺩﺭ ﺷـﺮﻁ ﺑـﻪ ﺷـﺮﺡ ﺯﻳـﺮ
ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﺎیﺪ ﻣﻮﺭﺩ ﺁﺯﻣﺎﻳﺶ ﻗﺮﺍﺭ ﮔﻴﺮﻧﺪ:
¨ ﺧﻄﺎﻫﺎﻱ ﻋﻤﻠﮕﺮ ﻣﻨﻄﻘﻲ )ﻏﻠﻂ /ﺣﺬﻑ ﺷﺪﻩ /ﻋﻤﻠﮕﺮﻫﺎﻱ ﺑﻮﻟﻲ ﺍﺿﺎﻓﻲ(.
¨ ﺧﻄﺎﻱ ﻣﺘﻐﻴﺮ ﺑﻮﻟﻲ.
¨ ﺧﻄﺎﻱ ﭘﺮﺍﻧﺘﺰﻫﺎﻱ ﺑﻮﻟﻲ.
¨ ﺧﻄﺎﻱ ﻋﻤﻠﮕﺮ ﺭﺍﺑﻄﻪﺍﻱ.
¨ ﺧﻄﺎﻱ ﻋﺒﺎﺭﺕ ﻣﺤﺎﺳﺒﺎﺗﻲ.
ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ ﻛﻪ ﺁﺯﻣﺎﻳﺶ DUﭘﻮﺷﺶ ﺗﻤﺎﻡ ﺍﻧﺸﻌﺎﺏﻫﺎﻱ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﺗﻀﻤﻴﻦ ﻧﻤﻲﻛﻨﺪ .ﺑﻪ ﻫﺮ ﺣﺎﻝ ،ﺗﻀﻤﻴﻨﻲ ﻭﺟـﻮﺩ
ﻧﺪﺍﺭﺩ ﻛﻪ ﻳﻚ ﺍﻧﺸﻌﺎﺏ ﺗﻮﺳﻂ ﺁﺯﻣﺎﻳﺶ DUﭘﻮﺷﺶ ﺩﺍﺩﻩ ﺷﻮﺩ ﻓﻘﻂ ﺩﺭ ﻣﻮﺍﺭﺩ ﻧﺎﺩﺭﻱ ﻣﺎﻧﻨﺪ ﺳـﺎﺧﺘﺎﺭﻫﺎﻱ if-then-else
ﻛﻪ ﺩﺭ ﺁﻥ ،ﺑﺨﺶ thenﻓﺎﻗﺪ ﺗﻌﺮﻳﻒ ﻣﺘﻐﻴﺮ ﺍﺳﺖ ﻭ ﺑﺨـﺶ elseﻭﺟـﻮﺩ ﻧـﺪﺍﺭﺩ .ﺩﺭ ﭼﻨـﻴﻦ ﻣـﻮﻗﻌﻴﺘﻲ ﺍﻧﺸـﻌﺎﺏ elseﺍﺯ
ﺩﺳﺘﻮﺭ ifﻟﺰﻭﻣﺎﹲ ﺗﻮﺳﻂ ﺁﺯﻣﺎﻳﺶ DUﭘﻮﺷﺶ ﺩﺍﺩﻩ ﻧﻤﻲﺷﻮﺩ.
ﺁﺯﻣﺎﻳﺶ ﺣﻠﻘﻪ
ﺣﻠﻘﻪﻫﺎ ﺑﺮﺍﻱ ﺍﻛﺜﺮﻳﺖ ﺍﻟﮕﻮﺭﻳﺘﻢﻫﺎﻱ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﺷﺪﻩ ﺩﺭ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻧﻘﺶ ﻣﺤـﻮﺭﻱ ﺩﺍﺭﻧـﺪ .ﺑـﺎ ﺍﻳـﻦ ﻭﺟـﻮﺩ ،ﺍﻏﻠـﺐ ﺩﺭ ﺿـﻤﻦ
ﻫﺪﺍﻳﺖ ﺁﺯﻣﺎﻳﺶ ﻫﺎﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﺗﻮﺟﻪ ﻛﻤﻲ ﺑﻪ ﺁﻧﻬﺎ ﻣﻲﺷﻮﺩ.
ﺣﻠﻘﻪﻫﺎﻱ ﻣﺘﺪﺍﺧﻞ
ﺁﺯﻣﺎﻳﺶ ﺣﻠﻘﻪ ﺗﻜﻨﻴﻜﻲ ﺑﺮ ﭘﺎﻳﻪ ﺁﺯﻣﺎﻳﺶ ﺟﻌﺒﻪ ﺳﻔﻴﺪ ﻣﻲﺑﺎﺷﺪ ﻛﻪ ﻣﻨﺤﺼﺮﺍﹰ ﺑﺮ ﺍﻋﺘﺒﺎﺭ ﺳﺎﺧﺘﺎﺭﻫﺎﻱ ﺣﻠﻘﻪ ﺗﺄﻛﻴﺪ ﺩﺍﺭﺩ .ﭼﻬﺎﺭ ﺭﺩﻩ
ﺍﺯ ﺣﻠﻘﻪﻫﺎ ﻗﺎﺑﻞ ﺗﻌﺮﻳﻒ ﻫﺴﺘﻨﺪ :ﺣﻠﻘﻪﻫﺎﻱ ﺳﺎﺩﻩ ،ﺣﻠﻘﻪﻫﺎﻱ ﺍﻟﺤﺎﻕ ﺷﺪﻩ ،ﺣﻠﻘﻪﻫﺎﻱ ﻣﺘﺪﺍﺧﻞ ﻭ ﺣﻠﻘﻪﻫﺎﻱ ﺑﺪﻭﻥ
ﺳﺎﺧﺘﺎﺭ ﮐﻪ ﺩﺭ ﺷﮑﻞ ۷ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪ ﺍﺳﺖ.
-۴ﺍﮔﺮ ﺳﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﻫﺎﻱ ﺩﺍﺧﻞ ﺑﺮﻧﺎﻣﻪ ﻣﺮﺯﻫﺎﻱ ﻣﺸﺨﺼﻲ ﺩﺍﺭﻧﺪ )ﺑـﺮﺍﻱ ﻣﺜـﺎﻝ ،ﺁﺭﺍﻳـﻪ ﺑـﺎ ﻣﺤـﺪﻭﺩﻳﺖ 100ﻭﺍﺭﺩﻩ
ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﺑﺎﺷﺪ( ،ﺍﺯ ﻃﺮﺍﺣﻲ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﺁﺯﻣﺎﻳﺸﻲ ﻛﻪ ﺍﻳﻦ ﺳﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩﻫﺎ ﻭ ﻣﺮﺯﻫﺎﻱ ﺁﻧﻬﺎ ﺭﺍ ﺑﺮﺭﺳﻲ ﻣـﻲﻛﻨـﺪ
ﻣﻄﻤﺌﻦ ﺷﻮﻳﺪ.
ﺍﻛﺜﺮ ﻣﻬﻨﺪﺳﻴﻦ ﻧﺮﻡﺍﻓﺰﺍﺭ BVAﺭﺍ ﺑﺎ ﺩﺭﺟﻪﺍﻱ ﺧﺎﺹ ﺍﺟﺮﺍ ﻣﻲﻛﻨﻨﺪ .ﺑﺎ ﺑـﻪ ﻛـﺎﺭﮔﻴﺮﻱ ﺍﻳـﻦ ﺭﺍﻫﻨﻤـﺎﻳﻲﻫـﺎ ،ﺁﺯﻣـﺎﻳﺶ ﻣـﺮﺯﻱ
ﻛﺎﻣﻞﺗﺮ ﺧﻮﺍﻫﺪ ﺷﺪ ،ﻭ ﺍﺣﺘﻤﺎﻝ ﺑﻴﺸﺘﺮﻱ ﺑﺮﺍﻱ ﺁﺷﻜﺎﺭﺳﺎﺯﻱ ﺧﻄﺎ ﻭﺟﻮﺩ ﺩﺍﺭﺩ.
ﺁﺯﻣﺎﻳﺶ ﻣﺴﺘﻨﺪﺍﺕ ﺩﺭ ﺩﻭ ﻓﺎﺯ ﻗﺎﺑﻞ ﺍﻧﺠﺎﻡ ﺍﺳﺖ .ﺍﻭﻟﻴﻦ ﻓﺎﺯ ﻛﻪ ﻣﺮﻭﺭ ﻭ ﺑﺎﺯﺑﻴﻨﻲ ﻧﺎﻡ ﺩﺍﺭﺩ )ﻓﺼﻞ ،(۸ﻣﺴﺘﻨﺪﺍﺕ ﺭﺍ ﺑـﺮﺍﻱ ﻭﺿـﻮﺡ
ﻭﻳﺮﺍﻳﺸﻲ ﺑﺮﺭﺳﻲ ﻣﻲﻛﻨﺪ .ﻓﺎﺯ ﺩﻭﻡ ،ﻛﻪ ﺁﺯﻣﺎﻳﺶ ﺯﻧﺪﻩ ﻧﺎﻡ ﺩﺍﺭﺩ ،ﻣﺴﺘﻨﺪﺍﺕ ﺭﺍ ﻫﻤﺮﺍﻩ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺑﺮﻧﺎﻣﺔ ﻭﺍﻗﻌﻲ ،ﻣﻮﺭﺩ ﺍﺳـﺘﻔﺎﺩﻩ
ﻗﺮﺍﺭ ﻣﻲﺩﻫﺪ.
ﺑﻪ ﺷﻜﻞ ﺗﻌﺠﺐﺁﻭﺭﻱ ،ﺁﺯﻣﺎﻳﺶ ﺯﻧﺪﻩ ﺑﺮﺍﻱ ﻣﺴﺘﻨﺪﺍﺕ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺗﻜﻨﻴﻚﻫﺎﻳﻲ ﻣﺸﺎﺑﻪ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺭﻭﺵ ﻫﺎﻱ ﺟﻌﺒـﺔ ﺳـﻴﺎﻩ،
ﻗﺎﺑﻞ ﺍﻧﺠﺎﻡ ﺍﺳﺖ .ﺁﺯﻣﺎﻳﺶ ﺑﺮ ﻣﺒﻨﺎﻱ ﮔﺮﺍﻑ ﻣﻲﺗﻮﺍﻧﺪ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﺗﻮﺻﻴﻒ ﻛﻨﺪ .ﺗﻘﺴﻴﻢﺑﻨﺪﻱ ﻣﺴﺎﻭﻱ ﻭ ﺗﺤﻠﻴﻞ ﻣﻘـﺪﺍﺭ
ﻣﺮﺯﻱ ﺑﺮﺍﻱ ﺗﻌﺮﻳﻒ ﺭﺩﻩﻫﺎﻱ ﮔﻮﻧﺎﮔﻮﻥ ﻭﺭﻭﺩﻱ ﻭ ﺍﺭﺗﺒﺎﻃﺎﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﺁﻧﻬﺎ ﺍﺳﺘﻔﺎﺩﻩ ﻣـﻲﺷـﻮﻧﺪ .ﺳـﭙﺲ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ﺑﺮﻧﺎﻣـﻪ ﺍﺯ
ﻃﺮﻳﻖ ﻣﺴﺘﻨﺪﺍﺕ ﭘﻴﮕﻴﺮﻱ ﻣﻲﺷﻮﺩ .ﺳﺆﺍﻻﺕ ﺯﻳﺮ ﺑﺎﻳﺪ ﺩﺭ ﻃﻮﻝ ﻫﺮ ﻓﺎﺯ ﭘﺎﺳﺦ ﺩﺍﺩﻩ ﺷﻮﻧﺪ:
ﺁﻳﺎ ﻣﺴﺘﻨﺪﺳﺎﺯﻱ ﺑﻪ ﻃﻮﺭ ﺩﻗﻴﻖ ﭼﮕﻮﻧﮕﯽ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻫﺮ ﺭﻭﺵ ﺭﺍ ﺗﻮﺻﻴﻒ ﻣﯽ ﮐﻨﺪ؟ ¨
ﺁﻳﺎ ﺗﻮﺻﻴﻒ ﻫﺮ ﺩﻧﺒﺎﻟﺔ ﺍﺭﺗﺒﺎﻁ ﺩﻗﻴﻖ ﺍﺳﺖ؟ ¨
ﺁﻳﺎ ﻣﺜﺎﻝ ﻫﺎ ﺩﻗﻴﻖ ﻫﺴﺘﻨﺪ؟ ¨
ﺁﻳﺎ ﺑﻜﺎﺭﮔﻴﺮﻱ ﻟﻐﺎﺕ ،ﺗﻮﺻﻴﻒﻫﺎﻱ ﻣﻨﻮﻫﺎ ،ﻭ ﭘﺎﺳﺦﻫﺎﻱ ﺳﻴﺴﺘﻢ ﻣﻨﻄﺒﻖ ﺑﺮ ﺑﺮﻧﺎﻣﺔ ﻭﺍﻗﻌﻲ ﺍﺳﺖ؟ ¨
ﺁﻳﺎ ﻳﺎﻓﺘﻦ ﺭﺍﻫﻨﻤﺎﻳﻲ ﺩﺭ ﻣﺴﺘﻨﺪﺍﺕ ﻧﺴﺒﺘﺎﹰ ﺳﺎﺩﻩ ﺍﺳﺖ؟ ¨
ﺁﻳﺎ ﺭﻓﻊ ﺍﺷﻜﺎﻝ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺴﺘﻨﺪﺍﺕ ﺑﻪ ﺭﺍﺣﺘﻲ ﺍﻧﺠﺎﻡ ﻣﻲﺷﻮﺩ؟ ¨
ﺁﻳﺎ ﻓﻬﺮﺳﺖ ﻣﻨﺪﺭﺟﺎﺕ ﻭ ﺍﻧﺪﻳﺲ ﻣﺴﺘﻨﺪﺍﺕ ﻛﺎﻣﻞ ﻭ ﺩﻗﻴﻖ ﺍﺳﺖ؟ ¨
ﺁﻳﺎ ﻃﺮﺍﺣﻲ ﻣﺴﺘﻨﺪﺍﺕ )ﺍﺟﺰﺍﺀ ،ﺗﺎﻳﭗ ﻇﺎﻫﺮﻱ ،ﻛﻨﮕﺮﻩﺑﻨـﺪﻱ ،ﮔﺮﺍﻓﻴـﻚﻫـﺎ( ﺑـﺮﺍﻱ ﻓﻬـﻢ ﻭ ﺩﺭﻙ ﺳـﺮﻳﻊ ¨
ﺍﻃﻼﻋﺎﺕ ﻣﺆﺛﺮ ﻫﺴﺘﻨﺪ؟
ﺁﻳﺎ ﺗﻤﺎﻡ ﭘﻴﻐﺎﻡ ﻫﺎﻱ ﺧﻄﺎﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻛﻪ ﺑﺮﺍﻱ ﻛﺎﺭﺑﺮ ﻇﺎﻫﺮ ﻣﻲﺷﻮﻧﺪ ،ﺑﺎ ﺟﺰﻳﻴﺎﺕ ﺑﻴﺸـﺘﺮ ﺩﺭ ﻣﺴـﺘﻨﺪﺍﺕ ¨
ﺗﻮﺻﻴﻒ ﺷﺪﻩﺍﻧﺪ؟ ﺁﻳﺎ ﺍﻋﻤﺎﻝ ﻗﺎﺑﻞ ﺍﻧﺠﺎﻡ ﺩﺭ ﻧﺘﻴﺠﺔ ﭘﻴﻐﺎﻡ ﺧﻄﺎ ،ﺑﻪ ﻭﺿﻮﺡ ﺑﻴﺎﻥ ﺷﺪﻩﺍﻧﺪ؟
ﺍﮔﺮ ﺍﺭﺗﺒﺎﻃﺎﺕ ﻓﺮﺍﻣﺘﻨﻲ ) (Hypertextﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺷﻮﻧﺪ ،ﺁﻳﺎ ﺩﻗﻴﻖ ﻭ ﻛﺎﻣﻞ ﻫﺴﺘﻨﺪ؟ ¨
ﺍﮔﺮ ﻓﺮﺍﻣﺘﻨﻲ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺷﻮﺩ ،ﺁﻳﺎ ﻃﺮﺍﺣﻲ ﻧﺤﻮﻩ ﺣﺮﻛﺖ ﺩﺭ ﺍﺗﺼﺎﻻﺕ ،ﺑﺮﺍﻱ ﺍﻃﻼﻋﺎﺕ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﻣﻨﺎﺳﺐ ¨
ﺍﺳﺖ؟
ﺗﻨﻬﺎ ﺭﺍﻩ ﻋﻤﻠﻲ ﺑﺮﺍﻱ ﭘﺎﺳﺦ ﺑﻪ ﺍﻳﻦ ﺳﺆﺍﻻﺕ ،ﻭﺟﻮﺩ ﮔﺮﻭﻫﻲ ﻣﺴﺘﻘﻞ )ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﻛﺎﺭﺑﺮﺍﻥ ﺍﻧﺘﺨﺎﺏ ﺷﺪﻩ( ﺍﺳﺖ ﻛـﻪ ﻣﺴـﺘﻨﺪﺍﺕ
ﺭﺍ ﺩﺭ ﺭﺍﺑﻄﻪ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺑﺮﻧﺎﻣﻪ ﺁﺯﻣﺎﻳﺶ ﻧﻤﺎﻳﻨﺪ .ﺗﻤﺎﻡ ﺗﻔﺎﻭﺕ ﻫﺎ ﺗﻌﻴﻴﻦ ﻭ ﺫﻛﺮ ﺷﻮﻧﺪ ﻭ ﺯﻣﻴﻨـﻪﻫـﺎﻱ ﺍﺑﻬـﺎﻡ ﻳـﺎ ﺿـﻌﻒ ،ﺑـﺮﺍﻱ
ﺑﺎﺯﻧﻮﻳﺴﻲ ﻣﺠﺪﺩ ﺗﻌﺮﻳﻒ ﮔﺮﺩﻧﺪ.
ﻧﻴﺎﺯﻫﺎﻳﻲ ﻛﻪ ﺑﻪ ﻋﻨﻮﺍﻥ ﺑﺨﺸﻲ ﺍﺯ ﺗﺤﻠﻴﻞ ﻧﻴﺎﺯﻫـﺎﻱ ﻧـﺮﻡﺍﻓـﺰﺍﺭ ﺍﻳﺠـﺎﺩ ﺷـﺪﻩﺍﻧـﺪ ،ﺩﺭ ﻣﻘﺎﺑـﻞ ﻧـﺮﻡﺍﻓـﺰﺍﺭﻱ ﻛـﻪ ﺳـﺎﺧﺘﻪ ﺷـﺪﻩ
ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ﻣﻲﺷﻮﻧﺪ .ﺩﺭ ﻧﻬﺎﻳﺖ ،ﺑﻪ ﺁﺯﻣﺎﻳﺶ ﺳﻴﺴﺘﻢ ﻣﻲﺭﺳﻴﻢ ،ﻛﻪ ﺩﺭ ﺁﻥ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻭ ﻋﻨﺎﺻﺮ ﺩﻳﮕـﺮ ﺳﻴﺴـﺘﻢ ﺑـﻪ ﺻـﻮﺭﺕ
ﻳﻚ ﻣﺠﻤﻮﻋﻪ ﺁﺯﻣﺎﻳﺶ ﻣﻲﺷﻮﻧﺪ .ﺑﻪ ﻣﻨﻈﻮﺭ ﺁﺯﻣﺎﻳﺶ ﻧﺮﻡﺍﻓـﺰﺍﺭ ﻛـﺎﻣﭙﻴﻮﺗﺮ ،ﺩﺭ ﻃـﻮﻝ ﻣـﺎﺭﭘﻴﭻ ﺣﺮﻛـﺖ ﻧﻤـﻮﺩﻩ ﻭ ﺩﺭ ﻫـﺮ ﺩﻭﺭ،
ﻣﺤﺪﻭﺩﺓ ﺁﺯﻣﺎﻳﺶ ﮔﺴﺘﺮﺩﻩﺗﺮ ﻣﻲﺷﻮﺩ.
ﺍﻳﻦ ﻓﺮﺁﻳﻨﺪ ﺭﺍ ﺍﺯ ﻧﻄﻘﻪ ﻧﻈﺮ ﺭﻭﻳﻪﺍﻱ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ،ﺁﺯﻣﺎﻳﺶ ﺩﺭ ﺯﻣﻴﻨﺔ ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺩﺭ ﻭﺍﻗﻊ ﺷﺎﻣﻞ ﭼﻬﺎﺭ ﻣﺮﺣﻠـﻪ ﺍﺳـﺖ
ﻛﻪ ﺑﻪ ﺻﻮﺭﺕ ﺗﺮﺗﻴﺒﻲ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﺷﺪﻩﺍﻧﺪ .ﺍﻳﻦ ﻣﺮﺍﺣﻞ ﺩﺭ ﺷﻜﻞ ۹ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩﺍﻧﺪ .ﺩﺭ ﺍﺑﺘﺪﺍ ،ﺁﺯﻣﺎﻳﺶ ﺑـﺮ ﻫـﺮ ﻣﺆﻟﻔـﻪ ﺑـﻪ
ﺻﻮﺭﺕ ﻣﻨﻔﺮﺩ ﺗﻤﺮﻛﺰ ﺩﺍﺭﺩ ،ﺗﺎ ﺍﻃﻤﻴﻨﺎﻥ ﺣﺎﺻﻞ ﺷﻮﺩ ﺑﻪ ﺻﻮﺭﺕ ﻳﻚ ﻭﺍﺣﺪ ،ﺩﺭﺳﺖ ﻛﺎﺭ ﻣﻲﻛﻨﺪ .ﺩﺭ ﻧﺘﻴﺠـﻪ ،ﻧـﺎﻡ ﺍﻳـﻦ ﻣﺮﺣﻠـﻪ،
ﺁﺯﻣﺎﻳﺶ ﻭﺍﺣﺪ ﻣﻲﺑﺎﺷﺪ .ﺁﺯﻣﺎﻳﺶ ﻭﺍﺣﺪ ،ﺍﺳﺘﻔﺎﺩﻩ ﺯﻳﺎﺩﻱ ﺍﺯ ﺗﻜﻨﻴﻚﻫﺎﻱ ﺁﺯﻣﺎﻳﺶ ﺟﻌﺒﺔ ﺳﻔﻴﺪ ﻣﻲﺑـﺮﺩ ،ﻭ ﻣﺴـﻴﺮﻫﺎﻱ
ﺧﺎﺻﻲ ﺭﺍ ﺩﺭ ﺳﺎﺧﺘﺎﺭ ﻛﻨﺘﺮﻟﻲ ﭘﻴﻤﺎﻧﻪ ﺑﺮﺭﺳﻲ ﻣﻲﻛﻨﺪ ﺗﺎ ﺍﻃﻤﻴﻨﺎﻥ ﺣﺎﺻﻞ ﺷﻮﺩ ﭘﻮﺷـﺶ ﻛـﺎﻣﻠﻲ ﺩﺍﺩﻩ ﺷـﺪﻩ ﻭ ﺣـﺪﺍﻛﺜﺮ ﺧﻄﺎﻫـﺎ
ﺁﺷﻜﺎﺭ ﻣﻲﺷﻮﻧﺪ .ﺳﭙﺲ ،ﻣﺆﻟﻔﻪﻫﺎ ﺑﺎﻳﺪ ﻣﻮﻧﺘﺎﮊ ﻳﺎ ﻣﺠﺘﻤﻊ ﺷﻮﻧﺪ ﺗـﺎ ﺑﺴـﺘﺔ ﻧـﺮﻡﺍﻓـﺰﺍﺭﻱ ﻛﺎﻣـﻞ ﺭﺍ ﺗﺸـﻜﻴﻞ ﺩﻫﻨـﺪ .ﺁﺯﻣـﺎﻳﺶ
ﻳﮑﭙﺎﺭﭼﻪﺳﺎﺯﻱ ،ﻣﺴﺎﻳﻞ ﻣﺮﺑﻮﻁ ﺑﻪ ﻣﺸﻜﻼﺕ ﺩﻭﮔﺎﻧﺔ ﺑﺎﺯﺑﻴﻨﻲ ﻭ ﺳﺎﺧﺖ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﻣـﻮﺭﺩ ﺗﻮﺟـﻪ ﻗـﺮﺍﺭ ﻣـﻲﺩﻫـﺪ.
ﺗﻜﻨﻴﻚ ﻫﺎﻱ ﻃﺮﺍﺣﻲ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﺁﺯﻣﺎﻳﺶ ﺟﻌﺒﺔ ﺳﻴﺎﻩ ،ﺩﺭ ﺯﻣﺎﻥ ﻳﮑﭙﺎﺭﭼﻪﺳـﺎﺯﻱ ﺑﻴﺸـﺘﺮﻳﻦ ﺍﺳـﺘﻔﺎﺩﻩ ﺭﺍ ﺩﺍﺭﻧـﺪ،
ﺍﮔﺮﭼﻪ ﻣﻘﺪﺍﺭ ﻣﺤﺪﻭﺩﻱ ﺁﺯﻣﺎﻳﺶ ﺟﻌﺒﺔ ﺳﻔﻴﺪ ﻧﻴﺰ ﻣﻲﺗﻮﺍﻧﺪ ﺍﺳﺘﻔﺎﺩﻩ ﺷـﻮﺩ ﺗـﺎ ﺍﺯ ﭘﻮﺷـﺶ ﺍﻛﺜـﺮ ﻣﺴـﻴﺮﻫﺎﻱ ﻛﻨﺘﺮﻟـﻲ ﺍﻃﻤﻴﻨـﺎﻥ
ﺣﺎﺻﻞ ﺷﻮﺩ .ﭘﺲ ﺍﺯ ﻳﮑﭙﺎﺭﭼﻪﺳﺎﺯﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ )ﺳﺎﺧﺘﻪ ﺷﺪﻥ ﺁﻥ( ،ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﺁﺯﻣﺎﻳﺶ ﻫﺎﻱ ﻣﺮﺗﺒﻪ ﺑﺎﻻ ﻫﺪﺍﻳﺖ ﻣـﻲﺷـﻮﻧﺪ.
ﻣﻌﻴﺎﺭﻫﺎﻱ ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ )ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﺩﺭ ﺿﻤﻦ ﺗﺤﻠﻴﻞ ﻧﻴﺎﺯﻫﺎ( ﺑﺎﻳﺪ ﺁﺯﻣـﺎﻳﺶ ﺷـﻮﻧﺪ .ﺁﺯﻣـﺎﻳﺶ ﺍﻋﺘﺒﺎﺭﺳـﻨﺠﻲ ،ﺍﻃﻤﻴﻨـﺎﻥ
ﻧﻬﺎﻳﻲ ﺭﺍ ﺍﻳﺠﺎﺩ ﻣﻲﻛﻨﺪ ﻛﻪ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺗﻤﺎﻡ ﻧﻴﺎﺯﻫـﺎﻱ ﻋﻤﻠﻜـﺮﺩﻱ ،ﺭﻓﺘـﺎﺭﻱ ،ﻭ ﻛـﺎﺭﺍﻳﻲ ﺭﺍ ﺑـﺮﺁﻭﺭﺩﻩ ﻣـﻲﻧﻤﺎﻳـﺪ.
ﺗﻜﻨﻴﻚﻫﺎﻱ ﺁﺯﻣﺎﻳﺶ ﺟﻌﺒﺔ ﺳﻴﺎﻩ ﺑﻪ ﻃﻮﺭ ﺍﻧﺤﺼﺎﺭﻱ ﺩﺭ ﺿﻤﻦ ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﺷﻮﻧﺪ.
ﺁﺧﺮﻳﻦ ﻣﺮﺣﻠﺔ ﺁﺯﻣﺎﻳﺶ ﻣﺮﺗﺒﻪ ﺑﺎﻻ ،ﺧﺎﺭﺝ ﺍﺯ ﻣﺮﺯ ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﺳـﺖ ﻭ ﺩﺭ ﻣـﺮﺯ ﺯﻣﻴﻨـﺔ ﻣﻬﻨﺪﺳـﻲ ﺳﻴﺴـﺘﻢ ﻛـﺎﻣﭙﻴﻮﺗﺮﻱ
ﺍﺳﺖ .ﻧﺮﻡﺍﻓﺰﺍﺭ ،ﭘﺲ ﺍﺯ ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ،ﺑﺎﻳﺪ ﺑﺎ ﻋﻨﺎﺻﺮ ﺩﻳﮕﺮ ﺳﻴﺴﺘﻢ ﺗﺮﻛﻴﺐ ﺷﻮﺩ)ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﺳﺨﺖﺍﻓـﺰﺍﺭ ،ﺍﻓـﺮﺍﺩ ،ﺑﺎﻧـﻚﻫـﺎﻱ
ﺍﻃﻼﻋﺎﺗﻲ( .ﺁﺯﻣﺎﻳﺶ ﺳﻴﺴﺘﻢ ﺑﺎﺯﺑﻴﻨﻲ ﻣﻲﻛﻨﺪ ﻛﻪ ﺗﻤﺎﻡ ﻋﻨﺎﺻﺮ ﺑﻪ ﻃﻮﺭ ﻣـﻨﻈﻢ ﻣـﺮﺗﺒﻂ ﺷـﺪﻩ ﺑﺎﺷـﻨﺪ ﻭ ﺍﻳـﻦ ﻛـﻪ
ﻋﻤﻠﻜﺮﺩ ﻭ ﻛﺎﺭﺍﻳﻲ ﻛﻞ ﺳﻴﺴﺘﻢ ﻧﻴﺰ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﺑﺎﺷﺪ.
ﺁﺯﻣﺎﻳﺶ ﻳﻜﭙﺎﺭﭼﻪﺳﺎﺯﻱ
ﻃﺮﺍﺣﻲ
ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ
ﺟﻬﺖ ﺁﺯﻣﺎﻳﺸﻲ
ﺍﻧﺘﻈﺎﺭﺍﺕ ﻣﻨﻄﻘﻲ ﺩﺭ ﻣﺸﺨﺼﺔ ﻧﻴﺎﺯﻫﺎﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺗﻌﺮﻳﻒ ﺷﺪﻩﺍﻧﺪﻛﻪ ﺳﻨﺪﻱ ﺍﺳﺖ ﺗﻮﺻﻴﻒ ﻛﻨﻨﺪﺓ ﺗﻤـﺎﻡ ﺻـﻔﺎﺕ ﻗﺎﺑـﻞ ﺭﺅﻳـﺖ
ﻧﺮﻡﺍﻓﺰﺍﺭ .ﺍﻳﻦ ﻣﺸﺨﺼﻪ ﺷﺎﻣﻞ ﺑﺨﺸﻲ ﺍﺳﺖ ﺑﻪ ﻧﺎﻡ ﻣﻌﻴﺎﺭﻫﺎﻱ ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ،ﺍﻃﻼﻋﺎﺕ ﻣﻮﺟﻮﺩ ﺩﺭ ﺍﻳﻦ ﺑﺨـﺶ ،ﻣﺒﻨـﺎﻳﻲ ﺑـﺮﺍﻱ
ﺭﻭﺵ ﺁﺯﻣﺎﻳﺶ ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ﺧﻮﺍﻫﺪ ﺑﻮﺩ.
ﻣﺮﻭﺭ ﭘﻴﻜﺮﺑﻨﺪﻱ
ﻳﻚ ﻋﻨﺼﺮ ﻣﻬﻢ ﻓﺮﺁﻳﻨﺪ ﺍﻋﺘﺒﺎﺭﺳﻨﺠﻲ ،ﻣﺮﻭﺭ ﭘﻴﻜﺮﺑﻨﺪﻱ ﺍﺳﺖ .ﻣﺎﻫﻴﺖ ﺍﻳﻦ ﻣﺮﻭﺭ ،ﺣﺼﻮﻝ ﺍﻃﻤﻴﻨـﺎﻥ ﺍﺯ ﺍﻳـﻦ ﺍﺳـﺖ ﻛـﻪ ﺗﻤـﺎﻡ
ﻋﻨﺎﺻﺮ ﭘﻴﻜﺮﺑﻨﺪﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻪ ﻃﻮﺭ ﻣﻨﺎﺳﺐ ﺗﻮﺳﻌﻪ ﺩﺍﺩﻩ ﺷﺪﻩ ﺑﺎﺷﻨﺪ ،ﺛﺒﺖ ﺷﺪﻩ ﺑﺎﺷﻨﺪ ،ﻭ ﺷﺎﻣﻞ ﺟﺰﻳﻴـﺎﺕ ﻻﺯﻡ ﺑـﺮﺍﻱ ﻣﺮﺣﻠـﻪ
ﺣﻤﺎﻳﺖ ﺩﺭ ﺩﻭﺭﻩ ﺯﻧﺪﮔﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺎﺷﻨﺪ .ﻣﺮﻭﺭ ﭘﻴﻜﺮﺑﻨﺪﻱ ﮔﺎﻫﻲ ﺗﻄﺒﻴﻖ ﻧﺎﻣﻴﺪﻩ ﻣﻲﺷﻮﺩ ﻭ ﺑﺎ ﺟﺰﻳﻴﺎﺕ ﺩﺭ ﻓﺼﻞ ۹ﺑﺤﺚ ﺷـﺪﻩ
ﺍﺳﺖ.
ﺁﺯﻣﺎﻳﺶ ﻓﺸﺎﺭ ﺳﻴﺴﺘﻢ ﺭﺍ ﺑﻪ ﺭﻭﺷﻲ ﺍﺟﺮﺍ ﻣﻲﻛﻨﺪ ﻛﻪ ﻣﻨﺎﺑﻊ ﺑﺎ ﻛﻤﻴﺖ ،ﺗﻜﺮﺍﺭ ،ﻳﺎ ﺣﺠـﻢ ﻏﻴﺮﻣﻌﻤـﻮﻝ ﺩﺭﺧﻮﺍﺳـﺖ ﺷـﻮﻧﺪ .ﺑـﺮﺍﻱ
ﻣﺜﺎﻝ،
-۱ﺁﺯﻣﺎﻳﺶ ﻫﺎﻱ ﺧﺎﺻﻲ ﻣﻲﺗﻮﺍﻧﻨﺪ ﻃﺮﺍﺣﻲ ﺷﻮﻧﺪ ﺗﺎ ﺩﻩ ﻭﻗﻔﻪ ﺭﺍ ﺩﺭ ﺛﺎﻧﻴﻪ ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪ ،ﺩﺭ ﺯﻣﺎﻧﻲ ﻛﻪ ﻳﻚ ﻳﺎ ﺩﻭ ﻋـﺪﺩ ﻭﻗﻔـﻪ
ﺳﺮﻋﺖ ﻣﺘﻮﺳﻂ ﺑﺎﺷﺪ،
-۲ﺳﺮﻋﺖ ﺩﺍﺩﻩﻫﺎﻱ ﻭﺭﻭﺩﻱ ﺍﻓﺰﺍﻳﺶ ﺩﺍﺩﻩ ﻣﻲﺷﻮﺩ ﺗﺎ ﺣﺪﻱ ﻛﻪ ﻣﺸﺨﺺ ﺷﻮﺩ ﭼﮕﻮﻧﻪ ﺗﻮﺍﺑﻊ ﻭﺭﻭﺩﻱ ﭘﺎﺳﺦ ﻣﻲﺩﻫﻨﺪ،
-۳ﻧﻤﻮﻧﻪﻫﺎﻱ ﺁﺯﻣﺎﻳﺶ ﻛﻪ ﺣﺪﺍﻛﺜﺮ ﺣﺎﻓﻈﻪ ﻳﺎ ﻣﻨﺎﺑﻊ ﺩﻳﮕﺮ ﺭﺍ ﻧﻴﺎﺯ ﺩﺍﺭﻧﺪ ﺍﺟﺮﺍ ﻣﻲﺷﻮﻧﺪ،
-۴ﻧﻤﻮﻧﻪﻫﺎﻱ ﺁﺯﻣﺎﻳﺸﻲ ﻃﺮﺍﺣﻲ ﻣﻲ ﮔﺮﺩﺩ ﻛﻪ ﺑﺎﻋﺚ ﺻﺪﻣﻪ ﺑﻪ ﺳﻴﺴﺘﻢ ﻋﺎﻣﻞ ﺷﻮﻧﺪ،
-۵ﻧﻤﻮﻧﻪﻫﺎﻱ ﺁﺯﻣﺎﻳﺸﻲ ﻃﺮﺍﺣﻲ ﻣﻲﺷﻮﻧﺪ ﻛﻪ ﺑﺎﻋﺚ ﺩﺳﺘﻴﺎﺑﻲ ﻣﺪﺍﻭﻡ ﺑﻪ ﺩﺍﺩﻩﻫﺎﻱ ﺭﻳﺴﻚ ﻣـﻲﺷـﻮﻧﺪ .ﺿـﺮﻭﺭﺗﺎﹰ ،ﺁﺯﻣـﺎﻳﺶ
ﻛﻨﻨﺪﻩ ﺳﻌﻲ ﺩﺭ ﺧﺮﺍﺏ ﻛﺮﺩﻥ ﺩﺍﺩﻩﻫﺎﻱ ﺳﻴﺴﺘﻢ ﺩﺍﺭﺩ.
ﻓﺮﺁﻳﻨﺪ ﺍﺷﻜﺎﻝﺩﺍﻳﻲ
ﭼﺮﺍ ﺍﺷﻜﺎﻟﺰﺩﺍﻳﻲ ﺍﻳﻦ ﭼﻨﻴﻦ ﻣﺸﻜﻞ ﺍﺳﺖ؟ ﺷﻜﻞ ۹ﻓﺮﺍﻳﻨﺪ ﺍﺷﻜﺎﻟﺰﺩﺍﻳﻲ ﺭﺍ ﻧﺸﺎﻥ ﻣﻲ ﺩﻫﺪ .ﺩﺭ ﺗﻤﺎﻡ ﺍﺣﺘﻤﺎﻻﺕ ،ﭘﺎﺳﺦ ﺑـﻪ ﺍﻳـﻦ
ﺳﺆﺍﻝ ،ﺑﻴﺸﺘﺮ ﺑﻪ ﺭﻭﺍﻧﺸﻨﺎﺳﻲ ﺍﻧﺴﺎﻥ ﻣﺮﺑﻮﻁ ﻣﻲﺷﻮﺩ ﺗﺎ ﺗﻜﻨﻮﻟـﻮﮊﻱ ﻧـﺮﻡﺍﻓـﺰﺍﺭ .ﺑـﻪ ﻫـﺮ ﺣـﺎﻝ ،ﭼﻨـﺪ ﺧﺼﻮﺻـﻴﺖ ﺍﺷـﻜﺎﻻﺕ،
ﻛﻠﻴﺪﻫﺎﻳﻲ ﺭﺍ ﻓﺮﺍﻫﻢ ﻣﻲﻧﻤﺎﻳﻨﺪ:
-۱ﻋﻼﻣﺖ ﻭ ﻋﻠﺖ ﻣﻤﻜﻦ ﺍﺳﺖ ﺍﺯ ﻧﻈﺮ ﺟﻐﺮﺍﻓﻴﺎﻳﻲ ﺍﺯ ﻳﻜﺪﻳﮕﺮ ﻓﺎﺻﻠﻪ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻨﺪ .ﻳﻌﻨﻲ ،ﺍﻳﻦ ﻋﻼﻣﺖ ﻣﻤﻜـﻦ ﺍﺳـﺖ
ﺩﺭ ﻳﻚ ﺑﺨﺶ ﺑﺮﻧﺎﻣﻪ ﻇﺎﻫﺮ ﺷﻮﺩ ،ﺩﺭ ﺣﺎﻟﻲ ﻛﻪ ﻋﻠﺖ ﺁﻥ ﻣﻤﻜﻦ ﺍﺳﺖ ﺩﺭ ﺳﺎﻳﺘﻲ ﻗﺮﺍﺭ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﻛـﻪ ﺑﺴـﻴﺎﺭ ﺩﻭﺭ
ﺍﺳﺖ .ﺳﺎﺧﺘﺎﺭﻫﺎﻱ ﺑﺮﻧﺎﻣﻪﺍﻱ ﻛﻪ ﺑﺎ ﺍﺗﺼﺎﻝ ﺯﻳﺎﺩ ﻣﺮﺗﺒﻂ ﻫﺴﺘﻨﺪ )ﻓﺼﻞ (۱۳ﺍﻳﻦ ﻭﺿﻌﻴﺖ ﺭﺍ ﺑﺪﺗﺮ ﻣﻲﻧﻤﺎﻳﻨﺪ.
-۲ﻋﻼﻣﺖ ﻣﻤﻜﻦ ﺍﺳﺖ ﻭﻗﺘﻲ ﻛﻪ ﺧﻄﺎﻱ ﺩﻳﮕﺮﻱ ﺍﺻﻼﺡ ﻣﻲﮔﺮﺩﺩ ،ﺑﻪ ﻃﻮﺭ ﻣﻮﻗﺖ ﻧﺎﭘﺪﻳﺪ ﺷﻮﺩ.
-۳ﻋﻼﻣﺖ ﻣﻤﻜﻦ ﺍﺳﺖ ﺗﻮﺳﻂ ﻫﻴﭻ ﺧﻄﺎﻳﻲ ﺍﻳﺠﺎﺩ ﻧﺸﺪﻩ ﺑﺎﺷﺪ )ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﻋﺪﻡ ﺩﻗﺖ ﺩﺭ ﻧﺘﻴﺠﺔ ﮔﺮﺩﻛﺮﺩﻥ(.
-۴ﻋﻼﻣﺖ ﻣﻤﻜﻦ ﺍﺳﺖ ﻧﺎﺷﻲ ﺍﺯ ﺧﻄﺎﻱ ﺍﻧﺴﺎﻧﻲ ﺑﺎﺷﺪ ﻛﻪ ﺑﻪ ﺭﺍﺣﺘﻲ ﻗﺎﺑﻞ ﭘﻴﮕﻴﺮﻱ ﻧﻴﺴﺖ.
-۵ﻋﻼﻣﺖ ﻣﻤﻜﻦ ﺍﺳﺖ ﺩﺭ ﻧﺘﻴﺠﺔ ﻣﺸﻜﻼﺕ ﺯﻣﺎﻧﺒﻨﺪﻱ ﺑﻪ ﻭﺟﻮﺩ ﺁﻳﺪ ،ﺑﻪ ﺟﺎﻱ ﺍﻳـﻦ ﻛـﻪ ﺩﺭ ﺍﺛـﺮ ﻣﺸـﻜﻼﺕ ﭘـﺮﺩﺍﺯﺵ
ﭘﺪﻳﺪ ﺁﻣﺪﻩ ﺑﺎﺷﺪ.
-۶ﻣﻤﻜﻦ ﺍﺳﺖ ﺍﻳﺠﺎﺩ ﻣﺠﺪﺩ ﺷﺮﺍﻳﻂ ﻭﺭﻭﺩﻱ ﺑﺎ ﺩﻗﺖ ،ﺩﺭ ﺳﻴﺴﺘﻢﻫﺎ ﺟﺎﺳﺎﺯﻱ ﺷﺪﻩ ﻣﺘﺪﺍﻭﻝ ﺍﺳﺖ ﺯﻳﺮﺍ ﺳـﺨﺖﺍﻓـﺰﺍﺭ ﻭ
ﻧﺮﻡﺍﻓﺰﺍﺭ ﻛﺎﻣﻼﹰ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﻣﺘﺼﻞ ﺷﺪﻩﺍﻧﺪ.
-۷ﻋﻼﻣﺖ ﻣﻤﻜﻦ ﺍﺳﺖ ﺩﺭ ﺍﺛﺮ ﻋﻠﻠﻲ ﺑﺎﺷﺪ ﻛﻪ ﺩﺭ ﭼﻨﺪ taskﻛﻪ ﺑﺮ ﺭﻭﻱ ﭘﺮﺩﺍﺯﻧـﺪﻩﻫـﺎﻱ ﻣﺘﻔـﺎﻭﺕ ﺍﺟـﺮﺍ ﻣـﻲﺷـﻮﻧﺪ
ﺗﻮﺯﻳﻊ ﺷﺪﻩ ﺑﺎﺷﺪ.
ﻣﻨﺎﺑﻊ
1- Pressman, R., Software Engineerig : A Practitioner's Approach, 5th
editition, Mc Graw-Hill, 2005.
2- Bruegge Bernd, Dutoit, H.,Allen; Object Oriented Software
Engineering, Prentice Hall, 2000.
3- Rumbaugh, J., Blaha Micheal, Premerlani William, Lorensen
William; Object Oriented Moddeling and Design; Prentice Hall, 1991.
4- Kendall & Kendall; System Analysis and Design; 4th edition, Prentice
Hall, 1999.
5- Sommerville, Ian; Software Engineering; 5th Edition, Addison-Wesley,
2000.
6- Parrington, N., Marc Roper; Understanding Software Testing; John
Wiley & Sons, 1999.
7- Holmes, Jim; Object Oriented Computer Construction, Prentic Hall,
1995.
ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ۵ ﺗﺮﺟﻤﻪ ﻭﻳﺮﺍﻳﺶ، ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ، ﻣﺤﻤﺪ ﻣﻬﺪﻱ ﺳﺎﻟﺨﻮﺭﺩﻩ ﺣﻘﻴﻘﻲ-۸
۱۳۸۲ ،ﭘﺮﺳﻤﻦ
۱۳۷۷ ، ﺩﻛﺘﺮ ﭘﺎﺭﺳﺎ، ﺗﺤﻠﻴﻞ ﻭ ﻃﺮﺍﺣﻲ ﺳﻴﺴﺘﻢﻫﺎ ﺩﺭ ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ-۹
ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ۵ ﺗﺮﺟﻤﻪ ﻭﻳﺮﺍﻳﺶ، ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ، ﻋﻴﻦ ﺍﷲ ﺟﻌﻔﺮ ﻧﮋﺍﺩ ﻗﻤﯽ-۱۰
۱۳۸۱ ،ﭘﺮﺳﻤﻦ
۱۳۸۲ ، ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ ﭘﺮﺳﻤﻦ۵ ﺗﺮﺟﻤﻪ ﻭﻳﺮﺍﻳﺶ، ﻣﻬﻨﺪﺳﻲ ﻧﺮﻡﺍﻓﺰﺍﺭ، ﻫﺎﺷﻤﯽ ﻃﺒﺎﺀ-۱۱
۶ ﺗﺎ۴ ﺗﺮﺟﻤﻪ ﻭ ﺗﻨﻈﻴﻢ ﺍﺯ ﻭﻳﺮﺍﺳﺖ ﻫﺎﯼ، ﺍﻣﻴﺮﻓﺮﺥ ﻗﻨﺒﺮﭘﻮﺭ، ﻣﺴﻌﻮﺩ ﺯﮐﯽ ﭘﻮﺭ، ﺍﺳﻼﻡ ﻧﺎﻇﻤﯽ-۱۲
۱۳۸۴ ﻣﻮﺳﺴﻪ ﭘﺎﺭﺳﻪ ﺗﺎﺑﺴﺘﺎﻥ،ﭘﺮﺳﻤﻦ
ﺿﻤﻴﻤﻪ
ﺁﺯﻣﺎﻳﺶ ﺳﻴﺴﺘﻢﻫﺎﻱ ﺑﻼﺩﺭﻧﮓ
ﻣﺎﻫﻴﺖ ﻭﺍﺑﺴﺘﻪ ﺑﻪ ﺯﻣﺎﻥ ﻭ ﻏﻴﺮﻫﻤﺰﻣﺎﻥ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﻛﺎﺭﺑﺮﺩﻫﺎﻱ ﺑﻼﺩﺭﻧﮓ ،ﻋﻨﺼﺮﻱ ﺟﺪﻳﺪ ﻭ ﺍﺣﺘﻤﺎﻻﹰ ﻣﺸﻜﻞ ﺭﺍ ﺑـﻪ ﻧـﺎﻡ ﺯﻣـﺎﻥ
ﺑﻪ ﺁﺯﻣﺎﻳﺶ ﻣﻲﺍﻓﺰﺍﻳﺪ .ﻃﺮﺍﺡ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﺁﺯﻣﺎﻳﺶ ﺑﺎﻳﺪ ﻧﻤﻮﻧﻪ ﻫﺎیﻬﺎﻱ ﺁﺯﻣﺎﻳﺶ ﺟﻌﺒﺔ ﺳﻔﻴﺪ ﻭ ﺟﻌﺒﺔ ﺳﻴﺎﻩ ﺭﺍ ﻫﻤـﺮﺍﻩ ،ﺑـﺎ ﺍﺩﺍﺭﺓ
ﻭﺍﻗﻌﻪ )ﻳﻌﻨﻲ ﭘﺮﺩﺍﺯﺵ ﻭﻗﻔﻪ( ،ﺯﻣﺎﻧﺒﻨﺪﻱ ﺩﺍﺩﻩﻫﺎ ،ﻭ ﻣﻮﺍﺯﻱ ﺑﻮﺩﻥ taskﻫﺎﻱ ﺍﺩﺍﺭﻩ ﻛﻨﻨـﺪﺓ ﺩﺍﺩﻩﻫـﺎ ﺩﺭ ﻧﻈـﺮ ﺩﺍﺷـﺘﻪ ﺑﺎﺷـﺪ .ﺩﺭ
ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﻣﻮﺍﺭﺩ ،ﺩﺍﺩﻩﻫﺎﻱ ﺁﺯﻣﺎﻳﺸﻲ ﺯﻣﺎﻧﻲ ﻓﺮﺍﻫﻢ ﻣﻲﺷﻮﻧﺪ ﻛﻪ ﺳﻴﺴﺘﻢ ﺑﻼﺩﺭﻧﮓ ﺩﺭ ﻳﻚ ﺣﺎﻟﺖ ﺧـﺎﺹ ﻗـﺮﺍﺭ ﺩﺍﺭﺩ ،ﻣﻤﻜـﻦ
ﺍﺳﺖ ﺑﺎﻋﺚ ﺑﺮﻭﺯ ﺧﻄﺎ ﺷﻮﻧﺪ.
ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻼﺩﺭﻧﮕﻲ ﻛﻪ ﺩﺳﺘﮕﺎﻩ ﻛﭙﻲ ﺟﺪﻳﺪﻱ ﺭﺍ ﻛﻨﺘﺮﻝ ﻣﻲﻛﻨﺪ ،ﻭﻗﻔﻪﻫﺎﻱ ﺍﻭﭘﺮﺍﺗﻮﺭﻱ ﺭﺍ ﺑـﺪﻭﻥ ﺧﻄـﺎ ﻣـﻲﭘـﺬﻳﺮﺩ
)ﻳﻌﻨﻲ ﺍﻭﭘﺮﺍﺗﻮﺭ ﻣﺎﺷﻴﻦ ﻛﻠﻴﺪﻱ ﻛﻨﺘﺮﻟﻲ ﻣﺎﻧﻨﺪ RESETﻳﺎ DARKENﺭﺍ ﻣـﻲﺯﻧـﺪ( ،ﻭﻗﺘـﻲ ﻣﺎﺷـﻴﻦ ﺩﺭ ﺣـﺎﻝ ﮔـﺮﻓﺘﻦ
ﻛﭙﻲﻫﺎ ﺍﺳﺖ )ﺩﺭﺣﺎﻟﺖ " ﻛﭙﻲ " ﻗﺮﺍﺭ ﺩﺍﺭﺩ( .ﻫﻤﻴﻦ ﻭﻗﻔﻪﻫﺎﻱ ﺍﻭﭘﺮﺍﺗﻮﺭ ،ﺍﮔﺮ ﺩﺭ ﺣﺎﻟﺖ " ﺟﻤﻊ ﺷﺪﻥ ﻛﺎﻏـﺬ " ﻭﺍﺭﺩ ﺷـﻮﻧﺪ ،ﺑﺎﻋـﺚ
ﻧﻤﺎﻳﺶ ﻛﺪ ﺷﻨﺎﺳﺎﻳﻲ ﻣﻲﺷﻮﻧﺪ ﺗﺎ ﻣﺤﻞ ﺟﻤﻊ ﺷﺪﻥ ﻛﺎﻏﺬ ﺭﺍ ﻛﻪ ﺑﺎﻳﺪ ﺑﺮﻃﺮﻑ ﺷﻮﺩ ﻣﺸﺨﺺ ﻧﻤﺎﻳﻨﺪ )ﺧﻄﺎ(.
ﻋﻼﻭﻩ ﺑﺮ ﺁﻥ ،ﺭﺍﺑﻂ ﻧﺰﺩﻳﻚ ﺑﻴﻦ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻼﺩﺭﻧﮓ ﻭ ﻣﺤﻴﻂ ﺳﺨﺖﺍﻓﺰﺍﺭﻱ ﻧﻴﺰ ﺑﺎﻋﺚ ﻣﻲﺷﻮﺩ ﺁﺯﻣﺎﻳﺶ ﺑﺎ ﻣﺸﻜﻞ ﺭﻭﺑﺮﻭ ﺷـﻮﺩ.
ﺁﺯﻣﺎﻳﺶ ﻫﺎﻱ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﺎﻳﺪ ﺗﺄﺛﻴﺮ ﺧﻄﺎﻫﺎﻱ ﺳﺨﺖﺍﻓﺰﺍﺭ ﺭﺍ ﺑﺮ ﭘﺮﺩﺍﺯﺵ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻧﺪ .ﺷﺒﻴﻪﺳﺎﺯﻱ ﭼﻨـﻴﻦ ﺍﺷـﻜﺎﻻﺗﻲ
ﻣﻤﻜﻦ ﺍﺳﺖ ﺑﺴﻴﺎﺭ ﻣﺸﻜﻞ ﺑﺎﺷﺪ.
ﺭﻭﺵ ﻫﺎﻱ ﻃﺮﺍﺣﻲ ﻧﻤﻮﻧﻪ ﻫﺎیﻬﺎﻱ ﻃﺮﺍﺣﻲ ﺑﺮﺍﻱ ﺳﻴﺴﺘﻢﻫﺎﻱ ﺑﻼﺩﺭﻧﮓ ﻫﻨﻮﺯ ﺩﺭ ﺣﺎﻝ ﺗﻜﺎﻣﻞ ﺍﺳـﺖ .ﺑـﻪ ﻫـﺮ ﺣـﺎﻝ ،ﻳـﻚ
ﺍﺳﺘﺮﺍﺗﮋﻱ ﻛﻠﻲ ﭼﻬﺎﺭ ﻣﺮﺣﻠﻪﺍﻱ ﭘﻴﺸﻨﻬﺎﺩ ﻣﻲﺷﻮﺩ:
ﺁﺯﻣﺎﻳﺶ :taskﺍﻭﻟﻴﻦ ﻣﺮﺣﻠﻪ ﺩﺭ ﺁﺯﻣﺎﻳﺶ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻼﺩﺭﻧﮓ ،ﺁﺯﻣﺎﻳﺶ ﻫﺮ taskﺑـﻪ ﻃـﻮﺭ ﻣﺴـﺘﻘﻞ ﻣـﻲﺑﺎﺷـﺪ .ﻳﻌﻨـﻲ
ﺁﺯﻣﺎﻳﺶ ﻫﺎﻱ ﺟﻌﺒﻪ ﺳﻔﻴﺪ ﻭ ﺟﻌﺒﻪ ﺳﻴﺎﻩ ﺑﺮﺍﻱ ﻫﺮ taskﻃﺮﺍﺣﻲ ﻭ ﺍﺟﺮﺍ ﺷﻮﻧﺪ .ﻫﺮ taskﺑﻪ ﻃﻮﺭ ﻣﺴـﺘﻘﻞ ﺩﺭ ﺿـﻤﻦ ﺍﻳـﻦ
ﺁﺯﻣﺎﻳﺸﺎﺕ ﺍﺟﺮﺍ ﻣﻲﺷﻮﺩ .ﺁﺯﻣﺎﻳﺶ taskﺧﻄﺎﻫﺎﻳﻲ ﺭﺍ ﺩﺭ ﻣﻨﻄﻖ ﻭ ﻋﻤﻠﻜـﺮﺩ ﺁﺷـﻜﺎﺭ ﻣـﻲﻛﻨـﺪ ،ﺍﻣـﺎ ﺧﻄﺎﻫـﺎﻱ ﺯﻣﺎﻧﺒﻨـﺪﻱ ﻭ
ﺭﻓﺘﺎﺭﻱ ﺁﺷﻜﺎﺭ ﻧﻤﻲﺷﻮﻧﺪ.
ﺁﺯﻣﺎﻳﺶ ﺭﻓﺘﺎﺭﻱ :ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺪﻟﻬﺎﻱ ﺳﻴﺴﺘﻢﻫﺎﻳﻲ ﻛﻪ ﺑﺎ ﻧﻤﻮﻧﻪ ﻫﺎیﻬﺎﻱ CASEﺍﻳﺠﺎﺩ ﺷﺪﻩﺍﻧﺪ ،ﺍﻣﻜﺎﻥ ﺷﺒﻴﻪﺳﺎﺯﻱ
ﺭﻓﺘﺎﺭ ﺳﻴﺴﺘﻢ ﺑﻼﺩﺭﻧﮓ ﻭ ﺁﺯﻣﺎﻳﺶ ﺭﻓﺘﺎﺭ ﺁﻥ ﺩﺭ ﻧﺘﻴﺠﺔ ﻭﻗﺎﻳﻊ ﺧﺎﺭﺟﻲ ،ﻭﺟﻮﺩ ﺩﺍﺭﺩ .ﺍﻳﻦ ﻓﻌﺎﻟﻴﺖﻫﺎﻱ ﺗﺤﻠﻴﻞ ،ﻣﺒﻨـﺎﻳﻲ ﺭﺍ ﻓـﺮﺍﻫﻢ
ﻣﻲﻛﻨﻨﺪ ﺑﺮﺍﻱ ﻃﺮﺍﺣﻲ ﻧﻤﻮﻧﻪ ﻫﺎیﻬﺎﻱ ﺁﺯﻣﺎﻳﺸﻲ ﻛﻪ ﺩﺭ ﺯﻣﺎﻥ ﺍﻳﺠﺎﺩ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺑﻼﺩﺭﻧـﮓ ﻫـﺪﺍﻳﺖ ﻣـﻲﺷـﻮﻧﺪ .ﺑـﺎ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ
ﺗﻜﻨﻴﻜﻲ ﻣﺸﺎﺑﻪ ﺗﻘﺴﻴﻢﺑﻨﺪﻱ ﻣﺴﺎﻭﻱ ،ﻭﻗﺎﻳﻊ )ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﻭﻗﻔﻪﻫﺎ ،ﺳﻴﮕﻨﺎﻟﻬﺎﻱ ﻛﻨﺘﺮﻝ( ﺑﺮﺍﻱ ﺁﺯﻣﺎﻳﺶ ﺩﺳﺘﻪﺑﻨﺪﻱ ﻣـﻲﺷـﻮﻧﺪ.
ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﻭﻗﺎﻳﻌﻲ ﺑﺮﺍﻱ ﺩﺳﺘﮕﺎﻩ ﻓﺘﻮﻛﭙﻲ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ :ﻭﻗﻔﻪﻫﺎﻱ ﻛﺎﺭﺑﺮ )ﺑﺮﺍﻱ ﻣﺜـﺎﻝ ،ﻛـﻢ ﺷـﺪﻥ ﭘـﻮﺩﺭ ﻗﺮﻣـﺰ( ،ﻭ ﻣﻮﺩﻫـﺎﻱ
ﺷﻜﺴﺖ )ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﺳﺮﺑﺎﺭ ﺭﻭﻟﺮ( .ﻫﺮ ﻳﻚ ﺍﺯ ﺍﻳﻦ ﻭﻗﺎﻳﻊ ﺑﻪ ﻃﻮﺭ ﻣﺠﺰﺍ ﺁﺯﻣﺎﻳﺶ ﻣﻲﺷﻮﻧﺪ ﻭ ﺭﻓﺘﺎﺭ ﺳﻴﺴـﺘﻢ ﺍﺟﺮﺍﻳـﻲ ﺁﺯﻣـﺎﻳﺶ
ﻣﻲﮔﺮﺩﺩ ﺗﺎ ﺧﻄﺎﻫﺎﻳﻲ ﺩﺭ ﻧﺘﻴﺠﺔ ﭘﺮﺩﺍﺯﺵ ﻣﺮﺑﻮﻁ ﺑﻪ ﺍﻳﻦ ﻭﻗﺎﻳﻊ ،ﺁﺷﻜﺎﺭ ﺷﻮﻧﺪ .ﺭﻓﺘـﺎﺭ ﻣـﺪﻝ ﺳﻴﺴـﺘﻢ )ﻛـﻪ ﺩﺭ ﺿـﻤﻦ ﻓﻌﺎﻟﻴـﺖ
ﺗﺤﻠﻴﻞ ﺗﻮﺳﻌﻪ ﺩﺍﺩﻩ ﺷﺪﻩ( ﻭ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﺟﺮﺍﻳﻲ ﺑﺮﺍﻱ ﻣﺴﺎﺋﻞ ﻛﺎﺭﺍﻳﻲ ﻣﻘﺎﻳﺴﻪ ﻣﻲﺷﻮﻧﺪ .ﺭﻓﺘـﺎﺭ ﺳﻴﺴـﺘﻢ ﺁﺯﻣـﺎﻳﺶ ﻣـﻲﺷـﻮﺩ ﺗـﺎ
ﺧﻄﺎﻫﺎﻱ ﺭﻓﺘﺎﺭﻱ ﺁﺷﻜﺎﺭ ﮔﺮﺩﻧﺪ.
ﺁﺯﻣﺎﻳﺶ ﺑﻴﻦ taskﻫﺎ .ﭘﺲ ﺍﺯ ﺟﺪﺍ ﺷﺪﻥ ﺧﻄﺎﻫـﺎﻱ ﻫـﺮ ﻳـﻚ ﺍﺯ taskﻫـﺎ ﻭ ﺭﻓﺘـﺎﺭ ﺳﻴﺴـﺘﻢ ،ﺁﺯﻣـﺎﻳﺶ ﺑـﻪ ﺳـﻤﺖ
ﺧﻄﺎﻫﺎﻱ ﺯﻣﺎﻧﻲ ﻫﺪﺍﻳﺖ ﻣﻲﺷﻮﺩ task .ﻫﺎﻱ ﻏﻴﺮﻫﻤﺰﻣﺎﻥ ﻛﻪ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺍﺭﺗﺒﺎﻁ ﺑﺮﻗﺮﺍﺭ ﻣﻲﻛﻨﻨﺪ ،ﺑﺎ ﺳﺮﻋﺖ ﺍﻧﺘﻘـﺎﻝ ﺩﺍﺩﻩﻫـﺎ
ﻭ ﺑﺎﺭ ﭘﺮﺩﺍﺯﺵ ﻣﺘﻔﺎﻭﺕ ﺁﺯﻣﺎﻳﺶ ﻣﻲﺷﻮﻧﺪ ﺗﺎ ﻣﺸﺨﺺ ﻛﻨﻨﺪ ﺁﻳﺎ ﺧﻄﺎﻫﺎﻱ ﻫﻤﺰﻣﺎﻧﻲ ﺍﺭﺗﺒﺎﻁ ﺑﻴﻦ taskﻫﺎ ﺍﺗﻔﺎﻕ ﻣﻲﺍﻓﺘﻨـﺪ ﻳـﺎ
ﺧﻴﺮ .ﻋﻼﻭﻩ ﺑﺮ ﺁﻥ task ،ﻫﺎﻳﻲ ﻛﻪ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺻﻒ ﭘﻴﻐﺎﻡ ﻳﺎ ﺣﺎﻓﻈﺔ ﺩﺍﺩﻩﻫﺎ ﺍﺭﺗﺒﺎﻁ ﺑﺮﻗﺮﺍﺭ ﻣﻲﻧﻤﺎﻳﻨﺪ ﺁﺯﻣﺎﻳﺶ ﻣـﻲﮔﺮﺩﻧـﺪ
ﺗﺎ ﺧﻄﺎﻫﺎﻱ ﻣﺮﺑﻮﻁ ﺑﻪ ﺍﻧﺪﺍﺯﺓ ﺍﻳﻦ ﻧﺎﺣﻴﻪﻫﺎﻱ ﺣﺎﻓﻈﻪ ﺁﺷﻜﺎﺭ ﺷﻮﻧﺪ.
ﺁﺯﻣﺎﻳﺶ ﺳﻴﺴﺘﻢ .ﻧﺮﻡﺍﻓﺰﺍﺭ ﻭ ﺳﺨﺖﺍﻓﺰﺍﺭ ﻣﺠﺘﻤﻊ ﻣﻲﺷﻮﻧﺪ ﻭ ﻣﺤﺪﻭﺩﺓ ﻛﺎﻣﻠﻲ ﺍﺯ ﺁﺯﻣﺎﻳﺶ ﻫﺎﻱ ﺳﻴﺴﺘﻢ ﻫﺪﺍﻳﺖ ﻣﻲﺷـﻮﻧﺪ
ﺗﺎ ﺧﻄﺎﻫﺎﻱ ﺍﺭﺗﺒﺎﻁ ﺳﺨﺖﺍﻓﺰﺍﺭ -ﻧﺮﻡﺍﻓﺰﺍﺭ ﺁﺷﻜﺎﺭ ﺷﻮﺩ .ﺍﻛﺜﺮ ﺳﻴﺴﺘﻢﻫﺎﻱ ﺑﻼﺩﺭﻧﮓ ،ﻭﻗﻔﻪﻫﺎ ﺭﺍ ﭘﺮﺩﺍﺯﺵ ﻣـﻲﻛﻨﻨـﺪ .ﺑﻨـﺎﺑﺮﺍﻳﻦ،
ﺁﺯﻣﺎﻳﺶ ﺍﺩﺭﺍﺓ ﺍﻳﻦ ﻭﻗﺎﻳﻊ ﺑﻮﻟﻲ ﺿﺮﻭﺭﻱ ﺍﺳﺖ .ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻧﻤﻮﺩﺍﺭ ﺗﻐﻴﻴﺮ ﺣﺎﻟـﺖ ﻭ ﻣﺸﺨﺼـﺔ ﻛﻨﺘـﺮﻝ )ﻓﺼـﻞ ،(۱۲ﺁﺯﻣـﺎﻳﺶ
ﻛﻨﻨﺪﻩ ،ﻟﻴﺴﺘﻲ ﺍﺯ ﺗﻤﺎﻡ ﻭﻗﻔﻪﻫﺎﻱ ﻣﻤﻜﻦ ﻭ ﭘﺮﺩﺍﺯﺵﻫﺎﻳﻲ ﺭﺍ ﻛﻪ ﺩﺭ ﻧﺘﻴﺠﺔ ﺁﻥ ﻭﻗﻔﻪﻫﺎ ﺍﻧﺠﺎﻡ ﻣـﻲﺷـﻮﻧﺪ ﻭ ﺗﻮﺳـﻌﻪ ﻣـﻲﺩﻫـﺪ.
ﺳﭙﺲ ﺁﺯﻣﺎﻳﺶ ﻫﺎﻳﻲ ﻃﺮﺍﺣﻲ ﻣﻲﺷﻮﻧﺪ ﺗﺎ ﺑﻪ ﺧﺼﻮﺻﻴﺎﺕ ﺳﻴﺴﺘﻢ ﻛﻪ ﺩﺭ ﺯﻳﺮ ﺍﺭﺍﺋﻪ ﺷﺪﻩ ﺑﺮﺳﻨﺪ:
¨ ﺁﻳﺎ ﺍﻭﻟﻮﻳﺖﻫﺎﻱ ﻭﻗﻔﻪﻫﺎ ﺑﻪ ﻃﻮﺭ ﻣﻨﻈﻢ ﺗﺨﺼﻴﺺ ﺩﺍﺩﻩ ﺷﺪﻩ ﻭ ﺑﻪ ﻃﻮﺭ ﻣﻨﻈﻢ ﺍﺩﺍﺭﻩ ﻣﻲﺷﻮﻧﺪ؟
¨ ﺁﻳﺎ ﭘﺮﺩﺍﺯﺵ ﺑﺮﺍﻱ ﻫﺮ ﻭﻗﻔﻪ ﺩﺭﺳﺖ ﺍﺩﺍﺭﻩ ﻣﻲﺷﻮﺩ؟
¨ ﺁﻳﺎ ﻛﺎﺭﺍﻳﻲ )ﺑﺮﺍﻱ ﻣﺜﺎﻝ ،ﺯﻣﺎﻥ ﭘﺮﺩﺍﺯﺵ( ﺑﺮﺍﻱ ﻫﺮ ﺭﻭﻳﻪ ﺍﺩﺍﺭﻩ ﻛﻨﻨﺪﺓ ﻭﻗﻔﻪ ﺑﺎ ﻧﻴﺎﺯﻫﺎ ﻣﻄﺎﺑﻘﺖ ﺩﺍﺭﺩ؟
¨ ﺁﻳﺎ ﺣﺠﻢ ﺯﻳﺎﺩ ﻭﻗﻔﻪﻫﺎﻳﻲ ﻛﻪ ﺩﺭ ﺯﻣﺎﻧﻬﺎﻱ ﺑﺤﺮﺍﻧﻲ ﺩﺭﻳﺎﻓـﺖ ﻣـﻲﺷـﻮﻧﺪ ﻣﺸـﻜﻠﻲ ﺭﺍ ﺩﺭ ﻋﻤﻠﻜـﺮﺩ ﻭ ﻛـﺎﺭﺍﻳﻲ ﺍﻳﺠـﺎﺩ
ﻣﻲﻛﻨﻨﺪ؟
ﻋﻼﻭﻩ ﺑﺮ ﺁﻥ ،ﻧﺎﺣﻴﻪﻫﺎﻱ ﺩﺍﺩﻩﻫﺎﻱ ﺳﺮﺍﺳﺮﻱ ﻛﻪ ﺑـﺮﺍﻱ ﺍﻧﺘﻘـﺎﻝ ﺍﻃﻼﻋـﺎﺕ ﺑـﻪ ﻋﻨـﻮﺍﻥ ﺑﺨﺸـﻲ ﺍﺯ ﭘـﺮﺩﺍﺯﺵ ﻭﻗﻔـﻪ ﺍﺳـﺘﻔﺎﺩﻩ
ﻣﻲﺷﻮﻧﺪ ،ﺑﺎﻳﺪ ﺁﺯﻣﺎﻳﺶ ﺷﻮﻧﺪ ﺗﺎ ﭘﺘﺎﻧﺴﻴﻠﻲ ﺭﺍ ﺑﺮﺍﻱ ﺗﻮﻟﻴﺪ ﺍﺛﺮﺍﺕ ﺟﺎﻧﺒﻲ ﻣﺸﺨﺺ ﻛﻨﻨﺪ.
ﻧﻜﺎﺕ ﺍﺳﺘﺮﺍﺗﮋﻳﻚ
ﺩﺭ ﺍﺩﺍﻣﺔ ﺍﻳﻦ ﻓﺼﻞ ،ﻳﻚ ﺍﺳﺘﺮﺍﺗﮋﻱ ﺳﻴﺴﺘﻤﺎﺗﻴﻚ ﺑﺮﺍﻱ ﺁﺯﻣﺎﻳﺶ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﺭﺍﺋﻪ ﻣـﻲﮔـﺮﺩﺩ .ﺍﻣـﺎ ﺣﺘـﻲ ﺑﻬﺘـﺮﻳﻦ ﺍﺳـﺘﺮﺍﺗﮋﻱ ﺑـﺎ
ﺷﻜﺴﺖ ﺭﻭﺑﺮﻭ ﻣﻲﺷﻮﺩ ﺍﮔﺮ ﻳﻚ ﺳﺮﺳﻲ ﻣﻮﺍﺭﺩ ﻋﻤﺪﻩ ﻣﻮﺭﺩ ﺗﻮﺟﻪ ﻗﺮﺍﺭ ﻧﮕﻴﺮﻧﺪ TomGillb .ﺑﺤﺚ ﻣﻲﻛﻨﺪ ﻛﻪ ﻣـﻮﺍﺭﺩ ﺯﻳـﺮ
ﺑﺎﻳﺪ ﻣﻮﺭﺩ ﺗﻮﺟﻪ ﻗﺮﺍﺭ ﮔﻴﺮﻧﺪ ﺍﮔﺮ ﺍﺳﺘﺮﺍﺗﮋﻱ ﺁﺯﻣﺎﻳﺶ ﻣﻮﻓﻖ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻗﺮﺍﺭ ﺍﺳﺖ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﺷﻮﺩ:
-ﻣﺸﺨﺺ ﻧﻤﻮﺩﻥ ﻧﻴﺎﺯﻫﺎﻱ ﻣﺤﺼﻮﻝ ﺑﻪ ﺭﻭﺵ ﻛﻤﻲ ،ﻣﺪﺕ ﻃﻮﻻﻧﻲ ﻗﺒﻞ ﺍﺯ ﺷﺮﻭﻉ ﺁﺯﻣﺎﻳﺶ.
-ﺑﻴﺎﻥ ﺻﺮﻳﺢ ﺍﻫﺪﺍﻑ ﺁﺯﻣﺎﻳﺶ.
-ﺷﻨﺎﺳﺎﻳﻲ ﺧﺼﻮﺻﻴﺎﺕ ﻛﺎﺭﺑﺮﺍﻥ ﻧﺮﻡﺍﻓﺰﺍﺭ ﻭ ﺗﻮﺳﻌﺔ ﭘﺮﻭﻓﺎﻳﻠﻲ ﺑﺮﺍﻱ ﻫﺮ ﺩﺳﺘﻪﺑﻨﺪﻱ ﺍﺯ ﻛﺎﺭﺑﺮﺍﻥ.
-ﺗﻮﺳﻌﺔ ﻃﺮﺡ ﺁﺯﻣﺎﻳﺸﻲ ﻛﻪ ﺑﺮ " ﺩﻭﺭﺓ ﺳﺮﻳﻊ ﺁﺯﻣﺎﻳﺶ" ﺗﺄﻛﻴﺪ ﺩﺍﺭﺩ.
-ﻧﺮﻡﺍﻓﺰﺍﺭﻱ ﺗﻨﻮﻣﻨﺪ ﺍﻳﺠﺎﺩ ﺷﻮﺩ ﻛﻪ ﺑﺮﺍﻱ ﺁﺯﻣﺎﻳﺶ ﺧﻮﺩﺵ ﻃﺮﺍﺣﻲ ﺷﺪﻩ ﺑﺎﺷﺪ.
-ﺍﺯ ﻣﺮﻭﺭﻫﺎﻱ ﺗﻜﻨﻴﻜﻲ ﺭﺳﻤﻲ ﻣﺆﺛﺮ ،ﺑﻪ ﻋﻨﻮﺍﻥ ﻓﻴﻠﺘﺮ ،ﻗﺒﻞ ﺍﺯ ﺁﺯﻣﺎﻳﺶ ﺍﺳﺘﻔﺎﺩﻩ ﺷﻮﺩ.
-ﻣﺮﻭﺭﻫﺎﻱ ﺗﻜﻨﻴﻜﻲ ﺭﺳﻤﻲ ﺑﻪ ﮔﻮﻧﻪﺍﻱ ﻫﺪﺍﻳﺖ ﺷﻮﻧﺪ ﻛﻪ ﺑﻪ ﺍﺳﺘﺮﺍﺗﮋﻱ ﺁﺯﻣﺎﻳﺶ ﻭ ﺧﻮﺩ ﻧﻤﻮﻧـﻪ ﻫﺎیﻬـﺎﻱ ﺁﺯﻣـﺎﻳﺶ
ﺩﺳﺖ ﻳﺎﺑﻨﺪ.
-ﺭﻭﺷﻲ ﭘﻴﻮﺳﺘﻪ ﺑﺮﺍﻱ ﺍﺭﺗﻘﺎﺀ ﻓﺮﺁﻳﻨﺪ ﺁﺯﻣﺎﻳﺶ ﺗﻮﺳﻌﻪ ﺩﺍﺩﻩ ﺷﻮﺩ.
ﺭﻭﻳﻪﻫﺎﻱ ﺁﺯﻣﺎﻳﺶ ﻭﺍﺣﺪ
ﺁﺯﻣﺎﻳﺶ ﻭﺍﺣﺪ ﺑﻪ ﻃﻮﺭ ﻣﻌﻤﻮﻝ ﺑﺎ ﻣﺮﺣﻠﺔ ﻛﺪﻧﻮﻳﺴﻲ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﻲﺷﻮﺩ .ﭘﺲ ﺍﺯ ﺗﻮﺳﻌﺔ ﻛﺪ ﻣﺒﺪﺃ ،ﻣـﺮﻭﺭ ﺁﻥ ،ﻭ ﺑـﺎﺯﺑﻴﻨﻲ ﺁﻥ
ﺑﺮﺍﻱ ﺗﻄﺎﺑﻖ ﺑﺎ ﻃﺮﺍﺣﻲ ﺩﺭ ﺳﻄﺢ ﻣﺆﻟﻔﻪ ،ﻃﺮﺍﺣﻲ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﺁﺯﻣـﺎﻳﺶ ﻭﺍﺣـﺪ ﺷـﺮﻭﻉ ﻣـﻲﺷـﻮﺩ .ﻣـﺮﻭﺭ ﺍﻃﻼﻋـﺎﺕ ﻃﺮﺍﺣـﻲ،
ﺭﺍﻫﻨﻤﺎﻳﻲﻫﺎﻳﻲ ﺭﺍ ﺑﺮﺍﻱ ﺍﻳﺠﺎﺩ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﺁﺯﻣﺎﻳﺸﻲ ﻓﺮﺍﻫﻢ ﻣﻲﻛﻨﺪ ﻛﻪ ﺍﺣﺘﻤﺎﻻﹰ ﺧﻄﺎﻫﺎ ﺭﺍ ﺩﺭ ﻫـﺮ ﻳـﻚ ﺍﺯ ﺩﺳـﺘﻪﺑﻨـﺪﻱﻫـﺎﻱ
ﺑﺤﺚ ﺷﺪﻩ ﺁﺷﻜﺎﺭ ﻣﻲﻧﻤﺎﻳﻨﺪ ﻫﺮ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﺁﺯﻣﺎﻳﺶ ﺑﺎﻳﺪ ﺑﺎ ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ﻧﺘﺎﻳﺞ ﻣﻮﺭﺩ ﺍﻧﺘﻈﺎﺭ ﻫﻤﺮﺍﻩ ﺷﻮﺩ.
ﭼﻮﻥ ﻳﻚ ﻣﺆﻟﻔﻪ ،ﻳﻚ ﺑﺮﻧﺎﻣﺔ ﻣﺴﺘﻘﻞ ﻧﻤﻲﺑﺎﺷﺪ ،ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﺩﺍﺭﻩ ﻛﻨﻨﺪﻩ ﻭ stubﺑﺎﻳﺪ ﺑـﺮﺍﻱ ﻫـﺮ ﺁﺯﻣـﺎﻳﺶ ﻭﺍﺣـﺪ ﺗﻮﺳـﻌﻪ ﺩﺍﺩﻩ
ﺷﻮﻧﺪ .ﺍﻳﻦ ﻣﺤﻴﻂ ﺁﺯﻣﺎﻳﺶ ﻭﺍﺣﺪ ﺩﺭ ﺷﻜﻞ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ .ﺩﺭ ﺍﻛﺜﺮ ﻛﺎﺭﺑﺮﺩﻫﺎ ،ﺍﺩﺍﺭﻩ ﻛﻨﻨﺪﻩ ﭼﻴﺰﻱ ﺑﻴﺶ ﺍﺯ ﻳﻚ "ﺑﺮﻧﺎﻣـﻪ
ﺍﺻﻠﻲ" ﻧﻴﺴﺖ ﻛﻪ ﺩﺍﺩﻩﻫﺎﻱ ﻧﻤﻮﻧﻪ ﻫﺎﯼ ﻃﺮﺍﺣﻲ ﺭﺍ ﺩﺭﻳﺎﻓﺖ ﻣﻲﻛﻨﺪ ،ﺍﻳﻦ ﺩﺍﺩﻩﻫﺎ ﺭﺍ ﺑﻪ ﻣﺆﻟﻔﺔ ﻣـﻮﺭﺩ ﻧﻈـﺮ )ﻛـﻪ ﺑﺎﻳـﺪ ﺁﺯﻣـﺎﻳﺶ
ﺷﻮﺩ( ﺍﺭﺳﺎﻝ ﻣﻲﻛﻨﺪ ،ﻭ ﻧﺘﺎﻳﺞ ﺑﺪﺳﺖ ﺁﻣﺪﻩ ﺭﺍ ﭼﺎﭖ ﻣﻲﻛﻨﺪ stubﻫﺎ ﺑﺮﺍﻱ ﺟﺎﻳﮕﺰﻳﻦ ﺷﺪﻥ ﺑﺎ ﭘﻴﻤﺎﻧﻪﻫﺎﻳﻲ ﺍﻳﺠـﺎﺩ ﻣـﻲﺷـﻮﻧﺪ
ﻛﻪ ﺗﻮﺳﻂ ﻣﺆﻟﻔﺔ ﺩﺭ ﺣﺎﻝ ﺁﺯﻣﺎﻳﺶ ﻓﺮﺍﺧﻮﺍﻧﻲ ﻣﻲﺷﻮﻧﺪ .ﻳﻚ stubﻳﺎ " ﺯﻳﺮ ﺑﺮﻧﺎﻣـﻪ ﺳـﺎﺧﺘﮕﻲ " ﺑـﺎ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ﺭﺍﺑـﻂ ﭘﻴﻤﺎﻧـﺔ
ﻓﺮﺍﺧﻮﺍﻧﻲ ﺷﺪﻩ ،ﺣﺪﺍﻗﻞ ﺩﺳﺘﻜﺎﺭﻱ ﺑﺮ ﺭﻭﻱ ﺩﺍﺩﻩﻫﺎ ﺭﺍ ﺍﻧﺠﺎﻡ ﻣﻲﺩﻫﺪ ،ﻧﺘﻴﺠﺔ ﺑﺎﺯﺑﻴﻨﻲ ﻭﺭﻭﺩﻱ ﺭﺍ ﭼﺎﭖ ﻣﻲﻛﻨﺪ ،ﻭ ﻛﻨﺘـﺮﻝ ﺭﺍ ﺑـﻪ
ﭘﻴﻤﺎﻧﺔ ﺩﺭ ﺣﺎﻝ ﺁﺯﻣﺎﻳﺶ ﺑﺎﺯ ﻣﻲﮔﺮﺩﺍﻧﺪ.