SERPland Blog

Grundlagen des Software Engineerings - Eine Zusammenfassung auf 5 Seiten

· 974 words · 5 minutes to read

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 🔗

SteigerungsfaktorenVerminderungsfaktoren
+ Ausbildung der MA+ Systematische Methoden einsetzen+ Modellierungs- und
Entwicklungswerkzeuge
+ Fachliche und technische Komponenten
+ Einsatz von Generatoren
- Komplexe Anforderungen (fachlich und technisch) - Geringe Wiederverwendbarkeit(wegen Änderung der Anforderungen
oder der Technik, z.B. 9iAS)
- Geringe Stabilität der
Entwicklungssysteme

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 🔗

SteigerungsfaktorenVerminderungsfaktoren
+ 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 das
Management
- Anforderungsänderungen

. .

Vorgehensmodelle 🔗

Prinzipien: Top Down oder Bottom up

Leichtgewichtige ProzesseSchwergewichtige Prozesse
(z.B. Agile Softwareentwicklung => XP)(z.B. RUP = Rational Unified Prozess)
Wenig FormalismusViel Formalismus
Kleine/Mittlere ProjekteGrosse Projekte
Geringer EinarbeitungsaufwandHoher Einarbeitungsaufwand
Interne RealisierungBei Ausschreibungen
LebenszyklusProjektphasen
-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 2024

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.