تجريد (Abstraction):
فراِيند متمرکز شدن روی ويژگيها و رفتارهای اصلی يک پديده و ناديده گرفتن ويژگيهای موقت و غير مهم آن پديده ، از يک زاويه ديد مشخص
مثال :
انواع تجريد :
تجريد رويه ای : دارای يک سری مرحله رويه ای می باشد.
تجريد داده ای : مجموعه ای از صفات که جهت توصيف يک شی داده ای مطرح می گردد.
تجريد کنترلی : ارائه يک راهکار کنترلی بدون توجه به جزئيات آن
ويژگيهای تجريد :
برای هر شیء تجريدهای گوناگونی وجود دارد.
تجريد دارای سطوحی است (ميزان پرداختن به جزئيات).
پالايش (Refinement):
* يک نوع طراحی بالا به پائين است که توسط نيکلاوس ويرث مطرح گرديد .
* پالايش وظايف وداده ها به صورت موازی در کنار هم مطرح می گردد .
* سطوح بالای تجريد تجزيه شده و به سطوح پائين ترتجريد تبديل می گردند.
واحدبندی (Modularity):
سيستمی را واحد بندی شده می گويند که به مجموعه ای از ماژولهای (واحدها) منسجم و معنی دار که وابستگی بين آنها حداقل است تجزيه شده باشد.
ماژولها : واحد تشکيل دهنده ساختار فيزيکی سيستم نرم افزاری
مثال از ماژول :
فايلها در C++
انسجام (Cohesion) : انسجام عبارت است از درجه ارتباط عملکردهای عناصر داخلی يک ماژول
وابستگی ( Coupling) : عبارت است از درجه ارتباط واحدهای گوناگون با يکديگر
نقش واحدبندی در کنترل پيچيدگی :
جهت مقابله با پيچيدگی می توان مساله را به اجزا کوچکتری شکست.
سلسله مراتب کنترلی(Control Hierarchy):
سلسله مراتب کنترلی يا ساختار برنامه نحوه سازماندهی مولفه های برنامه را بيان می نمايد.
ساختار برنامه ،ترتيب فرايندها را بيان نمی نمايد.
نمودار درختی
پنهان سازی اطلاعات (Information Hiding):
- راحتی کاربر
- امنيت برنامه
- جلوگيری از اثرات جانبی
اصول شی گرائی:
علاقه مندی ها (Bookmarks)