آشنایی مهارت های عمومی برنامه نویسی (فصل نهم(بخش یکم))

آشنایی مهارت های عمومی برنامه نویسی (فصل نهم(بخش یکم))

فصل نهم مراحل و زمان انجام کار

مقدمه

مراحل فرایند تولید نرم افزار از چندین بخش تشکیل میشود. مرحله نخست، تحلیل نیاز ها میباشد به طوریکه استخراج نیازهای یک نرم افزار مطلوب، اولین مرحله تولید آن به شمار میرود. در حالی که بیشتر کارفرمایان (مشتریان) گمان میبرند که میدانند نرم افزار موردنیازشان باید دارای چه توانایی ها و امکاناتی باشد. در حقیقت برای انگشت گذاشتن بر روی نیازهای ناقص و ناکافی، بحث برانگیز و مشکوک یا متناقض کارفرما، نیاز به تجربه و مهارت بسیار در فنون مهندسی نرم افزار میباشد. مرحله بعد، تشریح یا استخراج مشخصات فنی نرم افزار است. تشریح عبارت است از تعریف دقیق تنها زمانی این مرحله از تولید نرم افزار معمولاً نرم افزاری که قرار است تولید شود با زبان دقیق ریاضی. متأسفانه معمولاً انجام میشود که نرم افزار به پایان رسیده باشد. مرحله سوم طراحی و معماری است. طراحی و معماری به معنی معین کردن رفتار نرم افزار به صورت کلی و بدون درگیر شدن با جزییات آن است. در گام بعدی به مرحله کد نویسی میرسیم. تقلیل یک طراحی به کد ممکن است بدیهی ترین بخش مهندسی نرم افزار به نظر برسد، ولی لزوما بزرگ ترین بخش آن نیست. بعد از مرحله کدنویسی، مرحله آزمایش قرار دارد که شامل آزمایش بخش های مختلف نرم افزار، خصوصا در بخش هایی که کدی که توسط دو مهندس متفاوت نوشته شده باید به هم متصل شوند (با هم کار کنند) میشود. مرحله ای بسیار مهم ً و عموما فراموش شده تولید نرم افزار، مستند سازی است. مستند سازی ساختار داخلی نرم افزار به منظور حفظ توانایی تصحیح و گسترش آن در آینده میباشد. در انتها، نگهداری و بهبود نرم افزار به منظور ایجاد توانایی مواجهه با مشکلات تازه کشفشده و نیاز های جدید است که میتواند زمانی بسیار بیشتر از تولید اولیه نرم افزار صرف خود کند. 

مراحل تجزیه و تحلیل سیستم

سیستم چیست؟ 

در فصل های قبل گفته شد که سیستم مجموعه ای است که از اجزای به هم وابسته که وابستگی حاکم بر اجزای خود کلیت جدید را احراز کرده و از نظم و سازمان خاصی پیروی مینماید و در جهت تحقق هدف معینی که دلیل وجودی آن است فعالیت میکند. 

