Files

11 KiB
Raw Blame History

مشخصات درس‌نامه: تحلیل نیازمندی‌ها: کارکردی در برابر غیرکارکردی (Functional vs Non-Functional Requirements)

  • شناسه در سیلابس: L4.7
  • فصل: فصل ۴: از ایده تا محصول (Ch 4)
  • نوع محتوا: 📘 درس‌نامه متنی
  • زمان تقریبی مطالعه: ۱۲ دقیقه
  • پیش‌نیازهای مستقیم: L4.6 (فیچرها و معیارهای پذیرش)

۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)

دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند:

  • درک کند (Understand): تفاوت بنیادین میان نیازمندی‌های کارکردی (Functional Requirements - FR: سیستم چه کاری انجام می‌دهد) و نیازمندی‌های غیرکارکردی یا کیفی (Non-Functional Requirements - NFR: سیستم چگونه و با چه کیفیتی عمل می‌کند) چیست.
  • تحلیل/ارزیابی کند (Evaluate): چرا هوش مصنوعی به طور پیش‌فرض به نیازمندی‌های کیفی (پرفورمنس، امنیت، واکنش‌گرایی در موبایل) کم‌توجه است مگر اینکه صراحتاً به او دیکته شود.
  • به‌کار ببندد (Apply): چهار ستون اصلی کیفیت نرم‌افزار (کاربردپذیری، پایداری، پرفورمنس، امنیت) را بر روی پروژه محوری (پورتفولیوی پویا) استخراج و مستند کند.
  • به‌کار ببندد (Apply): بلوک استانداردی از شروط غیرکارکردی (مانند سازگاری با موبایل، نمره بالای سئو، و محافظت از متغیرهای امنیتی) را برای درج در پرامپت‌ها و فایل قوانین ایجنت آماده سازد.

۲. محدوده و مرزهای محتوا (Scope & Boundaries)

آنچه باید پوشش داده شود (In-Scope):

  1. تفاوت دو جنس نیازمندی در مهندسی نرم‌افزار:
    • نیازمندی‌های کارکردی (FR): رفتارهای مستقیم، دکمه‌ها، فرم‌ها، عملیات ورود و خروج داده‌ها (پاسخ به سوال: سیستم چه می‌کند؟).
    • نیازمندی‌های غیرکارکردی (NFR): ویژگی‌های کیفی و صفات سیستمی نظیر سرعت، مقاومت، امنیت، دسترسی‌پذیری و سئو (پاسخ به سوال: سیستم با چه کیفیتی کار می‌کند؟).
  2. چرا هوش مصنوعی بدون NFR کدهای فاجعه‌بار تولید می‌کند؟
    • هوش مصنوعی با پرامپت ساده کدی می‌نویسد که کار می‌کند، اما:
      • تصاویر با حجم ۱۰ مگابایت لود می‌شوند و سرعت سایت را نابود می‌کنند.
      • چیدمان در موبایل کاملاً به هم می‌ریزد.
      • اطلاعات محرمانه در فرانت‌اند لو می‌روند.
  3. ستون‌های چهارگانه کیفیت محصول (چارچوب FURPS ساده‌شده):
    • ۱. کاربردپذیری (Usability): تجربه کاربری روان، پیام‌های خطای فارسی و واضح، طراحی واکنش‌گرا (Responsive) از عرض ۳۲۰ پیکسل تا نمایشگرهای دسکتاپ.
    • ۲. پایداری (Reliability): ممانعت از کرش کردن برنامه در صورت قطعی ارتباط یا وارد کردن داده‌های ناقص.
    • ۳. عملکرد و سرعت (Performance): زمان بارگذاری اولیه زیر ۱.۵ ثانیه و کسب امتیاز لایت‌هاوس (Lighthouse) بالای ۹۰.
    • ۴. امنیت و سئو (Security & SEO): عدم دسترسی بدون لاگین به پنل /admin، استفاده از ساختار تگ‌های سمانتیک استاندارد (<h1> تا <h6>، متا تگ‌ها، Alt برای تصاویر).
  4. استخراج لیست تفکیک‌شده FR و NFR برای پروژه پورتفولیوی پویا:
    • جدول شفاف نیازمندی‌های کارکردی (نمایش کارت‌ها، فیلتر مهارت، لاگین ادمین، فرم ویرایش سئو).
    • جدول شفاف نیازمندی‌های غیرکارکردی (سرعت لودینگ، ریسپانسیو بودن، محافظت از کلیدها، تگ‌های OpenGraph).
  5. روش تزریق NFR به پرامپت‌های ایجنت‌های وایب کدینگ:
    • نحوه افزودن بلوک «الزامات کیفی» در انتهای پرامپت برای مجبور کردن مدل به رعایت استانداردهای مهندسی.
  6. کال‌اوت‌های Quera:
    • <details class="violet">: چرا هوش مصنوعی به ذات خود نیازمندی‌های غیرکارکردی را فراموش می‌کند و چگونه با .cursorrules جلوی این نسیان را بگیریم؟
    • <details class="red">: خطر امنیتی افشای کلیدها در کلاینت؛ مرز باریک میان کدهای اجرا شونده در سرور و کدهای لو رفته در مرورگر کاربر.

