Integrated development environment
An integrated development environment ( IDE , from English integrated development environment ) is a collection of computer programs with which the tasks of software development can be processed with as little media breaks as possible.
IDEs provide helpful tools that relieve the software developer of frequently recurring tasks, offer quick access to individual functions, with which the work (interim) results can be managed and transferred directly to later processing functions. The developer is relieved of formal work and can carry out his actual task, the development / programming of software, efficiently with system support .
IDEs are available for almost all programming languages and platforms . Often only one programming language is supported. However, there are also applications that combine several special IDEs under a common user interface. They are also available for concepts that aim to create more or less “programming-free” application software by means of configuration (e.g. Universal Application), and which are therefore not geared towards a specific programming language; see declarative programming .
Terms used synonymously include: software development environment (SEU), software production environment (SPU), software engineering environment system (SEES), integrated design environment (for partial aspects). Development tools that are sold as software development kits (SDK), RAD tools (see Rapid Application Development ), low code development or similar designations also offer functionalities for "integrated software development".
Deviating meaning: From the point of view of the system architecture and release management , the term development environment is also understood to distinguish it from other system environments , while here the functionality used for software development (integrated) is meant, regardless of the technical system environment.
Integrated / not integrated
Alfonso Fuggetta divided the umbrella term for any kind of "computer-aided software development" (= "CASE" ) into three categories:
- "Tools" ( German 'tools' , for individual activities in the software life cycle ),
- "Workbenches" ( German , workbench , they include several tools),
- "Environments" ( German for "environment" , the combination of several workbenches and tools to support the complete software life cycle).
The use of only individual programming tools , for example: text editor , compiler or interpreter , linker , possibly a debugger , is considered to be non-integrated, although sometimes called a generalized development environment . The developers have to initiate the individual work steps in a targeted manner. Example: a) Open source code, change / edit, save; b) call compiler, check result; c) call linker, check result; d) Execute program (e.g. for testing).
The integrated aspect , on the other hand, requires more than individual tools that operate separately. Properties / functions of an IDE can be, for example, the following:
- Coordinated methods with a similar philosophy
- The processes of software development or the entire software life cycle are accompanied and supported.
- A development database (see also repository and data dictionary ) stores (interim) results and makes them available for the next tools - which can be activated via a uniform / shared user interface.
- Example: The data fields defined for a form or a report via the GUI can be referenced / used directly in the program code editor.
- Support with conceptual aspects of software development such as the so-called structured procedures Structured Analysis and Structured Design (SA / SD), the UML graphic notation or data modeling methods such as Entity Relationship Modeling (ERM / SERM).
- Other components that are helpful for software development can be: B. be: A version management , applications for the simple creation of graphical user interfaces (also called GUI), source code formatting , support for project management , for testing or for the production of the software ( release / deployment management ).
To evaluate an IDE , further "specific criteria for the evaluation of integrated development environments" are described - such as special comfort functions of text editors, automatic compilation and debugging, setting up operating aids such as key combinations or macros, generation functions, etc. v. a. Functionalities. Depending on whether and to what extent these apply to a specific software development product, this can be called an IDE - or not. The boundaries are always fluid.
Integrated development environments emerged in the first half of the 1980s and replaced the then common practice of offering editors, compilers, linkers and debuggers as four separate products, each of which was executed separately. Maestro I (originally Program Development Terminal System, PET) from Softlab was the world's first integrated development environment for software.
In the 1980s, in addition to the integrated development environments for standard programming languages of the third generation, those for 4GL programming languages such as B. Natural , some of which are still on the market today. In addition to the programming language in an interactive integrated development environment, these also offer all tools such as analysis and design tools, text editor , mask editor, GUI designer, compiler or interpreter , linker , debugger , source text formatting function .
While the first IDEs were still text-based, the trend, especially among the major providers, was increasingly towards visual programming environments from around 1990 onwards . However, there are still various text IDEs available today, especially for special languages.
- Gregor Engels, Wilhelm Schäfer : Program development environments: Concepts and implementation . BG Teubner, Stuttgart, ISBN 3-519-02487-X .
- Henner Diederichs: Complexity reduction in software development. A system-theoretical approach (DSOR contributions to business informatics, Volume 3). Books on Demand , Norderstedt 2005, ISBN 3-8334-1790-0 (dissertation), p. 88 f.
- Gabler Wirtschaftslexikon SEU / Definition
- Linux-Magazin 8/2017 linux-magazin.de advantages and disadvantages of tools for rapid application development
- Computerwoche computerwoche.de Digitization with low-code development
- Alfonso Fuggetta: A classification of CASE technology . In: Computer . 26, No. 12, December 1993, pp. 25-38. doi : 10.1109 / 2.247645 . Retrieved March 14, 2009.
- Softguide softguide.de Criteria for (integrated) development environments
- Axel Bruns: The history of the computer. neobooks.com, March 31, 2015, accessed October 17, 2016 .