Diagrams in UML

advertisement
‫لغة النمذجة الموحدة‬
‫‪UML‬‬
‫مقدمة‬
‫• تقدم لغة النمذجة الموحدة مجموعة من أفضل خبرات الممارسات‬
‫الهندسية التى ثبت نجاحها فى نمذجة النظم الكبيرة والمعقدة‪ ،‬وهى جزء‬
‫مهم من التطوير الكائنى المنحى للبرمجيات وعمليات تطوير‬
‫البرمجيات‪.‬‬
‫• ليست لغة النمذجة الموحدة منهجية لبناء أو تصميم البرمجيات‬
‫وتطويرها‪.‬‬
‫• ال ترتبط لغة النمذجة الموحدة بمنهجية أو طرق إنتاج البرمجيات‪،‬‬
‫ويمكن توظيف هذه اللغة على مختلف العمليات البرمجية بغض النظر‬
‫عن المنهجية المتبعة‪.‬‬
‫تحتوى اللغة على تسعة نماذج أساسية هى‬
‫• مخطط الفئات‬
‫• مخطط الكائن‬
‫• مخطط األنشطة‬
‫• مخطط التعاون‬
‫• مخطط حالة اإلستخدام‬
‫• مخطط المكون‬
‫• مخطط الحالة‬
‫• مخطط التجهيز‬
‫• مخطط التتابع‬
‫أنواع مخططات لغة النمذجة الموحدة‬
‫‪UML Diagrams‬‬
‫• مخطط حالة اإلستخدام‪ :‬التى تعرض العالقة بين الفعلة ‪actors‬‬
‫وحاالت اإلستخدام‪.‬‬
‫• مخططات الفئة‪ :‬التى تنمذج هيكل الفئة المحتويات بإستخدام عناصر‬
‫التصميم مثل الفئات والحزم والكائنات وتعرض أيضاً العالقات مثل‬
‫المحتوى والوراثة واإلرتباطات وغيرها‪.‬‬
‫• مخططات التفاعل‪ :‬وتشمل‬
‫• مخطط التتابع‪ :‬الذى يعرض التتابع الزمنى للكائنات المشاركة فى‬
‫التفاعل‪ ،‬ويتكون من بعد رأسى للزمن وبعد افقى للكانئات المختلفة‪.‬‬
‫أنواع مخططات لغة النمذجة الموحدة‬
‫(تابع)‬
‫• مخطط التعاون‪ :‬ويعرض التفاعالت التى تنتظم حول الكائنات‬
‫والوصالت بينها وبعضها البعض‪ ،‬وتستخدم األرقام لبيان تتابع‬
‫الرسائل‪.‬‬
‫• مخطط الحالة‪ :‬يعرض تتابع الحاالت التى يكون عليها كائن التفاعل‬
‫خالل دورة حياته إستجابة إلستقبال تنيه مع إستجابته وأفعاله‪.‬‬
‫• مخطط النشاط‪ :‬يعرض مخطط حالة خاصة حيث تكون معظم‬
‫الحاالت حاالت أفعال ومعظم التعامالت تم قدحها بواسطة إتمام أفعال‬
‫الحاالت المصدر‪ ،‬ويركز هذا المخطط على التدفقات المقادة بالمعالجة‬
‫الداخلية‪.‬‬
‫السؤال رقم ‪5‬فى التقرير‬
‫وضحى بالرسم ما هو •‬
‫الفرق بين مخططات‬
‫لغة النمذجة الموحدة‬
Diagrams in UML
 Class diagrams ---Object diagrams
 Use Case diagrams----Sequence diagrams-Collaboration diagrams
 State chart diagrams--Activity diagrams
 Component diagrams--Deployment diagrams
