You are on page 1of 114

‫الفصل الخامس‬

‫لغة النمذجة الموحدة‬


‫‪UML‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪1‬‬


‫تطوير البرمجيات‬
‫تطوير البرمجيات يشترك فيه عدد من األفراد‪ ،‬و كل واحد له دور‪:‬‬ ‫‪‬‬

‫المستفيدون‬ ‫‪‬‬ ‫المحلّلون‬ ‫‪‬‬

‫القائمون باالختبار‬ ‫‪‬‬ ‫المصمّمون‬ ‫‪‬‬

‫مراقبو الجودة‬ ‫‪‬‬ ‫المبرمجون‬ ‫‪‬‬

‫‪ ‬الك ّتاب التقنيون‬


‫‪ ‬ك ّل هؤالء األفراد يهتمون بجوانب مختلفة من المنظومة‪ ،‬و ك ّل واحد منهم يحتاج‬
‫إلى مستوى مختلف من التفاصيل‪.‬‬
‫‪ ‬على سبيل المثال‪ ،‬المبرمج يحتاج إلى أن يفهم التصميم الموضوع للمنظومة من‬
‫أجل تحويله إلى تعليمات برمجية في مستواها األدنى‪.‬‬
‫ّ‬
‫(الموثق) ينصبّ اهتمامه على سلوك المنظومة كك ّل‪،‬‬ ‫‪ ‬بالمقابل الكاتب التقني‬
‫فيحتاج لفهم كيف يعمل المنتج‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪2‬‬


‫النمذجة ‪The Modeling‬‬
‫لماذا نقوم بالنمذجة؟‬
‫نقوم ببناء نماذج حتى نتمكن من فهم أي نظام نقوم بتطويره ‪,‬وذلك ألن قدرتنا في فهم النظام بكاملة‬ ‫‪‬‬

‫دفعة واحدة محدودة‪,‬‬

‫لدراسة نظام ما نقوم بتقسيمه إلى مراحل و نماذج‬ ‫‪‬‬

‫ويعرف النموذج على أنه تبسيط وتجريد للمسائل المعقدة‬ ‫‪‬‬

‫يتم من خالل النموذج حذف كل ما ال داعي له بالنسبة لوجهة نظر معينة(وهذا‬ ‫‪‬‬
‫ما يسمى بالتجريد ‪ ) Abstraction‬وإبقاء األجزاء المهمة بالنسبة لنفس‬
‫وجهة النظر‬

‫وتتم الدراسة على هذا األساس ‪,‬و يعتمد النموذج على وجهة النظر المأخوذة‬ ‫‪‬‬
‫لتحقيق الغاية‬ ‫نموذج‬
‫ابوغليون ‪2010‬‬ ‫بعين االعتبار ونحتاج ألكثر منأ‪.‬سميرة‬ ‫‪3‬‬
‫نظرة تاريخية على تطور لغات النمذجة‬
‫في الفترة الواقعة بين عامي ‪ 1989‬و ‪ ،1994‬كان مهندسو البرمجيات‬ ‫‪‬‬
‫يفتقرون لمثل هذه الرموز‪ .‬و هي الفترة التي يشار إليها بـ "حروب‬
‫المناهج”‪.‬‬

‫كان يوجد ما يزيد عن ‪ 50‬لغة نمذجة برمجية قيد االستعمال ‪ -‬كل‪ ‬منها‬ ‫‪‬‬
‫تملك رموزها الخاصة!‪  ‬كل لغة تحتوي على قواعد تميزها‪.‬‬

‫بينما في نفس الوقت‪ ،‬كل لغة لديها عناصر تتشابه مع تلك التي في‬ ‫‪‬‬
‫اللغات األخرى‪.‬‬

‫ال توجد لغة متكاملة‪  ،‬نادرا ما‪ ‬يجد القائمون على البرمجيات ما يرضي‬ ‫‪‬‬
‫كامل حاجتهم في لغة واحدة!‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪4‬‬


‫نظرة تاريخية على تطور لغات النمذجة‬
‫في منتصف التسعينيات‪ ،‬برزت ثالث‪ ‬منهجيات‪   ‬كل منهجية تملك نقاط قوة خاصة بها‪:‬‬ ‫‪‬‬

‫بوك ‪: Booch‬‬ ‫‪‬‬

‫‪ ‬كانت ممتازة فيما يخص التصميم و التنفيذ‪ .‬لقد عمل "قرادي بوك" ‪Grady Booch‬‬
‫بكثافة على لغة آدا ‪ ،Ada‬و كان له دور رئيسي في تطوير تقنيات المنحى الكائني‬
‫(‪ )object oriented‬للغة‪ .‬‬
‫‪ ‬وبالرغم‪ ‬من قوة منهجية بوك إال أن الرموز فيها‪ ‬لم تأخذ القبول الحسن‬

‫‪( OMT‬تـــقنية اــلنمذجة اــلكائنية ‪)Object Modelling Technique‬‬ ‫‪‬‬


‫كانت األفضل في التحليل و في أنظمة المعلـومات ذات البيانات الكثيفة‪.‬‬ ‫‪‬‬

‫‪ Object Oriented Software Engineering( OOSE‬هندسة اــلبرمجياتكـائنية اــلمنح )‬


‫ى‬ ‫‪‬‬
‫‪ ‬تتميز بنموذج يسمى وقائع االستخدام (‪.)Use Cases‬‬
‫‪ ‬تعد وقائع االستخدام أسلوب قوي من أجل فهم سلوك كامل النظام (و هو المجال الذي كان فيه المنحى‬
‫الكائني ضعيفا)‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪5‬‬


‫نظرة تاريخية على تطور لغات النمذجة‬
‫‪ ‬في عام ‪ ،1994‬قام جيم رامبخ ‪ ،Jim Rumbaugh‬مؤسس ‪ ،OMT‬بمفاجأة عالم البرمجيات‬ ‫‪‬‬
‫حين ترك العمل بشركة جنرال الكتريك ‪ General Electric‬و انض ّم الى قرادي بوك للعمل في‬
‫شركة راشيونال (‪.)Rational Corp‬‬

‫الغرض من المشاركة‪ :‬من أجل دمج أفكارهما و صبّها في منهجية‪ ‬موحدة (و كان بالطبع عنوان‬ ‫‪‬‬
‫العمل لهذه المنهجية هي "المنهجية الموحدة" ‪.)Unified Method‬‬

‫مع عام ‪ ،1995‬انضم أيضا مبدع ‪ OOSE‬ايفار جاكوبسون ‪ ،Ivar Jacobson‬إلى راشيونال‬ ‫‪‬‬
‫‪ Rational Corp‬و تم ضم أفكاره (خاصة مفهوم "وقائع االستخدام" ‪ )Use Cases‬في‬
‫المنهجية الموحدة ‪.‬‬

‫اصبحت اآلن تدعى لغة النمذجة الموحدة (‪ .)Unified Modeling Language‬وعُرف‬ ‫‪‬‬
‫الفريق الذي يتكون من رامبخ و بوك و جاكوبسون بـ "األصدقاء الثالثة" (‪.)Three Amigos‬‬
‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪6‬‬


‫مقدمة‬
‫بدأـت المنهجيـة الجديدة لغ ة النمذج ة الموحدة ‪ UML‬تجـد اسـتحبابا لدى أوسـاط صـناعة‬ ‫‪‬‬

‫البرمجيات‬
‫تــم‪ ‬تكويــن لجنــة‪ ‬مشتركــة ‪ consortium‬خاصــة بـ ‪ ،UML‬شاركــت فيهــا عدد مــن‬ ‫‪‬‬

‫المؤســـسات ثقيلـــة الوزن مثـــل هيولت‪-‬باكارد (‪ )Hewlett-Packard‬و ميكروســـوفت‬


‫(‪ )Microsoft‬و أوراكل (‪.)Oracle‬‬

‫كما تم تب ّني ‪ UML‬من قبل منظمة (‪ )OMG‬في ‪ ،1979‬و من حينها امتلكت (‪)OMG‬‬ ‫‪‬‬
‫اللغة و دأبت على صيانتها‪.‬‬

‫لذلك عمليا أصبحت لغة ‪ UML‬عامة وليست‪ ‬ملكية خاصة‪.‬‬ ‫‪‬‬

‫‪ :OMG‬مجموعة اــإلدارة اــلكائنية (‪ ،)Object Management Group‬و هيجهـة غير‬ ‫‪‬‬


‫ـصفات اـنظر ‪ www.omg.org‬لــمزيد مناــلتفاصي ‪.‬ل‬
‫‪.‬‬ ‫ربحية لــوضعـ اــلموا‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪7‬‬


‫مقدمة‬
‫تقدم لغة النمذجة الموحدة ‪ UML‬مجموعة من أفضل خبرات الممارسات الهندسية التى ثبت نجاحها فى‬ ‫‪‬‬

‫نمذجة النظم الكبيرة والمعقدة‬


‫تقدم ‪ UML‬رموز مبسطة تستخدم كوسيلة للتعبير عن مختلف نماذج العمل البرمجي‪,‬يسهل بواسطتها على‬ ‫‪‬‬
‫ذوي العالقة من محللين‪,‬مصممين‪,‬مبرمين و زبائن التخاطب في ما بينهم وتمرير المعلومات في صيغة‬
‫نمطية موحدة وموجزة‪,‬تغنيه عن الوصف اللغوي المعتاد‪.‬‬

‫وه ى جزء مه م م ن التطوي ر الكائن ى المنح ى ‪ Object Oriented‬لل برمجيات وعمليات تطوي ر‬ ‫‪‬‬

‫البرمجيات‪.‬‬
‫ال تعت بر لغ ة النمذج ة الموحدة ‪UML‬منهجي ة لبناء أ و تص ميم ال برمجيات وتطويرها‪ .‬بمعنـى أنهـا لـن‬ ‫‪‬‬

‫ترشدك إلى أفضل الطرق لتصميم البرمجيات و تطويرها‪.‬‬


‫تعتـبر ‪ UML‬مثـل مخططات البناء أـو مخططات الدوائـر الكهربائيـة واإللكترونيـة التـي يمكـن ألـي احـد فـي هذا‬ ‫‪‬‬

‫المجال فهمها والتعامل معها‬

‫لغة ‪ - UML‬لغة عامة تسمح بالتقاط المفاهيم األساسية لتطوير البرمجيات و‪ ‬وضعها على "ورقة"‪.‬‬ ‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪8‬‬


‫ما هي ‪ UML‬؟‬

‫‪UML‬‬ ‫‪ ‬لغة النمذجة الموحدة‪(Unified Modeling‬‬


‫)‪:Language‬‬

‫ه‪A‬ي لغ‪A‬ة نمذج‪A‬ة رس‪A‬ومية تقدم لن‪A‬ا ص‪A‬يغة لوص‪A‬ف العناص‪A‬ر الرئيس‪A‬ية‬
‫للنظم البر‪A‬مجية‪.‬‬

‫(هذه العناصر تس ّمى ‪ artifacts‬مشغوالت في ‪.)UML‬‬ ‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪9‬‬


