دورة حياة تطوير البرمجيات: التحليل والتصميم - كتاب هندسة البرمجيات - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: التحليل والتصميم في دورة حياة تطوير البرمجيات

📚 معلومات الصفحة

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: مبتدئ

📝 ملخص الصفحة

تتناول هذه الصفحة مرحلتي التحليل والتصميم في دورة حياة تطوير البرمجيات، حيث تبدأ بمرحلة التحليل التي تُعد الخطوة الأولى وتشمل تحديد المشكلة وجمع المتطلبات من أصحاب المصلحة. يتم شرح الفرق بين المتطلبات الوظيفية، التي تصف القدرات والميزات المحددة للبرنامج، والمتطلبات غير الوظيفية، التي تتعلق بالقيود وخصائص الجودة مثل الأداء والأمان. كما تُذكر أدوات جمع البيانات مثل الاستبيانات والمقابلات والملاحظة المباشرة، مع تقديم مثال تطبيقي لنظام مصرفي إلكتروني.

تنتقل الصفحة بعد ذلك إلى مرحلة التصميم، وهي المرحلة الثانية، حيث يتم تخطيط وتصميم حل المشكلة، بما في ذلك تحديد تدفق البيانات وهياكلها. تُبرز الصفحة أهمية الموارد البشرية والمادية والوقت في عملية التحليل، وتوضح كيفية تحديد وظائف النظام الجديد والقيود المرتبطة به.

تستهدف الصفحة طلاب علوم الحاسب أو الهندسة، وتقدم مفاهيم أساسية في هندسة البرمجيات بطريقة منظمة، مع استخدام أيقونات مرئية لتعزيز الفهم، مما يجعلها مناسبة للمبتدئين في هذا المجال.

📄 النص الكامل للصفحة

