Prinzip 🔗
-Vorgehen nach Regeln und Verfahren
Bestandteile 🔗
-Vorgehensmodell (RUP, XP) -Modellierungs- und Entwurfsmethode (UML) -IDE’s
Zentrale Punkte 🔗
-Anforderungsmanagement (Dokumentation und festhalten von Änderungen) -Projektcontrolling (Zeitplanung, Ressourcen, Meilensteine, Projektplananpassungen) -Qualitätssicherung (Prüfregeln schon beim Entwurf festlegen) -Wartbarkeit (Wiederverwendung von Komponenten, Zukunftsorientiert)
Produktivität 🔗
Steigerungsfaktoren | Verminderungsfaktoren |
+ Ausbildung der MA+ Systematische Methoden einsetzen+ Modellierungs- undEntwicklungswerkzeuge+ Fachliche und technische Komponenten+ Einsatz von Generatoren | - Komplexe Anforderungen (fachlich und technisch) - Geringe Wiederverwendbarkeit(wegen Änderung der Anforderungenoder der Technik, z.B. 9iAS)- Geringe Stabilität derEntwicklungssysteme |
Fehlerkosten 🔗
90% der Kosten werden nach Abschluss des Projektes gemacht
Mindestens 1/3 der Fehler werden NICHT vom Entwickler entdeckt
Der Aufwand zur Fehlerbeseitigung steigt mit dem Projekt-Fortschritt
Die meisten Analyse- und Designfehler werden erst NACH der Implementierung entdeckt
Pareto Prinzip = 80/20 Regelung
-80% der Aufgaben können mit 20% des Aufwands gelöst werden -80% der Qualitätsmängel werden durch 20% der Fehler verursacht -80% der Fehler können mit 20% des Aufwandes beseitigt werden
. .
Erfolg/Misserfolg 🔗
Steigerungsfaktoren | Verminderungsfaktoren |
+ Einbeziehen der Endbenutzer+ Unterstützung durch die Geschäftsführung + Klar definierte Anforderungen+ Projektplanung+ Realistische Erwartungen+ Vorgehensmodell mit Meilensteine+ Kompetente Mitarbeiter+ Verantwortungsbereiche+ Visionen und Ziele+ Motivierte Mitarbeiter | - Unvollständige Anforderungen - Kunden nicht ausreichend miteinbezogen- Mittel nicht ausreichend- Unrealistische Erwartungen- Mangelnde Unterstützung durch dasManagement- Anforderungsänderungen |
. .
Vorgehensmodelle 🔗
Prinzipien: Top Down oder Bottom up
Leichtgewichtige Prozesse | Schwergewichtige Prozesse |
(z.B. Agile Softwareentwicklung => XP) | (z.B. RUP = Rational Unified Prozess) |
Wenig Formalismus | Viel Formalismus |
Kleine/Mittlere Projekte | Grosse Projekte |
Geringer Einarbeitungsaufwand | Hoher Einarbeitungsaufwand |
Interne Realisierung | Bei Ausschreibungen |
Lebenszyklus | Projektphasen |
-Begründung -Planung -Entwicklung! -Einführung -Nutzung! -Ablösung durch neues System | -Vorphase - Projektauftrag- Anforderungsbeschreibung- Machbarkeitsstudien -Analyse - IST Analyse- SOLL Konzept: Fachkonzept ARIS -Design - Technischer Entwurf (FK, PK, …)- Generalisierung (Standardklassen,…) -Implementierung- Programmieren, Testen -EinführungSchulung, Migration, … -Betrieb- Weiterentwicklung, Änderungswünsche- Wartung, Fehlerbeseitigung |
Vorgehensmodelle 🔗
-Wasserfallmodell (sequentiell) -V-Modell, Hermes (alt, sehr formal) -Evolutionäres Prototyping- Schrittweise Funktionalität erweitern
- Nicht unbedingt zu empfehlen -Inkrementelles Prototyping- Funktionsumfang ist ab Beginn klar definiert
- Sehr beliebt -Spiralmodell (Ziele festlegen, Evaluierung, Entwicklung, Planung nächster Zyklus)- Mischform aus Wasserfall und inkrementellem Prototyp -Rational Unified Process (RUP) (Use-Case driven, iterativ und inkrementell) -Extreme Programming (XP)
Objektorientiertes Vorgehensmodell 🔗
UseCase driven, architekturorientiert, interativ und inkrementell
RUP
-Unified Modelling Language (UML) -3 Amigos (Booch, Rumbaugh, Jacobson)
Best practices
-Iterative, inkrementelle Entwicklung -Projektbegleitendes QM -Komponentenbasierte Architektur -Anforderungsmanagement -Visuelle Modellierung (UML) -Kontrolliertes Änderungsmanagement
Pro Zyklus: Konzeptaktualisierung – Entwurf – Konstruktion – Übergang
Agile Software Entwicklung 🔗
Höchstes Ziel ist es, den Kunden durch frühes iteratives Ausliefern, zufrieden zu stellen
-Zuhören, Design entwerfen, Programmieren, Testen -Kommunikation, Einfachheit, Feedback, Mut -Kosten, Zeit, Qualität, Umfang
Aspekte:
-Leicht -Effizient -Kalkulierbar -Risikoarm -Flexibel -Exakt -Vergnüglich -Extrem
Details:
-Kleine Teams aus Entwickler und Fachabteilung -Zuerst die Testfälle definieren -Anforderungsänderungen sind grunsätzlich eingeplant -Jeden Abend ein fertiges Resultat
!!! Nur mit guten Leuten machbar…
Planung und Realisierung eines SW Projektes 🔗
-Analyse (ohne SW) Umfeld und Bestandteile -Prozess-Modellierung (ohne SW) derzeitige Abläufe -Fachliche Modellierung der Realität (UML) Klassen- und Unternehmensmodell -IT-Architektur (Hardware) Zentrale- oder lokale Architektur -Software Architektur (Sprache) Standard-, Individuallösungen
Entwicklungsprozess
Unter Berücksichtigung von :
-Qualitätssicherung -Dokumentation -Projektplanung und Controlling
Wieso überhaupt ein Modell?
-Menschliches Gehirn kann komplexe Materie nicht im Gesamten überblicken -Abstrakte Darstellung (Siehe Baum mit Schaukel) -Überprüfung/Anpassung des Entwicklungsprozesses
Entrepreneurship 🔗
Architektur integrierter Informationssysteme (ARIS)
Eine Informationssystem-Architektur, die auch als Generalbebauungsplan oder Ordnungsrahmen bezeichnet wird, kann als Rahmenplan verstanden werden, der die Bestandteile und ihre Beziehungen von Informations- oder Organisationssystemen zueinander verdeutlicht.
Die Architektur eines Informationssystems beschreibt die Einheiten des Informationssystems hinsichtlich ihrer Art, ihrer funktionalen Eigenschaften und ihres Zusammenwirkens.
Eine Architektur stellt dabei ein Modell auf hohem Abstraktionsniveau dar, das strukturiert, ordnet und als Navigationshilfe dienen kann sowie die konstituierenden Bestandteile von Informationssystemen umfasst.
Die Architektur integrierter Informationssysteme (ARIS) wurde als metdodischer Ordnungsrahmen mit dem Anspruch entwickelt, die Entstehung von Informationssystemen darzustellen. Im Rahmen von ARIS werden Beschreibungssichten und Beschreibungsebenen voneinander getrennt, wodurch eine zweidimensionale Architektur, das sog. ARIS-Haus gebildet wird.
In ARIS werden die Sichten nach der Ähnlichkeit des semantischen Zusammenhangs gebildet, wobei die Funktionssicht, die Organisationssicht, die Datensicht, die Leistungs- und die Steuerungssicht unterschieden werden.
Update zum Thema Grundlagen des Software Engineerings 🔗
Die Grundlagen des Software Engineerings, die in der Zusammenfassung dargestellt wurden, sind auch im Jahr 2024 noch von großer Bedeutung. Die Vorgehensmodelle wie das RUP (Rational Unified Process) und XP (Extreme Programming) sind nach wie vor relevant, obwohl neue agile Methoden wie Scrum und Kanban in den letzten Jahren stark an Bedeutung gewonnen haben.
Ein wichtiger Aspekt, der im Text erwähnt wird, ist das Anforderungsmanagement. Dies ist nach wie vor ein kritischer Erfolgsfaktor für Softwareprojekte, da unvollständige oder sich ändernde Anforderungen zu Problemen führen können. Die Einbeziehung der Endbenutzer und eine klare Definition der Anforderungen sind entscheidend, um Missverständnisse zu vermeiden.
Ein weiterer wichtiger Punkt ist die Qualitätssicherung. Die Textstelle betont die Bedeutung von prüfregeln, die bereits beim Entwurf festgelegt werden sollten, um Fehlerkosten zu reduzieren. Dieser Grundsatz ist auch heute noch gültig, und moderne Ansätze wie Testautomatisierung und Continuous Integration helfen dabei, die Qualität der Software kontinuierlich zu sichern.
In Bezug auf die Wiederverwendung von Komponenten und die Zukunftsorientierung hat sich in den letzten Jahren viel getan. Mit der Verbreitung von Microservices und Container-Technologien wie Docker und Kubernetes ist die Wiederverwendung von Softwarekomponenten einfacher geworden, und die Architekturen sind zunehmend auf Skalierbarkeit und Flexibilität ausgerichtet.
Was sich seit der ursprünglichen Zusammenfassung möglicherweise geändert hat, ist der Fokus auf agile Methoden und DevOps-Praktiken. Unternehmen setzen verstärkt auf eine agile Arbeitsweise, um schneller auf veränderte Anforderungen reagieren zu können. Continuous Delivery und Continuous Deployment sind heute Standardpraktiken, um Software schneller und zuverlässiger bereitzustellen.
Insgesamt sind die Grundlagen des Software Engineerings nach wie vor relevant, aber die Art und Weise, wie Software entwickelt wird, hat sich weiterentwickelt. Unternehmen, die mit den neuesten Trends und Technologien Schritt halten, sind in der Lage, wettbewerbsfähige und qualitativ hochwertige Softwareprodukte zu entwickeln.
2024 ist geprägt von einer verstärkten Digitalisierung und einem wachsenden Bedarf an innovativen Softwarelösungen. Die Grundlagen des Software Engineerings bilden nach wie vor das Fundament für erfolgreiche Softwareprojekte, aber es ist wichtig, sich kontinuierlich weiterzuentwickeln und neue Technologien und Methoden zu integrieren, um den Anforderungen des Marktes gerecht zu werden.