تعد **جداول القرارات** طريقة محكمة ودقيقة إلى الآن للمنطق المعقد للنموذج.

فجداول القرارات، مثل خارطة الانسياب وعبارات if-then-else وswitch-case، تربط العبارات الشرطية بالأعمال المراد تنفيذها، ولكن تقوم بذلك في العديد من الحالات بطريقة أكثر تميزًا.
وكان يشيع في ستينيات القرن العشرين وسبعينيات القرن العشرين استخدام مجموعة من اللغات «المبنية على جداول القرارات» مثل لغة البرمجة Filetab للبرمجة في مجال الأعمال.

البنية
------

**الأرباع الأربعة**| العبارات الشرطية | بدائل العبارات الشرطية |
| الأعمال | إدخالات الأعمال |

يتطابق كل قرار مع متغير أو علاقة أو مسند يتم ذكر القيم المحتملة لأي منها في قائمة بدائل العبارات الشرطية. ويمثل كل عمل إجراءً يتم تنفيذه أو عملية يتم تنفيذها، وتحدد الإدخالات ما إذا كان سيتم (أو في أي ترتيب) تنفيذ الإجراء بالنسبة لمجموعة بدائل العبارات الشرطية التي يتطابق معها الإدخال. وتشتمل العديد من جداول القرارات في بدائل العبارات الشرطية بها على الصورة الرمزية [don't care]، واصلة. وقد يبسط استخدام الصور الرمزية don't cares جداول القرارات، وبشكل خاص عندما يكون لشرط مُعطى تأثير بسيط على الأعمال المراد تنفيذها. وقد وُجد، في بعض الحالات، أن كل العبارات الشرطية التي كان يُعتقد أهميتها في البداية كانت غير متصلة بالموضوع عند عدم تأثير أي من العبارات الشرطية على الأعمال المطلوب تنفيذها.
وباستثناء بنية الأرباع الأربعة الأساسية، تتباين جداول القرارات إلى حد بعيد في الطريقة التي يتم بها تمثيل بدائل العبارات الشرطية وإدخالات الأعمال. تستخدم بعض جداول القرارات قيمًا بسيطة صحيحة/خاطئة لتمثيل البدائل بدلاً من أية جملة شرطية (مماثلة لـ if-then-else)، بينما قد تستخدم بعض الجداول الأخرى البدائل المرقمة (مماثلة لـ switch-case)، بل تستخدم بعض الجداول تمثيلاً منطقيًا غامضًا أو احتماليًا لبدائل العبارات الشرطية. وبنفس الطريقة، قد تمثل إدخالات الأعمال ببساطة ما إذا كان سيتم تنفيذ العمل (التحقق من الأعمال المراد تنفيذها) أو تسلسل الأعمال المراد تنفيذها (عدد الأعمال المراد تنفيذها) في حالة جداول القرارات الأكثر تقدمًا.

مثال
----

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

**مسؤول استكشاف أخطاء الطابعة وإصلاحها**|  |  | القواعد |
| العبارات الشرطية | الطابعة لا تطبع | Y | Y | Y | Y | N | N | N | N |
| يومض مصباح أحمر | Y | Y | N | N | Y | Y | N | N |
| لم يتم التعرف على الطابعة | Y | N | Y | N | Y | N | Y | N |
| الأعمال | افحص كبل التيار الكهربائي |   |   | X |   |   |   |   |   |
| افحص كبل الطابعة – الكمبيوتر | X |   | X |   |   |   |   |   |
| تحقق من تثبيت برنامج الطابعة | X |   | X |   | X |   | X |   |
| افحص/استبدل الحبر | X | X |   |   | X | X |   |   |
| تحقق من عدم انحشار الورق |   | X |   | X |   |   |   |   |

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

جداول القرارات المضمنة في البرامج
---------------------------------

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

**جدول قرار ثابت**| الإدخال | مؤشر الدالة |
| '1' | الدالة 1 (البدء) |
| '2' | الدالة 2 (المعالجة 2) |
| '9' | الدالة 9 (الإنهاء) |

يمكن كتابة كود للعديد من العبارات الشرطية بنفس الطريقة لتضمين منطق البرنامج ككل في شكل جدول قرار أو جدول تحكم «قابل للتنفيذ».

انظر أيضا
---------

* شجرة قرار
* استدلال معتمد على حالات سابقة
* مخطط السبب والأثر

المراجع
-------

1. ↑  "A History of Decision Tables", www.catalyst.com  نسخة محفوظة 08 يوليو 2014 على موقع واي باك مشين.
2. ↑    نسخة محفوظة 02 سبتمبر 2011 على موقع واي باك مشين.
3. ↑    نسخة محفوظة 08 سبتمبر 2012 على موقع واي باك مشين.
4. ↑  Wets، Geert؛ Witlox، Frank؛ Timmermans، Harry؛ Vanthienen، Jan (1996)، "Locational choice modelling using fuzzy decision tables"، *نسخة مؤرشفة*، Biennial Conference of the North American Fuzzy Information Processing Society، Berkeley, CA: IEEE، ص. 80–84، مؤرشف من الأصل في 2011-07-24، اطلع عليه بتاريخ 2011-05-23
5. ↑  "A Real CCIDE Example" نسخة محفوظة 28 يوليو 2017 على موقع واي باك مشين.
6. ↑  Experience With The Cope Decision Table Processor نسخة محفوظة 04 مايو 2017 على موقع واي باك مشين.
7. ↑  Udo W. Pooch, "Translation of Decision Tables," ACM Computing Surveys, Volume 6, Issue 2 (June 1974) Pages: 125–151 ISSN:0360-0300

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

* Dwyer, B. and Hutchings, K. (1977) "Flowchart Optimisation in Cope, a Multi-Choice Decision Table" Aust. Comp. J. Vol. 9 No. 3 p. 92 (Sep. 1977).
* Fisher, D.L. (1966) "Data, Documentation and Decision Tables" Comm ACM Vol. 9 No. 1 (Jan. 1966) p. 26–31.
* General Electric Company (1962) GE-225 TABSOL reference manual and GF-224 TABSOL application manual CPB-l47B (June 1962).
* Grindley, C.B.B. (1968) "The Use of Decision Tables within Systematics" Comp. J. Vol. 11 No. 2 p. 128 (Aug. 1968).
* Jackson, M.A. (1975) Principles of Program Design Academic Press
* Myers, H.J. (1972) "Compiling Optimised Code from Decision Tables" IBM J. Res. & Development (Sept. 1972) p. 489–503.
* Pollack, S.L. (1962) "DETAB-X: An improved business-oriented computer language" Rand Corp. Memo RM-3273-PR (August 1962)
* Schumacher, H. and Sevcik, K.C. (1976) "The Synthetic Approach to Decision Table Conversion" Comm. ACM Vol. 19 No. 6 (June 1976) p. 343–351

* أيقونة بوابةبوابة برمجة الحاسوب
* أيقونة بوابةبوابة علم الحاسوب
* أيقونة بوابةبوابة تقانة المعلومات