--- SECTION: Analysis --- Analysis تتمثل الخطوة الأولى في دورة حياة تطوير البرمجيات في تحديد المشكلة التي يجب حلها، ثم تحديد متطلبات الحل بأكبر قدر ممكن من الدقة من خلال عمليات جمع المتطلبات. تتضمن عملية جمع المتطلبات تحليل احتياجات وتوقعات أصحاب المصلحة (عملاء أو مستخدمي النظام البرمجي)، وتحديدها، والتحقق من صحتها، وإدارتها. يتضمن التحليل كذلك فهم مجال المشكلة وتحديد المتطلبات الوظيفية وغير الوظيفية للبرنامج. ويتضح الاختلاف بين المتطلبات الوظيفية وغير الوظيفية فيما يلي: --- SECTION: المتطلبات الوظيفية (Functional Requirements) --- المتطلبات الوظيفية (Functional Requirements): هي القدرات أو الميزات المحددة التي يجب أن يمتلكها البرنامج لتلبية احتياجات أصحاب المصلحة. على سبيل المثال، يُعد توفير وظيفة البحث عن المنتجات وإضافتها إلى عربة التسوق وإتمام عملية الدفع بأمان لمستخدمي موقع تسوق إلكتروني وتمكينهم من ذلك، من المتطلبات الوظيفية الشائعة لذلك الموقع. --- SECTION: المتطلبات غير الوظيفية (Non-functional Requirements) --- المتطلبات غير الوظيفية (Non-functional Requirements): تتمثل في القيود وخصائص الجودة التي يجب أن يفي بها البرنامج ليكون مقبولاً لدى أصحاب المصلحة. ومن الأمثلة المميزة على المتطلبات غير الوظيفية للبرنامج: توفير متطلبات الأداء، مثل زمن الاستجابة والإنتاجية، وتوفير متطلبات الأمان، مثل خصوصية البيانات والمصادقة، ومتطلبات قابلية الاستخدام، مثل وجود واجهة سهلة الاستخدام. يجب أخذ جميع الموارد بالاعتبار خلال عملية التحليل، بما فيها الموارد البشرية والمادية، والتكلفة والميزانية والوقت المتاح للمشروع، وكل ما يتعلق بالمشروع، ويجب تحديد جميع وظائف النظام الجديد المطلوبة بالتفصيل مع الإشارة إلى القيود والعقبات التي تتعلق بهذا النظام. تتضمن عملية التحليل تحديد المستخدمين واحتياجاتهم ومتطلباتهم، وتُعد الأدوات التالية الأكثر استخدامًا لجمع البيانات المطلوبة: الاستبيانات. المقابلات. الملاحظة المباشرة. --- SECTION: مثال تطبيقي --- يسعى أحد المصارف لإنشاء نظام إلكتروني لتقديم الخدمات المصرفية عبر الإنترنت، وستشمل مرحلة التحليل في هذا المشروع جمع المعلومات الخاصة بمتطلبات الإدارة والعملاء من أجل تحديد الخدمات المصرفية التي يجب أن يتم توفيرها إلكترونياً عبر الإنترنت، وتصميم واجهات المستخدم المطلوبة، وتحديد متطلبات الأمان والأذونات الرقمية المخصصة لموظفي المصرف والعملاء في النظام. --- SECTION: Design --- Design مرحلة التصميم هي المرحلة الثانية من دورة حياة تطوير البرمجيات، حيث يوفر محللو الأنظمة في هذه المرحلة الخبرات والمهارات اللازمة لتخطيط وتصميم حل المشكلة المحددة. تحدد مرحلة التصميم أنواع البيانات المطلوبة والواجهات المختلفة للنظام، وبشكل أكثر تحديدًا، تتضمن مرحلة التصميم ما يلي: 1. تحديد تدفق البيانات والمعلومات في جميع أجزاء النظام الجديد. 2. تحديد البيانات الرئيسة المراد معالجتها، والتي يتم تحديد هياكل البيانات المستخدمة من قبل النظام بناءً عليها. 10 وزارة التعليم Ministry of Education 2025 - 1447 --- VISUAL CONTEXT --- **IMAGE**: Analysis Icon Description: An icon depicting a clipboard with a checklist and three interconnected circles, symbolizing analysis, planning, or requirements gathering in a project. Context: Visually represents the 'Analysis' phase of software development, emphasizing documentation and interconnected processes. **IMAGE**: Design Icon Description: An icon depicting a computer monitor screen with angle brackets '</>' inside, symbolizing coding, software development, or system design. Context: Visually represents the 'Design' phase of software development, highlighting the technical and coding aspects. **IMAGE**: Ministry of Education Logo Description: The logo of the Ministry of Education, featuring a stylized green pattern resembling leaves or data points, with the text 'وزارة التعليم' in Arabic and 'Ministry of Education 2025 - 1447' in English below it. Context: Indicates the official source or publisher of the textbook material.

✅ حلول أسئلة الكتاب الرسمية

عدد الأسئلة: 3

سؤال مربع-1: عرف المتطلبات الوظيفية.

الإجابة: هي القدرات أو الميزات المحددة التي يجب أن يمتلكها البرنامج لتلبية احتياجات أصحاب المصلحة.

خطوات الحل:

  1. **الشرح:** لنفهم هذا السؤال، فهو يطلب منا تعريف مصطلح "المتطلبات الوظيفية". في مجال هندسة البرمجيات وتحليل النظم، نتعامل مع نوعين رئيسيين من المتطلبات. الفكرة هنا هي التركيز على ما يفعله النظام أو البرنامج. المتطلبات الوظيفية تصف السلوك المحدد للنظام، أي المهام والوظائف التي يجب أن يقوم بها. يمكن التفكير فيها على أنها قائمة بالإجراءات التي يجب أن ينفذها البرنامج استجابةً لمدخلات معينة أو تحت ظروف محددة. إذن الإجابة هي: **هي القدرات أو الميزات المحددة التي يجب أن يمتلكها البرنامج لتلبية احتياجات أصحاب المصلحة.**

سؤال مربع-2: عرف المتطلبات غير الوظيفية.

