بخشی از پاورپوینت
اسلاید 1 :
جلسه ششم طراحی
مهندسی نرم افزار
اسلاید 2 :
مفاهیم
مدل طراحی چیزی معادل نقشه یک معمار برای یک خانه است
این مدل با بازنمایی کلیت چیزی که قرار است ساخته شود، شروع می شود و به آرامی به تصفیه می پردازد تا رهنمودهای هرچه بیشتری برای ساخت جزییات بدست آید
اسلاید 3 :
اصول طراحی Davis
فرایند طراحی باید گزینه های مختلفی را برای راه حل بررسی کند
براساس نیازمندی ها بهترین و مناسب ترین گزینه را انتخاب کند
اولین راه حل به ذهن رسیده همیشه بهترین نیست
اسلاید 4 :
اصول طراحی Davis
2- طراحی باید قابلیت تطبیق با نیازمندی ها را داشته باشد
بتوان تشخیص داد کدام نیازمندی توسط کدام بخش پاسخ داده می شود
اسلاید 5 :
3- طراحی نباید به اختراع مجدد چرخه بپردازد
سیستم ها با به کارگیری مجموعه ایی از الگوهای طراحی ساخته می شوند
4- طراحی فاصله ذهنی بین نرم افزار و مسئله موجود در جهان واقعی را کمینه کند
ساختار نرم افزار حدامکان از ساختار مسئله تبعیت کند
اسلاید 6 :
5- طراحی باید همگون و اجتماع داشته باشد.
طرحی را همگون گویند اگر به نظر بیاید کل طرح توسط یک نفر طراحی شده
6- طراحی باید تغییرات بعدی را میسر سازد
7- طراحی باید برای کنترل داده ها، وضعیت های عملیاتی اشتباه و رویدادها، ساختار مناسب در نظر بگیرد
اسلاید 7 :
8- طراحی کدنویسی نیست و کدنویسی طراحی نیست
در پایینترین سطح طراحی، سطحی بالاتر از کدنویسی دارد
9- طراحی در حین بوجود آمد باید مورد بررسی قرار گیرد و نه بعد از بوجود آمدن
10- طراحی باید به منظور کم کردن خطاهای مفهومی بررسی گردد
اسلاید 8 :
مفاهیم طراحی
abstraction
هرگاه برای یک مسئله راه حل پیمانه ایی(modular) مورد بحث قرار می گیرد، سطوح مختلفی از تجرید(abstraction) در نظر گرفته می شود
در بالاترین سطح انتزاع راه حل با بکارگیری زبان محیط، مسئله را در قالب کلماتی بیان میکند
در پایینترین سطح راه حل به گونه ایی بیان می شود تا مستقیما قابل پیاده سازی باشد
اسلاید 9 :
مفاهیم طراحی
Refinement(پالایش، تصفیه)
تصفیه گام به گام یک استراتژی « بالا به پایین» است که با تجزیه مکرر عبارات درشت به عبارات زبان برنامه نویسی تبدیل می شود
تصفیه و تجرید دو مفهوم مکمل یکدیگر هستند
تجرید: طراح فارغ از جزییات به تعریف روالها و داده ها می پردازد
تصفیه: با پیشرفت طراحی جزییات هر بیشتری بازنمایی می شود
اسلاید 10 :
مفاهیم طراحی
Modularity ( پیمانه)
کل نرم افزار به مولفه های مشخص و نامدار تقسیم می شوند که پیمانه نامیده می شود
با ترکیب پیمانه نیازمندی مسئله پاسخ داده می شود
در طراحی نرم افزار نباید یک ضرب شروع به نوشتن برنامه کرد
اسلاید 11 :
معیار طراحی
Modular decomposability
تجزیه پذیری مناسب
Modular compasability
ترکیب پذیری
Modular understandability
قابلیت فهم
اسلاید 12 :
معیار طراحی
continuity
تغییر در برنامه، با تغییر اندک برنامه ممکن شود
protection
اگر یک ماژول در خودش مشکلی پیدا کرد، آن را نباید به برنامه های دیگر گسترش دهد
اسلاید 13 :
سلسله مراتب
سلسله مراتب کنترل شامل کار روی ساختمان داده ها می باشد
depth
width
Fan out
Fan in
اسلاید 14 :
سلسله مراتب
Fan out پارامتری برای تعداد پیمانه هایی است که مستقیما توسط یک پیمانه کنترل می شوند
مثلا fan out، m برابر 4 است
Fan in پارامتری برای تعداد پیمانه هایی است که یک پیمانه را کنترل می کند
مثلا fan in، m برابر 1 است
اسلاید 15 :
طراحی ساختمان داده ها
ساختمان داده ها عبارتند از یک بازنمایی از روابط منطقی بین عناصر داده ای
Data structure
Scalar items: integer, string,….
Sequential vector: آرایه های scalar
N-dimensional space: آرایه های چند بعدی
مثل ماتریس،
اسلاید 16 :
روال نرم افزار
ساختمان داده برنامه توصیف گر سلسله مراتب کنترل می باشد، بدون در نظر گرفتن توالی پردازش و تصمیمات
روال نرم افزار بر جزییات پردازش هر کدام از پیمانه ها متمرکز می شود
روال نرم افزار باید توصیف دقیق از پردازش شامل
توالی رویدادها ( کدام دستوری بعد از کدام دستور می باشد)
نقاط دقیق تصمیم(شرطهایی مثل IF)
عملیات تکرار شونده( حلقه های تکرار)
استفاده از ساختمان داده ها
اسلاید 17 :
روال نرم افزار
عملکرد
شروع و پایان
شرط
توابع
اسلاید 18 :
طراحی پیمانه ای کارا
تمام مفاهیم پایه ایی طراحی برای رسیدن به یک طراحی پیمانه ای کارا ارائه شده است
طراحی پیمانه ایی باعث کاهش پیچیدگی، سهولت تغییرات و سادگی پیاده سازی خواهد شد
در طراحی پیمانه ایی هدف طراحی نرم افزار با در نظر هر پیمانه بعنوان یک تابع می باشد
هر پیمانه بخشی از نیازمندی ها را پاسخ می گوید
در طراحی پیمانه ایی بخش ها بصورت مستقل و از دید بخش های دیگر دارای عملکرد بخصوص می باشد
استقلال در روش پیمانه ایی با دو معیار بررسی می گردد
اسلاید 19 :
استقلال عملکرد در طراحی پیمانه ایی
استقلال در روش پیمانه ایی با دو معیار بررسی می گردد
انسجام-cohesion
وابستگی- coupling
اسلاید 20 :
انسجام
یک پیمانه منسجم یک وظیفه مشخص را از طریق یک روال نرم افزاری به انجام می رساند
به بیان ساده تر در حالت ایده آل هر ماژول فقط یک کار انجام دهد
ما در حالت کلی به سمت انسجام بیشتر حرکت می کنیم
سعی می کنیم برای انسجام به حد بالایی برسیم اما این به معنی انسجام صد در صد نیست