معرفی
چارت ناسی-شنیدرمن یاNSD برای نمایش تصویری ساختار برنامهنویسی استفاده میشود. و توسط Isaac Nassi و Ben Shneiderman دو در سال ۱۹۷۲ توسعه داده شده است. همچنین به این چارت structograms (چارتساختار) میگویند که ساختار برنامه را نمایش میدهد.
طبق طراحی حل مساله بالا به پایین مسئله را کوچکتر و کوچکتر میکنیم تا در نهایت چیزی که باقی میماند عبارت های ساده و ساختارهای کنترلی هستند. چارت NSD این مساله ها را مستقیما نمایش میدهد با تجزیه کردن مساله به زیرمساله ها و در این چارت زیر مساله ها با باکس های تودرتو نمایش داده می شود. مطابق با فلسفه برنامه نویسی ساختار یافته هیچ نوع نمایشی برای استفاده از goto در این چارت وجود ندارد. از این چارت به ندرت در برنامه نویسی استفاده میشود. در سطح انتزاعی نزدیک به کد ساختار یافته است و برای ویرایش باید کل ساختار را دوباره بکشیم. با یان وجود یان جارت برای طرح اولیه پروسه ها و طراحی در سطوح بالا مفید است.
چارت NSD تقریبا شبیه و قابل مقایسه با فلوچارت است. هر چیزی را که در NSD میتوان نشان داد در این فلوچارت هم قابل نمایش است و برعکس. استثنا هایی هم مانند عبارت goto و عبارت های break , continue در حلقه ها وجود دارد که در چارت NSD قابل پیاده سازی نیستند.
نمودارها
Process blocks: بلوک های فرایند
بلوک های فرایند نمایشی از ساده ترین گاه ها هستند و نیازی به آنالیز ندارند. وقتی به نوع بلوک رسیدیم کارهای داخل بلوک را انجام میدهیم و به بلوک بعدی میرویم.
Branching blocks: بلوکهای شاخه (انتخاب)
دو نوع شاخه بندی داریم . نوع اول صحیح / غلط یا بله/خیر که دو مسیر برای ادامه اجرای برنامه وجود دارد و بسته به اینکه شرط درست است یا خیر یکی از دو مسیر انتخاب میشود. این بلوکها می توانند در حلقه کارهایی را انجام دهند تا زمانی که شرط خاصی برقرار باشد.
نوع دوم میتواند چندین شاخه برای انتخاب داشته باشد. این بلوک زمانی که چندین خالت برای انتخاب وجود داشته باشد استفاده میشود. معمولا شامل یک پرسش یا انتخاب از بین چند مورد هستند.
Testing loops: حلقه های شرط
این بلوک برای اجرا کردن یک یا چند دستور در حلقه استفاده میشود تا زمانی که شرط خاصی برقرار باشد. این بلو های پردازشی توسط حلقه ها پوشش داده میشوند و زیر مجموعهای هستند که شرط ها انها را با نوار جانبی جدا کرده اند.
دو نوع داریم، اول تست و آخر تست. تنها تفاوت آنها در مواجهشدن با این است که کدام گام ها انجام میشود. در حالت اول وقتی برنامه به شرط میرسد ابتدا چک میکند آیا شرط برقرار است، آنگاه، اگر فرایند در حلقه کامل نشده است و انگاه حلقه برمیگردد. تست دوباره اجرا میشود و اگر هنوز شرایط برقرار نباشد دوباره پروسه تکرار میشود. اگر هر یک از بخشهای شرط برقرار باشد برنامه اجرای پروسه بلوک را خاتمه داده و بلوک بعد اجرا میشود.
برای حالت دوم کاملا برعکس حالت قبل است. فرایند های بلاک ابتدا اجرا میشوندو در آخر شرط بررسی میشود. در این حالت دستورات درون بلوک حداقل یک بار اجرا میشوند.
Concurrent همزمان
طبق شکل زیر میتواند اجرا شوند.
منبع : ویکیپدیا NSD
Leave a Reply