Software Engineering ist die Disziplin, die verschiedene Teilbereiche zur Entwicklung von Softwaresystemen beschreibt.
Wo kann ich Sie unterstützen?
Falls Ihr Softwareprojekt aufgesetzt oder gestartet werden muss, so steht kann ich mein Know-how rund um die Entwicklung von Softwaresystemen einbringen, insbesondere was den konkreten Einsatz von Vorgehensmodellen oder den Einsatz von System-Modellierungen (beispielsweise mit der BPMN oder der → UML) anbetrifft.
1. Einleitung und Grundlagen
Hier werden zunächst einige Definitionen zur Softwareentwicklung vorgestellt. Der Begriff Softwareentwicklung wird zumeist durch den (übergeordneten) Begriff Softwaretechnik ersetzt, da die Softwareentwicklung (zunächst) keine (systematische) Vorgehensweise vorgibt.
1.1 Definition Softwaretechnik
Bei Balzert wird definiert /Balzert08/:
“Die Softwaretechnik beschäftigt sich mit der zielorientierten Bereitstellung und systematischen Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen.”
Die Softwaretechnik umfasst eine große Anzahl von Teilgebieten (auch aus anderen Disziplinen), die auf dieser Website vorgestellt werden, wie das → Geschäftsprozessmanagement, das → Projektmanagement oder auch das → Requirements Engineering.
1.2 Generelles Vorgehen in der Softwaretechnik
In der Softwaretechnik wird in der Regel das Vorgehen anhand der vier Prozessschritte …
- Analyse,
- Design,
- Entwicklung / Implementierung und
- Test
beschrieben. Fügt man noch die Projektinitiierung und das Deployment / den Betrieb hinzu, so ergibt sich bereits ein Gesamtbild (Abbildung 1.1) für das Vorgehen bei der Erstellung von Software.
Abbildung 1.1: Von der Analyse zum Betrieb
1.3 Die Softwaretechnik und Softwareprojekte
Bei Projekt wird häufig das “→ magische Dreieck des Projektmanagements” eingesetzt, um den Zusammenhang von Leistung, → Dauer und Kosten zu visualisieren. Durch Aufteilen der Leistung in → Qualität und Quantität ergibt sich das “Teufelsquadrat nach Sneed” (Abbildung 1.2).
Abbildung 1.2: Das Teufelsquadrat nach Sneed
2. Vorgehensmodelle
Vorgehensmodelle definieren die Herangehens- und Bearbeitungsweise an ein → Problem (zur Erstellung eines Softwaresystems). Je nach Größe oder Schwierigkeitsgrad werden bei der Softwaretechnik unterschiedliche Vorgehensmodelle verwendet – folgende Software-Vorgehensmodelle sind in der Praxis zu finden:
- Das → Wasserfallmodell
- Das → V‑Modell (in der neuesten Fassung XT)
- Inkrementelle Modelle
- Iterative Modelle (wie RUP)
- Evolutionäre Modelle
- Modelle unter Einsatz agiler Methoden
In der konkreten Umsetzung finden Sie dann wiederum Mischformen aus den Vorgehensmodellen, angereichert mit Spezialmerkmalen und oftmals wiederum mit eigenen Begrifflichkeiten versehen (aspektorientiert, OO-Modelle).
Ein (einfaches) Wasserfallmodell ist in Abbildung 2.1 dargestellt. Es werden fünf Einzelschritte nacheinander durchlaufen, beginnend mit der Analyse und endend mit dem Betrieb.
Abbildung 2.1: Das Wasserfallmodell
Welches Vorgehensmodell ist nun am besten einzusetzen? Diese Frage kann nur bei der Betrachtung der Aufgabenstellung beantwortet werden. Während bei großen komplexen Systemen ohnehin umfangreich dokumentiert werden muss, ist eine Steuerung über die Dokumente sinnvoll – hier bieten sich dann das → Wasserfall- (rein sequentiell) oder das V‑Modell (sequentiell mit Inkrementen) an.
Abbildung 2.2: Zeit und Tätigkeiten bei einigen Vorgehensmodellen
Abbildung 2.3: Grad der Formalisierung bei Vorgehensmodellen
In Abbildung 2.4 sind verschiedene Vorgehensmodelle in Bezug zu den Anforderungen gesetzt.
Abbildung 2.4: Vorgehensmodelle und Anforderungen (nach /Ebert22/)
3. Softwarearchitektur
Die → Softwarearchitektur eines Softwaresystems ist entscheidend für die Lauffähigkeit und Akzeptanz eines Systems. Nur “gute Softwarearchitekturen” tragen ein System durch den gesamten Lebenszyklus.
Nach /Gharbi16/ kann der Architekturentwurf in vier gleichberechtigten Tätigkeiten erfolgen, die nicht unbedingt hintereinander, sondern jederzeit durchgeführt können:
- Anforderungen und Randbedingungen analysieren
- Architektursichten und technische Konzepte entwerfen
- Architektur- und Entwurfsentscheidungen bewerten
- Umsetzung begleiten und → prüfen
4. Testen von Softwaresystemen
Ein erheblicher Teil des Gesamtaufwands zur Erstellung von Software wird für das → Testen verwendet: Untersuchungen gehen von 20 bis 50 % des Gesamtaufwands aus. Daher sollte ein systematisches Vorgehen für das Testen von Software / den → Softwaretest selbstverständlich sein, denn nur so kann der ein gutes Kosten-Nutzen-Verhältnis gewährleistet werden.
Die Beschreibung des Softwaretests erfolgt hier auf einer eigenen Webseite.
A. Präsentationen, Literatur und Weblinks
A.1 Meine öffentliche SE-Präsentation
Inhalt | Version | Stand | Seiten | Größe | Typ |
---|---|---|---|---|---|
Requirements Engineering: Spezifikationen – Eine Übersicht | 1.50 | 12/2016 | 44 | 0,3 MB |
A.2 Literatur
Alle Bücher zum Software Engineering / zur Softwaretechnik aufzuführen würde zu einer sehr langen → Liste führen; daher werden hier nur einige “Standardwerke” genannt.
- /Balzert08/ Helmut Balzert: Lehrbuch der Softwaretechnik: Softwaremanagement, Spektrum Akademischer Verlag, Heidelberg 2. Auflage 2008, ISBN 978–3‑8274–1161‑7
- /Balzert09/ Helmut Balzert: Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering, Spektrum Akademischer Verlag, Heidelberg 3. Auflage 2009, ISBN 978–3‑8274–1705‑3
- /Balzert11/ Helmut Balzert: Lehrbuch der Softwaretechnik: Entwurf, Implementierung, Installation und Betrieb, Spektrum Akademischer Verlag, Heidelberg 3. Auflage 2011, ISBN 978–3‑8274–1706‑0
- /Broy21/ Manfred Broy, Marco Kuhrmann: Einführung in die Softwaretechnik, Springer, Berlin 2021, ISBN 978–3‑662–50262‑4
- /Ebert19/ Christof Ebert: Systematisches Requirements Engineering. Anforderungen ermitteln, dokumentieren, analysieren und verwalten, dpunkt, Heidelberg 6. Auflage 2019, ISBN 978–3‑86490–562‑9
- /Ebert22/ Christof Ebert: Systematisches Requirements Engineering. Anforderungen ermitteln, dokumentieren, analysieren und verwalten, dpunkt, Heidelberg 7. Auflage 2022, ISBN 978–3‑86490–919‑1
- /Krypczyk21/ Veikko Krypczyk, Elena Bochkor: Handbuch für Softwareentwickler: Das Standardwerk für professionelles Software Engineering, Rheinwerk, Bonn 2. Auflage 2021, ISBN 978–3‑8362–7977‑2
- /Ludewig13/ Jochen Ludewig, Horst Lichter: Software Engineering. Grundlagen, Menschen, Prozesse, Techniken, dpunkt, Heidelberg 3. Auflage 2013, ISBN 978–3‑864–90092‑1
- /Ludewig23/ Jochen Ludewig, Horst Lichter: Software Engineering. Grundlagen, Menschen, Prozesse, Techniken, dpunkt, Heidelberg 4. Auflage 2022, ISBN 978–3‑86490–598‑8
- /Metzner20/ Anja Metzner: Software-Engineering – kompakt, Hanser, München 2020, ISBN 978–3‑446–45949‑6
- /Moore06/ James W. Moore: The Road Map to Software Engineering: A Standards-Based Guide, John Wiley & Sons, Hoboken, New Jersey 2006, ISBN 978–0‑471–68362‑9
- /Pressman19/ Roger Pressman, Bruce Maxim: ISE Software Engineering. A Practitioner’s Approach, McGraw-Hill Education, New York 9th Edition 2019, ISBN 978–1‑260–54800‑6
- /Sommerville15/ Ian Sommerville: Pearson Education, London, 10th Edition 2015, ISBN 978–1‑292–09613‑1
- /Sommerville18/ Ian Sommerville: Software Engineering , Pearson Studium, München 10. Auflage 2018, ISBN 978–3‑86894–344‑3
- /Sommerville19/ Ian Sommerville: Engineering Software Products: An Introduction to Modern Software Engineering, Pearson, London 2019, ISBN 978–0‑13–521064‑2
- /Sommerville20/ Ian Sommerville: Modernes Software-Engineering: Entwurf und Entwicklung von Softwareprodukten, Pearson Studium, München 2020, ISBN 978–3‑86894–396‑2
- /SWEBOK14/ Pierre Bourque, Richard E. Fairley: Guide to the Software Engineering Body of Knowledge, IEEE Computer Society Press, Los Alamitos, California 3rd Edition 2014, ISBN 978–0‑7695–2330‑9
- /Winter05/ Mario Winter: Methodische objektorientierte Softwareentwicklung: Eine Integration klassischer und moderner Entwicklungskonzepte, dpunkt, Heidelberg 2005, ISBN 978–3‑89864–273‑6
A.2.1 Literatur zum Schätzen und Messen von Software(projekten)
Nachdem das → Schätzen und Messen in den 80er Jahren nicht die erhofften Erfolge brachte, erlebt dieses Gebiet seit einigen Jahren wieder eine Renaissance. Hier sind daher einige Bücher aufgeführt.
- /Bundschuh04/ Manfred Bundschuh, Axel Fabry: Aufwandschätzung von IT-Projekten, mitp, Bonn 2. Auflage 2004, ISBN 978–3‑8266–0864‑3
- /Bundschuh08/ Manfred Bundschuh, Carol Dekkers: The IT Measurement Compendium: Estimating and Benchmarking Success with Functional Size Measurement, Springer, Heidelberg 2008, ISBN 978–3‑540–68187‑8
- /Cohn05/ Mike Cohn: Agile Estimating and Planning, Prentice Hall International, Upper Saddle River, New Jersey 2005, ISBN 978–0‑13–147941‑8
- /DeMarco08/ Tom DeMarco: Was man nicht messen kann … kann man nicht kontrollieren, mitp, Bonn 2. Auflage 2008, ISBN 978–3‑8266–1488‑0
- /Ebert04/ Christof Ebert, Reiner Dumke, Manfred Bundschuh, Andreas Schmietendorf: → Best Practices in Software Measurement: How to Use Metrics to Improve Project and Process Performance, Springer, Heidelberg 2004, ISBN 978–3‑540–20867‑9
- /Ebert07/ Christof Ebert, Reiner Dumke: Software Measurement: Establish, Extract, Evaluate, Execute, Springer, Berlin 2007, ISBN 978–3‑540–71648‑8
- /Hummel11/ Oliver Hummel: Aufwandsschätzungen in der Software- und Systementwicklung kompakt, Spektrum Akademischer Verlag, Heidelberg 2011, ISBN 978–3‑8274–2751‑9
- /Hürten04/ Robert Hürten: Function-Point Analysis – Theorie und Praxis. Die Grundlage für modernes Softwaremanagement, Expert Verlag, Renningen 2004, ISBN 978–3‑8169–2398‑5
- /McConnell06/ Steve McConnell: Aufwandschätzung bei Softwareprojekten, Microsoft Press, München 2006, ISBN 978–3‑86645–612‑9
- /Parthas07/ M. A. Parthasarathy: Practical Software Estimation. Function Point Methods for Insourced and Outsourced Projects, Addison-Wesley Longman, Boston, Massachusetts 2007, ISBN 978–0‑321–43910‑9
- /Plewan11/ Hans-Jürgen Plewan, Benjamin Poensgen: Produktive Softwareentwicklung: Bewertung und Verbesserung von → Produktivität und Qualität in der Praxis, dpunkt, Heidelberg 2011, ISBN 978–3‑89864–686‑4
- /Poensgen12/ Benjamin Poensgen: Die Function-Point-Analyse. Ein Praxishandbuch, dpunkt, Heidelberg 2. Auflage 2012, ISBN 978–3‑89864–762‑5
A.2.2 Literatur zur Softwarearchitektur
- /Gharbi16/ Mahbouba Gharbi, Arne Koschel, Andreas Rausch, Gernot Starke: Basiswissen für Softwarearchitekten. Ein Überblick, dpunkt, Heidelberg 2. Auflage 2016, Art-Nr. 077.95735
- /Gharbi20/ Mahbouba Gharbi, Arne Koschel, Andreas Rausch, Gernot Starke: Basiswissen für Softwarearchitekten. Aus- und Weiterbildung nach iSAQB-→ Standard zum Certified Professional for Software Architecture – Foundation Level, dpunkt, Heidelberg 4. Auflage 2020, ISBN 978–3‑86490–781‑4
- /Hruschka17/ Peter Hruschka, Gernot Starke: Knigge für Softwarearchitekten – Reloaded, entwickler.press, Frankfurt 3. Auflage 2017, ISBN 978–3‑86802–806‑5
- /Lilienthal20/ Carola Lilienthal: Langlebige Software-Architekturen. Technische Schulden analysieren, begrenzen und abbauen, dpunkt, Heidelberg 3. Auflage 2020, ISBN 978–3‑86490–729‑6
- /Starke22/ Gernot Starke, Peter Hruschka: arc42 in Aktion. Praktische Tipps zur Architekturdokumentation, Hanser, München 2. Auflage 2022, ISBN 978–3‑44646380–6
- /Toth20/ Stefan Toth: Vorgehensmuster für Softwarearchitektur. Kombinierbare Praktiken in Zeiten von → Agile und Lean. Ideal für das ISAQB Modul AGILA, Hanser, München 2. Auflage 2020, ISBN 978–3‑446–46004‑1
- /Zörner15/ Stefan Zörner: Softwarearchitekturen dokumentieren und kommunizieren. Entwürfe, Entscheidungen und Lösungen nachvollziehbar und wirkungsvoll festhalten, Hanser, München 2. Auflage 2015, ISBN 978–3‑446–44348‑8
A.2.3 Literatur zum Softwaretest / Testen von Software(projekten)
Dem Testen kommt in der Softwareentwicklung eine enorme Bedeutung zu. Aus der Vielzahl der Bücher zu diesem Gebiet hier eine Auswahl.
- /Crispin08/ Lisa Crispin, Janet Gregory: Agile Testing: A Practical Guide for Testers and Agile → Teams, Addison-Wesley Longman, Amsterdam 2008, ISBN 978–0‑321–53446‑4
- /Crispin14/ Lisa Crispin, Janet Gregory: More Agile Testing: Learning Journeys for the Whole Team, Addison-Wesley Longman, Amsterdam 2014, ISBN 978–0‑321–96705‑3
- /Linz16/ Tilo Linz: Testen in → Scrum-Projekten. Leitfaden für Softwarequalität in der agilen Welt. Aus- und Weiterbildung zum → ISTQB Certified Agile Tester – Foundation Extension, dpunkt, Heidelberg 2. Auflage 2016, ISBN 978–3‑86490–414‑1
- /Spillner17/ Andreas Spillner, Mario Winter, Andrej Pietschker: Test, Analyse und Verifikation von Software – gestern, heute, morgen, dpunkt, Heidelberg 2017, ISBN 978–3‑86490–470‑7
- /Spillner19/ Andreas Spillner, Tilo Linz: Basiswissen Softwaretest: Aus- und Weiterbildung zum Certified Tester – Foundation Level nach ISTQB-Standard, dpunkt, Heidelberg 6. Auflage 2019, ISBN 978–3‑86490–583‑4
- /Stauffer13/ Herbert Stauffer, Beat Honegger, Hanspeter Gisin: Testen von Data-Warehouse- und Business-Intelligence-Systemen: Vorgehen, Methoden und Konzepte, dpunkt, Heidelberg 2013, ISBN 978–3‑86490–072‑3
- /Thaller02/ Georg Erwin Thaller: Software-Test: Verifikation und Validation, Heise, Hannover 2. Auflage 2002, ISBN 978–3‑88229–198‑8
A.3 Weblinks
Folgende Weblinks liefern weitere hilfreiche Informationen zum Software Engineering:
- /GI/ GI — Gesellschaft für Informatik e.V.
- /V‑Modell-XT/ Das V‑Modell XT
- /ASQF/ ASQF — Arbeitskreis Software-Qualität und ‑Fortbildung e.V.
- /#Wiki-Softwaretechnik/ Softwaretechnik in der deutschen Wikipedia
Legende zu den Weblinks
/ / Verweis auf eine Website (allgemein)
/*/ Verweis auf eine Website, die als Ergänzung zu einem Buch dient
/#/ Verweis auf ein einzelnes Thema auf einer Website
/#V/ Verweis auf ein Video auf einer Website
Letzte Aktualisierung: 18.02.2018 © Peterjohann Consulting, 2005–2024