موضوع مقاله: ایفل‌استودیو | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # ایفل‌استودیو | مقدمه: ایفل استودیو شامل ترکیبی از ابزارهای یکپارچه شده تحت یک رابط کاربری واحد است: کامپایلر، مفسر، دیباگر، مرورگر، ابزار متریک، نمایه‌ساز، نمودار و ابزار بازرس کد. | ## بخش 1: ایفل‌استودیو | رابط کاربری بر روی تعدادی از پارادایم های رابط کاربری خاص، به ویژه "انتخاب و رها کردن" برای مرور موثر استوار است. وضعیت، مجوز و فرآیند جامعه ایفل استودیو یک توسعه متن باز است که نسخه های بتا نسخه بعدی را به طور مرتب در دسترس قرار می دهد. فناوری کامپایل ایفل استودیو از یک فناوری تلفیقی خاص به نام Melting Ice (که توسط ایفل استودیو به عنوان علامت تجاری ادعا می شود) استفاده می کند که کامپایل مناسب را با تفسیر عناصر تغییر یافته از آخرین کامپایل، برای یک چرخش بسیار سریع (زمان کامپایل مجدد متناسب با اندازه تغییر، نه اندازه برنامه کلی) ادغام می کند. اگرچه چنین برنامه‌های «Melted» را می‌توان ارائه داد، اما روش معمول این است که قبل از انتشار یک مرحله «نهایی‌سازی» انجام شود. نهایی سازی یک فرم بسیار بهینه از کامپایل است که زمان بیشتری می برد اما فایل های اجرایی بهینه سازی شده را تولید می کند. مهندسی دو سره ابزار نمودار ایفل استودیو یک نمای گرافیکی از ساختارهای نرم افزار ارائه می دهد و در هر دو حالت زیر قابل استفاده است : مهندسی پیشرو به عنوان ابزار طراحی برای تولید نرم افزار از توضیحات گرافیکی. این ابزار یکپارچگی تغییرات ایجاد شده در هر دو سبک را برای "مهندسی دو سره" کامل تضمین می کند. پارادایم رابط کاربری ایفل استودیو امکان نمایش بسیاری از نماهای مختلف از کلاس ها و ویژگی ها را فراهم می کند: نمای متن (متن کامل برنامه)، نمای قرارداد (فقط رابط، با قراردادها)، نمای flat (که شامل ویژگی های ارث بری است)، کلاینت ها (همه کلاس ها و ویژگی هایی که از یک کلاس یا ویژگی خاص استفاده می کنند)، تاریخچه ارث بری (چه اتفاقی برای یک ویژگی در بالا و پایین ساختار ارث بری می افتد) و بسیاری دیگر. ایفل استودیو بر پارادایم رابط کاربری اصلی مبتنی بر "توسعه اشیا"، "pebble ها" و "حفره‌ها" تکیه دارد. همانطور که شی گرایی در ایفل با اشیا در حین اجرا سروکار دارد، توسعه دهندگان با انتزاعاتی که نشان دهنده کلاس ها، ویژگی ها، break point ها (برای دیباگ کردن)، خوشه ها (گروه هایی از کلاس ها) و سایر اشیاء توسعه هستند، سر و کار دارند. | ## بخش 2: ایفل‌استودیو | یک شی توسعه در ایفل استودیو را می توان در هر کجا که در رابط ظاهر می شود و صرف نظر از نمایش بصری آن (نام شی، نماد بصری یا موارد دیگر )انتخاب کرد. همانطور که مکان نما را حرکت می دهید، یک خط از صفحه برای نمایش دادن شی اصلی از موقعیت فعلی نمایش داده می شود. تاثیر قرار دادن یک pebble در یک ابزار این است که کل ابزار را مجدداً به سمت شیء توسعه ای که "انتخاب شده" هدف قرار می دهد. به عنوان مثال، یک ابزار کلاس اکنون کلاس انتخاب شده را در هر نمای (متن، قرارداد، مسطح و غیره) انتخاب شده نشان می دهد. ترکیب نماهای متعدد و "انتخاب و رها کردن"، مرور سریع در میان سیستم‌های پیچیده و پیروی از تغییرات گاهاً گسترده‌ای را که ویژگی‌ها تحت وراثت متحمل می‌شوند، ممکن می‌سازد شامل تغییر نام، تعریف مجدد، تعریف نشدن. به این ترتیب، اجرای این کد قراردادهای ویژگی ها و ویژگی های اجرا شده را نیز اجرا می کند. بنابراین، آزمایش واحد و ادغام نیازی به آزمایش مجدد از طریق اظهارات یا اوراکل های آزمایشی ندارد که قبلاً به عنوان مشخصات در قراردادهای متن کلاس کدگذاری شده است. پس از رفع مشکل، تست استخراج شده را می توان به عنوان پوششی در برابر رگرسیون های مشکل به مجموعه آزمایشی اضافه کرد. روش سوم ایجاد آزمون ها، آزمایش هایی را تولید می کند که به آن تست های تولید شده می گویند. سپس این ابزار با استفاده از مقادیر آرگومان تصادفی شده شروع به فراخوانی روال ها در کلاس های هدف می کند. | ## بخش 3: ایفل‌استودیو | این زمانی است که محیط از مبدأ یونیکس خود فراتر رفت و ویندوز و سایر پلتفرم‌ها را هدف قرار داد. 5.5، سپتامبر 2004: داکینگ، دیباگر بهبودیافته، ویژگی های جدید زبان ECMA (نسخه منتشر شده). 5.7، اکتبر 2006: افزودن ISO/ECMA ایفل (عوامل درون خطی، معناشناسی جدید "گسترش یافته"، تاپل های نامگذاری شده، پشتیبانی از یونیکد)، امکانات بازسازی، روش جدید برای پیکربندی سیستم پروژه، معیارها (نسخه منتشر شده). 6.0، ژوئن 2007: افزودن ISO/ECMA ایفل (محدودیت چندگانه، نماد هشت و دودویی برای اعداد صحیح)، ویرایشگر زبانه‌های جدید، امکانات اتصال جدید به کاربر برای تعریف فضای کاری، منوی زمینه علاوه بر انتخاب و رها کردن، ابزار وابستگی در دسترس است. شامل اولین اجرای تسهیلات پشتیبانی از SCOOP، برنامه نویسی شی گرا همزمان ساده است. شامل بهبود عملکرد و عملکرد تسهیلات توسعه موازی SCOOP، کتابخانه رابط کاربری گرافیکی و پشتیبانی ابزار برای ساختارهای رابط نواری، پشتیبانی بهبودیافته برای توسعه نرم‌افزار ایمن خالی، و بسیاری از پیشرفت‌های دیگر. همه کانتینرها را می توان به شکل تکرار یک حلقه استفاده کرد و موارد خطی را می توان از دیگران مقداردهی کرد. تحلیلگر کد تحلیلگر کد (آنالیزور سابق ایفل) یک نرم افزار تست خودکار و تجزیه و تحلیل استاتیک ایفل است که توسط نرم افزار ایفل منتشر شده است، که در اصل در نتیجه یک پروژه پایان نامه کارشناسی ارشد در ETH زوریخ تولید شده است. تحلیلگر کد یک ابزار تحلیل کد استاتیک مبتنی بر قانون است که هم از حالت تعبیه شده در ایفل استودیو و هم از خط فرمان عمل می کند. | ## جمع‌بندی | از درخت نحو انتزاعی (AST) تولید شده توسط کامپایلر ایفل استفاده می کند و سپس یک نمودار جریان کنترل (CFG) تولید می کند که توسط یک ماژول کد در ابزار محاسبه می شود.