التجريد (علوم الحاسوب)

في مجال البرمجيات ، يوفر التجريد إمكانية الوصول مع إخفاء التفاصيل التي قد تجعل الوصول أكثر صعوبة. [ 1 ] فهو يركز الانتباه على التفاصيل الأكثر أهمية. [ 2 ] [ 3 ] ومن الأمثلة على ذلك نوع البيانات المجرد الذي يفصل بين الاستخدام وتمثيل البيانات [ 4 ] ، والدوال التي تشكل شجرة استدعاء تكون أكثر عمومية في القاعدة وأكثر تحديدًا باتجاه الأوراق.

الأساس المنطقي

جوهر التجريد هو الحفاظ على المعلومات ذات الصلة في سياق معين، ونسيان المعلومات غير ذات الصلة في ذلك السياق.

تعمل الحوسبة في الغالب بمعزل عن العالم المادي. تُطبّق الأجهزة نموذجًا للحوسبة قابلًا للتبادل مع نماذج أخرى. [ 6 ] يُبنى البرنامج ضمن بنى معمارية تُمكّن البشر من إنشاء أنظمة ضخمة بالتركيز على عدد قليل من المسائل في كل مرة. تتكون هذه البنى من خيارات محددة من التجريدات. تُعدّ القاعدة العاشرة لغرينسبون بمثابة حكمة موجزة حول حتمية هذه البنية وتعقيدها في آنٍ واحد.

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

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

تحاول بعض المفاهيم المجردة الحد من نطاق المفاهيم التي يحتاج المبرمج إلى معرفتها، وذلك بإخفاء المفاهيم المجردة التي بُنيت عليها تمامًا. وقد انتقد مهندس البرمجيات والكاتب جويل سبولسكي هذه الجهود، مدعيًا أن جميع المفاهيم المجردة غير كاملة ، وأنها لا تستطيع إخفاء التفاصيل الكامنة تحتها بشكل كامل؛ [ 7 ] ومع ذلك، فإن هذا لا ينفي فائدة التجريد.

تم تصميم بعض التجريدات للتفاعل مع تجريدات أخرى - على سبيل المثال، قد تحتوي لغة البرمجة على واجهة وظيفة خارجية لإجراء استدعاءات للغة ذات المستوى الأدنى.

خصائص التجريد

لغات البرمجة

تُوفّر لغات البرمجة المختلفة أنواعًا مختلفة من التجريد، وذلك تبعًا للتطبيقات المقصودة للغة. على سبيل المثال:

أنظمة المواصفات

طوّر المحللون أساليب متنوعة لتحديد مواصفات أنظمة البرمجيات بشكل رسمي. ومن بين الأساليب المعروفة ما يلي:

  • طريقة قائمة على النموذج المجرد (VDM، Z)؛
  • التقنيات الجبرية (Larch، CLEAR، OBJ، ACT ONE، CASL)؛
  • التقنيات القائمة على العمليات (LOTOS، SDL، Estelle)؛
  • التقنيات القائمة على التتبع (SPECIAL، TAM)؛
  • التقنيات القائمة على المعرفة (التحسين، والخلاصة).

لغات المواصفات

تعتمد لغات المواصفات عمومًا على التجريدات بأنواعها المختلفة، إذ تُعرَّف المواصفات عادةً في مراحل مبكرة من المشروع (وعلى مستوى تجريدي أعلى) مقارنةً بالتنفيذ النهائي. فعلى سبيل المثال، تسمح لغة النمذجة الموحدة (UML) بتعريف الفئات المجردة ، التي تبقى مجردة في مشاريع الشلال خلال مرحلتي تصميم البنية والمواصفات.

تجريد التحكم

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

a := (1 + 2) * 5

