Professional Documents
Culture Documents
AboulmajidAli UMLbook Cutted
AboulmajidAli UMLbook Cutted
AboulmajidAli UMLbook Cutted
net/publication/304015518
CITATIONS READS
0 2,755
1 author:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Abdulmajid Hissen Mohamed on 10 July 2018.
1
اإلهداء
أمى
2
الفهرس
اإلهداء2 ............................................................................................
مقدمة9 .............................................................................................
3
0.2تمهيد 11 .........................................................................................................
0.3تمهيد14 .........................................................................................................
4
3.8.3عالقة االحتواء includeبين وقائع اإلستخدام المختلفة 32 .....................................
4.8.3عالقة اإلمتداد extendبين وقائع استخدام مختلفة 33 ..........................................
0.4تمهيد55 .........................................................................................................
0.5تمهيد041 .......................................................................................................
5
3.2.0العمر الزمنى للكائن 010 .................................................................. lifetime
4.4.1استثارة الكائنات ومسارات التنفيذ 014 ................................................................
الفصل السادس :مخطط وصف تبدل الحالة 305 .........................State chart Diagrams
0.6تمهيد011 .......................................................................................................
0.7تمهيد021 .......................................................................................................
0.8تمهيد011 .......................................................................................................
6
6.8وسم المكونات البرمجية031 .................................................................................
5.9تمهيد051 .......................................................................................................
ِ 1.9
الحزم 051 ...................................................................................... packages
7
كلمة شكر وتقدير
عمال بالحديث النبوي الشريف( ،ال يشكر اهلل من ال يشكر الناس) فإنني
أجد نفسي مدينا بالشكر لكثير من األشخاص الذين أسهموا في إظهار هذا
الكتاب ،سواء اكان ذلك بطريقة مباشرة ،أو غير مباشرة ،كنت سأكتفى بشكرهم
جميعا دون ذكر أسماء ،لكنني أجد نفسى مدفوعا ألخص بالشكر بعضهم ،عرفانا
بالجميل وتقدي ار للمعروف .فأخص بشكري الجزيل للدكتورة ليي ساي بيك بجامعة
ماليا – ماليزيا ،فهى من دفعني لتعلم لغة UMLللمرة األولى ،كما أشكر وبال
حدود أستاذي الدكتور الصادق البصير ،الذي غرس في نفسي حب اللغة العربية
والكتابة بها .كذلك اليمكنني بحال أن أغفل عن التعقيبات النقدية لطالبى
بالجامعات الليبية ،لقد كانت سببا مباش ار في إعادة النظر في صياغتي العربية
للكثير من مصطلحات التقنية الشيئية ،وألن الترجمة غالبا ما تمثل خيانة للنص
كما يقول المثل ،فإنني أزعم أنهم ساهموا(أسهموا) إلى حد كبير في نفي هذه
الصفة عني بإختياري المصطلحات العربية التي اعتقدت أنها األصوب من حيث
ترجمتها إلى العربية .الشكر موصول أيضا إلى زمالئي أعضاء هيئة التدريس
بقسم الحاسوب جامعة سبها ،أحسب أن بعضهم منحنى سندا كبي ار إلستكمال
مغامرة التأليف دون كلل .وفى السياق ذاته أتوجه بالشكر مقدما إلى كل من
لديه مالحظة أو تصويب أو أي إقتراح من شأنه تحقيق الفائدة في إصدارات
الطبعات التالية لهذا للكتاب.
8
مقدمة
الحمد هلل الذي أتاح لهذا الكتاب البروز في حيز الوجود ،وأسأل اهلل أن
ُيشغل به حي از شاغ ار في أرفف كتب الحاسوب و المعلوماتية ،أُدرك إن صياغة
كتابا واحدا ال يصنع مؤلفا؛ ولكنني أعتقد أن الرضا بهذه القناعة هو سبب رئيسي
في فقر المكتبة العربية خاصة كتب الحاسوب والمعلوماتية .فرغم الجهود المبذولة
لسد النقص الكبير لإلصدارات العربية لكتب الحاسوب والمعلوماتية ،إال أن هذه
الجهود ترتكز في مجملها على التأليف في مواضيع لغات برمجة الحاسوب ،و
برمجيات التطبيقات التجارية ،وبرمجيات النشر المكتبي وأعمال السكرتارية
وغيرها.
نحن نعتقد ان المكتبة العربية ال تزال بحاجة الى المزيد من تأليف الكتب
التى تتطرق الى وصف التراكيب والهياكل الهندسية المعقدة للنظم البرمجية.
فهناك شبه إجماع على أننا نعيش عصر "مجتمع المعلومات" ،العصر الذي
صارت فيه المعلومات هي السالح األقوى مقارنة بسالح المحركات الذي ميز
عصر الثورة الصناعية .بالطبع لم يختف ولم يتقلص دور المحركات في عصرنا
الحالي؛ ولكن البرمجيات عززت أداء المحركات عموما ،حيث صارت أكثر دقة
وذكاءا في أدائها ،فصارت البرمجيات تمثل جزءا أساس من أي منتج صناعي،
أو معرفي ،أو خدمي ،بحيث ال يمكن تصور أداء أي وظيفة أو خدمة ال تكون
البرمجيات جزءا من أدائها.
9
فالبرمجيات هي عماد األسواق وبشرية حدثت نتيجة ألخطاء البرمجيات.
المالية العالمية ،وهى المحرك األساس لتقنية الفضاء ،وكذلك التحكم في تسيير
وسائل المواصالت العصرية كالطائرات والسفن و غيرها ،وأي خطأ تقني في أداء
هذه البرمجيات قد ينجم عنه خسائر مالية وبشرية هائلة ،هذا ما جعل من
حثيثا لدى علماء الحاسوب أم ار االهتمام بتحسين طرق بناء البرمجيات
والمعلوماتية.
10
أي أخطاء تصميمية سيتم اكتشافها قبل التصنيع الفعلي؛ وبذلك سيتم تجنب أي
كوارث أو مشاكل سببها استخدام المنتج النهائي.
فهذا الكتاب يقدم شرحا مستفيضا ألحد لغات وصف البرمجيات ،وذلك
عبر مجموعة من المخططات الوصفية التي تقوم بوصف نواحي مختلفة من
التطبيق البرمجي قيد البناء .لقد تعددت لغات وصف البرمجيات حتى جاوزت
مجال هندسة البرمجيات حول الطريقة العشرات وهو ما أحدث فوضى في
Unified Modeling األمثل لوصف نظمها .فظهرت لغة ) UML
)Languageتتويجا لتوحيد جهود ثالثة من أشهر واضعي طرق وصف
البرمجيات ،وحاليا تعتبر UMLهي اللغة األشهر واألكثر اعتمادا ضمن سوق
صناعة البرمجيات ،بل ربما بلغ انتشارها وشهرتها إلى الحد الذي ال يمكن تخيل
مهندس برمجيات يجيد العمل بدونها.
11
عند كتابة هذا المرجع روعي في كتابته العديد من النواحي البيداغوجية
pedagogicalالتي تجعل من استيعاب مخططات الوصف المعروضة أم ار
ميس ار .ففي الفصل األول تم التعرض إلى مفاهيم النظرية الشيئية التي تعتبر لغة
UMLداعما رئيسا لها ،فمعظم مكونات مخططات لغة UMLلها خلفية
نظرية ضمن مفاهيم النظرية الشيئية لبناء البرمجيات ،لذلك كان البد من اإللمام
بالخلفية النظرية للغة UMLقبل عرض مخططاتها الوصفية ،أما الفصل الثاني
فجاء بمثابة صورة جوية لمخططات لغة ،UMLحيث أُعطيت نبذة عن كل
مخطط من المخططات الوصفية للغة ،UMLتهدف إلى إعطاء المتلقي فكرة
عامة عن مخططات اللغة قبل تفصيل مكونات كل مخطط على حدة في فصول
الحقة .ودعما لمنهج التعليم المدعم بالمسائل problem based learningفقد
اختير نظام المكتبة الجامعية نموذجا يتم من خالله بيان كيفية استخدام
مخططات UMLلتجهيز مخططات الوصف المختلفة ضمن هذا النظام.
أخي ار ،لقد أُعتمد في تأليف هذا الكتاب على عديد من المراجع والبحوث
األجنبية في هذا المجال ،وقد أولينا عناية خاصة بالمصطلحات العربية ،حيث تم
االلتزام بما هو سائد أحيانا ،بينما اختيرت مصطلحات عربية أخرى لما بدا لنا أنه
هو األصوب واألدق.
12
الفصل األول :أساسيات النظرية الشيئية
0.1تمهيد
قبل التطرق إلى مخططات وصف البرمجيات وفقا للمفهوم الشيئي ،البد من
عرض المفاهيم األساسية التي تقوم عليها النظرية الشيئية .ستالحظ الحقا أن
بعض هذه المفاهيم شائعة اإلستخدام في مجاالت أخرى غير صناعة البرمجيات،
ولكن يظل استيعابها من منظور صناعة البرمجيات أم ار أساسيا .لذلك يمكن
إعتبار هذه المفاهيم بمثابة مفردات وصف بناء البرمجيات الشيئية التي البد لكل
مهندس برمجيات من االلمام بها .ولكن لماذا نحتاج لوصف النظم المعلوماتية قبل
بنائها (برمجتها) فعليا .إنه النهج الحديث إلنجاز أي مشروع هندسي (برمجيات،
معمار ،عربة ،الخ) .فنجاح بناء أي مشروع هندسي يعتمد إعتمادا رئيسيا على
سالمة التصورات ،ممثلة في مخططات وخرائط وصف المنتج الهندسي قبل عملية
بنائه.
13
حيث يمكن إجراء جميع اإلنشاء حول ما سيكون عليه المبنى المرتقب،
اإلختبارات على الخارطة قبل الشروع في البناء الفعلى .االمر ذاته ينطبق على
خرائط وصف الطائرات والمباني والجسور وغيرها.
قد تختلف مخرجات عملية الوصف من واصف آلخر حيث تتداخل عوامل عدة
في اختيارات كل واصف .فمثال لو وقعت حادثة سرقة امام جمع من الشهود ،و
فر على اثرها السارق ،ثم طُلب من الشهود وصف المتهم ،الشك ان ما سيدونه
رجل الشرطة من اوصاف سمعها من الشهود ستكون مختلفة إلى حد كبير .فبعض
الشهود سيركزون فى وصفهم على زى السارق مثال ،بينما قد يهتم آخرين بوصف
مالمح الوجه وهكذا .ولكن هل يجب أن يحصل رجل الشرطى على وصف
مطابق تماما للجانى حتى يتعرف عليه؟ من المؤكد انه سيحتاج فقط إلى وصف
تقريبى ،وهو ما يمكن تسميته وصفا تجريديا للجانى ،وبالمفهوم الهندسي يقال له
"نموذج" السارق.
2.1الوصف التجريدى
عند شروع المهندس المعمارى مثال في رسم خارطة اإلنشاء لمبنى معين .الحظ
أن وصف المبنى سيتم اختزاله فقط في حيز ورقة صغيرة أو مجموعة أوراق.
ما من شك أن خارطة المبنى ال تطابق المبنى الحقيقي بالضبط ،ولكنها كفيلة
بشرح ما سيكون عليه المبنى الحقيقى .لذلك فعملية الوصف غالبا ال تتجاوز
وصف المكونات األساسية ،أو العالمات الدالة لجوهر الشيئ ،بينما يتم التغاضى
عن إيراد التفاصيل الدقيقة له ،ورغم هذا االختصار الكبير في الوصف فإن تمييز
14
الموصوف سيكون من السهولة بمكان .لذلك تسمى عملية الوصف المختصر هذه:
وصف تجريدي .أي الوصف المختصر الذي ُيركز على الجوهر دون التفاصيل.
3.1أدوات الوصف
تأخذ عملية الوصف أساليب ومفردات مختلفة ،وذلك حسب ما يراه الواصف أنه
أقرب للفهم والتمييز من قبل المتلقى .وهنا نحتاج لما يمكن تسميته لغة الوصف،
أو رموز الوصف .فلغة الوصف تمثل مفردات الوصف وقد يشمل ذلك مفردات
اللغات البشرية ،والرسومات ،والمنحوتات ،بل حتى لغة اإلشارة للصم والبكم.
وكنموذج لتعدد طرق وأساليب الوصف في الحياة العامة ،فالشعراء مثال يستخدمون
الشعر كلغة وصف لمواضيعهم الشعرية ،سواءا كانت مدحا لشخص ،أو وصفا
لمشهد أو غير ذلك .انظر مثال للشاعر البحتري وهو يصف مشهد الربيع بقوله:
حتى كاد أن يتكلما من ُ ِ
الحسن َ أتاك الربيع الطلق يختال ضاحكا
الشاعر هنا أوجز وصف جمال الربيع بأبيات بليغة تدل على بهجة الربيع ،وما
يبعثه في النفس من سرور ،ولكن الحظ أن الشاعر لم يصف الكثير من التفاصيل
الدقيقة ،التي قد ال يصلح الشعر (كلغة وصف) لوصفها .وكنموذج آخر لوصف
الربيع ،قد يلجأ رسام لوصف ذات المشهد بلغة وصف أخرى وهى الرسم .إذا فنحن
هنا أمام وصف نفس المشهد ،أو الظاهرة أو النظام (اصطالحا) ،ولكن تم التعبير
عنه بلغتي وصف مختلفتين .تأمل أي الوصفين أقرب للتعبير عن مشهد الربيع؟
في الدروس القادمة سنبين ضرورة فعل نفس الشيئ عند وصف البرمجيات،
فالنظم البرمجية يتم وصفها بصيغ ورموز وصف مختلفة ،وذلك لتحقيق أغراض
15
سيتم الحديث عنها الحقا .المثال السابق كان على صعيد وصف الظواهر أو
النظم بشكل عام .أما على صعيد بناء وتطوير األنظمة الهندسية ،تكمن الحاجة
إلى عملية الوصف عند التفكير في بناء أو تطوير أي كائن هندسي (مبنى ،آلة،
عربة ،الخ) .ولتحقيق ذلك يتم أيضا اللجوء إلى لغات وصف معينة لعمل نماذج
وصفية لهذه األشياء قبل عملية االنجاز الفعلى لها .فمثال ،قبل ظهور برمجيات
الطين والخشب هما لغة وصف نماذج الرسم الهندسي ،CADكانت مادتا
ى
السيارات الجديدة .فيتم صنع نموذج طينى أو خشبى للسيارة ،ومن ثم تُجر َ
اإلختبارات المختلفة على المجسم التجريبى ،كإختبارات انسيابية الهواء
،Aerodynamicومقاومة الصدمات ،وغيرها .ونتيجة لعوامل التكلفة ومرونة
العمل ،صارت رسومات CADو MATLABهي لغات الوصف األكثر
شيوعا في مثل هذه التطبيقات.
أما حول تعدد لغات الوصف ،فيعود تباين مفردات أو لغات الوصف إلى ضرورة
اشتراك الواصف والمتلقي في فهم نفس اللغة ،واال فقد أنتفت وظيفة الوصف من
االساس .فمثال ما معنى قراءة ابيات قصيدة الربيع لشخص أصم؟ كذلك الحال
بالنسبة لوصف النظم المعلوماتية ،فالمستفيد أو مشغل النظام المعلوماتى غالبا ما
يفتقد للمعلومات الكافية حول المصطلحات التقنية ألنظمة المعلومات ورموزها
المختلفة .لذلك يجب أن تكون لغة الوصف في متناول فهم الزبون ،أو المستخدم،
سواءا كان ذلك وصفا سرديا ،أو وصفا باستخدام خرائط ومخططات مرئية سهلة
االستيعاب بالنسبة له.
16
4.1خصائص المفهوم الشيئي/الكائناتي للبرمجيات
الرواج الكبير للمفهوم الشيئي جعل منه خاصية يحرص الكثيرين على تطوير
برمجياتهم وفقا لها .ولكن ما الذي يجعل من أي تطبيق ،أو لغة برمجة ،أو نظام
إدارة قاعدة بيانات ،يكتسب هذه الخاصية .هناك العديد من العناصر أو التراكيب
والخصائص التي يوفرها المفهوم الشيئي ،أي تطبيق شيئي ،أو لغة برمجة شيئية،
أو نظام قاعدة بيانات شيئية ،البد أن يدعم هذه الخصائص المبينة بالفقرات
التالية.
17
مريضا سيلجأ للتارزى لكى يصف له الدواء ،ألنها هذه ليست وظيفة التارزى .أو
ان شخصا سيستعين بفني إصالح العربات لبناء بيت!!! وهكذا.
مرجع
-0نقل ملكية
:شارع عمر المختار الموقع
-4العرض في مزاد
سنة االنشاء 0511 :
:عبداهلل عبدالسالم المالك
:سكن الغرض
18
وفقا للمفهوم الشيئي فإن الكائن objectهو أي شيء مميز له هوية وسلوك (اي
وظيفة) ،بمعنى أي شيئ يمكن تمييزه ببيانات معينة dataوله سلوك behavior
يتمثل في الوظيـ ـ ـ ـفة التي ينجـ ـ ـ ـ ـ ـ ـزها (كتابة ،طباعـ ـ ـ ـ ـ ـة ،تطبيب ،بيع ،إلخ).
األش ـ ـ ـ ـ ـكال ( )0-0و( )4-0و( )1-0تمثل مخططات لتعريف أشياء يمكن
إعتبارها كائنات ،objectsفالبيت كائن له بيانات ،وله مجموعة من العمليات
(السلوك) التي تميزه ،وكذلك الحال بالنسبة للطبيب ،والمحاضر ،والعربة ،والكتاب
وغيرها.
الحظ أنه يندرج تحت تعريف "الكائن" ليس فقط الكائنات المحسوسة ،كالكتاب
والطبيب و غيره ،بل يتعدى ذلك إلى الكائنات المعنوية ،مثل عملية (حجز رحلة
جوية) ،أو (حساب مصرفى) ،أو غيره من الكائنات المعنوية غير المحسوسة.
فمثال الحساب المصرفى يمكن ترشيحه ككائن برمجي ضمن متطلبات منظومة
19
معلومات مصرفية ،فكل حساب مصرفى له بيانات تميزه مثل رقم الحساب ،واسم
الزبون ،ونوع الحساب (إدخار ،إيداع ،جاري) ،والرصيد وغيره .جميع هذه البيانات
تمثل هوية أي حساب مصرفى .أما السلوك behaviorالمتوقع لهذا الكائن
فيتمثل ذلك في عملية (ايداع مبلغ مالى في) الحساب المصرفى ،أو عملية (سحب
مبلغ مالي) من الحساب ،أو عملية (استصدار كشف حساب) .وجميع هذه
العمليات تُـنجز تحت سيطرة الكائن المعنى .فمثال ،ال ُيسمح لصاحب الحساب
سحب أي قيمة تتجاوز رصيد الحساب .كل هذه العمليات تمثل سلوك الكائن
]حساب مصرفى[ (انظر الشكل .)4-0
حساب مصرفى
20
بيانات العنوان ،addressالحظ أنها ال تمثل كائنا مستقال لذاته ،ألن العنوان
خاصية من خصائص كائنات أخرى كالكائنات] :طالب[ ،أو ]شركة[ ،أو ]منزل[
وغيره ،فلكل من هذه الكائنات خاصية تتمثل في إما عنوان الطالب ،أو عنوان
الشركة ،أو عنوان المنزل.
إن ما تحاول النظرية الشيئية تحقيقه ،هو محاكاة نفس صيغة التعامل بين الكائنات
البرمجية المختلفة ،أي أن التطبيقات البرمجية يتم تصميمها ثم برمجتها على هيئة
"كائنات برمجية" ،تتخاطب وتتفاعل فيما بينها ألداء وظائف النظام المعني .تتمثل
ميزة هذا النهج في بناء النظم البرمجية ،في تبسيط بناء البرمجيات ،والتقليل من
أخطاء المبرمجين .فمثال لو أخطأ المبرمج في كتابة أمر إلستدعاء روتين معين،
وتم استدعاء وتنفيذ روتين آخر مشابه له في التسمية ،ولكنه ينتمى لكائن آخر،
فإنه وفقا للسلوك المتوقع لكل كائن برمجي فإن أي استدعاء بين أي كائنين
برمجين ال عالقة بينها ستُكشف فو ار .فمثال العملية (سحب مبلغ مالى) هي إحدى
سلوكيات الكائن ]حساب مصرفى[ ،من المؤكد أنه ستتم االستجابة ألي استدعاء
لهذه العملية من قبل الكائن ]زبون[ بالمصرف ،نظ ار لوجود عالقة بين الكائنين
]زبون[ و ]حساب مصرفى[ .بينما لو تم خطأ استدعاء نفس العملية من قبل
الكائن ]سيارة[ الوارد ضمن منظومة خاصة بإدارة إستخدام مركبات المصرف
مثال .فإنه من خالل المفهوم الشيئي سيتم اكتشاف هذا الخطأ تلقائيا لعدم وجود
عالقة بين الكائنين المختلفين ،بينما ال يمكن االنتباه لذلك وفقا ألسلوب البرمجة
اإلعتيادية (غير الشيئية).
و كمثال واقعي للتمثيل الشيئي للنظم ،نورد سيناريو إعارة الكتب ضمن نظام مكتبة
جامعية .الشكل ( )1-0يمثل مشهد مرئي لما يمكن أن نراه داخل المكتبة
21
المستفيدين من الجامعية .ضمن مكونات المشهد ،الحظ توفر مجموعة من
الخدمات المكتبية ،من طلبة ،ومحاضرين ،وموظفين ،أو أي شخص آخر تشمله
لوائح العضوية بالمكتبة .بإمكان أي من هؤالء التجول بين أرفف الكتب ،واختيار
ٍ
كتاب ما ،فإنه الكتب الستعارتها ،أو اإلطالع عليها .فإذا أراد شخص إستعارة
سيتوجه مباشرة إلى ركن منظومة اإلعارة ،مخاطبا الموظف المسئول من أجل
إستعارة الكتب .هنا يقوم الموظف باستخدام النظام المعلوماتي وذلك بالنقر على
أزرار خيارات اإلعارة ضمن شاشات النظام .يتم تقييد بيانات الكتاب المعار ثم يتم
تسليمه للمستعير في حال عدم وجود أي موانع تتعلق بالئحة اإلعارة.
كتاب
طالب موظفة مكتبة
شاشة تحاور مع
المستخدم
محاضر
منظومة االعارة
22
هذا السيناريو هو في الواقع عبارة عن سلسلة من الرسائل ،messagesالتي
تُـرسل من كائن ألخر ألداء أي وظيفة .فعندما يقوم أي عضو بالمكتبة بأخذ كتاب
معين من الرف ،فهذه العملية إنما تعتبر رسالة بين الكائنين المعنيين ،أي الكائن
يتوجه المستعير إلى ركن اإلعارة ]مستعير[ و الكائن ]كتاب[ .كذلك عندما
ويتواصل مع موظف اإلعارة ،فهذه العملية هي أيضا رسالة بين الكائنين المعنيين
ألداء عملية اإلعارة ،حيث يتم تقييد بيانات الكتب المعارة في الكائن ]حساب
إعارة[ التابع للمعنى .وعلى هذا النوح ،جميع العمليات والرسائل بين كائنات
المكتبة يمكن وصفها تجريديا كما هو مبين بالشكل (.)2-0
محاضر
طالب
رسالة معالجة
موظف
مستعير حساب
إعار
كتاب
المستخدم
زر
23
2.4.1التصنيف Class
التصنيف classهو عبارة عن "قالب" يمثل الوصف العام لمجموعة من الكائنات
التي تتشابه في خصائصها وسلوكها .فالتصنيف classيمثل القالب الذي يمكن
عن طريقه استنساخ أي كائن له نفس الخصائص والسلوك .الحظ أن هذه
الخاصية مستمدة من النزعة البشرية لتصنيف األشياء ،ففي واقع الحياة يتم تمييز
الكائنات الطبيعية على هيئة تصنيفات عديدة ،مثل (كائنات حية وكائنات جامدة)،
و (طيور-الثدييات) و (مناطق حارة-مناطق باردة) وغيرها.
التصنيف طالب
عبدالرحمن بشير
جامعة النجاح
كلية الهندسة
لمزيد من التفصيل ،يمكن إعتبار العنصر ]طالب[ كتصنيف يندرج تحته كل كائن
له خصائص الطالب ،بمعنى أن أي شخص ينتمى لمؤسسة تعليمية ،ويدرس
مجموعة من المقررات ،ويخضع إلختبارات التحصيل وغيرها .كل عنصر ينتمى
إلى هذا التصنيف يسمى حالة أو عينة .instanceفالطالب عبدالرحمن بشير،
والمقيد تحت الرقم دراسى 402بجامعة النجاح ،ال يمكن إدراجه كتصنيف class
24
بمفرده ،فهو يعتبر كائن objectينتمى إلى التصنيف ]طالب[ ،كذلك الحال مع
بيانات أي طالب آخر ينتمى إلى نفس التصنيف (انظر الشكل .)1-0إذا فالكائن
يمثل نسخة أو حالة instanceلتصنيف ما.
لتمييز الكائنات وتصنيفاتها ،يمكن إدراج أي كائن ضمن تصنيف معين إذا توفرت
بينهما عالقة "يعتبر" ( .)is aفمن خالل الشكل ( )3-0الحظ أن كل من الكائنات
الحقيقية مثل ]فالح[ و]طالب[ و]موظف[ و]طبيب[ كلها تعنى ]شخص[ معين.
فالفالح شخص والطالب شخص معين وكذلك الموظف والطبيب.إذا ما يمكن أن
ندرجه تحت التصنيف ]شخص[ ،هو كل كائن له خصائص مثل اسم وطول
ووزن وعنوان ومهنة وعمر وغيره .الحظ أن جميع هذه الخصائص أو البيانات
هي فى الحقيقة خصائص مشتركة بين تلك الكائنات ( طالب وطبيب وفالح
وموظف وغيرهم).
25
الشتراكها جميعا في بعض الخصائص األساسية ،مثل المالك ،والمساحة،
والعنوان ،وغرض االستفادة منه ،وغيره .لذلك ادرجت هذه الكائنات تحت نفس
التصنيف classأي ]عقار[.
تصنيف عقار
3.4.1التجريد Abstraction
كما تمت اإلشارة إليه سابقا ،يمثل التجريد وسيلة لوصف شيء ما دون التعمق في
تفاصيله ،حيث يتم التركيز فقط على النواحي التي تخدم الغرض من الوصف.
فمثال عند الرغبة في وصف بيانات نظام معلومات الطالب الجامعيين .الحظ أن
بيانات النظام المرتقب تتمحور حول الكائنات] :طالب[ و ]محاضر[ و]مقرر
دراسي[ وغيرها .فإذا حصرنا مؤقتا عملية الوصف التجريدى في العنصر ]طالب[،
سنالحظ أن الطالب ككائن بشرى ،لديه العديد من البيانات التفصيلية المتعلقة به.
وتتمثل هذه البيانات في مجموعة البيانات الشخصية مثل االسم ،العمر و الطول
و الوزن وغيرها ،ثم البيانات الصحية ،مثل فصيلة الدم ،و شفرة الحمض النووى
، DNAوأمراض الحساسية التي قد يعانى منها .إضافة لذلك هناك بيانات أخرى
26
مثل عدد االخوة و رقم الحساب المصرفى (إن وجد) ،وتفاصيل رخصة القيادة
وغيرها.
السؤال الذي يمكن طرحه هنا هو :هل هناك حاجة إلدخال كل هذه المعلومات
ضمن النظام المعلوماتى لمعالجة بيانات طالب الجامعة؟ الحظ أنه ال حاجة
لتخزين كل هذه البيانات ،إن ماسيتم إدخاله منها هو فقط مايتعلق بمعالجة بيانات
أى طالب ضمن العمليات المتوقعة في نظام معلومات الطالب الجامعيين .لذا يتم
اإلكتفاء بالبيانات األساسية ،ذات العالقة بمجال التعليم الجامعى ،و يتم تجاهل
أمرض الحساسية ،وشفرة
البيانات األخرى .فمثال ،بيانات رخصة القيادة ،و ا
الحمض النووى ،كلها ال عالقة لها بنظام معلومات الطالب الجامعيين ،ويجب
التغاضى عنها ،هذا هو المقصود بالوصف التجريدي للنظام قيد البناء .الحظ أن
البيانات التي تم تجاهلها قد تكون ذات أولوية ضمن نظم أخرى ،فمثال بيانات
أم ارض الحساسية قد تكون بيانات محورية في نظام معلومات المرضى في عيادة
طبية ،بينما تعتبر بيانات شفرة الحمض النووي ذات أهمية محورية عند تجريد
البيانات لتصميم منظومة المعلومات الجنائية للمواطنين ،لذلك تسمى عملية
التركيز على تفاصيل دون أخرى بعملية التجريد لبيانات النظام المعلوماتي
المرتقب.
27
تحديد سبل معالجة البيانات المعنية .وفقا للمفهوم الشيئي فإن عملية التغليف
تتمحور في فرز البيانات على هيئة مغلفات )كبسولة( ،كل منها يسمى تصنيف
.classوسميت مغلفات ألنها تخفي مابداخلها من تفاصيل للتراكيب البيانية data
structuresوأنواع الدوال ،functionsالتي من خاللها تتم معالجة البيانات
)انظر الشكل .)01-0
التصنيف :مستعير
التصنيف :كتاب
إسم المحاضر
العنوان الدرجة العلمية
المؤلف القسم
رقم التصنيف تاريخ مباشرة العمل
الناشر إسم الطالب
سنة النشر التخصص
الرقم الدولي الفصل الدراسى
إسم الموظف
إضافة بيانات كتاب جديد()
الدرجة الوظيفية
تعديل بيانات كتاب()
إالمهنة
ضافة بيانات مستعير جديد()
إستعارة نسخة()
إستعارة نسخة كتاب()
إسترجاع نسخة معارة()
إرجاع نسخة معارة()
….
الشكل ( :)11.-…1مثال لمغلفات تحوى تراكيب البيانات والعمليات الممثلة لسلوك التصنيف
المعني. ….
28
المتبعة في جميع النظم الهندسية التي يتعامل معها البشر .فالطائرة مثال تعتبر
مغلفا أو تصنيفا ،يقوم قائد الطائرة بالتحكم في تشغيلها عبر واجهة تعامل
interfaceتتمثل في مجموعة العدادات ،وأجهزة المالحة الجوية المختلفة ،ولكنه
يجهل تماما التفاصيل المعقدة لنظرية عمل المحركات ،وحركة أجنحة الطيران
ألنها ال تعنيه.
تعتبر قيادة السيارة كمثال أكثر شيوعا لمفهوم التغليف واخفاء التفاصيل ،فقيادة
السيارة تستلزم فقط معرفة كيفية التعامل مع واجهة القيادة Interfaceالمتمثلة في
العدادات والدواسات وعمود تبديل السرعات وغيره (انظر الشكل ،)00-0بينما
تفاصيل احتراق الوقود وانتاج طاقة الحركة وغيرها من تعقيدات ،فهى عادة ما
تكون خارج إهتمام السائق ،بل اليلزمه اإللمام بتفاصيلها ألنه ببساطة ال حاجة له
بها للتمكن من قيادة السيارة .فمن وجهة نظر التقنية الشيئية ،تعتبر السيارة مغلف
ويكتَفَى فقط بإبراز واجهة تعامل
يخفي التفاصيل النظرية لطريقة عملهاُ ،
dashboardمختصرة وغير معقدة تتمثل في عدادات السرعة والدواسات وعمود
29
المفهوم الشيئي للبرمجة يهدف إلى تحقيق نفس طريقة التعامل تغيير السرعات.
مع البرمجيات عبر خاصية التغليف.
الطريقة السابقة لتصميم وبناء البرمجيات ،تعتمد على ما يسمى بأسلوب إخفاء
المعلومات information hidingعن من ليس له عالقة باإلطالع عليها .هذه
الخاصية لها أهمية كبيرة في سهولة أعمال الصيانة للبرمجيات ،فيمكن اإلحتفاظ
بنفس بيانات واجهة التعامل ،interfaceبينما يتم تعديل المكونات الداخلية
للمغلفات ،أو التصانيف ،دون إحداث أي خلل بالتطبيقات التي تستخدمها .فقد يتم
30
اللجوء لتغيير تراكيب قاعدة البيانات ،أو الفهارس المعتمدة للوصول للبيانات
وغيرها دون التعديل الجذرى في التطبيقات البرمجية المعنية.
الشكل ) :)12– 1بيئة تطوير البرمجيات المرئية واإلعتماد على النماذج الجاهز القابلة
للتعديل.
5.4.1الوراثة Inheritance
تتمثل الوراثة عموما في اشتراك أكثر من كائن في خصائص معينة .فمثال رغم
أن البشر والحيوانات كائنان مختلفان ،إال أنهما يشتركان في بعض الخصائص
كالوالدة مثال .كذلك يهدف المفهوم الشيئي إلبراز الخصائص المشتركة للكائنات
31
البرمجية المختلفة .والهدف من التصنيف الوراثي لألشياء هو االختصار في
الوصف ،واالكتفاء بما يجب التصريح به ،بينما يتم معرفة الصفات الموروثة
ضمنيا .فمجرد تعريف كائن ما كالغراب مثال بأنه طائر ،فهو تلقائيا يرث
الخصائص العامة ألي طائر ،مثل القدرة على الطيران ،دون الحاجة للتعريف بأنه
يستطيع الطيران و أن له جناحين و غير ذلك.
والبشر عادة يتعاملون تلقائيا بمبدأ وراثة الصفات في وصفهم وتعريفهم لألشياء.
فهم يلجأون للتجريد واإلختصار في إيصال المعلومات ،وذلك إعتمادا على فهم
اآلخرين للتفاصيل الدقيقة عمال بمبدأ وراثة المفاهيم .فالعرب القدماء يقولون:
"توضيح الواضحات من الفاضحات" ،أي أن اإلغراق في الوصف عادة سيئة ،بل
قد يوصف فاعلها بالحمق أحيانا .تخيل مثال ،أن شخصا ما تردد على بيتكم
سائال عن شقيقك في حال غيابه ،ثم أردت وصف الشخص لشقيقك إثر عودته
للبيت ،من المؤكد أنك لن تصف السائل بأنه شخص له عينين ،ويقف على قدمين
اثنتين ،وله قامة طويلة ،وأنه يرتدى ربطة عنق!!! تُرى هل يجب ذكر كل هذه
التفاصيل لالستدالل على هوية شخص معين!! قطعا ال .فمن المعلوم أن أي
]شخص[ يمكن أن تكون له مثل هذه االوصاف ،و وصف الشخص على ذلك
النحو ال يفيد شيئا ،أي بمجرد ِذكر أن شخصا ما أتى للسؤال عن آخر فهذا كافيا
مبدئيا ،فكل هذه االوصاف هي أوصاف ضمنية ويرثها أي شخص .بل أن هذا
الوصف المغرق في تفاصيل ال لزوم لها ،قد ال يساعد كثي ار في معرفة هوية
السائل .فإذا قلت أن شخصا ُيدعى فالن أو به عاهة مميزة ،فإن ذلك أكثر
اختصار وداللة على هوية الشخص الموصوف دون اإلغراق في وصفه على ذلك
النحو الذى اليفيد.
32
و على صعيد البرمجيات فإنه يستفاد من خاصية الوراثة في تجنب تكرار بعض
التراكيب البيانية .وكذلك الدوال البرمجية ،وذلك عند برمجة التطبيقات المختلفة.
فتكرار البيانات المتشابهة له تأثير سلبي على استغالل الذاكرة ،كذلك فهو يساهم
في تعقيد شفرة البرمجيات مما يؤذى إلى صعوبة صيانتها .وخاصية الوراثة لها
صلة مباشرة بخاصية التصنيف ،فالتصنيف يبين مسارات الوراثة بين الكائنات
المختلفة (أى من يرث بيانات وسلوك من) .فارتباط الكائن ]س[ بعالقة "يعتبر"
مع الكائن ]ص[ ،انما تعنى ان الكائن ]س[ يرث جميع خصائص (اى بيانات
وسلوك) الكائن ]ص[ .لذلك عوضا عن التصريح بهذه الخصائص ضمن تعريف
الكائن ]س[ ،فإنه يشار فقط إلى أنه يرث الكائن ]ص[ ومن ثم فإنه سيرث سلوك
وجميع خصائص الكائن االب ضمنيا.
ألدراك مفهوم الوراثة ضمن إطار نظام المكتبة الجامعية ،الحظ أنه رغم إشتراك
جميع المستفيدين بالمكتبة في خصائص معينة ،إال أنه هناك بيانات معينة تميز
كل شريحة من المستفيدين بالمكتبة ،فالطالب له بيانات معينة تميزه عن
المحاضر ،وكذلك الموظف االداري بالجامعة له بيانات معينة تميزه عن الطالب
وهكذا .فبيانات الرقم الدراسى مثال ال تنطبق على المحاضر وكذلك بيانات الدرجة
الوظيفية للمحاضر أو الموظف ال تنطبق على الطالب وهكذا .لذلك يتم تسمية
تصنيف تجريدى عام يطلق عليه] :مستعير[ ،هذا التصنيف يحوي تفاصيل
البيانات والعمليات المشتركة ،بين جميع شرائح المستعيرين ،وتتم وراثة هذه
البيانات ،و العمليات ،من قبل الكائنات الفرعية ،التي تمثل خصوصيات كل كائن
يمثل شريحة من شرائح المستعيرين مثل] :طالب[ و]محاضر[ و]موظف[.
فعوضا عن كتابة عدد ثالث دوال منفصلة ،إحداها إلعارة كتاب لطالب ،وأخرى
إلعارة كتاب لمحاضر ،وثالثة إلعارة كتاب لموظف ،فإنه وفقا لمفهوم الوراثة يتم
33
كتابة دالة عمومية واحدة إلعارة كتاب ،ويتم استدعاء نفس الدالة من قبل عضو
المكتبة ،سواءا كان محاض ار ،أو طالبا ،أو موظفا .ويمكن إنجاز ذلك بعد
ترث ]طالب[ و]محاضر[ و]موظف[ جميعها التصنيفات: التصريح بأن
التصنيف ]مستعير[ ،وذلك على النحو المبين بالشكل (.)01-0
34
دالة إعارة كتاب لموظف دالة إعارة كتاب لمحاضر دالة إعارة كتاب لطالب
{ { {
دالة إسترجاع كتاب لموظف دالة استرجاع كتاب لمحاضر دالة إسترجاع كتاب لطالب
..... ..... { .....
{ {
} }
..... ..... }
.....
} } }
مستعير
رقم العضوية
غرامة مستحقة
إعار كتاب( )
{}......
استرجاع كتاب( )
{}......
الشكل ( :)11-1نموذجين لتصميم برمجيات وفقا لألسلوب التقليدى (أعلى) وآخر وفقا
ألسلوب الوراثة (أاسفل).
35
خاصية تماسك الروتين البرمجي تتعلق بعدد الوظائف أو المهام التي يقوم بها كل
روتين .كلما كبر عدد وظائف الروتين أُعتبر ذو تماسك منخفض ،وهى خاصية
سيئة خاصة عندما تكون الوظائف غير ذات صلة مطلقا .ويشكل التماسك
المنخفض تحديا كبي ار أثناء صيانة البرمجيات المعنية الحقا .على صعيد هندسة
البرمجيات الشيئية ،يتمثل معيار التماسك في معدل تماسك التصانيف classes
تماسك عالي highly والدوال ،methodsفهى إما ان تكون ذات معدل
cohesiveأو ذات معدل تماسك منخفض .low cohesion
تثمثل التصانيف والدوال ذات التماسك عالي الكثافة في جعلها إما تصف شيئا
واحدا بالنسبة للتصانيف ،أو بجعلها تقوم بوظيفة واحدة بالنسبة للدوال .فبالنسبة
للتصانيف مثال ،عند تصميم منظومة اإلعارة بالمكتبة الجامعية ،يمكن اقتراح
التصانيف] :محاضر[ و ]طالب[ و]موظف[ .الحظ أنه رغم إشتراك هذه
التصانيف في البيانات األساسية الخاصة باإلعارة كرقم المرجع المعار وتاريخ
اإلعارة ومدتها ،غير انه لكل من هذه التصانيف بيانات أخرى تميزه ،كالمنصب
الوظيفى بالنسبة للتصنيف ]موظف[ ،والفصل الدراسى بالنسبة للتصنيف ]طالب[،
و الدرجة العلمية بالنسبة للتصنيف ]محاضر[ .لذاك هناك بيانات تخص كل نوع
من أنواع المستفيدين من خدمات المكتبة .ومن تم ،فإن اختزال كل أنواع
المستفيدين واقتراح تصنيف تجريدى شامل يدعى ]مستعير[ ( borrowerيجمع
تفاصيل جميع أنواع المستفيدين) يعتبر أم ار غير جيد .وتعتبر هذه الطريقة في
التمثيل ذات تماسك/التصاق منخفض low cohesionوهو خاصية سيئة.
أما الطريقة المثلى فهي اقتراح كائنات ذات تماسك عالي ،وذلك بإتباع التمثيل
الهرمى hierarchalللتصانيف ،والذي يعتمد على مفهوم وراثة inheritance
36
الخصائص المتشابهة بين التصانيف .فعند تصميم نظام المكتبة ،يتم تمييز كل
نوع من أنواع المستعيرين كتصنيف classبمفرده ،بينما يتم اقتراح تصنيف عام
يمثل الخصائص المشتركة (البيانات) بين جميع انواع المستعيرين .يمكن تسمية
بـ ]مستعير[ بينما تقوم التصـانيف الفرعية مثل ]محاضر[ التصنيف العام
و ]طالب[ و]موظف[ بوراثة البيانات والعمليات األساسية لعمليات االستعارة .وفقا
سيمثل بتصنيف بمفردهلهذا النهج في التمثيل فإن كل نوع من أنواع المستعيرين ُ
وهو ما يوافق شرط التماسك العالي high cohesionوهى خاصية ايجابية.
تتميز الوحدات البرمجية ذات التماسك العالي ،بإنها إذا كانت هناك حاجة إلى
تغيير أي من العمليات ،أو تراكيب البيانات التي تخص أي من أنواع المستعيرين،
فإن التعديالت المحتملة ستكون فقط في التصنيف المعنى دون غيره من
فمثال إن كانت هناك حاجة إلتاحة الفرصة للمحاضرين فقط التصانيف.
لالستعارة الخارجية ( interlibrary loanأي استعارة كتب من مكتبات جامعات
أخرى) .ففي هذه الحالة يتم التعديل في تركيبة التصنيف ]محاضر[ فقط ،يتم ذلك
دالة جديدة تقوم بأداء هذه العملية ،بينما ال يتم التطرق ألى من بإضافة
التصانيف األخرى عند إجراء هذه العملية ،ومن ثم فهى لن تتأثر سلبا بأعمال
الصيانة التي تجرى على التصنيف المراد تعديله.
بالنسبة لتماسك للدوال فمثال عند تصميم تصنيف classمن نوع ]كتاب[ ،فمن
المؤكد أن هذا التصنيف سيتضمن دوال عديدة ،مثل :عملية استعارة كتاب
)( borrow_a_bookوعملية استرجاع كتاب )( return_a_bookباإلضافة
إلى عمليات أخرى مثل أضف كتاب جديد )( add_a_bookوعملية حذف كتاب،
)( delete_a_bookوغيرها .الحظ أنه من الممكن جعل كل من عمليتى استعارة
37
كتاب ،وعملية استرجاع كتاب ،تُنجزان من خالل دالة functionواحدة .في هذه
الحالة تسمى هذه الدالة السابقة بدالة ذات تماسك منخفض .low cohesion
مشكلة هذه الطريقة في بناء البرمجيات أن شفرة البرامج codeتكون أكثر تعقيدا،
فمثال عند الرغبة في تعديل الئحة استرجاع الكتب ،فإن مهندس الصيانة سيتتبع
شفرة الدالة بأكملها لكى ينجز التغيرات المناسبة ،رغم أن التغييرات تخص مهمة
واحدة وهي مهمة (اى استرجاع كتاب) دون غيرها .لذلك يستحسن جعل كل من
العمليتين تنجز بواسطة دالة methodمنفردة ،عندها يكون كل من الدالتين
الجديدتين ذات تماسك عالي البنية وهو ما توصى به أساليب هندسة البرمجيات
الحديثة .الشكل ( )02-0يبين تصو ار لألنواع المختلفة لتماسك الدوال البرمجية.
38
اإلرتباط ارتباط قوي strong couplingوهو سيئ التأثير ،حيث تعتبر خاصية
يخرق قواعد النظرية الشيئية وتحديدا مفهوم التغليف االرتباط القوي أم ار
encapsulationالذي يصر على استقاللية الكائنات.
دالة ذات تماسك مثالى دالة ذات تماسك(مقبول) دالة ذات تماسك(سيئ)
لتوضيح هذه المسألة من خالل نظام المكتبة الجامعية ،الحظ أنه عند الحاجة إلى
إنجاز عملية استعارة كتاب من قبل أي ]مستعير[ ،يجب أوال الكشف عن حالة
الكتاب (معار ،محجوز ،مرجع ال يعار ،الخ) .إلجراء هذه العملية يمكن جعل
التصنيف ]مستعير[ قاد ار على قراءة بيانات حالة الكتاب book statusالمدرجة
ضمن التصنيف ]كتاب[ ،ومن ثم استكمال العملية .وهذا النوع من االرتباط يسمى
إرتباط قوي .الطريقة األخرى تتمثل في مخاطبة التصنيف ]مستعير[ للتصنيف
]كتاب[ وذلك بواسطة ارسال الرسالة )(( get_book_statusأي ما هي حالة
المراد) .في هذه الحالة فإن عملية قراءة البيانات المعنية تتم من قبل
الكتاب ُ
التصنيف المختص وهو التصنيف ]كتاب[ وهو بدوره ينقل الجواب للتصنيف
39
هذا النوع من اإلرتباط يسمى ترابطا مرنا وهو االفضل ألنه يعزز ]مستعير[.
أسلوب التخاطب عبر المراسالت messagesالذي توصى به النظرية الشيئية.
الحظ أن كل من الدوال السابقة لها شكل واحد في التعامل ،أي أنها تقوم بأداء
خدمة إعارة كتاب لصنف معين من المستعيرين (طالب ،محاضر ،موظف).
مايراد تحقيقه باستخدام خاصية تعدد األشكال polymorphismهو تصميم دالة
ُ
واحدة يمكنها التكيف مع أي نوع من أنواع المعطيات المختلفة المتمثلة في
أصناف المستعيرين .فوفقا للمعطيات المرسلة عند استدعاء الدالة متعددة األشكال
فإنها تسلك السلوك الخاص بالمعطيات المعنية .إن كانت المعطيات تشير إلى أن
40
المستعير هو من صنف ]محاضر[ ،فإن الدالة ستختبر شروط اإلعارة بالنسبة
للمحاضرين ،وهكذا بالنسبة ألصناف المستعيرين اآلخرين ،أي أن نفس الدالة
تتعامل مع معطيات مختلفة وبسلوك مغاير .لذلك فإنه عوضا عن كتابة دالة
خاصة باإلعارة لكل شريحة من شرائح المستعيرين ( كما هو مبين سابقا) ،فإنه يتم
اللجوء إلى صياغة دالة واحدة متعددة األشكال (أى حرباوية التشكل) لها القدرة
على التعامل مع الشرائح المختلفة من المستعيرين ُك ٌل حسب لوائح اإلعارة الخاصة
به.
41
من حيث الحجم ،تعتبر المكونات البرمجية software componentsذات
حجم أكبر من العناصر الشيئية المألوفة (تصنيف ،كائن) .بل قد تتكون من
مجموعة من التصانيف ذات العالقة والتى تقوم بمهمة محددة .ويعتبر هذا فرقا
جوهريا بين المكونات البرمجية software componentsوالعناصر الشيئية مثل
التصنيف classمثال .فإعادة إستخدام التصانيف classesتستلزم التوافقية
compatibilityبين لغات التمثيل لهذه التصانيف ولغة التمثيل المستخدمة في
البرمجيات المستهدف بنائها ،أما فيما يخص إعادة إستخدام المكونات البرمجية،
يتم فقط استدعائها ألداء الخدمة serviceالمنوطة بها ،فهي لها القدرة على
التخاطب مع أي نوع من أنواع المكونات البرمجية التي تستدعيها ،و بأى لغة
ُكتبت أو نوع نظام تشغيل يدعمها .أي أن مسألة شرط التوافقية ليست مطروحة
مطلقا.
10.4.1األنماط Patterns
يطلق مصطلح نمط patternعلى كل ما هو سائد من سلوك أو شكل وغيره.
ِ
فالحرفى المختص في صناعة أي شيء غالبا ما يسلك نهجا نمطيا (مكر ار) في
إنجاز مشغوالته ،والتعامل مع األنماط المتكررة هو ما يكسب المهارة التي تميز
المبتدئين عن المحترفين في المجاالت المختلفة .ومفهوم التعامل باألنماط ليس
حك ار على صناعة البرمجيات ،بل هو متبع من قبل أي مهندس أو حرفى في أي
مجال من مجاالت الحياة .فمثال لو تتبعنا سلوك مهندس االنشاءات المدنية عند
شروعه في رسم التصاميم االنشائية أو المعمارية لمبنى مدرسة مثال ،فمن المالحظ
أن هناك أنماط سائدة الشكال عمارة المدارس ،فالمدرسة باالساس عبارة عن
مجموعة فصول دراسية ومكاتب وساحات النشاط الرياضى وغرف المنافع الالزمة
42
مع مراعاة نواحي السالمة والصحة العامة في التصميمات المستهدفة .و من
األنماط السائدة لتصميم المدارس أنها تتمحور حول مجموعة من الفصول
المتجاورة طوليا أو على هيئة شكل مربع ناقص ضلع تتخلله ساحة النشاط وهكذا.
تمثل هذه األنماط نقطة البداية ألي مهندس معماري وهى بالتأكيد تجعله يضع كل
تركيزه في ابتكار التفاصيل الدقيقة التي من الممكن أن تميز مدرسة عن أخرى.
وإلدراك أهمية االسترشاد باألنماط وسهولة العمل من خاللها ،تخيل أن ُيطلب من
معمارى امريكى أن يصمم مسجدا حديثا في مدينة عربية .الشك أن مهمة هذا
المعمارى من الصعوبة بمكان ،فقد ال على دراية باألنماط السائدة لعمارة المساجد
في بالدنا المسلمة .ولذلك فهو غالبا سيصمم المسجد بصورة قد ال تثير استحسان
الناس الذين تعودوا على االنماط الشائعة لعمارة المساجد في بلدان العالم
االسالمي .بينما من اليسير إسناد نفس المهمة لمعمارى مسلم نشأ في بيئة مسلمة،
حيث عادة ما يكون هذا المعماري ملما باألنماط السائدة في عمارة المساجد
ومتأث ار بها .لذلك فهو البد أن يلجأ إلى إستخدام انماط معمارية سائدة كالمآذن
والقباب واألقواس وغيرها.
43
إعادة إستخدام reuseاألنماط السابقة .وهذه اإلعادة ليست بالضرورة إعادة َحرفية
للبرمجيات السابقة في جميع تفاصيلها ،بل إعادة إستخدام األنماط األساسية فيما
تضاف الحقا الجزئيات اإلبداعية التي تميز كل مبرمج .عمليا ،الحظ أنه هناك
تشابها كبي ار في برمجيات البريد اإللكترونى .Emailفالنمط السائد لهذه البرامج
أنها تحتوى على مساحة لتحرير الرسائل editorومساحة لتحميل الملفات الملحقة
attachmentsإضافة لروابط linksالستعراض صفحة البريد الوارد ،وصفحة
البريد الصادر وغيرها .أي شخص ينوى تصميم وبناء برنامج بريد الكترونى جديد
البد وأن يستعين بهذه األنماط السائدة لبرامج البريد اإللكتروني .وهذا ما يفسر
سهولة إستخدام أي برنامج بريد الكترونى ألول مرة من قبل مستخدمين إعتادوا
التعامل مع برامج بريد إكترونى أخرى .ومما تقدم فإنه إضافة لتسريع إنتاج
البرمجيات فإن وجود مكتبة لألنماط البرمجية السائدة ،تساهم في نقل خبرات
المبرمجين والمصممين المحترفين إلى المبرمجين والمصممين الجدد.
44
أسئلة الفصل االول
45
د -ليس لتعدد المفردات والنماذج أي تأثير على وصف وبناء النظم
ه -جميع االجابات خاطئة .
-2توفر النماذج التجريدية لوصف النظم المعلوماتية (قيد البناء) ......
أ -مجاال إلختبار ومراجعة النظم قبل إنجازها الفعلي.
ب -وسيلة لتفادى ارتكاب أخطاء تصميم النظم قيد البناء.
ج -وسيلة لتنظيم إنجاز االعمال من قبل فرق تطوير البرمجيات.
د -قاموسا مرجعيا لجميع اعضاء فرق تطوير البرمجيات.
ه -جميع االجابات صحيحة.
-1يمثل الكائن .... object
أ -اى عنصر بيانات يتعلق بمجال التطبيق (النظام) قيد التحليل.
ب -اى عنصر بيانات له هوية وسلوك مستقل ضمن بيئة النظام.
ج -اى مستند من مستندات النظام الحالى والمستهدف ميكنته.
د -اى كائن بشرى يتعلق بالنظام قيد البناء.
ه -جميع االجابات خاطئة .
-2أحد العناصر التالية ال ينطق عليه مفهوم الكائن objectضمن المنهج
الشيئي لتمثيل البرمجيات.
أ -زبون.
ب -فاتورة.
ج -سلعة.
د -قلم.
هُ -م َوِرد (مزود).
-1الرسالة messageهي عبارة عن .....
أ -عملية تمثل سلوكا معينا ألحد كائنات النظام.
46
ب -وحدة بناء النظم الشيئية.
ج -ارسال معلومة من كائن objectآلخر.
د -طلب خدمة يؤديها كائن objectلصالح كائن آخر.
ه -جميع االجابات خاطئة .
-3التصنيف classهو عبارة عن .......
أ -مجموعة من الكائنات التي تربطها عالقة "وراثة".
ب -وصف تجريدى عام لمجموعة من الكائنات التي تشترك في بعض
الخصائص والسلوك.
ج -وصف تجريدى عام لمجموعة من الكائنات التي تستدعى بعضها
البعض.
د -اصناف البيانات التي لها سلوك وهوية مميزة.
ه -تصنيف الكائنات objectsوفقا لوظائفها.
-5بيانات احد الخيارات التالية ال يمكن تمثيلها من خالل تصنيف ذو مستوى
تجريد أعلى.
أ -فاتورة – كشف حساب – كشف طلبية.
ب -سيارة – جرار – شاحنة.
ج -مدرسة – روضة – جامعة.
د -كرسي – فصل – تلميذ.
ه -جميع االجابات صحيحة.
-01يمثل التغليف encapsulationعملية .......
أ -تمثيل الكائنات ذات العالقة على هيئة مغلفات ذات مستوى تجريد
اعلى.
47
ب -تجميع الكائنات ذات العالقة على هيئة مغلفات تُدعى تصانيف
.classes
ج -إعداد توليفة من البيانات والعمليات التي تُجرى عليها والتعامل معها
وحدة واحدة.
د -إعداد كبسوالت (مغلفات) برمجية تحوى بداخلها تراكيب بيانات النظام
فقط.
ه -جميع االجابات صحيحة.
-00تتمثل خاصية إخفاء المعلومات information hidingفي .....
أ -استخدام خوارزميات التشفير إلخفاء الطبيعة الحقيقية لبيانات النظام.
ب -اخفاء تفاصيل بناء النظام عن الزبون.
وحصر التعامل مع ج -حجب التفاصيل الداخلية للكائن البرمجي
الكائنات األخرى بواسطة الرسائل messageالمخولة.
د -حجب سلوك (عمليات) الكائنات عن التصانيف األخرى.
ه -جميع االجابات خاطئة.
-04تستخدم خاصية الوراثة في ......
أ -صياغة الرسائل messagesالموجهة من كائن آلخر.
ب -تفادى مشكلة تكرار بيانات كائنات النظام المتشابهة.
ج -ضمان استجابة كائن ما لرسالة messageمرسلة من كائن آخر.
د -الكشف عن األخطاء التنفيذية للكائنات.
ه -جميع االجابات خاطئة .
-01تستخدم خاصية التماسك ..... cohesion
أ -لتقدير درجة تعقيد complexityالبنية الداخلية للكائن أو التصنيف
البرمجي.
48
ب -لتقدير كثافة الرسائل messagesالموجهة من كائن ما إلى كائنات
النظام األخرى.
ج -لمعرفة معدل األخطاء الداخلية التي تحتويها الدوال الداخلية للكائن
البرمجى.
د -لتحقيق خاصية إخفاء البيانات والسلوك للكائنات والتصانيف
البرمجية.
ه -جميع االجابات خاطئة .
-02تستخدم خاصية االرتباط ..... coupling
أ -لتقدير درجة تعقيد complexityالبنية الداخلية للكائن أو التصنيف
البرمجى.
ب -لتقدير كثافة الرسائل messagesالموجهة من كائن ما إلى كائنات
النظام األخرى ذات العالقة.
ج -لمعرفة معدل األخطاء الداخلية التي تحتويها الدوال الداخلية للكائن
البرمجى.
د -لتحقيق خاصية اخفاء البيانات والسلوك للكائنات والتصانيف
البرمجية.
ه -جميع االجابات خاطئة .
-01تساهم خاصية تعدد األشكال Polymorphismفي .......
أ -بناء مكونات برمجية متعددة المستويات الوراثية.
ب -بناء دالة برمجية متعددة السلوك (عمليات).
ج -بناء مكونات برمجية متعددة التراكيب البيانية.
د -بناء دالة برمجية متعدد المعامالت .parameters
ه -تسهيل صيانة البرمجيات الشيئية عبر إعتمادها خاصية الوراثة.
49
الفصل الثانى :وصف عام للغة الوصف UML
0.2تمهيد
تعتبر لغة التوصيف الموحدة ،UMLلغة الوصف األحدث واألشهر في مجال
وصف وتطوير النظم المعلوماتية ،بل يمكن وصفها بأنها لغة الوصف القياسية
عالميا .وبالتالى أضحى إتقان لغة UMLمن المهارات األساسية لكل مهندس
برمجيات الحاسوب ،وكأي لغة بشرية ،أو لغة برمجية ،فإن لغة UMLتتكون من
مجموعة من المفردات ،والقواعد ،والمخططات ،التي يتم من خاللها وصف أي
نظام معلوماتي .وقدرة لغة UMLعلى الوصف ال تقتصر فقط على وصف
النظم المعلوماتية المدعمة حاسوبيا ،بل تتعدى ذلك إلى وصف أي نظام هندسي
أو اقتصادي أو اجتماعي أو غيره.
قبل بروز لغة ) UMLأواخر الثمانيات وحتى أوائل التسعينيات( ،كانت هناك
العديد من لغات وصف و نمذجة النظم المعلوماتية .بل إن صناعة البرمجيات
آنذاك كانت شهدت ما ُسمى بحرب اللغات و الطرق الوصفية ،وذلك نظ ار للعدد
الهائل لطرق وصف وبناء البرمجيات المختلفة ،والتى تتباين في طرائقها و
المخططات الوصفية التي تستعين بها .ولكن ما يميز لغة UMLهو بروزها
تتويجا إلسهامات رواد أشهر ثالثة طرق لوصف النظم المعلوماتية .وتتمثل هذه
الطرق الثالث فى:
-0طريقة Boochللمؤلف Grady Booch
-4طريقة Objectoryللمؤلف Ian Jacobson
50
-1طريقة ) Object Modeling Technology (OMTللمؤلف Jim
.Rambaugh
للوصول إلى طريقة معيارية لوصف ونمذجة البرمجيات ،فقد تضافرت جهود
المؤلفين الثالثة للخروج بطريقة واحدة ،يتم فيها األخذ باإلعتبار المزايا والعيوب
التي تضمنتها كل طريقة وصفية .لقد كانت حصيلة هذه الجهود هو الخروج بما
ُسمى بلغة وصف البرمجيات الموحدة .UMLمنذ ذاك الحين ،صارت لغة
UMLهي لغة الوصف المرئية المعتمدة لتحليل وتصميم النظم الشيئية من قبل
عنى بوضع
مؤسسة ) Object Management Group (OMGوالتى تُ َ
(انظر البرمجيات بصناعة الخاصة والمعايير المقاييس
.)http://www.omg.org/
1.2مخططات UML
رغم أن UMLتوصف إصطالحا بأنها لغة لوصف أنظمة الحاسوب ،كلغة
C++أو JAVAوغيرها .إال أنها تختلف من حيث تميزها في استخدام الرسوم،
أو األشكال الهندسية لوصف النظم ،عوضا عن استخدام النصوص الرقمية
والحرفية فقط كما هو الحال في لغات البرمجة االعتيادية .لذلك تُـشكل األشكال
ما يسميه كيمبل) Kimmel(2005بالنحو المرئى visual والرموز
،grammarوذلك خالفا للقواعد النحوية المعتادة التي تعتمد على النص فقط.
وقياسا على عدم ضرورة إلمام أي شخص بجميع قواعد النحو العربي كي يتمكن
كتابة تقرير جيد ،فكذلك الحال بالنسبة لتعلم لغة .UMLفنظ ار لشمولية التطبيقات
51
المختلفة لهذه اللغة ،فإنها تحتوى على العديد من القواعد ،ومخططات التمثيل،
التي ليس من الواجب االستعانة بها جميعا لتمثيل أي نظام .بل يخضع استخدام
مخططات لغة UMLإلى متطلبات النظام قيد االنجاز.
مسألة االستعانة بالرسوم والصور في وصف األشياء ،هي لمجرد تقريب فهم المراد
وصفه ،و بأقل جهد ذهنى ممكن .فوفقا للمثل الصينى القديم :الصورة أكثر تعبي ار
من الوصف السردى بآالف الكلمات ،كذلك الحال بالنسبة للغة ،UMLفهى
تعتمد إعتمادا أساسيا على األشكال الهندسية في وصف النظم ،كطريقة أدق تعبي ار
و أيسر للفهم من ِقبل أعضاء فرق تطوير البرمجيات من ناحية ،وكذلك كوسيلة
للتحاور مع زبائن النظم المعلوماتية من ناحية أخرى ،فالزبون العادي غالبا ما
يجهل أو يغفل العديد من المصطلحات التقنية المختلفة.
52
مثلما تمثل الجملة ،أو العبارة ،وحدة البناء األساسية لكتابة النصوص في اللغات
البشرية ،فإن مخططات لغة UMLالمختلفة ،تُمثل وحدة بناء أي نموذج model
لوصف مخرجات عمليات تحليل وتصميم النظم المعلوماتية .والنموذج Model
هو عبارة عن مخطط diagramأو مجموعة من المخططات الوصفية التي
تصف أي عملية أو وظيفة من وظائف النظام المعلوماتى قيد البناء.
مشهد الزبون
Use Case diagrams
البنى األساسية
مشهد ُ
Class Diagrams
Object diagram
Component Diagrams
Sequence and Collaboration
Diagrams مشهد تفاصيل وظائف النظام
State chart Diagrams واساليب التنفيذ
Component diagram
Packages
تقوم لغة UMLبوصف النظم عبر إستخدام مخططات عديدة كل منها يقوم
بوصف وتمثيل النظام من نواحي معينة .فكل نظام يمكن وصفه من مشاهد أو
53
زوايا متعددة وكل مشهد أو زاوية ربما يحتاج إلى صيغة معينة لوصفه .ويمكن
إجمال مخططات لغة UMLو اغراضها بالشكل ) .)1-2الحظ انه هناك
العديد من المخططات التي توفرها لغة UMLوهى تختلف حول أي من نواحي
النظام التي يقوم بوصفها كل مخطط.
حول سبب تعدد مخططات لغة الوصف لغة UMLيمكن االستعانة بقصة الفيل
وجماعة العميانُ .يحكى أنه كان هناك مجموعة من العميان ،يسيرون وسط
الغابة ،وفجأة تدحرجوا من فوق هضبة ،و وجد كل منهم نفسه معلقا بناحية من
نواحي كائن ضخم سقطوا فوقه وعلى نواحيه(انظر الشكل .)2-2بدأ الجميع
بمحاولة التعرف على الكائن الضخم من خالل تحسس مواضعهم ،قال الذي
54
إعتلى ظهر الفيل إنه مجرد جبل ،وقال آخر كان ممسكا بخرطوم الفيل ،إنها أفعى
ضخمة ،بينما تكهن آخر (كان ممسكا بفخذ الفيل) بأنه يمسك بجذع شجرة.
وهكذا فكل واحد منهم رمى بتكهن معين ،دون أن يميز أي واحد منهم أنه فيل .من
المالحظ أن كل شخص إستطاع أن يعبر عن تصوره عن الكائن دون أن يميزه
على وجه الدقة .الدرس المستفاد هاهنا هو أنه لوصف أى شئ على وجه الدقة،
البد من معرفة نواحيه المختلفة كلها .ولكى يتم ذلك البد من االستعانة بلغة
وصف تصف المشاهد أو الزوايا المختلفة للكائن .الكائن فى هذا المثال هو النظام
إصطالحا ،فمن أجل االلمان الجيد بنظام ما ،البد من النظر إليه ووصفه من
جميع الزوايا.
55
طلب عناوين جديدة من ناشرين
إستعارة كتاب
مستعير موظف
مكتبة
الشكل ( :)1–2جانبا من نموذج وصف وقائع اإلستخدام ضمن نظام مكتبة جامعية.
56
و أى عملية قد ينجم عنها تغيير حالة الكائن المعنى من صفة ألخرى .فمثال من
خالل نظام االعارة بمكتبة جامعية ،ستتغير حالة الكائن ]كتاب[ من صفة متوفر
إلى صفة معار إثر استالم رسالة بطلب تنفيذ عملية إعارة نسخة كتاب)( .كذلك
تنقل صفة الكتاب من صفة معار إلى صفة متوفر إثر تنفيذ عملية
استرجاع كتب)( من قبل احد المشتركين بالمكتبة .الشكل ( )4-2يبين مخطط
وصف تبدل حالة الكائن ]كتاب[ من حالة ألخرى مع بيان الرسائل messages
التي تساهم في تشكل كل حالة من حاالت نسخة الكتاب.
)(Return_book
معار متوفر على الرف
)(Borrow_book
57
بالتوالى و أخرى بالتوازى ،وذلك وفقا لتسلسل حل المسألة قيد الوصف.
الشكل ( )0-2يبين مخطط وصف مهمة استرجاع كتب)( من قبل موظف
مكتبة جامعية.
]تجاوز مد االعار [
58
6.2مخطط التصانيف Class Diagrams
يستخدم مخطط التصانيف في وصف البنية األساسية الثابتة للنظام static
،viewهذا المخطط ال يتعرض لتفاصيل سلوك behaviorالنظام ،من عمليات
ووظائف وغيرها .فهو تحديدا يقوم بتعريف تصانيف classesالبيانات األساسية
التي يتضمنها النظام المقصود ،فكل تصنيف ُيمثل قالبا بيانيا يمثل العينات
المختلفة لبيانات النظام قيد الوصف .فإثر فرز تصانيف النظام تتم االستعانة بهذا
المخطط لتحديد عالقات التعاون فيما بين تصانيف النظام ،وذلك من أجل إنجاز
الخدمات المتوقعة من النظام.
لها يمتلك
1 1
مركبة سائق
*1.. يملك 1
59
عند تعريف أي تصنيف ،يتم تحديد بياناته األساسية ،والمهام التي يساهم في
إنجازها .إضافة إلى ذلك فمخطط التصانيف يقوم أيضا بتبيان العالقات
relationshipبين التصانيف المختلفة للنظام المستهدف .فإلنجاز عملية إعارة
كتاب من مكتبة جامعية ،الحظ أن هذه العملية هي تفاعل يتم بين أي عضو
بالمكتبة وبين أي من الكتب القابلة لإلعارة .لذلك ُيفهم أنه هناك عالقة تربط بين
التصنيف ]مستعير[ والتصنيف ]كتاب[ .الشكل ( )6-2يبين مثاال مصغ ار لمخطط
تصانيف نظام معلومات المركبات اآللية التابع لمصلحة المرور وتراخيص القيادة.
60
واجهة مستخدم مشتركين كتاب
>><<UI
مستخدم
طلب إعارة)(
أكشف عن العضوية) )
الشكل ( :)8-2شكل يمثل مقطع مختصر لمخطط النسلسل لعملية إستعار كتاب.
61
ظهور األخطاء البرمجية أقل في البرمجيات المعتمدة على إعادة اإلستخدام
مقارنة ببرمجيات أخرى ُبنِيت من الصفر.
يختلف حجم وتعقيد المكونات البرمجية وفقا لوظائفها ،فهي قد تتخذ شكل تصنيف
،classأو مجموعة تصانيف (تمثل مكونا برمجيا واحدا) .لتحقيق مبدأ إعادة
استخدام المكونات البرمجية ،فكل مكون برمجي componentيمكن أن يكون
مزود خدمة ،providerأو مستفيد من خدمات مكونات برمجية أخرى ،ولذلك
فكل مكون برمجي يجب أن يكون له منافذ استقبال ،أو قنوات تزويد ،وذلك
على النحو المبين بالشكل (.)3-4
>><<component
دفع غرامة
62
االنماط ووسم التصانيف الشائعة Stereotypes
لغويا أي شئ يتكرر حدوثه ُيطلق عليه "نمط" ،وعند شيوع نمط معين ،يمكن
التعبير عنه برمز معين بدل تعريفه لفظيا .،ويطلق على هذا الرمز مصطلح
"وسم" .ويعتبر استخدام الوسم وسيلة شائعة اإلستخدام من قبل البشر عموما .فمثال
لو شاهدت رسما كاريكاتوريا في صحيفة أجنبية ،وضمن المشهد الكاريكاتورى
شخص يرتدى عقال و غترة على رأسه ،من المؤكد ان ذلك يشير إلى شخصية
عربية .ففي الغرب يستخدمون رمز الغترة والعقال للداللة على العرب .في هذه
الحالة ُيطلق على الغترة والعقال لفظ وسم stereotypeلنمط شائع .تستغل لغة
UMLهذه الخاصية ،عبر توفير مجموعة الوسوم ،أو األنماط الشائعة في
التصانيف، مثل المختلفة، المخططات لمكونات الرمزي الوصف
و المكونات البرمجية ،و وقائع اإلستخدام وغيرها .فكل تصنيف شائع يوسم بوسم
والذى يعنى ان التصنيف المعني يمثل معين مثل الوسم >><<interface
شاشة تحاور بين المستخدم والنظام.
63
شخص
64
عدد المواد =11
القيود Constraints
تستخدم القيود إليراد أي شروط مصاحبة إلدراج أي عنصر من عناصر
مخططات UMLالمختلفة .فمثال لو وضع شرط وجوب اجتياز خمسون مادة
للحصول على درجة بكالوريس علم الحاسوب ،عندها يتم إبراز ذلك على
النحو المبين بالشكل (.)01-2
65
ما يتعلق تحديدا بلغة البرمجة الشيئية المختارة ،بينما تمثل البيانات الخاصة تلك
التي يمكن فقط الوصول إليها من قبل كائنات تنتمى لنفس جنس التصنيف
أو +أو – للداللة على سماحية الوصول .classتستخدم UMLالرموز #
لبيانات و وظائف الكائن قيد المعالجة .الجدول التالى يبين استخدام هذه الرموز.
66
أسئلة الفصل الثانى
67
ه -االقدم
.2من أجل تجنب سوء الفهم و سرعة استيعاب نواحي النظام قيد البناء فإن
UMLتعتمد إعتمادا أساسيا على إستخدام ......عند وصفها للنظم.
أ -مخططات وقائع اإلستخدام .Use-case
ب -االختصار.
ج -األشكال والمخططات الرسومية.
د -النظرية الشيئية.
ه -جميع االجابات صحيحة.
.1يعود اختصار وبساطة األشكال والرموز المستخدمة في رسم مخطط use
caseإلى ....
أ -اعتباره المخطط الذي يتم إعداده أوال.
ب -استخدامه في حصر المتطلبات.
ج -اعتباره وسيلة للتحاور مع الزبائن اللذين غالبا ال يكونون على غير
دراية بالمصطلحات التقنية المختلفة.
د -انه افضل وسيلة للتعامل مع الزبائن ذوي المتطلبات المتبدلة كل
حين.
.6النموذج هو ......
أ -عبارة عن مجموعة مخططات هندسية تقوم بوصف وتمثيل النظام
من نواحي معينة.
ب -وصف سردي يستخدم لشرح نواحي معينة من النظام قيد البناء.
ج -وسيلة اتصال بين الزبون والمطور.
د -وصف رياضى لوصف النظم المعلوماتية قيد البناء.
ه -جميع االجابات خاطئة.
68
...... .7إستخدام مخططات متعددة لوصف النظم المعلوماتية قيد البناء
أ -ال يجب.
بُ -ينصح بـ.
ج -يجب.
د -أحيانا يجب.
ه -ال ُينصح.
.8تستخدم مخططات وقائع اإلستخدام use caseفي إبراز ........
أ -الوظائف األساسية للنظام بتفصيل كامل.
ب -الوظائف األساسية للنظام باختصار.
ج -الكائنات األساسية للنظام والعالقات بينها.
د -وصف المكونات البرمجية المستخدمة في إنجاز النظام قيد البناء.
ه -تبدل حالة الكائنات البرمجية التي يحتويها النظام.
.9تستخدم مخططات الحالة Statechart Diagramsفي إبراز ........
أ -الوظائف األساسية للنظام بتفصيل كامل.
ب -الوظائف األساسية للنظام باختصار.
ج -الكائنات األساسية للنظام والعالقات بينها.
د -مجموعة الرسائل messagesبين الكائنات البرمجية المستخدمة في
إنجاز النظام قيد البناء.
ه -بيانات تبدل حالة الكائنات البرمجية التي يحتويها النظام.
في إبراز .11تستخدم مخططات وصف المهام Activity Diagrams
........
أ -عدد المهام المختلفة التي يقوم بها النظام.
69
ب -مجموعة الرسائل messagesالمستخدمة في استدعاء وتنفيذ المهام
المختلفة.
ج -وصف خطوات تنفيذ أي مهمة من مهام النظام.
د -العالقة بين المهام المختلفة للنظام.
ه -تبدل حالة الكائنات البرمجية التي يحتويها النظام.
.11يستخدم مخطط التصانيف Class Diagramsفي إبراز ........
أُ -بنية تصانيف classالنظام والشفرة المصاحبة لها.
ب -المهام الوظيفية التي يدخل في إنجازها التصانيف المعنية للنظام.
جُ -بنية التصانيف classesاألساسية للنظام والعالقات بينها.
د -مجموعة الرسائل messagesالتي تقوم باستدعاء العمليات المدرجة
داخل لكل تصنيف .class
ه -تبدل حالة التصانيف البرمجية التي يحتويها النظام.
.12تستخدم مخططات التسلسل Sequence Diagramsفي إب ارز ........
أ -تسلسل االحداث التي تمثل متطلبات النظام المختلفة.
ب -تسلسل استدعاء الرسائل messagesالمستخدمة في النظام.
ج -سلسلة العالقات بين الكائنات البرمجية المختلفة للنظام.
د -تسلسل تنفيذ الخطوات الداخلة في إجراء أي خدمة من خدمات
النظام.
ه -جميع االجابات خاطئة
.13يستخدم مخطط الجزيئات/المكونات البرمجية Component diagrams
في إبراز .....
أُ -بنية أي مكون برمجي componentمن المكونات البرمجية للنظام.
ب -تسلسل استدعاء الرسائل messagesالمستخدمة في النظام.
70
ج -الكائنات البرمجية المختلفة التي يتكون منها أي مكون برمجي
componentللنظام.
أي خدمة من خدمات د -تسلسل تنفيذ العمليات الداخلة في إجراء
النظام.
ه -جميع االجابات خاطئة
.02تساهم االستعانة باستخدام المكونات/الجزيئات البرمجية componentsفي
…… ..قيد البناء
أ -إبطاء عملية برمجة النظم المعلوماتية.
ب -تسريع برمجة النظم المعلوماتية.
ج -تكدس الكائنات داخل كل مكون برمجي.
د -كثرة االعطال البرمجية داخل النظم المعلوماتية.
ه -جميع االجابات خاطئة.
البرمجية في التطبيقات المعتمد في بنائها ........ .01نسبة ظهور األخطاء
على إعادة استخدام مكونات برمجية سابقة.
أ -تزداد.
ب -تنعدم.
ج -تقل.
د -تندر.
ه -أحيانا تزداد.
71