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

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

معرفی درس

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

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

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

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

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

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

پیش‌نیاز

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

سرفصل‌ها

ارزیابی

منابع

  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.