الإجابة: تتمثل في القيود وخصائص الجودة التي يجب أن يفي بها البرنامج ليكون مقبولاً لدى أصحاب المصلحة.

خطوات الحل:

  1. **الشرح:** هذا السؤال يكمل السؤال السابق، حيث يطلب تعريف النوع الآخر من المتطلبات، وهو "المتطلبات غير الوظيفية". الفكرة هنا هي أن هذه المتطلبات لا تصف *ماذا* يفعل النظام، بل تصف *كيف* يؤديه. إنها معايير الجودة والأداء والقيود التي تحيط بعمل النظام. على سبيل المثال، سرعة الاستجابة، سهولة الاستخدام، الأمان، الموثوقية، والقدرة على التعامل مع عدد كبير من المستخدمين في وقت واحد. لذلك، بينما تحدد المتطلبات الوظيفية المهام، تحدد المتطلبات غير الوظيفية معايير قبول أداء هذه المهام. إذن الإجابة هي: **تتمثل في القيود وخصائص الجودة التي يجب أن يفي بها البرنامج ليكون مقبولاً لدى أصحاب المصلحة.**

سؤال مربع-3: ما هي الأدوات الأكثر استخدامًا لجمع البيانات المطلوبة في عملية التحليل؟

الإجابة: الاستبيانات. المقابلات. الملاحظة المباشرة.

خطوات الحل:

  1. **الخطوة 1 (المفهوم):** نتذكر أن عملية جمع البيانات هي مرحلة أساسية في تحليل النظم أو أي دراسة ميدانية. الهدف منها هو الحصول على المعلومات الدقيقة واللازمة لفهم المشكلة أو الاحتياجات الحالية من مصادرها المختلفة.
  2. **الخطوة 2 (الأدوات):** وبتطبيق هذا على السؤال، نبحث عن الوسائل أو الطرق العملية الأكثر شيوعاً لجمع هذه البيانات. هناك عدة أدوات، ولكن بعضها يعتبر أساسياً وشائع الاستخدام في مختلف المجالات بسبب فعاليتها في جمع أنواع مختلفة من المعلومات.
  3. **الخطوة 3 (النتيجة):** لذلك، الأدوات الأكثر استخدامًا هي: **الاستبيانات.** **المقابلات.** **الملاحظة المباشرة.**

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 8 بطاقة لهذه الصفحة

ما هي الخطوة الأولى في دورة حياة تطوير البرمجيات؟

الإجابة: تحديد المشكلة التي يجب حلها، ثم تحديد متطلبات الحل بأكبر قدر ممكن من الدقة من خلال عمليات جمع المتطلبات.

الشرح: تعتبر مرحلة التحليل والتفهم الدقيق للمشكلة والمتطلبات الأساس لنجاح أي مشروع برمجي، حيث تحدد الاتجاه العام للحل.

تلميح: فكر في المرحلة التمهيدية التي تسبق أي تصميم أو برمجة.

التصنيف: مفهوم جوهري | المستوى: سهل

ما تعريف عملية جمع المتطلبات (Requirements Gathering)؟

الإجابة: هي عملية تتضمن تحليل احتياجات وتوقعات أصحاب المصلحة (عملاء أو مستخدمي النظام البرمجي)، وتحديدها، والتحقق من صحتها، وإدارتها.

الشرح: جمع المتطلبات هو نشاط تحليلي منهجي يهدف إلى استخلاص وتوثيق الاحتياجات الحقيقية للنظام المطلوب بنائه.

تلميح: ركز على الأنشطة المتعلقة بفهم ما يريده المستخدمون وأصحاب المصلحة من النظام.

التصنيف: تعريف | المستوى: متوسط

ما هي المتطلبات الوظيفية (Functional Requirements) في هندسة البرمجيات؟

الإجابة: هي القدرات أو الميزات المحددة التي يجب أن يمتلكها البرنامج لتلبية احتياجات أصحاب المصلحة.

