تصميم كائني التوجه
التصميم كائني التوجه (بالإنجليزية: Object-oriented design) هو عملية تخطيط نظام خاص بالكائنات المتفاعلة بغرض حل مشكلة برمجية. بمكن التعبير عنها أنها عبارة عن نهج واحد لتصميم البرمجيات .
نظرة عامة
[عدل]يحتوي الكائن على بيانات وإجراءات مغلفة مجمعة معًا لتمثيل كيان. «واجهة الكائن» تعرّف كيفية التعامل مع الكائن. يتم وصف برنامج ما كائني التوجه بتفاعل هذه الكائنات. التصميم الموجه للكائنات هو نظام تعريف الكائنات وتفاعلاتها لحل مشكلة تم تحديدها وتوثيقها أثناء التحليل الموجه للكائنات.
ما يلي هو وصف للمجموعة الفرعية المبنية على الأصناف للتصميم الموجه للكائنات، والتي لا تتضمن المناهج القائمة على النموذج الأولي للكائن حيث لا يتم الحصول على الكائنات عادةً عن طريق إنشاء مثيل للأصناف ولكن عن طريق استنساخ كائنات أخرى (نموذج أولي). التصميم الموجه للكائنات هو طريقة للتصميم تشمل عملية التحلل الموجه للكائنات وتدوينًا لتصوير النماذج المنطقية والفيزيائية وكذلك النماذج الديناميكية للنظام تحت التصميم.
موضوعات التصميم كائني التوجه
[عدل]الإدخال (المصادر) للتصميم كائني التوجه
[عدل]يتم توفير مدخلات التصميم الكائني التوجه من خلال إخراج التحليل الكائني التوجه. ندرك أن مخرجات الأداة لا تحتاج إلى تطويرها بالكامل لتكون بمثابة مدخلات للتصميم الكائني التوجه. قد يحدث التحليل والتصميم بالتوازي، وفي التطبيق العملي، يمكن أن تغذي نتائج نشاط واحد النشاط الآخر في دورة تغذية راجعة قصيرة من خلال عملية تكرارية. يمكن إجراء كل من التحليل والتصميم بشكل تدريجي، ويمكن تطويرالأدوات بشكل مستمر بدلاً من تطويرها بالكامل في لقطة واحدة.
بعض عناصر الإدخال النموذجية للتصميم كائني التوجه هي:
- النموذج المفاهيمي: نتيجة للتحليل الكائني التوجه، أنه يلتقط المفاهيم في نطاق المشكلة. يتم اختيار النموذج المفاهيمي بشكل صريح ليكون مستقلاً عن تفاصيل التنفيذ، مثل التزامن أو تخزين البيانات.
- حالة الاستخدام: وصف تسلسل الأحداث التي تؤدي مجتمعةً إلى قيام النظام بعمل مفيد. توفر كل حالة استخدام سيناريو واحد أو أكثر ينقل الكيفية التي ينبغي أن يتفاعل بها النظام مع المستخدمين الذين يطلق عليهم الممثلون لتحقيق هدف أو وظيفة تجارية محددة. قد يكون الممثلون في حالة الاستخدام مستخدمين نهائيين أو أنظمة أخرى. في كثير من الظروف، يتم شرح حالات الاستخدام بشكل أكبر في مخططات حالة الاستخدام. تُستخدم مخططات حالة الاستخدام لتحديد الممثل (المستخدمون أو الأنظمة الأخرى) والعمليات التي يقومون بها.
- رسم تخطيطي لتسلسل النظام: الرسوم البيانية لتسلسل النظام (SSD) هي صورة توضح ، بالنسبة لسيناريو معين لحالة الاستخدام ، الأحداث التي يولدها الممثلين الخارجيين ، وترتيبهم ، والأحداث المحتملة بين النظام.
- وثائق واجهة المستخدم (إن وجدت): مستند يعرض ويصف شكل وأسلوب واجهة المستخدم للمنتج النهائي. ليس من الضروري الحصول على هذا ، ولكنه يساعد على تصوير المنتج النهائي وبالتالي يساعد المصمم.
- نموذج البيانات العلائقية (إن أمكن): نموذج البيانات هو نموذج مجرد يصف كيفية تمثيل البيانات واستخدامها. إذا لم يتم استخدام قاعدة بيانات كائن ، يجب إنشاء نموذج البيانات العلائقية قبل التصميم ، نظرًا لأن الإستراتيجية المختارة لرسم الخرائط العلائقية للكائنات هي ناتج لعملية تصميم كائني موجه. ومع ذلك ، من الممكن تطوير نموذج البيانات العلائقية الأدوات التصميمية الموجهة للكائنات بالتوازي ، ويمكن أن يحفز نمو الأداة لتحسين الأدوات الأخرى.
مفاهيم موجهة للكائنات
[عدل]المفاهيم الأساسية الخمسة للتصميم الموجه للكائنات هي ميزات مستوى التنفيذ المبنية في لغة البرمجة. غالبًا ما تتم الإشارة إلى هذه الميزات من خلال هذه الأسماء الشائعة:
- كائن / صنف: اقتران أو ربط وثيق لهياكل البيانات مع الطرق أو الوظائف (الدوال) التي تعمل على البيانات. هذا يسمى صنف، أو كائن (يتم إنشاء كائن بناءً على صنف). كل كائن يخدم وظيفة منفصلة. يتم تعريفها بخصائصها، ماهيتها وما يمكن أن تفعله. يمكن أن يكون الكائن جزءًا من صنف، وهي مجموعة من الكائنات المتشابهة.
- إخفاء المعلومات: القدرة على حماية بعض مكونات الكائن من كيانات خارجية. يتم تحقيق ذلك من خلال الكلمات المفتاحية اللغوية لتمكين الإعلان عن متغير على أنه خاص أو محمي للصنف المالك.
- الوراثة: قدرة الصنف على توسيع أو تجاوز وظيفة صنف أخر. يحتوي ما يسمى بالصنف الفرعيعلى قسم كامل مشتق (موروث) من الصنف الأصل ومن ثم لديه مجموعة من الدوال والبيانات الخاصة به.
- واجهة بينية (برمجة موجهة للكائنات): القدرة على تأجيل تنفيذ طريقة. القدرة على تعريف التواقيع للدوال أو الطرق دون تنفيذها.
- تعدد الأشكال (على وجه التحديد، اشتقاق النوع بشكل فرعي ): القدرة على استبدال كائن ما بكائناته الفرعية. قدرة متغير الكائن على احتواء، ليس هذا الكائن فقط، ولكن أيضًا جميع الكائنات الفرعية الخاصة به.
مفاهيم التصميم
[عدل]- تعريف الكائنات، إنشاء رسم تخطيطي للصنف من الرسم التخطيطي المفاهيمي: عادة تعيين الكيان إلى الصنف.
- تحديد السمات.
- استخدام أنماط التصميم (إن وجدت): نمط التصميم ليس تصميمًا منتهيًا ، إنه وصف لحل لمشكلة شائعة في سياق ما.[1] الميزة الرئيسية لاستخدام نمط التصميم هي أنه يمكن إعادة استخدامه في تطبيقات متعددة. يمكن أيضًا اعتباره قالباً لكيفية حل مشكلة يمكن استخدامها في العديد من المواقف و/ أو التطبيقات المختلفة. عادةً ما تُظهر أنماط التصميم الكائني التوجه العلاقات والتفاعلات بين الأصناف أو الكائنات ، دون تحديد أصناف التطبيق النهائي أو الكائنات المتضمنة.
- تعريف إطار التطبيق (إن وجد): إطار التطبيق عادة ما يكون مجموعة من المكتبات أو الأصناف التي يتم استخدامها لتنفيذ الهيكل القياسي لتطبيق لنظام تشغيل معين. من خلال تجميع كمية كبيرة من الكود القابل لإعادة الاستخدام في إطار عمل ، بذلك يتم توفير الكثير من الوقت للمطور ، حيث يمكن أن يحفظه في مهمة إعادة كتابة كميات كبيرة من الكود القياسي لكل تطبيق جديد يُطوّر.
- تحديد الكائنات / البيانات الدائمة (إن أمكن): حدد الكائنات التي يجب أن تستمر لفترة أطول من وقت تشغيل واحد للتطبيق. إذا تم استخدام قاعدة بيانات علائقية، قم بتصميم تخطيط علاقة الكائن.
- تحديد وتعريف الكائنات البعيدة (إن وجدت).
إخراج (مخرجات) التصميم كائني التوجه
[عدل]- مخطط التسلسل (التتابع): قم بتوسيع مخطط تسلسل النظام لإضافة كائنات محددة تتعامل مع أحداث النظام. يُظهر مخطط التسلسل، كخطوط عمودية متوازية، عمليات أو كائنات مختلفة تعيش في وقت واحد ، وكأسهم أفقية، يتم تبادل الرسائل فيما بينها، بالترتيب الذي تظهر به.
- مخطط الصنف: يمثل الرسم التخطيطي للصنف نوعًا من مخطط لغة النمذجة الموحدة للهيكل الثابت يصف بنية النظام من خلال إظهار أصناف النظام وسماتها والعلاقات بين الأصناف. يمكن للرسائل والأصناف التي تم تحديدها من خلال تطوير مخطط التتابع أن تكون بمثابة مدخلات للإنشاء التلقائي لمخطط الصنف العام للنظام.
بعض مبادئ واستراتيجيات التصميم
[عدل]- حقن التبعية : الفكرة الأساسية هي أنه إذا كان الكائن يعتمد على وجود مثيل لكائن آخر ، فإن الكائن المطلوب «يتم حقنه» في الكائن التابع؛ على سبيل المثال ، يتم تمرير اتصال قاعدة بيانات كقيمة للمنشئ بدلاً من إنشاء واحد داخليًا.
- مبدأ التبعيات اللاحلقية الرسم البياني للتبعية للحزم أو المكونات: تعتمد التقسيمات على نطاق العمل لمطور واحد يجب ألا يحتوي على دورات. ويشار إلى هذا أيضًا بوجود رسم بياني لا حلقي موجه.[2] على سبيل المثال ، تعتمد الحزمة C على الحزمة B ، والتي تعتمد على الحزمة A. إذا كانت الحزمة A تعتمد أيضًا على الحزمة C، فستكون لديك حلقة.
ملحق: مسرد المصطلحات الإنجليزية
[عدل]مَسرد المفردات وفق أقسام المقالة | |
المقدمة | |
التصميم كائني التوجه | Object-oriented design |
كيان | entity |
"واجهة الكائن" | interface object |
تعرّف | defines |
تم تحديدها | identified |
توثيقها | documented |
المبنية على الأصناف | class-based |
النموذج الأولي للكائن | object prototype-based |
مثيل للأصنف | instantiating classes |
استنساخ | cloning |
تشمل | encompassing |
التحلل | decomposition |
وتدوينًا | depicting |
الإدخال | input |
إخراج | output |
مخرجات الأداة | output artifact |
تغذية راجعة | feedback |
عملية تكرارية | iterative process |
الأدوات | artifacts |
لقطة واحدة | one shot |
عناصر الإدخال النموذجية | typical input artifacts |
لنموذج المفاهيمي | Conceptual model |
التنفيذ | implementation |
حالة الاستخدام | Use case |
الممثلون | actors |
مستخدمين نهائيين | end users |
مخططات حالة الاستخدام | use case diagrams |
لتحديد الممثل | identify the actor |
رسم تخطيطي لتسلسل النظام | System sequence diagram |
الرسوم البيانية لتسلسل النظام | system sequence diagrams (SSD) |
الأحداث المحتملة بين النظام | inter-system events |
وثائق واجهة المستخدم | User interface documentations |
ويصف شكل وأسلوب | look and feel |
واجهة المستخدم للمنتج النهائي | end product's user interface |
تصوير | visualize |
المنتج النهائي | end-product |
المصمم | designer |
نموذج البيانات العلائقية | Relational data model |
نموذج البيانات | data model |
نموذج مجرد | abstract model |
نموذج البيانات العلائقية | relational data model |
الخرائط العلائقية للكائنات | object-relational mapping |
نموذج البيانات العلائقية | relational data model |
الأدوات التصميمية الموجهة للكائنات بالتوازي | object-oriented design artifacts in parallel |
الأداة | artifact |
ميزات مستوى التنفيذ | implementation level features |
المبنية في | built into |
كائن / صنف | Object/Class |
اقتران | coupling |
ربط وثيق | association |
هياكل البيانات | data structures |
الطرق | methods |
الوظائف (الدوال) | functions |
صنف | class |
كائن | object |
بخصائصها | properties |
إخفاء المعلومات | Information hiding |
حماية | protect |
مكونات | components |
كيانات خارجية | external entities |
المفتاحية اللغوية | language keywords |
الإعلان | declared |
متغير | variable |
خاص | private |
محمي | protected |
توسيع | extend |
تجاوز | override |
وظيفة صنف أخر | functionality of another ''class'' |
صنف فرعي | subclass |
الصنف الأصل | superclass |
الدوال | functions |
واجهة بينية | Interface |
تنفيذ | implementation |
طريقة | method |
تعريف | define |
التواقيع | signatures |
تعدد الأشكال | Polymorphism |
اشتقاق النوع بشكل فرعي | subtyping |
بكائناته الفرعية | with its subobjects |
متغير الكائن | object-variable |
احتواء | contain |
لكائنات الفرعية | subobjects |
الكائنات | Defining objects |
إنشاء | creating |
للصنف | class diagram |
الرسم التخطيطي المفاهيمي | conceptual diagram |
خريطة تعيين الكيان إلى الصنف | map entity to class |
تحديد | Identifying |
السمات . | attributes |
أنماط التصميم | design patterns |
أنماط التصميم الكائني التوجه | Object-oriented design patterns |
العلاقات | relationships |
التفاعلات | interactions |
أصناف التطبيق النهائي | final application classes |
الكائنات المتضمنة . | objects that are involved |
تعريف | Define |
إطار التطبيق | application framework |
الهيكل القياسي | to implement the standard structure |
لتطبيق | application |
تجميع | bundling |
للمطور | developer |
تحديد الكائنات / البيانات الدائمة | Identify persistent objects/data |
حدد الكائنات | Identify objects |
وقت تشغيل واحد للتطبيق | single runtime of the application |
قاعدة بيانات علائقية | relational database |
تخطيط علاقة الكائن | object relation mapping |
الكائنات البعيدة | remote objects |
مخطط التسلسل | Sequence diagram |
مخطط تسلسل النظام | system sequence diagram |
في وقت واحد | simultaneously |
وكأسهم أفقية | horizontal arrows |
مخطط الصنف | Class diagram |
مخطط لغة النمذجة الموحدة | UML |
للهيكل الثابت | static structure |
بنية النظام | structure of a system |
أصناف النظام | system's classes |
سماتها | attributes |
العلاقات بين الأصناف | relationships between the classes |
مدخلات | Inputs |
لمخطط الصنف العام للنظام | global class diagram of the system |
حقن التبعية | Dependency injection |
الكائن | object |
وجود مثيل لكائن آخر | instance of some other object |
يتم حقنه | injected |
الكائن التابع | dependent |
اتصال قاعدة بيانات | database connection |
كقيمة | argument |
للمنشئ | constructor |
بدلاً من إنشاء واحد داخليًا | instead of creating one internally |
مبدأ التبعيات اللاحلقية | Acyclic dependencies principle |
الرسم البياني للتبعية للحزم | dependency graph of packages |
المكونات | components |
التقسيمات | granularity |
نطاق العمل | scope of work |
رسم بياني لا حلقي موجه | directed acyclic graph |
الحزمة | package |
حلقة | cycle |
مبدأ إعادة الاستخدام المركب | Composite reuse principle |
التركيب | composition |
متعدد الأشكال | polymorphic |
انظر أيضًا
[عدل]المراجع
[عدل]- ^ ا ب Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. 1995. ISBN:0-201-63361-2. مؤرشف من الأصل في 2020-03-26.
- ^ "What Is Object-Oriented Design?". Object Mentor. مؤرشف من الأصل في 2007-06-30. اطلع عليه بتاريخ 2007-07-03.
روابط خارجية
[عدل]- التحليل والتصميم الكائني - نظرة عامة باستخدام UML
- لارمان ، كريج. تطبيق UML والأنماط - الإصدار الثالث
- التحليل والتصميم الكائني التوجه
- LePUS3 وClass-Z : لغات النمذجة الرسمية للتصميم الكائني التوجه