‫مميزات ‪UML‬‬
‫‪ UML -1‬تقدم رموزا بسيطة إلنتاج نماذج يسهل على المحللين والمصممين والمبرمجين‬
‫والعمالء التخاطب فيما بينهم بتمرير المعلومات في صيغة نمطية موحدة موجزة‪.‬‬

‫‪ UML -2‬تعطي صورة كاملة عن البرنامج المراد تصميمه مما يسهل عملية تصور البرنامج‬
‫كامال ويسهل صيانته‪.‬‬

‫‪ -3‬يمكن توزيع المخططات على المبرمجين إلنجاز برنامج مما يسرع في عملية إنشاء البرامج‪.‬‬
‫كذلك يسهل فهم البرنامج في حالة الرجوع لهذه المخططات بعد فترة‬

‫‪ UML -4‬ثبت نجاحها في نمذجة النظم الكبيرة وهي جزء مهم من التطوير الكائني المنحى‬
‫للبرمجيات ‪ OO Software‬وعمليات تطوير البرمجيات‬

‫‪ UML -5‬تزود المستخدمين بلغة جاهزة االستخدام للنمذجة المرئية لتطوير وتبادل نماذج‬
‫ذات معنى وال تعتمد على لغة بعينها‬

‫‪10‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪10‬‬
‫‪UML‬‬
‫تعريف بطبقات ‪UML‬‬
‫ال ترتب ط لغ ة النمذج ة الموحدة ‪UML‬بمنهجي ة أ و طرق إنتاج ال برمجيات‪ ،‬ويمك ن‬ ‫‪‬‬

‫توظيف هذه اللغة على مختلف العمليات البرمجية بغض النظر عن المنهجية المتبعة‪.‬‬

‫تتألف لغة النمذجة الموحدة ‪ UML‬من أربع طبقات أساسية تقسم كل طبقة بدورها إلى‬ ‫‪‬‬

‫طبقات فرعية وهى بناء على التجريد تقسم إلى‪:‬‬

‫طبقة كائنات المستخدم ‪User Objects Layer‬‬ ‫‪‬‬

‫الطبقة الثانية تسمى طبقة النموذج ‪Model Layer‬‬ ‫‪‬‬

‫الطبقة الثالثة‪ :‬طبقة ما وراء النموذج ‪Meta Model Layer‬‬ ‫‪‬‬

‫الطبقة الرابعة‪ :‬طبقة ما وراء ما وراء النموذج ‪Meta meta model layer‬‬ ‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪11‬‬


‫‪ .1‬طبقة كائنات المستخدم‬
‫‪User Objects Layer‬‬
‫هى الطبقة السطحية العامة التى يستخدمها الذين يتعاملون مع لغة النمذجة الموحدة ‪UML‬‬ ‫‪‬‬

‫وتتألف من تسعة مخططات رئيسية باإلضافة إلى كائنات وأدوات مساعدة‪.‬‬ ‫‪‬‬

‫وهى الطبقة األكثر وضوحاً وتوصيفاً‪.‬‬ ‫‪‬‬

‫والمس تخدم هن ا المقص ود ه و مس تخدم اللغ ة ولي س المس تخدم النهائ ى للبرمجي ة أ و المنت ج‬ ‫‪‬‬

‫البرمجى‪.‬‬
‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪12‬‬


‫‪ .1‬طبقة كائنات المستخدم‬
‫‪User Objects Layer‬‬
‫المخططات التسعة التالية‪:‬‬ ‫‪Objects Layer‬‬ ‫تشمل الطبقة األولى طبقة كائنات المستخدم‬ ‫‪‬‬

‫مخطط حاالت الستخدام‪USE CASE Diagram.‬‬ ‫‪.1‬‬

‫مخطط الفئة‪CLASS Diagram .‬‬ ‫‪.2‬‬

‫مخطط النشاط‪ACTIVITY Diagram.‬‬ ‫‪.3‬‬

‫مخطط التعاون‪COLLABORATION Diagram.‬‬ ‫‪.4‬‬

‫مخطط الحالة‪STATE Diagram.‬‬ ‫‪.5‬‬

‫مخطط التتابع‪SEQUENCE Diagram.‬‬ ‫‪.6‬‬

‫مخطط المكونات‪ .‬مخطط التحزيم ‪Diagram packaging‬‬ ‫‪.7‬‬

‫‪COMPONENT Diagram‬‬ ‫‪.8‬‬

‫مخطط التوزيع او التجهيز‪DEPLOYMENT Diagram.‬‬ ‫‪.9‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪13‬‬


‫مخططات ‪UML‬‬
‫"ما هي الصنفيات ‪-‬الفئات التي سنحتاجها؟ والعالقات بينها؟‬
‫‪static class structure‬‬ ‫‪ -1‬مخطط الفئة (‪)Class Diagram‬‬
‫"ك‪A‬يفس‪AA‬يتفاعل ن‪AA‬ظامنا مع‪ A‬ا‪AA‬لع‪A‬ا‪AA‬لم‪ A‬ا‪AA‬لخارجي؟"‬
‫‪ -2‬مخطط حاالت االستخدام (‪)Use Case Diagram‬‬
‫‪relation of actors to system functions‬‬
‫”ما الحاالت التي يجب أن تكون عليها الكائن؟"‬
‫‪ -3‬مخطط الحالة (‪)State Diagram‬‬
‫‪states of objects in a particular class‬‬
‫”كيفية تتابع األنشطة داخل حالة استخدام معينة؟“‬ ‫‪ -4‬مخطط النشاط (‪)Activity Diagram‬‬
‫‪sequential flow of activities‬‬
‫"كيفية تتابع الرسائل بين الكائنات؟”‬
‫‪ -5‬مخطط التتابع (‪)Sequence Diagram‬‬
‫‪message passing structure‬‬
‫"كيف تتعامل الكائنات مع بعض سياق‬
‫‪ -6‬مخطط االتصال والتعاون( ‪Collaboration‬‬
‫العالقات؟“‪Context‬‬
‫‪)Diagram‬‬
‫"كيف سترتبط مكونات البرنامج؟“‪code‬‬
‫‪ -7‬مخطط المكونات (‪)Components Diagram‬‬
‫‪structure‬‬
‫"كيف سنقوم بقولبة العمل؟"‬ ‫‪ -8‬مخطط التحزيم (‪)Package Diagram‬‬

‫"كيف سيتم تجهيز البرنامج؟“‬ ‫‪ -9‬مخطط التجهيز (‪)Deployment Diagram‬‬


‫‪mapping of software to hardware‬‬
‫‪14‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪14‬‬
‫‪UML‬‬
‫الطبقة الثانية تسمى طبقة النموذج‬
‫‪Model Layer‬‬
‫وتكون فى المراحل األولى من التحليل ‪Analysis‬‬ ‫‪‬‬

‫تحتوى عل ى مفاهي م موضوع التحلي ل كفه م النظام بشك ل عام أ و‬ ‫‪‬‬

‫مجال التحليل أو مجال النظام‪.‬‬

‫يس تخدم هذه الطبق ة(الثانية‪-‬النموذج) محلل النظام ‪System‬‬ ‫‪‬‬

‫‪ Analyst‬أثناء عمل ه قب ل نض ج أ و وضوح فكرة النظام بتوص يف‬


‫أقل من طبقة المستخدم األولى‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪15‬‬


‫الطبقة الثالثة‪ :‬طبقة ما وراء النموذج‬
‫‪Meta Model Layer‬‬
‫وتعنى هذه الطبقة بالمفاهيم المتعلقة بلغة النمذجة الموحدة ‪ UML‬كمفهوم الصنف‬ ‫‪‬‬

‫‪ Class‬والظاهرة ونوع البيانات والتجريد ‪ Abstraction‬واألنماط ‪Design‬‬


‫‪ )Patterns- modules‬وغيرها من مفاهيم لغة ‪.UML‬‬
‫تصف طبقة ما وراء النموذج ما يجرى فى النموذج ‪. Model‬‬ ‫‪‬‬

‫تتألف من ثالث حزم رئيسية هى‪:‬‬ ‫‪‬‬

‫حزم ة األس اس ‪:‬تتكون م ن حزم ة ل ب وحزم ة عناص ر مس اعدة وحزم ة انواع ال بيانات وحزم ة‬ ‫‪‬‬

‫اليات التوسيع والتمديد‪.‬‬


‫حزمة العناصر السلوكية‪:‬المفاهيم االساسية للعناصر الديناميكية وتشمل حزمة التعاونات وحزمة‬ ‫‪‬‬

‫حاالت االستخدام وحزمة االت الحالة والسلوك العام‪.‬‬


‫حزمة إدارة النموذج‪.‬‬ ‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪16‬‬


‫الطبقة الرابعة‪ :‬طبقة ما وراء ما وراء النموذج‬
‫‪Meta meta model layer‬‬
‫طبق ة م ا وراء م ا وراء النموذج ال ته م معظ م محللى النظم‪System‬‬ ‫‪‬‬

‫‪. Analysts‬‬

‫تشكل أساس لغة ‪ UML‬وتهتم بلغة كتابة النمذجة الموحدة‪.‬‬ ‫‪‬‬

‫ته م مطورى ‪ Developers CASE Tools‬أدوات لغة النمذجة الموحدة‬ ‫‪‬‬

‫مثل البرامج التى تؤتمت المخططات وترسمها ‪.CASE Tools‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪17‬‬


‫مكونات لغة النمذجة الموحدة‬
‫‪UML Components‬‬
‫تحتوى على عدد من العناصر الرسومية التى تدمج مع المخططات‪.‬‬ ‫‪‬‬

‫وألنها لغة فإن لها قواعدها فى دمج هذه العناصر‪.‬‬ ‫‪‬‬

‫أن الهدف من المخططات هو تقديم النظام من وجهات نظر متعددة‪.‬‬ ‫‪‬‬

‫وهذه المجموعة المتعددة من وجهات النظر تسمى بالنموذج ‪UML‬‬ ‫‪‬‬

‫‪.Model‬‬
‫فنموذج لغ ة النمذج ة الموحدة ‪UML Model‬يص ف م ا المفروض‬ ‫‪‬‬

‫أن يفعله النظام‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪18‬‬


‫‪ .1‬طبقة كائنات المستخدم‬
‫‪User Objects Layer‬‬
‫المخططات التسعة التالية‪:‬‬ ‫‪Objects Layer‬‬ ‫تشمل الطبقة األولى طبقة كائنات المستخدم‬ ‫‪‬‬

‫مخطط حاالت الستخدام‪USE CASE Diagram.‬‬ ‫‪.1‬‬

‫مخطط الفئة‪CLASS Diagram .‬‬ ‫‪.2‬‬

‫مخطط الكائن ‪Diagram Object‬‬ ‫‪.3‬‬

‫مخطط النشاط‪ACTIVITY Diagram.‬‬ ‫‪.4‬‬

‫مخطط التعاون‪COLLABORATION Diagram.‬‬ ‫‪.5‬‬

‫مخطط الحالة‪STATE Diagram.‬‬ ‫‪.6‬‬

‫مخطط التتابع‪SEQUENCE Diagram.‬‬ ‫‪.7‬‬