يبدو هذا الحساب بسيطًا وواضحًا للإنسان ( "واحد زائد اثنين يساوي ثلاثة، مضروبًا في خمسة يساوي خمسة عشر" ). مع ذلك، فإن الخطوات الأساسية اللازمة لإجراء هذا التقييم، وإرجاع القيمة "15"، ثم إسناد هذه القيمة إلى المتغير "a"، هي في الواقع دقيقة ومعقدة للغاية. يجب تحويل القيم إلى تمثيل ثنائي (وهي مهمة غالبًا ما تكون أكثر تعقيدًا مما يُتصور)، وتفكيك العمليات الحسابية (بواسطة المُترجم أو المُفسِّر) إلى تعليمات لغة التجميع (وهي أيضًا أقل بديهية للمبرمج: فعمليات مثل إزاحة سجل ثنائي إلى اليسار، أو جمع المتمم الثنائي لمحتويات سجل مع آخر، لا تُمثل ببساطة الطريقة التي يفكر بها البشر في العمليات الحسابية المجردة كالجمع أو الضرب). وأخيرًا، فإن تعيين القيمة الناتجة "15" للمتغير المسمى "a"، بحيث يمكن استخدام "a" لاحقًا، يتضمن خطوات إضافية "خلف الكواليس" للبحث عن تسمية المتغير والموقع الناتج في الذاكرة الفعلية أو الافتراضية، وتخزين التمثيل الثنائي لـ "15" في موقع الذاكرة هذا، وما إلى ذلك.

بدون تجريد التحكم، سيحتاج المبرمج إلى تحديد جميع خطوات مستوى السجلات/الثنائي في كل مرة يريد فيها ببساطة جمع أو ضرب عددين وتعيين النتيجة لمتغير. يترتب على هذا التكرار في الجهد نتيجتان سلبيتان خطيرتان:

  1. يجبر ذلك المبرمج على تكرار المهام الشائعة باستمرار في كل مرة يحتاج فيها إلى عملية مماثلة
  2. إنه يجبر المبرمج على البرمجة وفقًا للأجهزة ومجموعة التعليمات المحددة.

البرمجة الهيكلية

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

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

في نظام أكبر، قد يتضمن ذلك تقسيم المهام المعقدة إلى العديد من الوحدات المختلفة. لنأخذ على سبيل المثال نظامًا يُعنى بإدارة الرواتب على متن السفن وفي المكاتب البرية:

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

تُنتج هذه الطبقات تأثير عزل تفاصيل تنفيذ أحد المكونات وأساليبه الداخلية المتنوعة عن المكونات الأخرى. وتتبنى البرمجة الكائنية التوجه هذا المفهوم وتوسعه.

تجريد البيانات

يفرض تجريد البيانات فصلاً واضحاً بين الخصائص المجردة لنوع البيانات والتفاصيل الملموسة لتنفيذه. الخصائص المجردة هي تلك التي يراها كود العميل الذي يستخدم نوع البيانات - أي واجهة نوع البيانات - بينما يبقى التنفيذ الملموس خاصاً تماماً، بل ويمكن تغييره، مثلاً لتحسين الكفاءة بمرور الوقت. الفكرة هي أن هذه التغييرات لا يُفترض أن تؤثر على كود العميل، لأنها لا تُحدث أي تغيير في السلوك المجرد.

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

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

استخلاص البيانات يدويًا

على الرغم من أن معظم عمليات استخلاص البيانات تتم عبر علوم الحاسوب والأتمتة، إلا أن هناك أوقاتًا تُجرى فيها هذه العملية يدويًا ودون تدخل برمجي. ويمكن فهم ذلك من خلال استخلاص البيانات ضمن عملية إجراء مراجعة منهجية للأدبيات. في هذه المنهجية، يتم استخلاص البيانات بواسطة مُستخلص واحد أو أكثر عند إجراء تحليل تجميعي ، مع تقليل الأخطاء من خلال استخلاص البيانات المزدوج متبوعًا بمراجعة مستقلة، تُعرف بالتحكيم . [ 11 ]

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

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

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

