You are on page 1of 37

‫د‪ .

‬غيداء ربداوي‬
‫المعهد العالي إلدارة األعمال‬

‫لغات البرمجة‬
‫تعرف مقاربة جديدة في بناء النظم البرمجية هي ”البرمجة‬
‫‪ّ ‬‬
‫الغرضية التوجه“‬

‫‪ ‬التفكير في كتابة البرامج وفق مفاهيم ”البرمجة الغرضية‬


‫التوجه“‬

‫‪ ‬استخدام لغة ‪ C#‬في كتابة برامج غرضية التوجه‬


‫مفاهيم أساسية‬

‫‪ ‬البرمجة الغرضية التوجه ‪ :‬األغراض‬


‫‪ ‬األغراض هي عناصر تنتمي إلى أصناف عامة‬
‫‪ ‬في العالم الحقيقي ترى األغراض‪:‬‬

‫‪ ‬البشر‬

‫‪ ‬الحيوانات‬

‫‪ ‬النباتات‬
‫‪ ‬السيارات‬

‫‪ ‬الطيارات‬

‫‪ ‬األبنية‬

‫‪ ‬الحواسيب‬
‫‪… ‬‬
‫‪ ‬نحن البشر نتعرف إلى ما حولنا من أشياء وكائنات‪،‬‬
‫ونحاكم بمنطق األغراض‪.‬‬
‫‪ ‬تمتلك بعض األغراض التي نراها من حولنا "حياة"‬
‫تجعلها تتحرك وتقوم بأعمال وتؤدي خدمات معينة‪ ،‬في‬
‫حين ال نرى لدى بعضها اآلخر هذه القدرة على‬
‫التحرك واإلتيان باألفعال بمفردها‪.‬‬
‫‪ ‬سواء كانت األغراض متحركة أو غير متحركة فإننا كثيرا ً‬
‫ما نهتم بمعرفة المزيد من التفاصيل عنها وعن‬
‫‪ ‬خصائصها (اللون‪ ،‬الوزن‪ ،‬الحجم‪ ،‬الشكل‪).......،‬‬
‫‪ ‬وسلوكها (الكرة تتدحرج‪ ،‬تقفز‪ ،‬تنتفخ‪ ،‬تنفرغ من الهواء؛ الطفل‬
‫يبكي‪ ،‬ينام‪ ،‬يحبو ويمشي؛ السيارة تتسارع‪ ،‬تفرمل وتنعطف؛‬
‫المنشفة تمتص الماء)‪.‬‬
‫‪ ‬وبهذه الفلسفة أخذنا ننظر إلى عالم البرمجة ونبحث عن‬
‫األغراض وخصائصها وسلوكها‪ ،‬ونبني أنظمتنا البرمجة‬
‫انطالقا ً من منظور األغراض‪.‬‬
‫‪ ‬نتعرض في هذا المقرر إلى أسس نموذج الغرض ‪object‬‬
‫‪ ،model‬ونعرف األغراض والصفوف ونتعرف إلى‬
‫المصطلحات المستخدمة في عالم األغراض‬
‫‪ ‬نتعرف إلى مفاهيم أدخلتها البرمجة الغرضية التوجه كمفهومي‬
‫الوراثة ‪ inheritance‬وتعدد األشكال ‪polymorphism‬‬
‫‪ ‬مع ‪ OOP‬تصبح البرمجة ممتعة وأنيقة‪ ،‬وتصبح عملية التعديل‬
‫والتصحيح مضبوطة ومحصورة في مكان الخطأ أو التعديل‪.‬‬
classification ‫التصنيف‬
‫تجميع المكونات‬
‫؟‬ ‫؟‬

‫؟‬ ‫؟‬

