استوديو إيفل

EiffelStudio هي بيئة تطوير للغة برمجة واحدة ، وهي Eiffel . يتم تطوير كليهما وتوزيعهما بواسطة شركة Eiffel Software.

يضم برنامج EiffelStudio مجموعة من الأدوات المتكاملة ضمن واجهة مستخدم واحدة : مُصرّف، ومُفسّر، ومُصحّح أخطاء، ومُتصفّح، وأداة قياس، ومُحلّل أداء، وأداة رسم بياني، وأداة فحص التعليمات البرمجية. وتعتمد واجهة المستخدم على عدد من نماذج واجهة المستخدم المُحددة، ولا سيما خاصية "الاختيار والإفلات" لتصفح فعال.

يتوفر برنامج EiffelStudio على العديد من المنصات، بما في ذلك Windows و Linux و macOS و Solaris و VMS و Raspberry Pi . شفرة المصدر مجانية ومفتوحة المصدر ، ومرخصة بموجب رخصة جنو العمومية (GPL). كما تتوفر تراخيص برامج تجارية أخرى.

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

الحالة، الترخيص، وإجراءات المجتمع

يُعد EiffelStudio مشروعًا مفتوح المصدر، ويتم توفير نسخ تجريبية من الإصدار التالي بانتظام.

يشارك مجتمع إيفل بنشاط في تطويره؛ وموقعه الرسمي هو Eiffel.org ، حيث تُعرض المشاريع والموارد. عادةً ما يكون كود المصدر متاحًا للتنزيل عبر Subversion أو Git . كما تتوفر منتديات نقاش وما شابه.

منذ عام ٢٠١٩، لم يتم إصدار أي نسخة جديدة من النسخة مفتوحة المصدر، وتمت حماية مستودع SVN بكلمة مرور. لا يزال الكود متاحًا عبر نسخة احتياطية عامة على GitHub، مع تأخير لمدة ١٢ شهرًا.

تكنولوجيا التجميع

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

يعتمد جزء المفسر في EiffelStudio على آلة افتراضية موجهة نحو رمز البايت . يقوم المترجم بتوليد إما لغة C أو لغة الوسيط المشتركة (CIL) الخاصة بإطار عمل .NET .

هندسة الرحلة ذهابًا وإيابًا

توفر أداة الرسم التخطيطي في برنامج EiffelStudio عرضًا رسوميًا لهياكل البرامج. ويمكن استخدامها في كليهما

  • الهندسة الأمامية، كأداة تصميم لإنتاج البرامج من الأوصاف الرسومية.
  • الهندسة العكسية، التي تنتج تلقائيًا تمثيلات رسومية لنصوص البرامج الموجودة.

تضمن الأداة سلامة التغييرات التي تم إجراؤها في أي من النمطين، من أجل "هندسة ذهاب وإياب" كاملة.

تكون الصيغة الرسومية إما صيغة كائنات الأعمال الافتراضية (BON، انظر قائمة المراجع)، أو لغة النمذجة الموحدة (UML).

نموذج واجهة المستخدم

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

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

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

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

اختبار الوحدة والتكامل

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

يوفر برنامج EiffelStudio AutoTest للمستخدم ثلاث طرق لإنشاء حالات الاختبار.

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

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

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

تاريخ

