the PDF Document

‫‪Afa ¬B√ …I‬‬
‫ﺗﻌﺮﻳﻒ ﭘﺮﻭﮊﻩ ﯼ ﺩﺭﺱ‬
‫ﺑﺮﻧﺎﻣﻪ ﺳﺎﺯﯼ ﭘﻴﺸﺮﻓﺘﻪ )‪(40244‬‬
‫ﻧﻴﻢ ﺳﺎﻝ ﺍﻭﻝ ‪81-80‬‬
‫ﻣﺪﺭﺱ‪ :‬ﺧﻮﺍﻧﺴﺎﺭﯼ‬
‫ﭼﻬﺎﺭ ﺻﻮﺭﺕ ﻣﺴﺄﻟﻪ ﺑﺮﺍﻱ ﺍﻧﺠﺎﻡ ﭘﺮﻭﮊﻩ ﺍﺟﺒﺎﺭﯼ ﺩﺭﺱ ﻭ ﭼﻬﺎﺭ ﭘﺮﻭﮊﻩ ﯼ ﺍﺿﺎﻓﻪ ﺑﻪ ﺻﻮﺭﺕ ﺍﻣﺘﻴﺎﺯﯼ‬
‫ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﺍﺳﺖ‪ .‬ﻣﻮﻋﺪ ﺗﺤﻮﻳﻞ ﭘﺮﻭﮊﻩ ﻫﺎ ﺩﺭ ‪ homepage‬ﺩﺭﺱ ﻣﺸﺨﺺ ﻣﯽ ﺷﻮﺩ‪ .‬ﻣﺤﺪﻭﺩﻳﺘﻲ ﺩﺭ ﺍﻧﺘﺨﺎﺏ‬
‫ﭘﺮﻭﮊﻫﻬﺎﯼ ﺍﺟﺒﺎﺭﯼ ﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ ﻭ ﭘﺮﻭﮊﻩ ﻫﺎﯼ ﺍﻣﺘﻴﺎﺯﯼ ﺍﺧﺘﻴﺎﺭﯼ ﻫﺴﺘﻨﺪ‪ .‬ﺗﺤﻮﻳﻞ ﭘﺮﻭﮊﻩ ﻫﺎ ﺑﻪ ﺷﻜﻞ‬
‫ﺣﻀﻮﺭﻱ ﺍﻧﺠﺎﻡ ﻣﻲ ﺷﻮﺩ‪ .‬ﺩﺭ ﺍﻧﺠﺎﻡ ﭘﺮﻭﮊﻩ ﺑﻪ ﻧﻜﺎﺕ ﺯﻳﺮ ﺗﻮﺟﻪ ﻛﻨﻴﺪ‪:‬‬
‫‪ .1‬ﻃﺮﺍﺣﻲ ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﺑﺎﻳﺪ ﺷﻴﺊ ﮔﺮﺍ ﺑﺎﺷﺪ‪ .‬ﺑﻪ ﺧﺼﻮﺹ ﺭﻭﻱ ﻃﺮﺍﺣﻲ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺐ ﻭﺭﺍﺛﺖ ﻭ‬
‫ﭼﻨﺪﺭﻳﺨﺘﻲ ﺩﻗﺖ ﻛﻨﻴﺪ‪ .‬ﺭﺳﻴﺪﮔﻲ ﺑﻪ ﺧﻄﺎﻫﺎ ﺭﺍ ﺍﺯ ﻃﺮﻳﻖ ‪ exception‬ﺍﻧﺠﺎﻡ ﺩﻫﻴﺪ‪ .‬ﺭﻋﺎﻳﺖ ﻧﻜﺎﺕ‬
‫ﭘﻴﻤﺎﻧﻪ ﺍﻱ ﻭ ﺍﻳﺪﻩ ﻫﺎﻱ ﻃﺮﺍﺣﻲ ﺩﺭ ﺍﺭﺯﺷﻴﺎﺑﻲ ﭘﺮﻭﮊﻩ ﺑﻪ ﺷﺪﺕ‬
‫ﺗﺄﺛﻴﺮ ﺩﺍﺭﺩ‪ .‬ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﻣﻜﺎﻧﺎﺕ ‪STL‬‬
‫ﺗﻮﺻﻴﻪ ﻣﻲ ﺷﻮﺩ‪.‬‬
‫‪ .2‬ﻣﺎﻫﻴﺖ ﺗﻤﺎﻡ ﭘﺮﻭﮊﻩ ﻫﺎ ﻃﻮﺭﻱ ﺍﺳﺖ ﻛﻪ ﻭﺍﺳﻂ ﻛﺎﺭﺑﺮ ﺟﺰﺀ ﻣﻬﻤﻲ ﺍﺯ ﺁﻧﻬﺎ ﺭﺍ ﺗﺸﻜﻴﻞ ﻣﻲ ﺩﻫﺪ‪ .‬ﺩﺭ‬
‫ﻃﺮﺍﺣﻲ ﺁﻥ ﺩﻗﺖ ﻛﻨﻴﺪ‪.‬‬
‫‪ .3‬ﺩﺭ ﺍﻧﺘﺨﺎﺏ ﻣﺤﻴﻂ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺁﺯﺍﺩ ﻫﺴﺘﻴﺪ ﻣﮕﺮ ﺩﺭ ﺗﻌﺮﻳﻒ ﭘﺮﻭﮊﻩ ﻗﻴﺪ ﺷﺪﻩ ﺑﺎﺷﺪ‪ .‬ﺯﺑﺎﻥ ﭘﻴﺎﺩﻩ‬
‫ﺳﺎﺯﻱ ﺍﻟﺰﺍﻣ ﹰﺎ ‪ C++‬ﺍﺳﺖ‪.‬‬
‫‪ .4‬ﺗﻌﺪﺍﺩ ﻧﻔﺮﺍﺕ ﺍﻧﺠﺎﻡ ﻫﺮ ﭘﺮﻭﮊﻩ ‪ 2‬ﻧﻔﺮ ﺍﺳﺖ‪ .‬ﻧﺤﻮﻩ ﻱ ﺗﻘﺴﻴﻢ ﻛﺎﺭ ﻭ ﺗﺴﻠﻂ ﺗﻤﺎﻡ ﺍﻋﻀﺎﻱ ﮔﺮﻭﻩ ﺑﺮ‬
‫ﺗﻤﺎﻡ ﻗﺴﻤﺘﻬﺎﻱ ﭘﺮﻭﮊﻩ‪ ،‬ﺑﻪ ﻫﻨﮕﺎﻡ ﺍﺭﺯﺷﻴﺎﺑﻲ ﻣﻮﺭﺩ ﺗﻮﺟﻪ ﻗﺮﺍﺭ ﻣﻲ ﮔﻴﺮﺩ‪ .‬ﺍﻧﺠﺎﻡ ﺗﻚ ﺗﻔﺮﻱ ﻳﻚ ﭘﺮﻭﮊﻩ‬
‫ﺍﻣﺘﻴﺎﺯﻱ ﻣﺤﺴﻮﺏ ﻧﻤﻲ ﺷﻮﺩ!‬
‫‪ .5‬ﺍﻧﺠﺎﻡ ﮐﺎﻣﻞ ﭘﺮﻭﮊﻩ ﯼ ﺍﻧﺘﺨﺎﺑﯽ ﻣﻮﺭﺩ ﺗﺄﮐﻴﺪ ﺍﺳﺖ‪ .‬ﻧﻴﻤﻪ ﺗﻤﺎﻡ ﻣﺎﻧﺪﻥ ﭘﺮﻭﮊﻩ )ﭼﻪ ﻭﺍﺳﻂ ﮐﺎﺭﺑﺮ ﻭ ﭼﻪ‬
‫ﮐﺎﺭﮐﺮﺩ ﻫﺎﯼ ﻣﺸﺨﺺ ﺷﺪﻩ ﺩﺭ ﺻﻮﺭﺕ ﭘﺮﻭﮊﻩ( ﺑﺎﻋﺚ ﺍﺯ ﺩﺳﺖ ﺩﺍﺩﻥ ﻗﺴﻤﺖ ﺯﻳﺎﺩﯼ ﺍﺯ ﻧﻤﺮﻩ ﯼ‬
‫ﭘﺮﻭﮊﻩ ﺧﻮﺍﻫﺪ ﺷﺪ‪.‬‬
‫‪ .6‬ﺍﻓﺮﺍﺩ)ﮔﺮﻭﻩ ﻫﺎ(ﻳﯽ ﮐﻪ ﭘﺮﻭﮊﻩ ﯼ ﺍﻣﺘﻴﺎﺯﯼ ﺭﺍ ﺍﻧﺠﺎﻡ ﻣﯽ ﺩﻫﻨﺪ ﺣﺘﻤﹰﺎ ﻻﺯﻡ ﺍﺳﺖ ﻳﮑﯽ ﺍﺯ ﭘﺮﻭﮊﻩ ﻫﺎﯼ‬
‫ﺍﺟﺒﺎﺭﯼ ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﺍﺩﻩ ﺑﺎﺷﻨﺪ‪.‬‬
‫‪ .7‬ﺩﺭ ﻣﻮﺭﺩ ﭼﮕﻮﻧﮕﻲ ﻭ ﺣﺠﻢ ﻣﺴﺘﻨﺪﺍﺕ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﺑﺮﺍﻱ ﺗﺤﻮﻳﻞ ﭘﺮﻭﮊﻩ‪ ،‬ﻣﺘﻌﺎﻗﺒﹰﺎ ﺍﺯ ﻃﺮﻳﻖ ﻟﻴﺴﺖ ﭘﺴﺖ‬
‫ﺍﻟﻜﺘﺮﻭﻧﻴﻚ ﻭ ﻳﺎ ‪ homepage‬ﺩﺭﺱ ﺍﻃﻼﻋﺎﺕ ﻻﺯﻡ ﺍﺭﺍﺋﻪ ﻣﻲ ﺷﻮﺩ‪.‬‬
‫‪ .8‬ﻧﮑﺎﺕ ﺍﺿﺎﻓﻪ ﺩﺭ ﻣﻮﺭﺩ ﺟﺰﻳﻴﺎﺕ ﻣﺮﺑﻮﻁ ﺑﻪ ﭘﺮﻭﮊﻩ ﻫﺎ ﻭ ﺗﻐﻴﻴﺮﺍﺕ ﻣﺤﺘﻤﻞ ﺩﺭ ﺻﻮﺭﺕ ﻣﺴﺄﻟﻪ ﻭ ﺭﻓﻊ‬
‫ﺍﺑﻬﺎﻡ ﺩﺭ ﻣﻮﺭﺩ ﭘﺮﻭﮊﻩ ﻫﺎ ﺩﺭ ‪ mailinglist‬ﺩﺭﺱ ﻣﻨﻌﮑﺲ ﻣﯽ ﺷﻮﺩ‪.‬‬
‫‪ .9‬ﺍﻧﺠﺎﻡ ﮐﺎﻣﻞ ﭘﺮﻭﮊﻩ ﻫﺎ ﺩﺭﺱ ‪ 5‬ﻧﻤﺮﻩ ﺍﺯ ‪ 20‬ﻧﻤﺮﻩ ﯼ ﭘﺎﻳﺎﻥ ﺗﺮﻡ ﺭﺍ ﺗﺸﮑﻴﻞ ﻣﯽ ﺩﻫﺪ‪ .‬ﺍﻧﺠﺎﻡ ﮐﺎﻣﻞ ﻫﺮ‬
‫ﭘﺮﻭﮊﻩ ﯼ ﺍﻣﺘﻴﺎﺯﯼ ﺗﺎ ﺳﻘﻒ ‪ 2‬ﻧﻤﺮﻩ ﻣﯽ ﺗﻮﺍﻧﺪ ﺑﻪ ﻧﻤﺮﻩ ﺍﺯ ‪ 20‬ﺍﺿﺎﻓﻪ ﮐﻨﺪ‪.‬‬
‫‪ .10‬ﺗﻮﺿﻴﺤﺎﺕ ﺷﻔﺎﻫﯽ ﺩﺭ ﻣﻮﺭﺩ ﭘﺮﻭﮊﻩ ﻫﺎﯼ ﺫﮐﺮ ﺷﺪﻩ ﭘﺲ ﺍﺯ ﺧﺎﺗﻤﻪ ﯼ ﺍﻣﺘﺤﺎﻥ ﭘﺎﻳﺎﻥ ﺗﺮﻡ ﻭ ﺳﺮ‬
‫ﺟﻠﺴﻪ ﯼ ﺍﻣﺘﺤﺎﻥ ﺍﺭﺍﺋﻪ ﻣﯽ ﺷﻮﺩ‪.‬‬
‫‪1‬‬
YML ‫ – ﻭﻳﺮﺍﻳﺸﮕﺮ‬1 ‫ﭘﺮﻭﮊﻩ ﻱ‬
‫ ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺯﻳﺮﻣﺠﻤﻮﻋﻪ ﺍﻱ ﺳﺎﺩﻩ‬.‫ ﺑﺮﺍﻱ ﺗﻮﺻﻴﻒ ﻣﺴﺘﻨﺪﺍﺕ ﺳﺎﺧﺖ ﻳﺎﻓﺘﻪ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﺷﻮﺩ‬XML ‫ﺯﺑﺎﻥ‬
‫ ﻫﺪﻑ ﭘﺮﻭﮊﻩ ﻧﻮﺷﺘﻦ ﻳﻚ ﻭﻳﺮﺍﻳﺸﮕﺮ ﺑﺮﺍﻱ ﺍﻳﻦ ﺯﺑﺎﻥ‬.‫ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﻣﻲ ﮔﻴﺮﻳﻢ‬YML ‫ﺷﺪﻩ ﺍﺯ ﺍﻳﻦ ﺯﺑﺎﻥ ﺑﻪ ﻧﺎﻡ‬
:‫ ﺗﻌﺮﻳﻒ ﺗﻌﺪﺍﺩﻱ ﭘﺮﻭﮊﻩ ﺑﺮﺍﻱ ﻳﻚ ﺩﺭﺱ ﺍﺳﺖ‬،‫ ﻧﻮﺷﺘﻪ ﺷﺪﻩ‬YML ‫ ﺑﻪ ﻋﻨﻮﺍﻥ ﻧﻤﻮﻧﻪ ﻣﺘﻦ ﺯﻳﺮ ﻛﻪ ﺑﻪ‬.‫ﺍﺳﺖ‬
<TermProject>
<Course> Programming in C++ </Course>
<Teacher> Mohammad Khansari </Teacher>
<DueDate> 80/11/11 </DueDate>
<Introduction>
There are four problems defined from which you can select
one as your final project ...
</Introduction>
<Project>
<Title> A simple YML editor </Title>
<Description>
XML is a language for describing structured documents ...
</Description>
</Project>
<Project>
<Title> A simple logic design environment </Title>
<Description>
Some text describing the second project ...
</Description>
<Comments>
A graphical user interface is required for your program
</Comments>
</Project>
<Project>
<Title> A simple embedded DBMS </Title>
<Description>
Some text describing the third project ...
</Description>
</Project>
<Project>
<Title> A simple CASE tool for refactoring </Title>
<Description>
Some text describing the fourth project ...
</Description>
</Project>
</TermProject>
‫ ﻫﺮ‬.‫ ﺍﺯ ﺗﻌﺪﺍﺩﯼ ﻋﻨﺼﺮ ﺗﺸﮑﻴﻞ ﺷﺪﻩ ﺍﺳﺖ‬XML ‫ ﻫﺮ ﻣﺘﻦ ﺩﺭ‬،‫ﻫﻤﺎﻥ ﮔﻮﻧﻪ ﮐﻪ ﺍﺯ ﻣﺘﻦ ﻓﻮﻕ ﻣﺸﺨﺺ ﺍﺳﺖ‬
‫ ﻧﻤﻮﻧﻪ ﻫﺎﻳﯽ ﺍﺯ ﻋﻨﺎﺻﺮ ﺩﺭ ﻣﺘﻦ‬.‫( ﺁﻏﺎﺯ ﻭ ﻳﮏ ﺑﺮﭼﺴﺐ ﭘﺎﻳﺎﻥ ﻣﺸﺨﺺ ﻣﯽ ﺷﻮﺩ‬tag) ‫ﻋﻨﺼﺮ ﺑﺎ ﻳﮏ ﺑﺮﭼﺴﺐ‬
. DueDate ‫ ﻳﺎ‬،Description ،Project ‫ﻓﻮﻕ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ‬
ElementName
‫< ﺍﺳﺖ ﮐﻪ ﺩﺭ ﺁﻥ‬ElementName> Some text </ElementName> ‫ﻫﺮ ﻋﻨﺼﺮ ﺑﻪ ﺷﮑﻞ‬
‫ ﺗﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ ﻫﺮ ﻋﻨﺼﺮ ﺑﺎﻳﺪ ﻳﮏ ﺑﺮﭼﺴﺐ ﺁﻏﺎﺯﻳﻦ ﻭ ﻳﮏ ﺑﺮﭼﺴﺐ‬.‫ﺍﺳﻢ ﻫﻤﺎﻥ ﻋﻨﺼﺮ ﻣﻮﺭﺩ ﻧﻈﺮ ﺍﺳﺖ‬
‫ ﻋﻨﺎﺻﺮ ﻣﯽ ﺗﻮﺍﻧﻨﺪ ﺗﻮﺩﺭﺗﻮ ﺑﺎﺷﻨﺪ ﻭ ﺍﺯ ﺍﻳﻦ ﻃﺮﻳﻖ ﻳﮏ ﺳﺎﺧﺘﺎﺭ ﺳﻠﺴﻠﻪ ﻣﺮﺍﺗﺒﯽ ﺍﻳﺠﺎﺩ‬.‫ﭘﺎﻳﺎﻧﯽ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ‬
.‫ ﺍﻳﻦ ﺳﺎﺧﺘﺎﺭ ﺣﺘﻤ ﹰﺎ ﺑﻪ ﺷﮑﻞ ﺩﺭﺧﺖ ﺍﺳﺖ ﺑﺪﻳﻦ ﻣﻌﻨﯽ ﮐﻪ ﮐﻞ ﻣﺘﻦ ﺩﺭ ﻳﮏ ﻋﻨﺼﺮ ﺭﻳﺸﻪ ﻗﺮﺍﺭ ﻣﯽ ﮔﻴﺮﺩ‬.‫ﮐﻨﻨﺪ‬
2
‫ﻧﺎﻡ ﻫﺮ ﻋﻨﺼﺮ ﻓﻘﻂ ﺷﺎﻣﻞ ﺣﺮﻭﻑ ﺍﻟﻔﺒﺎ ﺍﺳﺖ ﻭ ﻋﻼﻣﺎﺕ ﻭ ﺍﺭﻗﺎﻡ ﺩﺭ ﺁﻥ ﻭﺟﻮﺩ ﻧﺪﺍﺭﻧﺪ‪ .‬ﻫﻢ ﭼﻨﻴﻦ ﺣﺮﻭﻑ‬
‫ﮐﻮﭼﮏ ﻭ ﺑﺰﺭﮒ ﺑﺎ ﻳﮑﺪﻳﮕﺮ ﻣﺘﻔﺎﻭﺕ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮﻧﺪ‪ .‬ﺗﻮﺟﻪ ﮐﻨﻴﺪ ﮐﻪ ﻫﻴﭻ ﻋﻨﺼﺮ ﺍﺯ ﭘﻴﺶ ﺗﻌﻴﻴﻦ ﺷﺪﻩ‬
‫ﺍﯼ ﺩﺭ ﺍﻳﻦ ﺯﺑﺎﻥ ﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ‪.‬‬
‫ﻗﻮﺍﻋﺪ ﺩﺭﺳﺘﯽ ﺳﺎﺧﺘﺎﺭ ﻳﮏ ﻣﺘﻦ ‪ YML‬ﺗﻮﺳﻂ ﻣﺘﻦ ﺩﻳﮕﺮﯼ ﻣﺸﺨﺺ ﻣﯽ ﺷﻮﺩ ﮐﻪ ﺣﺎﻭﯼ ﺳﺎﺧﺘﺎﺭﯼ ﺷﺒﻴﻪ ﺑﻪ‬
‫ﮔﺮﺍﻣﺮ ﻫﺎﯼ ﻣﺴﺘﻘﻞ ﺍﺯ ﻣﺘﻦ ﺍﺳﺖ‪).‬ﺑﺮﺍﯼ ﺯﺑﺎﻥ ‪ XML‬ﺍﻳﻦ ﻧﻘﺶ ﺗﻮﺳﻂ ‪ DTD‬ﺍﻳﻔﺎ ﻣﯽ ﺷﻮﺩ‪ (.‬ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺜﺎﻝ‬
‫ﺳﺎﺧﺘﺎﺭ ﻣﺘﻦ ﻓﻮﻕ ﺑﺪﻳﻦ ﺻﻮﺭﺕ ﺗﻮﺻﻴﻒ ﻣﯽ ﺷﻮﺩ‪:‬‬
‫‪TermProject -> Course,Teacher,DueDate,Introduction,Project+‬‬
‫‪Course -> TEXT‬‬
‫‪Teacher -> TEXT‬‬
‫‪DueDate -> TEXT‬‬
‫‪Introduction -> TEXT‬‬
‫?‪Project -> Title,Description,Comments‬‬
‫‪Title -> TEXT‬‬
‫‪Comments -> TEXT‬‬
‫ﻫﺮ ﻗﺎﻋﺪﻩ ﺩﺍﺭﺍﯼ ﻳﮏ ﺳﻤﺖ ﭼﭗ ﺍﺳﺖ ﮐﻪ ﻧﺎﻡ ﻳﮏ ﻋﻨﺼﺮ ﺭﺍ ﻣﺸﺨﺺ ﻣﺲ ﮐﻨﺪ ﻭ ﻳﮏ ﺳﻤﺖ ﺭﺍﺳﺖ ﮐﻪ‬
‫ﺳﺎﺧﺘﺎﺭ ﺁﻥ ﻋﻨﺼﺮ ﺭﺍ ﺗﻮﺻﻴﻒ ﻣﯽ ﮐﻨﺪ ﻭ ﺍﻳﻦ ﺩﻭ ﺑﺎ ﻧﻤﺎﺩ >‪ -‬ﺍﺯ ﻫﻢ ﺟﺪﺍ ﻣﯽ ﺷﻮﻧﺪ‪ .‬ﺑﻪ ﺍﺯﺍﯼ ﻫﺮ ﻋﻨﺼﺮ ﻓﻘﻂ‬
‫ﻳﮏ ﻗﺎﻋﺪﻩ ﺩﺍﺭﻳﻢ ‪ .‬ﺳﻤﺖ ﺭﺍﺳﺖ ﻫﺮ ﻗﺎﻋﺪﻩ ﺍﺯ ﺗﺮﮐﻴﺐ ﺗﻌﺪﺍﺩﯼ ﻋﻨﺼﺮ ﺩﻳﮕﺮ ﺗﺸﮑﻴﻞ ﻣﯽ ﺷﻮﺩ‪ .‬ﺍﻳﻦ ﺗﺮﮐﻴﺐ‬
‫ﺗﻮﺳﻂ ﻋﻤﻠﮕﺮﻫﺎﯼ ﺯﻳﺮ ﺍﻧﺠﺎﻡ ﻣﯽ ﺷﻮﺩ‪:‬‬
‫•‬
‫*‪ X?, X+, X‬ﺑﻪ ﺗﺮﺗﻴﺐ ﺑﻪ ﻣﻌﻨﯽ ﺗﮑﺮﺍﺭ ﺻﻔﺮ ﻳﺎ ﺑﻴﺸﺘﺮ‪ ،‬ﺗﮑﺮﺍﺭ ﻳﮏ ﻳﺎ ﺑﻴﺸﺘﺮ ﻭ ﺗﮑﺮﺍﺭ ﺻﻔﺮ ﻳﺎ ﻳﮏ ﺍﺯ‬
‫ﻋﻨﺼﺮ ‪ X‬ﻫﺴﻨﺘﺪ‪.‬‬
‫•‬
‫‪ X,Y‬ﺑﻪ ﻣﻌﻨﯽ ﻋﻨﺼﺮ ‪ X‬ﻭ ﻋﻨﺼﺮ ‪) Y‬ﺑﻪ ﺩﻧﺒﺎﻝ ﻫﻢ( ﺍﺳﺖ‪.‬‬
‫•‬
‫‪ X|Y‬ﺑﻪ ﻣﻌﻨﯽ ﻋﻨﺼﺮ ‪ X‬ﻳﺎ ﻋﻨﺼﺮ ‪) Y‬ﻳﮑﯽ ﺍﺯ ﺍﻳﻦ ﺩﻭ ﻋﻨﺼﺮ( ﺍﺳﺖ‪.‬‬
‫ﺍﻭﻟﻮﻳﺖ ﺍﻳﻦ ﻋﻤﻠﮕﺮ ﻫﺎ ﺑﻪ ﺗﺮﺗﻴﺐ ﮔﺮﻭﻩ ﻫﺎﯼ ﻣﻄﺮﺡ ﺷﺪﻩ ﺩﺭ ﺑﺎﻻ ﻭ ﺩﺭ ﻣﻮﺭﺩ ﻋﻤﻠﮕﺮﻫﺎﯼ ﻫﻢ ﮔﺮﻭﻩ ﺍﺯ ﭼﭗ ﺑﻪ‬
‫ﺭﺍﺳﺖ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮﺩ‪ .‬ﺑﺮﺍﯼ ﺗﻌﻴﻴﻦ ﺩﺭﺳﺖ ﺳﺎﺧﺘﺎﺭ ﻣﻤﮑﻦ ﺍﺳﺖ ﻣﺠﺒﻮﺭ ﺑﻪ ﭘﺮﺍﻧﺘﺰﮔﺬﺍﺭﯼ ﺷﻮﻳﻢ‪.‬‬
‫ﺳﻤﺖ ﺭﺍﺳﺖ ‪ TEXT‬ﺑﻪ ﻣﻌﻨﯽ ﻣﺘﻦ ﺍﺳﺖ ﮐﻪ ﺑﺮﺍﯼ ﺑﺮﮒ ﻫﺎﯼ ﺳﺎﺧﺘﺎﺭ ﺩﺭ ﻧﻈﺮﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮﺩ‪ .‬ﻗﺎﻋﺪﻩ ﯼ ﺍﻭﻝ‬
‫ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﺭﻳﺸﻪ ﯼ ﺩﺭﺧﺖ ﻋﻨﺎﺻﺮ ﺩﺭ ﻣﺘﻦ ‪ YML‬ﺍﺳﺖ‪.‬‬
‫ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺑﺎﻳﺪ ﻳﮏ ﺑﺮﻧﺎﻣﻪ ﯼ ﻭﻳﺮﺍﻳﺸﮕﺮ ﺑﺮﺍﯼ ﻣﺘﻮﻥ ‪ YML‬ﺑﻨﻮﻳﺴﻴﺪ‪ .‬ﭘﻴﺶ ﺍﺯ ﻭﻳﺮﺍﻳﺶ ‪ ،‬ﮐﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺮﺍﯼ‬
‫ﻣﺘﻦ ﺧﻮﺩ ﭘﺮﻭﻧﺪﻩ ﯼ ﺣﺎﻭﯼ ﻗﻮﺍﻋﺪ ﻣﺘﻦ ﺭﺍ ﻣﻌﺮﻓﯽ ﮐﻨﺪ‪ .‬ﺩﺭ ﻫﺮ ﺧﻂ ﺍﻳﻦ ﭘﺮﻭﻧﺪﻩ ﻳﮏ ﻭ ﻓﻘﻂ ﻳﮏ ﻗﺎﻋﺪﻩ ﻭﺟﻮﺩ‬
‫ﺩﺍﺭﺩ‪ .‬ﻣﻤﮑﻦ ﺍﺳﺖ ﺩﺭ ﺑﻴﻦ ﺍﺟﺰﺍﯼ ﺁﻥ ﺗﻌﺪﺍﺩ ﺩﻟﺨﻮﺍﻫﯽ ﻓﺎﺻﻠﻪ ﯼ ﺧﺎﻟﯽ ﺑﺎﺷﺪ‪ .‬ﭘﺲ ﺍﺯ ﺁﻥ ﮐﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺘﻮﺍﻧﺪ ﺩﺭ‬
‫ﻳﮏ ﺻﻔﺤﻪ ﯼ ﻭﻳﺮﺍﻳﺸﮕﺮ ﻳﮏ ﻣﺘﻦ ‪ YML‬ﺭﺍ ﺍﻳﺠﺎﺩ ﻭ ﻳﺎ ﺍﺯ ﻳﮏ ﭘﺮﻭﻧﺪﻩ ﯼ ﻣﻮﺟﻮﺩ ﺑﺨﻮﺍﻧﺪ‪ .‬ﺍﻣﮑﺎﻥ ﺫﺧﻴﺮﻩ ﺳﺎﺯﯼ‬
‫ﻧﻴﺰ ﻻﺯﻡ ﺍﺳﺖ‪ .‬ﻫﻨﮕﺎﻡ ﻧﻮﺷﺘﻦ ﻣﺘﻦ ‪ YML‬ﻭﻳﺮﺍﻳﺸﮕﺮ ﺑﺎﻳﺪ ﻣﺪﺍﻭﻣﹰﺎ ﺩﺭﺳﺘﯽ ﻣﺘﻦ ﺭﺍ ﺍﺯ ﺭﻭﯼ ﻗﻮﺍﻋﺪ ﺩﺭﺳﺘﯽ‬
‫ﮐﻨﺘﺮﻝ ﮐﻨﺪ‪ .‬ﺑﻪ ﺍﻳﻦ ﻣﻨﻈﻮﺭ ﻫﻨﮕﺎﻡ ﺍﻳﺠﺎﺩ ﻳﮏ ﻋﻨﺼﺮ ﺟﺪﻳﺪ ﺩﺭ ﻣﺘﻦ ‪ ،‬ﻭﻳﺮﺍﻳﺸﮕﺮ ﺑﺎﻳﺪ ﺍﺯ ﺭﻭﯼ ﺗﮓ ﺁﻏﺎﺯ ﺗﮓ ﭘﺎﻳﺎﻥ‬
‫ﺭﺍ ﻧﻴﺰ ﺗﻮﻟﻴﺪ ﮐﻨﺪ ﺩﺭ ﺻﻮﺭﺗﻴﮑﻪ ﻋﻨﺼﺮ ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﻧﺎ ﺷﻨﺎﺧﺘﻪ ﺑﺎﺷﺪ ﻭ ﻳﺎ ﺩﺭ ﺁﻥ ﻣﺤﻞ ﻣﺠﺎﺯ ﻧﺒﺎﺷﺪ ‪،‬‬
‫ﻭﻳﺮﺍﻳﺸﮕﺮ ﺑﺎﻳﺪ ﮐﺎﺭﺑﺮ ﺭﺍ ﻣﻄﻠﻊ ﮐﺮﺩﻩ ﻭ ﺍﺯ ﺍﻳﻦ ﮐﺎﺭ ﺟﻠﻮﮔﻴﺮﯼ ﮐﻨﺪ‪ .‬ﺩﺭ ﻫﺮ ﻧﻘﻄﻪ ﺍﺯ ﻣﺘﻦ ﮐﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺘﻮﺍﻧﺪ ﺍﺯ‬
‫ﻭﻳﺮﺍﻳﺸﮕﺮ ‪ ،‬ﻋﻨﺎﺻﺮ ﻣﺠﺎﺯ ﺩﺭ ﺁﻥ ﻧﻘﻄﻪ ﺭﺍ ﺳﺆﺍﻝ ﮐﻨﺪ‪ .‬ﮐﺎﺭﺑﺮ ﺑﺎﻳﺪ ﻗﺎﺑﻠﻴﺖ ﺩﻳﺪﻥ ﻗﻮﺍﻋﺪ ﺭﺍ ﻧﻴﺰ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ‪.‬‬
‫‪3‬‬
‫ﻫﻢ ﭼﻨﻴﻦ ﺗﻌﺒﻴﻪ ﯼ ﻳﮏ ﻭﻳﺮﺍﻳﺸﮕﺮ ﺑﺮﺍﯼ ﻭﻳﺮﺍﻳﺶ ﻗﻮﺍﻋﺪ ﻧﻴﺰ ﺍﮐﻴﺪﹰﺍ ﺗﻮﺻﻴﻪ ﻣﯽ ﺷﻮﺩ‪) .‬ﺩﻗﺖ ﮐﻨﻴﺪ ﮐﻪ ﺍﮔﺮ‬
‫ﺳﺎﺧﺘﺎﺭ ﻗﻮﺍﻋﺪ‬
‫ﺭﺍ ﻧﻴﺰ ﺗﻮﺳﻂ ﻣﺠﻤﻮﻋﻪ ﺍﯼ ﺍﺯ ﻗﻮﺍﻋﺪ ﺗﻮﺻﻴﻒ ﮐﻨﻴﺪ‪ ،‬ﺍﻳﻦ ﮐﺎﺭ ﺍﺯ ﻃﺮﻳﻖ ﺧﻮﺩ ﻭﻳﺮﺍﻳﺸﮕﺮ ‪YML‬‬
‫ﻣﻤﮑﻦ ﺍﺳﺖ!(‬
‫ﺍﻳﺠﺎﺩ ﺍﻣﮑﺎﻧﺎﺕ ﻣﻔﻴﺪ ﺩﺭ ﻭﺍﺳﻂ ﮐﺎﺭﺑﺮ ﺩﺭ ﺍﺭﺯﺷﻴﺎﺑﯽ ﭘﺮﻭﮊﻩ ﻣﻔﻴﺪ ﺍﺳﺖ‪ .‬ﺍﺯ ﺟﻤﻠﻪ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻗﻠﻢ ﻫﺎ ﻭ ﺭﻧﮓ‬
‫ﻫﺎﯼ ﻣﺘﻔﺎﻭﺕ ﺑﺮﺍﯼ ﺗﮓ ﻫﺎ‪ ،‬ﺷﮑﺴﺘﻦ ﺧﻮﺩﮐﺎﺭ ﺧﻄﻮﻁ‪ ،‬ﺩﻧﺪﺍﻧﻪ ﮔﺬﺍﺭﯼ ﺧﻮﺩﮐﺎﺭ ﻣﺘﻦ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺳﺎﺧﺘﺎﺭ‬
‫ﻋﻨﺎﺻﺮ ﻭ ﻳﺎ ﺍﻣﮑﺎﻥ ﺣﺮﮐﺖ ﺭﻭﯼ ﻣﺘﻦ ﺍﺯ ﺭﻭﯼ ﺳﺎﺧﺘﺎﺭ ﺩﺭﺧﺘﯽ ﻋﻨﺎﺻﺮ ﮐﻪ ﺩﺭ ﮐﻨﺎﺭ ﻣﺘﻦ ﺗﻌﺒﻴﻪ ﻣﯽ ﺷﻮﺩ‪.‬‬
‫ﺍﻧﺠﺎﻡ ﮐﺎﻣﻞ ﻗﺴﻤﺖ ﺍﺟﺒﺎﺭﯼ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺑﻴﺶ ﺍﺯ ﺳﺎﻳﺮ ﭘﺮﻭﮊﻩ ﻫﺎ ﯼ ﺍﺟﺒﺎﺭﯼ ﻧﻤﺮﻩ ﺧﻮﺍﻫﺪ ﺩﺍﺷﺖ‪.‬‬
‫ﭘﺮﻭﮊﻩ ﻱ ‪ – 2‬ﻣﺤﻴﻂ ﻃﺮﺍﺣﯽ ﻣﺪﺍﺭﻫﺎﯼ ﻣﻨﻄﻘﯽ ﺳﺎﺩﻩ‬
‫ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺑﺎﻳﺪ ﻣﺤﻴﻄﯽ ﺑﺮﺍﯼ ﻃﺮﺍﺣﯽ ﻭ ﺷﺒﻴﻪ ﺳﺎﺯﯼ ﻣﺪﺍﺭﻫﺎﯼ ﻣﻨﻄﻘﯽ ﺳﺎﺩﻩ ﺍﻳﺠﺎﺩ ﮐﻨﻴﺪ‪ .‬ﺑﺮﻧﺎﻣﻪ ﯼ ﺷﻤﺎ‬
‫ﺑﺎﻳﺪ ﺗﻌﺪﺍﺩﯼ ﻋﻨﺼﺮ ﻣﻨﻄﻘﯽ ﺭﺍ ﺑﺮﺍﯼ ﻃﺮﺍﺣﯽ ﻣﺪﺍﺭ ﺩﺭ ﺍﺧﺘﻴﺎﺭ ﮐﺎﺭﺑﺮ ﻗﺮﺍﺭ ﺩﻫﺪ‪ .‬ﺍﻳﻦ ﻣﺠﻤﻮﻋﻪ ﺑﺎﻳﺪ ﺣﺪﺍﻗﻞ ﺷﺎﻣﻞ‬
‫ﮔﻴﺖ ﻫﺎﯼ ‪) xor, or, and, not‬ﮔﻴﺖ ﻫﺎﯼ ‪ or‬ﻭ ‪ and‬ﻫﺮ ﻳﮏ ﺑﺎ ﺩﻭ ﻳﺎ ﺳﻪ ﻭﺭﻭﺩﯼ( ‪،‬‬
‫)‪Multiplexer (4/1 & 8/1‬‬
‫‪ Decoder( 2/4 & 4/16)،‬ﻭ ‪ Encoder‬ﻭ ‪ DeMux‬ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﺁﻧﻬﺎ‪ ،‬ﻭ ﻓﻠﻴﭗ ﻓﻼﭖ ﻫﺎﯼ ‪ D‬ﻭ ‪ T‬ﺑﺎﺷﺪ‪).‬ﺗﻤﺎﻡ ﻋﻨﺎﺻﺮ‬
‫ﺫﮐﺮ ﺷﺪﻩ ﺑﺎﻳﺪ ﺩﺍﺭﺍﯼ ﻳﮏ ﭘﺎﻳﻪ ﯼ ‪ enable‬ﺑﺎﺷﻨﺪ‪ (.‬ﮐﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺘﻮﺍﻧﺪ ﺗﻌﺪﺍﺩﯼ ﺍﺯ ﻋﻨﺎﺻﺮ ﻣﺬﮐﻮﺭ ﺭﺍ ﺍﻧﺘﺨﺎﺏ‬
‫ﮐﺮﺩﻩ ﻭ ﺍﺗﺼﺎﻻﺕ ﺑﻴﻦ ﺁﻥ ﻫﺎ ﺭﺍ ﺑﺮﻗﺮﺍﺭ ﮐﻨﺪ‪ .‬ﻫﻢ ﭼﻨﻴﻦ ﺑﺎﻳﺪ ﻋﻨﺎﺻﺮﯼ ﺑﺮﺍﯼ ﻭﺭﻭﺩﯼ ﻭ ﺧﺮﻭﺟﯽ ﻣﺪﺍﺭ ﺗﻮﺳﻂ‬
‫ﺑﺮﻧﺎﻣﻪ ﺍﺭﺍﺋﻪ ﺷﻮﺩ‪ .‬ﺳﺎﻋﺖ ﺗﻤﺎﻡ ﻋﻨﺎﺻﺮ ﻳﮑﺴﺎﻥ ﺍﺳﺖ ﻭ ﻣﺪﺍﺭ ﺩﺍﺭﺍﯼ ‪ feedback‬ﻧﻴﺴﺖ‪ .‬ﮐﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺘﻮﺍﻧﺪ ﻣﺪﺍﺭ‬
‫ﺭﺍ ﺩﺭ ﺻﻮﺭﺕ ﻭﺟﻮﺩ ﻋﻨﺎﺻﺮ ﺗﺮﺗﻴﺒﯽ‪ ،‬ﺑﻪ ﺻﻮﺭﺕ ﮔﺎﻡ ﺑﻪ ﮔﺎﻡ ﺷﺒﻴﻪ ﺳﺎﺯﯼ ﮐﻨﺪ‪ .‬ﺗﻌﻴﻴﻦ ﻣﻘﺎﺩﻳﺮ ﻭﺭﻭﺩﯼ ﻫﺎ ﻳﺎ‬
‫ﺍﺯ ﻃﺮﻳﻖ ﺍﺭﺍﺋﻪ ﯼ ﺷﮑﻞ ﻣﻮﺝ ﺁﻥ ﻫﺎ ﻳﺎ ﺑﺎ ﺗﻐﻴﻴﺮ ﻣﻘﺪﺍﺭ ﺁﻥ ﻫﺎ ﺩﺭ ﻫﺮ ﮔﺎﻡ ﺷﺒﻴﻪ ﺳﺎﺯﯼ ﺍﻧﺠﺎﻡ ﻣﯽ ﺷﻮﺩ‪.‬‬
‫ﺧﺮﻭﺟﯽ ﻫﺎﯼ ﻣﺪﺍﺭ ﻫﻢ ﺑﺎﻳﺪ ﺑﺎ ﺭﻭﺵ ﻣﺸﺎﺑﻬﯽ ﺍﺭﺍﺋﻪ ﺷﻮﻧﺪ‪ .‬ﮐﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺘﻮﺍﻧﺪ ﻣﺪﺍﺭ ﻃﺮﺍﺣﯽ ﺷﺪﻩ ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ‬
‫ﻳﮏ ﻋﻨﺼﺮ ﻣﻨﻄﻘﯽ ﺟﺪﻳﺪ ﺫﺧﻴﺮﻩ ﮐﻨﺪ ﻭ ﺩﺭ ﻣﺪﺍﺭﻫﺎﯼ ﺩﻳﮕﺮ ﺍﺯ ﺁﻥ ﺍﺳﺘﻔﺎﺩﻩ ﮐﻨﺪ‪ .‬ﻋﻨﺼﺮ ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﺑﻪ ﺍﻳﻦ‬
‫ﺷﮑﻞ‪ ،‬ﺩﺍﺭﺍﯼ ﭘﺎﻳﻪ ﻫﺎﻳﯽ ﺑﻪ ﺍﺯﺍﯼ ﻫﺮ ﻳﮏ ﺍﺯ ﻭﺭﻭﺩﯼ ﻫﺎ ﻭ ﺧﺮﻭﺟﯽ ﻫﺎﯼ ﻣﺪﺍﺭ ﺁﻥ ﺍﺳﺖ‪ .‬ﺍﻳﻦ ﺑﺮﻧﺎﻣﻪ ﺣﺘﻤ ﹰﺎ ﺑﺎﻳﺪ‬
‫ﺩﺭ ﻣﺤﻴﻂ ﮔﺮﺍﻓﻴﮑﯽ ‪ windows‬ﺍﺟﺮﺍ ﺷﻮﺩ‪.‬‬
‫‪g‬‬
‫ﭘﺮﻭﮊﻩ ﻱ ‪ – 3‬ﺳﻴﺴﺘﻢ ﺳﺎﺩﻩ ﺷﺪﻩ ﯼ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﯼ ﺟﺎﺳﺎﺯﯼ ﺷﺪﻩ ) ‪( meQL Server‬‬
‫ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﻓﺮﺽ ﺷﺪﻩ ﺍﺳﺖ ﺍﻓﺮﺍﺩ ﺑﺎ ﻣﻔﺎﻫﻴﻢ ﺍﺑﺘﺪﺍﻳﻲ ﭘﺎﻳﮕﺎﻩ ﻫﺎﯼ ﺩﺍﺩﻩ‪ ،‬ﻣﺪﻝ ﺭﺍﺑﻄﻪ ﺍﯼ ‪ ،‬ﻭ ‪ SQL‬ﺗﺎ ﺣﺪﯼ‬
‫ﺁﺷﻨﺎ ﻫﺴﺘﻨﺪ‪ .‬ﺍﻧﺠﺎﻡ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺑﺮﺍﯼ ﺳﺎﻳﺮ ﺍﻓﺮﺍﺩ ﺗﻮﺻﻴﻪ ﻧﻤﯽ ﺷﻮﺩ‪.‬‬
‫ﺯﺑﺎﻥ ‪ SQL‬ﺑﺮﺍﯼ ﺗﻬﻴﻪ ﯼ ﭘﺮﺳﺶ ﻫﺎﻳﯽ ﺭﻭﯼ ﭘﺎﻳﮕﺎﻩ ﻫﺎﯼ ﺩﺍﺩﻩ ﺑﻪ ﮐﺎﺭ ﻣﯽ ﺭﻭﺩ‪.‬‬
‫‪ mQL‬ﻳﺎ ‪ mini Query Language‬ﺩﺭ ﻭﺍﻗﻊ ﻓﺮﻡ ﺧﻼﺻﻪ ﺷﺪﻩ ﺍﯼ ﺍﺯ ﺍﻳﻦ ﺯﺑﺎﻥ ﺑﺮﺍﯼ ﺍﺳﺘﻔﺎﺩﻩ ﻫﺎﯼ ﺳﺎﺩﻩ ﺗﺮ‬
‫ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﺩﺭ ﺑﺮﻧﺎﻣﻪ ﻫﺎﯼ ﻧﺮﻡ ﺍﻓﺰﺍﺭﯼ ﺑﺴﻴﺎﺭ ﭘﻴﺶ ﻣﯽ ﺁﻳﺪ ﮐﻪ ﺫﺧﻴﺮﻩ ﺳﺎﺯﯼ ﺍﻃﻼﻋﺎﺕ ﺑﻪ ﺻﻮﺭﺕ ﺭﺍﺑﻄﻪ ﺍﯼ‪,‬‬
‫ﻭ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﻴﺴﺘﻢ ﻫﺎﯼ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﺍﯼ ﺍﻧﺠﺎﻡ ﻣﯽ ﺷﻮﺩ‪ .‬ﻭﻟﯽ ﮔﺎﻫﯽ ﺍﻭﻗﺎﺕ ﺑﻪ ﻋﻠﺖ ﻫﺰﻳﻨﻪ ﯼ‬
‫ﺯﻳﺎﺩ ﻭ ﺑﺎﺭ ﺍﺿﺎﻓﯽ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﺧﻮﺩ ﺑﻪ ﮐﻤﮏ ﺳﻴﺴﺘﻢ ﺫﺧﻴﺮﻩ ﺳﺎﺯﯼ ﺩﺭ ﻓﺎﻳﻞ ﺍﻃﻼﻋﺎﺕ ﺭﺍ ﻧﮕﻬﺪﺍﺭﯼ ﻣﯽ ﮐﻨﺪ‬
‫ﻭ ﺑﺪﻳﻦ ﺗﺮﺗﻴﺐ ﻗﺎﺑﻠﻴﺖ ﻣﺤﺎﺳﺒﺎﺕ ﺭﺍﺑﻄﻪ ﺍﯼ ﺭﺍ ﺍﺯ ﺩﺳﺖ ﻣﯽ ﺩﻫﺪ‪.‬‬
‫ﻫﺪﻑ ﺍﺯ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺩﺭ ﻭﻫﻠﻪ ﯼ ﺍﻭﻝ ﭘﻴﺎﺩﻩ ﺳﺎﺯﯼ ﻳﮏ ﺳﻴﺴﺘﻢ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﯼ ﺳﺎﺩﻩ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ‬
‫ﻓﺎﻳﻞ ﻫﺎ ﻣﯽ ﺑﺎﺷﺪ ﭼﻨﺎﻥ ﮐﻪ ﮐﺎﺭﺑﺮ ﻗﺎﺩﺭ ﺑﺎﺷﺪ ﺍﺯ ﻃﺮﻳﻖ ﻳﮏ ﺳﺮﯼ ﺗﻮﺍﺑﻊ ﮐﺘﺎﺑﺨﺎﻧﻪ ﺍﯼ ﻧﺴﺒﺖ ﺑﻪ ﺍﻳﺠﺎﺩ ﭘﺎﻳﮕﺎﻩ‬
‫‪4‬‬
‫ﺩﺍﺩﻩ ﯼ ﺟﺪﻳﺪ ‪ ،‬ﺍﻳﺠﺎﺩ ﺟﺪﺍﻭﻝ ﺟﺪﻳﺪ‪ ،‬ﻗﺮﺍﺭﺩﺍﺩﻥ ﺩﺍﺩﻩ ﻫﺎﯼ ﺩﻟﺨﻮﺍﻩ ﺩﺭ ﺍﻳﻦ ﺟﺪﺍﻭﻝ ‪ ،‬ﺣﺬﻑ ﺩﺍﺩﻩ ﻫﺎ ‪ ،‬ﺑﻪ ﺭﻭﺯ‬
‫ﺩﺭﺁﻭﺭﯼ ﺁﻥ ﻫﺎ ﻭ ﺍﺟﺮﺍﯼ ﭘﺮﺳﺶ ﺑﺎ ﮔﺮﺍﻣﺮ ﺗﻌﻴﻴﻦ ﺷﺪﻩ ﺭﻭﯼ ﺟﺪﺍﻭﻝ ﺍﻗﺪﺍﻡ ﮐﻨﺪ‪.‬‬
‫ﻓﺮﻣﺖ ﺩﺳﺘﻮﺭﺍﺗﯽ ﮐﻪ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﺑﺎﻳﺪ ﺑﺘﻮﺍﻧﺪ ﭘﺸﺘﻴﺒﺎﻧﯽ ﮐﻨﺪ ﺑﻪ ﺷﺮﺡ ﺫﻳﻞ ﺍﺳﺖ‪:‬‬
‫]>‪CREATE TABLE <table name> (<column name> <column type> [<attribute constraint‬‬
‫)}]>‪{,<column name> <column type>[<attribute constraint‬‬
‫>‪DROP TABLE <table name‬‬
‫>‪SELECT [DISTINCT] <attribute list‬‬
‫})>‪FROM (<table name> {<alias>}) {, (<table name>{<alias‬‬
‫]>‪[WHERE <condition‬‬
‫}>‪<attribute list>::=(*|<column name>){,*|<column name‬‬
‫)‪<attribute constraint>::=(PRIMARY KEY | NOT NULL‬‬
‫])}>‪INSERT INTO <table name> [(column name>{, <column name‬‬
‫}}>‪(VALUES( <constant value>, {<constant value>}){, <constant value>, {<constant value‬‬
‫)>‪| <select statement‬‬
‫>‪DELETE FROM <table name‬‬
‫]>‪[WHERE <selection condition‬‬
‫>‪UPDATE <table name‬‬
‫}>‪SET <column name>=<value expression>{, <column name>=<value expression‬‬
‫]>‪[WHERE <selection condition‬‬
‫ﺍﻧﻮﺍﻉ ﺩﺍﺩﻩ ﻫﺎﯼ ﻣﻮﺭﺩ ﭘﺸﺘﻴﺒﺎﻧﯽ ﺗﻮﺳﻂ ﺍﯼ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﻧﻴﺰ ﺑﻪ ﻗﺮﺍﺭ ﺯﻳﺮ ﺍﺳﺖ‪:‬‬
‫ﻣﻘﺪﺍﺭ ﻣﻨﻄﻘﯽ ﺩﺭﺳﺖ ﻳﺎ ﻏﻠﻂ‬
‫‪Boolean‬‬
‫ﻫﺮﮔﻮﻧﻪ ﻣﻘﺪﺍﺭ ﻋﺪﺩﯼ )ﺻﺤﻴﺢ ﻳﺎ ﺍﻋﺸﺎﺭ(‬
‫‪Numeric‬‬
‫ﻣﻘﺪﺍﺭ ﺭﺷﺘﻪ ﺍﯼ ﻧﻮﻳﺴﻪ ﺍﯼ )ﻣﺮﮐﺐ ﺍﺯ ﮐﺎﺭﺍﮐﺘﺮ ﻫﺎ( ‪ /‬ﺭﺷﺘﻪ ﺍﯼ ﺑﻪ ﻃﻮﻝ ‪n‬‬
‫ﻳﮏ ﺭﺷﺘﻪ ﯼ ﺑﺎﻳﻨﺮﯼ ‪ /‬ﺭﺷﺘﻪ ﯼ ﺑﺎﻳﻨﺮﯼ ﺑﻪ ﻃﻮﻝ ‪n‬‬
‫)‪String / String(n‬‬
‫)‪Binary / Binary(n‬‬
‫ﮐﺎﺭﺑﺮ ﺑﺎﻳﺪ ﺑﺮﺍﯼ ﮐﺎﺭ ﺑﺎ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﯼ ﭘﻴﺎﺩﻩ ﺳﺎﺯﯼ ﺷﺪﻩ‪ ،‬ﺍﺯ ﻳﮏ ﺭﺍﻩ ﺍﻧﺪﺍﺯ)‪ (Driver‬ﺑﺮﺍﯼ ﺍﺗﺼﺎﻝ ﺑﻪ ﺩﻳﺘﺎﺑﻴﺲ‪،‬‬
‫ﻭ ﻳﮏ ﺳﺮﯼ ﻭﺍﺳﻂ ﺑﺮﺍﯼ ﺍﺭﺍﺋﻪ ﯼ ﭘﺮﺳﺶ ﻫﺎ ﻭ ﺩﺳﺘﻮﺭﺍﺕ ﻣﻮﺭﺩ ﻋﻼﻗﻪ ﻭ ﺩﺭﻳﺎﻓﺖ ﮐﺮﺩﻥ ﭘﺎﺳﺦ ﻫﺎ ﻭ ﻧﺘﺎﻳﺞ‬
‫ﭘﺮﺳﺶ ﻫﺎ ﺍﺳﺘﻔﺎﺩﻩ ﮐﻨﺪ‪.‬‬
‫ﺩﺭ ﻭﻫﻠﻪ ﯼ ﺩﻭﻡ ﺷﻤﺎ ﺑﺎﻳﺪ ﺍﻳﻦ ﺩﺭﺍﻳﻮﺭ ﻭ ﻭﺍﺳﻂ ﻫﺎ ﺭﺍ )ﺩﺭ ﻗﺎﻟﺐ ﻣﺠﻤﻮﻋﻪ ﺍﯼ ﺍﺯ ﮐﻼﺱ ﻫﺎ( ﻃﺮﺍﺣﯽ ﻭ ﭘﻴﺎﺩﻩ‬
‫ﺳﺎﺯﯼ ﮐﻨﻴﺪ‪ .‬ﻃﺮﺍﺣﯽ ﺩﺭﺍﻳﻮﺭ ﻭ ﻭﺍﺳﻂ ﻫﺎﯼ ﻣﺬﮐﻮﺭ ﻭ ﻧﺤﻮﻩ ﯼ ﺗﻌﺎﻣﻞ ﺁﻥ ﻫﺎ ﺑﺎ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﺑﻪ ﻋﻨﻮﺍﻥ ﻗﺴﻤﺘﯽ‬
‫ﺍﺯ ﭘﺮﻭﮊﻩ ﻣﺤﺴﻮﺏ ﻣﯽ ﺷﻮﺩ‪ .‬ﺍﺭﺍﺋﻪ ﯼ ﻣﺪﻟﯽ ﺷﻴﺊ ﮔﺮﺍ ‪ ،‬ﻗﺎﺑﻞ ﮔﺴﺘﺮﺵ ﻭ ﺣﺘﯽ ﺍﻻﻣﮑﺎﻥ ﻣﺴﺘﻘﻞ ﺍﺯ ﭘﺎﻳﮕﺎﻩ‬
‫ﺩﺍﺩﻩ ﺍﯼ ﺧﺎﺹ ﺗﻮﺻﻴﻪ ﻣﯽ ﺷﻮﺩ‪ .‬ﺑﺮﺍﯼ ﮔﺮﻓﺘﻦ ﺍﻳﺪﻩ ﻫﺎﯼ ﻃﺮﺍﺣﯽ ﻣﯽ ﺗﻮﺍﻧﻴﺪ ﺑﻪ ﺍﺳﺘﺎﻧﺪﺍﺭﺩ ‪ ODBC‬ﻭ‬
‫ﻣﺮﺍﺟﻌﻪ ﮐﻨﻴﺪ‪ .‬ﻫﻤﺎﻥ ﻃﻮﺭ ﮐﻪ ﺍﺷﺎﺭﻩ ﺷﺪ؛ ﺩﺭﺍﻳﻮﺭ ﻣﺮﺑﻮﻃﻪ ﺑﺎﻳﺪ ﺣﺪﺍﻗﻞ ﻗﺎﺑﻠﻴﺖ ﻫﺎﯼ ﺯﻳﺮ ﺭﺍ ﺍﺭﺍﺋﻪ ﺩﻫﺪ‪:‬‬
‫•‬
‫ﺍﻳﺠﺎﺩ ﻳﮏ ﺍﺗﺼﺎﻝ ﺑﻪ ﺩﻳﺘﺎﺑﻴﺲ ﺑﺮﺍﯼ ﺍﻧﺠﺎﻡ ﻋﻤﻠﻴﺎﺕ ﻫﺎﯼ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﮐﺎﺭﺑﺮ‬
‫•‬
‫ﺍﺟﺮﺍﯼ ﺩﺳﺘﻮﺭﺍﺕ ‪ mQL‬ﻣﻄﺎﺑﻖ ﺑﺎ ﮔﺮﺍﻣﺮ ﺗﻮﺻﻴﻒ ﺷﺪﻩ ﺭﻭﯼ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ‬
‫•‬
‫ﺑﺎﺯﮔﺮﺩﺍﻧﺪﻥ ﻧﺘﺎﻳﺞ ﺣﺎﺻﻞ ﺍﺯ ﺍﺟﺮﺍﯼ ﺩﺳﺘﻮﺭﺍﺗﯽ ﻣﺎﻧﻨﺪ ‪SELECT‬‬
‫•‬
‫ﺁﮔﺎﻩ ﮐﺮﺩﻥ ﮐﺎﺭﺑﺮ ﺍﺯ ﻭﻗﻮﻉ ﺧﻄﺎ ﻫﻨﮕﺎﻡ ﻋﻤﻠﻴﺎﺕ ﺭﻭﯼ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ‬
‫•‬
‫ﺑﺴﺘﻦ ﺍﺗﺼﺎﻻﺕ ﻣﻮﺟﻮﺩ ﻭ ﺁﺯﺍﺩ ﺳﺎﺯﯼ ﻣﻨﺎﺑﻊ ﺍﺷﻐﺎﻝ ﺷﺪﻩ ﺍﺯ ﺳﻴﺴﺘﻢ‬
‫‪5‬‬
‫ﻳﺎ ‪JDBC‬‬
‫ﺩﺭﺍﻳﻮﺭ ﻭ ﻭﺍﺳﻂ ﻫﺎﯼ ﻣﻮﺭﺩ ﻧﻈﺮ ﺑﺎﻳﺪ ﺑﻪ ﺷﮑﻞ ﻳﮏ ﺗﺎﺑﻊ ﮐﺘﺎﺑﺨﺎﻧﻪ ﺍﯼ ﭘﻮﻳﺎﯼ ﺯﻣﺎﻥ ﺍﺟﺮﺍ ﺩﺭ ﻣﺤﻴﻂ‬
‫‪Windows‬‬
‫ﻭ ﻳﺎ ‪ Linux‬ﺗﻬﻴﻪ ﺷﺪﻩ ﺑﺎﺷﻨﺪ ‪ .‬ﺑﺮﺍﯼ ﺗﺤﻮﻳﻞ ﭘﺮﻭﮊﻩ ﺑﺎﻳﺪ ﻧﻤﻮﻧﻪ ﺑﺮﻧﺎﻣﻪ ﻫﺎﻳﻲ ﮐﻪ ﺍﺯ ﺍﻳﻦ ﺗﻮﺍﺑﻊ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽ ﮐﻨﻨﺪ‬
‫ﻭ ﺑﺎ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﻃﺮﺍﺣﯽ ﺷﺪﻩ ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽ ﮐﻨﻨﺪ‪ ،‬ﺗﻬﻴﻪ ﺷﺪﻩ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﭘﺮﻭﮊﻩ ﻱ ‪ – 4‬ﺍﺑﺰﺍﺭ ﮐﻤﮑﯽ ﺗﻮﺻﻴﻒ ‪ ،‬ﺗﻮﻟﻴﺪ ﻭ ﺗﺴﺖ ﺑﺮﻧﺎﻣﻪ ﻫﺎﯼ ﺷﻴﺊ ﮔﺮﺍ‬
‫‪ CASE Tool‬ﻫﺎ )‪ (Computer Aided Software Engineering Tools‬ﺍﺑﺰﺍﺭ ﻫﺎﻳﯽ ﺑﺮﺍﯼ ﺧﻮﺩﮐﺎﺭﺳﺎﺯﯼ‬
‫ﺗﻮﺳﻌﻪ ﯼ ﺳﻴﺴﺘﻢ ﻫﺎﯼ ﻧﺮﻡ ﺍﻓﺰﺍﺭﯼ ﺩﺭ ﻣﺮﺍﺣﻞ ﺗﺤﻠﻴﻞ ‪ ،‬ﻃﺮﺍﺣﯽ ‪ ،‬ﭘﻴﺎﺩﻩ ﺳﺎﺯﯼ ‪ ،‬ﺗﻬﻴﻪ ﯼ ﻣﺴﺘﻨﺪﺍﺕ ﻭ ﺗﻮﻟﻴﺪ‬
‫ﮐﺪ ﻣﯽ ﺑﺎﺷﻨﺪ‪) .‬ﺑﺮﺍﯼ ﻣﺜﺎﻝ ﻣﯽ ﺗﻮﺍﻥ ﺑﻪ ﺍﺑﺰﺍﺭﻫﺎﯼ ‪ Together‬ﻭ ‪ Rational Rose‬ﺍﺷﺎﺭﻩ ﮐﺮﺩ‪(.‬‬
‫ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﭘﻴﺎﺩﻩ ﺳﺎﺯﯼ ﻳﮏ ﺍﺑﺰﺍﺭ ‪ CASE‬ﺳﺎﺩﻩ ﺑﺮﺍﯼ ﻃﺮﺍﺣﯽ ﺷﻴﺊ ﮔﺮﺍ ﻣﺪ ﻧﻈﺮ ﻣﯽ ﺑﺎﺷﺪ‪.‬ﮐﺎﺭﺑﺮ ﺍﻳﻦ‬
‫ﺑﺮﻧﺎﻣﻪ ﺑﺎﻳﺪ ﺍﻳﻦ ﻗﺎﺑﻠﻴﺖ ﺭﺍ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ ﺩﺭ ﻳﮏ ﻣﺤﻴﻂ ﺑﺼﺮﯼ )‪ (visual‬ﮐﻼﺱ ﻫﺎﯼ ﻣﻮﺭﺩ ﻧﻈﺮ ﺭﺍ ﻣﺸﺨﺺ‬
‫ﮐﻨﺪ ‪ ،‬ﺭﻭﺍﺑﻂ ﺑﻴﻦ ﺁﻥ ﻫﺎ ﺭﺍ )ﺍﺯ ﻗﺒﻴﻞ ‪ composition ، inheritance‬ﻭ ‪ ( association‬ﻣﺸﺨﺺ ﮐﺮﺩﻩ ‪ ،‬ﻣﺘﺪ ﻫﺎ ﻭ‬
‫ﻣﺘﻐﻴﻴﺮ ﻫﺎﯼ ﻫﺮ ﮐﻼﺱ ﺭﺍ ﻣﻌﺮﻓﯽ ﮐﺮﺩﻩ ﻭ ﺩﺭ ﻧﻬﺎﻳﺖ ﻳﮏ ﺗﻮﺻﻴﻒ ﺑﺼﺮﯼ ﺍﺯ ﻧﻤﻮﺩﺍﺭ ﻫﺎﯼ ﻣﺮﺑﻮﻁ ﺑﻪ ﮐﻼﺱ‬
‫ﻫﺎﯼ ﺩﺭﮔﻴﺮ ﺩﺭ ﻃﺮﺍﺣﯽ ﺧﻮﺩ ﺑﺮﺍﯼ ﺳﻴﺴﺘﻢ ﺍﺭﺍﺋﻪ ﮐﻨﺪ )‪.(Class Diagrams‬‬
‫ﺑﻪ ﻋﻨﻮﺍﻥ ﻣﺜﺎﻝ ﺷﮑﻞ ﺯﻳﺮ ﻳﮏ ﻣﺜﺎﻝ ﺧﻴﻠﯽ ﺳﺎﺩﻩ ﺍﺯ ﻳﮏ ‪ Class Diagram‬ﻣﯽ ﺑﺎﺷﺪ‪:‬‬
‫ﺑﺮﻧﺎﻣﻪ ﺑﺎﻳﺪ ﻗﺎﺑﻠﻴﺖ ﺫﺧﻴﺮﻩ ﺳﺎﺯﯼ ﻭ ﺑﺎﺯﻳﺎﺑﯽ ﻧﻤﻮﺩﺍﺭ‬
‫ﻫﺎﯼ ﮐﻼﺱ ﮐﺎﺭﺑﺮ ﺭﺍ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬ﻫﻢ ﭼﻨﻴﻦ ﮐﺎﺭﺑﺮ ﺑﺎﻳﺪ‬
‫ﺑﺘﻮﺍﻧﺪ ﭘﺲ ﺍﺯ ﺗﻮﻟﻴﺪ ﺑﺼﺮﯼ ﻧﻤﻮﺩﺍﺭ ﻫﺎﯼ ﮐﻼﺱ ﺗﻮﺳﻂ‬
‫ﺑﺮﻧﺎﻣﻪ ﻭ ﺑﻪ ﺻﻮﺭﺕ ﺧﻮﺩﮐﺎﺭ ﮐﺪ ﻣﺮﺑﻮﻁ ﺑﻪ ﺑﺮﻧﺎﻣﻪ‬
‫ﻫﺎﯼ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﺍﻳﻦ ﻧﻤﻮﺩﺍﺭ ﻫﺎ ﺭﺍ ﺗﻮﻟﻴﺪ ﮐﻨﺪ )ﺗﻮﻟﻴﺪ ﮐﺪ‬
‫ﺩﺭ ﺣﻴﻦ ﺗﻮﻟﻴﺪ ﺑﺼﺮﯼ ﻧﻤﻮﺩﺍﺭﻫﺎ ﻣﻨﺎﺳﺐ ﺗﺮﺍﺳﺖ(‪.‬‬
‫ﻫﻢ ﭼﻨﻴﻦ ﺍﮔﺮ ﺑﺮﻧﺎﻣﻪ ﯼ ﮐﺎﺭﺑﺮ ﺑﺘﻮﺍﻧﺪ ﻓﺎﻳﻞ ﻫﺎﯼ ﻣﺮﺑﻮﻁ‬
‫ﺑﻪ ﮐﺪﻫﺎﯼ ‪ C++‬ﺭﺍ ﺍﺯ ﻳﮏ ﭘﻮﺷﻪ ﺧﻮﺍﻧﺪﻩ ﻭ ﻧﻤﻮﺩﺍﺭﻫﺎﯼ ﻣﺮﺑﻮﻃﻪ ﺭﺍ ﺭﺳﻢ ﮐﻨﺪ)‪ (Refactoring‬ﺍﻣﺘﻴﺎﺯ ﺧﻮﺑﯽ ﺑﺮﺍﯼ‬
‫ﭘﺮﻭﮊﻩ ﻣﺤﺴﻮﺏ ﻣﯽ ﺷﻮﺩ ﻓﺮﺽ ﻣﯽ ﺷﻮﺩ ﮐﻼﺱ ﻫﺎﯼ ﺫﺧﻴﺮﻩ ﺷﺪﻩ ﺩﺭ ﭘﻮﺷﻪ ﯼ ﻣﻌﺮﻓﯽ ﺷﺪﻩ ﭘﻴﭽﻴﺪﮔﯽ‬
‫ﺧﺎﺻﯽ ﻧﺪﺍﺭﻧﺪ ﻭ ﺍﺯ ﮐﻼﺱ ﻫﺎﯼ ﺳﺎﺩﻩ ﺗﺸﮑﻴﻞ ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫ﭘﺮﻭﮊﻩ ﻱ ﺍﻣﺘﻴﺎﺯﯼ ‪1‬‬
‫ﻫﺪﻑ ﺍﺯ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺗﻬﻴﻴﻪ ﯼ ﺑﺴﺘﻪ ﺍﯼ ﻧﺮﻡ ﺍﻓﺰﺍﺭﯼ ﺑﻪ ﻣﻨﻈﻮﺭ ﺗﻬﻴﻴﻪ ﯼ ﺧﻮﺩﮐﺎﺭ ﺑﺮﻧﺎﻣﻪ ﻫﺎﯼ ﺗﺠﺰﻳﻪ ﮐﻨﻨﺪﻩ ﯼ‬
‫)‪ (Parser‬ﮔﺮﺍﻣﺮ ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﺩﺭ ﻭﺍﻗﻊ ﻭﺭﻭﺩﯼ ﺍﻳﻦ ﺑﺮﻧﺎﻣﻪ ﺗﻮﺻﻴﻒ ﻳﮏ ﮔﺮﺍﻣﺮ ﻣﯽ ﺑﺎﺷﺪ ﻭ ﺧﺮﻭﺟﯽ ﺁﻥ‬
‫ﺑﺮﻧﺎﻣﻪ ﯼ ﻗﺎﺑﻞ ﺍﺟﺮﺍﻳﯽ )ﺑﻪ ﺯﺑﺎﻥ ‪ (C++‬ﺍﺳﺖ ﮐﻪ ﻣﯽ ﺗﻮﺍﻧﺪ ﻭﺭﻭﺩﯼ ﻫﺎﻳﯽ ﺑﺎ ﮔﺮﺍﻣﺮ ﻣﺮﺑﻮﻃﻪ ﺭﺍ‬
‫ﺗﺠﺰﻳﻪ )‪(parse‬‬
‫ﮐﻨﺪ‪ .‬ﻻﺯﻡ ﺍﺳﺖ ﺩﺭ ﻃﺮﺍﺣﯽ ‪ ،‬ﺭﺍﺣﺘﯽ ﺍﺳﺘﻔﺎﺩﻩ ﮐﺎﺭﺑﺮ ﺍﺯ ﺑﺴﺘﻪ ﯼ ﻣﻮﺭﺩ ﻧﻈﺮ ﻣﻮﺭﺩ ﺗﻮﺟﻪ ﻗﺮﺍﺭ ﺑﮕﻴﺮﺩ‪.‬‬
‫ﺑﺮﺍﯼ ﺁﺷﻨﺎﻳﻲ ﺑﻴﺸﺘﺮ ﺑﺎ ﻧﺤﻮﻩ ﯼ ﮐﺎﺭ ﭼﻨﻴﻦ ﺑﺮﻧﺎﻣﻪ ﻫﺎﻳﯽ ﻣﯽ ﺗﻮﺍﻧﻴﺪ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﻫﺎﯼ ﻣﺸﺎﺑﻪ ﺩﺭ ‪ Linux‬ﻣﺮﺍﺟﻌﻪ‬
‫ﮐﻨﻴﺪ‪.‬‬
‫‪6‬‬
‫ﭘﺮﻭﮊﻩ ﻱ ﺍﻣﺘﻴﺎﺯﯼ ‪2‬‬
‫ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﻫﺪﻑ ﺍﺗﺠﺎﻡ ﭘﺮﻭﮊﻩ ﯼ ﺳﻮﻡ )‪ (meQL Server‬ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﺗﻮﺯﻳﻊ ﺷﺪﻩ ﻭ ﺭﻭﯼ ﺷﺒﮑﻪ‬
‫ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﺩﺭ ﻭﺍﻗﻊ ﺩﺭ ﺍﻳﻦ ﻣﺴﺄﻟﻪ )ﮐﻪ ﻓﻘﻂ ﺑﺮﺍﯼ ﺍﻓﺮﺍﺩﯼ ﮐﻪ ﭘﺮﻭﮊﻩ ﯼ ‪ meQL Server‬ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﺍﺩﻩ ﺍﻧﺪ‬
‫ﺗﻮﺻﻴﻪ ﻣﯽ ﺷﻮﺩ( ﺻﻮﺭﺕ ﻣﺴﺄﻟﻪ ﯼ ﺳﻮﻡ ﺑﻪ ﺍﻳﻦ ﺗﺮﺗﻴﺐ ﺗﻐﻴﻴﺮ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﺩﺭ ﺻﻮﺭﺕ ﻧﺼﺐ ﻭ ﺭﺍﻩ ﺍﻧﺪﺍﺯﯼ‬
‫ﺑﺮﻧﺎﻣﻪ ﯼ ﻣﺪﻳﺮﻳﺖ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﺭﻭﯼ ﻳﮏ ﺳﻴﺴﺘﻢ‪ ،‬ﺑﺮﻧﺎﻣﻪ ﻫﺎﯼ ﺩﻳﮕﺮ ﺑﺎ ﺩﺭ ﺍﺧﺘﻴﺎﺭ ﺩﺍﺷﺘﻦ ﺩﺭﺍﻳﻮﺭ ﻣﺮﺑﻮﻃﻪ ﻭ‬
‫ﺁﮔﺎﻫﯽ ﺍﺯ ﻧﺎﻡ ﻭ ﻳﺎ ‪ IP‬ﺳﻴﺴﺘﻢ ﻣﺬﮐﻮﺭ ﺑﺘﻮﺍﻧﻨﺪ ﺍﺯ ﻗﺎﺑﻠﻴﺖ ﻫﺎﯼ ﺁﻥ ﭘﺎﻳﮕﺎﻩ ﺩﺍﺩﻩ ﺍﺳﺘﻔﺎﺩﻩ ﮐﻨﻨﺪ‪.‬‬
‫ﭘﺮﻭﮊﻩ ﻱ ﺍﻣﺘﻴﺎﺯﯼ ‪3‬‬
‫ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﻃﺮﺍﺣﯽ ﻭ ﭘﻴﺎﺩﻩ ﺳﺎﺯﯼ ﻳﮏ ‪ Task scheduling management Component‬ﻣﺒﺘﻨﯽ ﺑﺮ‬
‫ﺗﮑﻨﻮﻟﻮﮊﯼ )‪ Component Object Model (COM‬ﻣﺪ ﻧﻈﺮ ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﺟﺰﺋﻴﺎﺕ ﺑﻴﺸﺘﺮ ﺩﺭ ﻣﻮﺭﺩ ﮐﺎﺭﮐﺮﺩ ﻫﺎﯼ‬
‫ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺍﺯ ﻃﺮﻳﻖ ‪ mailing list‬ﺍﻋﻼﻡ ﻣﯽ ﺷﻮﺩ‪.‬‬
‫ﭘﺮﻭﮊﻩ ﻱ ﺍﻣﺘﻴﺎﺯﯼ ‪4‬‬
‫ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﻃﺮﺍﺣﯽ ﻭ ﭘﻴﺎﺩﻩ ﺳﺎﺯﯼ ﻳﮏ ﺑﺴﺘﻪ ﯼ ﻧﺮﻡ ﺍﻓﺰﺍﺭﯼ ﺑﺮﺍﯼ ﺑﻪ ﮐﺎﺭ ﮔﻴﺮﯼ ﺗﮑﻨﻴﮏ ﻫﺎﯼ ﻫﻮﺵ‬
‫ﻣﺼﻨﻮﻋﯽ ﺍﺯ ﻗﺒﻴﻞ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻫﺎﯼ ﮊﻧﺘﻴﮏ‪ ،‬ﺷﺒﮑﻪ ﻫﺎﯼ ﻋﺼﺒﯽ‪ ،‬ﻭﻳﺎ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻫﺎﯼ ﻓﺎﺯﯼ ﺩﺭ ﺣﻞ ﻣﺴﺎﺋﻞ‬
‫ﻧﺮﻡ ﺍﻓﺰﺍﺭﯼ ﻣﺪ ﻧﻈﺮ ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺗﻨﻬﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻳﮑﯽ ﺍﺯ ﺗﮑﻨﻴﮏ ﻫﺎﯼ ﺫﮐﺮ ﺷﺪﻩ ﮐﻔﺎﻳﺖ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫ﺗﻮﺿﻴﺤﺎﺕ ﺑﻴﺸﺘﺮ ﻭ ﻣﻨﺎﺑﻊ ﻻﺯﻡ ﺑﺮﺍﯼ ﺍﻧﺠﺎﻡ ﭘﺮﻭﮊﻩ ﺍﺯ ﻃﺮﻳﻖ ‪ homepage‬ﺩﺭﺱ ﻗﺎﺑﻞ ﺩﺳﺘﺮﺳﯽ ﺧﻮﺍﻫﺪ ﺑﻮﺩ‪.‬‬
‫ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ‬
‫‪7‬‬