أمثلة على الأدوات المستخدمة: - كتاب هندسة البرمجيات - الصف 12 - الفصل 1 - المملكة العربية السعودية

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

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

الدرس: إدارة التحكم في الإصدار ونشر البرنامج

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

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

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

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

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

📝 ملخص الصفحة

ملخص الصفحة 47 - هندسة البرمجيات

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

1. إدارة التحكم في الإصدار (Version Control Management)

تُستخدم هذه الأداة (المعروفة أيضًا باسم إدارة النصوص البرمجية) للتحكم في عملية تعديل البرنامج المصدري، خاصة عند العمل ضمن فريق. تتيح هذه الأداة ما يلي:

* يمكن لأعضاء الفريق المختلفين الوصول إلى البرنامج المصدري في الوقت نفسه دون تعارض.

* الاحتفاظ بالإصدارات السابقة من ملفات البرامج للرجوع إليها عند حدوث مشكلات.

تعمل هذه الأدوات باستخدام مفهوم المستودع (Repository) الذي يسجل جميع التغييرات. عندما يريد المبرمج العمل، يقوم بإنشاء نسخة عمل تسمى نسخة التحقق (Checkout Copy). تتم الموافقة على جميع التغييرات عند حفظها في المستودع.

أمثلة على أدوات إدارة التحكم في الإصدار:

* قيت (Git)

* سابفيرجن (Subversion)

* ميركوريال (Mercurial)

* أزور ديف أوبس (Azure DevOps)

* ديف ميرج (DiffMerge)

ميزة التفريعة (Branching):

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

2. نشر البرنامج (Code Deployment)

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

أمثلة على أدوات نشر البرنامج:

* تيم سيتي (TeamCity)

* مدير نشر قوقل كلاود (Google Cloud Deployment Manager)

* قيت لاب (GitLab)

* جينكينز (Jenkins)

* ناشر الكود AWS (AWS CodeDeploy)

* أزور ديف أوبس (Azure DevOps)

الأشكال التوضيحية:

* شكل 1.17: يوضح واجهة برنامج لإدارة التحكم في الإصدار، تظهر عمليات مثل إضافة تكوين Git، وعملية الالتزام (Commit)، وحالة الملفات (File Status)، ومقارنة الاختلافات (Diff).