يعود أصل برنامج EiffelStudio إلى أول تطبيق للغة Eiffel، من قِبل شركة Interactive Software Engineering Inc. (الشركة السابقة لشركة Eiffel Software)، والذي صدر عام 1986. ويبدو أن أصل التقنية الحالية يعود إلى "EiffelBench"، الذي بدأ العمل عليه عام 1990 بالتزامن مع تصميم النسخة الثالثة من لغة Eiffel (كما هو موثق في كتاب Eiffel: The Language ، انظر قائمة المراجع). أُعيد تسمية EiffelBench إلى "EiffelStudio" حوالي عام 2001؛ وفي ذلك الوقت أيضًا، تجاوزت بيئة العمل أصولها في نظام Unix لتستهدف نظام Windows ومنصات أخرى.

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

  • 5.0، يوليو 2001: أول إصدار يحمل اسم "EiffelStudio" بشكل كامل؛ دمج أداة "EiffelCase" السابقة للتصميم الرسومي مع EiffelBench، في شكل أداة الرسم التخطيطي الخاصة بـ EiffelStudio)
  • 5.1، ديسمبر 2001: أول إصدار يدعم .NET ( بيان صحفي (PDF)). كان يُطلق عليه اسم "Eiffel#" قبل إصداره..
  • 5.2، نوفمبر 2002: EiffelBuild جديد لتصميم واجهة المستخدم الرسومية، وتصحيح الأخطاء الموسع، وآليات جديدة لتكامل C و C++، ومرافق أفضل للتحويل ذهابًا وإيابًا لأداة الرسم التخطيطي ( بيان صحفي ).
  • 5.3، مارس 2003: تقنية المترجم التزايدي متاحة الآن لـ Eiffel .NET. واجهة Eiffel2Java Java، وواجهة EiffelStore (واجهة قاعدة البيانات العلائقية) متاحة الآن لـ .NET، أول إصدار لنظام التشغيل Mac OS، تحسينات في الأداء ( بيان صحفي ).
  • 5.4، نوفمبر 2003: آلية تحويل جديدة، تحسينات كبيرة في أداء وقت التشغيل (خاصة للوكلاء ) ، تحسينات كبيرة في سرعة التجميع، دعم محسّن للتعددية الخيطية، تحسينات كبيرة في EiffelBuild، أول دعم للآليات الجديدة كما حددتها لجنة ECMA Eiffel، دعم الشروط المسبقة واللاحقة في الإجراءات الخارجية (مثل C)، طريقة شفافة لاستدعاء إجراءات .NET المحملة بشكل زائد من Eiffel ( بيان صحفي ).
  • 5.5، سبتمبر 2004: الإرساء، مصحح الأخطاء المحسن، ميزات لغة ECMA الجديدة ( بيان صحفي ).
  • 5.6، أغسطس 2005: أداة رسم بياني محسنة (دعم UML، ورسوم بيانية موجهة بالقوة، وتحسين عملية التحويل ذهابًا وإيابًا)، ومعالج EiffelCOM جديد لإنشاء مكونات Microsoft COM ، وإكمال أفضل للفئات، وتوليد أسرع لرمز .NET ( بيان صحفي ).
  • 5.7، أكتوبر 2006: إضافة ISO/ECMA Eiffel (الوكلاء المضمنون، والدلالات "الموسعة" الجديدة، والصفوف المسماة، ودعم Unicode )، ومرافق إعادة الهيكلة، وطريقة جديدة لتكوين نظام المشروع، والمقاييس ( بيان صحفي ).
  • 6.0، يونيو 2007: إضافة ISO/ECMA Eiffel (تعدد القيود العامة، والتدوين الثماني والثنائي للأعداد الصحيحة)، ومحرر جديد ذو علامات تبويب، ومرافق إرساء جديدة للسماح للمستخدم بتحديد مساحة العمل الخاصة به، وقائمة السياق متاحة بالإضافة إلى ميزة الاختيار والإفلات، وأداة التبعية ( بيان صحفي ).
  • 6.1 نوفمبر 2007: ( بيان صحفي ).
  • 6.2 مايو 2008: ( بيان صحفي ).
  • 6.3 ديسمبر 2008: ( بيان صحفي ).
  • 6.4، يونيو 2009: ( بيان صحفي ).
  • 6.5 نوفمبر 2009: ( بيان صحفي ).
  • 6.6 مايو 2010: ( بيان صحفي ).
  • 6.7 نوفمبر 2010: ( بيان صحفي ).
  • 6.8، مايو 2011. يتضمن أول تطبيق للمرافق التي تدعم SCOOP ، البرمجة الكائنية المتزامنة البسيطة . ( بيان صحفي ).
  • 7.0، نوفمبر 2011. يتضمن تحسينات في الأداء والوظائف لمرفق التطوير المتوازي SCOOP ، ومكتبة واجهة المستخدم الرسومية ودعم الأدوات لهياكل واجهة الشريط ، ودعم محسّن لتطوير البرامج الآمنة من الفراغات ، والعديد من التحسينات الأخرى.
  • 7.1، يونيو 2012. يتضمن تجميع البيانات المهملة لمعالج SCOOP . تحسينات متعددة لنظام معلومات إيفل تربط كود التطبيق بالموارد الخارجية المناسبة مثل وثائق المتطلبات.
  • 7.2، فبراير 2013.
  • 7.3، يوليو 2013.
  • 13.11 ديسمبر 2013. يمثل هذا الإصدار بداية استخدام نظام ترقيم جديد للإصدارات . ( ملاحظات الإصدار ) ( بيان صحفي ).
  • 14.05 مايو 2014. يتضمن أداة Eiffel Inspector الجديدة (أداة تحليل ثابتة للمساعدة في الحفاظ على جودة عالية للكود). ( بيان صحفي ).
  • 15.01 يناير 2015. وقت تشغيل SCOOP الجديد يحقق تحسينًا كبيرًا في الأداء. ( بيان صحفي ).
  • 15.08، أغسطس 2015. حل EiffelWeb المحسن لبناء تطبيق خادم الويب. ( بيان صحفي ).
  • 15.12 ديسمبر 2015. تحسينات لغوية (تدوين نوع الوكيل الجديد). ( بيان صحفي ).
  • 16.05 مايو 2016. إصدار للصيانة. ( بيان صحفي ).
  • 17.01، يناير 2017. آلية مكتبة لتوثيق خيارات التجميع المدعومة وفرضها. قوالب التعليمات البرمجية. ( إصدار 17.01 )
  • 17.05، مايو 2017. تحسين اكتشاف الميزات القديمة. خاصية الالتقاط والإفلات للمتغيرات المحلية. ( إصدار 17.05 )
  • 18.01، فبراير 2018. محلل كود متكامل أكثر عمقًا. قواعد أنواع محسّنة للتعبيرات الشرطية ومصفوفات البيان. ميزات الفئة. ( إصدار 18.01 ).
  • 18.07، يوليو 2018. قواعد مخففة لميزات الفئة. تعبيرات الأقواس اللاحقة. أهداف المشروع البعيدة. ( إصدار 18.07 ).
  • 18.11، ديسمبر 2018. يمكن استخدام جميع الحاويات في شكل تكراري لحلقة، ويمكن تهيئة الحاويات الخطية من حاويات أخرى. ( إصدار 18.11 ).
  • 19.05، مايو 2019. عوامل تشغيل Unicode، HiDPI، إزالة "الفئة" الميتة، تحسينات المترجم. ( إصدار 19.05 ).
  • 20.05، مايو 2020. تعبير متعدد الفروع، تقييم سلسلة البيان غير المصنفة بناءً على المحتوى. ( إصدار 20.05 ).
  • 20.11، نوفمبر 2020. فئات Once، WrapC. ( إصدار 20.11 ).
  • 21.11، نوفمبر 2021. الانتقال إلى GTK3 لأنظمة Linux وUnix، وتحسين التواجد على نظام التشغيل macOS، وأداة جديدة للتحكم في المصادر. ( إصدار 21.11 ).
  • 22.05، مايو 2022. تحسينات على أداة التحكم في المصدر وواجهة المستخدم. ( إصدار 22.05 ).
  • 22.12، ديسمبر 2022. منصة جديدة، دعم ARM ( إصدار 22.12 ).
  • 23.09، سبتمبر 2023. دعم NETcore ( إصدار 23.09 ).
  • 24.05، مايو 2024. تحسين دعم NETcore، وتصحيح الأخطاء، وأوامر Composer الجديدة ( إصدار 24.05 ).
  • 25.02، فبراير 2025. أداة رسم بياني محسنة، ومعلمات تنفيذ، ومكتبات جديدة لـ mongodb و mariadb ( إصدار 25.02 ).
  • 25.12، ديسمبر 2025. يوفر EiffelStudio 25.12 دعمًا أصليًا لـ PostgreSQL، ومصادقة حديثة، وقدرات خلفية أقوى ( إصدار 25.12 ).

