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



  • ۱۸
  • دی

جلسه ۰۴-۰۲ : تکنیک های استخراج نیازمندی نرم افزار

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

      مقدمه

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

      نیازمندی های نرم افزار یا Software Requirements

      نیازمندی های نرم افزار یا Software Requirements رو در جلسه ی قبل آغاز نمودیم. این جلسه رو با تکنیک های استخراج نیازمندی نرم افزار آغاز می کنیم.

      تکنیک های استخراج نیازمندی نرم افزار (Requirement Elicitation Techniques)

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

      روش های مختلفی برای استخراج الزامات وجود دارد.

      مصاحبه ها (Interviews)

      مصاحبه ها برای جمع آوری نیازمندی ها هستند. سازمان ممکن است چندین نوع مصاحبه مانند موارد زیر را داشته باشد:

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

      نظرسنجی ها

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

      پرسشنامه ها

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

      کاستی این تکنیک این است که اگر گزینه ای برای برخی از موضوعات در پرسشنامه ذکر نشده باشد ، ممکن است موضوع بدون توجه باقی بماند.

      آنالیز وظیفه

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

      آنالیز دامنه

      هر نرم افزاری در بعضی کتگوری های دامنه قرار می گیرد. افراد متخصص در حوزه می توانند کمک بزرگی به تجزیه و تحلیل الزامات عمومی و خاص کنند.

      طوفان مغزی

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

      نمونه سازی (Prototyping)

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

      مشاهده

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

      ویژگی های نیازمندی های نرم افزار

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

      مشخصات کامل نیازهای نرم افزار باید:

      • تمیز
      • درست
      • استوار
      • منسجم
      • قابل درک
      • قابل اصلاح
      • قابل تایید
      • اولویت بندی شده
      • بدون ابهام
      • قابل ردیابی
      • منبع معتبر

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

      نیازمندی های گسترده نرم افزار باید در دو دسته طبقه بندی شود:

      نیازمندی های عملکردی

      نیازمندی های مربوط به جنبه کاربردی نرم افزار در این دسته قرار می گیرند.

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

      مثال ها

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

      نیازمندی های غیر کاربردی

      نیازمندی هایی که به جنبه کاربردی نرم افزار مربوط نمی شود ، در این دسته قرار می گیرند. آن ها ویژگی های ضمنی یا مورد انتظار نرم افزار هستند که کاربران آن را فرض می کنند.

      الزامات غیر کاربردی شامل موارد زیر می باشد.

      • امنیت
      • ورود به سیستم
      • ذخیره سازی
      • پیکربندی
      • کارایی
      • هزینه
      • قابلیت همکاری
      • انعطاف پذیری
      • بازیابی
      • دسترسی

      الزامات به صورت منطقی طبقه بندی می شوند.

      Must Have: نمی توان گفت که نرم افزار بدون آن ها عملیاتی است.
      Should have: افزایش کارایی نرم افزار.
      Could have: نرم افزار هنوز هم می تواند به درستی با این نیازمندی ها عمل کند.
      Wish list: این نیازمندی ها هیچ اهداف نرم افزاری ترسیم نمی کند.
      در حین تهیه نرم افزار ، “Must have” باید پیاده سازی شود ، “Should have” اهمیت داشتن بحث و گفتگو با ذینفعان است ، در حالی که “could have” و “wish list” برای به روز رسانی های نرم افزار نگه داشته شود.

      نیازمندی های نرم افزار یا Software Requirements در این بخش به پایان می رسونیم.

      کلام پایانی

      نیازمندی های نرم افزار یا Software Requirements ، تکنیک های استخراج نیازمندی نرم افزار و ویژگی های نیازمندی های نرم افزار رو بیان نمودیم. در بخش بعد این موضوع رو ادامه خواهیم داد.

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