مقدمه‌ای بر مدیریت نیازمندی‌ها

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

تعریفی که RUP از این دیسیپلین ارائه می‌کند به این صورت است: استخراج و شناسائی، اعتبار سنجی، تبدیل نمودن آنها به مجموعه‌ای از محصولات نرم‌افزاری قابل استفاده و تهیه نمودن جزئیات برای آنچه سیستم یابد انجام دهد.
همچنین RUP هدف از این دیسیپلین را به این صورت بیان می‌کند:

  • ایجاد توافق با مشتریان و دیگر ذی‌نفعان از آنچه سیستم (نرم‌افزار) باید انجام دهد
  • فراهم آوردن درک بهتری از سیستم نرم‌افزاری برای توسعه‌دهندگان سیستم نرم‌افزاری
  • تعریف مرزهای سیستم
  • فراهم آوردن زیرساختی برای برنامه‌ریزی تکرارها (Iteration)
  • فراهم آوردن زیرساختی برای تخمین زدن هزینه‌ها و زمان‌بندی توسعه سیستم
  • فراهم ساختن یک واسط کاربری (User interface) برای سیستم با تمرکز بر روی نیازهای کسب و کار و اهداف کاربران

در توسعه نرم‌افزار نیازمندی‌ها بیشتر با عنوان Use-case و یا User story شناخته می‌شوند ولی در حقیقت نیازمندی‌ها در یک پروژه توسعه نرم‌افزار فراتر از اینهاست. زیرا نیازمندی‌ها از نیازمندی‌های کسب و کار سرچشمه می‌گیرند و به صورت هرمی به نیازمندی‌های سیستمی یا نرم‌افزاری تبدیل می‌شوند که به آن هرم نیازمندی‌ها گفته می‌شود. در این هرم، در بالاترین سطح، نیازمندی‌های کسب و کار قرار گرفته‌اند و در سطح پایینی مشخصات سیستم نرم‌فزاری واقع شده است و تمامی سطوح به یکدیگر متصل شده‌اند و به این طریق می‌توان تمامی نیازمندی‌ها را در تمام سطوح ردگیری نمود که به این تکنیک Requirement Traceability گفته می‌شود.

 

 

فواید مدیریت نیازمندی‌ها در پروژه‌های نرم‌افزاری را می‌توان به صورت زیر بیان کرد

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

در پست‌های بعدی جزئیات بیشتری از مدیریت نیازمندی‌ها را مطرح خواهم نمود.

0 پیام

شما هم نظرتان را بفرمائید