دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۸
  • دی

جلسه ۰۵-۰۲ : چسبندگی یا همبستگی

  • دسته‌بندی‌ها :
جلسه ۰۵-۰۲ : چسبندگی یا همبستگی
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      عرض سلام خدمت همراهان گرامی وب سایت آموزشی پی وی لرن. با موضوع آموزش مهندسی نرم افزار (Software Engineering) در خدمتتون خواهیم بود. مبانی طراحی نرم افزار رو از جلسه ی قبل آغاز نمودیم. در این بخش از مبانی طراحی نرم افزار مبحث جفت شدگی (Coupling) و چسبندگی (Cohesion) و مهندسی نرم افزار رو دنبال می کنیم. با آموزش مهندسی نرم افزار همراه باشید.

      مبانی طراحی نرم افزار

      در ادامه با مفهوم جفت شدگی (Coupling) و چسبندگی (Cohesion) و مهندسی نرم افزار آشنا خواهیم شد.

      جفت شدگی (Coupling) و چسبندگی (Cohesion) و مهندسی نرم افزار

      هنگامی که یک برنامه نرم افزاری مدولار شده است ، وظایف آن بر اساس برخی خصوصیات به چندین ماژول تقسیم می شود. همان طور که می دانیم ، ماژول ها برای دستیابی به برخی وظایف ، مجموعه دستورالعمل هایی هستند که در کنار هم قرار گرفته اند. آن ها هر چند به عنوان یک موجودیت واحد در نظر گرفته می شوند اما ممکن است برای همکاری با هم به یکدیگر مراجعه کنند. اقداماتی وجود دارد كه با استفاده از آن می توان كیفیت طراحی ماژول ها و تعامل بین آن ها را سنجید. این اقدامات را جفت شدگی (Coupling) و چسبندگی (Cohesion)  می نامند.

      در مباحث نرم افزاری، کوپلینگ (Coupling) و چسبندگی (Cohesion) دو شاخص اصلی برای کیفیت سیستم به شمار می آیند. در یک سیستم نرم افزاری، باید همیشه سعی شود تا چسبندگی حداکثر شود و جفت شدگی حداقل (Highly Cohesion و Loosely Coupling).

      چسبندگی یا همبستگی (Cohesion)

      همبستگی سنجشی است که میزان وابستگی درون عناصر یک ماژول را تعیین می کند. هرچه همبستگی بیش تر باشد ، طراحی برنامه بهتر است.

      هفت نوع همبستگی وجود دارد ، یعنی :

      همبستگی تصادفی

      این همبستگی غیرمترقبه و تصادفی است ، که به دلیل تعدیل ، می تواند نتیجه شکستن برنامه به ماژول های کوچک تر باشد. از آن جا که برنامه ریزی نشده است ، ممکن است باعث سر در گمی برنامه نویسان شود و عموماً پذیرفته نمی شود.

      همبستگی منطقی

      هنگامی که عناصر طبقه بندی شده به صورت منطقی در یک ماژول قرار می گیرند ، به آن همبستگی منطقی گفته می شود.

      همبستگی موقتی

      وقتی عناصر ماژول به گونه ای سازماندهی می شوند که در یک نقطه مشابه در زمان پردازش شوند ، به آن همبستگی موقتی گفته می شود.

      همبستگی رویه ای

      وقتی عناصر ماژول با هم گروه بندی می شوند ، که به منظور انجام یک کار به صورت متوالی اجرا شوند ، به آن همبستگی رویه ای گفته می شود.

      همبستگی ارتباطی

      هنگامی که عناصر ماژول با هم گروه بندی می شوند که به صورت متوالی و پی در پی اجرا شوند و بر روی داده های یکسان (اطلاعات) کار می کنند ، به آن همبستگی ترتیبی گفته می شود.

      همبستگی متوالی

      هنگامی که عناصر ماژول گروه بندی می شوند زیرا خروجی یک عنصر به عنوان ورودی به عنصر دیگر و غیره عمل می کند ، به آن همبستگی متوالی گفته می شود.

      همبستگی عملکردی

      بالاترین درجه همبستگی محسوب می شود و بسیار مورد انتظار است. عناصر ماژول در همبستگی عملکردی گروه بندی می شوند زیرا همه ی آن ها به یک عملکرد واحد درست تعریف شده کمک می کنند. همچنین قابل استفاده مجدد است.

      کوپلینگ (Coupling)

      کوپلینگ ، معیاری است که سطح وابستگی متقابل بین ماژول های یک برنامه را تعیین می کند. این می گوید که ماژول ها در چه سطح دخالت و تعامل با یکدیگر قرار دارند.

      هرچه کوپلینگ پایین تر باشد ، برنامه بهتر می شود.

      پنج سطح کوپلینگ وجود دارد که در زیر به آن ها اشاره شده است.

      Content coupling –

      هنگامی که یک ماژول می تواند به طور مستقیم به محتوای یک ماژول دیگر دسترسی یا اصلاح یا مراجعه کند ، به آن Content coupling گفته می شود.

      Common coupling –

      وقتی چندین ماژول دسترسی به برخی داده های جهانی را خوانده و می نویسند ، آن را کوپلینگ مشترک یا جهانی می نامند.

      Control coupling – 

      اگر یکی از آن ها عملکرد ماژول دیگر را تغییر داده یا جریان اجرای آن را تغییر دهد ، دو ماژول با هم Control coupling نامیده می شوند.

      Stamp coupling

      وقتی چندین ماژول ساختار داده های مشترک را به اشتراک می گذارند و در قسمت های مختلف آن کار می کنند ، آن را Stamp coupling می نامند.

      Data coupling

      جفت شدن داده ها در شرایطی است که دو ماژول با استفاده از داده های مختلف (به عنوان پارامتر) با یکدیگر در تعامل هستند. اگر یک ماژول ساختار داده را به عنوان پارامتر عبور دهد ، در این صورت ماژول دریافت کننده باید از تمام اجزای آن استفاده کند.
      در حالت ایده آل ، هیچ کوپلینگی بهترین نیست.

      حال که با مفهوم جفت شدگی (Coupling) و چسبندگی (Cohesion) و مهندسی نرم افزار آشنا شدیم، در ادامه باید تایید طراحی رو داشته باشیم.

      تأیید طراحی

      خروجی فرایند طراحی نرم افزار عبارتند از مستندات طراحی ، شبه کدها ، نمودار های منطقی تفصیلی ، نمودار های فرآیند و شرح دقیق کلیه نیاز های کاربردی یا غیر کاربردی.

      مرحله بعدی که اجرای نرم افزار است بستگی به کلیه خروجی های ذکر شده در بالا دارد.

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

      با استفاده از روش تأیید ساختار یافته ، بازرسان می توانند نقایصی را که ممکن است با توجه به برخی شرایط ایجاد شود ، تشخیص دهند.

      یک بررسی خوب برای طراحی خوب ، دقت و کیفیت نرم افزار مهم است.

      آموزش مهندسی نرم افزار رو در این بخش به مبحث جفت شدگی (Coupling) و چسبندگی (Cohesion) و مهندسی نرم افزار اختصاص دادیم.

      کلام پایانی

      در این بخش از آمبانی طرتحی نرم افزار به مبحث جفت شدگی (Coupling) و چسبندگی (Cohesion) و مهندسی نرم افزار پرداختیم.

      در بخش بعدی آشنایی با ابزارهای آنالیز و طراحی نرم افزار رو خواهیم داشت.

      QR:  جلسه ۰۵-۰۲ : چسبندگی یا همبستگی
      به اشتراک بگذارید