واژه سيستـم با مفاهيـم بسياري به كار برده ميشــود مانند سيستم اقتصـادي، سيستم سياسي، حمل و نقل، ارتباطات، حسابداري، مكانيزه (ماشيني)، سيستم اطلاعات مديريت و... . در زبان فارسي نيز گاهي اوقات «سيستم» را به عنوان واژهاي متـرادف با كلمه هاي رشتــه (رشته جبال)، جهاز (جهاز هاضـمه)، دستــگاه (دستگاه گـوارش، دستـگاه گردش خون(، سلسله (سلسله اعصاب( و منظومه (منظومه شمسي( مورد استفاده قرار ميدهند. 

ترکیب سیستم: اجزای چهارگانه سیستم  

1 -درونداد (ورودی): آنچه به نحوی وارد سیستم میشود و سبب تحرک سیستم میشود.

2 -فرایند تبدیل (پردازش): جریان تغییر و تبدیل آنچه وارد سیستم میشود.

3 -برونداد (خروجی): از تغییر و تبدیل در سیستم (به شکل کالایا خدمات) خارج میشود.

4 -بازخورد: فرایندی دورانی که قسمتی از ستاده به عنوان اطلاعات به درونداد پس خورانده میشود.

محیط سیستم: هر سیستم در محیطی قرار دارد. محیط سیستم شامل کلیه متغیرهایی است که میتواند در وضع سیستم مؤثر باشند و یا از سیستم تأثیر پذیرند. عوامل محیطی در برگیرنده عواملی همچون عوامل طبیعی، فرهنگی ایدئولوژی، اجتماعی، سیاسی، اقتصادی و غیره هستند.  

طبقه بندی سیستم ها: 

سیستم های اصلی: که در برگیرنده مجموعه ای از سیستم های فرعی میباشد. 

سیستم های فرعی: که جزیی از یک سیستم بزرگتر بوده و جهت تحقق هدف های سیستم اصلی فعالیت میکند.  

سیستم های باز و بسته: 

سیستم بسته : سیستمی ساده است که با محیط خود ارتباط برقرار نمیکند و در برخورد با محیط، سازمان خود را از دست میدهد. 

سیستم باز : سیستمی است که با محیط خود در ارتباط است. 

آنتروپی

انواع آنتروپی: 

1 -آنتروپی مثبت : عملکردش در خلاف جهت نظم سیستم است.

2 -آنتروپی منفی : عملکرش خلاف جهت آنتروپی مثبت است و برای ایجاد تغییرات تعدیلاتی در جهت اصلاح انحرافات به منظور بقاء سیستم در محیط عمل میکند. 

خواص سیستم های باز: 

1 -کلیت و جامعیت وجودی

2 -سلسله مراتب

3 -همبستگی بین اجزاء

4 -تناسب بین اجزاء

5 -گردش دایره وار

6 -خاصیت تولید مثل

7 -همپایانی

8 -گرایش به فنا

9 -گرایش به تکامل

10 -گرایش به تعادل یا خود نگهداری

 

1 -کلیت و جامعیت وجودی: سیستم در کلیت وجودی خود خواصی را ظاهر میسازد که در اجزای تشکیل دهنده آن به تنهایی وجود ندارد. این کلیت نتیجه ارتباط اجزاء با یکدیگر و نحوه ترکیب اجزاء و سازمان یافتن آنها نیز کلیت سیستم را به وجود می آورد.

2 -سلسله مراتب: در سیستم ها نوعی سلسله مراتب از نظر ساختاری،عملکرد و رفتاری وجود دارد. در هر سیستم عناصری وجود دارد که به نوبه خود عناصر کوچکتری هستند که ساخت و عملکرد ساده تری دارند.

3 -همبستگی بین اجزاء: هر جزء در سیستم به نحوی با سایر اجزاء مرتبط است و به علت وجود این همبستگی چنانچه در جزیی خللی وارد شود، سایر اجزاء نیز از آن خلل متأثر میشوند.

4 -تناسب بین اجزاء: بین اجزاءسیستم تناسب، سنخیت وکمال متقابل موجود است و وجود تناسب سبب حفظ هویت و کلیت سیستم میشود.

5 -گردش دایره وار:فرایند درونداد،تبدیل و برونداد جریانی مستمر و مداوم است. به این معنی که با صدور برونداد، سیستم بار دیگر آماده کسب نیرو و تجدید فعالیت گردیده و این جریان به شکل گردشی دایره وار ادامه مییابد.

6 -خاصیت تولید مثل: سیستم ها گرایش به جاودانه سازی خود دارند و تا جایی که امکان داشته باشد به حیات خویش ادامه میدهند و چنانچه در کار سیستم نقصی پدید آید در رفع آن میکوشند و برای ادامه حیات تلاش میکنند، در غیر این صورت از طریق تولید مثل وجود خود را در دیگری ادامه میدهند. 

7 -همپایانی: همپایانی بدین معنی است که سیستم میتواند از راه ها ومسیرهای متفاوتی به هدف واحدی برسد.

8 -گرایش به فنا: در درون سیستم ها عواملی بهوجود میآیند که سیستم ها از جهت اصلی آن منحرف میسازند و به سمت عدم تعادل سوق میدهند. این عوامل را آنتروپی میخوانند.

9 -گرایش به تکامل: منظور از تکامل پیچیدگی ساخت و تنوع خواص است و چنانچه ساختار سیستم پیچیده تر شود و در اثر آن پیچیدگی، عملکردهای متنوع تری از سیستم به ظهور رسد و خواص بیشتری ارائه شود، سیستم متکامل تر شده است.

10 -گرایش به تعادل یا خود نگهداری پویا: این خصیصه که به هوموستاسیس معروف است بیانگر تلاش سیستم در حفظ متغیرهای ضروری خود در محدودهه ای معین به منظور ادامه حیات سیستم میباشد. 

نظریه عمومی سیستم ها:  این نظریه توسط برتالانفی ارائه گردید و بر اساس این نظریه یک ارگانیسم، صرفا مجموع عناصر جداگانه ای نبوده بلکه سیستمی است که دارای نظام و کلیت می ً باشد که مرتبا در حال تغییر و تبدیل است. به اعتقاد وی ارگانیزم را نمیتوان با شیوه تفکر و روشهای معمول در مکتب مکانیسمی شناخت و باید طرز تفکر نوینی را برای شناخت موجودات ارگانیک ابداع کرد، این نظر برتالانفی به نظریه عمومی سیستم ها شهرت یافت. 

نگرش سیستمی: این نگرش، چارچوبی منطقی و علمی ارائه میدهد که چند بعدی بوده و چارچوبی برای در نظر گرفتن عوامل محیطی، داخلی و خارجی سیستم به عنوان یک کل متشکل ارائه میدهد و به پدیده های اطراف به صورت یک کل به هم پیوسته مینگرد.

تعریف سیستم اطلاعات: تعاریف متعددی از سیستم اطلاعات در رشته‌ هایی مانند مدیریت، علوم کامپیوتر، مهندسی نرم افزار، و علوم کتابداری و اطالع رسانی ارائه شده است. تعریف زیر در واژه نامه انجمن کتابداری به عنوان (یانگ 1983) تعریفی جامع از سیستم‌ های اطلاعات است که در اینجا با اندکی تغییر در جمله بندی ارائه میشود: «یک سیستم کامل طراحی شده برای تولید، جمع آوری، سازماندهی (پردازش)، ذخیره، بازیابی و اشاعه اطلاعات در یک مؤسسه، سازمان یا هر حوزه تعریف شده دیگر از جامعه» 

همچنین سیستم اطلاعات یک سیستم کامل است برای هدف در نظر گرفته شده. این تعریف سیستم اطلاعات را محدود یا ملزم به داشتن اجزایی مانند انسان، ماشین و یا غیره نمیکند چراکه یک سیستم اطلاعات ممکن است بتواند بدون داشتن هر یک از این اجزاء نقش خود را به صورت کامل ایفا کند. سیستم اطلاعات شامل فرایندهای تولید، جمع آوری، سازماندهی، ذخیره، بازیابی و اشاعه اطلاعات است. اگر یک سیستمی همه این فرایندها را انجام نمیدهد نمیتوان به آن یک سیستم اطلاعات گفت. آن سیستم یا فرایند ممکن است یک زیر سیستم از یک سیستم اطلاعات اشد. سیستم اطلاعات میتواند برای یک مؤسسه، سازمان یا هر حوزه تعریف شده دیگر از جامعه مطرح شود. اگر چه سیستم‌ های اطلاعات در ابتدا برای استفاده در سازمان مطرح شده و شکل گرفته اند اما برای حوزه‌ هایی فراتر از سازمان (به عنوان مثال جامعه پژوهشگران، شهروندان و...) نیز قابل کاربرد است. در این تعریف از واژه «داده» استفاده نشده است. خیلی از منابع دو واژه داده و اطلاعات را متفاوت تعریف میکنند و اطلاعات را داده‌ های پردازش شده میدانند. مرز تفاوت بین داده و اطلاعات، نسبی است چرا که ممکن است اطلاعاتی دوباره پردازش، شوند و اطلاعات جدیدی تولید کنند. بنابراین در این شرایط نمیتوان گفت اطلاعات قبل از پردازش، داده بوده اند. 

 یک سیستم اطلاعات چه کار میکند؟ 

یک سیستم اطلاعات سه فعالیت عمده انجام میدهد. ابتدا اطلاعاتی را از منابع درون سازمانی یا برونسازمانی به عنوان ورودی دریافت میکند. سپس بر روی اطلاعات دریافت شده کارهایی انجام میدهد تا اطلاعات مورد نظر سیستم را  تولید کند. در نهایت، اطلاعات تولید شده را در اختیار کاربر در نظر گرفته شده مثال یک مدیر یا یک کارمند قرار میدهد. به عنوان مثال در یک سیستم اطلاعات رایانه ای که در بانک کار مربوط به حساب‌ های پس انداز را انجام میدهد، اطلاعات توسط کارمند بانک وارد میشود و پس از پردازش و ذخیره، رسیدی چاپ شده و به مشتری تحویل داده میشود. همچنین مشتری میتواند گزارشی از کارکرد حساب خود را دریافت نماید.

 تعریف تجزیه تحلیل سیستم ها

تجزیه تحلیل سیستم ها عبارت است از شناخت جنبه های مختلف سیستم و آگاهی از چگونگی عملکرد اجزای تشکیل دهنده آن و بررسی نحوه و میزان ارتباط بین اجزای آن به منظور دستیابی به مبنایی جهت طرح و اجرای یک سیستم مناسب تر. 

تعریف سیستم در یک سازمان 

در یک سازمان سیستم را مجموعهای از روش ها نیز تعریف کرده اند که به یکدیگر وابسته بوده و با اجرای آنها قسمتی از هدف سازمانی محقق میشود.

تعریف روش: عبارت است از یک رشته عملیات که برای اجرای کل یا قسمتی از یک سیستم انجام میگیرد مانند روش استخدام در یک سیستم پرسنلی یا روش انبارداری دریک سیستم تدارکاتی.  

تعریف شیوه: عبارت است از تشریح جزییات و نحوه انجام دادن کار مثل استفاده از کارت جهت حضور و غیاب کارکنان تجزیه و تحلیل سیستم ها در موارد زیر به مدیران کمک میکند:

1 -بررسی دوباره هدفهای سازمانی.

2 -آشنایی بیشتر با نحوه کارها.

3 -کمک در پی بردن به کمبود ها، نقایص و مشکلات.

4 -با استفاده از روشهای علمی، راهها و شیوه های بهتری را انتخاب و به مرحله اجرا بگذارند. 

تشریح مراحل تجزیه و تحلیل سیستم، طراحی و پیاده سازی 

مرحله اول : شناخت مشکل و تبیین آن: مشکل یا مشکلات مربوطه ممکن است از سوی مدیران، مقامات مسئول سازمانی و یا شخص تحلیل گر شناسایی گردد. 

مشکل مربوطه بایستی : 

- به اندازه کافی اهمیت داشته باشد که وقت و هزینه را بتوان صرف آن کرد.

- برای تشخیص مهم بودن مشکل باید ارتباط آن با هدف سازمان را بررسی کرد.

- در شناخت مشکل باید دقت کرد علتها با معلول ها اشتباه نشوند.

مرحله دوم: ایجاد فرضیه: پس از شناخت مشکل بایستی درباره عواملی که سبب بروز مشکل شده اند حدس زد و فرضیاتی را مطرح کرد و فرضیه اهم (مهمترین و محتملترین راه حل)را برگزید. 

مرحله سوم: جمع آوری اطلاعات: در این مرحله بایستی اطلاعاتی را پیرامون مشکل و راه حلهای آن کسب کرد.هر چه صحت و دقت اطلاعات بیشتر باشد،احتمال شناخت واقعیت و دستیابی به راه حل مناسب برای مشکل، بیشتر خواهد بود. 

مرحله چهارم : طبقه بندی اطلاعات: در این مرحله تحلیل گر داده های پراکنده را طبقه بندی نموده و به آنها نظم میبخشد تا معنیدار شوند. این اطلاعات به روش های منطقی و عقالیی و با توجه به ماهیت و نوع آنها طبقه بندی و کدگذاری میشوند. 

روش های طبقه بندی اطلاعات: 

1 -استفاده از جدول

2 -استفاده از نمودارها 

جدول: جدول بندی یکی از روشهای طبقه بندی اطلاعات است که به تحلیلگر کمک میکند تا وجوه تشابه و همبستگی اطلاعات را که به کمک طبقه بندی منطقی به صورت ردیف ها و ستونهای افقی و عمودی درآمده است به چشم ببیند.

نمودار: نمودارها از وسایل ترسیمی طبقه بندی و نظم بخشی به اطلاعات هستند و تحلیل گر با استفاده از آنها میتواند اطلاعات را به صورتی تنظیم و منعکس کند که درک آن برای بیننده و خواننده گزارش آسانتر شود و با صرف وقت کوتاهی از پیام آن مطلع گردد.

محاسن نمودارها: 

1 -مقایسه اطلاعات را آسان میکنند.

2 -چون از علائم در آنها استفاده میشود از طولانی شدن کالم جلوگیری میکنند.

3 -با کمک آنها بهتر میتوان روند تغییرات و تفاوت بین دو یا چند روند را مشاهده کرد.

برخی از مهمترین انواع نمودارها: 

الف) نمودار خطی

ب) نمودار میلهای یا ستونی

ج) نمودار دایرهای

چ)نمودار فضایی

ح) نمودار سازمانی  

مرحله پنجم: تجزیه و تحلیل اطلاعات: دراین مرحله تحلیل گر میکوشد تا ارتباط بین اطلاعات را کشف کند. در این مرحله سؤالاتی از قبیل سؤالات ذیل درباره اطلاعات پرسیده میشود:

1 -چه فعالیتی انجام میشود؟

2 -چرا آن فعالیت انجام میشود؟

3 -آن فعالیت را چه کسی انجام میدهد؟

4 -آن فعالیت چگونه انجام میشود؟

5 -آن فعالیت در کجا انجام میشود؟

6 -آن فعالیت در چه زمانی انجام میشود؟

روشهای اثبات منطقی در تجزیه و تحلیل اطلاعات: 

الف) قانون توافق مثبت 

