Files

99 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# مشخصات درس‌نامه: تحلیل نیازمندی‌ها: کارکردی در برابر غیرکارکردی (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ها (سرعت پایین، خرابی در موبایل، نشت اطلاعات) تشریح گردد.
- [ ] نیازمندی‌های کارکردی و کیفی پروژه پورتفولیو در دو جدول مجزا مستند شده باشند.
- [ ] شیوه هدایت ایجنت با لحاظ کردن الزامات کیفی در پرامپت‌ها آموزش داده شود.