Professional Documents
Culture Documents
Fifth Part Sameera Uml-23!12!10
Fifth Part Sameera Uml-23!12!10
يتم من خالل النموذج حذف كل ما ال داعي له بالنسبة لوجهة نظر معينة(وهذا
ما يسمى بالتجريد ) Abstractionوإبقاء األجزاء المهمة بالنسبة لنفس
وجهة النظر
وتتم الدراسة على هذا األساس ,و يعتمد النموذج على وجهة النظر المأخوذة
لتحقيق الغاية نموذج
ابوغليون 2010 بعين االعتبار ونحتاج ألكثر منأ.سميرة 3
نظرة تاريخية على تطور لغات النمذجة
في الفترة الواقعة بين عامي 1989و ،1994كان مهندسو البرمجيات
يفتقرون لمثل هذه الرموز .و هي الفترة التي يشار إليها بـ "حروب
المناهج”.
كان يوجد ما يزيد عن 50لغة نمذجة برمجية قيد االستعمال -كل منها
تملك رموزها الخاصة! كل لغة تحتوي على قواعد تميزها.
بينما في نفس الوقت ،كل لغة لديها عناصر تتشابه مع تلك التي في
اللغات األخرى.
ال توجد لغة متكاملة ،نادرا ما يجد القائمون على البرمجيات ما يرضي
كامل حاجتهم في لغة واحدة!
كانت ممتازة فيما يخص التصميم و التنفيذ .لقد عمل "قرادي بوك" Grady Booch
بكثافة على لغة آدا ،Adaو كان له دور رئيسي في تطوير تقنيات المنحى الكائني
( )object orientedللغة .
وبالرغم من قوة منهجية بوك إال أن الرموز فيها لم تأخذ القبول الحسن
الغرض من المشاركة :من أجل دمج أفكارهما و صبّها في منهجية موحدة (و كان بالطبع عنوان
العمل لهذه المنهجية هي "المنهجية الموحدة" .)Unified Method
مع عام ،1995انضم أيضا مبدع OOSEايفار جاكوبسون ،Ivar Jacobsonإلى راشيونال
Rational Corpو تم ضم أفكاره (خاصة مفهوم "وقائع االستخدام" )Use Casesفي
المنهجية الموحدة .
اصبحت اآلن تدعى لغة النمذجة الموحدة ( .)Unified Modeling Languageوعُرف
الفريق الذي يتكون من رامبخ و بوك و جاكوبسون بـ "األصدقاء الثالثة" (.)Three Amigos
البرمجيات
تــم تكويــن لجنــة مشتركــة consortiumخاصــة بـ ،UMLشاركــت فيهــا عدد مــن
كما تم تب ّني UMLمن قبل منظمة ( )OMGفي ،1979و من حينها امتلكت ()OMG
اللغة و دأبت على صيانتها.
وه ى جزء مه م م ن التطوي ر الكائن ى المنح ى Object Orientedلل برمجيات وعمليات تطوي ر
البرمجيات.
ال تعت بر لغ ة النمذج ة الموحدة UMLمنهجي ة لبناء أ و تص ميم ال برمجيات وتطويرها .بمعنـى أنهـا لـن
لغة - UMLلغة عامة تسمح بالتقاط المفاهيم األساسية لتطوير البرمجيات و وضعها على "ورقة".
هAي لغAة نمذجAة رسAومية تقدم لنAا صAيغة لوصAف العناصAر الرئيسAية
للنظم البرAمجية.
UML -2تعطي صورة كاملة عن البرنامج المراد تصميمه مما يسهل عملية تصور البرنامج
كامال ويسهل صيانته.
-3يمكن توزيع المخططات على المبرمجين إلنجاز برنامج مما يسرع في عملية إنشاء البرامج.
كذلك يسهل فهم البرنامج في حالة الرجوع لهذه المخططات بعد فترة
UML -4ثبت نجاحها في نمذجة النظم الكبيرة وهي جزء مهم من التطوير الكائني المنحى
للبرمجيات OO Softwareوعمليات تطوير البرمجيات
UML -5تزود المستخدمين بلغة جاهزة االستخدام للنمذجة المرئية لتطوير وتبادل نماذج
ذات معنى وال تعتمد على لغة بعينها
10
أ.سميرة ابوغليون 2010 10
UML
تعريف بطبقات UML
ال ترتب ط لغ ة النمذج ة الموحدة UMLبمنهجي ة أ و طرق إنتاج ال برمجيات ،ويمك ن
توظيف هذه اللغة على مختلف العمليات البرمجية بغض النظر عن المنهجية المتبعة.
تتألف لغة النمذجة الموحدة UMLمن أربع طبقات أساسية تقسم كل طبقة بدورها إلى
الطبقة الرابعة :طبقة ما وراء ما وراء النموذج Meta meta model layer
وتتألف من تسعة مخططات رئيسية باإلضافة إلى كائنات وأدوات مساعدة.
والمس تخدم هن ا المقص ود ه و مس تخدم اللغ ة ولي س المس تخدم النهائ ى للبرمجي ة أ و المنت ج
البرمجى.
حزم ة األس اس :تتكون م ن حزم ة ل ب وحزم ة عناص ر مس اعدة وحزم ة انواع ال بيانات وحزم ة
. Analysts
.Model
فنموذج لغ ة النمذج ة الموحدة UML Modelيص ف م ا المفروض
packaging
مخطط التوزيع او التجهيزDEPLOYMENT Diagram. .9
الكائنات يمكنها التعاون مع بعضها البعض ،من خالل مخاطبة النهجيات . methods
البيانات في الكائن مغلّفة Encapsulatedو ال يقوم بتعديلها إال الكائن نفسه.
Diagram packaging
Physical- DEPLOYMENT Diagram.مخطط التوزيع او التجهيز .9
impleme
2010 سميرة ابوغليون.أ 21
ntation
UML Views and Diagrams
يمكن تقسيم مخططات UMLإلى 3أنواع (رؤى-منظور )Views
رؤية ساكنة
static view .1
• وهي تمثل النظام من منظور ساكن أي وضع متطلبات النظام من المعطيات في صورة
نموذج Structure Diagram .مخططات الهيكلية او التركيب
• وتحتوي هذه الرؤية على مخطط حاالت االستخدام ( ) use case diagramالذي
يمثل وظائف النظام والعالقات بينها.
22
أ.سميرة ابوغليون 2010 22
UML Views and Diagrams
يمكن تقسيم مخططات UMLإلى 4أنواع (رؤى)
dynamic view .3
• رؤية ديناميكية التي تمثل النظام من منظور ديناميكي
•
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الذي يمثل صفوف النظام والعالقات بينها
رؤية ديناميكية اـلتي تمثل النظام من منظور ديناميكي أي تنمذج سلوك التظام والتغيرات التي تطرأ على كيانات
النظام .وتحتوي هذه الرؤية على مخطط الحالـة ( ) state diagramومخطط النشاط ()activity diagram
ومخطط التعاون (.)interaction diagram
27
أ.سميرة ابوغليون 2010 27
أنواع مخططات لغة النمذجة الموحدة
النمذجة الساكنة
UML Diagrams-static modeling
تمثـل وجهـة النظAر السAاكنة للنظام Static viewوتمثـل مـا يحدث ومـن يشارك فـي .1
. Cases
هي مجموعة من السيناريوهات التي تصف التفاعل بين المستخدم والنظام
فهي ذات فائدة خالل مراحل التحليل و التطوير ،و تساعد في فهم المتطلبات.
كل Use Caseتمثل وظيفة من وظائف النظام وبالتالي يتضمن هذا
المخطط :
عرض للوظائف االساسية المطلوبة دون تفصيل لكل خاصية من النظام.
المستخدم actorالذي يقوم بطلب هذه الوظيفة (قد يكون نظام آخر).
العالقات بين حاالت االستخدام Use Casesوالروابط بين الفعلة وحاالت
االستخدام Use Cases
يساعدنا على بناء Use case diagramفهم سيناريو العمل
Scenariosوالذي نحصل عليه من مستخدم النظام .ولكنها ال توضح
ترتيب تتابع حاالت االستخدام حسب الزمن فهي تتعامل مع بعد افقي واحد
وهي الوظائف االساسية.
إدارة التسجيل
التشخيص المزمع
التوجيه
الهدف:
الغرض من استخدام الحالة هو متابعة عامل االستقبال ليقوم بتسجيل العميل الذي سوف يستفيد من
برنامج FASTفي النظام المعلوماتي.
المستخدم الرئيسي
عاملة االستقبال
المستخدم الثانوي
العامل االجتماعي في FAST
نقطة البداية او الشروط السابقة
يقوم المستخدم الرئيسي بالدخول إلى نظام سطح المكتب ،يدخل المعلومات ،يطبع المعلومات ويرسلها
فاكسيا ً إلى اآلخرين
نقطة النهاية او الشروط الالحقة
العامل االجتماعي يتسلم الفاكس ويتخذ القرار بشأن القبول في برنامج FAST
تبادل المعلومات او الوصف او التدفق االساسي
يقوم عامل االستقبال بإدخال االسم األول ،االسم األخير ،العنوان ،رقم الهاتف ،المنطقة السكانية،
تقارير المواد المخدرة ،االختبار ،وتاريخ التوقيف
النتائج التي يمكن قياسها
يتم إنشاء سجل للمريض الجديد ،ويتم إشعار الطبيب باإلجراء المتخذ
Issue Cash?
2010 سميرة ابوغليون.أ 37
مثال قالب حالة االستخدام او وصف حالة االستخدام Use Case
Descriptionللتحقق من الدخول للمستخدم
تسجيل محاضرات
موظف التسجيل
تستخدم لتمثيل حالة االستخدام االساسية ومعنونة بفعل ،تكون داخل حدود النظام
ممكن ان تتضمن حالة استخدام اخرى او تتوسع لحالة اخرى ذات سلوك اختياري .
تستخدم لتمثيل حدود النظام ومجاله وتحتوي في االعلى على اسم النظام .
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
واالرتباطات Associationsوغيرها.
مرحلة التصميم
أ.سميرة ابوغليون 2010 48
مخطط الفئة لنظام التدريب لدوراتCLASS Diagram
رؤية ديناميكية
رؤية ديناميكية
يحتوي
على
رؤية ديناميكية
ادوات
االعتمادية
التعميم
االرتباط او العالقة
)AلتعميمAA (اGeneralization
)(االقترانAssociation
)AلتجميعAA (اAggregation
) لتركيAA (اComposition
ب
)دديةAلتعAA (اMultiplicity
) اAجهAلواAA (اInterfaces
ت
Association Name
Association
Association Name
Association
Manager Department
Manages of
manager managed
creates
Product
•تمثل بخط مستقيم يربط بين الصفين ينتهي بمعين فارغ يتجه ناحية الصف الفئة الذي
يمثل الكل super -Class
في عالقة التجميع حياة الجزء غير مرتبطة بحياة الكل ،بمعنى أن الجزء من الممكن أن
يوجد في حالة عدم وجود الكل
Motor Part
• حياة الجزء مرتبطة بحياة الكل بمعنى أن الجزء ال يمكن أن يوجد في حالة عدم وجود
الكل.
• الصف-فئة classيكون جزء واحد من صف -فئة classواحد فقط ولكن من الممكن
أن يكون كل لعدة صفوف
وتمثل بخط مستقيم يربط بين الفئات ينتهي بمعين مظلل يتجه ناحية الفئة التي تمثل الكل
من الواضح أنه اذا تم حذف الطالب(كل) فإن الجدول الدراسي (جزء )للطالب يحذف تلقائيا
ولن يوجد جدول دراسي اال اذا وجد الطالب
Whole Part
Student Schedule
Composition
Transactions Part
Bank Account
Whole
CustomerInfo
Part
من الواضح أنه اذا تم حذف الحساب من البنك فسيحذف معه بيانات العميل والمعامالت
ولن تظهر بيانات العميل والمعامالت إال اذا وجد الحساب
من الواضح أنه مكونات النافذة (شريط التمرير والعنوان وجسم النافذة) لن تظهر إال اذا
وجدت النافذة وإذا تم حذف النافذة فسيحذف معها المكونات
أ.سميرة ابوغليون 2010 64
( Dependency 1اAAالعتمادية)
• االعتمادية هي عالقة بين صفين توضح أن سلوك فئة Classيؤثر في فئة أخرى.
• تمثل بخط متقطع يربط بين الصفين ينتهي بسهم يتجه ناحية الصف المستقل
independent class
Class ””(Aإذا وجدت الصف Aالفئة Classيعتمد على الصف Bالفئة )B
وظيفة ( )Methodفي الصف Aتحتاج لكيان من الصف Bلكي تقوم بعملها.
Product
add(Product p)
*
واـحد او اـكثرOne or more *1..
0..4
0, 1
المساقات
الطالب المساق
المطروحة
GroundVehicle Person
owner
Superclass weight
(parent) licenseNumber 0..* 1
register( )
generalization
FlyingThing Animal
multiple
inheritance
Abstract • فالصف الفئة Classيكون مجردا إذا احتوى على عملية واحدة مجردة
method-operationعلى األقل.
Video Borrower
name
number
number
salary grade
-مخطط الصفوف -الفئات Class Diagramهو المفتاح لعملية التصميم بالمنحى للكائن object
oriented design
– تستعمل صيغ مخططات الصفوف -الفئات لرسم خريطة للمفاهيم العامة التي يمكن للمستفيد أن
يستوعبها (تسمى النموذج المفاهيمي .)Conceptual Model
– ال Class Diagramيوضح الصفوف -الفئات المشتركة في النظام كما يبين العالقات بين هذه
الصفوف
أسلوب ورشة العمل تجمع جماعة من األفراد معا ممن لهم اهتمام أو عالقة بالنظام
الجاري تطويره بحيث يعطي كل فرد وجهة نظره في ما يجب على النظام أن يقوم به.
• المنسقون في ورش العمل هم الذين يقودون الجماعة من خالل التأكد من أن النقاش ال
يخرج عن الموضوع األساسي.
• مقرر الجلسات في ورش العمل هو الذي يتولى مهمة توثيق كافة المناقشات.
• المدير و حساب تأمين تقاعدي ؟ نعم ،كل مدير يتشارك في حساب تقاعد واحد
• وهكذا حتى يكتمل النموذج.
الخطأ الشائع في هذه المرحلة هو أن يتم تحديد الصفين-الفئتين Classesبينهما عالقة ،ثم رسم خط
رابط بينهما ثم تترك تسمية الرابط لوقت الحق.
• هذا يزيد من عبء العمل لدينا.
• سنكتشف أنه حالما ننتهي من رسم الخطوط،؛ لن يكون لدينا أية فكرة عما كنا نقصده بها وسنضطر
لبدء العمل من جديد.
name
*..0numberCredits
)(open
Student
1
10..3
*..1
Professor CourseOffering
4
1 location
4..0
)(open
addStudent(StudentInfo)
Multiplicity
Customer 1
Class Aggregation
Rental Invoice
Abstract 0..*
فاتورة االيجار
Class
Generalization
ThisOne : MyClassName
+SomePublicAttribute : SomeType
-SomePrivateAttribute : SomeType
#SomeProtectedAttribute : SomeType
)(+ClassMethodOne
)(+ClassMethodTwo
Class Diagram
Attributes
Object Name
Link Name
Object Diagram
أي نظام= منظومة ال يكون صغيرا يحتاج إلى أن يقسّم إلى
تمثAAل كيAAف تحدث االحداث وتوضAAح الشروط Conditionsوتدفق التفاعالت Interaction .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ل
الخطوط المنقطـة إلـى أسـفل المخطـط تشيـر إلـى الزمـن ،لذلـك فمـا نشاهده هنـا هـو وصـف لكيفيـة تفاعـل
الكائنات في نظامنا عبر الزمن.
يعرض التفاعالت التى تنتظم حول الكائنات و الوصالت بينها وبعضها البعض.
و نحن نقوم بتطوير برامج المنحى الكائني OO؛ إذا احتاج برنامجنا ألن يقوم
يعرض تتاب ع الحاالت الت ى يكون عليه ا كائ ن التفاع ل خالل دورة حيات ه
التهاون في التعامل مع الحاالت يمكن أن يؤ ّدي إلى وقوع أعطال جدية و
محرجة في برامجنا.
خذ مثال -فاتورة غاز مرسلة إلى مستهلك تو ّفي منذ أربع سنوات -هذا
و كما يمكن لتحوّ الت الحالة أن تكون مع ّقدة ،فإن UMLتق ّدم صيغة تسمح
احمر
اخضر
اصفر
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'
Diagram
يعرض مخطط حالة خاصة حيث تكون معظم الحاالت حاالت أفعال.
وتكون معظم التعامالت تم قدحها بواسطة إتمام أفعال الحاالت المصدر.
. Diagram
ير ّكز مخطط المكونات على المكونات الفعلية للبرنامج (الملفات ،الترويسات
يعرض البنية الحزمية عالية المستوى للشفرة نفسها،وتظهر االعتمادات بين المكونات
وتتواجد بعض المكونات في وقت الترجمة او وقت الربط او وقت التنفيذ.
.7
مخطط الحالة " - State Diagramما الحاالت التي يجب أن
تكون عليها الكائنات؟”