You are not allowed to perform this action

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

مدرس: دکتر مهران ریواده پیش‌نیاز: –
ترم: محل برگزاری: کلاس مجازی
زمان ارائه: شنبه ۱۵:۰۰ تا ۱۸:۰۰ مشاهده: دریافت لایسنس

معرفی درس

نیازمندی‌های نرم‌افزار؛ از شناخت نیازهای کاربران تا مدل‌سازی و اعتبارسنجی سیستم

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

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

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

در پایان این درس چه توانایی‌هایی کسب می‌کنید؟

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

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

پیش‌نیاز

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

سرفصل‌ها

  • مبانی مهندسی نیازمندی‌ها (Basics of Requirements Engineering) (۲ جلسه)
  • درک دامنه مسئله و استخراج نیازمندی‌ها (Domain Understanding & Requirements Elicitation) (۲ جلسه)
  • ارزیابی نیازمندی‌ها (Requirements Evaluation) (۲ جلسه)
  • توصیف و مستندسازی نیازمندی‌ها (Requirements Specification and Documentation) (۲ جلسه)
  • تضمین کیفی نیازمندی‌ها (Requirements Quality Assurance) (۱ جلسه)
  • تکامل نیازمندی‌ها و ردیابی (Requirements Evolution and Traceability) (۱ جلسه)
  • مقصودگرایی در مهندسی نیازمندی‌ها (Goal Orientation in Requirements Engineering) (۲ جلسه)
  • مدل‌سازی اهداف سیستم با استفاده از مدل‌های مقصود (Modeling System Objectives with Goal Diagrams) (۳ جلسه)
  • تحلیل خطر با استفاده از مدل‌های مقصود (Risk Analysis on Goal Models) (۲ جلسه)
  • مدل‌سازی نیازمندی‌ها با استفاده از نمودارهای سناریوگرا (Modeling Requirements with Scenario-Oriented Modeling) (۲ جلسه)
  • مدل‌سازی نیازمندی‌ها با استفاده از نمودارهای UML (Modeling System Requirements with UML Diagrams) (۲ جلسه)
  • مدل‌سازی عملیات سیستم (Modeling System Operations) (۱ جلسه)
  • مدل‌سازی رفتار سیستم (Modeling System Behaviors) (۲ جلسه)
  • وارسی و اعتبارسنجی نیازمندی‌ها (Requirements Verification and Validation) (۲ جلسه)
  • مدیریت نیازمندی‌ها (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.