الشرح: المتطلبات الوظيفية تصف الخدمات التي يجب أن يقدمها النظام، وكيفية تفاعله مع المدخلات والمخرجات، وما هي السلوكيات المتوقعة منه.

تلميح: تتعلق بما سيفعله النظام، أي وظائفه وسلوكه.

التصنيف: تعريف | المستوى: متوسط

ما هي المتطلبات غير الوظيفية (Non-functional Requirements) في هندسة البرمجيات؟

الإجابة: هي القيود وخصائص الجودة التي يجب أن يفي بها البرنامج ليكون مقبولاً لدى أصحاب المصلحة.

الشرح: المتطلبات غير الوظيفية تحدد معايير الأداء والأمان والموثوقية والقابلية للاستخدام وغيرها من السمات النوعية للنظام.

تلميح: تتعلق بكيفية أداء النظام وليس بما يفعله. فكر في الصفات والقيود.

التصنيف: تعريف | المستوى: متوسط

ما الفرق بين المتطلبات الوظيفية والمتطلبات غير الوظيفية في تطوير البرمجيات؟

الإجابة: المتطلبات الوظيفية: هي القدرات أو الميزات المحددة التي يجب أن يمتلكها البرنامج (ماذا يفعل النظام). المتطلبات غير الوظيفية: هي القيود وخصائص الجودة التي يجب أن يفي بها البرنامج (كيف يؤدّي النظام وظائفه).

الشرح: الفرق الأساسي يكمن في طبيعة المتطلب؛ الوظيفي يحدد السلوك والخدمة، وغير الوظيفي يحدد معايير الجودة والأداء لتلك الخدمة.

تلميح: قارن بين 'ماذا يفعل' و 'كيف يؤدّي'.

التصنيف: فرق بين مفهومين | المستوى: صعب

اذكر ثلاثة أمثلة على المتطلبات غير الوظيفية للبرنامج.

الإجابة: 1. متطلبات الأداء (مثل زمن الاستجابة والإنتاجية). 2. متطلبات الأمان (مثل خصوصية البيانات والمصادقة). 3. متطلبات قابلية الاستخدام (مثل وجود واجهة سهلة الاستخدام).

الشرح: هذه الأمثلة تمثل فئات رئيسية للمتطلبات غير الوظيفية التي تؤثر بشكل كبير على رضا المستخدم وقابلية النظام للنجاح.

تلميح: فكر في الصفات التي تصف جودة النظام مثل السرعة والأمان وسهولة التعامل.

التصنيف: مفهوم جوهري | المستوى: سهل

ما هي الأدوات الثلاث الأكثر استخدامًا لجمع البيانات في مرحلة تحليل متطلبات البرمجيات؟

الإجابة: 1. الاستبيانات. 2. المقابلات. 3. الملاحظة المباشرة.

الشرح: تستخدم هذه الأدوات لفهم احتياجات المستخدمين بدقة من خلال التواصل المباشر أو غير المباشر ومراقبة سلوكهم في بيئة العمل الحقيقية أو المحاكاة.

تلميح: تتضمن طرق تفاعل مع المستخدمين لجمع المعلومات.

التصنيف: صيغة/خطوات | المستوى: سهل

ما هي المرحلة التي تلي مرحلة التحليل في دورة حياة تطوير البرمجيات؟ وما الهدف الرئيسي منها؟

الإجابة: المرحلة التالية هي مرحلة التصميم. والهدف الرئيسي منها هو تخطيط وتصميم حل المشكلة المحددة، وتحديد أنواع البيانات المطلوبة والواجهات المختلفة للنظام.

الشرح: مرحلة التصميم هي الجسر بين تحليل ما هو مطلوب (المتطلبات) وتنفيذ كيف سيتم بناؤه (التطوير).

تلميح: تأتي بعد فهم المشكلة والمتطلبات، وتهتم بكيفية بناء الحل.

التصنيف: مفهوم جوهري | المستوى: متوسط