أدوات تطوير البرمجيات - هندسة البرمجيات - ثالث ثانوي
1. هندسة البرمجيات
2. النمذجة الأولية
3. تطوير التطبيقات باستخدام مخترع التطبيقات
4. قابلية الوصول إلى البرمجيات والتضمين الرقمي
42 الدرس الثالث أدوات تطوير البرمجيات أدوات وبرامج تطوير البرمجيات Software Development Tools and Programs رابط الدرس ا www.ien.edu.sa يَستخدِم المطوّرون مجموعة كبيرة من الأدوات لتطوير التطبيقات البرمجية، لكل منها مزاياها وعيوبها. تتطلب عملية البرمجة من المطورين التحلي بالكثير من المرونة والإبداع لتحقيق الاستفادة الكاملة من إمكانيات أدوات تطوير البرمجيات المختلفة لتطوير برمجيات عالية الجودة لعملائهم. تُستخدم أدوات وبرامج تطوير البرمجيات لمساعدة فريق تطوير البرمجيات في مهامهم المختلفة، بما فيها إنشاء البرامج وتعديلها وصيانتها، بالإضافة إلى تصحيح الأخطاء وتنفيذ مهام البرامج وعمليات التطوير، وتوجد العديد من البرامج المتخصصة التي تُقدِّم أو تدعم مهامًا محددة في مراحل دورة تطوير البرمجيات. جدول 1.4 تصنيف أدوات تطوير البرمجيات أدوات تطوير البرمجيات محررات النصوص البرمجية (Code Editors) الوصف تُستخدم لكتابة النصوص البرمجية وإجراء التعديلات عليها. المترجمات والرابطات (Compilers and Linkers) تترجم البرامج إلى لغة الآلة القابلة للتنفيذ. تُساعد في تصحيح الأخطاء في البرنامج. مصححات الأخطاء (Debuggers) منشئات المشروع Project Builders) تتأكد من تجميع جميع نهائى واحد . الملفات الضرورية ببرنامج أدوات إدارة التعليمات البرمجية (Code Management Tools) بيئة التطوير المتكاملة (Integrated Development Environment -IDE) المحللات (Profilers) محلات الشبكة Network Analyzers) مُستكشف ومحلل قاعدة البيانات (Database Explorer and Analyzer) تتأكد من عدم استبدال ملفات البرنامج أو مسحها عن طريق الخطأ عند عمل عدة مبرمجين على البرنامج نفسه، في الوقت نفسه. تزود المبرمجين ببيئة برمجية متكاملة تتضمَّن مُحرّر نصوص برمجي ومترجم ورابط ومُصحح أخطاء. تُقدّم هذه البرامج تحليلا لاحتياجات البرنامج، والتعامل مع وقت المعالج وموارد الذاكرة أثناء التشغيل. هذه الأدوات ضرورية عند كتابة برامج لتطبيقات الشبكات على وجه الخصوص. تسمح بالتعامل مع قواعد البيانات وتحليل أداء الاستعلامات على قاعدة بيانات محددة. وزارة التعليم Ministry of Education 2024-1446
مُحرِّرات النصوص البرمجية Code Editors (PHP) وروبي (Ruby) يسمح مُحرِّر النصوص البرمجية بإنشاء وتحرير العديد من ملفات لغة البرمجة المرتبطة، ويُمكنه التعامل مع العديد من لغات البرمجة المختلفة مثل لغة ترميز النص التشعبي (HTML) وسي إس إس (CSS) وجافاسكريبت (JavaScript) وبي إتش بي وبايثون (Python) وسي (C) وغيرها. تستخدم مُحرِّرات النصوص البرمجية المسافات البادئة والألوان المختلفة لتنسيق النص البرمجي في أقسام البرنامج، مما يجعلها أكثر ملاءمةً لكتابة النصوص البرمجية من محرّرات النصوص العادية مثل مايكروسوفت وورد أو المفكرة. هناك العديد من برامج تحرير النصوص البرمجية التي يُمكن للمبرمج اختيارها وفقًا لتفضيلاته. تُعد كفاءة برنامج التحرير في تنفيذ المهمات المطلوبة هي المعيار الأساسي لاختياره من الأمثلة على هذه المحررات: ميزات مُحرِّرات النصوص البرمجية Features of Code Editors . التحقق من الخطأ. الإكمال التلقائي واقتراحات النصوص البرمجية. وجود تعليمات برمجية قابلة لإعادة الاستخدام. . تمييز النصوص البرمجية. سهولة التنقل في ملفات النصوص البرمجية والموارد. إمكانية إضافة المزيد من الوظائف للمُحرَّر بإضافة الملحقات. average.py # calculate the average class grade total_grades = 0 total_students 2023 int(input("Enter the number of students: ")) for n in range (1, total_students + 1): print("Student #", n) 22 12 22 input("Enter the name of the student: ") input("Enter the grade of " + student_name + total_grades + float(student_grade) average grade = total grades/total_students print("The average grade of the class is average_grade) student_name student_grade total_grades سابلیم تکست (Sublime Text) شكل :1.14 برنامج بايثون في مُحرِّر نصوص برمجية مزايا وتحديات استخدام محررات النصوص البرمجية . أتوم (Atom) فيجوال ستوديو كود (Visual Studio Code) • اسبريسو ( Espresso) بيئة تطوير متكاملة لبايثون (Python IDLE) كودا 2 (2 Coda) • نوتباد+ (++Notepad) فيم (Vim) بي بي إيدت (BBedit) الترا إيدت (Ultraedit) Advantages and Challenges of Using Code Editors المزايا: . يُمكن للمُحرِّرات العمل كبديل لمحرِّر بيئة التطوير المتكاملة (Integrated Development Environment – IDE) في مهام البرمجة القياسية، وذلك عند استخدام الامتدادات المناسبة لدعم لغات البرمجة المختلفة. أصغر حجمًا وأسرع في التحميل من بيئات التطوير المتكاملة. واجهاتها البسيطة تُسهل عملية التركيز على النصوص البرمجية. التحديات: • تفتقر المحررات إلى الكثير من ميزات التحرير التي يقتصر توفّرها على بيئة التطوير المتكاملة، كخاصية التحرير الذكية على سبيل المثال. يحتاج المستخدِم إلى تهيئة مُحرِّر النصوص البرمجية بالامتدادات المناسبة قبل البدء باستخدامه لكي يعمل بشكل صحيح. 1 2 3 4 5 6 7 8 9 10 43 وزارة التعليم Ministry of Education 2024-1446
44 بيئات التطوير المتكاملة (Integrated Development Environments (IDES تتوفر بيئات التطوير المتكاملة للمبرمجين مع تطبيقاتها المدمجة ، والتي تتضمَّن عددًا من أدوات تطوير البرمجيات مثل: المُفسِّر الذي يُستخدم أثناء مرحلة إنشاء البرنامج، والمترجم الذي يقوم بتجهيز البرنامج ونشره. لا تقتصر مهمة بيئات التطوير المتكاملة الحديثة على توفير مترجم للغة البرمجة، بل تحتوي كذلك على جميع البرامج والأدوات اللازمة للمساعدة في كتابة وتنفيذ النصوص البرمجية. والأهم من ذلك ، تُتيح هذه البيئات تشخيص الأخطاء في البرامج وتصحيحها. من بين أهم الأدوات المدمجة في بيئات البرمجة المتكاملة ما يلي: مستكشف الملفات (File Explorer) . مُحرِّر النصوص البرمجية (Code Editor) المفسّر (Interpreter) ، المترجم (Compiler) لک • الرابط (Linker) . مُصحح الأخطاء (Debugger) عارض الإخراج (Output Viewer) يجب أن تتضمن بيئات التطوير المتكاملة مُحرِّرًا خاصًا لتسهيل إنشاء كائنات رسومية مثل النماذج والقوائم وصناديق الحوار، وذلك لتزويد المطوّر بالأدوات المناسبة لإنشاء مجموعات النصوص البرمجية المتعلقة بهذه الكائنات. ميزات بيئات التطوير المتكاملة Features of IDES الإكمال الذكي للنصوص البرمجية في مُحرِّرها . الربط التلقائي لمكتبات النصوص البرمجية المصدرية. • التكامل مع أدوات إدارة النصوص البرمجية للتحكم توفير الأدوات لأتمتة عملية كتابة النصوص البرمجية في الإصدار Version Control). • توفير أدوات اختبار متقدمة. ونشرها. يُمكن الحصول على كل ما ذكر أعلاه من خلال واجهة مستخدم واحدة. أمثلة على بيئات التطوير المتكاملة Examples of IDEs اقتصر دعم معظم بيئات التطوير المتكاملة على لغة برمجة واحدة فقط، حيث كان بناؤها في الماضي من قبل شركات البرمجيات أو المؤسسات التي تقوم بتطوير تلك اللغة. أصبحت معظم مشاريع تطوير البرمجيات في الوقت الحالي تدمج بين تقنيات ولغات برمجة مختلفة، الأمر الذي يتطلب بيئات تطوير متكاملة يمكنها دعم مجموعة واسعة من اللغات. على سبيل المثال، يدعم مايكروسوفت فيجوال ستوديو Microsoft Visual Studio) عدة لغات كلغة سي (C) و سي بلس بلس (++C) و سي شارب (C) وفيجوال بيسك دوت نت VB.Net) والبايثون (Python وروبي (Ruby) ونود جي إس (Node.js) وجافا سكريبت (JavaScript) و سي إس إس (CSS) ولغة ترميز النصّ التشعبي (HTML) وغيرها من الأمثلة الأخرى على بيئات التطوير المتكاملة الشائعة : نت بينز (NetBeans) وإكلبس ( Eclipse) وبيئة التطوير المتكاملة - أتوم (Atom-IDE) وإكس كود (Xcode) وأندرويد ستوديو ( Android Studio وإنتيليج إيديا IntelliJ IDEA) وباي تشارم (PyCharm) . يُستخدم إكس كود (Xcode) لتطوير برمجيات تطبيقات الهاتف المحمول للأجهزة التي تعمل بنظام آي أو أس (iOS) ، بينما يُستخدم أندرويد ستوديو لتطوير برامج الأجهزة العاملة بنظام أندرويد. وزارة التعليم Ministry of Education 2024-1446
مزايا وتحديات استخدام بيئات التطوير المتكاملة Advantages and Challenges of Using Integrated Development Environments (IDES) المزايا: توفّر أدوات ذكية للتحليل ولإكمال النصوص البرمجية، وذلك من أجل برمجة أسرع وأخطاء أقل. توفّر أدوات قوية لتصفح واكتشاف النصوص البرمجية، وتسهل الوصول إلى كافة أجزاء البرنامج، بغضّ النظر عن حجم المشروع. توفّر طرائقًا متعددة لتصحيح الأخطاء واختبار البرنامج دون الحاجة إلى برامج أخرى أو حتى مغادرة برنامج التحرير. تدعم العديد من لغات البرمجة تلقائيًا ، وتوفّر العديد من أدوات التنقل داخل النصوص البرمجية وتحليلها لتسهيل العمل وزيادة الإنتاجية في المشاريع الكبيرة. التحديات • تحتوي واجهات المستخدم في هذه البيئات كثيرا من الوظائف والميزات التي قد تجعلها معقدة وصعبة الاء ة وصعبة الاستخدام. تتطلب قدرًا جيدا من التدريب لاستخدامها بشكل صحيح. يؤدي وجود كثير من الوظائف الاختيارية فيها إلى بطء الأداء في بعض الأحيان. بيئات البرمجيات السحابية Cloud Software Environments إلى جانب بيئات تطوير البرمجيات التقليدية، توجد بيئات تطوير سحابية قائمة على الويب مثل أمازون كلاود 9 (Amazon Cloud9). توفر بيئات البرامج السحابية إمكانية العمل على المشروع من أي جهاز حاسب ومن أي مكان في العالم، حيث تتوفر بيانات مشروع تطوير البرمجيات سحابيًا. أحد العوائق الرئيسة أمام استخدام هذه البيئات هو ضرورة توفّر اتصال مناسب بالإنترنت للوصول إلى البيانات وتنفيذ العمل. مزايا استخدام بيئات تطوير البرمجيات السحابية Advantages of Using Cloud Software Development Environments الوصول إلى أدوات تطوير البرمجيات من أي مكان في العالم. • إمكانية استخدام أي جهاز بواسطة متصفح الويب. عدم وجود متطلّبات لتنزيل وتثبيت بيئة البرنامج. إمكانية التعاون بين المطورين عن بعد بسهولة. 45 وزارة التعليم Ministry of Education 2024-1446
وزارة التعليم Ministry of Education 2024-1446 Commands Nangat Environment AWS Cloud9 File Edit Find View Goto Run Tools Window Support Preview Run Share lambda_function py 1 import boto3 2 option table-boto3.resource('dynamodb').Table('options') 3 vote_table - boto3. resource( ' dynamode'). Table('votes' ) more cowbell 4 5 def build_response(message, message type-"Close", session attributes- resp - { "dialogAction": { "type": message_type, "message": { "contentType": "PlainText", "content": message Environment Members ReadWrite You (online) jeffhar (one) Otaraler (offline) Group Chat Chat htory is stored on the environment and an be both read and modified by atte members 14 15 16 17 18 19 20 } if message type is 'Close': resp["dialogAction"]["fulfillmentState"] - "Fulfilled" if session_attributes: resp["sessionAttributes"] = session_attributes return resp 21 def lambda_handler (event, context): if 'GetName' event ['currentIntent']['name']: name event['current Intent ']['slots']['name'] You Hi Tara Could you hep me figure out Deter way to use DynamoDB here? tarawaker HI Randall Sure as atan by making those You Bet Foxed Should we in jeff to give it a once over? Gtarwalker Absolutely, but don't give him write access He'll change all the variables to wingdings session attributes ('name': event['currentIntent']['slots'] @jeffban return build response("Thanks you can ask me to describe t This is great Randall & if 'DescribeEpisodesTwo event['currentIntent']['name']: options = option_table.get_item(Key-['poll': episodes [I Collaborate AWS Resource Debugger شكل 1.15 بيئة أمازون كلاود 9 Amazon Cloud9) يقضي المبرمجون معظم وقت البرمجة في الاختبار وتصحيح الأخطاء، لذا فإن تكامل محرر النصوص البرمجية مع المترجم والمصحح يُعدُّ أمرًا مهمًا للغاية، وهو ما تتميز به بيئة التطوير المتكاملة. الأدوات المتخصصة لمراحل محددة من تطوير البرمجيات Specialized Tools for Specific Stages of Software Development يتطلب إنشاء حلول برمجية احترافية العمل ضمن فريق من الخبراء والاستعانة بمجموعة متنوعة من الأدوات التي لا تقتصر على دعم مرحلة البرمجة، بل تمتد إلى دعم عملية إنشاء الحلول البرمجية بكاملها. توجد العديد من الأدوات التي يُمكن استخدامها أثناء دورة حياة تطوير البرمجيات لمنتج برمجي، ونظرا لكثرتها يصعب عرض جميع هذه الأدوات، ولكن تم وصف مجموعة مختارة منها أدناه. إنشاء النموذج الأولي Prototype Creation عادةً ما يكون النموذج الأولي للبرنامج عبارة عن مُخطَّط هيكلي، أو صورة، أو مجموعة صور تظهر العناصر الوظيفية لتطبيق معين، أو قد يكون موقعًا على الويب يُستخدم لتخطيط التطبيقات أو وظائف موقع الويب وهيكلته. أمثلة على الأدوات المستخدمة : • القلم (Pencil). نماذج بلسمق .(balsamiq mockups) أدوبي إكس دي Adobe d). Desktop version = # + My Account شكل 1.16: أداة نماذج بلسمق (balsamiq mockups) إدارة التحكم في الإصدار - البرنامج المصدري Version Control Management - Source Code يخضع البرنامج المصدري للعديد من التعديلات أثناء عملية تطويره، وقد يكون التراجع عن خطوات معينة ضروريا في البرنامج، أو إعادة استخدام البرنامج الذي تم تغييره أو حذفه. عند العمل ضمن فريق من المبرمجين، قد يحتاج اثنان أو أكثر إلى العمل على الملفات نفسها في الوقت نفسه، وإجراء تغييرات على البرنامج نفسه. 46
أداة نماذج بلسمق
تسمى الأداة التي يُمكن استخدامها للتحكم في هذه العملية باسم أداة إدارة التحكم في الإصدار (Version Control Management) أو إدارة النصوص البرمجية (Code Management ) ، وتتيح هذه الأداة ما يلي: 1. يُمكن لأعضاء الفريق المختلفين الوصول إلى البرنامج المصدري في ذات الوقت دون التعارض بين أعضاء الفريق. 2. يُمكن الاحتفاظ بالإصدارات السابقة من ملفات البرامج للرجوع إليها عند حدوث بعض المشكلات. يستخدم التحكم في الإصدار ما يشبه المستودع (Repository ) ، ومهمته تسجيل جميع التغييرات التي يتم إجراؤها، وإنشاء نسخة عمل من ملفات برنامج المشروع تُسمى أحيانًا نسخة التحقق (Checkout Copy) عندما يريد المبرمج العمل على البرنامج. تتم الموافقة على جميع التغييرات التي تم إجراؤها على البرنامج بواسطة برنامج إدارة التحكم في الإصدار عندما يتم حفظها في المستودع. أمثلة على الأدوات المُستخدمة : A gts flerasty Etain his chege is being On branch STAY # Your Stack 11 about afrigter ell fame gitt av your fact comical Changes to be committal new File Now FIIN! New file new file: www.file: new filer gitcontig co-ng-template git-hooks/categ git-hooks/prepare-commit-eng globel-gitigan Dungest staged for samit modifind modifint: modified: subli dified modifieds letad down.sublime-settings page Contrut.sublime-settings sub/achievement.sublime-settings E-message subline-settings ched Pie . قیت (Git) • سبفيرجن (Subversion) . ميركوريال (Mercurial) أزور ديف أوبس Azure DevOps) • ديف ميرق (Differge) شكل :1.17 إدارة التحكم في الإصدار نشر البرنامج Code Deployment كان نشر البرامج أمرًا يسيرًا في الماضي، حيث يتم وضع البرنامج المترجم، أي الجاهز للعمل على قرص مدمج ليكون جاهزا للاستخدام. ولكن مع ظهور الإنترنت أصبح نشر التطبيقات عبر الإنترنت ضروريًا، وذلك كبرامج قابلة للتثبيت من خلال متاجر التطبيقات، أو مباشرةً كتطبيقات ويب، وأدى ذلك إلى وجود حاجة لتطوير البرامج والأدوات الخاصة بنشر التطبيقات على الويب. #0.1.11 Update azure-pipelines.yaml for Azure Pipelines Tomy Tests Summary 1 O 100% 10s 567ms 0 Others Owen Aborted (+11 * أمثلة على الأدوات المُستخدمة : . تيم سيتي (TeamCity). مدير نشر قوقل كلاود .(Google Cloud Deployment Manager) • قيت لاب Gitlab). جينكينز (Jenkins). • ناشر الكود AWS) CodeDeploy AWS). شكل 1.18: نشر البرنامج معلومة أزور ديف أوبس Azure DevOps). ميزة التفريعة (Branching) مفيدة جدًا في التحكم في الإصدار، فهي تعني إمكانية نسخ برنامج المشروع كمشروع مواز جديد يسمح بالاختبار أو بإجراء التعديلات لإنشاء إصدار محدث أو جديد من التطبيق، ويُمكن لاحقًا نقل أجزاء من البرنامج الجديد إلى المشروع الأصلي لاستخدامها فيه أيضًا. 47 وزارة التعليم Ministry of Education 2024-1446
أمثلة على الأدوات المستخدمة : الاختبار Testing لا يقتصر الاختبار على تصحيح الأخطاء البرمجية في البرنامج فحسب، بل يشمل أيضًا • اباتشي جميتر Apache JMeter). اختبار تشغيل البرنامج وفعالية استخدامه من • قوست لاب Ghostlab). قبل عدد كبير من المستخدمين، بالإضافة إلى • سيلينيوم (Selenium). إجراء اختبارات الأمان وغيرها من الاختبارات. • استوديو اختبار Telerik Test Studio Telerik). • أزور ديف أوبس Azure DevOps). • ايرون واساب (IronWASP). زد أتاك بروكسي Zed Attack Proxy). • وابيتي (Wapiti). إدارة المشروع والتعاون وتتبع المشكلات Project Management, Collaboration and Issue Tracking كما تعلمت سابقًا، يتطلب الحصول على مُنتَج ناجح أن يبقى فريق العمل بكافة أعضائه الحاليين وكذلك المستقبليين على اطلاع على عملية التطوير بأكملها ومشاركة المعرفة، ويبرز هنا دور عملية إدارة المشروع بشكل خاص. أمثلة على الأدوات المُستخدمة : مايكروسوفت تيمز (Microsoft Teams) . سلاك (Slack) للتعاون والتواصل للتعاون والتواصل. . سكرم تريلو Scrum Trello للتخطيط السريع والتتبع. جيرا (Jira) لتتبع متطلبات المشاريع وإدارتها. . مايستر تاسك MeisterTask لإدارة المهام. بيسكامب (Basecamp) لإدارة المشاريع والتواصل مع العملاء. أزور ديف أوبس Azure DevOps لإدارة دورة حياة التطبيق .(Application Lifecycle Management-ALM) Team Goal Setting Carra Roadmap 00000 Not Up شكل 1.19 أمثلة على أدوات إدارة المشروع والتعاون وتتبع المشكلات وزارة التعليم Ministry of Education 2024-1446 48
استخدام أدوات التطوير لتقديم حلول مختلفة Using Development Tools to Provide Different Solutions تعتمد فرق التطوير على الأدوات التي تم التطرق إليها سابقًا لإنتاج مجموعة واسعة من حلول تقنية المعلومات، وتُستخدم العديد منها حاليًا لإنشاء تطبيقات من أنواع مختلفة مثل: التطبيقات العامة. تطبيقات الويب. الأنظمة المدمجة. • تطبيقات الهواتف الذكية. إنشاء تطبيق ويب Building a Web Application تطبيق الويب هو برنامج تفاعلي يتم إنشاؤه باستخدام تقنيات الويب بلغة ترميز النص التشعبي (HTML) وسي إس إس (CSS) وجافاسكريبت JavaScript) ، ويتم تخزين البيانات في هذا التطبيق على خوادم قواعد البيانات. يُستخدم هذا التطبيق لتنفيذ المهام عبر الإنترنت من طرف مُستخدمي التطبيق. مراحل إنشاء تطبيق الويب Stages of Building a Web Application .1 مرحلة تصور الأفكار يجب تحديد الأهداف والفكرة الرئيسة للتطبيق قبل البدء بإنشاء تطبيق للويب. 2. بحوث وتحليل السوق يجب أن تتم عملية البحث وتحليل السوق لمعرفة: • ما حاجة المستهلك المستهدف إلى هذا المنتج أو الخدمة؟ هل هناك مُنتَج أو خدمة مماثلة متوفرة؟ 3. تحديد مهمات ووظائف تطبيقات الويب يجب أن يتم تحديد الوظائف أو المهمات التي تقدم حلولا لمشاكل السوق المستهدفة بالتطبيق. 4. النمذجة الأولية أو تجهيز المخطط يُعنى هذا الموضوع بتصميم وإنشاء المخطّطات لتطبيق الويب، وبإعداد النماذج الأولية التي تساهم في تشكيل التنظيمي للتطبيق وتتيح اختبار وظائف التطبيق بطريقة تفاعلية. 5. مرحلة التحقق المُخطَّط يتم في هذه المرحلة جمع ع الآراء اء والتعليقات حول التصميم من الأطراف ذات العلاقة ومن المستخدمين المحتملين. .6 التخطيط الهيكلي وإنشاء قاعدة بيانات يتم في هذه المرحلة تحديد البيانات التي يحتاجها المبرمجون والمستخدمون، والأدوات المستخدمة لإنشاء قاعدة البيانات المطلوبة لتطبيق الويب. 49 وزارة التعليم Ministry of Education 2024-1446
50 هناك العديد من أدوات تصميم قواعد البيانات التي تُستخدم لأغراض مختلفة. تحدِّد طبيعة البرنامج وطريقة نشر الحل البرمجي اختيار أداة محددة من الأمثلة على الأدوات المستخدمة في تصميم قواعد البيانات وبنائها، ما يلي: ماي إس كيو إل (MySQL). إس كيو إل سيرفر SQL Server). أزور إس كيو إل (Azure SQL). • مونجودب (MongoDB) . أمازون دينامو دي بي Amazon DynamoDB). • فايربيس (Firebase). 7. إنشاء الواجهة الأمامية (جزء البرنامج لدى العميل): الواجهة الأمامية هي العنصر المرئي لتطبيق الويب، وهي تمثَّل واجهة النظام التي يراها المستخدم ويتفاعل مع النظام من خلالها. تتضمَّن أمثلة الأدوات المستخدمة لإنشاء واجهة مستخدم الويب ما يلي: جي كويري (jQuery). ریکت جس (Reactjs). جانغو ( Django). فيو جي إس (Vue.js ) . أنقيولر (Angular). .8 إنشاء الواجهة الخلفية (الجزء الخلفي للبرنامج لدى الخادم تُستخدم الواجهة الخلفية لإدارة بيانات البرنامج، وتشير إلى قواعد البيانات والخوادم بالإضافة إلى جميع أجزاء النظام الأخرى غير المرئية للمُستخدم داخل تطبيق الويب. يتضمن إنشاء الواجهة الخلفية كتابة البرنامج الأساسي الذي يوفّر وظائف التطبيق، بالإضافة إلى إعداد قاعدة البيانات والشبكات والتحقق من التكامل بين الأنظمة الفرعية المختلفة، ويتم أيضًا إعطاء أهمية خاصة لاعتبارات الأمان والأداء. الأمثلة على الأدوات المستخدمة في إنشاء الواجهة الخلفية: • اكسبرس جي إس (Express JS). • إيه إس بي دوت نت (ASP.NET). روبي أون ريلز (Ruby on Rails). . فلاسك (Flask). • لارافيل (Laravel). سبرنغ بوت (Spring Boot). 9. استضافة تطبيق الويب : يجب توفّر مزوّد استضافة ويب لتشغيل تطبيق الويب على خادم معين، وتتوفر خدمات الاستضافة حسب الحاجة، وتتراوح بين الخدمات البسيطة غير المكلّفة، وخدمات الحوسبة السحابية الكبيرة التي تسمح بالتوسع حال ازدياد مُستخدمي التطبيق وتزايد السعة المطلوبة للخدمات. عدد وزارة التعليم Ministry of Education 2024-1446
المستخدم جدول 1.5 مزودو خدمات استضافة الويب الأنواع أمثلة بلوهوست ( Bluehost ) . مزودو الاستضافة • هوست قيتور (HostGator). قودادي (GoDaddy). راك سبيس (Rackspace ) . • آي بي إم الحوسبة السحابية (IBM Cloud). مايكروسوفت أزور (Microsoft Azure). مزودو الخدمات السحابية • خدمات أمازون ويب Amazon Web Services). منصة قوقل السحابية (Google Cloud Platform ) . • سحابة علي بابا ) Alibaba. Cloud . جمع البيانات عرض النتائج I I الواجهة الأمامية (جزء البرنامج لدى العميل) I I I I I ما يراه المستخدم ويتفاعل معه I I I I I HTML, CSS, JavaScript I هيكلية تطبيق الويب طلب استجابة الواجهة الخلفية ( الجزء الخلفي للبرنامج لدى الخادم) تحتوي على منطق التطبيق PHP, Javascript, Python, Java خادم الويب مار نظام الملفات قاعدة البيانات HTML, CSS, Images شكل 1.20 الهيكلية الأساسية لتطبيق الويب MySQL, PostgressSQL, MariaDB I 51 وزارة التعليم Ministry of Education 2024-1446
هيكلية التطبيقات السحابية The Cloud -Ready Application Architecture لقد أصبح تطوير ونشر تطبيقات الويب القائمة على التخزين السحابي محبّذا كمجموعة من الخدمات السحابية، وتضمن هذه العملية إنشاء هياكل البيانات، ثم إنشاء الخدمات التي يتم دمجها لتشكيل النظام المتكامل. يوضّح المُخطَّط التالي كيفية إنشاء تطبيق ويب عالي الأداء وقابل للتوسع باستخدام خدمات مايكروسوفت أزور ( Microsoft Azure) ، ويعمل معظم مزود و خدمات الحوسبة السحابية بالمبدأ نفسه أيضًا. الدليل النشط لـ AZURE مصادقة إنترنت بحث نظام أسماء النطاقات الواجهة الأمامية ( جزء البرنامج لدى العميل) App Service plan Azure Front Queue Door Web App DNS Azure CDN Azure DNS وزارة التعليم Ministry of Education 2024-1446 Function App Redis cache مخزن بيانات SQL { } Azure SQL Cosmos DB Database Azure Search مجموعة المصدر محتوى ثابت Blob شكل 1.21 إنشاء تطبيق ويب باستخدام مايكروسوفت أزور (Microsoft Azure) أهم النقاط التي يجب مراعاتها عند استخدام هيكلية التطبيقات السحابية: تصميم التطبيق كمجموعة من الخدمات. . الفصل بين معايير البيانات والأمان والأداء. أخذ متطلبات الاتصال عبر الشبكات بين مكونات التطبيق في الاعتبار. • قابلية التوسع في التصميم. • يجب أن يكون أمان النظام جزءًا أساسيًا من التطبيق وليس شيئًا يتم التخطيط له لاحقًا. مراعاة اختيار مراكز البيانات المناسبة لمواقع وأماكن وجود مستخدمي النظام. 52
53 إنشاء تطبيق للهواتف الذكية Building an Application for Smartphones تتشابه خطوات إنشاء تطبيق للهاتف الذكي مع تلك الخاصة بتطبيق الويب، ولكن مع بعض الاعتبارات الخاصة، حيث يتم استخدام تطبيق الهاتف المحمول على جهاز هاتف جوال ذي شاشة صغيرة. فكما هو معلوم سيُستخدم التطبيق أثناء التنقل، مما يشير إلى الأهمية الخاصة لواجهة التطبيق، حيث يجب أن يكون المستخدم قادرًا على ضبط حجم الشاشة وأن يكون الوصول إلى المعلومات المهمة واضحًا وسهلا ، ومن المهم أيضًا ملاحظة أن اختلاف الأجهزة يخلق الحاجة إلى إنشاء تطبيقات متجاوبة ومناسبة لكل أنواع الشاشات. تدعم كل من المنصتين الرئيستين للهاتف المحمول آي أو إس (iOS) وأندرويد (Android) مجموعة من التقنيات المختلفة التي تتشابه في بعض الأوجه أيضًا. فعلى سبيل المثال، يوصي مُطوّرو نظام آي أو إس (iOS) باستخدام إكس كود (Xcode) وسويفت (Swift) لتطوير التطبيقات، بينما يوصي مُطوّرو نظام أندرويد باستخدام أندرويد ستوديو Android Studio) وجافا (Java). تسمح كل من هذه البيئات بإنشاء تطبيق نهائي جاهز للنشر في متجر التطبيقات الخاص بتلك البيئة فقط، وتُقدِّم بعض البيئات الأخرى إمكانية نشر التطبيق في متاجر متعددة. يُمكن تطوير تطبيق بحيث يعمل في بيئات برامج مختلفة باستخدام الأدوات التالية: زامارين ( Xamarin). أيونيك (lonic). • كوتلن (Kotlin). • رياكت نيتيف ( React Native ) . يُعدُّ اختبار تطبيقات الأجهزة المحمولة تحديًا كبيرًا ، حيث يصعب على المبرمج وشركات تطوير البرمجيات توفير جميع أنواع الأجهزة المحمولة الموجودة في السوق لإجراء الاختبار عليها. ولهذا السبب، توجد خدمات عبر الإنترنت تُقدِّم عمليات محاكاة لمجموعة واسعة من الأجهزة المحمولة تتيح محاكاة اختبار توافق التطبيق مع الأجهزة المختلفة. و وزارة التعليم Ministry of Education 2024-1446 Sales 6-Week Sales 9:37 AM NOKIA 10:00 Sales sales 6-Week Sales $1,056.60 $1,056.60 6-Week Sales WEEKLY AVERAGE $1,056.60 LEADS Bay Tech Credit Union 343000 City of Richmond LEADS Bay Tech Credit Union Cityview Consulting sts-Value Proposition City of Richmond East Ray Commercial Bank 1000.0 Global Manufacturing Cityview Consulting t D LEADS Bay Tech Credit Union 50% Value Proposition $4,500.00 City of Richmond 75%-Proposal $1,500.00 Cityview Consulting 130000 10% - Prospect $2,000.00 شكل 1.22 تطبيق للهاتف المحمول على أجهزة مختلفة 9 أمثلة على بعض أدوات اختبارات التطبيق: • سحابة اختبار زامارين .(Xamarin Test Cloud) • بروزر ستاك .(BrowserStack) • معمل اختبار فايربيس . (Firebase Test Lab)
تطبيق للهاتف المحمول على أجهزة مختلفة
إنشاء تطبيق للأغراض العامة Building a General-Purpose Application إن برامج الأغراض العامة هي نوع من التطبيقات التي يُمكن استخدامها لأداء العديد من المهام مثل: البرامج المكتبية التقليدية كمعالجات النصوص، أو برامج تصميم المخطّطات البيانية، أو تطبيقات الأعمال الخاصة بتخطيط موارد المؤسسات (Enterprise Resource Planning - (ERP) ، أو برامج إدارة علاقات العملاء (Customer Relationship Management - CRM). على الرغم من التركيز الواسع لتقنيات تطوير البرمجيات الجديدة على الويب وتطبيقات الهواتف المحمولة، إلا أن التطبيقات التقليدية للأغراض العامة لا تزال تحتفظ بأهميتها ، حيث يعتمد تطوير مثل هذه التطبيقات على مكتبات نصوص برمجية جاهزة وقابلة لإعادة الاستخدام، وبشكل خاص على مكونات واجهة المستخدم وأدوات إعداد التقارير. 4 ERP-FM Tall D 176777 O 0176377--Acting Serings-57 Pelhams Walk Esher KT1O GA UK Hersham Golf Cl OSouth Weylands Farm ADM At Serve Der G the . B C22564/Sell 42.50/ Upcoming 184 49 50 و شكل 1.23 تطبيق للأغراض العامة يمكن برمجة الأنظمة المدمجة إنشاء تطبيق مدمج Building an Embedded Application النظام المدمج هو حاسب خاص بنظام تشغيل يعمل في الوقت الفعلي (Real-Time ) ، ولا يحتوي على واجهة مستخدم غالبًا، ويتعامل البرنامج الموجود على النظام المدمج مع المستشعرات والمشغلات وآليات تبادل البيانات السلكية باستخدام لغات البرمجة التالية: واللاسلكية، ويجب أن تكون هذه البرامج موثوقة وآمنة وسريعة. تتطلب هذه التطبيقات أنظمة تشغيل في الوقت الفعلي مثل أرتي لينكس (RTLinux) وويندوز 10 آي أو تي 10 Windows) وكيو إن إكس (QNX)، وذلك بالإضافة إلى لغات برمجة مُحسّنة لمعالجة البيانات والاتصال بالشبكة. من الأمثلة على الأنظمة المدمجة : إشارات المرور ، وأجهزة إنذار الحريق، وأنظمة الأمن المنزلية. E لغة التجميع (Assembly) وهي صعبة وغير مناسبة للاستخدام العملي. لغة للأنظمة سي (C) ولغة سي المضمنة (Embedded C) و nesC ولغة رست (Rust). • اللغات كائنية التوجه مثل سي شارب (C) وسي بلس بلس (++C) وجافا (Java). وزارة التعليم Ministry of Education 2024-1446 شكل 1.24: نظام مدمج 54
1 تمرينات اختر الإجابة الصحيحة .1. منشئات المشروع: تتأكد من أن جميع الملفات التي تحددها سيتم تجميعها وربطها في برنامج واحد نهائي. تترجم البرنامج إلى نصوص برمجية قابلة للتنفيذ على الجهاز. ضرورية في حالة إنشاء برامج متخصصة تتعلق بالشبكات. تساعد على تصحيح الأخطاء في البرنامج. 2. أدوات إدارة التعليمات البرمجية تتعامل مع قواعد البيانات وتحلل أداء الاستعلامات في بعض قواعد البيانات. 3. المحللات: تتأكد من عدم مسح أو استبدال ملفات البرنامج عن طريق الخطأ عندما يعمل عدة مُبرمجين على البرنامج بشكل متزامن. تقوم بتقديم أو دعم مهمة محددة في أي حالة من دورة التطوير أو البرمجة. تُقدِّم تحليلا لاحتياجات البرنامج ، وكيفية التعامل مع وقت المعالج وموارد الذاكرة أثناء التشغيل. هي أجهزة حاسب خاصة بأنظمة تشغيل في الوقت الفعلي وعادة ما تكون بدون واجهة مستخدم. 55 وزارة التعليم Ministry of Education 2024-1446
56 2 اختر الكلمة المناسبة لإكمال الجمل التالية: معالجات النصوص نموذج أولي للبرنامج التحكم في الإصدار .1 .3 .4 بيئة التطوير المتكاملة في كتل النصوص البرمجية. محررات النصوص البرمجية تطبيق الويب أغراض عامة تساعد على الكتابة وإجراء تغييرات على البرنامج. مناسبة للبرمجة، حيث لا تسمح بالتنسيق السهل للبرنامج الأخطاء. لتطبيق معين. تتضمَّن مُحرِّر النصوص البرمجية، والمترجم، والرابط، ومُصحح هو مُخطَّط هيكلي أو صورة أو مجموعة صور تظهر العناصر الوظيفية .5 أدوات . المختلفين. تضمن أن العمل يتكامل بشكل متزامن من قبل أعضاء الفريق .6 هو برنامج تفاعلي يتم إنشاؤه باستخدام تقنيات الويب، ويتم تخزين البيانات في هذا التطبيق على خوادم قواعد البيانات، ويُستخدم لتنفيذ المهام عبر الإنترنت. 7. تطبيقات من المهام. هي برامج تُستخدم للأغراض العامة لأداء مجموعة واسعة وزارة التعليم Ministry of Education 2024-1446
3 طابق ما يلي: مُحرِّر النصوص إدارة التحكم في الإصدار بيئة التطوير المتكاملة الواجهة الأمامية (جزء البرنامج لدى العميل) الواجهة الخلفية (الجزء الخلفي للبرنامج لدى الخادم) 1 2 3 4 5 العناصر المرئية لتطبيق الويب، وهي الواجهة بين المستخدم والنظام. يتيح الاحتفاظ بالإصدارات السابقة من ملفات البرامج للرجوع إليها عند حدوث مشاكل. نوع من البرامج المستخدمة لتعديل الملفات النصية. يدير البيانات وقواعد البيانات والخوادم وجميع المكونات التي لا يستطيع المستخدم رؤيتها داخل تطبيق الويب. يحتوي على جميع البرامج والأدوات اللازمة لكتابة البرامج وتنفيذها وتشخيص المشاكل وإصلاحها. 57 وزارة التعليم Ministry of Education 2024-1446
وزارة التعليم Ministry of Education 2024-1446 4 ما أهم النقاط التي يجب مراعاتها عند استخدام هيكلية التطبيقات السحابية؟ ما المقصود ببرامج الأغراض العامة ؟ أعط بعض الأمثلة. 5 6 عدد أربعة أنواع من أدوات تطوير البرمجيات. 58
59 وزارة التعليم Ministry of Education 2024-1446 7 أعط ثلاثة أمثلة لمحرّرات النصوص البرمجية. ضع قائمة بالخطوات الأساسية لإنشاء تطبيق للويب. 8 دَوِّنْ ثلاث ميزات أساسية لبيئة التطوير المتكاملة. 9