* شكل 1.18: يوضح لوحة تحكم لعملية نشر أو بناء مستمر (CI/CD)، تظهر رقم إصدار (#0.1.11)، وعلامة نجاح (دائرة خضراء بها علامة صح)، ونسبة إكمال (100%)، ومدة التنفيذ (10 ثانية و567 ميلي ثانية).

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

نوع: محتوى تعليمي

تسمى الأداة التي يمكن استخدامها للتحكم في هذه العملية باسم أداة إدارة التحكم في الإصدار (Version Control Management) أو إدارة النصوص البرمجية (Code Management). وتتيح هذه الأداة ما يلي:

نوع: محتوى تعليمي

1. يمكن لأعضاء الفريق المختلفين الوصول إلى البرنامج المصدري في ذات الوقت دون التعارض بين أعضاء الفريق. 2. يمكن الاحتفاظ بالإصدارات السابقة من ملفات البرامج للرجوع إليها عند حدوث بعض المشكلات.

نوع: محتوى تعليمي

يستخدم التحكم في الإصدار ما يشبه المستودع (Repository)، ومهمته تسجيل جميع التغييرات التي يتم إجراؤها، وإنشاء نسخة عمل من ملفات برنامج المشروع تسمى أحيانًا نسخة التحقق (Checkout Copy) عندما يريد المبرمج العمل على البرنامج. تتم الموافقة على جميع التغييرات التي تم إجراؤها على البرنامج بواسطة برنامج إدارة التحكم في الإصدار عندما يتم حفظها في المستودع.

أمثلة على الأدوات المستخدمة:

نوع: محتوى تعليمي

أمثلة على الأدوات المستخدمة:

نوع: محتوى تعليمي

• قيت (Git) • سابفيرجن (Subversion) • ميركوريال (Mercurial) • أزور ديف أوبس (Azure DevOps) • ديف ميرج (DiffMerge)

نوع: FIGURE_REFERENCE

شكل 1.17: إدارة التحكم في الإصدار

نشر البرنامج Code Deployment

نوع: محتوى تعليمي

نشر البرنامج Code Deployment

نوع: محتوى تعليمي

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

أمثلة على الأدوات المستخدمة:

نوع: محتوى تعليمي

أمثلة على الأدوات المستخدمة:

نوع: محتوى تعليمي

• تيم سيتي (TeamCity). • مدير نشر قوقل كلاود (Google Cloud Deployment Manager). • قيت لاب (GitLab). • جينكينز (Jenkins). • ناشر الكود AWS (AWS CodeDeploy). • أزور ديف أوبس (Azure DevOps)

نوع: FIGURE_REFERENCE

شكل 1.18: نشر البرنامج

معلومة

نوع: محتوى تعليمي

ميزة التفريعة (Branching) مفيدة جدًا في التحكم في الإصدار، فهي تعني إمكانية نسخ البرنامج المشروع كمشروع مواز جديد يسمح بالاختبار أو بإجراء التعديلات لإنشاء إصدار محدث أو جديد من التطبيق، ويمكن لاحقًا نقل أجزاء من البرنامج الجديد إلى المشروع الأصلي لاستخدامها فيه أيضًا.

نوع: METADATA

وزارة التعليم Ministry of Education 47 2025 - 1447

🔍 عناصر مرئية

إدارة التحكم في الإصدار

A screenshot of a software development environment or version control system interface. It displays lines of code, file names, and possibly commit messages or version history. The interface has a dark theme with light text. There are elements like 'Add git configuration', 'commit', 'file status', and 'diff' visible, indicating version control operations.

نشر البرنامج

A screenshot of a continuous integration/continuous deployment (CI/CD) dashboard or pipeline. It shows a summary of a build or deployment process, including a version number '#0.1.11', a status indicator (a large green circle with a checkmark, indicating success), completion percentage '100%', and duration '10s 567ms'. There are also tabs or sections like 'Summary', 'Tests', 'Artifacts', and 'Logs'. A small trophy icon is visible below the screenshot, possibly indicating a successful build or achievement.

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

تسمى الأداة التي يمكن استخدامها للتحكم في هذه العملية باسم أداة إدارة التحكم في الإصدار (Version Control Management) أو إدارة النصوص البرمجية (Code Management). وتتيح هذه الأداة ما يلي: 1. يمكن لأعضاء الفريق المختلفين الوصول إلى البرنامج المصدري في ذات الوقت دون التعارض بين أعضاء الفريق. 2. يمكن الاحتفاظ بالإصدارات السابقة من ملفات البرامج للرجوع إليها عند حدوث بعض المشكلات. يستخدم التحكم في الإصدار ما يشبه المستودع (Repository)، ومهمته تسجيل جميع التغييرات التي يتم إجراؤها، وإنشاء نسخة عمل من ملفات برنامج المشروع تسمى أحيانًا نسخة التحقق (Checkout Copy) عندما يريد المبرمج العمل على البرنامج. تتم الموافقة على جميع التغييرات التي تم إجراؤها على البرنامج بواسطة برنامج إدارة التحكم في الإصدار عندما يتم حفظها في المستودع. --- SECTION: أمثلة على الأدوات المستخدمة: --- أمثلة على الأدوات المستخدمة: • قيت (Git) • سابفيرجن (Subversion) • ميركوريال (Mercurial) • أزور ديف أوبس (Azure DevOps) • ديف ميرج (DiffMerge) شكل 1.17: إدارة التحكم في الإصدار --- SECTION: نشر البرنامج Code Deployment --- نشر البرنامج Code Deployment كان نشر البرامج أمرًا يسيرًا في الماضي، حيث يتم وضع البرنامج المترجم، أي الجاهز للعمل على قرص مدمج ليكون جاهزًا للاستخدام. ولكن مع ظهور الإنترنت أصبح نشر التطبيقات عبر الإنترنت ضروريًا، وذلك كبرامج قابلة للتثبيت من خلال متاجر التطبيقات، أو مباشرة كتطبيقات ويب، وأدى ذلك إلى وجود حاجة لتطوير البرامج والأدوات الخاصة بنشر التطبيقات على الويب. --- SECTION: أمثلة على الأدوات المستخدمة: --- أمثلة على الأدوات المستخدمة: • تيم سيتي (TeamCity). • مدير نشر قوقل كلاود (Google Cloud Deployment Manager). • قيت لاب (GitLab). • جينكينز (Jenkins). • ناشر الكود AWS (AWS CodeDeploy). • أزور ديف أوبس (Azure DevOps) شكل 1.18: نشر البرنامج --- SECTION: معلومة --- ميزة التفريعة (Branching) مفيدة جدًا في التحكم في الإصدار، فهي تعني إمكانية نسخ البرنامج المشروع كمشروع مواز جديد يسمح بالاختبار أو بإجراء التعديلات لإنشاء إصدار محدث أو جديد من التطبيق، ويمكن لاحقًا نقل أجزاء من البرنامج الجديد إلى المشروع الأصلي لاستخدامها فيه أيضًا. وزارة التعليم Ministry of Education 47 2025 - 1447 --- VISUAL CONTEXT --- **FIGURE**: إدارة التحكم في الإصدار Description: A screenshot of a software development environment or version control system interface. It displays lines of code, file names, and possibly commit messages or version history. The interface has a dark theme with light text. There are elements like 'Add git configuration', 'commit', 'file status', and 'diff' visible, indicating version control operations. X-axis: N/A Y-axis: N/A Data: N/A Context: Illustrates a graphical user interface for a Version Control Management (VCM) system, showing how code changes and versions might be managed visually. **FIGURE**: نشر البرنامج Description: A screenshot of a continuous integration/continuous deployment (CI/CD) dashboard or pipeline. It shows a summary of a build or deployment process, including a version number '#0.1.11', a status indicator (a large green circle with a checkmark, indicating success), completion percentage '100%', and duration '10s 567ms'. There are also tabs or sections like 'Summary', 'Tests', 'Artifacts', and 'Logs'. A small trophy icon is visible below the screenshot, possibly indicating a successful build or achievement. X-axis: N/A Y-axis: N/A Data: N/A Key Values: #0.1.11, 100%, 10s 567ms Context: Demonstrates a dashboard for code deployment, showing the status and metrics of a software release pipeline, which is part of the Code Deployment process.

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

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

ما هي أداة إدارة التحكم في الإصدار (Version Control Management) وما أهم وظيفتين لها؟

الإجابة: أداة إدارة التحكم في الإصدار (أو إدارة النصوص البرمجية) هي أداة للتحكم في عملية تطوير البرمجيات. أهم وظيفتين لها: 1) تمكين أعضاء الفريق المختلفين من الوصول إلى البرنامج المصدري في ذات الوقت دون تعارض. 2) الاحتفاظ بالإصدارات السابقة من ملفات البرامج للرجوع إليها عند حدوث مشكلات.

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