‫مخط ط المكونات‪ -COMPONENT Diagram -.‬مخط ط التحزي م ‪Diagram‬‬ ‫‪.8‬‬

‫‪packaging‬‬
‫مخطط التوزيع او التجهيز‪DEPLOYMENT Diagram.‬‬ ‫‪.9‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪19‬‬


‫مفهوم المنحى الكائني‬
‫‪Object Oriented‬‬
‫المنحى الكائني ‪ Object Oriented‬طريقة تفكير تختلف عن االتجاه المهيكل‬ ‫‪‬‬

‫‪. Functional programming‬‬

‫نقوم بالجمع بين البيانات ‪ Attributes‬و التصرفات ‪ Behavior‬ذات العالقة )‬ ‫‪‬‬

‫‪ Methods‬وظائف) داخل صنفيات ‪.Classes‬‬

‫ثم يقوم برنامجنا بخلق ‪ create‬تجسّدات‪/‬تمثالت ‪ class of instances‬لهذه‬ ‫‪‬‬

‫الصنفية – الفئة أو بعبارة أخرى‪ :‬إنشاء كائنات ‪ objects‬الصنفية‬

‫الكائنات يمكنها التعاون مع بعضها البعض‪ ،‬من خالل مخاطبة النهجيات ‪. methods‬‬ ‫‪‬‬

‫البيانات في الكائن مغلّفة ‪ Encapsulated‬و ال يقوم بتعديلها إال الكائن نفسه‪.‬‬ ‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪20‬‬


‫وتحتوى اللغة على تسعة نماذج أساسية هى‬

USE CASE Diagram.‫مخطط حاالت الستخدام‬ .1


Structure-
static CLASS Diagram .‫مخطط الفئة‬ .2

Diagram Object ‫مخطط الكائن‬ .3

STATE Diagram.‫مخطط الحالة‬ .4

ACTIVITY Diagram.‫مخطط النشاط‬ .5


interaction
COLLABORATION Diagram.‫مخطط التعاون‬ .6

SEQUENCE Diagram.‫مخطط التتابع‬ .7

‫ او مخطط التحزيم‬.COMPONENT Diagram ‫مخطط المكونات‬ .8

Diagram packaging
Physical- DEPLOYMENT Diagram.‫مخطط التوزيع او التجهيز‬ .9
impleme
2010 ‫سميرة ابوغليون‬.‫أ‬ 21
ntation
‫‪UML Views and Diagrams‬‬
‫يمكن تقسيم مخططات ‪ UML‬إلى ‪ 3‬أنواع (رؤى‪-‬منظور ‪)Views‬‬
‫رؤية ساكنة‬
‫‪static view .1‬‬
‫• وهي تمثل النظام من منظور ساكن أي وضع متطلبات النظام من المعطيات في صورة‬
‫نموذج‪ Structure Diagram .‬مخططات الهيكلية او التركيب‬

‫• وتحتوي هذه الرؤية على مخطط الصفوف‪-‬الفئات (‪ ) class diagram‬الذي يمثل‬


‫صفوف –فئات النظام ‪ classes‬والعالقات ‪ Relationships‬بينها‬
‫‪use case view Behavioral Diagram .2‬‬
‫• رؤية حاالت االستخدام التي تمثل النظام من منظور عملياتي(وظائف) ‪.‬‬

‫• أي وضع متطلبات النظام الوظيفية في صورة نموذج‪.‬‬

‫• وتحتوي هذه الرؤية على مخطط حاالت االستخدام (‪ ) use case diagram‬الذي‬
‫يمثل وظائف النظام والعالقات بينها‪.‬‬
‫‪22‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪22‬‬
‫‪UML Views and Diagrams‬‬
‫يمكن تقسيم مخططات ‪ UML‬إلى ‪ 4‬أنواع (رؤى)‬
‫‪dynamic view .3‬‬
‫• رؤية ديناميكية التي تمثل النظام من منظور ديناميكي‬

‫• أي تنمذج سلوك النظام والتغيرات التي تطرأ على كيانات النظام‪.‬‬

‫• وتحتوي هذه الرؤية على مخطط الحالة ‪Diagram - Behavioral state‬‬


‫‪ )diagram‬ومخطط النشاط (‪)activity diagram Behavioral Diagram‬‬
‫ومخططات التعاون (‪sequence &collaboration- interaction‬‬
‫‪.)diagram‬‬
‫‪Physical Diagrams .4‬‬
‫هناك نوعان من هذه المخططات ‪Component & Deployment‬‬
‫‪Structural Diagram‬‬
‫‪23‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪23‬‬
‫‪UML Views and Diagrams‬‬
‫يمكن تقسيم مخططات ‪ UML‬إلى ‪ 4‬أنواع (رؤى)‬
‫ا‪AA‬لمخططاتا‪AA‬لفيزيائية ‪ -Structure Diagram‬مخططات‬ ‫‪Physical Diagrams .4‬‬
‫ا‪AA‬لهيكلية او ا‪AA‬لتركيب‬

‫•هناك نوعان من هذه المخططات‬


‫•اوال ‪ -‬مخططات المكونات ‪ Component Diagram‬او التحزيم ‪ :‬توضح مكونات‬
‫البرمجيات وعالقتها مع بعضها البعض‪ .‬تحتوي على المكونات التي تمثل التحزيم‬
‫الطبيعي لوحدة من الشيفرة ‪ Modules‬واالعتمادات ‪ Dependencies‬بينها وكيف‬
‫يؤثر التغيير في احدها على االخر‪.‬‬

‫•‬

