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



  • ۱۸
  • دی

جلسه ۰۵-۰۱ : مبانی طراحی نرم افزار

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

      مقدمه

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

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

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

      برای ارزیابی نیازهای کاربر ، یک سند (شرح نیاز نرم افزار – SRS (Software Requirement Specification) ایجاد می شود در حالی که برای کد نویسی و پیاده سازی ، از نظر نرم افزاری احتیاج به نیازهای خاص و دقیق تری است. خروجی این فرایند به طور مستقیم می تواند در زبان های برنامه نویسی مورد استفاده قرار گیرد.

      طراحی نرم افزار اولین قدم در (چرخه عمر طراحی نرم افزار – SDLC (Software Design Life Cycle است که تمرکز را از دامنه مشکل به دامنه راه حل منتقل می کند. تلاش می شود نحوه تحقق نیازهای ذکر شده در SRS را مشخص کند.

      سطوح طراحی نرم افزار

      طراحی نرم افزار دارای سه سطح از نتایج است:

      طراحی معماری (Architectural Design) – طراحی معماری بالاترین نسخه انتزاعی سیستم است. این نرم افزار را به عنوان سیستمی معرفی می کند که بسیاری از مؤلفه ها در تعامل با یکدیگر هستند. در این سطح ، طراحان دامنه ایده راه حل پیشنهادی را می گیرند.

      طراحی سطح بالا (High-level Design) – طراحی سطح بالا مفهوم “single entity-multiple component” از طراحی معماری را به نمای انتزاعی کم تری از زیر سیستم ها و ماژول ها تبدیل کرده و تعامل آن ها با یکدیگر را به تصویر می کشد. طراحی سطح بالا به چگونگی اجرای سیستم به همراه تمام اجزای آن در قالب ماژول ها متمرکز است. این ساختار مدولار هر زیر سیستم و ارتباط و تعامل آن ها با یکدیگر را تشخیص می دهد.

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

      مدولار سازی

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

      طراحی ماژولار به طور ناخواسته از قوانین “تقسیم و تسلیم” استراتژی حل مسئله پیروی می کند زیرا مزایای بسیاری دیگر وجود دارد که با طراحی مدولار یک نرم افزار همراه است.

      مزیت مدولار سازی:

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

      همزمانی

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

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

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

      مثال

      ویژگی بررسی اسپل در پردازنده word یک ماژول نرم افزاری است که در کنار آن پردازنده کلمه وجود دارد.

      این بخش از مبانی طراحی نرم افزار رو در این جا به پایان می رسونیم.

      کلام پایانی

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

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