بخشی از پاورپوینت
اسلاید 1 :
اصول و مفاهيم طراحی
طراحی نرم افزار هسته اصلی مهندسی نرم افزار را تشکيل می دهد و مستقل از نوع مدل فرايند مطرح می گردد.
تحليل خواسته های نرم افزار طراحی توليد کد تست
عناصر ايجاد گرديده از مدل تحليل اطلاعات لازم جهت ايجاد چهار مدل طراحی را فراهم می نمايد:
طراحی داده
طراحی معماری
طراحی واسط
طراحی سطح مولفه
مدل طراحی
اسلاید 2 :
اصول و مفاهيم طراحی (ادامه)
کيفيت در طراحی نرم افزار
کيفيت در مهندسی نرم افزار
اسلاید 3 :
اهميت طراحی
امروزه سخت افزار سريعتر ، ارزانتر و قابل اطمينان تر در دسترس می باشد
افزايش تقاضا برای نرم افزارهای پيچيده
احساس نياز به روشهای تحليل و طراحی
اسلاید 4 :
اهميت طراحی (ادامه)
درصد هزينه های نرم افزار در مقابل هزينه های سخت افزار از سال 1955 الی 1985
اسلاید 5 :
فرايند طراحی
طراحی نرم افزار فرايندی تکراری می باشد که نيازمنديها را به نرم افزار ترجمه می نمايد. در آغاز اين فرايند تکراری تصويری کلی از نرم افزار ترسيم می گردد(سطح بالای تجريد)، ليکن در تکرار های بعدی (بهبودهای بعدی) طراحی در سطوح پائين تر تجريد مطرح می گردد.
اسلاید 6 :
کيفيت نرم افزار و طراحی
در تمامی مراحل فرايند طراحی ، کيفيت طراحی بهبود يافته و مورد ارزيابی قرار می گيرد.مک گلوگلين سه خصوصيت يک طراحی خوب را به صورت زير بيان می نمايد:
طراحی مي بايست ضمن پياده سازی نيازمنديهای شفاف مدل تحليل ، جايگاهی برای نيازمنديهای مبهم از سوی مشتری تعبيه نمايد.
طراحی بايد راهنمائی قابل درک برای توليد کنندگان کد ، آزمون کنندگان نرم افزار و پشتيبانی کنندگان آن باشد.
طراحی می بايست تصوير کاملی از نرم افزار ارائه نموده بگونه ای که اين تصوير شامل دامنه های داده ای ، وظيفه مندی و رفتاری از ديدگاه پياده سازی باشد.
در سير تکاملی طراحی امروزه از رويکرد شی گرا استفاده شده و تاکيد بر روی الگوهای طراحی می باشدکه قابليت اجرای معماری نرم افزار بر روی آنها وجود دارد.
اسلاید 7 :
روشهای طراحی
طراحی ساخت يافته Structured Design
طراحی مبتنی بر داده ها Data Driven Design
طراحی شی گرا Object Oriented Design
اسلاید 8 :
اصول طراحی
طراحی نرم افزار
فرايند : يک سری از مراحل که طراح را قادر به توصيف تمام جنبه های نرم افزار می نمايد.
مدل : از کلان آغاز گرديده و به مرور پس از پالايش به سطوح پائين تر تجريد می پردازد. مدل طراحی چند ديدگاه متفاوت از نرم افزار را نمايش می دهد.
اسلاید 9 :
اصول طراحی (ادامه)
کيفيت نرم افزار
عوامل خارجی : کاربران به راحتی امکان مشاهده آن را دارند (مانند قابليت اعتماد، سرعت ، قابليت استفاده ، صحت و موارد نظير آن)
عوامل داخلی : عاملهائی که باعث افزايش کيفيت طراحی می گردند (مفاهيم طراحی)
اسلاید 10 :
مفاهيم طراحی
تجريد Abstraction
پالايش Refinement
واحدبندی Modularity
معماری نرم افزار Software Architecture
سلسله مراتب کنترلی Control Hierarchy
ساختمان داده Data Structure
پنهان سازی اطلاعات Information Hiding
روند نرم افزار Software Procedure
اسلاید 11 :
تجريد (Abstraction)
فراِيند متمرکز شدن روی ويژگيها و رفتارهای اصلی يک پديده و ناديده گرفتن ويژگيهای موقت و غير مهم آن پديده ، از يک زاويه ديد مشخص
مثال :
اسلاید 12 :
تجريد (ادامه)
انواع تجريد :
تجريد رويه ای : دارای يک سری مرحله رويه ای می باشد.
تجريد داده ای : مجموعه ای از صفات که جهت توصيف يک شی داده ای مطرح می گردد.
تجريد کنترلی : ارائه يک راهکار کنترلی بدون توجه به جزئيات آن
ويژگيهای تجريد :
برای هر شیء تجريدهای گوناگونی وجود دارد.
تجريد دارای سطوحی است (ميزان پرداختن به جزئيات).
اسلاید 13 :
پالايش (Refinement)
يک نوع طراحی بالا به پائين است که توسط نيکلاوس ويرث مطرح گرديد .
پالايش وظايف وداده ها به صورت موازی در کنار هم مطرح می گردد .
سطوح بالای تجريد تجزيه شده و به سطوح پائين ترتجريد تبديل می گردند.
اسلاید 14 :
پالايش (ادامه)
Instruction 1
Instruction 2
Instruction n
Instruction 1-1
Instruction 1-n
بيان دستور العملها بر حسب زبان برنامه نويسی
اسلاید 15 :
واحدبندی (Modularity)
سيستمی را واحد بندی شده می گويند که به مجموعه ای از ماژولهای (واحدها) منسجم و معنی دار که وابستگی بين آنها حداقل است تجزيه شده باشد.
ماژولها : واحد تشکيل دهنده ساختار فيزيکی سيستم نرم افزاری
مثال از ماژول :
فايلها در C++
اسلاید 16 :
واحدبندی (ادامه)
انسجام (Cohesion) : انسجام عبارت است از درجه ارتباط عملکردهای عناصر داخلی يک ماژول
وابستگی ( Coupling) : عبارت است از درجه ارتباط واحدهای گوناگون با يکديگر
اسلاید 17 :
واحدبندی (ادامه)
مثال :
Order Processing System
Order Entry
Order
Fulfillment
Billing
اسلاید 18 :
واحدبندی (ادامه)
نقش واحدبندی در کنترل پيچيدگی :
جهت مقابله با پيچيدگی می توان مساله را به اجزا کوچکتری شکست.
C(P)>C(P1)+C(P2) + C(P3)
E(P)>E(P1)+E(P2) + E(P3)
E(P)>E(P1)+E(P2) + E(P3) + I(E(P1) , E(P2) , E(P3))
C: Complexity
E: Solving Energy
I: Integration
اسلاید 19 :
سلسله مراتب کنترلی(Control Hierarchy)
سلسله مراتب کنترلی يا ساختار برنامه نحوه سازماندهی مولفه های برنامه را بيان می نمايد.
ساختار برنامه ،ترتيب فرايندها را بيان نمی نمايد.
اسلاید 20 :
سلسله مراتب کنترلی (ادامه)
نمودار درختی
fan out
fan in
super ordinate
sub ordinate