99 lines
11 KiB
Markdown
99 lines
11 KiB
Markdown
# مشخصات درسنامه: تحلیل نیازمندیها: کارکردی در برابر غیرکارکردی (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ها (سرعت پایین، خرابی در موبایل، نشت اطلاعات) تشریح گردد.
|
||
- [ ] نیازمندیهای کارکردی و کیفی پروژه پورتفولیو در دو جدول مجزا مستند شده باشند.
|
||
- [ ] شیوه هدایت ایجنت با لحاظ کردن الزامات کیفی در پرامپتها آموزش داده شود.
|