على سبيل المثال، يتميز نظام كائنات Common Lisp أو مفهوم "الذات" (Self) بتمييز أقل بين الأصناف والمثيلات، واستخدام أكبر للتفويض من أجل تعدد الأشكال . يتم تجريد الكائنات والوظائف الفردية بمرونة أكبر لتتناسب بشكل أفضل مع التراث الوظيفي المشترك من لغة Lisp .

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

على الرغم من أن هذه الأمثلة تقدم استراتيجيات بديلة لتحقيق نفس التجريد، إلا أنها لا تغير بشكل أساسي الحاجة إلى دعم الأسماء المجردة في التعليمات البرمجية - فجميع البرمجة تعتمد على القدرة على تجريد الأفعال كوظائف، والأسماء كهياكل بيانات، وإما كعمليات.

لنأخذ على سبيل المثال نموذجًا لجزء من كود جافا لتمثيل بعض "حيوانات" المزرعة الشائعة بمستوى تجريد مناسب لنمذجة جوانب بسيطة من جوعها وتغذيتها. يُعرّف هذا الجزء Animalفئة لتمثيل كل من حالة الحيوان ووظائفه:

public class Animal extends LivingThing { private Location loc ; private double energyReserves ;public boolean isHungry () { return energyReserves < 2.5 ; } public void eat ( Food food ) { // استهلاك الطعام energyReserves += food.getCalories ( ); } public void moveTo ( Location location ) { // الانتقال إلى موقع جديد this.loc = location ; } }

باستخدام التعريف المذكور أعلاه، يمكن إنشاء كائنات من النوعحيوانواستدعاء أساليبهم على النحو التالي:

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

في المثال أعلاه، يمثل الصنف Animalتجريدًا يستخدم بدلاً من حيوان حقيقي، LivingThingوهو تجريد إضافي (في هذه الحالة تعميم) لـ Animal.

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

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

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

تصبح القرارات المتعلقة بما يجب تجريده وما يجب إبقاؤه تحت سيطرة المبرمج هي الشاغل الرئيسي للتصميم الموجه للكائنات وتحليل المجال - إن تحديد العلاقات ذات الصلة في العالم الحقيقي هو في الواقع شاغل التحليل الموجه للكائنات أو تحليل الأنظمة القديمة .

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

الاعتبارات

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

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

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

يؤثر مستوى التجريد في لغة البرمجة على سهولة استخدامها بشكل عام . يتضمن إطار الأبعاد المعرفية مفهوم تدرج التجريد في شكل منهجي. يُمكّن هذا الإطار مصمم لغة البرمجة من دراسة المفاضلات بين التجريد وخصائص التصميم الأخرى، وكيف تؤثر التغييرات في التجريد على سهولة استخدام اللغة.

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

التجريد هو المفهوم الأساسي للتفسير المجرد . ويتم التحقق من النموذج عمومًا على نسخ مجردة من الأنظمة المدروسة.

مستويات التجريد

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

أنظمة قواعد البيانات

نظراً لأن العديد من مستخدمي أنظمة قواعد البيانات يفتقرون إلى معرفة متعمقة بهياكل بيانات الحاسوب، فإن مطوري قواعد البيانات غالباً ما يخفون التعقيد من خلال المستويات التالية:

مستويات تجريد البيانات لنظام قاعدة البيانات

المستوى المادي – يصف أدنى مستوى من مستويات التجريد كيفية تخزين النظام للبيانات فعليًا. ويصف هذا المستوى هياكل البيانات المعقدة منخفضة المستوى بالتفصيل.

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

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

الهندسة المعمارية متعددة الطبقات

إن القدرة على توفير تصميم بمستويات مختلفة من التجريد يمكن أن