ب) قانون توافق منفی

ج) متد ترکیبی با تغییرات مالزم 

مرحله ششم: نتیجهگیری و ارائه راهحل: در این مرحله تحلیل گر به تعبیر و تفسیر یافته های خویش پرداخته و چنانچه فرضیه های اولیه او تأیید گردند او موفق به کشف علت شده است و اگر تأیید نشده باشند بایستی به دنبال راه حل های دیگری برای مشکل باشد. 

نحوه ارائه راهحل: دراین مرحله تحلیل گر با کمک قدرت خلاقیت و ابتکار خویش و به مدد شناختی که نسبت به وضع موجود به دست آورده است پیشنهاداتی معقول و منطقی جهت رفع مشکلات و نقائص ارائه میدهد. 

نکاتی که در زمینه ارائه راهحل باید رعایت گردند:

1 -همخوانی راه حل با برنامه های سازمان

2 -ارائه چند راه حل به جای یک راه حل

3 -مطابقت با قوانین و مقررات

4 -قابلیت اعمال

5 -تناسب بین هزینه اجرا و منافع حاصل از اجرای طرح

6 -مسئولیت اجرا 

مرحله هفتم: تهیه و تنظیم گزارش: اقداماتی که تا این مرحله انجام گرفته اند توسط تحلیل گر در یک گزارش منظم تدوین و در دسترس مدیران و مقامات ذی ربط قرار میگیرد.

