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



  • ۱۷
  • دی

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

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

      مقدمه

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

      بررسی اجمالی مهندسی نرم افزار

      بگذارید در ابتدا بدانیم که اصلا مهندسی نرم افزار چیست؟ این اصطلاح از دو کلمه ی، نرم افزار و مهندسی ساخته شده است.

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

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

       

      بررسی اجمالی مهندسی نرم افزار

      بررسی اجمالی مهندسی نرم افزار

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

      تعاریف

      IEEE مهندسی نرم افزار را این گونه تعریف می کند:

      (۱) برنامه‌ ای سیستماتیک ، منظم و قابل اندازه گیری و سنجش برای توسعه ، بهره برداری و نگه داری از نرم افزار. یعنی برنامه ی مهندسی نرم افزار.

      (۲) مطالعه رویکرد ها همان طور که در گفته ی فوق آمده است.

      Fritz Bauer ، دانشمند آلمانی (کامپیوتر)، مهندسی نرم افزار را این گونه تعریف می کند:

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

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

      تکامل نرم افزار

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

       

      بررسی اجمالی مهندسی نرم افزار - تکامل نرم افزار

      بررسی اجمالی مهندسی نرم افزار – تکامل نرم افزار

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

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

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

      قوانین تکامل نرم افزار

      Lehman قوانینی را برای تکامل نرم افزار وضع کرده است. وی نرم افزار ها را به سه دسته مختلف تقسیم می کند که در زیر به آن ها اشاره شده است:

      نوع S (نوع استاتیک S-type (static-type – این نرم افزاری است که کاملاً طبق مشخصات و راه حل های تعریف شده کار می کند. راه حل و روش دستیابی به آن ، هر دو بلافاصله قبل از کدگذاری درک می شوند. نرم افزار نوع s حداقل در معرض تغییر است از این رو ساده ترین است. به عنوان مثال ، برنامه ماشین حساب برای محاسبات ریاضی.

      نوع P (نوع عملی P-type (practical-type – این نرم افزاری است با مجموعه ای از رویه ها. این دقیقاً با آن چه که روند می تواند انجام دهد تعریف می شود. در این نرم افزارها می توان مشخصات را توصیف کرد اما راه حل فوراً آشکار نمی شود. به عنوان مثال ، نرم افزار بازی.

      نوع E (نوع تعبیه شده E-type (embedded-type – این نرم افزار از نزدیک به عنوان نیاز محیط دنیای واقعی عمل می کند. این نرم افزار ها دارای درجه بالایی از تکامل هستند زیرا تغییرات مختلفی در قوانین و غیره در شرایط دنیای واقعی وجود دارد. به عنوان مثال ، نرم افزار تجارت آنلاین.

      تکامل نرم افزار E-Type

      Lehman هشت قانون برای تکامل نرم افزار نوع E وضع کرده است.

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

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

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

      کاهش کیفیت – یک سیستم نرم افزاری از نوع E در کیفیت کاهش می یابد ، مگر این که به طور دقیق سازگار با یک محیط عملیاتی در حال تغییر باشد.

      با بیان قوانین تکامل نرم افزار این جلسه از آموزش بررسی اجمالی مهندسی نرم افزار رو به پایان می رسونیم.

      کلام پایانی

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

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