آنچه نباید وارد آن شویم (Out-of-Scope):

  • تست‌های مقیاس‌پذیری انترپرایز برای میلیون‌ها کاربر همزمان (در فصول آخر بررسی خواهد شد).
  • تنظیمات سرورهای وب Nginx یا کلودفلر (فصل ۱۲ استقرار).

۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)

اصطلاح انگلیسی معادل فارسی مصوب توضیح یک‌خطی ساده
Functional Requirement (FR) نیازمندی کارکردی عمل و رفتار مشخصی که نرم‌افزار باید در پاسخ به ورودی کاربر انجام دهد
Non-Functional Requirement (NFR) نیازمندی غیرکارکردی صفت یا معیار کیفی که نحوه عملکرد، سرعت، پایداری و امنیت سیستم را توصیف می‌کند
Semantic HTML ساختار معنایی وب استفاده از تگ‌های استاندارد HTML که به موتورهای جستجو و ابزارها معنای محتوا را تفهیم می‌کنند
Lighthouse Audit ارزیابی لایت‌هاوس ابزار رسمی گوگل برای سنجش سرعت، سئو، دسترسی‌پذیری و استانداردهای وب‌سایت
Responsive Layout چیدمان واکنش‌گرا انطباق خودکار ابعاد و اجزای رابط کاربری با اندازه صفحه‌نمایش موبایل، تبلت و کامپیوتر

۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders)

راهنمای ایجنت نویسنده: تمام تصاویر باید در پوشهٔ images/ قرار گرفته و در قالب جدول تک‌خانه‌ای وسط‌چین با کپشن تفصیلی درج شوند:

  1. تصویر کاور درس: images/cover.png
    • موضوع: کاور مدرن با تم تیره و ترازوی دیجیتالی نئونی که در یک کفه چرخ‌دنده‌های کارکردی (FR) و در کفه دیگر شاخص‌های سرعت، امنیت و سئو (NFR) را به توازن رسانده است.
  2. ترازوی نیازمندی‌های کارکردی در برابر غیرکارکردی: images/fr-vs-nfr-balance.png
    • موضوع: اینفوگرافیک مقایسه‌ای: ستون سبز (FR: چه کارهایی می‌کند) در برابر ستون آبی (NFR: با چه سرعتی، چه امنیتی و چگونه می‌کند).
  3. چهار ستون کیفیت نرم‌افزار: images/quality-pillars-diagram.png
    • موضوع: تصویر شماتیک ۴ ستون معبد کیفیت: کاربردپذیری، پایداری، عملکرد و سرعت، امنیت و سئو.
  4. چک‌لیست کیفی پروژه پورتفولیوی پویا: images/portfolio-nfr-checklist.png
    • موضوع: نمایش تصویری ۴ تیک سبز: تست در موبایل، سرعت لود زیر ۲ ثانیه، محافظت از پنل ادمین و تگ‌های سالم سئو.

۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (README.md)

  1. تیتر اصلی: # تحلیل نیازمندی‌ها: تفاوت کارهایی که نرم‌افزار می‌کند با کیفیتی که ارائه می‌دهد
  2. مقدمه: چرا یک برنامه با ده فیچر عالی اما سرعت حلزونی و باگ‌های موبایل، یک شکست کامل است؟
  3. جدول کاور درس
  4. تعریف نیازمندی‌های کارکردی (FR): استخوان‌بندی کارها: کارهایی که برنامه انجام می‌دهد.
  5. تعریف نیازمندی‌های غیرکارکردی (NFR): روح و کیفیت نرم‌افزار: سرعت، امنیت و تجربه.
  6. باکس شگفت‌انگیز Quera (<details class="violet">): چرا هوش مصنوعی به طور خودکار NFRها را دور می‌زند؟
  7. چهار ستون استاندارد کیفیت (FURPS): کاربردپذیری، پایداری، پرفورمنس، امنیت و سئو.
  8. تفکیک FR و NFR در پروژه محوری (پورتفولیوی پویا):
    • لیست نیازمندی‌های کارکردی ویترین، ادمین و سئو.
    • الزامات کیفی سرعت، نمایش در گوشی و حفظ متغیرهای امنیتی.
  9. فرمول تزریق الزامات کیفی به پرامپت‌ها و .cursorrules: مهار هوش مصنوعی پیش از تولید کد بی‌کیفیت.
  10. باکس هشدار Quera (<details class="red">): اشتباه نابخشودنی نشت کلیدهای خصوصی در محیط کلاینت.
  11. جمع‌بندی درس‌نامه: تکمیل ابزارهای تفکر محصولی و آماده شدن برای تدوین سند نیازمندی‌های محصول (PRD).

۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)

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