„Integrierte Entwicklungsumgebung“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Palin03 (Diskussion | Beiträge)
Belege wurden erneuert und erweitert
 
Zeile 10: Zeile 10:
IDEs gibt es für nahezu alle Programmiersprachen und [[Plattform (Computer)|Plattformen]]. Oft wird damit nur eine [[Programmiersprache]] unterstützt. Es gibt aber auch Anwendungen, die mehrere spezielle IDEs unter einer gemeinsamen Benutzeroberfläche zusammenfassen. Auch gibt es sie für Konzepte, die darauf zielen, mehr oder weniger „programmierfrei“ Anwendungssoftware per Konfiguration zu erstellen (z. B. Universal Application), und die somit nicht auf eine bestimmte Programmiersprache ausgerichtet sind; siehe [[Deklarative Programmierung]].
IDEs gibt es für nahezu alle Programmiersprachen und [[Plattform (Computer)|Plattformen]]. Oft wird damit nur eine [[Programmiersprache]] unterstützt. Es gibt aber auch Anwendungen, die mehrere spezielle IDEs unter einer gemeinsamen Benutzeroberfläche zusammenfassen. Auch gibt es sie für Konzepte, die darauf zielen, mehr oder weniger „programmierfrei“ Anwendungssoftware per Konfiguration zu erstellen (z. B. Universal Application), und die somit nicht auf eine bestimmte Programmiersprache ausgerichtet sind; siehe [[Deklarative Programmierung]].


