نحتاج الى المتطلبات الوظيفية والغير وظيفية في مرحلة التحليل؟
إجابة الطالب المختصرة من خلال موقع بوابة الإجابات هي
صواب
بالتأكيد، إليك تفصيل للمتطلبات الوظيفية وغير الوظيفية في مرحلة التحليل، مع أمثلة توضيحية:
**أولاً: المتطلبات الوظيفية (Functional Requirements)**
هي عبارة عن وصف لما *يجب أن يفعله* النظام أو البرنامج. تحدد الوظائف والمهام التي سيقوم بها النظام، وكيف سيتفاعل مع المستخدمين والأنظمة الأخرى.
**خصائص المتطلبات الوظيفية:**
* **قابلة للقياس:** يمكن تحديد معايير لقياس نجاح تحقيقها.
* **قابلة للاختبار:** يمكن تصميم اختبارات للتحقق من عملها بشكل صحيح.
* **واضحة ومحددة:** لا تترك مجالًا للتفسيرات المختلفة.
* **كاملة:** تغطي جميع الوظائف الأساسية للنظام.
**أمثلة على المتطلبات الوظيفية:**
* **نظام إدارة العملاء (CRM):**
* يجب أن يتمكن المستخدم من إضافة عميل جديد مع تفاصيل (اسم، عنوان، رقم هاتف، بريد إلكتروني).
* يجب أن يتمكن النظام من البحث عن العملاء باستخدام الاسم أو رقم الهاتف.
* يجب أن يتمكن النظام من تسجيل تفاعلات الموظفين مع العملاء (مكالمات، رسائل بريد إلكتروني، اجتماعات).
* يجب أن يتمكن النظام من إنشاء تقارير حول العملاء (مثل العملاء الجدد، العملاء الأكثر إنفاقًا).
* **تطبيق للتجارة الإلكترونية:**
* يجب أن يتمكن المستخدم من تصفح المنتجات حسب الفئة أو الكلمات الرئيسية.
* يجب أن يتمكن المستخدم من إضافة منتجات إلى سلة التسوق.
* يجب أن يتمكن المستخدم من إتمام عملية الدفع باستخدام بطاقات الائتمان أو طرق دفع أخرى.
* يجب أن يتمكن النظام من إرسال تأكيد بالطلب إلى المستخدم عبر البريد الإلكتروني.
**كيفية تحديد المتطلبات الوظيفية:**
* **جمع المعلومات من أصحاب المصلحة:** إجراء مقابلات وورش عمل مع المستخدمين والعملاء والمديرين لفهم احتياجاتهم.
* **تحليل العمليات الحالية:** دراسة كيفية سير العمل حاليًا لتحديد المشاكل ونقاط التحسين.
* **استخدام حالات الاستخدام (Use Cases):** وصف كيفية تفاعل المستخدم مع النظام لتحقيق هدف معين.
* **إنشاء نماذج أولية (Prototypes):** تصميم نماذج بسيطة للنظام لعرضها على المستخدمين والحصول على ملاحظاتهم.
**ثانياً: المتطلبات غير الوظيفية (Non-Functional Requirements)**
هي عبارة عن وصف *لكيفية* عمل النظام، وليس ما يفعله. تحدد خصائص النظام مثل الأداء، والأمان، وسهولة الاستخدام، والموثوقية.
**خصائص المتطلبات غير الوظيفية:**
* **قابلة للقياس (في الغالب):** يمكن تحديد مقاييس لتقييم تحقيقها.
* **تؤثر على تجربة المستخدم:** تحدد مدى رضا المستخدم عن النظام.
* **تؤثر على بنية النظام:** تتطلب في الغالب تصميمًا خاصًا وتنفيذًا دقيقًا.
* **قد تكون أكثر أهمية من المتطلبات الوظيفية في بعض الحالات:** على سبيل المثال، الأمان في نظام بنكي.
**أمثلة على المتطلبات غير الوظيفية:**
* **الأداء (Performance):**
* يجب أن يستجيب النظام لطلبات المستخدم في أقل من 3 ثوانٍ.
* يجب أن يكون النظام قادرًا على معالجة 1000 معاملة في الدقيقة الواحدة.
* **الأمان (Security):**
* يجب أن يكون النظام محميًا من الوصول غير المصرح به.
* يجب تشفير جميع البيانات الحساسة.
* يجب أن يتمكن النظام من اكتشاف ومنع الهجمات الإلكترونية.
* **سهولة الاستخدام (Usability):**
* يجب أن يكون النظام سهل التعلم والاستخدام من قبل المستخدمين ذوي الخبرة المختلفة.
* يجب أن تكون واجهة المستخدم واضحة وبديهية.
* **الموثوقية (Reliability):**
* يجب أن يكون النظام متاحًا بنسبة 99.9% من الوقت.
* يجب أن يكون النظام قادرًا على التعافي من الأخطاء دون فقدان البيانات.
* **قابلية التوسع (Scalability):**
* يجب أن يكون النظام قادرًا على التعامل مع زيادة في عدد المستخدمين أو حجم البيانات.
* **قابلية الصيانة (Maintainability):**
* يجب أن يكون النظام سهل الصيانة والتحديث.
* يجب أن يكون الكود البرمجي منظمًا وموثقًا بشكل جيد.
* **إمكانية الوصول (Accessibility):**
* يجب أن يكون النظام قابلاً للاستخدام من قبل الأشخاص ذوي الإعاقة (مثل المكفوفين أو ضعاف البصر).
* **التوافقية (Compatibility):**
* يجب أن يكون النظام متوافقًا مع أنظمة التشغيل والمتصفحات المختلفة.
* **القابلية للنقل (Portability):**
* يجب أن يكون النظام قابلاً للنقل إلى بيئات تشغيل مختلفة.
* **التوطين (Localization):**
* يجب أن يكون النظام قابلاً للتكيف مع اللغات والثقافات المختلفة.
**كيفية تحديد المتطلبات غير الوظيفية:**
* **تحليل المخاطر:** تحديد المخاطر المحتملة التي قد تؤثر على النظام وتحديد متطلبات الأمان والموثوقية اللازمة.
* **تحليل المنافسين:** دراسة الأنظمة المماثلة لتحديد معايير الأداء وسهولة الاستخدام.
* **استشارة الخبراء:** الحصول على مشورة من الخبراء في مجالات الأمان، والأداء، وسهولة الاستخدام.
* **تحديد الأولويات:** تحديد المتطلبات غير الوظيفية الأكثر أهمية وترتيبها حسب الأولوية.
**أهمية التمييز بين المتطلبات الوظيفية وغير الوظيفية:**
* **تخطيط أفضل:** يساعد على تخطيط المشروع بشكل أفضل وتحديد الموارد اللازمة.
* **تصميم أفضل:** يساعد على تصميم نظام يلبي احتياجات المستخدمين من جميع النواحي.
* **اختبار أفضل:** يساعد على تصميم اختبارات شاملة للتحقق من أن النظام يعمل بشكل صحيح ويلبي جميع المتطلبات.
* **رضا المستخدمين:** يؤدي إلى زيادة رضا المستخدمين عن النظام.
**ملخص:**
في مرحلة التحليل، من الضروري تحديد كل من المتطلبات الوظيفية وغير الوظيفية بوضوح ودقة. المتطلبات الوظيفية تحدد *ماذا* سيفعل النظام، بينما المتطلبات غير الوظيفية تحدد *كيف* سيعمل النظام. كلاهما ضروري لضمان نجاح المشروع وتحقيق رضا المستخدمين.
اذا كان لديك إجابة افضل او هناك خطأ في الإجابة علي سؤال نحتاج الى المتطلبات الوظيفية والغير وظيفية في مرحلة التحليل اترك تعليق فورآ.