مرحله هشتم: اجرا : در این مرحله تحلیلگر طی برنامه ای پیشبینی های لازم را جهت اجرای پیشنهادات مصوب و پیاده کردن طرح های جدید و ایجاد تغییر در نظام قدیم انجام میدهد.

١ -تهیه برنامه زمانبندی اجرای راه حل مناسب

٢ -تعیین شاخص های ارزیابی موفقیت

٣ -اجرای برنامه زمان بندی حل شده

٤ -ارزیابی موفقیت

مراحل کد نویسی

اهميت طراحی برنامه 

فرض کنيد يک مسئله را برای تعدادی دانشجو تعريف و از آنان خواسته شده است که برنامه ای به منظور حل مسئله مورد نظر، طراحی و پياده سازی نمايند. پس از صرف چند ثانيه، بلافاصله دانشجويان شروع به تايپ کد مورد نظر خود به منظور حل مسئله مینمايند. در بين دانشجويان، دانشجویی وجود دارد که کاغذی را بر میدارد و شروع به  اشکال نوشتن موضوع مینمايد. دقايقی سپری میگردد، اما همچنان دانشجويان مشغول تايپ برنامه خود و يا احتمالاً زدایی! آن هستند.تقريباً بدون استثناء، دانشجویی که ديرتر از ديگران آغاز نموده است، با سرعت بيشتری تکليف خود را به پايان رسانده و حتی راه حل ارائه شده توسط وی، نيز از ساير دانشجويان به مراتب بهتر است.چرا؟ در صورتيکه به کاغذی که در اختيار دانشجو قرار داده شده، دقت نمائيد، يک طرح مناسب به منظور طراحی برنامه را برای مسئله، مشاهده خواهيد کرد. برخی از دانشجويان نيز ممکن است چندين کاغذ را تکميل و يک طراحی پيچيده را انجام داده باشند. نکته مهم در اين رابطه اين است که اين دانشجويان (چه آنانی که يک طراحی ساده را انجام داده اند و چه آنانی که يک طراحی پيچيده را دنبال نموده اند)، دارای يک الگو(طرح) برای برنامه خود، میباشند. 

