Knowledge

EiffelStudio

Source 📝

167: 330:, whereby developers may build simple to sophisticated unit and integration testing suites. The EiffelStudio AutoTest facilities enable the developer to execute and test Eiffel class code from the feature level (e.g. unit testing) to entire class systems (e.g. integration). As such, execution of this code also executes the contracts of the features and attributes executed. As such, EiffelStudio AutoTest is a means to exercising the "tests" or assumptions of the Design by Contract conditions. Therefore, unit and integration testing need not re-test through means of assertions or test oracles what has already been coded as specification in the contracts of the class text. 25: 343:. If while running the target system, an unexpected failure occurs, EiffelStudio AutoTest can work from the information available in the debugger to create a new test that will reproduce the state and the calls that caused the failure. Once the problem is fixed, the extracted test can be added to the test suite as a hedge against regressions of the problem. 214:
EiffelStudio uses a specific compilation technology known as Melting Ice (claimed by Eiffel Software as a trademark) which integrates compilation proper with interpretation of the elements changed since the last compilation, for very fast turnaround (recompilation time proportional to the size of the
367:
EiffelStudio traces its roots to the first implementation of Eiffel, by Interactive Software Engineering Inc. (predecessor of Eiffel Software), released in 1986. The origin of the current technology appears to go back to "EiffelBench", started in 1990 in connection with the design of the Eiffel 3
350:
tests. In this scenario, the user provides EiffelStudio AutoTest with the classes for which tests should be generated and some additional information used to control the test generation. The tool then begins calling routines in the target classes using randomized argument values. For every unique
311:
the pebble into any matching place: either an icon representing a hole with the same overall shape (class hole, breakpoint hole, feature hole etc.) or a window with a compatible type. The effect of dropping a pebble into a tool is to retarget the entire tool to the development object that was
131:
EiffelStudio includes a combination of tools integrated under a single user interface: compiler, interpreter, debugger, browser, metrics tool, profiler, diagram and code inspector tool. The user interface rests on a number of specific UI paradigms, in particular "pick-and-drop" for effective
215:
change, not the size of the overall program). Although such "melted" programs can be delivered, the common practice is to perform a "finalization" step before release. Finalization is a highly optimized form of compilation, which takes longer but generates optimized executables.
451:
6.0, June 2007: ISO/ECMA Eiffel addition (multiple constraint genericity, octal and binary notation for integers), new tabbed editor, new docking facilities to let user define their workspace, context menu is available in addition to pick and drop, dependency tool
739:(CFG), which is computed by a module of code in the tool. The CFG and AST are then visited by a number of defined rules. Violations of any rule are reported to the user as Errors, Warnings, or Hints. Each rule violation reports precisely which rule was violated. 315:
The combination of multiple views and Pick-and-Drop makes it possible to browse quickly through complex systems, and to follow the sometimes extended transformations that features undergo under inheritance: renaming, redefinition, undefinition.
280:), flat view (which includes inherited features), clients (all the classes and features that use a given class or feature), inheritance history (what happens to a feature up and down the inheritance structure) and many others. 306:
corresponding to the type of the object: "bubble" (ellipse) for a class, dot for a breakpoint, cross for a feature etc. As you move the cursor a line is displayed from the original object to the current position. You can then
399:
5.3, March 2003: Incremental compiler technology available for Eiffel .NET. Eiffel2Java Java interface, EiffelStore (relational database interface) now available for .NET, first Mac OS version, performance enhancements
205:
Since 2019, no new release of the open-source version has been made, and the svn repository has been protected by a password. The code is still available via a GitHub public mirror, but with a 12-month delay.
372:, see bibliography). EiffelBench was renamed "EiffelStudio" around 2001; this is also the time when the environment went beyond its Unix origins to target Windows and other platforms. 379:
5.0, July 2001: first version to be "EiffelStudio" proper; integration of previous "EiffelCase" tool for graphical design with EiffelBench, in the form of EiffelStudio's Diagram Tool)
291:
in Eiffel deal with objects during execution, developers deal with abstractions representing classes, features, breakpoints (for debugging), clusters (groups of classes) and other
312:"picked". For example, a class tool will now display the chosen class, in whatever view (text, contract, flat etc.) was selected. This is known as the "Pick-and-Drop" paradigm. 542:
processor garbage collection. Multiple improvements to Eiffel Information System linking application code to appropriate external resources such as requirements documents.
392:
5.2, November 2002: new EiffelBuild for GUI design, extended debugging, new mechanisms for C and C++ integration, better roundtripping facilities for the Diagram Tool (
336:
First, for manually created tests EiffelStudio AutoTest creates a test class containing a framework for the test. The user needs only supply the test code itself.
819:
Bertrand Meyer.: An Object-Oriented Environment: Principles and Applications, Prentice Hall. 1995 (describes the principles underlying the original EiffelBench).
411:), major compilation speed improvements, improved support for multithreading, major EiffelBuild enhancements, first support for new mechanisms as defined by the 415:
Eiffel committee, support for preconditions and postconditions in external (e.g. C) routines, transparent way to call overloaded .NET routines from Eiffel (
896: 876: 517: 502: 495: 488: 481: 467: 460: 434: 339:
Second, EiffelStudio AutoTest provides a method for creating a new test based on an application failure at runtime. This type of test is called
615:
18.01, February 2018. Deeper integrated code analyzer. Improved type rules for conditional expressions and manifest arrays. Class features. (
474: 453: 445: 891: 429:
5.6, August 2005: enhanced diagram tool (UML support, force-directed graphs, better roundtripping), new EiffelCOM wizard for generation of
753: 629:
18.11, December 2018. All containers can be used in the iteration form of a loop, and the linear ones can be initialized from others. (
423: 416: 401: 881: 299:) wherever it appears in the interface, and regardless of its visual representation (name of the object, visual symbol or other). 727:
Code analyzer is a Rule-based static code analysis tool which operates both from an embedded mode within EiffelStudio and from
383: 393: 871: 89: 601:
17.01, January 2017. Library capability mechanism to document and enforce supported compilation options. Code templates. (
61: 566:
14.05, May 2014. Includes new Eiffel Inspector tool (static analysis tool to help maintaining a high code quality). (
108: 408: 68: 657:
21.11, November 2021. Moving to GTK3 for Linux, Unix and a better presence on MAC OS, new Source control tool. (
302:
To pick a development object it suffices to right-click on it. The cursor then changes into a special symbol or
693: 681: 672: 665: 658: 651: 644: 637: 630: 623: 616: 609: 602: 46: 75: 748: 710: 622:
18.07, July 2018. Relaxed rules for class features. Subsequent bracket expressions. Remote project targets. (
125: 42: 556: 242:
The Diagram Tool of EiffelStudio provides a graphical view of software structures. It can be used in both
407:
5.4, November 2003: new conversion mechanism, major run-time performance improvements (in particular for
288: 57: 194:, where projects and resources are listed. The source code base is usually available for check-out via 160: 148: 856: 261: 720:
program released by Eiffel Software, originally produced as a result of a Masters Thesis project at
440:
5.7, October 2006: ISO/ECMA Eiffel addition (inline agents, new "expanded" semantics, named tuples,
774: 257: 227: 901: 717: 253:
The tool guarantees integrity of changes made in either style, for full "roundtrip engineering".
249:
Reverse engineering, automatically producing graphical representations of existing program texts.
35: 643:
20.05, May 2020. Multi-branch expression, untyped manifest string evaluation based on content. (
430: 608:
17.05, May 2017. Better detection of obsolete features. Pick&drop for local variables. (
276:
of classes and features: text view (full program text), contract view (interface only, with
732: 560: 636:
19.05, May 2019. Unicode operators, HiDPI, dead 'class' removal, compiler optimizations. (
359:
violation, EiffelStudio AutoTest produces a single new test reproducing the failing call.
82: 8: 246:
Forward engineering, as a design tool for producing software from graphical descriptions.
387: 886: 736: 528: 412: 277: 190:
The Eiffel community actively participates in its development; its official website is
287:
paradigm based on "development objects", "pebbles" and "holes". In the same way that
195: 184: 180: 136: 573:
15.01, January 2015. New SCOOP runtime brings significant performance improvement. (
328: 713: 539: 524: 509: 166: 595: 588: 581: 580:
15.08, August 2015. Improved EiffelWeb solution to build web server application. (
574: 567: 444:
support), refactoring facilities, new way to configure a project system, metrics (
333:
EiffelStudio AutoTest provides the user with three methods of test case creation.
356: 223: 851: 284: 231: 826:, Prentice Hall, 1995 (contains a description of the BON method and notation). 865: 422:
5.5, September 2004: docking, improved debugger, new ECMA language features (
375:
Major releases since 2001, and some of the new features for each, have been:
352: 692:, May 2024. Improved NETcore support, and debugging, new Composer commands ( 523:
7.0, November 2011. Includes performance and functional enhancements to the
728: 156: 587:
15.12, December 2015. Language improvements (new agent's type notation). (
508:
6.8, May 2011. Includes the first implementation of facilities supporting
532: 807: 783: 721: 773:
Zurfluh, Stefan; Tschannen, Julian; Meyer, Bertrand (April 1, 2014),
170:
EiffelStudio version 7.2, showing Editor, Features, and Diagram panes
24: 219: 551:
13.11, December 2013. This release marks the beginning of using a
433:
components, better class completion, faster .NET code generation (
552: 441: 152: 527:
parallel development facility, GUI library and tool support for
144: 140: 135:
EiffelStudio is available on a number of platforms including
842:
For open-source contributors: Eiffel home page at ETH Zurich
346:
The third method of creating tests produces what are called
324:
EiffelStudio includes an integrated testing facility called
735:(AST) produced by the Eiffel compiler and then generates a 664:
22.05, May 2022. Source control tool and UI improvements. (
191: 836: 272:
EiffelStudio makes it possible to display many different
199: 846: 841: 295:. A development object in EiffelStudio can be selected ( 174: 816:, Prentice Hall, 1991 (second revised printing, 1992). 772: 202:. Also available are discussion forums and the like. 260:(the Business Object Notation, see bibliography) or 382:
5.1, December 2001: first version to support .NET (
49:. Unsourced material may be challenged and removed. 535:software development, and many other improvements. 671:22.12, December 2022. New platform, ARM support ( 386:(PDF)). It was called "Eiffel#" before releasing 218:The interpreter part of EiffelStudio relies on a 863: 806:Eiffel Software: EiffelStudio manual. Online at 163:; other commercial licenses are also available. 319: 824:Seamless Object-Oriented Software Architecture 187:of the next release made regularly available. 128:developed and distributed by Eiffel Software. 514:Simple Concurrent Object-Oriented Programming 650:20.11, November 2020. Once classes, WrapC. ( 754:List of integrated development environments 531:interface structures, improved support for 368:version of the language (as documented in 267: 897:Linux integrated development environments 847:Eiffel Software's home page at eiffel.com 237: 209: 109:Learn how and when to remove this message 877:Free integrated development environments 165: 680:23.09, September 2023. NETcore support( 594:16.05, May 2016. Maintenance release. ( 864: 175:Status, license and community process 124:is a development environment for the 808:https://www.eiffel.org/documentation 234:CIL (Common Intermediate Language). 47:adding citations to reliable sources 18: 892:Integrated development environments 283:EiffelStudio relies on an original 13: 14: 913: 830: 822:Kim Waldén and Jean-Marc Nerson: 256:The graphical notation is either 700: 226:. The compiler generates either 159:. The source is available under 23: 882:Free compilers and interpreters 800: 34:needs additional citations for 766: 1: 759: 749:Eiffel (programming language) 553:new version numbering scheme 320:Unit and integration testing 7: 872:Object-oriented programming 852:EiffelStudio at SourceForge 742: 126:Eiffel programming language 10: 918: 857:EiffelStudio release notes 362: 538:7.1, June 2012. Includes 776:Rule-Based Code Analysis 268:User interface paradigm 16:Development environment 705:Code analyzer (former 264:. BON is the default. 238:Round-trip engineering 210:Compilation technology 171: 501:6.7, November 2010: ( 487:6.5, November 2009: ( 473:6.3, December 2008: ( 459:6.1, November 2007: ( 326:EiffelStudio AutoTest 169: 814:Eiffel: The Language 733:abstract syntax tree 370:Eiffel: The Language 43:improve this article 545:7.2, February 2013. 293:development objects 179:EiffelStudio is an 737:control-flow graph 731:. It utilizes the 709:) is an automated 172: 480:6.4, June 2009: ( 183:development with 119: 118: 111: 93: 909: 837:Eiffel Community 812:Bertrand Meyer: 794: 793: 792: 790: 781: 770: 714:software testing 707:Inspector Eiffel 494:6.6, May 2010: ( 466:6.2, May 2008: ( 114: 107: 103: 100: 94: 92: 51: 27: 19: 917: 916: 912: 911: 910: 908: 907: 906: 862: 861: 833: 803: 798: 797: 788: 786: 779: 771: 767: 762: 745: 718:static analysis 703: 548:7.3, July 2013. 365: 357:class invariant 322: 289:object-oriented 270: 240: 224:virtual machine 212: 177: 115: 104: 98: 95: 52: 50: 40: 28: 17: 12: 11: 5: 915: 905: 904: 902:Free UML tools 899: 894: 889: 884: 879: 874: 860: 859: 854: 849: 844: 839: 832: 831:External links 829: 828: 827: 820: 817: 810: 802: 799: 796: 795: 764: 763: 761: 758: 757: 756: 751: 744: 741: 702: 699: 698: 697: 686: 685: 677: 676: 669: 662: 655: 648: 641: 634: 627: 620: 613: 606: 599: 592: 585: 578: 571: 564: 549: 546: 543: 536: 521: 506: 499: 492: 485: 478: 471: 464: 457: 449: 438: 427: 420: 405: 397: 390: 380: 364: 361: 321: 318: 285:user interface 269: 266: 251: 250: 247: 239: 236: 211: 208: 176: 173: 117: 116: 58:"EiffelStudio" 31: 29: 22: 15: 9: 6: 4: 3: 2: 914: 903: 900: 898: 895: 893: 890: 888: 885: 883: 880: 878: 875: 873: 870: 869: 867: 858: 855: 853: 850: 848: 845: 843: 840: 838: 835: 834: 825: 821: 818: 815: 811: 809: 805: 804: 785: 778: 777: 769: 765: 755: 752: 750: 747: 746: 740: 738: 734: 730: 725: 723: 719: 715: 712: 708: 701:Code analyzer 695: 694:24.05 release 691: 688: 687: 683: 682:23.09 release 679: 678: 674: 673:22.12 release 670: 667: 666:22.05 release 663: 660: 659:21.11 release 656: 653: 652:20.11 release 649: 646: 645:20.05 release 642: 639: 638:19.05 release 635: 632: 631:18.11 release 628: 625: 624:18.07 release 621: 618: 617:18.01 release 614: 611: 610:17.05 release 607: 604: 603:17.01 release 600: 597: 596:press release 593: 590: 589:press release 586: 583: 582:press release 579: 576: 575:press release 572: 569: 568:press release 565: 562: 561:press release 558: 554: 550: 547: 544: 541: 537: 534: 530: 526: 522: 519: 518:press release 515: 511: 507: 504: 503:press release 500: 497: 496:press release 493: 490: 489:press release 486: 483: 482:press release 479: 476: 475:press release 472: 469: 468:press release 465: 462: 461:press release 458: 455: 454:press release 450: 447: 446:press release 443: 439: 436: 435:press release 432: 431:Microsoft COM 428: 425: 424:press release 421: 418: 417:press release 414: 410: 406: 403: 402:press release 398: 395: 394:press release 391: 388: 385: 384:press release 381: 378: 377: 376: 373: 371: 360: 358: 354: 353:postcondition 349: 344: 342: 337: 334: 331: 329: 327: 317: 313: 310: 305: 300: 298: 294: 290: 286: 281: 279: 275: 265: 263: 259: 254: 248: 245: 244: 243: 235: 233: 229: 225: 221: 216: 207: 203: 201: 197: 193: 188: 186: 185:beta versions 182: 168: 164: 162: 158: 154: 150: 146: 142: 138: 133: 129: 127: 123: 113: 110: 102: 99:December 2015 91: 88: 84: 81: 77: 74: 70: 67: 63: 60: –  59: 55: 54:Find sources: 48: 44: 38: 37: 32:This article 30: 26: 21: 20: 823: 813: 801:Bibliography 787:, retrieved 775: 768: 729:command line 726: 706: 704: 689: 557:Release note 513: 374: 369: 366: 347: 345: 340: 338: 335: 332: 325: 323: 314: 308: 303: 301: 296: 292: 282: 273: 271: 255: 252: 241: 217: 213: 204: 189: 178: 134: 130: 122:EiffelStudio 121: 120: 105: 96: 86: 79: 72: 65: 53: 41:Please help 36:verification 33: 181:open-source 157:RaspberryPi 866:Categories 784:ETH Zurich 760:References 722:ETH Zurich 222:-oriented 196:Subversion 192:Eiffel.org 132:browsing. 69:newspapers 887:Compilers 533:void-safe 348:generated 341:extracted 278:contracts 743:See also 220:bytecode 789:May 25, 442:Unicode 363:History 149:Solaris 137:Windows 83:scholar 711:Eiffel 529:ribbon 409:agents 304:pebble 297:picked 145:Mac OS 85:  78:  71:  64:  56:  780:(PDF) 690:24.05 540:SCOOP 525:SCOOP 510:SCOOP 274:views 141:Linux 90:JSTOR 76:books 791:2014 716:and 413:ECMA 309:drop 232:.NET 62:news 559:) ( 555:. ( 516:. ( 355:or 262:UML 258:BON 230:or 200:Git 198:or 161:GPL 153:VMS 45:by 868:: 782:, 724:. 696:). 684:). 675:). 668:). 661:). 654:). 647:). 640:). 633:). 626:). 619:). 598:). 591:). 584:). 577:). 570:). 563:). 520:). 512:, 505:). 498:). 491:). 484:). 477:). 470:). 463:). 456:). 448:). 437:). 426:). 419:). 404:). 396:). 155:, 151:, 147:, 143:, 139:, 612:) 605:) 452:( 400:( 389:. 228:C 112:) 106:( 101:) 97:( 87:· 80:· 73:· 66:· 39:.

Index


verification
improve this article
adding citations to reliable sources
"EiffelStudio"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Eiffel programming language
Windows
Linux
Mac OS
Solaris
VMS
RaspberryPi
GPL
A window containing three panes: an editor pane containing class source code, a features pane containing a list of features of the class source code under edit, and a diagram pane showing the class as an icon with relationships to other classes
open-source
beta versions
Eiffel.org
Subversion
Git
bytecode
virtual machine
C
.NET
BON

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.