مهندسی نیازمندی‌های نرم‌افزار

Software Requirements Engineering

شماره درس: ۴۰۶۸۸ تعداد واحد: ۳
مقطع: کارشناسی ارشد نوع درس: نظری
پیش‌نیاز: – هم‌نیاز: –

اهداف درس

پیاده‌سازی یک سیستم کامپیوتری با شکست مواجه خواهد شد اگر به نیازمندی‌های آن سیستم به درستی پاسخ داده نشود. همراه با گسترش و افزایش پیچیدگی سیستم‌های کامپیوتری، شناسایی دقیق نیازمندی‌های آن‌ها نیز به فرآیندی پیچیده تبدیل گردیده است. بنابراین، لازم است تا از روش‌ها و تکنیک‌هایی برای شناسایی، توصیف و مستندسازی، مدل‌سازی، و اعتبارسنجی نیازمندی‌های سیستم‌های کامپیوتری استفاده شود. هدف از این درس، آشناسازی دانشجویان مقاطع تحصیلات تکمیلی با این روش‌ها و تکنیک‌هاست. به طور خاص، مباحثی که در این درس مطرح خواهند شد عبارتند از: (۱) استخراج و شناسایی نیازمندی‌های وظیفه‌مندی و غیر وظیفه‌مندی، (۲) سازمان‌دهی و اولویت‌بندی نیازمندی‌ها، (۳) تکنیک‌های توصیف و مستندسازی نیازمندی‌ها، (۴) تکنیک‌های مدل‌سازی نیازمندی‌ها، (۵) تکنیک‌های تحلیل، وارسی، و اعتبارسنجی نیازمندی‌ها.

ریز مواد

  1. مبانی مهندسی نیازمندی‌ها (Basics of Requirements Engineering) (۲ جلسه)
  2. درک دامنه مسئله و استخراج نیازمندی‌ها (Domain Understanding & Requirements Elicitation) (۲ جلسه)
  3. ارزیابی نیازمندی‌ها (Requirements Evaluation) (۲ جلسه)
  4. توصیف و مستندسازی نیازمندی‌ها (Requirements Specification and Documentation) (۲ جلسه)
  5. تضمین کیفی نیازمندی‌ها (Requirements Quality Assurance) (۱ جلسه)
  6. تکامل نیازمندی‌ها و ردیابی (Requirements Evolution and Traceability) (۱ جلسه)
  7. مقصودگرایی در مهندسی نیازمندی‌ها (Goal Orientation in Requirements Engineering) (۲ جلسه)
  8. مدل‌سازی اهداف سیستم با استفاده از مدل‌های مقصود (Modeling System Objectives with Goal Diagrams) (۳ جلسه)
  9. تحلیل خطر با استفاده از مدل‌های مقصود (Risk Analysis on Goal Models) (۲ جلسه)
  10. مدل‌سازی نیازمندی‌ها با استفاده از نمودارهای سناریوگرا (Modeling Requirements with Scenario-Oriented Modeling) (۲ جلسه)
  11. مدل‌سازی نیازمندی‌ها با استفاده از نمودارهای UML (Modeling System Requirements with UML Diagrams) (۲ جلسه)
  12. مدل‌سازی عملیات سیستم (Modeling System Operations) (۱ جلسه)
  13. مدل‌سازی رفتار سیستم (Modeling System Behaviors) (۲ جلسه)
  14. وارسی و اعتبارسنجی نیازمندی‌ها (Requirements Verification and Validation) (۲ جلسه)
  15. مدیریت نیازمندی‌ها (Requirements Management) (۱ جلسه)

ارزیابی

  • آزمون میان ترم (۲۵ درصد نمره)
  • آزمون پایان ترم (۳۵ درصد نمره)
  • ارائه مقاله علمی: هر دانشجو موظف به ارائه یک مقاله علمی می‌باشد که در یکی از بهترین کنفرانس‌ها یا مجلات مرتبط به درس در سال‌های اخیر به چاپ رسیده باشد. (۱۰ درصد نمره)
  • پروژه و گزارش پژوهشی: موضوع پروژه پژوهشی قبل از آزمون نیم‌سال تعیین می‌شود. دانشجو کار پژوهش را با کمک استاد درس آغاز نموده و پس از انجام پروژه، نتیجه پژوهش را در قالب گزارش ارائه می‌دهد. (۳۰ درصد نمره)

مراجع

  1. A. van Lamsweerde. Requirements Engineering: From System Goals to UML Models to Software Specifications. Wiley, 2009.
  2. K. Pohl. Requirements Engineering: Fundamentals, Principles, and Techniques. Springer, 2010.
  3. G. Kotonya and I. Sommerville. Requirements Engineering: Processes and Techniques. Wiley, 1998.
  4. S. Robertson and J. C. Robertson. Mastering the Requirements Process 2nd edition, Addison-Wesley, 2006.
  5. B. Berenbach, D. Paulish, J. Kazmeier, and A. Rudorfer. Software & Systems Requirements Engineering: In Practice. McGraw-Hill, 2009.
  6. E. Hull, K. Jackson, and J. Dick. Requirements Engineering. 3rd edition, Springer, 2010.
  7. J. Holt, S. Perry, and M. Brownsword. Model-Based Requirements Engineering. The Institution of Engineering and Technology (IET), 2011.
  8. D. Leffingwell. Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise. Addison-Wesley, 2011.
  9. M. Chemuturi. Requirements Engineering and Management for Software Development Projects. Springer, 2012.