  • تبسيط التصميم بشكل كبير
  • تمكين مختلف اللاعبين من العمل بفعالية على مستويات مختلفة من التجريد
  • دعم قابلية نقل مكونات البرمجيات (القائمة على النماذج بشكل مثالي)

يمكن لكل من تصميم الأنظمة وتصميم العمليات التجارية الاستفادة من هذا. وتُنتج بعض عمليات التصميم تحديداً تصاميم تحتوي على مستويات مختلفة من التجريد.

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

انظر أيضاً

مراجع

  1. كولبورن، تيموثي؛ شوت، غاري (5 يونيو 2007). "التجريد في علوم الحاسوب". العقول والآلات . 17 (2): 169-184 . doi : 10.1007/s11023-007-9061-7 . ISSN 0924-6495 . S2CID 5927969 .  
  2. كريمر، جيف (1 أبريل 2007). "هل التجريد هو مفتاح الحوسبة؟". مجلة اتصالات رابطة مكائن ​​الحوسبة . 50 (4): 36-42 . doi : 10.1145/1232743.1232745 . ISSN 0001-0782 . S2CID 12481509 .  
  3. بن آري، مردخاي (1 مارس 1998). "البنائية في تعليم علوم الحاسوب" . نشرة ACM SIGCSE . 30 (1): 257، 257-261 . doi : 10.1145/274790.274308 . ISSN 0097-8418 . 
  4. ليسكوف، باربرا (1 مايو 1988). "الكلمة الرئيسية - تجريد البيانات والتسلسل الهرمي". ملحق لوقائع مؤتمر أنظمة ولغات وتطبيقات البرمجة كائنية التوجه (ملحق) - OOPSLA '87 . المجلد 23. ACM. الصفحات 17-34 . doi : 10.1145/62138.62141 . ISBN   0897912667. S2CID 14219043 . {{cite book}}تم |journal=تجاهله ( مساعدة )
  5. غوتاغ، جون ف. (18 يناير 2013). مقدمة في الحوسبة والبرمجة باستخدام بايثون ( طبعة ربيع 2013). كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا. ISBN  978-0262519632.
  6. فلوريدي، لوتشيانو (سبتمبر 2008). "منهج مستويات التجريد" . العقول والآلات . 18 (3): 303-329 . doi : 10.1007/s11023-008-9113-7 . hdl : 2299/2998 . ISSN 0924-6495 . S2CID 7522925 .  
  7. سبولسكي، جويل (11 نوفمبر 2002). "قانون التجريدات المتسربة" .
  8. "الأساليب والفئات المجردة" . دروس جافا . أوراكل . تم الاطلاع عليه في 4 سبتمبر 2014 .
  9. "استخدام واجهة كنوع" . دروس جافا . أوراكل . تم الاطلاع عليه في 4 سبتمبر 2014 .
  10. تستند هذه المقالة إلى مواد مأخوذة من Abstraction في Free On-line Dictionary of Computing قبل 1 نوفمبر 2008 وتم دمجها بموجب شروط "إعادة الترخيص" الخاصة بـ GFDL ، الإصدار 1.3 أو أحدث.
  11. إي، جيان يو؛ سالدانها، إيان جيه؛ كانر، جوزيف؛ شميد، كريستوفر إتش؛ لي، جيمي تي؛ لي، تيانجينغ (2020). "التحكيم، وليس الخبرة في استخلاص البيانات، هو العامل الأهم في تقليل الأخطاء في استخلاص البيانات في المراجعات المنهجية". أساليب توليف البحوث . 11 (3): 354-362 . doi : 10.1002/jrsm.1396 . ISSN 1759-2879 . PMID 31955502. S2CID 210829764 .   
  12. لوتشيانو فلوريدي ، النزعة التفاضلية ومنهج التجريد ، تقرير بحثي صادر عن معهد الدراسات الأوروبية بتاريخ 22/11/2004

للمزيد من القراءة

  • مثال SimArch على بنية الطبقات لأنظمة المحاكاة الموزعة.