مستخدم:Saud aaaaa9393

من ويكيبيديا، الموسوعة الحرة

البرمجة

المقدمه:  السلام عليكم سنقدم لكم اليوم عن البرمجه و أنواعها

ونتمنى ان ينال مشروعنا  اعجابكم وبعد:................


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


وتتبع عملية البرمجة قواعد خاصة باللغة التي اختارها المبرمج. وكل لغة برمجة لها خصائصها التي تميزها عن الأخرى وتجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج وحسب المهمة المطلوبة من هذا البرنامج. كما أن اللغات البرمجية  أيضا لها خصائص مشتركة وحدود مشتركة بحكم أن كل هذه اللغات صممت للتعامل مع الحاسوب. وتتطور لغات البرمجة (السوفتوير Software) بتطور عتاد الحاسوب المرئي (الهاردوير Hardware). فعندما ابتكر الحاسوب في الأربعينيات والخمسينيات من القرن الماضي (بعد أجهزة الحساب الكهربائية في العشرينات) - وكان الكمبيوتر يعمل بأعداد كبيرة من الصمامات الإلكترونية - كانت لغة البرمجة معقدة هي الأخرى، حتى أنها كانت عبارة عن سلسلة من الأعداد لا يدخلها إلا الصفر 0 والواحد 1 وذلك لأن الحاسب يفهم حالتين فقط وجود التيار 1 أو عدم وجوده 0، وكان ذلك صعبا على المبرمجين. ولكن بابتكار الترانزيستور صغر حجم الحاسوب كثيرا وزادت إمكانياته، واستطاع المختصون في نفس الوقت أن يبتكروا لغات أسهل للاستخدام، وأصبحت لغات البرمجة مفهومة إلى حد بعيد للمختصين. ولا يزال التطوير والتسهيل جاريا وتسمى هذه اللغات سهلة التعامل بالنسبة للمبرمجين باللغات عالية المستوى.


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






التاريخ

كانت الأجهزة القابلة للبرمجة موجودة على الأقل منذ عام 1206 ميلادي عندما كانت أوتوماتيكي الجزاري قابلة للبرمجة عبر الأوتاد والكامينات للعب مختلف الإيقاعات وأنماط الطبل؛  ويمكن لجهاز jacquard loom سنة 1801 انتاج موجات مختلفة عن طريق تغير برمجته - سلسلة من بطاقات اللوح مع ثقوب مثقوبة فيها.

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



لغات البرمجة

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






متطلبات الجودة

لكل نهج في عملية تطوير البرامج، يجب على البرنامج النهائي أن يحقق خصائص جوهرية، مثل:

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


*المتانة: مدى توقع البرنامج للمشاكل بسبب الأخطاء(errors) (وليس الأخطاء(bugs)). يتضمن ذلك مواقف مثل البيانات غير الصحيحة أو غير المناسبة أو التالفة وعدم توفر الموارد اللازمة مثل الذاكرة وخدمات نظام التشغيل واتصالات الشبكة وخطأ المستخدم وانقطاع الطاقة غير المتوقع.



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



*لقابلية للنقل: مجموعة أجهزة الكمبيوتر وأنظمة التشغيل الأساسية التي يمكنها تجميع / تفسير الشفرة المصدرية للبرنامج وتشغيلها. يعتمد هذا على الاختلافات في تسهيلات البرمجة التي توفرها الأنظمة الأساسية المختلفة بما في ذلك موارد الأجهزة ونظام التشغيل والسلوك المتوقع للجهاز ونظام التشغيل وتوافر مترجمين خاصين بالمنصة (وأحيانًا المكتبات) للغة الكود المصدري.

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


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



المنهجيات

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


تتضمن تقنيات النمذجة الشائعة التحاليل والتصاميم الخاصة بالتوجيه الكائناتي ( OOAD ) أو الهندسة القائمة على النماذج ( MDA ).


لغة النمذجة الموحدة ( UML ) هي ترميز يستخدم لكل من OOAD و MDA.


*قياس استخدام اللغة:

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


تحظى بعض اللغات بشعبية كبيرة لأنواع معينة من التطبيقات بينما تستخدم بعض اللغات بانتظام لكتابة العديد من أنواع التطبيقات المختلفة. على سبيل المثال لا يزال COBOL قويًا في مراكز بيانات الشركات  غالبًا على أجهزة الكمبيوتر الكبيرة و Fortran في التطبيقات الهندسية ولغات البرمجة النصية في تطوير الويب و C في البرامج المدمجة. تستخدم العديد من التطبيقات مزيجًا من عدة لغات في بنائها واستخدامها. يتم تصميم اللغات الجديدة عمومًا حول لغة سابقة مع إضافة وظيفة جديدة (على سبيل المثال يضيف C ++ اتجاه الكائناتي (OPP) إلى C ويضيف Java إدارة الذاكرة والرمز الثانوي إلى C ++ ونتيجة لذلك يفقد الكفاءة والقدرة على التلاعب بالبيانات على مستوى منخفض )


*التنقيح:

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


نتمني ان نكون ادينا كل ما علينا و شكرا