# مشخصات درس‌نامه: تحلیل نیازمندی‌ها: کارکردی در برابر غیرکارکردی (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`، استفاده از ساختار تگ‌های سمانتیک استاندارد (`

` تا `

`، متا تگ‌ها، Alt برای تصاویر). 4. **استخراج لیست تفکیک‌شده FR و NFR برای پروژه پورتفولیوی پویا:** * جدول شفاف نیازمندی‌های کارکردی (نمایش کارت‌ها، فیلتر مهارت، لاگین ادمین، فرم ویرایش سئو). * جدول شفاف نیازمندی‌های غیرکارکردی (سرعت لودینگ، ریسپانسیو بودن، محافظت از کلیدها، تگ‌های OpenGraph). 5. **روش تزریق NFR به پرامپت‌های ایجنت‌های وایب کدینگ:** * نحوه افزودن بلوک «الزامات کیفی» در انتهای پرامپت برای مجبور کردن مدل به رعایت استانداردهای مهندسی. 6. **کال‌اوت‌های Quera:** * `
`: چرا هوش مصنوعی به ذات خود نیازمندی‌های غیرکارکردی را فراموش می‌کند و چگونه با `.cursorrules` جلوی این نسیان را بگیریم؟ * `
`: خطر امنیتی افشای کلیدها در کلاینت؛ مرز باریک میان کدهای اجرا شونده در سرور و کدهای لو رفته در مرورگر کاربر. ### آنچه نباید وارد آن شویم (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 (`
`):** چرا هوش مصنوعی به طور خودکار NFRها را دور می‌زند؟ 7. **چهار ستون استاندارد کیفیت (FURPS):** کاربردپذیری، پایداری، پرفورمنس، امنیت و سئو. 8. **تفکیک FR و NFR در پروژه محوری (پورتفولیوی پویا):** * لیست نیازمندی‌های کارکردی ویترین، ادمین و سئو. * الزامات کیفی سرعت، نمایش در گوشی و حفظ متغیرهای امنیتی. 9. **فرمول تزریق الزامات کیفی به پرامپت‌ها و `.cursorrules`:** مهار هوش مصنوعی پیش از تولید کد بی‌کیفیت. 10. **باکس هشدار Quera (`
`):** اشتباه نابخشودنی نشت کلیدهای خصوصی در محیط کلاینت. 11. **جمع‌بندی درس‌نامه:** تکمیل ابزارهای تفکر محصولی و آماده شدن برای تدوین سند نیازمندی‌های محصول (PRD). --- ## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer) - [ ] تمایز میان نیازمندی‌های کارکردی و غیرکارکردی با مثال‌های واضح تبیین شده باشد. - [ ] پیامدهای غفلت هوش مصنوعی از NFRها (سرعت پایین، خرابی در موبایل، نشت اطلاعات) تشریح گردد. - [ ] نیازمندی‌های کارکردی و کیفی پروژه پورتفولیو در دو جدول مجزا مستند شده باشند. - [ ] شیوه هدایت ایجنت با لحاظ کردن الزامات کیفی در پرامپت‌ها آموزش داده شود.