جلسه پنجم
مفاهیم و اصول طراحی
هدف از طراحی, اطمینان از کیفیت نرمافزار, کاهش ریسک قبل از پیادهسازی و کاهش میزان خطاهاست. در گام تحلیل محصولاتی تولید میشود و در گام طراحی از آنها استفاده میشود. در گام طراحی 4 عمل اصلی و اساسی انجام میشود:
1) طراحی داده براساس مدل ERD و DD.
2) طراحی معماری براساس مدلهای DFD و CFD.
3) طراحی واسطهها براساس SDT, Pspec و Cspec .
4) طراحی رویهها براساس Pspec, Cspec.
اصول طراحی:
1) براساس مدل تحلیل, طراحی صورت میگیرد و قابل پیگیری باشد.
2) در طراحی, چیز جدیدی تولید نشود و از روش جدیدی استفاده نشود. بلکه از روشها و مدلهای موجود استفاده کنیم.
3) طراحی فاصله ادراکی میان تحلیل و پیادهسازی را تا حد امکان کم میکند.
4) طراحی, کدنویسی نیست.
5) اصل طراحی کیفیت است و باید توجه اصلی به آن باشد.
کیفیت:
خارجی: آنچه مشتری میبیند و ارزیابی میکند مثل عملکرد, ظاهر, کارایی و …
داخلی: خود مهندسین نرمافزار آن را میبینند و براساس مفاهیم دیگری کیفیت نرمافزار را میسنجند که به آنها «مفاهیم طراحی» میگویند.
مفاهیم طراحی:
1) انتزاع یا مجردسازی: در طراحی سطح انتزاع را گام به گام کاهش میدهیم تا رفته رفته به پیادهسازی نزدیک شویم.
2) پالایش: درهرگام جزئیات بیشتری به مسئله اضافه میکنیم و دوباره انتزاع و پالایش میکنیم. انتزاع و پالایش هردو مکمل یکدیگرند.
3) خاصیت پیمانهای: هر طراحی خوب با صرفهنظر از روش, باید خاصیت پیمانهای را در نظر بگیرد.پیچیدگی و هزینه لازم برای مسئله بزرگ از پیچیدگی و هزینهی یک مسئله تقسیم شده بیشتر خواهد بود.
4) معماری: همبندی مولفهها و ساختارکلی نرمافزار است. همبندی ماژولها و ارتباط آنها معماری را میسازد.
5) سلسله مراتب کنترل: پیمانههای سطح بالا پیمانههای کنترلی هستند و پیمانههای سطوح زیرین کارهای اصلی و پردازشها و ورودی و خروجی را انجام میدهند.
6) تقسیمبندی: شکستن سیستم به زیر سیستمها. دو نوع دارد: افقی و عمودی.
7) ساختمان دادهها: ساختمان دادهها رابطه منطقی میان عناصر دادهای را نشان میدهد.
8) رویه نرمافزار: در رویه جزئیات پردازشی و منطق هریک از پیمانهها و ترتیب اجزای دستورات وشرطها بیان میشود.
9) پنهانسازی اطلاعات: یک طراحی خوب اطلاعات را پنهان میکند. منطق ماژولها از چشم هم پنهان است, بلکه فقط به نتایج یکدیگر کار دارند.
استقلال تابعی: باید این خاصیت وجود داشته تا هر ماژول کار خود را به خوبی انجام دهد. در استقلال تابعی دو مفهوم مطرح است:
1) وحدت: کارهایی که در یک ماژول قرار میگیرد به گونهای در کنار هم باشند که بتوان گفت در کل ماژول چه کاری انجام میدهد. انواع وحدت:
1-1) وحدت تصادفی
1-2) وحدت زمانی
1-3) وحدت رویهای
1-4) وحدت ارتباطی
1-5) وحدت منطقی
2) کوپل(ارتباط) : در کوپل به ارتباط میان ماژولها کار داریم و زمانی کوپل خوب است که ارتباط پیمانهها کم باشد. انواع :
2-1) کوپل دادهای ( مولفه – ساختمان داده – کنترل )
2-2) کوپل مشترک
2-3) کوپل خارجی
2-4) کوپل محتویات
اعمال اصلی طراحی:
1) طراحی داده: ساختمان دادههای سیستم را مشخص میکنیم.در سه سطح است:
1-1) سطح مولفه: تا انتهای گام طراحی عقب میاندازیم. مانند تعریف متغیرها و مقادیر اولیه به آنها
1-2) در سطح کاربرد: پایگاه داده است که از روی مدل ERD جداول را میسازیم.
1-3) در سطح تجاری: طراحی مخزن داده است.
2) طراحی معماری: از چند الگوی مشخص استفاده میکنیم:
2-1) معماری بر پایه داده
2-2) معماری جریان داده
2-3) معماری لایهای
2-4) معماری Call Return
2-5) معماری شیگرا
کیفیت طراحی معماری: کمی و کیفی
جریان فرآیند در DFD:
1) جریان تبدیل: در این جریان دادهها مرتب تغییر میکنند و فرآیند جلو میرود.
2) جریان تراکنش: قلم دادهای در یک ماژول وجود داردکه براساس شرایط آن قلم داده یکی از خروجیها انتخاب میشود, به طوریکه انگار در منطق آن ماژول تصمیمگیری انجام میشود.
3) طراحی واسطهها: Interface تاثیر زیادی در مشتری دارد و به همین دلیل اهمیت بسیار زیادی در تولید نرمافزار خواهد داشت, زیرا بیشتر تعامل کاربر با Interface است.
اصول طراحی واسط:
1) کنترل را به کاربر بدهید
2)بارفکری کاربر را کم کنیم
3) واسط را یکنواخت کنیم
§ در مرحله طراحی واسط Help نرمافزار تولید میشود و شامل دو نوع است:
1) مجتمع شده: در هنگام ساخت به سیستم اضافه میشود و همراه با سیستم جلو میرود و در هر وضعیت سیستم, Help مربوط به آن وضعیت را نشان میدهد.
2) اضافه شده: پس از تولید و تکمیل نرمافزار, Help آن تولید میشود.
4) طراحی رویهها:
در این گام داخل ماژولها را پر میکنیم. بااستفاده از شبه کد, منطق هر ماژول را تعیین و ساختماندادهها و نوع دادهها را مشخص میکنیم. شامل سه مدل زیر است:
4-1) نشانگذاری طراحی گرافیکی: برای نشان دادن منطق ماژولها یا از روش نشانهگذاری گرافیکی یا از ابزار گرافیکی دیگری بهنام نمودار جعبهای استفاده میکنیم.
4-2) نشانگذاری جدولی طراحی: برای نرمافزارهایی که در آنها شرطها خیلی کاربرد دارد استفاده میشود. در این جدول تصمیمگیری همی شرطهای ممکن و موجود در مسئله را به همراه اعمالی که در سیستم در نتیجه ترکیب آنها جمع میشود را لیست میکنیم.
4-3) زبان طراحی برنامه: استفاده از زبا طراحی برنامه یا شبه کد است. این روش از این جهت مناسبتر از سایر روشهاست زیرا همهی شرطها را نشان میدهد و ویرایش آن راحتتر است و قابلیت خواندهشدن توسط ماشین از جمله تواناییهای این روش است.