الگوريتم: هر برنامه، میبايست دارای يک طرح و يا الگو بوده تا برنامه نويس بر اساس آن عمليات خود را دنبال نمايد. از ديدگاه برنامه نويسان، هر برنامه نيازمند يک الگوريتم است. به عبارت ساده، الگوريتم، بيانیهای روشمند به منظور حل يک مسئله بخصوص است. از منظر برنامه نويسان،الگوريتم به منزله يک طرح کلی و يا مجموعه دستورالعمل هایی است که با دنبال نمودن آنان، برنامه ای توليد میگردد. 

الگوريتم های ميکرو در مقابل ماکرو: الگوريتم ها دارای ويژگی های متفاوتی میباشند. ما میتوانيم در رابطه با الگوريتم استفاده شده به منظور نوشتن يک برنامه مشخص صحبت نمائيم. از اين زاويه، ما صرفا در رابطه با الگوريتم در سطح ماکرو(level macro) ،صحبت نموده ايم. در چنين مواردی، الگوريتم ارائه شده، سعی در به دست آوردن جنبه های عمومی برنامه از طريق يک مرور کلی به برنامه در مقابل درگير شدن در جزئيات را دارد. ما میتوانيم در رابطه با الگوريتم ها، از سطح «ميکرو» صحبت نمائيم. از اين زاويه، به سطوح پايينتر رفته و به عوامل اساسی و نگهدارنده ای که يک جنبه خاص از برنامه را با يکديگر مرتبط مینمايد، صحبت کرد. مثلاً در صورتيکه شما دارای داده هایی هستيد که می بايست قبل از استفاده مرتب گردند، الگوريتم های مرتب سازی متعددی در اين زمينه وجود داشته و میتوان يکی از آنها را به منظور تأمين اهداف مورد نظر خود انتخاب نمود. انتخاب يک الگوريتم مرتبسازی،  صرفا باعث حل شدن يکی از جنبه های متفاوت برنامه میگردد. پس از مرتبسازی داده ها، میبايست از يک الگوريتم ميکرو ديگر به منظور نمايش داده های مرتب شده استفاده گردد. 

