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

در ساليان اخير ، متدولوژی های متفاوتی بمنظور طراحی برنامه ، پياده سازی و در اختيار طراحان برنامه های کامپيوتری قرار گرفته شده  است . برخی از اين متدلوژی ها ی طراحی، پيچيده  و برخی ديگر ساده می باشند . در تمامی حالات ، هدف يکی است : کمک به برنامه نويسان در جهت نوشتن برنامه ها ئی که  بسادگی نوشته ، اشکال زدائی  و در نهايت نگهداری گردند .
در اين مقاله به بررسی مسائل مرتبط با طراحی برنامه پرداخته و در اين راستا در ابتدا  با يک متدولوژی ساده  آشنا خواهيم شد. متدلوژی استفاده شده با اينکه بسيار مقدماتی می باشد ولی اهداف ما را در جهت نحوه طراحی يک برنامه بخوبی تامين خواهد کرد .در اين مقاله ، به بررسی الگوريتم و مراحل پنج گانه برنامه نويسی خواهيم پرداخت .  پس از آشنائی با متدولوژی ارائه شده در اين مقاله ، در بخش دوم مقاله ،  با متدولوژی UML)Unified Modeling Language ) آشنا خواهيم شد. UML ، يک متدولوژی  رايج بمنظور طراحی  برنامه های کامپيوتری خصوصا" برنامه نويسی شی گراء است .

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

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

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

مراحل پنج گانه
هر برنامه را صرفنظر از ميزان پيچيدگی آن ، می توان  به  پنج مرحله اساسی تجزيه کرد :

  • مقدار دهی اوليه

  • ورودی

  • پردازش

  • خروجی

  • پاکسازی

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

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

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

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

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

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

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

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

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

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

شبه کد ( Pseudo Code )
عمليات پالايش را می توان در رابطه با هر مرحله  با استفاده از "شبه - کد " ، دنبال کرد. شبه کد ،الگوريتمی برای بيان عملياتی است که می بايست  توسط يک روتين محقق گردد . در اين راستا از يک گرامر مشابه انگليسی ، استفاده می گردد . مثلا"  شبه کد ، روتين IsValidUser بصورت زير خواهد بود:

شبه کد روتين IsvalidUser

Is ValidUser()
  If  CurrentUserName Not in ValidUserList
        Display Invalid User Error Message
        Terminate Program
  Else
       Return ValidUserIDNumber
End

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

در بخش دوم اين مقاله ،  با متدولوژی UML)Unified Modeling Language ) آشنا خواهيم شد. UML ، يک متدولوژی  طراحی  متداول خصوصا" در زمينه  برنامه نويسی شی گراء است .


 


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:








تاریخ: پنج شنبه 12 ارديبهشت 1392برچسب:,
ارسال توسط هادی احمدی

آرشیو مطالب
پيوند هاي روزانه
امکانات جانبی

آمار وب سایت:  

بازدید امروز : 33
بازدید دیروز : 1
بازدید هفته : 33
بازدید ماه : 618
بازدید کل : 162561
تعداد مطالب : 736
تعداد نظرات : 23
تعداد آنلاین : 1

Google

در اين وبلاگ
در كل اينترنت
 <-PostTitle-> <-PostContent-> 1 <-PostLink->