التراجع

رموز عالمية للتراجع والإعادة

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

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

عكس عملية التراجع هو عملية الإعادة . يقوم أمر الإعادة بعكس عملية التراجع أو نقل المخزن المؤقت إلى حالة أحدث.

تتضمن المكونات الشائعة لوظيفة التراجع الأوامر التي نفذها المستخدم، وسجل العمليات الذي يخزن الإجراءات المكتملة، ومدير التراجع/الإعادة للتحكم في سجل العمليات، وواجهة المستخدم للتفاعل مع المستخدم. [ 4 ]

في معظم التطبيقات الرسومية لأنظمة التشغيل الشائعة (مثل مايكروسوفت ويندوز ، لينكس، وأنظمة بي إس دييكون اختصار لوحة المفاتيح للتراجع هو Ctrl+Z ، وللإعادة هو + أو + + . في معظم تطبيقات macOS ، يكون اختصار التراجع هو + ، وللإعادة هو + + . على جميع المنصات، يمكن الوصول إلى وظائف التراجع/الإعادة عبر قائمة "تحرير" .CtrlYCtrlShiftZCommandZ⌘ Command⇧ ShiftZ

تاريخ

تم اختراع القدرة على التراجع عن عملية ما على جهاز الكمبيوتر بشكل مستقل عدة مرات، استجابةً لكيفية استخدام الناس لأجهزة الكمبيوتر. [ 5 ]

يُذكر أن نظام استرجاع الملفات وتحريرها ، الذي طُوّر بدءاً من عام 1968 في جامعة براون ، هو أول نظام حاسوبي يحتوي على خاصية "التراجع". [ 6 ] [ 7 ]

قام وارن تيتلمان بتطوير مساعد للمبرمج كجزء من BBN-LISP مع وظيفة التراجع، بحلول عام 1971. [ 8 ]

اقترح مارفن زيلكوفيتز في أطروحته للدكتوراه (التنفيذ العكسي كأداة تشخيصية) عام 1971 في جامعة كورنيل مفهوم التنفيذ العكسي، وهو في جوهره عملية تراجع. وفي أطروحته للدكتوراه (نظام تحليل تفاعلي لأخطاء وقت التنفيذ) في جامعة إلينوي في أوربانا-شامبين عام 1975، وسّع آلان إم. ديفيس مفهوم زيلكوفيتز ليُبيّن كيف يُمكن استخدام التراجع متعدد المستويات (أي التنفيذ العكسي متعدد المستويات) لتصحيح أخطاء البرامج.

كان محرر النصوص Xerox PARC Bravo مزودًا بأمر التراجع (Undo) عام 1974. [ 9 ] وأشار تقرير بحثي صدر عام 1976 من إعداد لانس أ. ميلر وجون س. توماس من شركة IBM بعنوان " القضايا السلوكية في استخدام الأنظمة التفاعلية " [ 10 ] إلى أنه "سيكون من المفيد جدًا السماح للمستخدمين بالتراجع عن الأمر السابق مباشرةً على الأقل (عن طريق إصدار أمر تراجع خاص)". [ 11 ] وقد خصص المبرمجون في مركز أبحاث Xerox PARC اختصار لوحة المفاتيح Ctrl-Z لأمر التراجع، والذي أصبح ميزة أساسية في محررات النصوص ومعالجات الكلمات في عصر الحواسيب الشخصية . [ 12 ] وفي عام 1980، بدأ لاري تيسلر من Xerox PARC العمل في شركة Apple Computer . وهناك، دافع هو وبيل أتكينسون عن وجود أمر التراجع كميزة قياسية في جهاز Apple Lisa . استطاع أتكينسون إقناع مطوري برامج تطبيق ليزا بتضمين مستوى واحد من التراجع والإعادة، لكنه فشل في مساعيه لفرض مستويات متعددة. وعندما طرحت آبل جهاز ماكنتوش ، خليفة ليزا ، اشترطت أن تتضمن جميع التطبيقات القياسية أمر "التراجع" كأول أمر في قائمة "تحرير"، [ 13 ] وهو ما ظل المعيار في نظامي macOS وويندوز حتى يومنا هذا.

أُدخلت أوامر التراجع متعددة المستويات في ثمانينيات القرن العشرين، مما أتاح للمستخدمين التراجع عن سلسلة من الإجراءات، وليس فقط الإجراء الأخير. [ 12 ] وقد توفرت هذه الميزة في برامج EMACS وغيرها من برامج تحرير الشاشة التي تعمل بنظام المشاركة الزمنية قبل برامج الحواسيب الشخصية . وكان برنامج CygnusEd أول محرر نصوص لأجهزة Amiga مزودًا بميزة التراجع/الإعادة غير المحدودة. كما احتوى برنامج AtariWriter ، وهو تطبيق لمعالجة النصوص طُرح عام 1982، على ميزة التراجع. أما برنامج NewWord، وهو برنامج آخر لمعالجة النصوص أصدرته شركة NewStar عام 1984، فقد احتوى على أمر استعادة النص المحذوف. [ 12 ] كما احتوى برنامج VisiWord من IBM على أمر استعادة النص المحذوف.

التراجع وإعادة النماذج

يمكن تصنيف نماذج التراجع إلى نماذج خطية وغير خطية. ويمكن تصنيف نموذج التراجع غير الخطي إلى نماذج فرعية تشمل نموذج النص البرمجي، ونموذج US&R، والنموذج الثلاثي، والتراجع الانتقائي. [ 2 ]

من الخصائص الشائعة للنماذج ما يلي:

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

التراجع الخطي

تُنفَّذ عملية التراجع الخطي باستخدام مكدس ( بنية بيانات LIFO) يخزن سجلًا لجميع الأوامر المنفذة. عند تنفيذ أمر جديد، يُضاف إلى أعلى المكدس. لذلك، لا يمكن التراجع إلا عن الأمر الأخير المنفذ وإزالته من السجل. يمكن تكرار عملية التراجع طالما أن السجل غير فارغ. [ 2 ]

النموذج الخطي المقيد

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

التراجع غير الخطي

يتمثل الفرق الرئيسي بين التراجع الخطي والتراجع غير الخطي في إمكانية المستخدم التراجع عن الأوامر المنفذة بترتيب عشوائي. إذ لا يمكنه التراجع عن الأمر الأخير، بل يمكنه اختيار أمر من القائمة. [ 4 ] يوجد في النموذج غير الخطي فئات فرعية تُطبّق هذا النموذج.

نموذج البرمجة النصية

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

نموذج البحث والإنقاذ الأمريكي

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

النموذج الثلاثي

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

التراجع الانتقائي

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

التراجع الانتقائي المباشر

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

تطبيق متعدد المستخدمين

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

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

يختلف عدد الإجراءات السابقة التي يمكن التراجع عنها باختلاف البرنامج والإصدار وإمكانيات الأجهزة أو البرامج. على سبيل المثال، يبلغ حجم سجل التراجع/الإعادة الافتراضي في برنامج Adobe Photoshop عشرين إجراءً، ولكن يمكن للمستخدم تغييره. كمثال آخر، كانت الإصدارات السابقة من برنامج Microsoft Paint تسمح بالتراجع عن ثلاثة تعديلات فقط؛ أما الإصدار الذي طُرح في نظام Windows 7 فقد رفع هذا الحد إلى خمسين إجراءً.

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

تنفيذ التراجع

يمكن تنفيذ خاصية التراجع من خلال أنماط مختلفة. أكثر الأنماط شيوعاً هي نمط الأوامر ونمط التذكير .

نمط الأوامر

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

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

نمط تذكاري

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

في نمط التذكار، تُسمى آلية التراجع "الحارس". وهو مسؤول عن حفظ التذكارات دون تغيير محتوياتها. وللتراجع، يطلب الحارس تذكارًا من المُنشئ ثم يُفعّل التراجع. [ 15 ]

يمكن تنفيذ معظم آلية التراجع دون الاعتماد على تطبيقات أو فئات أوامر محددة. ويشمل ذلك "إدارة قائمة السجل، وشريط تمرير السجل، وعناصر القائمة للتراجع والإعادة، وتحديث عناصر القائمة بناءً على اسم الأمر التالي المتاح". [ 2 ]

تحتوي كل فئة أوامر على دالة `do` تُستدعى عند تنفيذ أمر ما. وتُنفّذ دالة `undo` العملية العكسية لدالة `do`. ولتنفيذ العملية العكسية، توجد عدة استراتيجيات مختلفة.

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

انظر أيضاً

مراجع

  1. ميرتوس (31 يناير 2026). "خيار التراجع غيّر مفهوم المخاطرة" . crumbs.top . تم الاطلاع عليه بتاريخ 7 فبراير 2026 .
  2. ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ١٠ ١١ ١٢ ١٣ ١٤ بيرلاج، توماس (١٩٩٤-٠٩-٠١). "آلية تراجع انتقائية لواجهات المستخدم الرسومية القائمة على كائنات الأوامر". معاملات ACM في التفاعل بين الإنسان والحاسوب . ١ (٣): ٢٦٩-٢٩٤ . doi : 10.1145/196699.196721 . ISSN 1073-0516 . S2CID 11848679 .  
  3. مايرز، براد أ.؛ كوسبي، ديفيد س. (13 أبريل 1996). "كائنات أوامر هرمية قابلة لإعادة الاستخدام" . وقائع مؤتمر SIGCHI حول العوامل البشرية في أنظمة الحوسبة - أرضية مشتركة - CHI '96 . ACM. الصفحات 260-267 . doi : 10.1145/238386.238526 . ISBN  0897917774. S2CID 17033810 . 
  4. 1 2 3 4 5 6 7 8 جاكوبيك، كاريل؛ بولاك، ماريك؛ نيكاسكي، مارتن؛ هولوبوفا، إيرينا (2014). "عمليات التراجع/الإعادة في البيئات المعقدة" . بروسيديا علوم الكمبيوتر . 32 : 561-570 . دوى : 10.1016/j.procs.2014.05.461 . ردمك 1877-0509 . 
  5. موران، تشوكتروبوليس ويلينغ (2013-01-01). الزمن التفاعلي (أطروحة دكتوراه). لا جولا: جامعة كاليفورنيا، سان دييغو. ISBN 9781303194450أُرشف من المصدر الأصلي بتاريخ 28 أبريل 2021. تم الاطلاع عليه بتاريخ 7 يوليو 2016 .
  6. بارنيت، بيليندا (1 ديسمبر 2014). آلات الذاكرة: تطور النص التشعبي . دار نشر أنثيم. ص 108. ISBN  9781783083442لكن الميزة الأكثر شيوعًا بين المستخدمين المبتدئين في برنامج FRESS لم تكن قدرته على استيعاب شاشات ومستخدمين متعددين، بل كانت ميزة "التراجع" - وهي الميزة التي يفخر بها فان دام أكثر من غيرها (فان دام، 2011). كان برنامج FRESS رائدًا في توفير ميزة التراجع على مستوى واحد لكل من معالجة النصوص والنصوص التشعبية. كان يتم حفظ كل تعديل على الملف في نسخة احتياطية من بنية البيانات، مما أتاح إمكانية الحفظ التلقائي والتراجع. أدرك أعضاء هيئة التدريس والطلاب في جامعة براون على الفور أهمية هذه الميزة وفائدتها (فان دام، 1999).
  7. بارنيت، بيليندا (1 يناير 2010). "صياغة واجهة مستند تتمحور حول المستخدم: نظام تحرير النصوص التشعبية (HES) ونظام استرجاع الملفات وتحريرها (FRESS)" . مجلة العلوم الإنسانية الرقمية الفصلية . 4 (1). مؤرشف من الأصل في 1 مايو 2021. تم الاسترجاع في 27 مايو 2016 .
  8. تيتلمان، وارن (1972-01-01). "البرمجة الآلية: مساعد المبرمج". وقائع مؤتمر الحاسوب المشترك لخريف 1972، المنعقد في الفترة من 5 إلى 7 ديسمبر - AFIPS '72 (خريف، الجزء الثاني) . نيويورك، نيويورك، الولايات المتحدة الأمريكية: ACM. الصفحات 917-921 . doi : 10.1145/1480083.1480119 . S2CID 1276566 .  
  9. "دليل برافو في ألتو لغير المبرمجين، صفحة 52" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 2015-05-05 . تم الاطلاع عليه بتاريخ 2014-03-29 .
  10. ميلر، لانس أ.؛ توماس، جون س. (1977-09-01). "قضايا سلوكية في استخدام الأنظمة التفاعلية". المجلة الدولية لدراسات الإنسان والآلة . 9 (5): 509-536 . doi : 10.1016/S0020-7373(77)80002-3 . ISSN 0020-7373 . 
  11. ميلر، لانس أ.؛ جون سي. توماس الابن (ديسمبر 1976). "قضايا سلوكية في استخدام الأنظمة التفاعلية" . مؤرشف من الأصل (PDF) في 27 مايو 2012. تم الاطلاع عليه بتاريخ 21 مايو 2011 .
  12. 1 2 3 بن زيمر (15 سبتمبر 2009). "عصر التراجع" . نيويورك تايمز . مؤرشف من الأصل في 17 يونيو 2013. تم الاطلاع عليه في 2 يونيو 2013 .
  13. شركة أبل للكمبيوتر (1984). "واجهة المستخدم". داخل ماكنتوش، المجلد الأول .
  14. روبرتا مانشيني، آلان ديكس، وستيفانو ليفيالدي. 2006. "تأملات في التراجع"
  15. 1 2 3 إريك غاما؛ ريتشارد هيلم؛ رالف جونسون؛ جون فليسيدس (1995). أنماط التصميم . ريدينغ، ماساتشوستس: أديسون-ويسلي. ISBN 0201633612. OCLC 31171684 . 

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

  • شعار ويكشنريتعريف كلمة "undo" في قاموس ويكشنري