‫‪Use Case diagram‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫يفهم ويحلل النظام من خالل االعمال التي ينفذها النظام مع المستخدم والتي‬
‫تسمى ب ‪ Use Case‬أي ان كل ‪ Use Case‬تمثل فعالية من فعليات النظام (‬
‫المستخدم هنا يمكن أن يكون جزء من نظام آخر أو من يفعل هذه ‪. Use Case‬‬
‫هنا في هذا المخطط يصف ما سوف يفعله النظام من وجهة نظر المراقب‬
‫الخارجي‪.‬‬
‫يتم توصيف كل ‪Use cases‬أوال من خالل اللغة الطبيعة وهذا التوصيف يكون‬
‫أقرب ما يكون للمفاهيم العادية أي قريب من اللغة المتداولة ‪.‬‬
‫يقدم سيناريو لما يمكن أن يحدث ضمن كل ‪ Use cases‬وبالتالي لكل ‪Use‬‬
‫‪ cases‬مخطط تتابع أحداث ‪Sequence Diagram‬‬
‫‪IMPORTANT QUESTION‬‬
‫وضحى بالرسم كيف يمكن •‬
‫استخدام مخطط التتابع‬
‫‪Sequence Diagram‬‬
‫فى تمثيل نظام االستعارة •‬
‫المكتبية‬
‫أمثلة على الـ ‪Use Case‬‬
‫مستخدم يطلب من النظام إنشاء ملف جديد لموظف جديد (توصف بـ ‪) Use cases‬‬
‫مريض يطلب من النظام تحديد موعد جديد (توصف بـ ‪) Use cases‬‬
‫زبون يطلب من النظام شراء آلي لمنتخ (توصف بـ ‪) Use cases‬‬
‫مستخدم يطلب من النظام إنشاء أو فتح حساب بنكي (توصف بـ ‪) Use cases‬‬
‫مستخدم يطلب من النظام تحويل مصرفي (توصف بـ ‪) Use cases‬‬
‫مستخدم يطلب من النظام مبالغ من المال (توصف بـ ‪) Use cases‬‬
‫مستخدم يطلب من النظام إصدار الجالء المدرسي (توصف بـ ‪) Use cases‬‬
‫مستخدم يطلب من النظام صرف وصفة طبية (توصف بـ ‪) Use cases‬‬
‫طالب يطلب من النظام كشف عالماته (توصف بـ ‪) Use cases‬‬
‫مستخدم يطلب من النظام اصدار جداول بيانات محددة (توصف بـ ‪) Use cases‬‬
‫زبون يطلب من النظام حجز بطاقة طيران (توصف بـ ‪) Use cases‬‬
‫مستخدم يطلب من النظام ‪.................‬‬
Use Case Notation
Use Case
Name
............... ‫ بالـرمز‬Use Case ‫• وتمثل كل‬
Use Case ‫• ويمثل تفاعل كل‬
‫ بالرمز‬Actor ‫• مع المستخدم الذي هو المفعّل لفعليات النظام أو‬
An actor defines a coherent set of roles that users of an entity can play when
•
interacting with the entity. An actor may be considered to play a separate role
with regard to each use case with which it communicates.
Use Case ‫ ويمثل تفاعل كل‬
‫ بالرمز‬Actor ‫ مع المستخدم الذي هو المفعّل لفعليات النظام أو‬

An actor defines a coherent set of roles that users of an 
entity can play when interacting with the entity.
An actor may be considered to play a separate role with 
regard to each use case with which it communicates.
‫مريض يطلب من النظام تحديد موعد جديد‬
‫طالب يطلب من النظام كشف عالماته‬
‫‪…………….Use case‬‬
‫طلب‬
‫كشف‬
‫عالمات‬
‫طالب …………‪Actor‬‬
‫‪Use Case Example‬‬
‫مستخدم يطلب من النظام إصدار الجالء المدرسي‬
‫‪…………….Use case‬‬
‫إصدار‬
‫الجالء‬
‫المدرسي‬
‫مستخدم …………‪Actor‬‬
‫‪Use Case Example‬‬
‫ارسمى مخطط حالة االستخدام ‪• Sequence Diagram‬‬
‫لمريض يريد ان •‬
‫‪ -1‬حجز موعد •‬
‫‪ -2‬الغاء الموعد •‬
‫‪ -3‬طلب عالج •‬
‫‪ -4‬دفع المصاريف •‬
Example: Use Case Diagram
Example: Use Case Diagram
open file
user
<<extend>>
file operations
close file
<<extend>>
<<extend>>
<<extend>>
save file
print file
System
open file
user
<<extend>>
file operations
close file
<<extend>>
<<extend>>
<<extend>>
save file
print file
‫تحديد‬
‫‪actors and Use Cases‬‬
‫‪ ‬يتم تحديد ‪ actors and Use Cases‬من ‪Problem Statement‬في حال كان‬
‫النص مصاغ بشكل دقيق وإال سوف تيم االختيار وفق الخبرة للمصمم‬
‫‪ ‬عادة يتم اختيار االسماء التي تلعب دور في تفعيل االعمال للنظام كـ ‪actors‬‬
‫‪ ‬وعادة يتم تحديد األفعال التي ترد في النص ( التي لها صبغة أعمال ) كـ ‪use‬‬
‫‪case‬‬
‫‪ ‬مثال ‪):‬جزء من النص الكلي للنظام )‬
‫‪ ‬في أحد من برامج التسويق االلكتروني يتم اإلختيار من قبل الزبون لشراء منتج‬
‫الشركة (موبايل بأنوع محددة – كمبيوتر بأنواع محددة ) وفق الكود والسعر‬
‫المرفق لصورة المنتج ويمكن للزبون طلب لعرض معلومات إضافية عن المنتج‬
‫المحدد أو عرض صورة واضحة له مع بعض المعلومات الخاصة‬
‫‪ specification‬له وطباعتها‪.‬‬
print selected
communicate
search in Mobile_page
<<extend>>
customer
communicate
<<extend>>
<<extend>>
select in computer_page
view info
<<extend>>
communicate
make order
use case ‫الشروط الواجب إتباعها عند كتابة‬
• Use cases should be names using verbs
• Use Cases should be described:
–
–
–
–
–
–
What makes them happen
What are the conditions that they happen
What are the input messages
What are the output messages
What are all the other conditions and restraints
What are the exceptions
• Use Cases are tools use by Actors to get results
Why write Use Cases
• Because Use Cases
– Help you understand WHAT you are modeling
– Help you communicate with your clients
– Help you estimate your requirements
– Help you introduce the system to your team
– Help you plan your design phase
– Help you plan your testing phase
– Help you write your documentation (How-to’s)
How we write Use Cases
• At least, we should describe:
– Who are the actors
– Why does it happen? (the goal and/or context)
– When does it happen? (the triggering event)
– What happens? (the normal flow)
– What else? (alternative and/or exceptional flows)
– What are all the business rules?
• Do not bother writing how it happens.
Lending use-case
:‫مثال حالة إستخدام إعارة من مكتبة‬
Lending services
:‫مثال حاالت إستخدام المكتبة‬
‫خدمات اإلعارة – إدارة المستخدم – خدمات توفير الفهرس – مستخدم المكتبة – طاقم المكتبة‬
.
Library use-cases
Lending services
Library
User
User administration
Supplier
Catalog services
Library
Staff
Example Use Case Diagram
Make automated menu
selections
Expert Menu
System
Order food and drink
Customer
Notify customer that
food and drink are ready
Pay for food and drink
Cook
Payment
System
28
Download