Professional Documents
Culture Documents
Software Engineering - 1 - Lect-5-Class Diagram
Software Engineering - 1 - Lect-5-Class Diagram
11/12/2023
1
Class Diagram
■ الـ Class Diagramيعبر عن الهيكلية والبنية الداخلية للنظام.
■ لذلك يصنف الـ Class Diagramعلى أنه Structure Modelويعطي
تصور مبدئي (أولي) عن بنية النظام.
■ يتألف أي نظام من مجموعة من األغراض ( )Objectsتتفاعل مع بعضها لتحقيق
الغرض من النظام.
■ يعد هذا المخطط أقرب أنواع المخططات لمهندسي البرمجيات أثناء عملهم في
تطوير الكود البرمجي للتطبيق.
2
Class Diagram
■ الفكرة األساسية تكمن بمعرفة الـ objectsالتي تتعامل مع بعضها البعض ثم نقوم
بعملية Abstraction to the classوحتى نستطيع معرفة الـ objects
والتعبير عنها نحتاج لفهم كامل عن الـ requirementsبشكل دقيق.
■ ونقصد بالـ Abstractionما يلي :
في حال لدينا 3طالب كل طالب له اسم مختلف وعمر مختلف وشهادات
مختلفة وعندما نرى أن كيان الطالب يفيد في المشروع ونريد احتواء هذه
المعلومات المختلفة عنه نقوم بعملية التجريد حيث يصبح لدينا كالس
Studentيحتوي على Attributesوهي االسم والعمر والشهادات بغض
النظر عن اختالفها .
■ إذا ً بالبداية نقوم بالتفكير بالـ objectsالتي احتاجها في المشروع وما هي الـ data
المتعلقة بها ثم أقوم بتجريد الـ objectsإلى classesوتحويل الـ dataإلى
. attributes
3
Class Diagram
4
Class Diagram Components
:)Class Diagram( ■ المكونات األساسية لمخطط الصفوف
: أقسام رئيسية3 ويمثل بصندوق مكون منClass ❖ الصف
Class Name اسم الصف.1
. تصف بنية الصفAttributes الواصفات.2
.)Methods( تصف سلوك الصفOperations العمليات.3
Class Name
Attributes
Operations
5
Class Diagram Components
: Class name .1يظهر دائما في الجزء العلوي من المستطيل ويكتب أول حرف
كبير ،يعبر عن الـ objectsالتي يمثلها ويجب أن يكون اسمه فريد Unique
name
:Class attributes .2الواصفة ) )attributeهي اسم إحدى خصائص الصف
الذي يوصف الكائنات التابعة للصف.
➢ الواصفات قد تكون Private :أو Publicأو Protectedأو Derivedويمكن
كتابة محدد الوصول ) )visibilityبجانب الواصفة كما يمكن عدم كتابتها.
)Private visibility : (-
)Public Visibility: (+
)Protected Visibility: (#
)\(Derived :
:Class operations .3تعرف العمليات السلوكيات التي يقوم بها الصف وتظهر
في القسم الثالث من المستطيل.
6
Class Diagram Components
➢ يتم كتابة الـ Attributesكما يلي :
visibility / name : type = default
✓ /توضع في حال كانت الواصفة مشتقة
✓ }visibility = {+|-|#
➢ ويتم كتابة الـ Operationsكما يلي:
Visibility operationName (parameters, ...) : ReturnType
✓ حيث تتم كتابة الـ parameterبالشكل التالي:
parameter_name : type = default_value
❖ مالحظة :تتم كتابة السمات والعمليات على قاعدة الـ camel caseأي أن يكون
الحرف األول من الواصفة أو العملية صغير وإذا كانت الكلمة مركبة يكون الحرف
األول من الكلمات التي تلي الكلمة األولى كبير مثالremoveBook :
7
Class Diagram Components
8
Class Diagram Relations
■ العالقات بين الصفوف:
وهي األفعال التي تربط بين الصفوف في توصيف النظام .وهي:
9
Class Diagram Relations
( إلىgeneralization) يشير التعميم:Generalization .1
) منbehavior) ) والسلوكattributes) ( الواصفاتinheritance) وراثة
. subclass ( إلى الـsuperclass) الطبقة العليا
Person
Student
10
Class Diagram Relations
:Dependency .2هي عالقة داللية ) (semantic relationshipبين
عنصرين أو أكثر وتوجد عندما يكون classمعتمد على وجود classآخر من
خالل العمليات ) (Operationالخاصة به.
■ مثال:
11
Class Diagram Relations
مثال: ■
12
Class Diagram Relations
:Association .3يشير االرتباط إلى كيفية تواصل الصفوف مع بعضها البعض،
يرمز له بخط متصل يربط بين صفين.
➢ تربط هذه العالقة بين الصفوف بنا ًء على عالقة معينة (يدرس ،يدير ،يعمل)....،
يشار إلى تعدد الـ Associationعن طريق إضافة التعددية )،)multiplicity
والتعددية هي إشارة إلى عدد العناصر التي يمكن أن تشارك في العالقة أو العدد
المسموح به من مثيالت العنصر) )instances of elementوتمثل بشكل أرقام
توضع على أطراف العالقة (مثل *…1 :التي تعبر عن وجود كائن واحد على
األقل).
ضا اإلشارة إلى سلوك كائن ما في االرتباط باستخدام أسماء األدوار.
➢ يمكننا أي ً
13
Class Diagram Relations
■ مثال :في المثال التالي تمت اإلشارة إلى سلوك الطالب في عالقته مع المعلم بكتابة
اسم الدور وهو (يتعلم من) وتمت اإلشارة إلى سلوك المعلم في العالقة وهو
(يدرس) .كما أشرنا إلى التعددية ( )multiplicityعن طريق القيم الموجودة على
أطراف العالقة.
14
Class Diagram Relations
❖ :Multiplicityيحدد عدد الـ instancesمن الصف التي يمكن ان ترتبط ضمن
العالقة كما أنها تحدد اذا كانت العالقة اختيارية ام اجبارية حيث انها تحدد العدد
األصغري و األعظمي من الـ instancesالتي يمكن ان تشارك بهذه العالقة
15
Association Class
ضا
❖ في بعض األوقات يمكن أن تنتج الـ Associationsبين صفين أي ً
كائنات ) (objectsبحد ذاتها ،بطريقة مشابهة لطريقة كسر عالقة many to
manyفي الـ ERDأي بواسطة classوسيط يحوي معلومات عن العالقة
(الرقم المميز للغرضين المرتبطين وتاريخ االرتباط مثالً) تسمى هذه الصفوف
بصفوف االرتباط .association classes
■ مثال:
الطالب يمكن أن يسجل على أكثر من مادة ,وكذلك المادة سوف يسجل عليها أكثر من
طالب ،ولكن نتيجة لعملية التسجيل هذه فإن الطالب سيخضع المتحان في المادة التي
سجل عليها وبالتالي يجب تخزين العالمة ,فأين سيتم تخزين هذه العالمة ؟
16
Class Diagram Components
❖ ويندرج أيضا تحت عالقة الـ Associationعالقتين هما :
(1عالقة التجميع :Aggregationهي حالة خاصة من Associationتربط
بين الكل والجزء ) )Whole-partأو بين صف وأجزائه ،حيث تدل عالقة
التجميع على أن صفًا ما ( )Wholeيتكون من مجموعة من الصفوف األخرى
( )Partكأجزاء منه.
➢ ويشار إلى هذه العالقة بشكل معين موجود على عالقة الـ Associationفي جهة
الكل ). (Whole
➢ في عالقة التجميع حياة الجزء غير مرتبطة بحياة الكل بمعنى أن الجزء من الممكن
أن يوجد في حالة عدم وجود الكل ،فمثالً فريق كرة القدم ذهاب الفريق (دمار
الفريق) ال يؤدي إلى ذهاب الالعبين (دمار الالعبين)
17
Class Diagram Components
■ مثال :فريق كرة القدم (صف )Teamيحوي بداخله عدد من الالعبين (صف
)Playerوالالعب يمكن أن يوجد خارج الفريق وال يموت بموت الغرض من نوع
.team
➢ برمجيا ً:
;)(Player p1= new Player
;)(Team t= new Team
18
Class Diagram Components
(2التركيب :Compositionعالقة قوية ( )Strong all partويكون عمر
الكائنات لألجزاء متزامن مع الكل بحيث إذا انهار الكل انهارت األجزاء.
➢ يشار إلى هذه العالقة بشكل معين مطموس موجود على عالقة الـ Association
في جهة الكل )،(Whole
➢ فمثال موت جسم االنسان يؤدي إلى موت جميع األجهزة الموجودة فيه .فتكون
العالقة بينهما عالقة Composition
■ مثال:
19
Class Diagram Components
:■ مثال
Class Chapter { }
Class Book {
Book ( ){
Chapter stud = new Chapter ()
}
}
: وعند االستدعاء
Book bb = new Book();
20
Class Diagram Components
We see the following relationships:
•owners feed pets, pets please owners (association)
•a tail is a part of dog (aggregation / composition)
•a dog is a kind of pet ( generalization)
21
Class Diagram Components
.4عالقة التحقيق :هي عالقة للواجهة) )interfaceيعبر عن وراثة من واجهة تسمى
بـ implementationيمثل بخط مقطع وتكون العالقة مرتبطة بواجهة
( abstractيكتب اسمها بخط مائل .)italic
22
Example about University System
23
Example about Customer Order
24
الوظيفة
25