EiffelStudio
Encyclopedia
EiffelStudio is a development environment for the Eiffel programming language
Eiffel (programming language)
Eiffel is an ISO-standardized, object-oriented programming language designed by Bertrand Meyer and Eiffel Software. The design of the language is closely connected with the Eiffel programming method...

 developed and distributed by Eiffel Software
Eiffel Software
Eiffel Software is a software company specializing in object technology, especially tools, training and services for the Eiffel programming language and method, originally introduced by the company in 1985.The company's two flagship products are the EiffelStudio integrated development environment,...

.

EiffelStudio includes a combination of tools integrated under a single user interface: compiler, interpreter, debugger, browser, metrics tool, profiler, diagram tool. The user interface rests on a number of specific UI paradigms, in particular "pick-and-drop" for effective browsing.

EiffelStudio is available on a number of platforms including Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Mac OS
Mac OS
Mac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...

, Solaris
Solaris Operating System
Solaris is a Unix operating system originally developed by Sun Microsystems. It superseded their earlier SunOS in 1993. Oracle Solaris, as it is now known, has been owned by Oracle Corporation since Oracle's acquisition of Sun in January 2010....

, VMS
OpenVMS
OpenVMS , previously known as VAX-11/VMS, VAX/VMS or VMS, is a computer server operating system that runs on VAX, Alpha and Itanium-based families of computers. Contrary to what its name suggests, OpenVMS is not open source software; however, the source listings are available for purchase...

. The source is available under GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

; other commercial licenses are also available.

Status, license and community process

EiffelStudio is an open-source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 development with beta versions
Development stage
A software release life cycle refers to the phases of development and maturity for a piece of computer software—ranging from its initial development, to its eventual release, and updated versions of the released version to help improve software or fix bugs still present in the software.- Pre-alpha...

 of the next release made regularly available.

The Eiffel community actively participates in its development; a list of open projects is available from the Origo site, hosted at ETH Zurich
ETH Zurich
The Swiss Federal Institute of Technology Zurich or ETH Zürich is an engineering, science, technology, mathematics and management university in the City of Zurich, Switzerland....

 (see "external links"), together with the source code base for check-out, discussion forums etc.

As of November 2011 the last released version was 7.0. Successive beta releases are regularly available.

Compilation technology

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 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.

The interpreter part of EiffelStudio relies on a bytecode
Bytecode
Bytecode, also known as p-code , is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code...

-oriented virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

. The compiler generates either C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 or .NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

 CIL (Common Intermediate Language).

Round-trip engineering

The Diagram Tool of EiffelStudio provides a graphical view of software structures. It can be used in both
  • Forward engineering, as a design tool for producing software from graphical descriptions.
  • Reverse engineering, automatically producing graphical representations of existing program texts.


The tool guarantees integrity of changes made in either style, for full "roundtrip engineering".

The graphical notation is either BON
Business Object Notation
In software engineering, Business Object Notation is a method and graphical notation for high-level object-oriented analysis and design....

 (the Business Object Notation, see bibliography) or UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

. BON is the default.

User interface paradigm

EiffelStudio makes it possible to display many different views of classes and features: text view (full program text), contract view (interface only, with contracts
Design by contract
Design by contract , also known as programming by contract and design-by-contract programming, is an approach to designing computer software...

), 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.

EiffelStudio relies on an original user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

 paradigm based on "development objects", "pebbles" and "holes". In the same way that object-oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 in Eiffel deal with objects during execution, developers deal with abstractions representing classes, features, breakpoints (for debugging), clusters (groups of classes) and other development objects. A development object in EiffelStudio can be selected (picked) wherever it appears in the interface, and regardless of its visual representation (name of the object, visual symbol or other).

To pick a development object it suffices to right-click on it. The cursor then changes into a special symbol or pebble 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 drop 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 "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.

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.

History

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 version of the language (as documented in Eiffel: The Language, 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.

Major releases since 2001, and some of the new features for each, have been:
  • 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)
  • 5.1, December 2001: first version to support .NET (press release (PDF)). It was called "Eiffel#" before releasing http://msdn.microsoft.com/en-us/library/ms973898.aspx.
  • 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 (press release).
  • 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 (press release).
  • 5.4, November 2003: new conversion mechanism, major run-time performance improvements (in particular for agents), major compilation speed improvements, improved support for multithreading, major EiffelBuild enhancements, first support for new mechanisms as defined by the ECMA
    ECMA
    Ecma or ECMA may refer to:* Ecma International, an international standards organization for Information Communication Technology and Consumer Electronics* Engineering College Magazines Associated, a group of student-run engineering-based publications...

     Eiffel committee, support for preconditions and postconditions in external (e.g. C) routines, transparent way to call overloaded .NET routinea from Eiffel (press release).
  • 5.5, September 2004: docking, improved debugger, new ECMA language features (press release).
  • 5.6, August 2005: enhanced diagram tool (UML support, force-directed graphs, better roundtripping), new EiffelCOM wizard for generation of Microsoft COM
    Component Object Model
    Component Object Model is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages...

     components, better class completion, faster .NET code generation (press release).
  • 5.7, October 2006: ISO/ECMA Eiffel addition (inline agents, new "expanded" semantics, named tuples, Unicode
    Unicode
    Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...

     support), refactoring facilities, new way to configure a project system, metrics (press release).
  • 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 of pick and drop, dependency tool (press release).
  • 6.1, November 2007: (press release).
  • 6.2, May 2008: (press release).
  • 6.3, December 2008: (press release).
  • 6.4, June 2009: (press release).
  • 6.5, November 2009: (press release).
  • 6.6, May 2010.
  • 6.7, November 2010.
  • 6.8, May 2011. Includes the first implementation of facilities supporting SCOOP
    SCOOP (software)
    SCOOP stands for Simple Concurrent Object Oriented Programming. It is a concurrency model designed for the Eiffel programming language, conceived by Eiffel's creator and designer, Bertrand Meyer....

    , Simple Concurrent Object-Oriented Programming. (press release).
  • 7.0, November 2011. Includes performance and functional enhancements to the SCOOP
    SCOOP (software)
    SCOOP stands for Simple Concurrent Object Oriented Programming. It is a concurrency model designed for the Eiffel programming language, conceived by Eiffel's creator and designer, Bertrand Meyer....

     parallel development facility, GUI library and tool support for ribbon
    Ribbon (computing)
    In GUI-based application software, a ribbon is an interface where a set of toolbars are placed on tabs in a tab bar. Recent releases of some Microsoft applications have embraced this form with a modular ribbon as their main interface. The Ribbon is a contextual interface that offers functionality...

     interface structures, improved support for void-safe
    Void safety
    Void safety is a guarantee within an object-oriented programming language that that no object references will have null or void values....

     software development, and many other improvements.

See also

  • Eiffel (programming language)
    Eiffel (programming language)
    Eiffel is an ISO-standardized, object-oriented programming language designed by Bertrand Meyer and Eiffel Software. The design of the language is closely connected with the Eiffel programming method...

  • Eiffel Software
    Eiffel Software
    Eiffel Software is a software company specializing in object technology, especially tools, training and services for the Eiffel programming language and method, originally introduced by the company in 1985.The company's two flagship products are the EiffelStudio integrated development environment,...

  • List of integrated development environments

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK