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



  • ۱۸
  • دی

جلسه ۰۷-۰۱ : استراتژی های طراحی نرم افزار

  • دسته‌بندی‌ها :
جلسه ۰۷-۰۱ : استراتژی های طراحی نرم افزار
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      عرض سلام خدمت همراهان گرامی وب سایت آموزشی پی وی لرن. با موضوع آموزش مهندسی نرم افزار (Software Engineering) در خدمتتون خواهیم بود. استراتژی های طراحی نرم افزار رو در این بخش از آموزش توضیح خواهیم داد. مبحث استراتژی های طراحی نرم افزار در دو بخش تنظیم شده است. در ابتدا طراحی ساختار یافته (Structured Design) رو بررسی می کنیم.

      استراتژی های طراحی نرم افزار

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

      انواع مختلفی از طراحی نرم افزار وجود دارد. حال بگذارید مختصراً آن ها را مطالعه کنیم:

      در ابتدا طراحی ساختار یافته (Structured Design) رو بررسی می کنیم.

      طراحی ساختار یافته (Structured Design)

      طراحی ساختار یافته مفهوم سازی مسئله در چندین عنصر به خوبی سازمان یافته از راه حل است. این اساساً مربوط به طراحی راه حل است. مزیت طراحی ساختار یافته این است که درک بهتری از چگونگی حل مسئله به ما می دهد. طراحی ساختار یافته همچنین باعث می شود تا طراحان بتوانند دقیق تر روی مسئله تمرکز کنند.

      طراحی ساختار یافته بیش تر مبتنی بر استراتژی “تقسیم و تسخیر” (divide and conquer) است که در آن یک مشکل به چندین مشکل کوچک شکسته شده و هر مشکل کوچک به طور جداگانه حل می شود تا این که کل مشکل حل شود.

      قطعات کوچک مسئله با استفاده از ماژول های راه حل، حل می شوند. طراحی ساختار یافته تأکید دارد که این ماژول ها به منظور دستیابی به راه حل دقیق به خوبی سازماندهی شده اند.

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

      چسبندگی (Cohesion) – گروه بندی کلیه عناصر عملکردی مرتبط.

      کوپلینگ (Coupling– ارتباط بین ماژو ل های مختلف.

      یک طراحی ساختار یافته ی  خوب دارای چسبندگی بالا و تنظیمات کوپلینگ کم است.

      طراحی تابع گرا

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

      طراحی تابع گرا برخی از خواص طراحی ساختار یافته را که در آن از روش تقسیم و تسخیر استفاده می شود به ارث می برد.

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

      ویژگی دیگر توابع این است که وقتی یک برنامه یک تابع را فراخوانی می کند ، عملکرد حالت برنامه را تغییر می دهد ، که بعضی اوقات توسط سایر ماژول ها قابل قبول نیست. طراحی تابع گرا به خوبی کار می کند جایی که وضعیت سیستم مهم نیست و برنامه / توابع بر روی ورودی کار می کنند تا یک حالت.

      روند طراحی

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

      ادامه ی مبحث استراتژی های طراحی نرم افزار رو به جلسه ی بعدی موکول می کنیم.

      کلام پایانی

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

      QR:  جلسه ۰۷-۰۱ : استراتژی های طراحی نرم افزار
      به اشتراک بگذارید