Wasserfallmodell
Vorteile:
Dokumentation
klarer Aufbau
Nachteile:
Starr, unflexibel
zu Beginn Anforderungen unklar
Inkrementelle Entwicklung
SW wird in Einzelteilen erstellt & sobald Inkremente ausgeliefert werden, werden sie ins System implementiert
Kunden haben frühen Einblick
Erste Inkremente als Prototypen
Minimiertes Risiko für Scheitern
Nachteile/Schwierigkeiten:
Festlegung der Anforderungen und Entwicklung Inkremente
Reihenfolge schwer
Evolutionäre Entwicklung
Ausgangspunkt: Kern- und Mussanforderungen der Auftraggeber -> mehrere Versionen
Weitere Orientierung an Feedback
Für kleinere Systeme gut
Erfolgsquote nah an den Kundenbedürfnissen zu sein gut
erhöhter Aufwand, schwere Planbarkeit
frühe Versionen nicht flexibel
Prototyp. Entwicklung
Möglichst schnelle Entwicklung einer rudimentär ablauffähigen Version
Diskussionsbasis
Weniger Entwicklungsrisiko
Bessere Kommunikation
kein “Ersatz” für fehlende Dokumentation
falsche Erwartungen
hoher Aufwand für Wegwerfversion
Spiralförmige Entwicklung
jeder SW-Prozess als Spirale
jede Windung eine Phase
Dyn. Reaktionen auf neue Entwicklungen -> Flexibel!
kann auch nach der Entwicklungsphase für ges. Lebensphase der SW dienlich sein
Hoher Managementaufwand
Komponentenbasierte Entwicklung
Wiederverwendung: bereits entwickelte und für das System wieder verwendbare Teile zu integrieren, anstatt sie von Grund auf neu zu entwickeln.
Formale Entwicklung
Spezifikation der Anforderungen so weit verfeinert bis eine detaillierte, formale Spezifikation vorliegt.
Die formale Spezifikation wird dann in einer Reihe von Umwandlungen in ein äquivalentes Programm umgesetzt.
Durch Verifikationen wird gewährleistet, dass diese Umwandlungen die Korrektheit erhalten und somit das Programm seiner Spezifikation entspricht.
Nebenläufige Vorgehensmodelle
Ziel: möglichst viele Abläufe parallel abzuarbeiten.
EPK Bestandteile
EPK Aufbau
Beschreibung und Darstellung aller relevanten Aspekte eines Geschäftsprozesses in einer definierten Beschreibungssprache.
Ergebnis der Modellierung ist die modellhafte Nachbildung der Realität
Ereignis ist das eckige, beginnt und endet immer damit = Zustand
Funktion ist das Rechteck = Tätigkeit
—> E lösen F aus, F dann E
Verknüpfungsoperatoren: UND, ODER, XOR (exklusives oder)
ERM
Datenbankmodellierung
Entität:
• Wohlunterscheidbares Objekt der realen Welt oder unserer Vorstellung. Beispiele für Entitäten: Individuen, Gegenstände, Begriffe, Ereignisse. Entitäten gleichen Typs bilden sog. Entitätsmengen und besitzen zusätzlich bestimmte Merkmale. Entitäten besitzen eindeutigen Identifikationsschlüssel.
Beziehung:
• stellt eine Verbindung zwischen Entitäten dar. Beziehungen gleichen Typs bilden Beziehungsmengen und können zusätzlich bestimmte Merkmale tragen.
1 genau ein
m,n ein oder mehrere
c kein oder ein
Use Case
Use Cases – auch „Anwendungsfall“ genannt – beschreiben das Verhalten eines Systems aus Anwendersicht.
Extreme Programming (XP)
Agiler Softwareentwicklungsprozess
Eignet sich besonders für kleine Entwicklerteams
Folgt der Annahme, dass Anforderungen vage sind und sich schnell ändern können
Kunde ist stark in den Entwicklungsprozess integriert
XP zeichnet sich durch 12 Praktiken aus
Stützen sich gegenseitig
=> nur in ihrer Gesamtheit sinnvoll
Praktiken selbst sind nicht neu, jedoch die Kombination und der „extreme Grad“
Agile Manifest
Der kleinste gemeinsame Nenner aller agilen Vorgehensmodelle
Gemeinsames Manifest entgegen Software-Industrie
„leichtgewichtig“=>„agil“
Bildung der „Agilen Allianz“ mit „Agilisten“
Einigung auf 4 Werte, durch 12 Prinzipien unterstützt
Scrum
Scrum ist ein agiler Prozess, der es erlaubt auf die Auslieferung der wichtigsten Geschäfts-Anforderungen innerhalb kürzester Zeit zu reagieren.
Scrum gestattet es schnell und in regelmäßigen Abschnitten (von zwei Wochen bis zu einem Monat) tatsächlich lauffähige Software zu inspizieren.
Kunde setzt die Prioritäten
Alle zwei Wochen bis zu einem Monat kann jeder lauffähige Software sehen und entscheiden, diese so auszuliefern oder in einem weiteren Abschnitt zu ergänzen.
Perspektiven
Strukturperspektive: Beschreibt die Struktur von Daten und deren Beziehungen sowie Attribute.
Funktionsperspektive: Beschreibt Abläufe, die Daten manipulieren, deren Bedingungen und Verzweigungen.
Verhaltensperspektive: Beschreibt die Zustände von Daten aufgrund deren Manipulationen und mögliche Übergänge.
Klassendiagramme
Strukturdiagramm ist eine Art UML-Diagramm (Unified Modeling Language) zur grafischen Darstellung von Klassen, Schnittstellen sowie deren Beziehungen.
Die UML zielt auf die Programmierung ab. Deshalb kommt da auch rein, von welchem Typ die Attribute sind (string, int, long) und wie wo was von welcher Klasse vererbt wird. Dafür braucht es dann euch, um fachmännisch festzulegen was wohin gehört und wie was implementiert wird.
Es gibt verschiedene Arten von Beziehungen, die in einem Klassendiagramm dargestellt werden können, darunter:
Assoziationen: Zeigen die Beziehung zwischen zwei Klassen und ihre Multiplicitäten an.
Aggregationen: Zeigen, dass eine Klasse eine Teil-Ganzes-Beziehung zu einer anderen Klasse hat.
Kompositionen: Ähnlich wie Aggregationen, aber mit stärkerer Abhängigkeit; die Teile werden im Ganzen "besessen".
Vererbung (Generalisierung): Zeigt, dass eine Klasse eine spezialisierte Form einer anderen Klasse ist.
Klassendiagramme sind nützlich, um das statische Design von Software zu visualisieren und helfen Entwicklern, ein besseres Verständnis für die Struktur und Beziehungen innerhalb eines Systems zu entwickeln.
Fehlerfortpflanzung
Wenn Fehler in einem Teil eines Programms dazu führen, dass sich die Fehler auf andere Teile des Programms ausbreiten. Dies kann durch unsachgemäße Fehlerbehandlung, unzureichende Validierung von Benutzereingaben oder unerwartete Interaktionen zwischen verschiedenen Modulen verursacht werden.
Modellierung
Abstrakte Darstellung von Systemen, Prozessen oder Konzepten, um diese besser zu verstehen, zu analysieren, zu planen und zu dokumentieren. Modellierung in der IT ist ein wesentlicher Bestandteil des Softwareentwicklungszyklus und anderer IT-bezogener Aktivitäten. Hier sind einige wichtige Aspekte der Modellierung in der IT:
UML (Unified Modeling Language): UML ist eine standardisierte visuelle Sprache, die in der Softwareentwicklung weit verbreitet ist.
Verständnis und Analyse: Durch die Modellierung können komplexe Systeme in abstrakter Form dargestellt werden, was es Entwicklern, Analysten und anderen Beteiligten ermöglicht, das System besser zu verstehen. Dies fördert die Analyse von Anforderungen, Strukturen und Abläufen.
Kommunikation: Modelle dienen als gemeinsame Sprache, die von verschiedenen Interessengruppen innerhalb eines Projekts oder einer Organisation verstanden wird. Visuelle Modelle erleichtern die Kommunikation zwischen technischen und nicht-technischen Teammitgliedern.
Dokumentation: Modellierung bietet eine strukturierte Form der Dokumentation. Diagramme und Modelle können als Referenz verwendet werden, um Entwicklungsentscheidungen zu erklären, Wissen zu teilen und zukünftige Wartungsarbeiten zu unterstützen.
Design: Modellierung hilft bei der Konzeption und Planung von Softwarearchitekturen. Entwickler können durch Modelle die Struktur ihres Codes vordefinieren und sicherstellen, dass die verschiedenen Komponenten des Systems effektiv zusammenarbeiten.
Fehlererkennung: Modelle ermöglichen es, Fehler frühzeitig im Entwicklungsprozess zu erkennen. Inkonsistenzen oder Unklarheiten in den Modellen können auf Probleme im Design oder den Anforderungen hinweisen, bevor der eigentliche Implementierungsprozess beginnt.
Änderungsmanagement: Modellierung erleichtert es, Änderungen im System vorzunehmen. Durch das Arbeiten mit Modellen kann man besser verstehen, wie Änderungen sich auf das Gesamtsystem auswirken, und sicherstellen, dass sie effektiv implementiert werden.
Qualitätssicherung: Durch die Verwendung von Modellen kann die Qualität von Softwareprodukten verbessert werden. Modelle ermöglichen eine bessere Überprüfung und Validierung von Designs, was zu robusteren und zuverlässigeren Systemen führen kann.
Lean Management
Was heißt „lean“
• Wörtlich übersetzt: “Schlank”
• Frei übersetzt: “Konzentration auf das Wesentliche”, Effizienz steigern
• Lean-Ansätze sind Bestandteil vieler agiler Vorgehensweisen
Aggregation
Beziehungstyp zwischen verschiedenen Klassen oder Objekten in der objektorientierten Programmierung oder in Datenbanken.
modelliert eine "Teil-Ganzes"-Beziehung, bei der ein Objekt (der "Teil") als Bestandteil eines anderen Objekts (dem "Ganzen") betrachtet wird.
Anders als bei der Komposition, bei der der "Teil" Teil eines exklusiven "Ganzen" ist und keine Existenz ohne dieses "Ganze" hat, kann ein Teilobjekt in einer Aggregation auch unabhängig vom Gesamtobjekt existieren.
Last changeda year ago