SoftwareTechnik
Christian Baranowski
HTWG Konstanz
Teil1:Wiederholung Anforderungsanalyse und
Systementwurf
Teil II: Umsetzung und Coding
Build Prozesse und Configuration Management
Wiederholung
Anforderungsanalyse und
Spezifikation
Requirement Analysis
Testing
System Design
Coding
Delivery
Wasserfallmodell
Anforderungstypen
Funktionale
Anforderungen nicht
Funktionale
Anforderungen
Testbarkeit
Performanz
Sicherheit
Änderbarkeit
Verfügbarkeit
Anwendungsfälle
Geschäftsprozesse
Architekturziele
Bedienbarkeit
Qualitätsmerkmale
ISO9126
Quelle: Dr. Peter Hruschka & Dr. Gernot Starke - ARC42.de
Prozess zur Anforderungserfassung
1. Oberfläche skizzieren z.B. Methode Wireframes in einem
Workshop mit dem Kunden
2. Iterativ ein Klick-Modell erstellen z.B. mit HTML und
JavaScript
3. Fachliche Komponenten aus dem Klick-Modell identifizieren
4. Use-Cases und Geschäftsmodell aus dem Klick-Modell
ableiten für die einzelnen fachlichen Komponenten
5. Spezifikation erstellen
Anwendungsfälle erfassen mit
UML
Use-Case als zentrales Analyseelement
Use-Case
Testbarkeit
Performanz
Sicherheit
Änderbarkeit
Verfügbarkeit
Bedienbarkeit
Architekturziele
UI Anforderungen
UI Design
Business Regeln
Daten Format
...
Fachmodell /
Geschäftsmodell
Wiederholung Systementwurf
und Software Architekturen
Requirement Analysis
Testing
System Design
Coding
Delivery
Wasserfallmodell
Architektursichten
Kontextsichten
Verteilungssichten
Bausteinsicht
Laufzeitsichten
Architekturprinzipien
• Schichten einer Applikation
Jede Schicht (Tier) ist für eine Aufgabe
zuständig. In einer Anwendung fallen
i.d.R. die folgenden Kernaufgaben an:
• Darstellen von Daten
• Verarbeitung der Benutzereingaben
(Interaktionen)
• Verarbeitung Geschäftslogik
• Speichern von Daten
ENTITIES VALUE OBJECT SERVICES
REPOSITORIES FACTORIES
Domain Driven Design
Domain Driven Design
•Erstellen Sie ein Domain Modell für Ihre Aufgaben-
Verwaltung. Nutzen Sie dazu die Methode Domain
Driven Design.
Übungen I
UML Sequenzdiagramme
UML Nachrichten und
Operationen
UML Nachrichten und
Rückgabewerte
UML Erstellen und Löschen
Participants
UML Schleifen
•Erstellen Sie für das Speichern einer Aufgabe ein
Sequenzdiagramme.
Übungen II
UML Deployment Diagramme
UML Deployment Diagramme
UML Komponenten Diagramm
UML Komponenten Komposition
Trennung fachliche und technischer
Architektur
• T – Komponenten
• Stellen eine technische Schnittstelle bereit.
• A – Komponenten
• Domain Komponenten z.B. Bestellung Service.
• R – Komponenten
• Komponenten für die Präsentation dürfen technische Komponenten nutzen und auf die A
Komponenten zugreifen.
• 0 – Komponenten
• Komponenten die in der gesamten Anwendung genutzt werden dürfen. Z.B. Logger
Komponente.
• R auf A ist erlaubt,T auf A ist nicht erlaubt
• R auf 0,A auf 0 undT auf 0 ist erlaubt
A – Komponenten
T – Komponenten
R – Komponenten
Zusammenfassung Design
Kontextsichten
Verteilungssichten
Bausteinsicht
Laufzeitsichten
Umsetzung und Coding
Requirement Analysis
Testing
System Design
Coding
Delivery
Wasserfallmodell
Umsetzung und Coding
Build Prozesse und Configuration Management
Build Prozess / Erstellungsprozess
„Build Prozess - bezeichnet in der Programmierung
einen Vorgang, durch den ein fertiges
Anwendungsprogramm automatisch erzeugt wird.“
- Wikipedia
Build-Prozess
WelcheVorteile bietet ein automatisierter
Build-Prozess?
Allgemeiner Build-Prozess
compile
generate code
compile tests
run tests
package
generate reports
clean
Apache ANT
•Erstellen Sie einen Projektrahmen (Verzeichnisse
für Java undTest Sourcen...) und eine ANT Build
Konfiguration mit der Ihr Projekt nach dem
allgemeinen Build Prozess gebaut werden kann.
Übungen III

Wiederholung Systementwurf - Einführung Build Prozesse