Professional Documents
Culture Documents
مقدمة في تقانة الأغراض
مقدمة في تقانة الأغراض
غيداء ربداوي
المعهد العالي إلدارة األعمال
لغات البرمجة
تعرف مقاربة جديدة في بناء النظم البرمجية هي ”البرمجة
ّ
الغرضية التوجه“
البشر
الحيوانات
النباتات
السيارات
الطيارات
األبنية
الحواسيب
…
نحن البشر نتعرف إلى ما حولنا من أشياء وكائنات،
ونحاكم بمنطق األغراض.
تمتلك بعض األغراض التي نراها من حولنا "حياة"
تجعلها تتحرك وتقوم بأعمال وتؤدي خدمات معينة ،في
حين ال نرى لدى بعضها اآلخر هذه القدرة على
التحرك واإلتيان باألفعال بمفردها.
سواء كانت األغراض متحركة أو غير متحركة فإننا كثيرا ً
ما نهتم بمعرفة المزيد من التفاصيل عنها وعن
خصائصها (اللون ،الوزن ،الحجم ،الشكل).......،
وسلوكها (الكرة تتدحرج ،تقفز ،تنتفخ ،تنفرغ من الهواء؛ الطفل
يبكي ،ينام ،يحبو ويمشي؛ السيارة تتسارع ،تفرمل وتنعطف؛
المنشفة تمتص الماء).
وبهذه الفلسفة أخذنا ننظر إلى عالم البرمجة ونبحث عن
األغراض وخصائصها وسلوكها ،ونبني أنظمتنا البرمجة
انطالقا ً من منظور األغراض.
نتعرض في هذا المقرر إلى أسس نموذج الغرض object
،modelونعرف األغراض والصفوف ونتعرف إلى
المصطلحات المستخدمة في عالم األغراض
نتعرف إلى مفاهيم أدخلتها البرمجة الغرضية التوجه كمفهومي
الوراثة inheritanceوتعدد األشكال polymorphism
مع OOPتصبح البرمجة ممتعة وأنيقة ،وتصبح عملية التعديل
والتصحيح مضبوطة ومحصورة في مكان الخطأ أو التعديل.
classification التصنيف
تجميع المكونات
؟ ؟
؟ ؟
؟
؟
في بداية 70ظهر مصطلح الغرض في علم
الحاسوب.
وقد ساهمت األحداث التالية في تطوير المبادئ
التي يقوم عليها نموذج الغرض:
التطورات التي ظهرت في لغات البرمجة كما في
لغات Simulaو Smalltalkو CLUو .Ada
التطورات التي ظهرت في منهجيات التطوير
البرمجي ،ونذكر منها التقسيم إلى مجتزآت
وإخفاء المعلومات.
التطورات في نماذج قواعد المعطيات
األبحاث في الذكاء الصنعي
التطورات في علم الفلسفة واإلدراك
تعريف الغرض
عرّف معجم Webster’sالغرض بأنه أحد األشياء
الثالثة التالية:
شيء ملموس أو مرئي
شيء يمكن إدراكه بالعقل
شيء يمكن توجيه األفعال نحوه أو التفكير بشأنه
تعريف Boochللغرض :
يمتلك الغرض Objectحالة stateوسلوكاً behavior
وهوية .identityتعرّف بنية األغراض المتماثلة
وسلوكها في الصف المشترك classالذي تنتمي
إليه جميعها.
الغرض
عناصر نموذج الغرض:
يعتمد نموذج الغرض على العناصر األساسية األربعة التالية:
التجريد abstraction
الكبسلة encapsulation
االجتزائية modularity
التراتبية hierarchy
التجريد:
هي العملية الذهنية التي يقوم بها العقل البشري والتي تسمح له
باالحتفاظ بالصفات األساسية التي تميز غرضا ً ما عن سواه من
أنواع األغراض األخرى ،انطالقا ً من منظور محدد.
الكبسلة:
Class
<CAR>
الصف واألغراض
األغراض
Object
<7_series_BMW> Object
<VW_Beetle>
Object
<Ford_Mustag>
الغرض:
واصفات attributes
أفعال actions
سيارة :
الواصفات :النموذج ،اللون،
االستطاعة ،الموضع،
األفعال :السير إلى األمام ،الرجوع
إلى الخلف ،االلتفاف يميناً،
االلتفاف يسارا ً.
يتحمل الغرض مسؤوليتين هما :المعرفة (معطيات) والعمل
(عمليات)
= +
صنع أي منتج وحل أي مسألة يبنى على صنع نماذج برمجية
تقابل المكونات الموجودة في الواقع ،وتركيبها بطريقة محددة
للحصول على التطبيق المطلوب.
نسمي المكونات والعناصر التي نبنيها أغراضا ً.
مراحل التحليل:
تحديد المكونات
تحديد نوع (صنف) كل مكون ،ووصفه وصفا ً دقيقا ً لتمييزه
عن المكونات التي تشبهه
تحديد الطريقة التي يرتبط بها المكون مع المكونات األخرى
وتنظيم التفاعل بين األغراض إلنجاز المهمة المطلوبة
بناء مخطط التصميم
تعريف الخطوات الالزمة لتجميع المكونات الواحد تلو اآلخر لبناء
كامل التصميم المطلوب.
البرمجة اإلجرائية:
البرمجة الغرضية:
نمذجة أغراض العالم الحقيقي
بناء الحل البرمجي الذي يحدد طريقة تفاعل هذه األغراض مع بعضها والخطوات
التي يجري هذا التفاعل وفقها.
تعريف الخطوات الالزمة لتجميع المكونات الواحد تلو اآلخر لبناء كامل التصميم
المطلوب.
نمذجة أغراض العالم الحقيقي:
حساب مصرفي؟؟
موظف؟؟
(الغرض طالب في نظام المحاسبة) الطالب:
الواصفات :رقم التسجيل ،االسم ،الذمة المالية
(الغرض طالب في نظام االمتحانات) الطالب:
الواصفات :رقم التسجيل،االسم ،االختصاص ،المعدل
(الغرض طالب في نظام السكن الجامعي) الطالب:
الواصفات :رقم التسجيل،االسم ،الجنس ،العمر ،رقم الغرفة
تدريب:
نريد بناء نموذج للموظف في نظام إداري في مؤسسة .حدد خصائص
الغرض موظف الموافق للمسألة (واصفات وعمليات)
تدريب:
نريد بناء نموذج لحساب مصرفي يخص المتعامل في مصرف .حدد
خصائص الغرض حساب مصرفي الموافق للمسألة (واصفات
وعمليات)
Class ClassName
{ نُعبّر عن السلوك من خالل
)…(method1 تعريف مجموعة من الطرق
{
//……………….
}//method1
نُعبّر عن الواصفات من خالل
……//
تعريف مجموعة من
;int data1
المتحوالت
;string data2
………//
}