همانگونه که احتمالاً حدس زده ايد، میتوان تمام الگوريتم های ميکرو را به منظور ايجاد يک الگوريتم ماکرو، جمع آوری  کرد. اگر با الگوريتم های ميکرو، آغاز نمائيم، و حرکت خود را به سمت نمايش ماکروی يک برنامه، پيش ببريم، کاری را انجام داده ايم که موسوم به طراحی »پايين به بالا» (buttom-up)،است. اگر فعاليت خود را با يک الگوريتم ماکرو آغاز و حرکت خود را به سمت پائين و الگوريتم های ميکرو، ادامه دهيم، طراحی از نوع «بالا به پايينdown-top «(را انجام دادهايم. شايد اين سؤال مطرح گردد که کدام روش بهتر است؟ هر رويکرد، دارای نکات مثبت و منفی مربوط به خود است. صرفه نظر از رويکرد طراحی استفاده شده، میبايست دارای الگویی (طرحی) مناسب برای برنامه باشيم.حداقل، نيازمند يک اعلاميه از مسئله برنامه نويسی و يک طرح (الگو) برای برخورد با مسئله، خواهيم بود. پس از شناخت مسئله، میتوان نحوه حل مسئله را ترسيم کرد. شناخت عميق و مناسب نسبت به مسئلهای که قصد حل آن را داريم، شرط اساسی و ضروری برای طراحی يک برنامه است

با توجه به اينکه اين اعتقاد وجود دارد که شناخت جامع و کلی از مسئله ای که حل آن را داريم، بخشی ضروری در اولين مرحله برنامه نويسی است، ما در ادامه از رويکرد «بالا - پايين»، تبعيـت می نمائيم. فراموش نکنيد که رويکرد فوق، امکان مشاهده مجازی از هر مسئله برنامه نويسی را فراهم خواهد نمود. مراحل پنج گانه هر برنامه را صرف نظر از ميزان پيچيدگی آن، میتوان به پنج مرحله اساسی تجزيه کرد : 

  1.  مقداردهی اوليه  
  2.  ورودی  
  3. پردازش
  4. خروجی
  5. پاکسازی

 

در ادامه به بررسی هريک از مراحل فوق، خواهيم پرداخت. 

مرحله مقداردهی اوليه : اولين مرحله ای است که میبايست در زمان طراحی يک برنامه در رابطه با آن فکر کرد. مرحله فوق، شامل تمامی عمليات مورد نيازی است که برنامه میبايست قبل از برقراری ارتباط با کاربر، انجام دهد. در ابتدا ممکن است اين موضوع که عملياتی را قبل از برقراری ارتباط با کاربر میبايست انجام داد، تا اندازه ای عجيب به نظر رسد ولی احتمالاً از برنامه هایی نظير Excel، Word و يا برنامه های مشابه ديگر، با چنين مواردی برخورد نموده ايم. مثلاً با انتخاب گزينه منو File ،میتوان ليستی از فايل هایی را که با آنها کار کرده ايم در بخش انتهایی منوی فوق، مشاهده کرد. (مشاهده آخرين فايل های استفاده شده در يک برنامه خاص، با استفاده از جادو! ميسر نشده است). برنامه مورد نظر شايد، ليست فايل های اخير را از ديسک خوانده و آنها را به ليست مربوطه در منوی File ،اضافه کرده باشد. با توجه به اينکه ليست فايل های فوق، میبايست قبل از اينکه برنامه هر چيز ديگر را برای کاربر نمايش دهد، خوانده و نمايش داده شوند، میتوان انجام عمليات فوق را نمونه ای از مرحله مقداردهی اوليه، در نظر گرفت. 

يکی ديگر از عمليات متداول که به اين مرحله مرتبط میباشد، خواندن فايل های Setup است. چنين فايل هایی ممکن است حاوی اطلاعاتی در رابطه با نام مسيرهایی باشند که بانک های اطلاعاتی خاصی و يا فايل های ذخيره شده ديگری را بر روی ديسک مشخص می نمايند. با توجه به نوع برنامه ای که اجرا میگردد، فايل های Setup میتوانند شامل اطلاعاتی در رابطه با فونت های نمايش، نام و محل چاپگر، رنگ های زمينه و رويه، وضوح تصوير صفحه نمايشگر و اطلاعات مشابهی ديگر باشند. ساير برنامه ها ممکن است مستلزم خواندن اطلاعاتی در رابطه با اتصالات شبکه، مجوزهای امنيتی و دستيابی به اينترنت، رمزهای عبور و ساير اطلاعات حساس ديگر باشند. در چنين مواردی فايل های Setup دارای نقشی مهم خواهند بود. 

در زمان طراحی يک برنامه، همواره میبايست در رابطه با اطلاعاتی که يک برنامه قبل آغاز خدمات و عمليات خود به آنها نيازمند است، انديشيد و برای آنان در مرحله مقداردهی اوليه راهکار مناسب را انتخاب کرد. مرحله مقداردهی اوليه ً جایی است که میبايست از طريق آن اقدام به ارائه راهکار مناسب در جهت پاسخ به نيازهای فوق، کرد. 

مرحله ورودی: در حقيقت چيزی است که انتظار داريد باشد! مرحله فوق، شامل اخذ (جمع آوری) هر آن چيزی است که يک برنامه برای انجام فعاليت های خود به آنها نياز خواهد داشت. دراکثر موارد، اگر استنباط مناسبی از عملياتی را که يک برنامه قصد انجام آن را دارد، حاصل گردد، مشخص نمودن ليستی از ورودی ها، کاری ساده خواهد بود. مثلاً اگر شما قصد نوشتن يک برنامه وام را داريد، میدانيد که میبايست از کاربر، ميزان وام درخواستی، بهره موردنظر و مدت زمان وام، درخواست گردد. در حالات ديگر، لازم است در رابطه با نوع ورودی هایی که میبايست از کاربر اخذ گردد، بررسی لازم و مبتنی براندیشه را دنبال نمود. مثال در صورتي که قصد نوشتن يک برنامه دفترچه آدرس را داريد، آيا میخواهيد نام فايل حاوی دفترچه تلفن و محل ذخيره فايل مربوطه را در هر مرتبه که برنامه اجرا میگردد، از کاربر درخواست نمائيد؟ بهعبارت ديگر برخی از مراحل ورودی میتوانند و شايد میبايست، توسط مرحله مقداردهی انجام شوند. ماهيت واقعی ميزان اطلاعاتی که میتوان آنها را در مرحله مقداردهی خواند، بستگی به رفتار برنامه دارد. به عنوان يک قانون عمومی میتوان به اين مورد اشاره داشت که اکثر کاربران تمايل دارند که اطلاعات تکراری در يک فايل Setup و يا مقداردهی اوليه ذخيره گردد (در مقابل اينکه هر مرتبه که برنامه اجرا میگردد، مجبور به ورود اطلاعات تکراری باشند). فايل های Setup بسيار مناسب بوده و در هرموردی که امکان به خدمت گرفتن آنان منطقی به نظر میآيد، میبايست از آنان استفاده گردد. برخی ديگر از اطلاعات اوليه دارای ماهيت خاص خود بوده و تا زماني که کاربر آنها را تايپ ننمايد، شناخته نمیگردند. در مثال وام اشاره شده، میتوان از Textbox های متعددی به منظور اخذ اطلاعات از کاربر و استفاده از آنان در برنامه، کمک گرفت. با توجه به اينکه کاربر میبايست با اين Textbox های مرتبط اطلاعات مورد نياز برنامه را وارد نمايد، روشی که شما به منظور ارائه Menus، Labels، Textbox و ساير عناصر برنامه، استفاده مینمایید، يکی از بخش های مهم يک برنامه يعنی رابط کاربر (interface user) را مشخص خواهد کرد. فراموش نکنيم يکی از عوامل موفقيت هر نرم افزار، بخش رابط کاربر آن است. طراحی مناسب بخش فوق، امروزه به عنوان تخصصی خاص در طراحی و پياده سازی نرم افزار مطرح و دارای جايگاه خاص خود است. 

مرحله پردازش:شامل انجام عمليات برروی ورودی (ورودی ها)، به منظور توليد نتايج مورد نظر برای برنامه است. در مثال وام، برنامه پس از دريافت ورودی های مورد نظر (ميزان وام، درصد بهره و زمان وام) آنها را از طريق يک معادله مالی به يکديگر مرتبط و پس از حل معادله، نتيجه مورد نظر حاصل خواهد شد(ميزان پرداخت ماهانه). به عبارت ديگر، مرحله پردازش قادر به دريافت ورودی، برخورد با آنها و توليد پاسخ مناسب به مسئله است. توجه داشته باشيد که مرحله پردازش همواره باعث نمايش چيزی بر روی نمايشگر نخواهد شد. هدف، عمل (عمليات) برروی داده (داده ها) به منظور توليد يک نتيجه (نتايج) است. در اين رابطه هيچگونه استثنایی وجود ندارد. در صورتيکه در برنامه ای از قبل میدانيم که مرحله پردازش زمان زيادی طول خواهد کشيد، منطقی است که فيدبک های لازم به منظور آگاهی کاربر از ميزان و درصد انجام پردازش (پردازش ها) در اختيار وی گذاشته شود (در زمانيکه برنامه در حال اجراء است). در اين رابطه میتوان از روش های متعددی استفاده کرد. (ارائه يک ميله پيشرفت، براورد زمان تقريبی به منظور اتمام عمليات). 

مرحله خروجی: مرحله فوق، پاسخ (پاسخ های) مناسب و مورد انتظار را به کاربران مبنی بر حل مسئله مورد نظر، ارائه مینمايد. تعداد زيادی ازبرنامه ها، پاسخ نهایی (نتيجه) خود را از طريق يک Textbox ،نمايش و در اختيار کاربر قرار میدهند، مثلاً اگر برنامه ای نوشته شده است که قصد محاسبه و نمايش ميزان پرداخت ماهيانه يک وام دريافتی را داشته باشد، میتوان نتيجه به دست آمده (پرداخت ماهانه) را از طريق يک Textbox ،ارائه کرد تا پاسخی مناسب در ارتباط با مرحله خروجی يک برنامه، داده شده باشد. ساير برنامه ها ممکن است دارای وضعيتی به مراتب پيچيدهتر باشند. مثلاً میتوان برنامه ای را در نظر گرفت که نام، آدرس، شماره تلفن و ساير اقلام اطلاعاتی را از بانک اطلاعاتی خوانده و در ادامه آنها را بر روی صفحه نمايشگر، نشان دهد. برنامه هایی اينچنين، نيازمند شکل مناسب تری از نمايش خروجی بوده و نمیتوان با استفاده از چند Textbox به خواسته خود دست يافت (ارائه يک خروجی مطلوب و انعطاف پذير) در اينگونه موارد میبايست از راهکارهای مناسبتری استفاده گردد. مثلاً میتوان از جداول خاصی به منظور نمايش اطلاعات مورد نظر استفاده کرد.(استفاده از grid و يا box List که برنامه در صورت ضرورت آن را تکميل نمايد). نکته مهمی که میبايست در رابطه با مرحله خروجی رعايت گردد، آگاهی از اين موضوع است که با توجه به نمايش نتايج خروجی برای کاربر، بخش فوق را میتوان جزیی از بخش رابط کاربر يک نرم افزار در نظر گرفت. در زمان ورود اطلاعات (مرحله ورودی) از عناصر متفاوتی به منظور اخذ اطلاعات توسط کاربر در بخش رابط استفاده میگردد، در مرحله خروجی، بخش رابط کاربر با کاربر به گونه ای ديگر مرتبط خواهد شد (ارتباطی به مراتب غيرفعالتر نسبت به مرحله ورود اطلاعات ). 

مرحله پاکسازی (Cleanup) :به منظور خاتمه بخشيدن مؤدبانه يک برنامه، پس از تکميل عمليات مربوطه است. میتوان اين مرحله را به عنوان مکمل مرحله مقداردهی اوليه درنظر گرفت. با اينکه تعداد زيادی از برنامه های ساده قادرند به سادگی و بدون انجام عمليات تکميلی توسط برنامه نويس، خاتمه يابند، ولی برنامه های پيچيده زيادی نيازمند برخی کمک ها در اين زمينه میباشند.  مثلاً اگر برنامه ای يک فايل Setup را به منظور مقداردهی برخی از متغيرها در مرحله مقداردهی اوليه، خوانده باشد، مرحله پاکسازی میتواند شامل به نگام سازی آن دسته از متغيرهای موجود در فايل Setup باشد که نشان دهنده آخرين اطلاعات کاربر است. مرحله پاکسازی، اغلب شامل بستن فايل ها (فايل های Setup و بانک اطلاعاتی) است. برخی برنامه ها ميزان استفاده از برنامه توسط کاربران را ثبت و اطلاعات مربوطه را در مکان هایی که file Log ناميده میشوند، ذخيره مینمايند (ثبت مشخصات افرادي که برنامه را اجرا نموده اند به همراه ساير اطلاعات مرتبط نظير تاريخ و زمان آغاز و توقف برنامه، در خيلی از برنامه ها به امری ضروری تبديل شده است). يکی ديگر از انواع فايل های Log به فايل های ثبت خطا برمیگردد (file log error .)هدف اين نوع از فايل ها، ثبت اطلاعاتی در رابطه با هر نوع خطایی است که ممکن است در مدت زمان اجرای يک برنامه، محقق گردد. برنامه نويسان با استفاده از محتويات اين نوع فايل ها، قادر به اشکال زدایی برنامه خواهند بود. 

عمليات واقعی و موردنظری که میبايست در مرحله پاکسازی، انجام گردد، به نيازهای يک برنامه بستگی خواهد  اگر در برخی برنامه ها عمليات خاصی را در مرحله مقدار دهی اوليه انجام دهيم، میبايست برخی از داشت. معمولاً عمليات متناظر با آنان را در مرحله پاکسازی انجام داد. باز نمودن و بستن فايل های مورد نياز در يک برنامه، نمونه ای متداول از دو مرحله فوق میباشد.  

آيا هر برنامه شامل پنج مرحله گفته شده است؟  

در پاسخ به سؤال فوق میبايست با صراحت پاسخ منفی داده شود. در اين راستا، برنامه های متعددی وجود دارد که مثلاً به مراحل مقداردهی اوليه و يا پاکسازی، نياز نخواهند داشت. مراحل مقداردهی اوليه و پاکسازی در مرحله طراحی برنامه های پيچيده مورد توجه جدی قرار خواهند گرفت. به موازات افزايش تجربه در نوشتن برنامه، شناخت مناسبی در اين رابطه به وجود میآيد (کدام برنامه به تمام مراحل پنجگانه نياز و کداميک نياز ندارند). طراحان میبايست همواره يک مسئله برنامه نويسی را با فرض وجود پنج مرحله ياد شده، دنبال نمایند. قطعا حذف يک مرحله در زمان طراحی به مراتب ساده تر از ناديده گرفتن اوليه آن خواهد بود. 

پالایش يک طرفه (Refinement Sideways) :همان گونه که قبلاً اشاره گرديد، ما علاقه مند به طراحی بالا به پايين میباشيم. (الگوريتم ماکرو به عنوان يک نقطه شروع در فرايند طراحی برنامه). پس از انتخاب رويکرد فوق، میبايست شناخت مناسبی نسبت به مسئله ای که قصد حل آن وجود دارد، ايجاد گردد تا رسيدن به سطح ميکرو(ارائه الگوريتم های ميکرو) به منظور حل مسئله مورد نظر راه زيادی را در پيش خواهيم داشت. به موازات حرکت از سطح مرور کلی برنامه به خصوصيات و ويژگی های يک برنامه، میبايست دانش خود را نسبت به جرئيات مربوطه افزايش داد. 

از پنج مرحله گفته شده، میتوان به منظور نقطه شروع ديد ماکرو خود در زمان فرايند طراحی استفاده کرد. درادامه، میتوان هر يک از مراحل را به دقت بررسی کرد تا جزئيات بيشتری در رابطه با مرحله مورد نظر، مشخص گردد (استخراج جزئيات لازم در رابطه با تحقق هر مرحله). فرايند فوق، «پالایشيک طرفه»، ناميده میشود. در ادامه، به منظور شناخت مناسب فرايند پالایش يک طرفه، به بررسی يک نمونه میپردازيم. 

فرض کنيد، کاربری دارای يک فايل بانک اطلاعاتی است که در آن تمام قرار ملاقات های وی، ذخيره شده اند. قرار ملاقاتها در بانک اطلاعاتی با نظم و ترتيب خاص (تاريخ قرار ملاقات) ذخيره شده اند. کاربر، میخواهد قادر به مشاهده قرار ملاقات های خود بر اساس حروف الفبایی و براساس نام خانوادگی اشخاص مورد نظری که قصد ملاقات با وی را دارند، باشد. چگونه میتوان از پالایش يک طرفه، به منظور طراحی يک راه حل استفاده کرد؟ 

پالایش يک طرفه مرحله مقداردهی اوليه: میدانيم که کاربر دارای يک بانک اطلاعاتی شامل قرار ملاقاتها میباشد. ما همچنين میدانيم که کاربر میخواهد ليستی از قرار ملاقاتهای خود را به صورت مرتب شده و براساس نامخانوادگی مشاهده نمايد. موارد فوق، ديد ماکروی ما از الگوريتم است. بنابراين، در مرحله مقداردهی اوليه چه عملياتی میبايست انجام داد؟ واضح است که ما نيازمند باز نمودن بانک اطلاعاتی قرار ملاقات ها میباشيم. ما همچنين نيازمند يک فرم (مثال يک فرم مبتنی بر NET.VB و يا فرم وب) به منظور نمايش نتايج پس از مرتب سازی قرار ملاقاتها، خواهيم بود. (فرض میشود از مکان بانک اطلاعاتی بر روی شبکه آگاهی داريم، و میتوان نام و رمز عبور کاربر را از بانک اطلاعاتی مربوطه به محض آغاز اجرای برنامه توسط کاربر، مشخص کرد). 

همانگونه که در شکل فوق، مشاهده میگردد به موازات حرکت از سمت چپ به سمت راست، جزئيات مربوطه افزايش خواهد يافت. شکل فوق، پالایش يک طرفه، ليستی از برنامه های جانبی و توابع مورد نياز به منظور انجام فعاليت های مربوطه در مرحله مقداردهی اوليه را نشان میدهد. هر روتين کوچک، مسئول انجام عملياتی خاص خواهد بود.

 

 

آشنایی مهارت های عمومی برنامه نویسی (فصل اول)

آشنایی مهارت های عمومی برنامه نویسی (فصل دوم)

آشنایی مهارت های عمومی برنامه نویسی (فصل سوم)

آشنایی مهارت های عمومی برنامه نویسی (فصل چهارم)

آشنایی مهارت های عمومی برنامه نویسی (فصل پنجم)

آشنایی مهارت های عمومی برنامه نویسی (فصل ششم بخش 1)

آشنایی مهارت های عمومی برنامه نویسی (فصل ششم بخش 2)

آشنایی مهارت های عمومی برنامه نویسی (فصل هفتم)

آشنایی مهارت های عمومی برنامه نویسی (فصل هشتم بخش 1)

آشنایی مهارت های عمومی برنامه نویسی (فصل هشتم بخش 2)

 

امیدواریم از این مقاله بهره کافی را برده باشید وبرای شما مفید بوده باشد.

سؤالات خود در رابطه با این مقاله و همچنین انتقادات و پیشنهادات خود را در قسمت نظرات با ما در میان بگذارید


این مقاله فایلی برای دانلود ندارد
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.