''Synonym'' verwendete Bezeichnungen sind unter anderem: '''Softwareentwicklungsumgebung''' (SEU),<ref name="GablerSEU">[https://wirtschaftslexikon.gabler.de/Definition/softwareentwicklungsumgebung-seu.html SEU/Definition.] In: ''Gabler Wirtschaftslexikon''.</ref> '''Softwareproduktionsumgebung''' (SPU), '''software engineering environment system''' (SEES), '''integrated design environment''' (für Teilaspekte). Auch bieten Entwicklungswerkzeuge, die als '''[[Software Development Kit]]''' (SDK), RAD-Tool (siehe '''[[Rapid Application Development]]'''),<ref name="Linux817" /> '''[[Low-Code-Plattform|Low Code Development]]'''<ref>[https://www.computerwoche.de/a/digitalisierung-mit-low-code-development,3331915?tap=626f82b8f4635a7f9c1f88a6147421ca&r=367636515635184&lid=765564&pm_ln=10 ''Digitalisierung mit Low-Code Development''.] computerwoche.de</ref> oder unter ähnlichen Bezeichnungen vertrieben werden, Funktionalitäten zur „Integrierten Softwareentwicklung“.
''Synonym'' verwendete Bezeichnungen sind unter anderem: '''Softwareentwicklungsumgebung''' (SEU)<ref>{{Literatur |Autor=Norbert Gronau, Wilhelm Hasselbring |Titel=M-WISE: Modellierung wissensintensiver Prozesse im Software Engineering |Hrsg=Norbert Gronau, Wilhelm Hasselbring |Verlag=Gito Verlag |Ort=Berlin |Datum=2006 |Sprache=de |Umfang=541 |ISBN=978-3-936771-80-0 |Seiten=32 |Online=https://oceanrep.geomar.de/id/eprint/14649/ |Abruf=2024-04-23}}</ref>, '''Softwareproduktionsumgebung''' (SPU, englisch ''software production environment'') und '''Softwareentwicklungsumgebung''' (englisch software engineering environment)<ref>{{Literatur |Autor=Max Mühlhäuser, Alexander Schill |Titel=Software engineering für verteilte Anwendungen: Mechanismen und Werkzeuge |Verlag=Springer |Ort=Berlin / Heidelberg |Datum=1992 |Reihe=Springer-Lehrbuch |ISBN=978-3-540-55412-7 |Seiten=206 |Online=https://link.springer.com/chapter/10.1007/978-3-642-95685-0_8 |Abruf=2024-04-23}}</ref>''', software engineering environment system''' (SEES), '''integrated design environment''' (für Teilaspekte). Auch bieten Entwicklungswerkzeuge, die als '''[[Software Development Kit]]''' (SDK), RAD-Tool (siehe '''[[Rapid Application Development]]'''),<ref>{{Literatur |Autor=P Beynon-Davies, C Carne, H Mackay, D Tudhope |Titel=Rapid application development (RAD): an empirical review |Sammelwerk=European Journal of Information Systems |Band=8 |Nummer=3 |Datum=1999-09 |ISSN=0960-085X |DOI=10.1057/palgrave.ejis.3000325 |Seiten=211 |Online=https://www.tandfonline.com/doi/full/10.1057/palgrave.ejis.3000325 |Abruf=2024-04-23}}</ref> '''[[Low-Code-Plattform|Low Code Development]]'''<ref>{{Literatur |Autor=Alessio Bucaioni, Antonio Cicchetti, Federico Ciccozzi |Titel=Modelling in low-code development: a multi-vocal systematic review |Hrsg=Software and Systems Modeling |Sammelwerk=Software and Systems Modeling |Band=21 |Nummer=5 |Datum=2022-10-01 |ISSN=1619-1374 |DOI=10.1007/s10270-021-00964-0 |Seiten=1959 |Online=https://link.springer.com/content/pdf/10.1007/s10270-021-00964-0.pdf |Abruf=2024-04-23}}</ref> oder unter ähnlichen Bezeichnungen vertrieben werden, Funktionalitäten zur „Integrierten Softwareentwicklung“.


''Abweichende Bedeutung:'' Der Ausdruck ''Entwicklungsumgebung'' wird als Abgrenzung zu anderen [[Systemumgebung]]en nicht zwangsläufig als Hardwareplattform verstanden, sondern in engerem Sinn als die zur Softwareentwicklung (integriert) benutzte ''Funktionalität'', unabhängig von der technischen [[Systemarchitektur]].
''Abweichende Bedeutung:'' Der Ausdruck ''Entwicklungsumgebung'' wird als Abgrenzung zu anderen [[Systemumgebung]]en nicht zwangsläufig als Hardwareplattform verstanden, sondern in engerem Sinn als die zur Softwareentwicklung (integriert) benutzte ''Funktionalität'', unabhängig von der technischen [[Systemarchitektur]].


== Integriert / nicht integriert ==
== Integriert / nicht integriert ==
Den Überbegriff für jegliche Art von „rechnergestützte Softwareentwicklung“ (= [[Computer-aided software engineering|„CASE“]]) gliederte Alfonso Fuggetta in drei Kategorien:<ref name="AF_93">{{cite journal
Den Überbegriff für jegliche Art von „rechnergestützte Softwareentwicklung“ (= [[Computer-aided software engineering|„CASE“]]) gliederte Alfonso Fuggetta in drei Kategorien:<ref name="AF_93">{{cite journal |author=Alfonso Fuggetta |title=A classification of CASE technology |journal=Computer |language=en |issue=12 |volume=26 |pages=25–38 |date=1993-12 |doi=10.1109/2.247645 |url=https://www.computer.org/csdl/magazine/co/1993/12/rz025/13rRUwh80O2 |accessdate=2021-05-03}}</ref>
| author = Alfonso Fuggetta
|date=1993-12
| title = A classification of CASE technology
| journal = Computer
| volume = 26
| issue = 12
| pages = 25–38
| doi = 10.1109/2.247645
| url = https://www.computer.org/csdl/magazine/co/1993/12/rz025/13rRUwh80O2
| accessdate = 2021-05-03
}}</ref>
# „Tools“ ({{deS|‚Werkzeuge‘}}, für einzelne Aktivitäten im [[Software-Lebenszyklus]]),
# „Tools“ ({{deS|‚Werkzeuge‘}}, für einzelne Aktivitäten im [[Software-Lebenszyklus]]),
# „Workbenches“ ({{deS|‚Werkbank‘}}, sie umfassen mehrere Werkzeuge),
# „Workbenches“ ({{deS|‚Werkbank‘}}, sie umfassen mehrere Werkzeuge),
Zeile 34: Zeile 23:


Der Aspekt ''integriert'' erfordert dagegen mehr als einzelne getrennt operierende Werkzeuge. Eigenschaften/Funktionen einer IDE können beispielsweise folgende sein:
Der Aspekt ''integriert'' erfordert dagegen mehr als einzelne getrennt operierende Werkzeuge. Eigenschaften/Funktionen einer IDE können beispielsweise folgende sein:
* Aufeinander abgestimmte [[Softwaretechnik#Methoden zur Softwareentwicklung|Methoden]] mit ähnlicher Philosophie<ref name="GablerSEU" />
* Aufeinander abgestimmte [[Softwaretechnik#Methoden zur Softwareentwicklung|Methoden]] mit ähnlicher Philosophie<ref name=":0">{{Internetquelle |autor=Prof Dr Richard Lackes |url=https://wirtschaftslexikon.gabler.de/definition/softwareentwicklungsumgebung-seu-43386/version-266716 |titel=Definition: Softwareentwicklungsumgebung (SEU) |sprache=de |abruf=2024-04-23}}</ref>
* Die Prozesse der Softwareentwicklung oder auch des gesamten [[Software-Lebenszyklus]] werden begleitet und unterstützt.<ref name="GablerSEU" />
* Die Prozesse der Softwareentwicklung oder auch des gesamten [[Software-Lebenszyklus]] werden begleitet und unterstützt.<ref name=":0" />
* Eine Entwicklungsdatenbank (siehe auch [[Repository]] und [[Data-Dictionary]]) speichert (Zwischen-)Ergebnisse und macht sie für die jeweils nächsten Werkzeuge verfügbar – die über eine einheitliche/gemeinsame Benutzeroberfläche aktiviert werden können.
* Eine Entwicklungsdatenbank (siehe auch [[Repository]] und [[Data-Dictionary]]) speichert (Zwischen-)Ergebnisse und macht sie für die jeweils nächsten Werkzeuge verfügbar – die über eine einheitliche/gemeinsame Benutzeroberfläche aktiviert werden können.
: Beispiel: Die für ein [[Formular]] oder einen [[Bericht (Informatik)|Report]] per GUI definierten [[Datenfeld]]er können so im [[Programmcode]]-Editor direkt referenziert/verwendet werden.
: Beispiel: Die für ein [[Formular]] oder einen [[Bericht (Informatik)|Report]] per GUI definierten [[Datenfeld]]er können so im [[Programmcode]]-Editor direkt referenziert/verwendet werden.
* Unterstützung bei konzeptionellen Aspekten der Softwareentwicklung wie die sogenannten strukturierten Vorgehensweisen [[Strukturierte Analyse (Methode im Rahmen der Softwareentwicklung)|Strukturierte Analyse]] und [[Strukturiertes Design]] (SA/SD), die grafische Notationsweise [[Unified Modeling Language|UML]] oder Datenmodellierungsmethoden wie [[Entity-Relationship-Modell]]ierung (ERM/SERM).
* Unterstützung bei konzeptionellen Aspekten der Softwareentwicklung wie die sogenannten strukturierten Vorgehensweisen [[Strukturierte Analyse (Methode im Rahmen der Softwareentwicklung)|Strukturierte Analyse]] und [[Strukturiertes Design]] (SA/SD), die grafische Notationsweise [[Unified Modeling Language|UML]] oder Datenmodellierungsmethoden wie [[Entity-Relationship-Modell]]ierung (ERM/SERM).
* Weitere zur Softwareentwicklung hilfreiche Komponenten können z.&nbsp;B. sein: Eine [[Versionsverwaltung]], Anwendungen zur einfachen Erstellung von [[Grafische Benutzeroberfläche|grafischen Benutzeroberflächen]] (auch GUI genannt), [[Quelltextformatierung]], Unterstützung für das [[Projektmanagement]], zum [[Softwaretest|Testen]] oder bei der Produktivsetzung der Software ([[Releasemanagement|Release-/Deployment Management]]).
* Weitere zur Softwareentwicklung hilfreiche Komponenten können z.&nbsp;B. sein: Eine [[Versionsverwaltung]], Anwendungen zur einfachen Erstellung von [[Grafische Benutzeroberfläche|grafischen Benutzeroberflächen]] (auch GUI genannt), [[Quelltextformatierung]], Unterstützung für das [[Projektmanagement]], zum [[Softwaretest|Testen]] oder bei der Produktivsetzung der Software ([[Releasemanagement|Release-/Deployment Management]]).
Zur ''Bewertung einer IDE'' beschreibt<ref>[https://www.softguide.de/software-kriterien/entwicklungsumgebungen#start ''Kriterien für (integrierte) Entwicklungsumgebungen''.] Softguide.de</ref> weitere „spezifische ''Kriterien'' für die Bewertung von integrierten Entwicklungsumgebungen“ – wie besondere Komfortfunktionen von Texteditoren, automatisches Kompilieren und Debugging, das Einrichten von Bedienhilfen wie Tastenkombinationen oder Makros, Generierungsfunktionen und viele andere Funktionalitäten. Je nachdem, ob und in welchem Maß diese für ein konkretes Softwareentwicklungsprodukt zutreffen, lässt sich dieses als IDE bezeichnen – oder nicht. Die Grenzen sind jeweils fließend.<ref name="Linux817">[https://www.linux-magazin.de/Ausgaben/2005/08/Entwicklerturbo ''Vor- und Nachteile von Tools für das Rapid Application Development''.] In: ''Linux-Magazin'', 8/2017 .</ref>
Zur ''Bewertung einer IDE'' sind weitere „spezifische ''Kriterien'' für die Bewertung von integrierten Entwicklungsumgebungen“<ref>[https://www.softguide.de/software-kriterien/entwicklungsumgebungen#start ''Kriterien für (integrierte) Entwicklungsumgebungen''.] Softguide.de</ref> nötig – wie besondere Komfortfunktionen von Texteditoren, automatisches Kompilieren und Debugging, das Einrichten von Bedienhilfen wie Tastenkombinationen oder Makros, Generierungsfunktionen und viele andere Funktionalitäten. Je nachdem, ob und in welchem Maß diese für ein konkretes Softwareentwicklungsprodukt zutreffen, lässt sich dieses als IDE bezeichnen – oder nicht. Die Grenzen sind jeweils fließend.<ref name="Linux817">[https://www.linux-magazin.de/Ausgaben/2005/08/Entwicklerturbo ''Vor- und Nachteile von Tools für das Rapid Application Development''.] In: ''Linux-Magazin'', 8/2017 .</ref>


== Geschichte ==
== Geschichte ==

Aktuelle Version vom 23. April 2024, 22:33 Uhr

Microsoft Visual Studio 2012, IDE für Windows
Turbo Pascal von Borland, eine IDE aus den 1980/90er Jahren mit zeichenorientierter Benutzerschnittstelle
CONZEPT 16, ein Datenbanksystem mit integrierter Entwicklungsumgebung
KDevelop, eine freie IDE für KDE
Dev-C++, eine freie IDE für Windows

Eine integrierte Entwicklungsumgebung (IDE, von englisch integrated development environment) ist eine Sammlung von Computerprogrammen, mit denen die Aufgaben der Softwareentwicklung möglichst ohne Medienbrüche bearbeitet werden können.

IDEs stellen hilfreiche Werkzeuge bereit, die Softwareentwicklern häufig wiederkehrende Aufgaben abnehmen, einen schnellen Zugriff auf einzelne Funktionen bieten, mit denen die Arbeits(zwischen)ergebnisse verwaltet und in spätere Bearbeitungsfunktionen direkt überführt werden können. Entwickler werden dadurch von formalen Arbeiten entlastet und können ihre eigentliche Aufgabe, das Entwickeln/Programmieren von Software, mit Systemunterstützung effizient ausführen.

IDEs gibt es für nahezu alle Programmiersprachen und Plattformen. Oft wird damit nur eine Programmiersprache unterstützt. Es gibt aber auch Anwendungen, die mehrere spezielle IDEs unter einer gemeinsamen Benutzeroberfläche zusammenfassen. Auch gibt es sie für Konzepte, die darauf zielen, mehr oder weniger „programmierfrei“ Anwendungssoftware per Konfiguration zu erstellen (z. B. Universal Application), und die somit nicht auf eine bestimmte Programmiersprache ausgerichtet sind; siehe Deklarative Programmierung.

Synonym verwendete Bezeichnungen sind unter anderem: Softwareentwicklungsumgebung (SEU)[1], Softwareproduktionsumgebung (SPU, englisch software production environment) und Softwareentwicklungsumgebung (englisch software engineering environment)[2], software engineering environment system (SEES), integrated design environment (für Teilaspekte). Auch bieten Entwicklungswerkzeuge, die als Software Development Kit (SDK), RAD-Tool (siehe Rapid Application Development),[3] Low Code Development[4] oder unter ähnlichen Bezeichnungen vertrieben werden, Funktionalitäten zur „Integrierten Softwareentwicklung“.

Abweichende Bedeutung: Der Ausdruck Entwicklungsumgebung wird als Abgrenzung zu anderen Systemumgebungen nicht zwangsläufig als Hardwareplattform verstanden, sondern in engerem Sinn als die zur Softwareentwicklung (integriert) benutzte Funktionalität, unabhängig von der technischen Systemarchitektur.

Integriert / nicht integriert

[Bearbeiten | Quelltext bearbeiten]

Den Überbegriff für jegliche Art von „rechnergestützte Softwareentwicklung“ (= „CASE“) gliederte Alfonso Fuggetta in drei Kategorien:[5]

  1. „Tools“ (deutsch ‚Werkzeuge‘, für einzelne Aktivitäten im Software-Lebenszyklus),
  2. „Workbenches“ (deutsch ‚Werkbank‘, sie umfassen mehrere Werkzeuge),
  3. „Environments“ (deutsch ‚Umgebung‘, die Kombination mehrerer Workbenches und Werkzeuge zur Unterstützung des kompletten Software-Lebenszyklus).

Als nicht integriert, trotzdem gelegentlich verallgemeinernd Entwicklungsumgebung genannt, gilt demnach der Einsatz nur einzelner Programmierwerkzeuge, zum Beispiel: Texteditor, Compiler bzw. Interpreter, Linker, evtl. ein Debugger. Die Entwickler müssen die einzelnen Arbeitsschritte gezielt anstoßen. Beispiel: a) Quelltext öffnen, ändern/editieren, speichern; b) Compiler aufrufen, Ergebnis prüfen; c) Aufrufen Linker, Ergebnis prüfen; d) Programm ausführen (z. B. zum Testen).

Der Aspekt integriert erfordert dagegen mehr als einzelne getrennt operierende Werkzeuge. Eigenschaften/Funktionen einer IDE können beispielsweise folgende sein:

  • Aufeinander abgestimmte Methoden mit ähnlicher Philosophie[6]
  • Die Prozesse der Softwareentwicklung oder auch des gesamten Software-Lebenszyklus werden begleitet und unterstützt.[6]
  • Eine Entwicklungsdatenbank (siehe auch Repository und Data-Dictionary) speichert (Zwischen-)Ergebnisse und macht sie für die jeweils nächsten Werkzeuge verfügbar – die über eine einheitliche/gemeinsame Benutzeroberfläche aktiviert werden können.
Beispiel: Die für ein Formular oder einen Report per GUI definierten Datenfelder können so im Programmcode-Editor direkt referenziert/verwendet werden.

Zur Bewertung einer IDE sind weitere „spezifische Kriterien für die Bewertung von integrierten Entwicklungsumgebungen“[7] nötig – wie besondere Komfortfunktionen von Texteditoren, automatisches Kompilieren und Debugging, das Einrichten von Bedienhilfen wie Tastenkombinationen oder Makros, Generierungsfunktionen und viele andere Funktionalitäten. Je nachdem, ob und in welchem Maß diese für ein konkretes Softwareentwicklungsprodukt zutreffen, lässt sich dieses als IDE bezeichnen – oder nicht. Die Grenzen sind jeweils fließend.[8]

Integrierte Entwicklungsumgebungen kamen in der ersten Hälfte der 1980er Jahre auf und lösten die damals übliche Praxis ab, Editor, Compiler, Linker und Debugger als vier getrennte Produkte anzubieten, die jeweils getrennt ausgeführt wurden. Maestro I (ursprünglich Programm-Entwicklungs-Terminal-System, PET) von Softlab war weltweit die erste Integrierte Entwicklungsumgebung für Software.[9]

In den 1980er Jahren kamen neben den integrierten Entwicklungsumgebungen für Standardprogrammiersprachen der dritten Generation solche für 4GL-Programmiersprachen wie z. B. Natural auf, die zum Teil bis heute im Markt vertreten sind. Auch diese bieten neben der Programmiersprache in einer interaktiven integrierten Entwicklungsumgebung alle Werkzeuge wie Analyse- und Designwerkzeug, Texteditor, Maskeneditor, GUI Designer, Compiler bzw. Interpreter, Linker, Debugger, Quelltextformatierungsfunktion.

Während die ersten IDEs noch textbasiert arbeiteten, ging der Trend vor allem bei den großen Anbietern ab ca. 1990 zunehmend hin zu visuellen Programmierumgebungen. Vor allem für Spezialsprachen gibt es aber auch heute noch verschiedene Text-IDEs.

  • Gregor Engels, Wilhelm Schäfer: Programmentwicklungsumgebungen: Konzepte und Realisierung. B.G. Teubner, Stuttgart, ISBN 3-519-02487-X.
  • Henner Diederichs: Komplexitätsreduktion in der Softwareentwicklung. Ein systemtheoretischer Ansatz (DSOR-Beiträge zur Wirtschaftsinformatik, Band 3). Books on Demand, Norderstedt 2005, ISBN 3-8334-1790-0, S. 88 f. (Dissertation).

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Norbert Gronau, Wilhelm Hasselbring: M-WISE: Modellierung wissensintensiver Prozesse im Software Engineering. Hrsg.: Norbert Gronau, Wilhelm Hasselbring. Gito Verlag, Berlin 2006, ISBN 978-3-936771-80-0, S. 32 (541 S., geomar.de [abgerufen am 23. April 2024]).
  2. Max Mühlhäuser, Alexander Schill: Software engineering für verteilte Anwendungen: Mechanismen und Werkzeuge (= Springer-Lehrbuch). Springer, Berlin / Heidelberg 1992, ISBN 978-3-540-55412-7, S. 206 (springer.com [abgerufen am 23. April 2024]).
  3. P Beynon-Davies, C Carne, H Mackay, D Tudhope: Rapid application development (RAD): an empirical review. In: European Journal of Information Systems. Band 8, Nr. 3, September 1999, ISSN 0960-085X, S. 211, doi:10.1057/palgrave.ejis.3000325 (tandfonline.com [abgerufen am 23. April 2024]).
  4. Alessio Bucaioni, Antonio Cicchetti, Federico Ciccozzi: Modelling in low-code development: a multi-vocal systematic review. In: Software and Systems Modeling (Hrsg.): Software and Systems Modeling. Band 21, Nr. 5, 1. Oktober 2022, ISSN 1619-1374, S. 1959, doi:10.1007/s10270-021-00964-0 (springer.com [PDF; abgerufen am 23. April 2024]).
  5. Alfonso Fuggetta: A classification of CASE technology. In: Computer. 26. Jahrgang, Nr. 12, Dezember 1993, S. 25–38, doi:10.1109/2.247645 (englisch, computer.org [abgerufen am 3. Mai 2021]).
  6. a b Prof Dr Richard Lackes: Definition: Softwareentwicklungsumgebung (SEU). Abgerufen am 23. April 2024.
  7. Kriterien für (integrierte) Entwicklungsumgebungen. Softguide.de
  8. Vor- und Nachteile von Tools für das Rapid Application Development. In: Linux-Magazin, 8/2017 .
  9. Axel Bruns: Die Geschichte des Computers. neobooks.com, 31. März 2015, abgerufen am 17. Oktober 2016.