تصميم كائني التوجه

التصميم كائني التوجه هو احد مراحل تحليل البرمجيات قبل البدء بتنفيذ الأكواد البرمجية

التصميم كائني التوجه (بالإنجليزية: Object-oriented design)‏ هو عملية تخطيط نظام خاص بالكائنات المتفاعلة بغرض حل مشكلة برمجية. بمكن التعبير عنها أنها عبارة عن نهج واحد لتصميم البرمجيات .

نظرة عامة

عدل

يحتوي الكائن على بيانات وإجراءات مغلفة مجمعة معًا لتمثيل كيان. «واجهة الكائن» تعرّف كيفية التعامل مع الكائن. يتم وصف برنامج ما كائني التوجه بتفاعل هذه الكائنات. التصميم الموجه للكائنات هو نظام تعريف الكائنات وتفاعلاتها لحل مشكلة تم تحديدها وتوثيقها أثناء التحليل الموجه للكائنات.

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

موضوعات التصميم كائني التوجه

عدل

الإدخال (المصادر) للتصميم كائني التوجه

عدل

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

بعض عناصر الإدخال النموذجية للتصميم كائني التوجه هي:

  • النموذج المفاهيمي: نتيجة للتحليل الكائني التوجه، أنه يلتقط المفاهيم في نطاق المشكلة. يتم اختيار النموذج المفاهيمي بشكل صريح ليكون مستقلاً عن تفاصيل التنفيذ، مثل التزامن أو تخزين البيانات.
  • حالة الاستخدام: وصف تسلسل الأحداث التي تؤدي مجتمعةً إلى قيام النظام بعمل مفيد. توفر كل حالة استخدام سيناريو واحد أو أكثر ينقل الكيفية التي ينبغي أن يتفاعل بها النظام مع المستخدمين الذين يطلق عليهم الممثلون لتحقيق هدف أو وظيفة تجارية محددة. قد يكون الممثلون في حالة الاستخدام مستخدمين نهائيين أو أنظمة أخرى. في كثير من الظروف، يتم شرح حالات الاستخدام بشكل أكبر في مخططات حالة الاستخدام. تُستخدم مخططات حالة الاستخدام لتحديد الممثل (المستخدمون أو الأنظمة الأخرى) والعمليات التي يقومون بها.
  • رسم تخطيطي لتسلسل النظام: الرسوم البيانية لتسلسل النظام (SSD) هي صورة توضح ، بالنسبة لسيناريو معين لحالة الاستخدام ، الأحداث التي يولدها الممثلين الخارجيين ، وترتيبهم ، والأحداث المحتملة بين النظام.
  • وثائق واجهة المستخدم (إن وجدت): مستند يعرض ويصف شكل وأسلوب واجهة المستخدم للمنتج النهائي. ليس من الضروري الحصول على هذا ، ولكنه يساعد على تصوير المنتج النهائي وبالتالي يساعد المصمم.
  • نموذج البيانات العلائقية (إن أمكن): نموذج البيانات هو نموذج مجرد يصف كيفية تمثيل البيانات واستخدامها. إذا لم يتم استخدام قاعدة بيانات كائن ، يجب إنشاء نموذج البيانات العلائقية قبل التصميم ، نظرًا لأن الإستراتيجية المختارة لرسم الخرائط العلائقية للكائنات هي ناتج لعملية تصميم كائني موجه. ومع ذلك ، من الممكن تطوير نموذج البيانات العلائقية الأدوات التصميمية الموجهة للكائنات بالتوازي ، ويمكن أن يحفز نمو الأداة لتحسين الأدوات الأخرى.

مفاهيم موجهة للكائنات

عدل

المفاهيم الأساسية الخمسة للتصميم الموجه للكائنات هي ميزات مستوى التنفيذ المبنية في لغة البرمجة. غالبًا ما تتم الإشارة إلى هذه الميزات من خلال هذه الأسماء الشائعة:

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

مفاهيم التصميم

عدل
  • تعريف الكائنات، إنشاء رسم تخطيطي للصنف من الرسم التخطيطي المفاهيمي: عادة تعيين الكيان إلى الصنف.
  • تحديد السمات.
  • استخدام أنماط التصميم (إن وجدت): نمط التصميم ليس تصميمًا منتهيًا ، إنه وصف لحل لمشكلة شائعة في سياق ما.[1] الميزة الرئيسية لاستخدام نمط التصميم هي أنه يمكن إعادة استخدامه في تطبيقات متعددة. يمكن أيضًا اعتباره قالباً لكيفية حل مشكلة يمكن استخدامها في العديد من المواقف و/ أو التطبيقات المختلفة. عادةً ما تُظهر أنماط التصميم الكائني التوجه العلاقات والتفاعلات بين الأصناف أو الكائنات ، دون تحديد أصناف التطبيق النهائي أو الكائنات المتضمنة.
  • تعريف إطار التطبيق (إن وجد): إطار التطبيق عادة ما يكون مجموعة من المكتبات أو الأصناف التي يتم استخدامها لتنفيذ الهيكل القياسي لتطبيق لنظام تشغيل معين. من خلال تجميع كمية كبيرة من الكود القابل لإعادة الاستخدام في إطار عمل ، بذلك يتم توفير الكثير من الوقت للمطور ، حيث يمكن أن يحفظه في مهمة إعادة كتابة كميات كبيرة من الكود القياسي لكل تطبيق جديد يُطوّر.
  • تحديد الكائنات / البيانات الدائمة (إن أمكن): حدد الكائنات التي يجب أن تستمر لفترة أطول من وقت تشغيل واحد للتطبيق. إذا تم استخدام قاعدة بيانات علائقية، قم بتصميم تخطيط علاقة الكائن.
  • تحديد وتعريف الكائنات البعيدة (إن وجدت).

إخراج (مخرجات) التصميم كائني التوجه

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

بعض مبادئ واستراتيجيات التصميم

عدل
  • حقن التبعية : الفكرة الأساسية هي أنه إذا كان الكائن يعتمد على وجود مثيل لكائن آخر ، فإن الكائن المطلوب «يتم حقنه» في الكائن التابع؛ على سبيل المثال ، يتم تمرير اتصال قاعدة بيانات كقيمة للمنشئ بدلاً من إنشاء واحد داخليًا.
  • مبدأ التبعيات اللاحلقية الرسم البياني للتبعية للحزم أو المكونات: تعتمد التقسيمات على نطاق العمل لمطور واحد يجب ألا يحتوي على دورات. ويشار إلى هذا أيضًا بوجود رسم بياني لا حلقي موجه.[2] على سبيل المثال ، تعتمد الحزمة C على الحزمة B ، والتي تعتمد على الحزمة A. إذا كانت الحزمة A تعتمد أيضًا على الحزمة C، فستكون لديك حلقة.
  • مبدأ إعادة الاستخدام المركب: يفضل التركيب متعدد الأشكال للكائنات على الميراث.[1]

ملحق: مسرد المصطلحات الإنجليزية

عدل
مَسرد المفردات وفق أقسام المقالة
المقدمة
التصميم كائني التوجه 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

انظر أيضًا

عدل

المراجع

عدل
  1. ^ ا ب Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. 1995. ISBN:0-201-63361-2. مؤرشف من الأصل في 2020-03-26.
  2. ^ "What Is Object-Oriented Design?". Object Mentor. مؤرشف من الأصل في 2007-06-30. اطلع عليه بتاريخ 2007-07-03.

روابط خارجية

عدل