‫‪24‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪24‬‬
‫‪UML Views and Diagrams‬‬
‫يمكن تقسيم مخططات ‪ UML‬إلى ‪ 4‬أنواع (رؤى)‬
‫ا‪AA‬لمخططاتا‪AA‬لفيزيائية ‪ -Structure Diagram‬مخططات‬ ‫‪Physical Diagrams .4‬‬
‫ا‪AA‬لهيكلية او ا‪AA‬لتركيب‬
‫•هناك نوعان من هذه المخططات‬
‫•‪-‬ثانيا‪ :‬مخطط التجهيز ‪ : Deployment Diagram‬العالقة بين العتاد‬
‫والبرمجيات ويحتوي على ‪ Nodes‬عقد ) ‪ HW‬عتاد مادي (ووصالت‬
‫‪( Connections‬مسار اتصال مثل ‪) TCP/IP‬‬
‫•تستخدم المخططات الفيزيائية عند اكتمال التطوير للنظام‪ ،‬تستخدم إلعطاء وصف‬
‫للمعلومات الفيزيائية للنظام‪.‬‬
‫• في الغالبية تدمج مخططات التوزيع والمكون في نموذج واحد‬

‫‪25‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪25‬‬
‫‪26‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪26‬‬
‫‪UML Views and Diagrams‬‬
‫يمكن تقسيم مخططات ‪ UML‬إلى ثالث أنواع (رؤى)‬
‫‪1- static view‬‬
‫رؤية ساكنة وهي تمثل النظام من منظور ساكن أي وضع متطلبات النظام من المعطيات في صورة نموذج‪.‬‬
‫وتحتوي هذه الـرؤية على مخطط الصفوف (‪ ) class diagram‬الذي يمثل صفوف النظام والعالقات بينها‬

‫‪2- use case view‬‬


‫رؤية حاالت االستخداـم التي تمثل النظام من منظور عملياتي أي وضع متطلبات النظام الوظيفية في صورة‬
‫نموذج‪ .‬وتحتوي هذه اـلرؤية على مخطط حاالت االستخدام (‪ ) use case diagram‬الذي يمثل وظائف‬
‫النظام والعالقات بينها‪.‬‬
‫‪3- dynamic view‬‬

‫رؤية ديناميكية اـلتي تمثل النظام من منظور ديناميكي أي تنمذج سلوك التظام والتغيرات التي تطرأ على كيانات‬
‫النظام‪ .‬وتحتوي هذه الرؤية على مخطط الحالـة (‪ ) state diagram‬ومخطط النشاط (‪)activity diagram‬‬
‫ومخطط التعاون (‪.)interaction diagram‬‬
‫‪27‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪27‬‬
‫أنواع مخططات لغة النمذجة الموحدة‬
‫النمذجة الساكنة‬
‫‪UML Diagrams-static modeling‬‬
‫تمثـل وجهـة النظ‪A‬ر الس‪A‬اكنة للنظام ‪ Static view‬وتمثـل مـا يحدث ومـن يشارك فـي‬ ‫‪.1‬‬

‫الحدث والمكونات الرئيسية للنظام والحاالت االساسية التي يمر بها‪.‬‬

‫تمثل من خالل ثالث مخططات‪:‬‬ ‫‪.2‬‬

‫مخطط حالة االستخدام ‪Behavioral Diagram Use case Diagram‬‬ ‫‪.1‬‬

‫‪ Class Diagram‬مخطط ا‪AA‬لفئات‪Structural Diagrams -‬‬ ‫‪.2‬‬

‫‪ Object diagram‬مخطط ا‪AA‬لكائن‪Structural Diagrams‬‬ ‫‪.3‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪28‬‬


‫أنواع مخططات لغة النمذجة الموحدة‬
‫وجهة النظر الساكنة‬
‫‪UML Diagrams-static View‬‬

‫مخطط حاالت الستخدام‪USE CASE Diagram UCD:Behavioral Diagram.‬‬ ‫‪.1‬‬

‫تعرض العالق ة بي ن الفعل ة(جم ع فاع ل) ‪ actors‬وحاالت االستخدام ‪use‬‬ ‫‪‬‬

‫‪. Cases‬‬
‫هي مجموعة من السيناريوهات التي تصف التفاعل بين المستخدم والنظام‬ ‫‪‬‬

‫هي وصف لسلوك النظام من وجهة نظر المستخدم‪.‬‬ ‫‪‬‬

‫فهي ذات فائدة خالل مراحل التحليل و التطوير‪ ،‬و تساعد في فهم المتطلبات‪.‬‬ ‫‪‬‬

‫المطورين (مح ّللون‪ ،‬مص ّممون‪،‬‬


‫ّ‬ ‫يكون المخطط سهال لالستيعاب من قبل‬ ‫‪‬‬
‫مبرمجون‪ ،‬مختبرون) و المستفيدين (الزبون) من‬
‫مخطط حاالت الستخدام بإمكانها أن تحتمل كامل عمليات التطوير ‪ ،‬بدءا من‬ ‫‪‬‬
‫االستهالل و حتى التسليم‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪29‬‬


‫مخطط واقعة‪-‬حالة استخدام ‪The Use Case‬‬
‫)‪Diagram(UCD‬‬

‫كل ‪ Use Case‬تمثل وظيفة من وظائف النظام وبالتالي يتضمن هذا‬ ‫‪‬‬
‫المخطط ‪:‬‬
‫عرض للوظائف االساسية المطلوبة دون تفصيل لكل خاصية من النظام‪.‬‬ ‫‪‬‬

‫المستخدم ‪ actor‬الذي يقوم بطلب هذه الوظيفة (قد يكون نظام آخر)‪.‬‬ ‫‪‬‬

‫حدود النظام ‪, system boundary‬‬ ‫‪‬‬

‫العالقات بين حاالت االستخدام ‪ Use Cases‬والروابط بين الفعلة وحاالت‬ ‫‪‬‬
‫االستخدام ‪Use Cases‬‬
‫يساعدنا على بناء ‪ Use case diagram‬فهم سيناريو العمل‬ ‫‪‬‬
‫‪ Scenarios‬والذي نحصل عليه من مستخدم النظام‪ .‬ولكنها ال توضح‬
‫ترتيب تتابع حاالت االستخدام حسب الزمن فهي تتعامل مع بعد افقي واحد‬
‫وهي الوظائف االساسية‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪30‬‬


‫رموز مخطط حالة استخدام ‪The Use Case Diagram‬‬
‫‪UCD notations‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪31‬‬


‫حالة استخدام لمحكمة الصحة العقلية ‪The Use Case‬‬
‫‪Diagram UCD notations‬‬
‫نموذج استخدام الحالة‬

‫نظام قاعدة بيانات ‪FAST‬‬

‫إدارة التسجيل‬

‫الطبيب‬ ‫عامل االستقبال‬

‫التشخيص المزمع‬

‫التوجيه‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪32‬‬


‫وصف سيناريو حالة استخدام لمحكمة الصحة العقلية ‪The Use‬‬
‫‪Case Description UC‬‬
‫استخدام الحالة‪ :‬إدارة التسجيل‬ ‫‪‬‬

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

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪33‬‬


‫انواع العالقات لحالة استخدام ‪The Use Case Diagram‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪34‬‬


‫امثلة على انواع الفعلة ‪Actors The Use Case Diagram‬‬
‫والفئات الموظفين والتعميمات لخصائصها‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪35‬‬


‫قالب حالة االستخدام او وصف حالة االستخدام ‪Use Case‬‬
‫‪Description‬‬

‫ا‪AA‬الستخدا‪A‬م‪ A‬ا‪A‬سم‪ A‬ح‪A‬ا‪AA‬لة ‪use case Name :‬‬


‫ا‪AA‬لفاعل ‪Actor :‬‬
‫‪ :‬ا‪AA‬لشروط ا‪AA‬لسابقة ‪Pre-conditions‬‬

‫‪ :‬ا‪AA‬لشروط ا‪AA‬لالحقة ل‪AA‬لحركة‪Post-conditions‬‬

‫‪ :‬ا‪AA‬له‪A‬دفمنح‪A‬ا‪AA‬لة ا‪AA‬الستخدا‪A‬م‪ - A‬ا‪AA‬لمبررا‪A‬ت‪Purpose‬‬

‫وصفا‪AA‬لسيناريو –ا‪AA‬لتدف‪A‬قاتا‪AA‬لطبيعية ا‪AA‬لصحيحة‪Description:‬‬


‫‪1.‬‬
‫‪2.‬‬
‫‪3.‬‬ ‫‪..............‬‬
‫وصفا‪AA‬لتدف‪A‬قاتا‪AA‬لبديلة“ أ‪A‬يعند عدم‪ A‬ت‪AA‬حققا‪AA‬لظروفا‪AA‬لطبيعية ل‪AA‬لحدث‪Alternative courses:‬‬

‫ا‪AA‬الخطاء وكيفية مع‪A‬ا‪AA‬لجته‪A‬ا رسائل‪Errors:‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪36‬‬


ATM- Withdraw From Current
‫لي‬A‫ال‬A ‫فا‬A‫لصرا‬AA‫يا‬AAA‫لجاريف‬AA‫لحسابا‬AA‫لسحبمنا‬AA‫يناريو) ل‬AA‫(س‬A‫م‬A‫الستخدا‬AA‫لة ا‬AA‫ا‬A‫وصفح‬
‫ اسم حالة االستخدام‬use case Name : Withdraw From Current‫السحب من الحساب الجاري‬
‫الفاعل‬Actor : Client‫الزبون‬
Pre-conditions ‫لسابقة‬AA‫لشروط ا‬AA‫ ا‬: User already logged-in A‫لنظام‬AA‫لىا‬AA‫خل ا‬A‫ دا‬A‫لمستخدم‬AA‫ا‬
A menu is active with ‘withdraw ‫لقائمة‬AA‫لسحب’ ا‬AA‫خيار ا‬AA‫مفعلة ب‬
Post-conditions‫لحركة‬AA‫لالحقة ل‬AA‫لشروط ا‬AA‫ ا‬: Amount is deducted from user’s account‫ساب‬A‫حبتمنح‬AA‫لكاشس‬AA‫مية ا‬A‫ك‬
A‫لزبونوحسمتمنه‬AA‫ا‬
Purpose‫ت‬A‫لمبررا‬AA‫دف ا‬A - ‫له‬AA‫ ا‬: To allow the client to withdraw money‫لكاشدون‬AA‫حبا‬AA‫لزبونمنس‬AA‫تمكينا‬AA‫ل‬
‫الحاجة الى الذهاب للبنك‬
Description:‫لسيناريو‬AA‫وصفا‬
(1) Client initiates this usecase by selecting ‘withdraw’‫لسحب‬AA‫خيار ا‬AA‫ ل‬A‫ختياره‬A‫ عند ا‬A‫م‬A‫الستخدا‬AA‫لة ا‬AA‫ا‬A‫لزبونح‬AA‫بدأ ا‬AA‫ي‬
(2) System get all the accounts (use case get Account) ‫لزبون‬AA‫سابا‬A‫لزبوناو ح‬AA‫ساباتا‬A‫ ح‬A‫ميع‬A‫ ج‬A‫سترجع‬AA‫ ي‬A‫لنظام‬AA‫ا‬
(3) System displays all the accounts and prompts to select any one ‫لزبون‬AA‫لحساباتل‬AA‫ ا‬A‫ميع‬A‫رضج‬A‫ع‬AA‫ ي‬A‫لنظام‬AA‫ا‬
A‫لسحبمنه‬AA‫جراء عملية ا‬A‫حد ال‬A‫ختيار وا‬A‫لزبونا‬AA‫وينتظر منا‬
(3) Client selects one account ‫حد‬A‫سابوا‬A‫ختار ح‬AA‫لزبوني‬AA‫ا‬
(4) System prompts for the amount ‫لمحدد‬AA‫لحسابا‬AA‫ منا‬A‫حبه‬AA‫لمراد س‬AA‫لكاشا‬AA‫مية ا‬A‫حديد ك‬AA‫طلبت‬AA‫ ي‬A‫لنظام‬AA‫ا‬
(5) Client indicate an amount‫لكمية‬AA‫حدد ا‬AA‫لزبوني‬AA‫ا‬
(6) System issues money, update record, and confirms ‫لة اذا‬AA‫رسا‬AA‫لسجل ويؤكد ب‬AA‫لكاشويحدثا‬AA‫مية ا‬A‫رسل ك‬AA‫ ي‬A‫لنظام‬AA‫ا‬
‫خرى‬A‫حركاتا‬AA‫ ب‬A‫لقيام‬AA‫لزبونا‬AA‫اراد ا‬
Alternative courses:‫لبديلة‬AA‫قاتا‬A‫لتدف‬AA‫ا‬
(3) & (4) System selects the only one available account 4& 3 A‫م‬A‫دل رق‬AA‫ب‬
‫النظام يختار الحساب الوحيد الموجود للزبون‬
(6) requested amount is bigger than balance, system display message ‫كبر من‬A‫لكاشا‬AA‫لمطلوبة منا‬AA‫لكمية ا‬AA‫ا‬
‫خرى‬A‫لكمية مرة ا‬AA‫لا‬AA‫عادة ادخا‬AA‫طأ ال‬A‫لة خ‬AA‫ رسا‬A‫لنظام‬AA‫رسل ا‬AA‫لرصيد ي‬AA‫ا‬
Errors:‫الخطاء‬AA‫ا‬

Issue Cash?
2010 ‫سميرة ابوغليون‬.‫أ‬ 37
‫مثال قالب حالة االستخدام او وصف حالة االستخدام ‪Use Case‬‬
‫‪ Description‬للتحقق من الدخول للمستخدم‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪38‬‬


‫مثال قالب مخطط النشاط للتحقق من الدخول للمستخدم (المثال السابق)‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪39‬‬


‫مخطط حالة استخدام ‪The Use Case Diagram‬‬
‫مثال لحالة استخدام في نظام طلبيات‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪40‬‬


‫مخطط حالة االستخدام‪ -‬نظام تسجيل ‪Registration Sys‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪41‬‬


‫‪Use-case diagram for a university registration system‬‬
‫مخطط حـاــلة اــالستخداـمـ لــنظامـ اــلتسجيلفـــيجـامعـة‬

‫تسجيل محاضرات‬

‫موظف التسجيل‬

‫تسجيل محاضرات خاصة‬ ‫التأكد من انهاء‬


‫الطالب‬ ‫المتطلبات السابقة‬

‫دفع الفاتورة الطالب‬

‫أمين الصندوق‬ ‫المحاضر‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪42‬‬


‫‪The Use-Case Diagram for‬‬
‫‪Appointment System‬‬
‫مواـعيد مراـجعـاتاــلعيادة‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪43‬‬


Use case with Extends and Includes

2010 ‫سميرة ابوغليون‬.‫أ‬ 44


‫‪Components of Use-Case Diagram‬‬
‫رموز حـاــلة اــالستخداـمـ‬
‫تستخدم لتمثيل الفاعل ‪ actor‬قد يكون شخص او نظام اخر ومعنون بالدور الذي يؤديه في‬
‫النظام‪ ،‬ممكن ان يرتبط بفعلة اخرين من خالل عالقة االرتباط ‪super class‬‬
‫‪ association‬ي‪AA‬عبر عنه‪A‬ا ب‪AA‬سهم‪ A‬ي‪AA‬قع‪ A‬خ‪A‬ارج ح‪A‬دود ا‪AA‬لنظام‪A‬‬

‫تستخدم لتمثيل حالة االستخدام االساسية ومعنونة بفعل ‪ ،‬تكون داخل حدود النظام‬
‫ممكن ان تتضمن حالة استخدام اخرى او تتوسع لحالة اخرى ذات سلوك اختياري ‪.‬‬

‫تستخدم لتمثيل حدود النظام ومجاله وتحتوي في االعلى على اسم النظام ‪.‬‬

‫‪ Association :‬تستخدم لربط الفاعل ‪ Actor‬ام مع حالة االستخدام التي يتفاعل معها‬

‫تستخدم لبيان ان وظيفة حالة االستخدام الفرعية متضمنة داخل حلة االستخدام االساسية ويعبر‬
‫عنها بسهم من حالة االستخدام االساسية باتجاه حالة االستخدام الفرعية ‪.‬‬

‫تستخدم لتوسيع حالة االستخدام االساسية لتتضمن سلوك اختياري ‪ .‬ويعبر عنها بسهم من حالة‬
‫االستخدام التوسعية ‪ extension use case‬باتجاه حالة االستخدام االساسية ‪base‬‬
‫‪.usecase‬‬
‫عالقة التعميم ‪ generalization‬تستخدم لتمثيل حالة استخدام خاصة من االساسية العامة‬
‫ويعبر عنها بسهم من حالة االستخدام خاصة ‪ specialized use case‬باتجاه حالة‬
‫االستخدام االساسية ‪.base usecase‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪45‬‬
‫هذا المخطط‬ ‫‪Use case for camera sys‬‬
‫صحيح ألنه‬
‫يتعامل مع‬
‫حالة استخدام‬
‫مخطط حـاــلة اــالستخداـمـ لــكاميرا‬
‫عالية التجريد‬
‫‪high-level‬‬
‫‪use case,‬‬
‫‪"Take‬‬
‫‪."picture‬‬
‫وهي التقاط‬
‫صورة‬

‫هذا المخطط‬
‫غير صحيح‬
‫ألنه يبين ان‬
‫المصور يفتح‬
‫غطاء الكاميرا‬
‫المتحرك‬
‫ويضيء‬
‫فالش ثم يغلق‬
‫فتحة العدسة‬
‫دون التقاط‬
‫صورة‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪46‬‬
‫أنواع مخططات لغة النمذجة الموحدة‬
‫النمذجة الساكنة‬
‫‪UML Diagrams -static modeling‬‬

‫مخطط الفئة‪CLASS Diagram : Structural Diagrams‬‬ ‫‪.2‬‬

‫يمكن وضع األشياء ضمن أصناف ‪. Classes‬‬ ‫‪.2‬‬

‫مهمة ال ‪ Class diagram‬توضيح هذه األصناف ‪Classes‬‬ ‫‪.3‬‬


‫والعالقات ‪ associations‬فيما بينها‬
‫رسم مخططات األصناف‪-‬الفئات او الصفوف ‪ Classes‬جانب أساسي‬ ‫‪.4‬‬
‫ألي منهج للتصميم بالمنحى للكائن‬

‫لكل صنف ‪: Class‬‬ ‫‪.5‬‬


‫اسم ‪class name‬‬ ‫‪‬‬

‫مميزات ‪attributes‬‬ ‫‪‬‬

‫عمليات ‪ operations‬وأحيانا ً نسميها ‪Methods‬‬ ‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪47‬‬


‫أنواع مخططات لغة النمذجة الموحدة‬
‫النمذجة الساكنة‬
‫‪UML Diagrams -static modeling‬‬

‫مخطط الفئة‪CLASS Diagram : Structural Diagrams‬‬ ‫‪.2‬‬

‫ينمذج هيك ل الفئة ‪ Class Structure‬والمحتويات ‪CONTENT‬‬ ‫‪‬‬

‫) ‪ ) (methods, attributes‬باس تخدام عناص ر التص ميم مثل الفئات‬


‫‪ Classes‬والحزم ‪ Packages‬والكائنات ‪Objects‬‬

‫يعرض أيضاً العالقات و المحتوى ‪ containment‬والوراثة ‪Inheritance‬‬ ‫‪‬‬

‫واالرتباطات ‪ Associations‬وغيرها‪.‬‬

‫تستخدام مخطط الصنفيات‪ -‬الفئات ‪ CLASS Diagram‬في مرحلة التحليل و‬ ‫‪‬‬

‫مرحلة التصميم‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪48‬‬
‫مخطط الفئة لنظام التدريب لدورات‪CLASS Diagram‬‬

‫رؤية ديناميكية‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪49‬‬


‫مخطط الفئة‪CLASS Diagram‬لنظام التعليم االلكتروني‪elearning sys‬‬

‫رؤية ديناميكية‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪50‬‬


‫مخطط الفئة‪CLASS Diagram‬‬
‫نظام تعامالت االوراق المالية‬

‫يمتلك‬ ‫سندات وأوراق تجارية‬ ‫يعالج‬


‫التاجر‬

‫يحتوي‬
‫على‬
‫رؤية ديناميكية‬

‫ادوات‬

‫سند بدين او صك تأمين‪ ،‬كفالة‬ ‫اسهم‬


‫خيارات االسهم‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪51‬‬


‫العالقات بين الفئات ‪Associations‬‬
‫مخطط الفئة‪CLASS Diagram‬‬

‫االعتمادية‬

‫التعميم‬

‫االرتباط او العالقة‬

‫التجميع نوع من انواع‬


‫االرتباط او العالقة‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪52‬‬
‫لعالقات‬A‫ا‬Relationships-
)‫العتمادية‬AA‫ (ا‬Dependency 

)A‫لتعميم‬AA‫ (ا‬Generalization 

)‫(االقتران‬Association 

)A‫لتجميع‬AA‫ (ا‬Aggregation 

) ‫لتركي‬AA‫ (ا‬Composition
‫ب‬ 

)‫ددية‬A‫لتع‬AA‫ (ا‬Multiplicity 

) ‫ا‬A‫جه‬A‫لوا‬AA‫ (ا‬Interfaces
‫ت‬ 

2010 ‫سميرة ابوغليون‬.‫أ‬ 53


‫‪( Association 1‬ا ‪A‬الق‪A‬ترا‪A‬ن)‬
‫عالقة االقتران (الربط) تدل على ربط ذي داللة معنوية بين كائنات صفين وتمثل بخط‬
‫مستقيم يربط بين الصفين‬
‫المثال التالي يوضح عالقة عمل تربط بين الجامعة واألستاذ ألن األستاذ يعمل في الجامعة‬

‫‪Association Name‬‬
‫‪Association‬‬

‫‪Professor‬‬ ‫‪Works for‬‬ ‫‪University‬‬


‫‪Employee‬‬ ‫‪Employer‬‬

‫‪Class‬‬ ‫‪Role Names‬‬


‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪54‬‬
)‫ن‬A‫ترا‬A‫الق‬A ‫ (ا‬Association 2
‫المثال التالي يوضح عالقة يدير تربط بين المدير والقسم ألن كل مدير يدير قسم‬

Association Name
Association

Manager Department
Manages of
manager managed

Class Role Names

2010 ‫سميرة ابوغليون‬.‫أ‬ 55


‫)ا ‪A‬الق‪A‬ترا‪A‬ن( ‪Association 3‬‬
‫عالقة أبوة تربط بين األب واالبن‬

‫عالقة انتاج تربط بين المصنع والمنتج‬


‫‪Factory‬‬

‫‪creates‬‬

‫‪Product‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪56‬‬


‫‪ Link‬ا‪AA‬لرا‪A‬بطة‬

‫‪ Link‬ا‪AA‬لرا‪A‬بطة‪ :‬ت‪AA‬ربط ك‪A‬ائنات‪(Objects‬ح‪A‬ا‪AA‬لة منا‪AA‬لفئة)‬ ‫‪‬‬

‫مع‪ A‬ب‪AA‬عضه‪A‬ا وليسف‪AAA‬ئات‪Classes‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪57‬‬


‫‪( Aggregation 1‬ا‪AA‬لتجميع‪)A‬‬
‫•عالقة التجميع ‪ Aggregation‬هى حالة خاصة من االقتران ‪ Association‬وهي‬
‫عالقة تربط بين الكل والجزء (‪ )Whole-Part‬أي بين صف ‪Class‬تجمع وأجزائه‬
‫‪Sub class‬‬

‫•تمثل بخط مستقيم يربط بين الصفين ينتهي بمعين فارغ يتجه ناحية الصف الفئة الذي‬
‫يمثل الكل ‪super -Class‬‬

‫في عالقة التجميع حياة الجزء غير مرتبطة بحياة الكل‪ ،‬بمعنى أن الجزء من الممكن أن‬
‫يوجد في حالة عدم وجود الكل‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪58‬‬


‫‪( Aggregation 1‬ا‪AA‬لتجميع‪)A‬‬
‫عالقة التجميع ‪ Aggregation‬التالية توضح أن العجلة والمحرك أجزاء من السيارة‬
‫من الواضح أن وجود العجلة والمحرك غير مرتبط بوجود السيارة‬

‫‪Car‬‬ ‫‪Wheel‬‬ ‫‪Part‬‬


‫‪Whole‬‬

‫‪Motor‬‬ ‫‪Part‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪59‬‬


‫)ا‪AA‬لتجميع‪Aggregation 2 (A‬‬
‫عالقة ‪ Aggregation‬بين الحاسب وأجزاءه ‪ -‬وجود أجزاء الحاسب غير مرتبط بوجود الحاسب‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪60‬‬


‫‪( Composition 1‬ا‪AA‬لتركي )‬
‫ب‬
‫‪A composition relationship specifies that the lifetime of the part‬‬
‫‪classifier is dependent on the lifetime of the whole classifier‬‬

‫• التركيب‪ Composition‬هو حالة خاصة من التجميع ‪ Aggregation‬ذو رابطة ملكية‬


‫‪ Ownership‬مع ترابط زمني بين الصفين‬

‫• حياة الجزء مرتبطة بحياة الكل بمعنى أن الجزء ال يمكن أن يوجد في حالة عدم وجود‬
‫الكل‪.‬‬
‫• الصف‪-‬فئة ‪ class‬يكون جزء واحد من صف‪ -‬فئة ‪ class‬واحد فقط ولكن من الممكن‬
‫أن يكون كل لعدة صفوف‬

‫وتمثل بخط مستقيم يربط بين الفئات ينتهي بمعين مظلل يتجه ناحية الفئة التي تمثل الكل‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪61‬‬


‫‪( Composition 1‬ا‪AA‬لتركي )‬
‫ب‬

‫عالقة التركيب ‪ Composition‬التالية توضح أن الجدول الدراسي جزء من الطالب‬

‫من الواضح أنه اذا تم حذف الطالب(كل) فإن الجدول الدراسي (جزء )للطالب يحذف تلقائيا‬
‫ولن يوجد جدول دراسي اال اذا وجد الطالب‬

‫‪Whole‬‬ ‫‪Part‬‬

‫‪Student‬‬ ‫‪Schedule‬‬

‫‪Composition‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪62‬‬


‫)ا‪AA‬لتركيب( ‪Composition 2‬‬
‫عالقة التركيب ‪ Composition‬التالية توضح أن بيانات العميل والمعامالت على‬
‫الحساب (ايداع‪ /‬سحب) جزء من الحساب في البنك‬

‫‪Transactions‬‬ ‫‪Part‬‬
‫‪Bank Account‬‬
‫‪Whole‬‬

‫‪CustomerInfo‬‬

‫‪Part‬‬

‫من الواضح أنه اذا تم حذف الحساب من البنك فسيحذف معه بيانات العميل والمعامالت‬
‫ولن تظهر بيانات العميل والمعامالت إال اذا وجد الحساب‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪63‬‬


‫‪( Composition 3‬ا‪AA‬لتركي )‬
‫ب‬
‫عالقة التركيب ‪ Composition‬التالية توضح أن ‪Slider, header, panel‬‬
‫أجزاء من النافذة‬

‫من الواضح أنه مكونات النافذة (شريط التمرير والعنوان وجسم النافذة) لن تظهر إال اذا‬
‫وجدت النافذة وإذا تم حذف النافذة فسيحذف معها المكونات‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪64‬‬
‫‪( Dependency 1‬ا‪AA‬العتمادية)‬
‫• االعتمادية هي عالقة بين صفين توضح أن سلوك فئة ‪ Class‬يؤثر في فئة أخرى‪.‬‬
‫• تمثل بخط متقطع يربط بين الصفين ينتهي بسهم يتجه ناحية الصف المستقل‬
‫‪independent class‬‬
‫‪ Class ””(A‬إذا وجدت‬ ‫الصف ‪ A‬الفئة ‪ Class‬يعتمد على الصف ‪ B‬الفئة )‪B‬‬
‫وظيفة (‪ )Method‬في الصف‪ A‬تحتاج لكيان من الصف ‪ B‬لكي تقوم بعملها‪.‬‬

‫‪The dependent class‬‬


‫‪Dependency‬‬ ‫‪The independent class‬‬
‫‪System‬‬ ‫‪Relationship‬‬
‫‪Form‬‬
‫)‪display(Form f‬‬

‫الوظيفة )‪ display(Form‬الموجودة في الصف‪ -‬الفئة )‪ Class (System‬تحتاج‬


‫لكيان من الصف (‪ )Form‬لكي تقوم بعرضه على نافذة الحاسب‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪65‬‬


)‫العتمادية‬AA‫ (ا‬Dependency 2
The dependent class

Dependency The independent class


Cart Relationship

Product

add(Product p)

‫) عربة التسوق تحتاج‬Cart( ‫ الموجودة في الصف‬add(Product) ‫الوظيفة‬


‫) المنتجات لكي تقوم بإضافته‬Product( ‫لكيان من الصف‬

2010 ‫سميرة ابوغليون‬.‫أ‬ 66


‫‪( Multiplicity 1‬ا‪AA‬لتع‪A‬ددية)‬
‫‪ ‬تعرف التعددية ‪ Multiplicity‬عدد الكيانات التي يمكن أن تشارك في هذه العالقة‬
‫‪ ‬عدد الكيانات من صف والتي تناظر كيان واحد من صف آخر‬
‫‪ ‬تحدد لكل طرف من أطراف العالقة‬

‫‪‬‬ ‫غير محدد‪Unspecified‬‬


‫‪‬‬ ‫واـحد فـــقط‪Exactly one‬‬ ‫‪1‬‬
‫‪‬‬ ‫صــفر او اـكثر )‪Zero or more (many, unlimited‬‬ ‫‪*..0‬‬

‫*‬
‫‪‬‬ ‫واـحد او اـكثر‪One or more‬‬ ‫*‪1..‬‬

‫‪‬‬ ‫ص ـفـر او واـحد ‪Zero or one‬‬ ‫‪0..1‬‬

‫‪‬‬ ‫مجاــلمحدد ‪Specified range‬‬ ‫‪2..4‬‬

‫‪‬‬ ‫‪4..6‬عـ‪2,‬غير متصلومتعـدد ‪Multiple, disjoint ranges‬‬


‫مجاــلمتقط‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪67‬‬
‫‪( Multiplicity 2‬ا‪AA‬لتع‪A‬ددية)‬
‫كل مدير واحد يقود سيارة شركة واحدة وكل‬
‫سيارة شركة ُيقودها مدير واحد‬

‫"كل مدير يدير واحد أو أكثر من العاملين"‬


‫و"كل عامل ُيدار من قبل مدير واحد“‬

‫‪0..4‬‬

‫‪0, 1‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪68‬‬


)‫ددية‬A‫لتع‬AA‫ (ا‬Multiplicity 3
House 1 has Chimney
0, 1
‫المدخنة‬

Student 1 takes Payment


0, 1

2010 ‫سميرة ابوغليون‬.‫أ‬ 69


‫‪roles‬‬
‫‪multiplicities‬‬
‫الكلية‬

‫المساقات‬
‫الطالب‬ ‫المساق‬
‫المطروحة‬

‫لــرموز اــلتعـددية فـــياــلمثاــل تـــوضيح ‪Multiplicity notation:‬‬


‫تـــعنيعلىاــالقل‪ 0‬وعلىاــالكثر ‪0..10 10‬‬
‫‪1, 2‬‬ ‫تـــعنيممكن‪ 1‬او ‪2‬‬
‫*‬ ‫أـيرقمـ متعـدد‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪70‬‬
‫ص‪AA‬فا ‪A‬الق‪A‬ترا‪A‬ن‪Association Class‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪71‬‬


‫ص‪AA‬فا ‪A‬الق‪A‬ترا‪A‬ن)‪Association Class (2‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪72‬‬


‫‪( Generalization‬ا‪AA‬لتعميم‪)A‬‬
‫‪‬هي عالقة بين الصفوف حيث يرث ‪ Inherited‬صف(فئة ‪ )– Class‬صفا أخر‬
‫‪ Class‬أو أكثر في الصفات و‪/‬أو السلوك وتعتبر عالقة من النوع “‪Is-a-kind-‬‬
‫‪”of‬‬
‫‪‬تعرف هرمية من الصفوف بحيث يرث ‪ Inherited‬الصف الفرعي (‪)Subclass‬‬
‫من واحد أو أكثر من الصفوف الفوقية (‪)Super-classes‬‬
‫وتمثل بخط مستقيم يربط بين الصفوف ينتهي بمثلث فارغ يتجه ناحية الصف الذي يمثل األب‬

‫ت‪ Attributes‬وسلوك ‪Behavior-‬‬ ‫الصف الفرعي ‪ Subclass‬يرث ‪ Inherited‬صفا ِ‬


‫‪ method‬وعالقات الصف الفوقي (األب)‬
‫الصف الفرعي يمكن أن‪:‬‬
‫• يضيف صفات وسلوك وعالقات جديدة‬
‫• يعيد تعريف سلوك (عمليات) االب‬
‫•الصفات والعمليات والعالقات المشتركة تظهر في أعلى مستوى من الهرمية يمكن أن يحويها‬
‫‪A class might have no parents, in which case it’s a base class or root‬‬
‫‪ class. A class might have no children, in‬ج‪A‬ذر ال‪ A‬ي‪AA‬وجد ل‪A‬ه‪ A‬ا‪A‬باء ف‪AAA‬ه‪A‬و ا‪AA‬الصل‬
‫‪A‬زء من‪which case it’s a leaf class.‬‬‫‪A‬خر ج‬
‫‪2010‬‬ ‫ف‪AAA‬هيا‬
‫ابوغليون‬ ‫ورقة ال‪ A‬ي‪AA‬وجد ل‪A‬ه‪A‬ا ف‪AAA‬ئاتف‪AAA‬رعية او ا‪A‬بناء‬
‫أ‪.‬سميرة‬ ‫‪73‬‬
Example: Single Inheritance
‫ صف واحد فقط‬Inherited‫ يرث‬Class ‫صف‬ 

If a class has exactly one parent, it has single inheritance.‫ثة‬A‫ورا‬


‫مفردة‬

GroundVehicle Person
owner
Superclass weight
(parent) licenseNumber 0..* 1

register( )
generalization

Car Truck Trailer


Subclass size tonnage
getTax( )

2010 ‫سميرة ابوغليون‬.‫أ‬ 74


Example: Multiple Inheritance
‫صف يرث عدة صفوف‬ 

If a class has more than one parent, it has multiple inheritance

FlyingThing Animal

multiple
inheritance

Airplan Helicopter Bird Wolf Horse


e

2010 ‫سميرة ابوغليون‬.‫أ‬ 75


UML
‫الصف المجرد ‪Abstract Class‬‬
‫•يعتبر الصف‪ -‬الفئة‪ Class‬المجرد من المفاهيم الهامة في النمذجة ‪Modeling‬‬

‫• وهو ينتج عن مفهوم الوراثة ‪Inheritance‬‬

‫‪Abstract‬‬ ‫• فالصف الفئة‪ Class‬يكون مجردا إذا احتوى على عملية واحدة مجردة‬
‫‪ method-operation‬على األقل‪.‬‬

‫‪ Abstract‬هي التي يعرف لها توقيع (اسم وقائمة‬ ‫• والعملية المجردة‬


‫‪method-operation‬‬
‫وسطاء) في الصف االب )‪Super class (parent‬‬
‫•بينما تؤجل الطريقة (الكود) الى الصفوف األبناء‪Subclass .‬‬

‫• الصف المجرد ‪ Abstract classes‬هو صف أب )‪ Super class (parent‬ال يمكن أن يكون‬


‫له كيانات ‪ Objects‬والبد من وجود صفوف أبناء ‪ Subclass‬يرثونه ‪Inheritance‬‬

‫• يكتب اسم الصف المجرد بخط مائل‪.‬‬


‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪76‬‬
‫‪UML‬‬
Abstract Class ‫الصف المجرد‬
Abstract classes are intended only as bases for inheritance
and provide no objects of their own.

Video Borrower

name
number
number

<<abstract>> rental Charge() <<abstract>> borrows()

VideoTape VideoDisk Professor Student

salary grade

2010 ‫سميرة ابوغليون‬.‫أ‬ 77


UML
‫صفوف ا‪AA‬لفئات‬
‫‪-‬‬ ‫‪ Class diagram‬مخطط ا‪AA‬ل‬
‫– رسم مخطط الصفوف ‪ - Class Diagram‬الفئات من الجوانب األساسية ألي منهج للتصميم‬
‫كائني التوجه‬

‫‪-‬مخطط الصفوف ‪ -‬الفئات ‪ Class Diagram‬هو المفتاح لعملية التصميم بالمنحى للكائن ‪object‬‬
‫‪oriented design‬‬

‫– يتم استخدام مخطط الصفوف‪ -‬الفئات في مراحل التحليل والتصميم والتطوير‬

‫– تستعمل صيغ مخططات الصفوف‪ -‬الفئات لرسم خريطة للمفاهيم العامة التي يمكن للمستفيد أن‬
‫يستوعبها (تسمى النموذج المفاهيمي ‪.)Conceptual Model‬‬

‫– ال ‪ Class Diagram‬يوضح الصفوف ‪-‬الفئات المشتركة في النظام كما يبين العالقات بين هذه‬
‫الصفوف‬

‫‪ -‬مخطط الصفوف الفئات ‪ Class diagram‬ومخطط حالة االستخدام‪use case diagram‬‬


‫يجعالن من النموذج المفاهيمي ‪ Conceptual Model‬أداة قوية لتحليل المتطلبات‬
‫‪Requirements analysis‬‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪78‬‬
‫‪ Class diagram‬مخطط ا‪AA‬لصفوف‬

‫ورش عمل التخطيط المشترك للمتطلبات‬


‫)‪Joint Requirements Planning Workshops (JRP‬‬

‫أسلوب ورشة العمل تجمع جماعة من األفراد معا ممن لهم اهتمام أو عالقة بالنظام‬
‫الجاري تطويره بحيث يعطي كل فرد وجهة نظره في ما يجب على النظام أن يقوم به‪.‬‬

‫• المنسقون في ورش العمل هم الذين يقودون الجماعة من خالل التأكد من أن النقاش ال‬
‫يخرج عن الموضوع األساسي‪.‬‬

‫• و أن كل المشاركين يتم تشجيعهم لطرح آرائهم‪،‬‬

‫• وأن هذه اآلراء يتم رصدها بالكامل‪.‬‬

‫• مقرر الجلسات في ورش العمل هو الذي يتولى مهمة توثيق كافة المناقشات‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪79‬‬


‫‪ Class diagram‬مخطط ا‪AA‬لصفوف‬
‫كيفية بناء مخطط الصفوف بالكامل‬

‫• يتم بناء مخطط الصفوف من خالل تحديد الروابط بين المفاهيم‪.‬‬


‫• فمثال بفرض انه تم االتفاق على عدة صفوف ‪ Classes‬تخص نظام إدارة العاملين وهي مثال الصفوف‪-‬‬
‫الفئات ‪ Classes‬التي في الشكل التالي‬

‫المدير‬ ‫الموظفون‬ ‫سيارات الشركة‬

‫التقاعد‬ ‫العطل‬ ‫كورسات التدريب اجازات مرضية‬


‫او‬
‫اذونات مغادرة‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪80‬‬
‫‪ Class diagram‬مخطط ا‪AA‬لصفوف‬
‫كيفية بناء مخطط الصفوف بالكامل تابع‬
‫• لتحديد الروابط بين الصفوف ‪ Classes‬يتم تثبيت أحد الصفوف ‪ ،Classes‬ومراجعته مع كل‬
‫الصفوف االخرى‪.‬‬
‫• ونختبر ”هل توجد عالقة بين الصفين‪-‬الفئتين ‪Classes‬؟" إذا كان كذلك‪ ،‬يتم تسمية الرابطة‬
‫بينهما ‪ ، Associations‬ونوع التعددية ‪ Multiplicity‬فمثال نسأل‪:‬‬
‫•هل للمدير عالقة بالفرد العامل ؟ نعم‪ ،‬كل مدير يدير‪ 1‬أو أكثر من العمال‪.‬‬

‫• المدير و سيارة الشركة؟ نعم‪ ،‬كل مدير يقود سيارة واحدة‪.‬‬

‫• المدير و حساب تأمين تقاعدي ؟ نعم‪ ،‬كل مدير يتشارك في حساب تقاعد واحد‬
‫• وهكذا حتى يكتمل النموذج‪.‬‬
‫‪ ‬الخطأ الشائع في هذه المرحلة هو أن يتم تحديد الصفين‪-‬الفئتين ‪ Classes‬بينهما عالقة‪ ،‬ثم رسم خط‬
‫رابط بينهما ثم تترك تسمية الرابط لوقت الحق‪.‬‬
‫• هذا يزيد من عبء العمل لدينا‪.‬‬
‫• سنكتشف أنه حالما ننتهي من رسم الخطوط‪،‬؛ لن يكون لدينا أية فكرة عما كنا نقصده بها وسنضطر‬
‫لبدء العمل من جديد‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪81‬‬


‫نظام‪ A‬إدارة ا‪AA‬لع‪A‬املين ‪Class Diagram 1:‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪82‬‬


Class Diagram 2:‫ت‬A‫لمقررا‬AA‫سجيل ا‬AA‫ ت‬A‫ظام‬AA‫ن‬
RegistrationForm ScheduleAlgorithm
*..0 RegistrationManager
1
addStudent(Course, StudentInfo)
1 Course

name
*..0numberCredits
)(open
Student

1
10..3
*..1
Professor CourseOffering
4
1 location
4..0
)(open
addStudent(StudentInfo)

2010 ‫سميرة ابوغليون‬.‫أ‬ 83


Class Diagram 3: ‫لعمالء‬AA‫ ل‬A‫الم‬A‫ف‬A‫أجير أ‬AA‫ت‬

Multiplicity
Customer 1
Class Aggregation

Rental Invoice
Abstract 0..*
‫فاتورة االيجار‬
Class

Rental Item 1..* 1

Generalization

DVD Movie VHS Movie Video Game

2010 ‫سميرة ابوغليون‬.‫أ‬ 84


Class Diagram

UML classes are


analogous to E-R entities

2010 ‫سميرة ابوغليون‬.‫أ‬ 85


‫العالقة بين ‪ Class Diagram‬و ‪ER Diagram‬‬
‫•‪ ER‬مخطط ا‪AA‬لكينونة وا‪AA‬لعالقة ي‪AA‬ستخدم‪ A‬ف‪AAA‬يت‪AA‬صميم‪ A‬ق‪AA‬وا‪A‬عد ا‪AA‬لبياناتف‪AAA‬قط‪.‬‬
‫• بينما ‪ UML‬هي لغة نمذجة كائنية المنحى‪ object oriented‬تستخدم لكل أنواع األنظمة بما فيها‬
‫نمذجة قواعد البيانات‪.‬‬
‫• أكثر المخططات تشابها بينهما هو مخطط الصفوف ولكن ‪ UML‬تمتلك امكانات اضافية لتمثيل سلوك‬
‫هناك تماثل بين عالقة ‪ Association‬في ‪ Class Diagram‬ومثيلتها في ‪ER Diagram‬‬ ‫•الصف‬
‫• عالقة التعميم (‪ )Generalization‬يمكن تحويلها إلى عالقة ‪ IS-A‬في ‪ ER Diagram‬مما قد‬
‫يؤدي إلى فقد لمعلومات مهمة داخل ‪ UML Model‬األصلي‪.‬‬
‫• عالقة ‪ aggregation‬يمكن تحويلها إلى عالقة “‪ ”Contains‬ولكن ال يمكن في هذه الحالة الحفاظ‬
‫على عالقة الترتيب التي تدعمها عالقة ‪.aggregation‬‬
‫• يمكن معالجة مثل هذه المشكالت بإضافة تعليق الى نموذج ‪ER‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪86‬‬


‫‪ Object Diagram‬مخطط الكيانات‬
‫‪‬الكيان (‪ : )Object‬هو حالة من الصف (‪)Class‬‬
‫‪‬مخطط الكيانات ‪ : Object Diagram‬مشابه لمخطط الصفوف ‪Class Diagram‬‬
‫ويستخدم نفس طرق التعريف‬

‫‪‬مخطط الكيانات ‪ :Object Diagram‬يصف حالة من الصف ويوضح العالقات‬


‫الديناميكية بين الكيانات على عكس ‪ Class Diagram‬الذي يوضح العالقات الساكنة‬

‫‪‬توضح ال ‪ :Object Diagrams‬صورة لحظية (‪ )Snapshot‬للحالة التفصيلية‬


‫للنظام في لحظة زمنية معينة‪.‬‬

‫‪ThisOne : MyClassName‬‬

‫‪+SomePublicAttribute : SomeType‬‬
‫‪-SomePrivateAttribute : SomeType‬‬
‫‪#SomeProtectedAttribute : SomeType‬‬
‫)(‪+ClassMethodOne‬‬
‫)(‪+ClassMethodTwo‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪87‬‬


Class and Object Diagrams 1
Class Name Association Name

Customer Rental Item


+id:integer Rents 0..n +id:integer
+name:string +released:date
0..1

Class Diagram
Attributes

Object Name
Link Name

Aly: Customer UML: Rental Item


+id:1667 Rents +id:22340
+name: Aly ahmed +released:1942

Object Diagram

2010 ‫سميرة ابوغليون‬.‫أ‬ 88


Class and Object Diagrams 2

2010 ‫سميرة ابوغليون‬.‫أ‬ 89


‫مخططات التحزيم‪Package Diagrams‬‬

‫أي نظام= منظومة ال يكون صغيرا يحتاج إلى أن يقسّم إلى‬ ‫‪‬‬

‫أجزاء "‪ "chunks‬أصغر حجما و أسهل للفهم‪.‬‬

‫تتيح لنا مخططات التحزيم ‪ Package Diagrams‬في ‪UML‬‬ ‫‪‬‬

‫نمذجة هذه األجزاء بطريقة بسيطة و فعّالة‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪90‬‬


‫مخططات التحزيم‪Package Diagrams‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪91‬‬


‫أنواع مخططات لغة النمذجة الموحدة‬
‫‪UML Diagrams‬‬
‫النمذجة التفاعلية‬
‫‪Interaction modeling‬‬
‫‪ Dynamic view‬رؤية دـيناميكية‬ ‫‪‬‬

‫التي تمثل النظام من منظور ديناميكي‬ ‫‪‬‬

‫تمث‪AA‬ل كي‪AA‬ف تحدث االحداث وتوض‪AA‬ح الشروط ‪ Conditions‬وتدفق التفاعالت ‪Interaction‬‬ ‫‪.1‬‬

‫‪ flow‬وتدفق االحداث ‪ Event flow‬وتدفق المعلومات ‪information flow‬‬

‫تتمثل من خالل المخططات التالية‪:‬‬ ‫‪.2‬‬

‫النمذ‪A‬جة التفاعلية ‪-‬مخططات التفاعل ‪Interaction modeling‬‬ ‫‪‬‬

‫مخطط التتابع ‪Sequence Diagram‬‬ ‫‪.1‬‬

‫مخطط التعاون ‪Collaboration Diagram‬‬ ‫‪.2‬‬

‫مخطط الحالة (‪) state diagram‬‬ ‫‪.1‬‬

‫مخطط النشاط (‪)activity diagram‬‬ ‫‪.2‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪92‬‬


‫أنواع مخططات لغة النمذجة الموحدة ‪UML Diagrams‬‬
‫النمذجة التفاعلية‬
‫‪Interaction modeling‬‬
‫مخططات التفاعل ‪ :Interaction Diagrams‬وتشمل‬ ‫‪‬‬

‫مخطط التتابع‪: Sequence Diagram-‬‬ ‫‪.1‬‬

‫مخط‪A‬ط يهدف إل‪A‬ى توص‪A‬يف االتص‪A‬االت بي‪A‬ن ‪ Objects‬ع‪A‬بر الزم‪A‬ن أ‪A‬ي يت‪A‬م إدخال ُبع‪A‬د الزم‪A‬ن‬ ‫‪‬‬

‫‪ Time‬إلى المخطط وبالتالي يتم توضيح كل التفاعالت واالتصاالت بين ‪ Objects‬وفق تسلسل‬
‫زمني‬
‫يعرض التتابع الزمنى للكائنات المشاركة فى التفاعل‪.‬‬ ‫‪‬‬

‫ويتكون من بعد رأسى للزمن و بعد افقى للكائنات المختلفة‪.‬‬ ‫‪‬‬

‫مخط‪AA‬ط التتاب‪AA‬ع ‪ Sequence Diagram‬ف‪AA‬ي حقيقت‪AA‬ه ل‪AA‬ه عالق‪AA‬ة مباشرة بمخط‪AA‬ط التعاون‬ ‫‪‬‬

‫‪Collaboration Diagram‬‬
‫و يقوم بعرض نف‪AA‬س المعلومات‪ ،‬و لك‪AA‬ن بشك‪AA‬ل يختل‪AA‬ف قليال فه‪AA‬و يهت‪AA‬م بالتتاب‪AA‬ع الزمن‪AA‬ي للتفاع‪AA‬ل‬ ‫‪‬‬

‫ومخط‪AAA‬ط التعاون يهت‪AAA‬م بس‪AAA‬ياق التفاعل‪ Interaction context‬دون اهتمام بالزم‪AAA‬ن‬


‫‪Time‬عن طريق تبادل رسائل ‪ Messages‬يوضح التفاعل‬
‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪93‬‬
‫مخطط التتابع‪Sequence Diagram-‬‬

‫الخطوط المنقطـة إلـى أسـفل المخطـط تشيـر إلـى الزمـن‪ ،‬لذلـك فمـا نشاهده هنـا هـو وصـف لكيفيـة تفاعـل‬ ‫‪‬‬
‫الكائنات في نظامنا عبر الزمن‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪94‬‬


‫مخطط التتابع‪Sequence Diagram-‬‬
‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪95‬‬


‫أنواع مخططات لغة النمذجة الموحدة ‪UML Diagrams‬‬
‫النمذجة التفاعلية‬
‫‪Interaction modeling‬‬

‫مخطط التعاون‪: Collaboration Diagram -‬‬ ‫‪.2‬‬

‫يعرض التفاعالت التى تنتظم حول الكائنات و الوصالت بينها وبعضها البعض‪.‬‬ ‫‪‬‬

‫و تستخدم األرقام لبيان تتابع الرسائل‪.‬‬ ‫‪‬‬

‫و نحن نقوم بتطوير برامج المنحى الكائني ‪OO‬؛ إذا احتاج برنامجنا ألن يقوم‬ ‫‪‬‬

‫بأي شيء فسيكون ذلك بواسطة تعاون الكائنات ‪Object collaboration‬‬


‫‪.‬‬
‫يمكننا رسم مخططات التعاون لوصف الكيفية(السياق ‪ ) Context‬التي تتعاون‬ ‫‪‬‬

‫بها الكائنات فيما بينها بالطريقة التي نريدها‪.‬‬


‫برمجيات‬
‫‪.‬‬ ‫‪ UML‬هيمجرد ص‪AA‬يغ‪A‬ة أ‪A‬كثر منك‪A‬ونه‪A‬ا عملية ح‪A‬قيقية ل‪AA‬تطوير ا‪AA‬ل‬ ‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪96‬‬


‫مخططات التعاون ‪The Collaboration Diagrams‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪97‬‬


‫مخططات التعاون ‪The Collaboration Diagrams‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪98‬‬


‫أنواع مخططات لغة النمذجة الموحدة‬

‫‪UML Diagrams- Dynamic view‬‬

‫مخطط الحالة‪: STATE Diagram.‬‬ ‫‪.3‬‬

‫يعرض تتاب ع الحاالت الت ى يكون عليه ا كائ ن التفاع ل خالل دورة حيات ه‬ ‫‪‬‬

‫استجابة الستقبال تنبيه مع استجابته وأفعاله‪.‬‬


‫بعض الكائنات يمكنها في أي وقت محدد أن تكون في حالة ما‪.‬‬ ‫‪‬‬

‫مثال‪ ،‬يمكن لإلشارة الضوئية أن تكون في إحدى الحاالت‬ ‫‪‬‬

‫التالية‪:‬مطفأة‪ ،‬حمراء‪ ،‬صفراء‪ ،‬خضراء‪.‬‬


‫أحيانا‪ ،‬يكون تعاقب التحوّ الت بين الحاالت مع ّقد جدا ‪ -‬في‬ ‫‪‬‬

‫المثال أعاله‪ ،‬ال يمكننا أن ننتقل من حالة "خضراء" إلى حالة‬


‫"حمراء" (و إال تس ّببنا في حادث!)‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪99‬‬


‫أنواع مخططات لغة النمذجة الموحدة‬

‫‪UML Diagrams- Dynamic view‬‬

‫‪STATE Diagram :Behavioral‬‬ ‫مخطط الحالة‪Diagram.‬‬ ‫‪.3‬‬

‫التهاون في التعامل مع الحاالت يمكن أن يؤ ّدي إلى وقوع أعطال جدية و‬ ‫‪‬‬

‫محرجة في برامجنا‪.‬‬

‫خذ مثال ‪ -‬فاتورة غاز مرسلة إلى مستهلك تو ّفي منذ أربع سنوات ‪ -‬هذا‬ ‫‪‬‬

‫يحدث في الواقع و سبب ذلك أن المبرمج في نقطة ما لم يأخذ في اعتباره‬


‫تحوّ الت الحالة‪.‬‬

‫و كما يمكن لتحوّ الت الحالة أن تكون مع ّقدة‪ ،‬فإن ‪ UML‬تق ّدم صيغة تسمح‬ ‫‪‬‬

‫لنا بتصويرها و نمذجتها‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪100‬‬


‫مخطط الحالة لمنظم حركة المرور او االشارة الضوئية ‪STATE.‬‬
‫‪Diagram‬‬

‫احمر‬

‫صفر ضارب إلى الحمرة‬

‫اخضر‬

‫اصفر‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪101‬‬


‫مخطط الحالة رافعة كهربائية ‪STATE Diagram.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪102‬‬


Microwave oven model
Full
po w er Full po wer
do: set power
= 600

Timer
Waiting
Number
do: display Operation
Full Set time
time
po wer do: get number do: operate
exit: set time oven
Half
po wer
Half Door
po wer Cancel
Timer closed
Start
Door
open Door
Half po wer Enabled Waiting
open
do: set power Door do: display do: display
= 3 00 closed 'Ready' time

Disab led
do: display
'Waiting'

2010 ‫سميرة ابوغليون‬.‫أ‬ 103


‫أنواع مخططات لغة النمذجة الموحدة‬
‫‪UML Diagrams- Dynamic view‬‬
‫‪ACTIVITY‬‬ ‫‪Diagram :‬‬ ‫مخطط النشاط‪Behavioral.‬‬ ‫‪.4‬‬

‫‪Diagram‬‬

‫يعرض مخطط حالة خاصة حيث تكون معظم الحاالت حاالت أفعال‪.‬‬ ‫‪‬‬

‫وتكون معظم التعامالت تم قدحها بواسطة إتمام أفعال الحاالت المصدر‪.‬‬ ‫‪‬‬

‫ويركز مخطط النشاط على التدفقات المقادة بالمعالجة الداخلية‪.‬‬ ‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪104‬‬


‫مخطط النشاط‪ACTIVITY Diagram.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪105‬‬


‫أنواع مخططات لغة النمذجة الموحدة‬
‫‪ -physical Diagrams-‬المخططات الفيزيائية‬

‫مخطط المكونات‪COMPONENT Diagram.‬‬ ‫‪.1‬‬

‫يتشابه مخطط المكونات مع مخطط التحزيم – ‪package diagram‬‬ ‫‪‬‬

‫‪‬‬

‫يسمح لنا بترميز كيفية فصل أو تقسيم نظامنا ‪،‬‬ ‫‪‬‬

‫و كيف يعتمد كل قالب على آخر فيه‪.‬‬

‫ليس بالفصل المنطقي أو الفكري كما في مخطط التحزيم‪Packaging‬‬ ‫‪‬‬

‫‪. Diagram‬‬

‫ير ّكز مخطط المكونات على المكونات الفعلية للبرنامج (الملفات‪ ،‬الترويسات‬ ‫‪‬‬

‫‪ ،headers‬مكتبات الربط‪ ،‬الملفات التنفيذية‪ ،‬الحزم ‪)packages‬‬


‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪106‬‬
‫أنواع مخططات لغة النمذجة الموحدة‬
‫‪ -physical Diagrams-‬المخططات الفيزيائية‬

‫‪COMPONENT Diagram Structural‬‬ ‫‪Diagrams‬‬ ‫مخطط المكونات‪.‬‬ ‫‪.1‬‬

‫يعرض البنية الحزمية عالية المستوى للشفرة نفسها‪،‬وتظهر االعتمادات بين المكونات‬ ‫‪‬‬

‫ويتم تضمين شفرة المصدر والشفرة الثنائية والمكونات التنفيذية‬ ‫‪‬‬

‫وتتواجد بعض المكونات في وقت الترجمة او وقت الربط او وقت التنفيذ‪.‬‬ ‫‪‬‬

‫‪‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪107‬‬


‫مخطط المكونات‪COMPONENT Diagram.‬‬

‫‪.7‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪108‬‬


COMPONENT Diagram .‫مخطط المكونات‬
Structural
.7

2010 ‫سميرة ابوغليون‬.‫أ‬ 109


‫أنواع مخططات لغة النمذجة الموحدة‬
‫‪ -physical Diagrams‬المخططات الفيزيائية‬

‫‪DEPLOYMENT‬‬ ‫‪Diagram-‬‬ ‫ط التوزيع او التجهيز‪-.‬‬ ‫مخط‬ ‫‪.2‬‬


‫‪Structural‬‬ ‫‪Diagrams‬‬

‫الهدف من هذا المخطط‪ :‬التخطيط لكيف سيتم تجهيز برنامجنا‪.‬‬ ‫‪‬‬

‫يعرض عناصـر معالجـة وقـت التشغيـل‪،‬ومكونات الـبرمجيات‪،‬‬ ‫‪‬‬

‫والعمليات والكائنات ‪.‬‬


‫مثال‪ ،‬المخطــط فــي الشريحــة التاليــة يعرض توصــيفا مبســطا‬ ‫‪‬‬

‫لجهاز حاسوب شخصي‪.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪110‬‬


‫مخطط التوزيع او التجهيز‪DEPLOYMENT Diagram.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪111‬‬


‫مخطط التوزيع او التجهيز‪DEPLOYMENT Diagram.‬‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪112‬‬


‫ملخص ‪Key points‬‬

‫يو ّفر ‪ UML‬عدة نماذج مختلفة لوصف النظام‪.‬‬ ‫‪‬‬

‫‪ ‬وقائع االستخدام‪" - Use Cases‬كيف سيتفاعل نظامنا مع العالم‬


‫الخارجي؟"‬
‫‪ ‬مخطط الصنفيات ‪" - Class Diagram‬ما هي الكائنات التي‬
‫نحتاجها؟ و ما عالقتها؟"‬
‫‪ ‬مخطط التعاون ‪" - Collaboration Diagram‬كيف تتعامل‬
‫الكائنات مع بعض؟"‬
‫‪ ‬مخطط التتابع ‪" - Sequence Diagram‬كيف تتعامل الكائنات‬
‫مع بعض؟"‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪113‬‬


‫ملخص ‪Key points‬‬

‫مخطط الحالة ‪" - State Diagram‬ما الحاالت التي يجب أن‬ ‫‪‬‬
‫تكون عليها الكائنات؟”‬

‫مخطط التحزيم ‪" -Package Diagram‬كيف سنقوم بقولبة‬ ‫‪‬‬


‫عملنا؟”‬

‫مخطط المكونات ‪" - Component Diagram‬كيف سترتبط‬ ‫‪‬‬


‫مكونات برنامجنا؟”‬

‫مخطط التجهيز ‪" - Deployment Diagram‬كيف سيتم‬ ‫‪‬‬


‫تجهيز البرنامج؟"‬

‫أ‪.‬سميرة ابوغليون ‪2010‬‬ ‫‪114‬‬

You might also like