‫؟‬
‫؟‬
‫‪ ‬في بداية ‪ 70‬ظهر مصطلح الغرض في علم‬
‫الحاسوب‪.‬‬
‫‪ ‬وقد ساهمت األحداث التالية في تطوير المبادئ‬
‫التي يقوم عليها نموذج الغرض‪:‬‬
‫‪ ‬التطورات التي ظهرت في لغات البرمجة كما في‬
‫لغات ‪Simula‬و ‪ Smalltalk‬و ‪ CLU‬و ‪.Ada‬‬
‫‪ ‬التطورات التي ظهرت في منهجيات التطوير‬
‫البرمجي‪ ،‬ونذكر منها التقسيم إلى مجتزآت‬
‫وإخفاء المعلومات‪.‬‬
‫‪ ‬التطورات في نماذج قواعد المعطيات‬
‫‪ ‬األبحاث في الذكاء الصنعي‬
‫‪ ‬التطورات في علم الفلسفة واإلدراك‬
‫تعريف الغرض‬
‫‪ ‬عرّف معجم ‪ Webster’s‬الغرض بأنه أحد األشياء‬
‫الثالثة التالية‪:‬‬
‫‪ ‬شيء ملموس أو مرئي‬
‫‪ ‬شيء يمكن إدراكه بالعقل‬
‫‪ ‬شيء يمكن توجيه األفعال نحوه أو التفكير بشأنه‬
‫‪ ‬تعريف ‪ Booch‬للغرض ‪:‬‬
‫يمتلك الغرض ‪ Object‬حالة ‪ state‬وسلوكاً ‪behavior‬‬
‫وهوية ‪ .identity‬تعرّف بنية األغراض المتماثلة‬
‫وسلوكها في الصف المشترك ‪ class‬الذي تنتمي‬
‫إليه جميعها‪.‬‬
‫الغرض‬
‫‪ ‬عناصر نموذج الغرض‪:‬‬
‫يعتمد نموذج الغرض على العناصر األساسية األربعة التالية‪:‬‬
‫‪ ‬التجريد ‪abstraction‬‬
‫‪ ‬الكبسلة ‪encapsulation‬‬
‫‪ ‬االجتزائية ‪modularity‬‬
‫‪ ‬التراتبية ‪hierarchy‬‬
‫‪ ‬التجريد‪:‬‬
‫هي العملية الذهنية التي يقوم بها العقل البشري والتي تسمح له‬
‫باالحتفاظ بالصفات األساسية التي تميز غرضا ً ما عن سواه من‬
‫أنواع األغراض األخرى‪ ،‬انطالقا ً من منظور محدد‪.‬‬
‫‪ ‬الكبسلة‪:‬‬

‫تعتمد الكبسلة على إخفاء جميع التفاصيل الداخلية التي تخص‬


‫غرضا ً ما‪.‬‬
‫‪ ‬االجتزائية‪:‬‬
‫االجتزائية هي الخاصية التي يحققها النظام إذا استطعنا تجزيئه‬
‫إلى مكونات شديدة التماسك الداخلي‪ ،‬قليلة الترابط فيما بينها‪.‬‬
‫‪ ‬تسمى المكونات التي نجزئ النظام إليها المجتزآت‬
‫‪modules‬‬
‫‪ ‬التراتبية‪:‬‬
‫التراتبية هي ترتيب في مستويات التجريد‪.‬‬
‫الصف‬

Class
<CAR>
‫الصف واألغراض‬
‫األغراض‬

Object

<7_series_BMW> Object

<VW_Beetle>

Object

<Ford_Mustag>
‫‪ ‬الغرض‪:‬‬
‫‪ ‬واصفات ‪attributes‬‬
‫‪ ‬أفعال ‪actions‬‬

‫سيارة ‪:‬‬
‫الواصفات‪ :‬النموذج‪ ،‬اللون‪،‬‬
‫االستطاعة‪ ،‬الموضع‪،‬‬
‫األفعال ‪:‬السير إلى األمام‪ ،‬الرجوع‬
‫إلى الخلف‪ ،‬االلتفاف يميناً‪،‬‬
‫االلتفاف يسارا ً‪.‬‬
‫يتحمل الغرض مسؤوليتين هما ‪ :‬المعرفة (معطيات) والعمل‬
‫(عمليات)‬

