ایفل‌استودیو کیست؟ توضیح بده.
ایفل استودیو یک محیط توسعه برای زبان برنامه نویسی ایفل است که توسط Eiffel Software توسعه و توزیع شده است.ایفل استودیو شامل ترکیبی از ابزارهای یکپارچه شده تحت یک رابط کاربری واحد است: کامپایلر، مفسر، دیباگر، مرورگر، ابزار متریک، نمایه‌ساز، نمودار و ابزار بازرس کد. رابط کاربری بر روی تعدادی از پارادایم های رابط کاربری خاص، به ویژه "انتخاب و رها کردن" برای مرور موثر استوار است.ایفل استودیو بر روی پلتفرم‌های مختلفی از جمله ویندوز، لینوکس، مک او اس، RaspberryPi, VMS, Solaris در دسترس است. منبع تحت GPL موجود است؛ مجوزهای تجاری دیگر نیز در دسترس است.وضعیت، مجوز و فرآیند جامعه.ایفل استودیو یک توسعه متن باز است که نسخه های بتا نسخه بعدی را به طور مرتب در دسترس قرار می دهد.جامعه ایفل فعالانه در توسعه آن شرکت می کند. وب سایت رسمی آن Eiffel.org است که در آن پروژه ها و منابع فهرست شده است. اساس کد منبع معمولاً برای بررسی از طریق ساب ورژن یا گیت در دسترس است. همچنین انجمن های گفتگو و موارد مشابه در دسترس هستند.فناوری کامپایل.ایفل استودیو از یک فناوری تلفیقی خاص به نام Melting Ice (که توسط ایفل استودیو به عنوان علامت تجاری ادعا می شود) استفاده می کند که کامپایل مناسب را با تفسیر عناصر تغییر یافته از آخرین کامپایل، برای یک چرخش بسیار سریع (زمان کامپایل مجدد متناسب با اندازه تغییر، نه اندازه برنامه کلی) ادغام می کند.اگرچه چنین برنامه‌های «Melted» را می‌توان ارائه داد، اما روش معمول این است که قبل از انتشار یک مرحله «نهایی‌سازی» انجام شود. نهایی سازی یک فرم بسیار بهینه از کامپایل است که زمان بیشتری می برد اما فایل های اجرایی بهینه سازی شده را تولید می کند.بخش مفسر ایفل استودیو به یک ماشین مجازی بایت کد گرا متکی است. کامپایلر C یا CIL .NET(زبان متوسط مشترک) را تولید می کند.مهندسی دو سره.ابزار نمودار ایفل استودیو یک نمای گرافیکی از ساختارهای نرم افزار ارائه می دهد و در هر دو حالت زیر قابل استفاده است :این ابزار یکپارچگی تغییرات ایجاد شده در هر دو سبک را برای "مهندسی دو سره" کامل تضمین می کند.نماد گرافیکی (Business Object Notation، به کتابشناسی مراجعه کنید) یا UML است. BON پیش فرض است.پارادایم رابط کاربری.ایفل استودیو امکان نمایش بسیاری از نماهای مختلف از کلاس ها و ویژگی ها را فراهم می کند: نمای متن (متن کامل برنامه)، نمای قرارداد (فقط رابط، با ها)، نمای flat (که شامل ویژگی های ارث بری است)، کلاینت ها (همه کلاس ها و ویژگی هایی که از یک کلاس یا ویژگی خاص استفاده می کنند)، تاریخچه ارث بری (چه اتفاقی برای یک ویژگی در بالا و پایین ساختار ارث بری می افتد) و بسیاری دیگر.ایفل استودیو بر پارادایم رابط کاربری اصلی مبتنی بر "توسعه اشیا"، "pebble ها" و "حفره‌ها" تکیه دارد. همانطور که شی گرایی در ایفل با اشیا در حین اجرا سروکار دارد، توسعه دهندگان با انتزاعاتی که نشان دهنده کلاس ها، ویژگی ها، break point ها (برای دیباگ کردن)، خوشه ها (گروه هایی از کلاس ها) و سایر اشیاء توسعه هستند، سر و کار دارند. یک شی توسعه در ایفل استودیو را می توان در هر کجا که در رابط ظاهر می شود و صرف نظر از نمایش بصری آن (نام شی، نماد بصری یا موارد دیگر )انتخاب کرد.برای انتخاب یک شی توسعه کافی است روی آن کلیک راست کنید. سپس مکان نما به یک نماد یا pebble خاص متناسب با نوع شی تبدیل می شود: "حباب" (بیضی) برای یک کلاس، نقطه برای breakpoint، ضربدر برای یک ویژگی و غیره. همانطور که مکان نما را حرکت می دهید، یک خط از صفحه برای نمایش دادن شی اصلی از موقعیت فعلی نمایش داده می شود. سپس می‌توانید pebble را در هر مکان مشابهی بیندازید: یا نمادی که حفره‌ای را با همان شکل کلی نشان می‌دهد (حفره ی کلاس، حفره ی breakpoint، حفره ویژگی و غیره) یا یک پنجره با یک تیپ سازگار.تاثیر قرار دادن یک pebble در یک ابزار این است که کل ابزار را مجدداً به سمت شیء توسعه ای که "انتخاب شده" هدف قرار می دهد. به عنوان مثال، یک ابزار کلاس اکنون کلاس انتخاب شده را در هر نمای (متن، قرارداد، مسطح و غیره) انتخاب شده نشان می دهد. این به پارادایم "انتخاب و رها کردن" معروف است.ترکیب نماهای متعدد و "انتخاب و رها کردن"، مرور سریع در میان سیستم‌های پیچیده و پیروی از تغییرات گاهاً گسترده‌ای را که ویژگی‌ها تحت وراثت متحمل می‌شوند، ممکن می‌سازد شامل تغییر نام، تعریف مجدد، تعریف نشدن.تست ادغام و واحد.ایفل استودیو شامل یک مرکز آزمایش یکپارچه به نام EiffelStudio AutoTest است که به موجب آن توسعه دهندگان ممکن است واحدهای ساده تا پیچیده و مجموعه های آزمایش یکپارچه سازی بسازند. امکانات EiffelStudio AutoTest به توسعه‌دهنده این امکان را می دهد تا کد کلاس ایفل را از سطح ویژگی (به عنوان مثال تست واحد) تا سیستم‌های کل کلاس (مثلاً یکپارچه‌سازی) اجرا و آزمایش کند. به این ترتیب، اجرای این کد قراردادهای ویژگی ها و ویژگی های اجرا شده را نیز اجرا می کند. به این ترتیب، EiffelStudio AutoTest وسیله‌ای برای اجرای «آزمون‌ها» یا مفروضات طراحی بر اساس قرارداد است. بنابراین، آزمایش واحد و ادغام نیازی به آزمایش مجدد از طریق اظهارات یا اوراکل های آزمایشی ندارد که قبلاً به عنوان مشخصات در قراردادهای متن کلاس کدگذاری شده است.EiffelStudio AutoTest سه روش ایجاد تست موردی را در اختیار کاربر قرار می دهد.ابتدا، برای تست‌هایی که به صورت دستی ایجاد می‌شوند، EiffelStudio AutoTest یک کلاس آزمایشی حاوی چارچوبی برای تست ایجاد می‌کند. کاربر فقط باید خود کد تست را ارائه کند.دوم، EiffelStudio AutoTest روشی را برای ایجاد یک تست جدید بر اساس شکست برنامه در زمان اجرا ارائه می دهد. به این نوع تست استخراج شده می گویند. اگر در حین اجرای سیستم هدف، یک شکست غیرمنتظره رخ دهد، EiffelStudio AutoTest می‌تواند با استفاده از اطلاعات موجود در دیباگر، آزمایش جدیدی ایجاد کند که وضعیت و تماس‌هایی را که باعث شکست شده‌اند، بازتولید کند. پس از رفع مشکل، تست استخراج شده را می توان به عنوان پوششی در برابر رگرسیون های مشکل به مجموعه آزمایشی اضافه کرد.روش سوم ایجاد آزمون ها، آزمایش هایی را تولید می کند که به آن تست های تولید شده می گویند. در این سناریو، کاربر EiffelStudio AutoTest را با کلاس‌هایی که برای آن‌ها تست‌ها باید تولید شود و برخی اطلاعات اضافی برای کنترل تولید آزمایش استفاده می‌کند، ارائه می‌کند. سپس این ابزار با استفاده از مقادیر آرگومان تصادفی شده شروع به فراخوانی روال ها در کلاس های هدف می کند. EiffelStudio AutoTest برای هر منحصر به فرد یا نقض ، یک تست جدید تولید می کند که تماس ناموفق را بازتولید می کند.تاریخ انتشار ها.ایفل استودیو ریشه های خود را به اولین پیاده سازی ایفل، توسط Interactive Software Engineering Inc. (سلف نرم افزار ایفل) که در سال 1986 منتشر شد، بازمی گردد. طراحی نسخه ایفل 3 زبان (همانطور که در Eiffel: The Language مستند شده است، به کتابشناسی مراجعه کنید). EiffelBench در حدود سال 2001 به "EiffelStudio" تغییر نام داد. این زمانی است که محیط از مبدأ یونیکس خود فراتر رفت و ویندوز و سایر پلتفرم‌ها را هدف قرار داد.انتشارات عمده از سال 2001، و برخی از ویژگی های جدید برای هر کدام، عبارتند از:تحلیلگر کد.تحلیلگر کد (آنالیزور سابق ایفل) یک نرم افزار تست خودکار و تجزیه و تحلیل استاتیک ایفل است که توسط نرم افزار ایفل منتشر شده است، که در اصل در نتیجه یک پروژه پایان نامه کارشناسی ارشد در ETH زوریخ تولید شده است.تحلیلگر کد یک ابزار تحلیل کد استاتیک مبتنی بر قانون است که هم از حالت تعبیه شده در ایفل استودیو و هم از خط فرمان عمل می کند. از درخت نحو انتزاعی (AST) تولید شده توسط کامپایلر ایفل استفاده می کند و سپس یک نمودار جریان کنترل (CFG) تولید می کند که توسط یک ماژول کد در ابزار محاسبه می شود. سپس CFG و AST توسط تعدادی از قوانین تعریف شده بازدید می شوند. نقض هر قانون به عنوان خطا، هشدار یا راهنمایی به کاربر گزارش می شود. هر نقض قانون دقیقاً گزارش می دهد که کدام قانون نقض شده است.منابع.http://se.inf.ethz.ch/student_projects/stefan_zurfluh/report.pdf