تقرير حول كتاب هندسة البرمجيات بعنوان تطبيق UML التحليل و التصميم بالمنحى للكائن باستخدام UML ترجمة و إعداد خالد الشقروني
أصبحت UML (لغة النمذجة الموحّدة) اللغة المعتمدة لترميز العمليات البرمجية لدى الوسط الصناعي. لقد خرجت من تحت عباءة ثلاثة يعدون من أهم أصحاب المنهجيات ولقت قبولا واسعا لدي المهتمين ببناء البرمجيات على اختلاف مشاربهم و منهجياتهم.
هي تقدم وسيلة رموزية مبسطة للتعبير عن مختلف نماذج العمل البرمجي يسهل بواسطتها على ذوي العلاقة - من محللين و مصممين و مبرمجين بل و حتى المستفيدين - التخاطب فيما بينهم و تمرير المعلومات في صيغة نمطية موحدة و موجزة، تغنيهم عن الوصف اللغوي المعتاد. إنها مثل مخططات البناء التي يتبادلها المساحون والمعماريون ومهندسو التشييد، أو مخططات الدوائر الكهربائية و الالكترونية التي يمكن لأي كان في هذا المجال أن يفهمها و يتعامل معها.
جدول المحتويات
مقدمة المترجم 1
الفصل1: مقدمة إلى UML 3
ما هي UML ؟ 3
لغة مشتركة 3
•بوك Booch
•OMT
•OOSE
ملخص 5
UML هي لغة رسومية للتعبير عن مشغولات (artifacts) التطوير البرمجي.
تقدم لنا اللغة رموزا ننتج بها النماذج.
تلقى UML تبنيا واسعا في الوسط الصناعي كلغة موحدة.
اللغة غنيّة جدا، و تحمل في طيّاتها العديد من جوانب أفضل الممارسات في هندسة البرمجيات.
الفصل 2: UML داخل عملية التطوير 6
UML كترميز 6
النموذج الانحداري WATERFALL MODEL 6
النموذج اللولبي 8
إطار العمل التكراري التزايدي 10
الاستهلال 11
التفصيل 11
البناء 12
التحوّل (الانتقال) TRANSITION 13
كم عدد هذه التكرارات؟ و كم يجب أن تطول؟ 13
القيد الزمني TIME BOXING 14
التوقيتات النمطية للمشروع. 15
العملية الموّحدة من راشيونال 16
ملخص 17
يقدم إطار العمل التكراري التزايدي العديد من الفوائد مقارنة بالعمليات التقليدية.
ينقسم إطار العمل هذا إلى أربعة أطوار الاستهلال، التفصيل، البناء، الانتقال.
يعني التطوير التصاعدي استهداف الحصول على توليف قابل للتشغيل في نهاية كل تكرار (بأكبر عدد ممكن منها).
التكرارات يمكن تقييدها زمنيا كأسلوب صارم لجدولة و مراجعة التكرارات.
بقية هذه الدروس سوف تركز على إطار العمل Framework ، و كيف تقوم UML بدعم مخرجات كل طور في إطار العمل
الفصل 3: المنحى الكائني 18
البرمجة المهيكلة 18
أسلوب المنحى الكائني 21
التغليف ENCAPSULATION 22
الكائنات OBJECTS 23
مصطلحات 24
سمات Attributes
نهجيات Methods
Class الصنفية
إستراتجية المنحى الكائني 25
ملخص 26
• المنحى الكائني طريقة تفكير تختلف عن الاتجاه المهيكل.
• نقوم بالجمع بين البيانات و التصرفات ذات العلاقة داخل صنفيات.
• ثم يقوم برنامجنا بخلق تجسّدات/ تمثلات للصّنفية، بشكل كائنات.
• الكائنات يمكنها التعاون مع بعضها البعض، من خلال مخاطبة نهجياتها.
• البيانات في الكائن مغلّفة و لا يقوم بتعديلها إلا الكائن نفسه.
الفصل 4: نبذة عامة عن UML 27
مخطط واقعة استخدام THE USE CASE DIAGRAM 28
مخطط الصنفيات THE CLASS DIAGRAM 29
مخططات التعاون THE COLLABORATION DIAGRAMS 30
مخطط التتابع SEQUENCE DIAGRAM 31
مخططات الحالة STATE DIAGRAMS 32
مخططات التحزيم PACKAGE DIAGRAMS 33
مخططات المكونات COMPONENT DIAGRAMS 34
مخططات التجهيز DEPLOYMENT DIAGRAMS 35
ملخص 35
يوفّر UML عدة نماذج مختلفة لوصف النظام. القائمة التالية تعرضها كلها مع جملة واحدة توجز الغرض من كل نموذج:
• وقائع الاستخدامUse Cases - "كيف سيتفاعل نظامنا مع العالم الخارجي؟"
• مخطط الصنفيات Class Diagram - "ما هي الكائنات التي نحتاجها؟ و ما علاقتها؟"
• مخطط التعاون Collaboration Diagram - "كيف تتعامل الكائنات مع بعض؟"
• مخطط التتابع Sequence Diagram - "كيف تتعامل الكائنات مع بعض؟"
• مخطط الحالة State Diagram - "ما الحالات التي يجب أن تكون عليها الكائنات؟"
• مخطط التحزيم Package Diagram- "كيف سنقوم بقولبة عملنا؟"
• مخطط المكونات Component Diagram - "كيف سترتبط مكونات برنامجنا؟"
• مخطط التجهيز Deployment Diagram - "كيف سيتم تجهيز البرنامج؟"
الفصل 5: طور الاستهلال 37
الفصل 6: طور التفصيل 39
المسودات PROTOTYPING 39
المخرجات DELIVERABLES 39
ملخص 41
يهتم طور التفصيل بتطوير آلية لفهم المشكلة بدون القلق بشأن تفاصيل التصميم المتعمقة (فيما عدا تلك المتعلقة بالمخاطر التي يتم تحديدها و المسودات البرمجية اللازمة).
نموذجان سوف يساعداننا في هذا الطور: نموذج وقائع الاستخدام والنموذج المفاهيمي.
الفصل 7: نمذجة وقائع الاستخدام 42
اللاعب ACTOR 42
الغرض من وقائع الاستخدام 44
مدى كثافة واقعة الاستخدام 45
توصيفات وقائع الاستخدام 48
وقائع الاستخدام في طور التفصيل 49
البحث عن وقائع الاستخدام 49
ورش عمل التخطيط المشترك للمتطلبات (JRP) 49
نصيحة حول العصف الذهني 51
ملخص 52
وقائع الاستخدام أسلوب فعال لنمذجة ما يحتاج النظام لعمله.
هي طريقة ممتازة للتعبير عن نطاق عمل النظام (ما بالداخل = مجموع وقائع الاستخدام؛ ما بالخارج = اللاعبون).
نحتاج إلى أن ننتبه لمدى كثافة وقائع الاستخدام التي تحوي تعقيدات.
أفضل وسيلة لبناء وقائع الاستخدام هي مع الزبون في ورشة عمل.
الفصل 8: نمذجة المفاهيم 53
إيجاد المفاهيم 55
استخلاص المفاهيم من المتطلبات 55
النموذج المفاهيمي في UML 56
إيجاد السمات 57
إرشادات لإيجاد السمات 58
الروابط ASSOCIATIONS 58
الإلزاميات المحتملة 60
بناء النموذج بالكامل 61
ملخص 62
النموذج المفاهيمي وسيلة فعالة من أجل تحليل أعمق للمسألة.
لاحقا، سنقوم بتوسعة النموذج نحو نواحي التصميم.
سيكون هذا النموذج في النهاية أحد أهم المعطيات عند بناء التوليف code.
لبناء النموذج، استخدم تقنيات ورش العمل كما في وقائع الاستخدام
الفصل 9: ترتيب وقائع الاستخدام 63
قمنا باستكمال التفصيل Elaboration ، و الآن نحن جاهزين لبدء البناء. سوف ننظر في كل نموذج على حدة ونرى كيف يفيدنا في عمليات البناء.
قائع الاستخدام تسمح لنا بجدولة عملنا عبر تكرارات متعددة.
نعطي رتبة لكل وقائع الاستخدام لتحديد أولوياتها في التصدي لها.
ترتيب وقائع الاستخدام مبنية على معرفتنا وخبرتنا الخاصة.
بعض الإرشادات المجربة سوف تساعد في الأيام الأولى.
بعض وقائع الاستخدام سوف تمتد لأكثر من تكرار
الفصل 10: طور البناء 65
البناء 65
ملخص 66
قمنا باستكمال التفصيل Elaboration ، و الآن نحن جاهزين لبدء البناء. سوف ننظر في كل نموذج على حدة ونرى كيف يفيدنا في عمليات البناء.
الفصل 11: طور البناء: التحليل 67
شروط مسبقة 68
شروط لاحقة 69
التدفق الرئيسي 69
التدفقات البديلة 70
التدفقات الاستثنائية 71
واقعة الاستخدام بعد اكتمالها 72
مخطط التتابع في UML 73
ملخص 75
في هذا الفصل، انتقلنا نحو طور البناء. و ركزنا على بعض وقائع الاستخدام في التكرار، و استكشفنا التفاصيل التي نحتاجها لتطوير واقعة استخدام كاملة.
تعلمنا أساسيات مخطط UML جديد، و هو مخطط تتابع النظام، و رأينا أن هذا المخطط يمكنه الإفادة عند توليد واقعة استخدام مفصلة.
الآن و نحن لدينا التفاصيل الكامنة في وقائع الاستخدام، ستكون المرحلة التالية إنتاج تصميم مفصل. كنا قد تطلعنا إلى ماذا - الآن سنتطلع إلى كيف.
الفصل 12: طور البناء: التصميم 76
التصميم – مقدمة 76
تعاون الكائنات في واقع الحياة 77
مخططات التعاون 79
صيغ التعاون: الأساسيات 79
مخططات التعاون: التوالي 81
مخططات التعاون: خلق كائنات جديدة 82
ترقيم الرسائل 83
مخططات التعاون: مثال عملي 83
بعض الإرشادات لمخططات التعاون 89
ملخص 90
في هذا الفصل، بدأنا ببناء حل برمجي لما لدينا من وقائع استخدام. مخطط التعاون يجعلنا قادرين على توزيع المسؤوليات على الصنفيات التي استخلصناها خلال طور التفصيل.
لمسنا بعض القضايا التي يجب مراعاتها عند توزيع المسؤوليات، مع احتياجنا لتعلم المزيد حول هذا الأمر لاحقا. قمنا بدراسة مثال “Place Bet” (وضع رهان.)
في القسم التالي، سوف نرى كيف يمكننا توسيع النموذج المفاهيمي و تطويره نحو مخطط صنفية حقيقي
الفصل 13: مخططات صنفيات تصميم 91
مديونية و دائنية الحسابات 91
خطوة 1: إضافة العمليات 92
خطوة 2: إضافة الاتجاهات 92
خطوة 3: تحسين السمات 93
خطوة 4: تحديد المنظورية 93
التجمع 94
التكون 94
إيجاد التجمع و التكون 95
ملخص 95
في هذا الفصل، رأينا كيفية تطوير نموذج الصنفية، بناء على عملنا في التعاونات. التحول من النموذج المفاهيمي إلى نموذج لصنفية تصميم أمر في غاية السهولة و الآلية، و لا يجب أن يسبب الكثير من العناء.
الفصل 14: أنماط توزيع المسؤولية 96
ما هو النمط؟ 96
(GRASP 1): الخبير EXPERT 97
(GRASP 2): المنشئ CREATOR 100
(GRASP 3): اتساق عال HIGH COHESION 101
(GRASP 4): اقتران منخفض LOW COUPLING 103
(GRASP 5): الموجه CONTROLLER 108
ملخص 110
في هذا الفصل، استكشفنا أنماط “GRASP”. التطبيق الدقيق لأنماط GRASP الخمسة يؤدي إلى تصميم كائني المنحى أكثر وضوحا، و أكثر قابلية للتحوير، و أشد تماسك.
الفصل 15: الوراثة 111
الوراثة – الأساسيات 111
الوراثة هي استخدام لصندوق أبيض 114
قاعدة 100% 115
الاحلالية 116
قاعدة هي_نوع_من 116
المشاكل عند الوراثة 119
منظورية السمات 120
التشكل POLYMORPHISM 121
الصنفيات المجردة 122
قوة التشكل 124
ملخص 125
بساطة ترميز الوراثة في UML
الصنفيات يكن ترتيبها في وراثة هرمية
الصنفية الفرعية يجب أن ترث كل السلوكيات العمومية للصنفية الأم
المنهاجات و السمات المحمية يتم توريثها أيضا
التشكل أداة بالغة القوة من أجل إعادة استخدام التوليف.
الفصل 16: معمار النظام – الأنظمة الكبيرة و المركبة 126
مخطط التحزيم في UML 126
العناصر داخل الحزمة 127
لماذا التحزيم؟ 128
بعض الاستكشافات في التحزيم 128
الخبير EXPERT 129
الاتساق العالي HIGH COHESION 129
ضعف الاقتران LOOSE COUPLING 129
معالجة الاتصالات عبر الحزم 129
نمط الواجهة 131
المرتكز المعماري للتنشئة 132
مثال 133
معالجة وقائع الاستخدام الضخمة 134
طور البناء 135
ملخص 135
تطرق هذا الفصل لبعض القضايا التي تحيط بتنشئة النظم الكبيرة الحجم. واضح أنه بالرغم من أن لغة UML تم تصميمها كي تطبق على أي قياس، فإن نقل إطار العمل التكراري التزايدي إلى المشاريع الضخمة أبعد من أن يكون عملا بسيطا.
مؤسسة راشيونال تقترح المقاربة التالية:
• تحديد الأنظمة الفرعية منذ المراحل الأولى
• جعل التعقيد قابلا للمناولة بقدر الإمكان
• التكرار على التوازي بدون هتك الواجهات
• تعيين فريق مركزي للمعماريات
نموذج التحزيم التي تقدمه UML يوفر طريقة لاحتواء التشابك الضخم، هذا النموذج يجب أن يتولاه فريق المعماريات.
الفصل 17: نمذجة الحالات 136
مثال رسم حالة 137
صيغة مخطط الحالة 138
الحالات الفرعية 139
أحداث دخول/خروج 140
أحداث الإرسال 141
دفاعات 142
حالات التاريخ 142
استخدامات أخرى لمخططات الحالة 143
ملخص 143
في هذا الفصل، نظرنا في مخططات تنقل الحالة. رأينا:
• صيغة المخطط
• كيف نستخدم الحالات الفرعية
• أفعال الدخول و الخروج
• أحداث الإرسال و الدفاعات
• حالات التاريخ
رسم الحالات بسيطة جدا، لكنها تتطلب غالبا عمليات تفكير عميقة
معظم استخداماتها على الكائنات، لكن بالإمكان استخدامها على أي شيء: وقائع الاستخدام، كامل النظام، إلخ..
الفصل 18: التحول للتوليف 144
تحديث (مزامنة) المشغولات SYNCHRONISING ARTIFACTS 144
ترجمة التصاميم إلى توليف 145
تحديد المناهج METHODS 148
خطوة 1 149
خطوة 2 149
خطوة 3 150
خطوة 4 150
ترجمة الحزم لتوليف 150
بلغة جافا 150
بلغة سي++ 151
نموذج المكونات في UML 151
ملخص 152
في هذا الفصل تم بصورة مختصرة وصف العمليات الرئيسية لتحويل النماذج إلى توليف حقيقي. تعرفنا بإيجاز على مشكلة الإبقاء على النموذج على خط متواز مع التوليف، ونظرنا في فكرتين لحل هذه المشكلة.
رأينا نموذج المكونات. و كيف تساعد على وضع خريطة للعناصر المادية للبرمجيات و الاعتماديات فيها.
قائمة المراجع 153
[1] : Krutchten, Philippe. 2000 The Rational Unified Process An Introduction Second Edition Addison-Wesley
العملية الموحدة من راشيونال – مقدمة – طبعة ثانية
مقدمة مختصرة للعملية الموحدة من راشيونال، وعلاقتها بلغة UML.
مقدمة مختصرة للعملية الموحدة من راشيونال، وعلاقتها بلغة UML.
[2] : Larman, Craig. 1998 Applying UML and Patterns An Introduction to Object Oriented Analysis and Design Prentice Hall
تطبيق UML و الأنماط – مدخل للتحليل و التصميم كائني المنحى
مدخل ممتاز ل UML، و تطبيقها في عمليات تطوير واقعية للبرمجيات. أستخدم كأساس لهذا الكتاب.
[3] : Schmuller, Joseph. 1999 Teach Yourself UML in 24 Hours Sams
علم نفسك UML في 24 ساعة
مقدمة شاملة حول UML، النصف الأول يركز على صيغ UML، و الثاني يعرض كيفية تطبيق UML (باستخدام عملية تشبه العملية الموحدة و تسمى GRAPPLE)
[4] : Collins, Tony. 1998 Crash: Learning from the World’s Worst Computer Disasters Simon&Schuster
انهيار: التعلم من أسوأ كوارث الحاسوب في العالم
باقة ممتعة من حالات دراسية تستكشف سبب فشل العديد من المشاريع لتطوير وبناء البرمجيات
[5] : Kruchten, Phillipe 2000 From Waterfall to Iterative Lifecycle - a tough transition for project managers Rational Software Whitepaper – www.rational.com
من دورة حياتية تدفقية إلى تكرارية – انتقال صعب لمدراء المشاريع
وصف ممتاز و قصير للمسائل التي ستواجه مدراء المشاريع في المشاريع التكرارية
[6] : Gamma, E., Helm, R., Johnson, R., Vlissides, J. 1995 Design Patterns : Elements of Reusable Object Oriented Software Addison-Wesley
أنماط التصميم: عناصر قابلية إعادة الاستخدام في البرمجيات كائنية المنحى
الفهرس المميز من "عصابة الأربعة" عن مختلف أنماط التصميم
[7] : Riel, Arthur 1996 Object Oriented Design Heuristics Addison-Wesley
استكشافات التصميم كائني المنحى
إرشادات مجربة للمصممين بالمنحى للكائن
[8] : UML Distilled
Martin Fowler's pragmatic approach to applying UML on real software developments
مختصر UML
مقاربة عملية لتطبيق UML على عمليات تنشئة واقعية للبرمجيات
[9] : Kulak, D., Guiney, E. 2000 Use Cases : Requirements in Context Addison-Wesley
وقائع الاستخدام: المتطلبات في سياقها
معالجة متعمقة لهندسة المتطلبات، المقادة بوقائع الاستخدام.
That was nice explanation
ردحذفبارك الله فيك اخي اللهم انفع بها ابناء و بنات المسلمين واننا لنشكر لله ثم الاخ خالد الشقروني صاحب الترجمه
ردحذف