‫=‬ ‫‪+‬‬
‫‪ ‬صنع أي منتج وحل أي مسألة يبنى على صنع نماذج برمجية‬
‫تقابل المكونات الموجودة في الواقع‪ ،‬وتركيبها بطريقة محددة‬
‫للحصول على التطبيق المطلوب‪.‬‬
‫‪ ‬نسمي المكونات والعناصر التي نبنيها أغراضا ً‪.‬‬
‫‪ ‬مراحل التحليل‪:‬‬
‫‪ ‬تحديد المكونات‬
‫‪ ‬تحديد نوع (صنف) كل مكون‪ ،‬ووصفه وصفا ً دقيقا ً لتمييزه‬
‫عن المكونات التي تشبهه‬
‫‪ ‬تحديد الطريقة التي يرتبط بها المكون مع المكونات األخرى‬
‫وتنظيم التفاعل بين األغراض إلنجاز المهمة المطلوبة‬
‫‪ ‬بناء مخطط التصميم‬
‫‪ ‬تعريف الخطوات الالزمة لتجميع المكونات الواحد تلو اآلخر لبناء‬
‫كامل التصميم المطلوب‪.‬‬
‫البرمجة اإلجرائية‪:‬‬
‫البرمجة الغرضية‪:‬‬
‫‪ ‬نمذجة أغراض العالم الحقيقي‬

‫االسم‪ ،‬العمر‪ ،‬الطول‪،‬‬


‫لون الشعر‪ ،‬لون‬
‫العينين‪ ،‬العمل‪،‬‬
‫الحالة العائلية‪...،‬‬

‫‪ ‬بناء الحل البرمجي الذي يحدد طريقة تفاعل هذه األغراض مع بعضها والخطوات‬
‫التي يجري هذا التفاعل وفقها‪.‬‬
‫‪ ‬تعريف الخطوات الالزمة لتجميع المكونات الواحد تلو اآلخر لبناء كامل التصميم‬
‫المطلوب‪.‬‬
‫‪ ‬نمذجة أغراض العالم الحقيقي‪:‬‬

‫‪ ‬حساب مصرفي؟؟‬

‫‪ ‬موظف؟؟‬
‫(الغرض طالب في نظام المحاسبة)‬ ‫‪ ‬الطالب‪:‬‬
‫الواصفات‪ :‬رقم التسجيل‪ ،‬االسم‪ ،‬الذمة المالية‬
‫(الغرض طالب في نظام االمتحانات)‬ ‫‪ ‬الطالب‪:‬‬
‫الواصفات‪ :‬رقم التسجيل‪،‬االسم‪ ،‬االختصاص‪ ،‬المعدل‬
‫(الغرض طالب في نظام السكن الجامعي)‬ ‫‪ ‬الطالب‪:‬‬
‫الواصفات‪ :‬رقم التسجيل‪،‬االسم‪ ،‬الجنس‪ ،‬العمر‪ ،‬رقم الغرفة‬

‫(الغرض طالب في نظام األنشطة الترفيهية)‬ ‫‪ ‬الطالب‪:‬‬


‫الواصفات‪:‬‬
‫‪ ‬تدريب‪:‬‬
‫‪ ‬نريد بناء نموذج للسيارة في نظام إلدارة المرور‪ .‬حدد خصائص‬
‫الغرض سيارة الموافق للمسألة (واصفات وعمليات)‬

‫‪ ‬تدريب‪:‬‬
‫‪ ‬نريد بناء نموذج للموظف في نظام إداري في مؤسسة‪ .‬حدد خصائص‬
‫الغرض موظف الموافق للمسألة (واصفات وعمليات)‬

‫‪ ‬تدريب‪:‬‬
‫‪ ‬نريد بناء نموذج لحساب مصرفي يخص المتعامل في مصرف‪ .‬حدد‬
‫خصائص الغرض حساب مصرفي الموافق للمسألة (واصفات‬
‫وعمليات)‬
‫‪Class ClassName‬‬
‫{‬ ‫نُعبّر عن السلوك من خالل‬
‫)…(‪method1‬‬ ‫تعريف مجموعة من الطرق‬
‫{‬
‫‪//……………….‬‬
‫‪}//method1‬‬
‫نُعبّر عن الواصفات من خالل‬
‫……‪//‬‬
‫تعريف مجموعة من‬
‫;‪int data1‬‬
‫المتحوالت‬
‫;‪string data2‬‬
‫………‪//‬‬
‫}‬

You might also like