محلل الشفرة

محلل الشفرة (المعروف سابقًا باسم Inspector Eiffel ) هو برنامج آلي لاختبار برمجيات Eiffel وتحليلها الثابت ، وقد أصدرته شركة Eiffel Software، وتم إنتاجه في الأصل كنتيجة لمشروع أطروحة ماجستير في ETH Zurich . [ 3 ]

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

انظر أيضاً

مراجع

  1. "إيفل باختصار" . شركة إيفل للبرمجيات . 1985-2012 . تم الاطلاع عليه بتاريخ 29 نوفمبر 2024 .
  2. "يتوفر الآن برنامج EiffelStudio 25.12!" . Eiffel.org . 31 ديسمبر 2025. تم الاطلاع عليه بتاريخ 31 ديسمبر 2025 .
  3. زورفلو، ستيفان؛ تشانين، جوليان؛ ماير، برتراند (1 أبريل 2014)، تحليل الشفرة القائم على القواعد (ملف PDF) ، المعهد الفدرالي السويسري للتكنولوجيا في زيورخ ، تم الاطلاع عليه في 25 مايو 2014

فهرس

  • برنامج إيفل: دليل استخدام برنامج إيفل ستوديو. متاح على الإنترنت على الرابط التالي: https://www.eiffel.org/documentation
  • برتراند ماير: إيفل: اللغة ، برنتيس هول، 1991 (الطبعة الثانية المنقحة، 1992).
  • برتراند ماير: بيئة موجهة للكائنات: المبادئ والتطبيقات، برنتيس هول. 1995 (يصف المبادئ التي يقوم عليها برنامج EiffelBench الأصلي).
  • كيم والدين وجان مارك نيرسون: هندسة البرمجيات الموجهة للكائنات السلسة ، برنتيس هول، 1995 (يحتوي على وصف لطريقة BON والترميز).