لغة النمذجة الموحدة UMLPowerPoint PPT Presentation - PowerPoint PPT Presentation

slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
 لغة النمذجة الموحدة UMLPowerPoint PPT Presentation PowerPoint Presentation
Download Presentation
 لغة النمذجة الموحدة UMLPowerPoint PPT Presentation

play fullscreen
1 / 76
 لغة النمذجة الموحدة UMLPowerPoint PPT Presentation
418 Views
Download Presentation
TmahMoh
Download Presentation

 لغة النمذجة الموحدة UMLPowerPoint PPT Presentation

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. تحليل و تصميم النظم المحاضرة الثانية:UML سنة رابعة قسم الهندسة المعلوماتية-كلية الهندسة الكهربائية و الإلكترونية-جامعة حلب2008-2009 الدكتور المهندس عمار الجر

  2. Object Management Group • منظمة غير ربحية تأسست عام 1989 • HP, IBM, Sun, Apple, American Airlines, Data General) • يشارك فيها حالياً أكثر من 850 منظمة عالمية تغطي العالمفيمختلفالمجالاتالطبيةوالاجتماعيةوالاقتصاديةو.. منها (ناسا) • هدفها وضع معايير عامة • لنموذج ال OBJECT. • (الموزعة) • المحمول • المستخدم في كل بيئات التشغيل

  3. Object Management Group • هي الأساس ل : • UML (Unified Modeling Language) • MOF ( Meta-Object Facility)= Meta Meta • CORBA (Common Object Request Broker Architecture) • IDE (Interface Definition Language) • …

  4. CORBA • معيارية معرفة من قبل OMG كي تسمح للمكونات البرمجية المكتوبة بلغات برمجة مختلفة و المشغلة على حواسيب متعددة من العمل معاً. • تعتمد على IDL • ربط معياري بينها و بين Ada, C, C++, Lisp, Smaltalk, Java, COBOL, PL/I, Python • ربط غير معياري مع Perl, VB, Ruby, Erlang, Tcl • الكيان الوسيط Middleware

  5. ماأهمية UML ؟ • لغةأشكالتسمحلمحللي النظم بتوصيف النظم القائمة. • كما تسمح لمصمميالنظمبالتعبيرعنمخططاتأفكارهمقبلتحقيقها. • شبه رسمية • سهلةالفهم • موحدةوعالمية • تسمحبالتشاركوالتكامل • تحويعدةأنواعمنالمخططاتالتيتغطيالاحتياجاتالتوصيفيةوالتصميميةالهيكليةوالزمنيةللمستخدموالمطور • تحويبشكلخاصعلى Class Diagram الذييعبرعنال OOP • UML2 in 2005 يجب الانتباه لتغير بعض الأشكال.

  6. هناك ثلاثة مجموعات رئيسية لمخططات UML: • المتعلقة بالسلوك Behavior diagrams: • activity, state machine, and use case diagrams as well as the four interaction diagrams. • المتعلقة بالتعاون Interaction diagrams: وهي مجموعة فرعية من مخططات السلوك و تركز على التفاعل بين الكائنات وتتضمن : • communication, interaction overview, sequence, and timing diagrams. • المتعلقة بالبنية Structure diagrams: • composite structure, component, deployment, object, and package diagrams.  

  7. Model

  8. المكوناتالأساسيةللـ Class Diagram • Class • Attributes • Operations • Relationships • Associations • Generalization • Dependency • Realization • Constraint Rules and Notes • الصنف • الصفات • العمليات • العلاقات • الارتباط • التعميم • الاعتماد • التحقيق • القيود والملاحظات

  9. باب الطولالعرضجهةالفتحمادةالتصنيعنوعالمقبض فتحالبابإغلاقالباب الأصناف (الصفوف) Classes • الصنف Classهوتجريدلمجموعةمنالأشياءتشتركبمزاياومهاممشتركة. • مثال : باب – دجاجة – امتحان – رجل • الكائن Object هوعبارةعنتحقيقللصنفالمجردعلىأرضالواقع فهو مثال حقيقي للصنف المجردسواءكانهذاالتحقيقمادياًأومعنوياً • مثال : بابالغرفةالتينحنفيها – امتحانالمقررنهايةالفصل - دريدلحام اسم الصف الصفات العمليات

  10. Class Diagram • صفات الصنف Attributesهي صفات عامة للصنف وهي بمجموعها تغطي المزايا المشتركة للكائنات التي تنتمي لهذا الصنف. إن كل كائن من كائنات الصنف يجب أن يكون له قيمة معينة من أجل كل صفة من صفات الصنف الذي ينتمي له. • أما العمليات فهي ما يستطيع كائن من هذا الصنف أن يقوم به.

  11. Class Diagram • الكائن و الصف • عندما يكون لدينا برنامجاً فيمكننا (خلق – إنشاء – توليد) الكائن من الصف. • يرتبط الصف ب: • اسم • صفات • فعاليات (عمليات) متعلقة به (ينفذها الكائن أو تنفذ عليه) • السيارة مثلاً هي صف • اسمها سيارة • من صفاتها سرعتها القصوى استطاعتها عدد أبوابها • من فعاليتها أنه يمكن الضغط على دواسة الوقود أو المكابح أو تشغيل الأضواء.

  12. Class Diagram • السائق مثلاً هو صف • اسمه سائق • من صفاته اسمه وشهادة السوق التي يحملها • من فعالياته (أعماله) أنه يزيد السرعة أوينقصها أو يوقف السيارة .. الخ.. • لاحظ أن الصفوف يمكن أن تنجز مهامها باستدعاء مهام صفوف أخرى • فمثلاً عملية زيادة السرعة عند صف السائق تستدعي عملية ضغط الدواسة عند صف السيارة.

  13. Class Diagram • إن تحديد الكائنات المشكلة للنظام ودورها هي فن يتعلق بالنظام المدروس. فمثلاً عند دراسة القاعة الدرسية بالنسبة للنظام التعليمي سنجد أنها تتكون ربما من : • مدرس وطلاب وقاعة وجهاز اسقاط ولوح. • بينما بالنسبة لنظام الصيانة الكهربائية فالقاعة تتكون من : • المصابيح و المآخذ و المفاتيح الكهربائية وجهاز الإسقاط و المستخدمون. • إن المبرمج غير القدير قد يقسم النظام في الحالة الأولى على أنه مدرس وطالب وطالبة وجهاز إسقاط ومفتاح كهربائي أو في الحالة الثانية على أنه مصابيح و مآخذ وجهاز إسقاط وطالب ومدرس. • بجميع الأحوال فإن توزيع مفردات النظام هي قضية تتعلق بالمبرمج subjective

  14. Class Diagramالكائنالمشتقمنصنف • يرمز عادة من خلال اسم الصنف يليه اسم الكائن. • تحته خط. • يتم تحديد قيمة كل صفة من صفات الصنف فيه. • قد لا نحدد اسم الكائن. باب : بابجامعتنا:باب الطول =مترين الطول =مترين

  15. أثناء رسم المخططات الكبيرة أو المخططات البدائية للتحليل قد لا يهمنا تفاصيل صفات (وعمليات)الصنف أو الكائن لذا يمكن أن نكتفي لتمثيله بمستطيل يضم اسمه فقط باب بابجامعتنا:

  16. هذا الوصف يتعلق بابواب المساكن باب الطولالعرضجهةالفتحمادةالتصنيعنوعالمقبض فتحالبابإغلاقالباب Class Diagram إضافةتعليقات • يمكن إضافة تعليقات للشرح باستخدام صناديق الملاحظات note. • صناديق الملاحظات تتميز بزاويتها العليا اليمنى. • يتم ربطها مع ما نود التعليق عليه من خلال خط مقطع. • يمكن استخدامها في كافة مخططات UML

  17. طالب مدرس مسؤولمالي Class Diagram الرابطة Association • هياتصالبينصنفينيدلعلىأنالكائنالمولدمنأحدهماتتصلمهمتهبكائنمولدمنالصنفالأخر • مثال : لدىتمثيلنظامجامعييمكنأنيكونصنفالطالبوالأستاذمترابطين

  18. Class Diagram الرابطة Association • يعبر عن علاقة ما تربط بين صنفين أو أكثر. • يعبر عنها من خلال وصل الصنفين بخط متصل. • يمكنأنيكونللرابطةاسميوضععادةفيمنتصفالخط • عادةاسمهذهالرابطةيكون )فعل( مثلا : يدفع – يدرسفي .. - • الدور Role يمثلنقطةالتقاءالرابطةبالصنفويمكنأنيكونلهاسم • اسمالدوريعبرعنه باسم (باسم فاعل عادة)مثلا ) قابض – مدرس- الخ( يدير مدير الكلية عميد

  19. Class Diagram الرابطة Association • يمكن تعريف علاقة أخرى بشكل معاكس. ولذا فإن العلاقة مرتبطة بجهة السهم. يدير الكلية عميد يديرها

  20. تعددية العلاقةAssociation Multiplicity • التعددية هي أعداد تربط بين صنفين أو أكثر وفق علاقة محددة. • توضع بالقرب من الصنف وتحوي على قيمتين عليا ودنيا. الغرفة يمكن أن لا ترتبط بنافذة ويمكن أن ترتبط بنافذة أو أكثر النافذة لا ترتبط بغرفة أو ترتبط بغرفة واحدة على الأكثر تضم 0:* 0:1 نافذة غرفة

  21. تعددية العلاقةAssociation Multiplicity • لمعرفة التعددية يمكننا أن نحدد الكائنات المرتبطة وفقاً لتلك العلاقة. يدير مدير الكلية عميد 1:1 1:1 كلية هـ.كهربائية د.لؤي كلية الطب د.أمين يدير الكلية عميد

  22. حساب تعددية العلاقةAssociation Multiplicity تحوي باب قاعة 1:* 0:1 باب المكتب ب25أ-يم ب25أ-يس ب25خ-يم ك25 ب25خ-يس ك23 ب23 تحوي باب قاعة

  23. Association • يمكنأنترتبطبعددأومجالعددي

  24. جامعة التعليبpackage • يمكن أن نجمع عدداً من الأصناف والمخططات معاً ضمن كتلة واحدة تدعى package. • إن هذا التجميع يفيد في تسهيل تقسيم العمل وتسهيل الفهم وتسهيل الرجوع للتفاصيل. • عند ذكر صنف ما يمكننا إرجاعه إلى ال package الذي ينتمي له. جامعة::قاعة

  25. العلاقات الانعكاسية 1 شاغل سيارة سائق راكب 0..4 يقود

  26. الرابطةAssociations • الطالب الجامعي يرتبط بكلية أوكليتين على الأكثر الكلية طالبجامعي 1..2 100..10000 * مقررجامعي 0..3 تعتمد على

  27. الرابطةAssociation • فيالشكلالسابقكانتالعلاقةبينالطالبوالمقررالجامعيموجهةوهذايعنيأنالصنف ) مقرر(لنيتصلهوبالطالبوإنماالطالبفقطهومنسيتصلبالمقررعبرالصلةالموضحة

  28. دورة تعليمية Aggregationالاحتواء • علاقةاحتواءجزءضمنالكل • يكونالمعينمنجهةالكل طالب جزء كل

  29. Compositionالتكوين • نوعخاصمن aggregation تكونالرابطةفيهقوية • الكلهوالمالكالوحيدللجزء • التعدديةمنجهةالمالكستكونصفراًأوواحداً • حياةالجزءتعتمدعلىحياةالكل. • عندالتصميمفإنالكلهوالذيينشئالجزء • مثال : العلاقةبينالبيتوالغرفةأوبينالكائنالحيودماغه • ملاحظة : قديقترحالمصممأنتكونعلاقةالباببالسيارةالسابقةعلاقةتكوين 1 الدائرة النقطة 3..* المضلع

  30. Compositionالتكوينأم Aggregationالاحتواء • في الحقيقة إن التكوين هو حالة خاصة من الاحتواء. إن ذكر إحدى الارتباطات على أنها تكوين يعطي مفهوماً أكثر خصوصية عن الاحتواء فإذا كان الجزء لا يمكن أن ينتمي في فترة زمنية معينة إلا إلى الصنف الذي يمثل الكل فعندها يمكن اعتبار العلاقة علاقة تكوين. • هذا ينطبق على العلاقة بين سماعة الهاتف والهاتف • وبين الولد والعائلة • وبين باب السيارة والسيارة.

  31. الوراثةinheritance وسيلة مواصلات باص سيارة دراجة سيارة إسعاف شاحنة

  32. الوراثةinheritance • بينصنفين • يرثالثانيكاملمواصفاتالأولوطرقهمعبعضالإضافات الموظف Super Class علاقةالوراثة Sub Class المحاسب

  33. الوراثةالمتعددة

  34. تنعيمأوتغييرالعمليات

  35. التعميم Generalization • الصنفالمجردلايولدكائنلوجودمواصفاتأوطرقغيرمكتملةفيه • فيالحقيقةينتجعنتعميمالأصنافالأدنى • يتميزبأناسمهمائلوبالكلمةabstractإلىجانبه شكل{abstract} الصنفالمجرد الصنفالأعلى علاقةالتعميم الصنفالأدنى دائرة

  36. التعميم Generalization • A sub-class inherits from its super-class • Attributes • Operations • Relationships • A sub-class may • Add attributes and operations • Add relationships • Refine (override) inherited operations

  37. الاعتمادية Dependency • علاقةبينصنفينوالتغييرفيأحدهاقديؤديلتغييرفيالاخر. • يمكناضافةعبارةلبياننوعالارتباط • عادةماتتعلقباستدعاءاتالعمليات <<شراء>> زبون دكان

  38. Realization • الـملاءمة interface هيصنفمننوعخاص . حيثلايذكرفيهكيفيةتحقيقالعملياتوإنمافقطتواقيعها. • يستخدمصنفآخرلتضمينهذاالنوعويعبرعنالعلاقةبالشكلالمبين • يمكناستخدامنفسالعلاقةلتضمينالبروتوكولات(protocol). • الـملاءمة interface قدتنفذبأصنافمتعددة • الصنفالواحديمكنهتحقيقعدةملاءمات LinkedList <<interface>>List LinkedList List

  39. id: long { value > 0 } Customer 1 * Order may be canceled { total < $50 } Constraint Rules and Notes • Constraints and notes annotate among other things associations, attributes, operations and classes. • Constraints are semantic restrictions noted as Boolean expressions. • UML offers many pre-defined constraints. Constraint Note

  40. TrafficReport Offender 1 issues * TrafficPoliceman 1..* 1 id : long name : String description : String id : long occuredAt : Date reports of 1..* Policeman Violation id : long name : String id : long rank : int description : String <<abstract>> TVRS Example

  41. Name UML Packages • A package is a general purpose grouping mechanism. • Can be used to group any UML element (e.g. use case, actors, classes, components and other packages. • Commonly used for specifying the logical distribution of classes. • A package does not necessarily translate into a physical sub-system.

  42. Logical Distribution of Classes • Emphasize the logical structure of the system (High level view) • Higher level of abstraction over classes. • Aids in administration and coordination of the development process. • Contributes to the scalability of the system. • Logical distribution of classes is inferred from the logical architecture of the system.

  43. A D E F G C B Packages and Class Diagrams (cont.) • Add package information to class diagrams

  44. a.A b.b.D b.b.E b.a.F b.a.G a.C a.B Packages and Class Diagrams (cont.) • Add package information to class diagrams b a b.a b.b

  45. Analysis Classes • A technique for finding analysis classes which uses three different perspectives of the system: • The boundary between the system and its actors • The information the system uses • The control logic of the system

  46. Boundary Classes • Models the interaction between the system’s surroundings and its inner workings • User interface classes • Concentrate on what information is presented to the user • Don’t concentrate on user interface details • Example: • ReportDetailsForm • ConfirmationDialog • System / Device interface classes • Concentrate on what protocols must be defined. Don’t concentrate on how the protocols are implemented

  47. Entity Classes • Models the key concepts of the system • Usually models information that is persistent • Contains the logic that solves the system problem • Can be used in multiple behaviors • Example: Violation, Report, Offender.

  48. Control Classes • Controls and coordinates the behavior of the system • Delegates the work to other classes • A control class should tell other classes to do something and should never do anything except for directing • Control classes decouple boundary and entity classes • Example: • EditReportController • AddViolationController

  49. TVRS Example