تلميح: فكر في المشكلات التي تحلها هذه الأداة أثناء العمل الجماعي على الكود.

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

ما هو المستودع (Repository) في أنظمة التحكم في الإصدار؟

الإجابة: المستودع (Repository) في أنظمة التحكم في الإصدار هو المكان الذي يسجل جميع التغييرات التي يتم إجراؤها على ملفات برنامج المشروع، ويتم فيه حفظ نسخة العمل (Checkout Copy) عندما يريد المبرمج العمل على البرنامج.

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

تلميح: تذكر أن هذا المكان يشبه الأرشيف المركزي الذي يحفظ تاريخ التغييرات.

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

اذكر خمسة أمثلة على أدوات إدارة التحكم في الإصدار.

الإجابة: 1. قيت (Git) 2. سابفيرجن (Subversion) 3. ميركوريال (Mercurial) 4. أزور ديف أوبس (Azure DevOps) 5. ديف ميرج (DiffMerge)

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

تلميح: راجع قائمة الأدوات المذكورة في قسم 'أمثلة على الأدوات المستخدمة'.

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

ما هو نشر البرنامج (Code Deployment) ولماذا أصبح أكثر تعقيداً مع ظهور الإنترنت؟

الإجابة: نشر البرنامج (Code Deployment) هو عملية جعل البرنامج المترجم جاهزاً للاستخدام من قبل المستخدمين. أصبح أكثر تعقيداً مع ظهور الإنترنت بسبب الحاجة لنشر التطبيقات عبر الإنترنت كبرامج قابلة للتثبيت من متاجر التطبيقات، أو كتطبيقات ويب مباشرة، مما استدعى تطوير أدوات خاصة بنشر التطبيقات على الويب.

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

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

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

اذكر ستة أمثلة على أدوات نشر البرنامج (Code Deployment).

الإجابة: 1. تيم سيتي (TeamCity) 2. مدير نشر قوقل كلاود (Google Cloud Deployment Manager) 3. قيت لاب (GitLab) 4. جينكينز (Jenkins) 5. ناشر الكود (AWS CodeDeploy) 6. أزور ديف أوبس (Azure DevOps)

الشرح: هذه الأدوات تمثل منصات CI/CD (التكامل المستمر/النشر المستمر) الشائعة التي أتمتت عملية بناء واختبار ونشر البرامج.

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

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

ما هي ميزة التفريعة (Branching) في أنظمة التحكم في الإصدار، وما فائدتها؟

الإجابة: ميزة التفريعة (Branching) تعني إمكانية نسخ برنامج المشروع كمشروع موازٍ جديد يسمح بالاختبار أو بإجراء التعديلات لإنشاء إصدار محدث أو جديد من التطبيق. فائدتها: يمكن لاحقًا نقل أجزاء من البرنامج الجديد إلى المشروع الأصلي لاستخدامها فيه أيضًا.

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

تلميح: تخيل أنك تريد تجربة فكرة جديدة في الكود دون التأثير على النسخة الرئيسية العاملة.

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

ما الفرق الرئيسي بين أدوات إدارة التحكم في الإصدار وأدوات نشر البرنامج من حيث الوظيفة؟

الإجابة: أدوات إدارة التحكم في الإصدار تركز على تنظيم عملية التطوير التعاوني للكود المصدري، وحفظ الإصدارات، وإدارة التغييرات (مثل Git). بينما أدوات نشر البرنامج تركز على أتمتة عملية تحويل الكود المصدري إلى تطبيق قابل للتشغيل ونشره على بيئات الاستخدام (مثل Jenkins أو AWS CodeDeploy).

الشرح: الأداتان تكملان بعضهما في خط أنابيب تطوير البرمجيات الحديث (DevOps). الأولى لإدارة الكود أثناء الكتابة، والثانية لأتمتة البناء والنشر بعد الانتهاء.

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

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