Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Softwaretechnik – Vorgehensweisen
Softwaretechnik –Vorgehensweisen
Karsten Weicker, Nicole WeickerHTWK Leipzig, FHTW Berlin
The Emperor: Everything is proceeding as I have foreseen.(Return of the Jedi, 1983)
Karsten Weicker, Nicole Weicker 1/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweisen der Softwareentwicklung
Defintion: Softwaretechnik
Die Anwendung eines systematischen,disziplinierten, quantitativ bewertbaren Ansatzes furdie Entwicklung, den Betrieb und die Wartung vonSoftware; d.h. die Anwendung derIngenieurswissenschaft auf Software.
IEEE Std. 610.12 (1990)
Alternative Definition:Softwaretechnik ist Multi-Personen-Konstruktionvon Multi-Versionen-Software.
(nach David L. Parnas, 1974)
Karsten Weicker, Nicole Weicker 2/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweisen der Softwareentwicklung
Defintion: Softwaretechnik
Die Anwendung eines systematischen,disziplinierten, quantitativ bewertbaren Ansatzes furdie Entwicklung, den Betrieb und die Wartung vonSoftware; d.h. die Anwendung derIngenieurswissenschaft auf Software.
IEEE Std. 610.12 (1990)Alternative Definition:Softwaretechnik ist Multi-Personen-Konstruktionvon Multi-Versionen-Software.
(nach David L. Parnas, 1974)
Karsten Weicker, Nicole Weicker 2/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweisen der Softwareentwicklung
Tatigkeiten der Softwareentwicklung(informell)
I grobe Beschreibung der Aufgabe/Idee, was zuentwickeln ist
I Klarung, dass alle das Gleiche verstehenI Identifikation von getrennten Aufgaben
(Aufteilung der Aufgaben auf dieTeammitglieder)
I Entwicklung der SoftwareI enge KommunikationI Integration der TeileI Uberprufung, ob die Software das tut, was sie
tun sollKarsten Weicker, Nicole Weicker 3/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweisen der Softwareentwicklung
Evolutionare Entwicklung
Spezifikation
Entwicklung
Validierung
GrobeBeschreibung
Endversion
Anfangsversion
Zwischenversionen
GleichzeitigstattfindendeAktivitaten
Karsten Weicker, Nicole Weicker 4/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweisen der Softwareentwicklung
Wasserfall-Modell
Betrieb
Anforderungs-analyse
Anforderungs-spezifikation
System-entwurf
Implementation
Test
Karsten Weicker, Nicole Weicker 5/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweisen der Softwareentwicklung
Definition
Definition (Vorgehensmodell)Ein Vorgehensmodell (oder auch Softwareprozess)ist eine Menge von Aktivitaten, die benotigt werdenum Softwaresysteme zu entwickeln, sowie derenAnordnung bzw. Abfolge.
I Beispiele:I evolutionare EntwicklungI WasserfallmodellI weitere spater
Karsten Weicker, Nicole Weicker 6/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweisen der Softwareentwicklung
Definition
Definition (Vorgehensmodell)Ein Vorgehensmodell (oder auch Softwareprozess)ist eine Menge von Aktivitaten, die benotigt werdenum Softwaresysteme zu entwickeln, sowie derenAnordnung bzw. Abfolge.
I Beispiele:I evolutionare EntwicklungI WasserfallmodellI weitere spater
Karsten Weicker, Nicole Weicker 6/ 44
Softwaretechnik – Vorgehensweisen
Aufbau der Vorlesung als Spirale
Aufbau der Vorlesung als Spirale
C BA
D
Code-Verstehen
Vorgehensweisen
UML
Testen funkt. Anforderungen
Strukturen und Muster
Vermeid. v. Missverstandnis
Nichtfunkt. Anforderungen
Qualitatsmanagement
A = Anforderungsanalyse
B = Anforderungsspezifikation
C = Systementwurf
D = Implementation
Aufgaben des Projektmanagements
Risikomanagement
Prozessmodelle
Kostenschatzung
Funkt. Anforderungen am Beispiel
Karsten Weicker, Nicole Weicker 7/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
A = Anforderungsanalyse
Definition (Anforderung)Eine Anforderung ist eine vom Anwender benotigteFahigkeit des Systems, um ein Ziel zu erreichen,bzw. eine Fahigkeit, die das System besitzen muss,damit es einen Vertrag, einen Standard oder einanderes formelles Dokument erfullt.
Karsten Weicker, Nicole Weicker 8/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
A = Anforderungsanalyse:Gegenstand der Anforderung
I funktionale Anforderung –uberprufbare Funktionalitat des SystemsProduktfunktionen
I nichtfunktionale Anforderung –andere Eigenschaften, u.a.
Benutzbarkeit KompatibilitatEffizienz DatenschutzZuverlassigkeit SicherheitPortierbarkeit
Karsten Weicker, Nicole Weicker 9/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
Zwei Minuten AufgabeWelche der folgenden Aussagen ist einenicht-funktionale Anforderung?
� Neue Kunden konnen angelegt werden.
� Das System antwortet auf jede Anfrage inmaximal 2 ms.
� Auf Kundendaten kann nur intern zugegriffenwerden.
� Kundendaten konnen verandert werden.
� Die Bedienung des Systems ist leicht erlernbar.
� Die Kreditwurdigkeit eines Kunden kannberechnet werden.
Karsten Weicker, Nicole Weicker 10/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
Zwei Minuten AufgabeWelche der folgenden Aussagen ist einenicht-funktionale Anforderung?
� Neue Kunden konnen angelegt werden.
�8 Das System antwortet auf jede Anfrage inmaximal 2 ms.
�8 Auf Kundendaten kann nur intern zugegriffenwerden.
� Kundendaten konnen verandert werden.
�8 Die Bedienung des Systems ist leicht erlernbar.
� Die Kreditwurdigkeit eines Kunden kannberechnet werden.
Karsten Weicker, Nicole Weicker 10/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
A = Anforderungsanalyse:Lastenheft zur Dokumentation
Lastenheft beschreibt Wunsche des Auftraggebers
I auf Ebene der Benutzungsanforderungen
I Was und Warum
I Form: naturliche Sprache
I wichtig: Verstandlichkeit fur Auftraggeber
I ist Vordokument zum Pflichtenheft
I Ist- und Soll-Analyse
Karsten Weicker, Nicole Weicker 11/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
B = Anforderungsspezifikation:Warum nach Analyse noch Spezifikation
I Beschreibung der Anforderungen in naturlicher Sprache
I vieldeutigI missverstandlich
I Eindeutigkeit in der FormulierungI Analyse: Problemfeld mit AblaufenI Analyse: keine Losung durch System!I Ubertragung der Anforderungen in informatische
ZusammenhangeI Was muss das System konnen, damit es die
Anforderungen erfullen kann?
Karsten Weicker, Nicole Weicker 12/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
B = Anforderungsspezifikation:Pflichtenheft zur Dokumentation
Pflichtenheft = Realisierungsvorhaben des Auftragnehmers
I auf Ebene der SystemanforderungenI Wie und WomitI keine programmiertechnischen/ architektonischen DetailsI Ubertragung der Benutzerwunsche → Planung/
MachbarkeitsanalyseI Form: strukturierte naturliche Sprache, grafische
Notation oder mathematische SpezifikationI wichtig: eindeutige Beschreibung fur EntwicklerI wichtig: Vertragsgrundlage zwischen Entwickler und
Kunden! → verstandlich bleiben
Karsten Weicker, Nicole Weicker 13/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
B = Anforderungsspezifikation:Validierung von Anforderungen
I Fur jede Anforderung ist zu uberprufnenI korrektI machbarI eindeutigI nachprufbar
I Fur den Katalog aller AnforderungenI vollstandigI konsistent
Karsten Weicker, Nicole Weicker 14/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
B = Anforderungsspezifikation:Beispiel: Gliederung des Pflichtenhefts (IEEE)
1. Einleitung: a) Ziel, b) Anwendungsbereich desProdukts, c) Definitionen, d) Referenzen, e) Uberblickuber das Dokument
2. Allgemeine Beschreibung: a) Produktperspektive,b) Produktfunktion, c) Benutzercharakteristika,d) Beschrankungen, e) Voraussetzungen undAbhangigkeiten
3. Spezifische Anforderungen: funktionale/nichtfunktionale Anforderungen, externe Schnittstellen
4. Anhange
5. Index
Karsten Weicker, Nicole Weicker 15/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
B = Anforderungsspezifikation:Beispiel: Gliederung des Pflichtenhefts (Sommerville)
1. Vorwort: Versionsgeschichte
2. Einleitung: Notwendigkeit des Systems, Funktion,Zusammenarbeit mit anderen Systemen
3. Definition der Benutzeranforderungen
4. Systemarchitektur
5. Spezifikation der Systemanforderungen
6. Systemmodelle
7. Systementwicklung: erwartete Veranderungen
8. Anhange, Index
Karsten Weicker, Nicole Weicker 16/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
B = Anforderungsspezifikation:Beispiel: Gliederung des Pflichtenhefts (Balzert)
1. Zielbestimmung: a) Muss b) Wunsch c) Abgrenzung2. Produkteinsatz3. Produktubersicht4. Produktfunktionen5. Produktdaten6. Produktleistungen (Zeit und Genauigkeit)7. Qualitatsanforderungen8. Benutzungsoberflache9. Nichtfunktionale Anforderungen (Gesetze, Normen etc.)
10. Technische Produktumgebung11. Anforderung an Entwicklungsumgebung12. Glossar
Karsten Weicker, Nicole Weicker 17/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
Zwei Minuten AufgabeWelche der folgenden Aussagen ist korrekt?
� Lastenheft ist gleich Pflichtenheft.
� Das Pflichtenheft wird nur intern verwendet.
� Beide Dokumente dienen der Kommunikationmit dem Kunden.
� Das Pflichtenheft ist die Vorbereitung fur dasLastenheft.
� Das Lastenheft ist uberwiegend in naturlicherSprache verfasst.
� Das Pflichtenheft kann bereits Systemmodelleenthalten.
Karsten Weicker, Nicole Weicker 18/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
Zwei Minuten AufgabeWelche der folgenden Aussagen ist korrekt?
� Lastenheft ist gleich Pflichtenheft.
� Das Pflichtenheft wird nur intern verwendet.
�8 Beide Dokumente dienen der Kommunikationmit dem Kunden.
� Das Pflichtenheft ist die Vorbereitung fur dasLastenheft.
�8 Das Lastenheft ist uberwiegend in naturlicherSprache verfasst.
�8 Das Pflichtenheft kann bereits Systemmodelleenthalten.
Karsten Weicker, Nicole Weicker 18/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
C = Systementwurf
Definition (Software-Architektur)Die Software-Architektur eines Systems beschreibtdessen Software-Struktur(en), dessenSoftware-Bausteine sowie deren sichtbarenEigenschaften und Beziehungen zueinander (nachBass et. al., 2003).
Der Erstellungsprozess wird (Grob-)Entwurfgenannt.
Karsten Weicker, Nicole Weicker 19/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
C = Systementwurf:Vorteile
Vorteile eines expliziten Entwurfs (gegenuber einerevolutionaren Entwicklung)
I Kommunikation zwischen den Projektbeteiligten:vereinfachte Darstellung des Systems alsDiskussionsgrundlage
I Systemanalysen: fruh Analysen bzgl. systemkritischerAnforderungen moglich, z.B. Performanz,Zuverlassigkeit, Wartbarkeit
I Wiederverwendung in großem Umfang: Ubertragung derArchitektur auf ahnliche Systeme
Karsten Weicker, Nicole Weicker 20/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
C = Systementwurf:Mogliche Inhalte
I statisches Strukturmodell: Darstellung derKomponenten des Systems
I dynamisches Strukturmodell: Welche Prozesseentstehen zur Laufzeit?
I Schnittstellenmodell: Details der Dienste dereinzelnen Komponenten/Module
I Beziehungsmodelle: Datenflusse, Kontrollflusseetc.
Karsten Weicker, Nicole Weicker 21/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
C = Systementwurf:Einflusse
I Leistungsfahigkeit: kritische Ablaufe in moglichstwenigen Komponenten mit wenig Kommunikation
I Zugriffsschutz: evtl. Schichtenarchitektur, kritischeInhalte in untersten Schicht
I Sicherheit (d.h. Vertraulichkeit, Authentizitat,Integritat): sicherheitskritische Aktivitaten in Subsystem⇒ verringert Kosten der Sicherheitsvalidierung
I Verfugbarkeit: redundante Komponenten zurAusfallsicherheit bei Updates/Wartung
I Wartbarkeit: kleine austauschbare Komponenten,Trennung von Erzeugen und Benutzen von Daten,Vermeidung gemeinsamer Datenstrukturen
Karsten Weicker, Nicole Weicker 22/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
C = Systementwurf:Beschreibungsmittel
I schriftlich, textuellI Visualisierungen:
I wichtigeste AspekteI Wegweiser durch die Beschreibung
I In den Visualisierungen:I Rollen der BausteineI Beziehungen zwischen den BausteinenI Kommunikation
Karsten Weicker, Nicole Weicker 23/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
D = Implementation
Aspekte der Implementation
I Dokumentation
I ProgrammierrichtlinienI Testen
I Unit-TestI KomponententestI IntegrationstestI Systemtest
I Versionskontrolle
Karsten Weicker, Nicole Weicker 24/ 44
Softwaretechnik – Vorgehensweisen
Identifikation der grundlegenden Ablaufe
Aufbau der Vorlesung als Spirale
C BA
D
Code-Verstehen
Vorgehensweisen
UML
Testen funkt. Anforderungen
Strukturen und Muster
Vermeid. v. Missverstandnis
Nichtfunkt. Anforderungen
Qualitatsmanagement
A = Anforderungsanalyse
B = Anforderungsspezifikation
C = Systementwurf
D = Implementation
Aufgaben des Projektmanagements
Risikomanagement
Prozessmodelle
Kostenschatzung
Funkt. Anforderungen am Beispiel
Karsten Weicker, Nicole Weicker 25/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Anforderungsanalyse
A: Ablauf der Anforderungsanalyse
Verstehen desAnwendungsbereichs
Setzen vonPrioritaten
Anforderungs-sammlung
Konflikt-losung
Klassifizierung
Anforderungs-uberprufung
Lasten-heft
Start
Karsten Weicker, Nicole Weicker 26/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Anforderungsanalyse
A: Anforderungsanalyse:Schwierigkeit
I Beteiligte wissen nicht, was sie von einem Systemerwarten:
I unbewusste Anforderungen: SelbstverstandlichkeitI ungeahnte Anforderungen: Leistungsfahigkeit eines
derartigen Systems nicht abschatzbar
I unterschiedliches Fachwissen/ Fachsprache
I Konflikte zwischen Anforderungen oder unterschiedlicheFormulierungen derselben Anforderungen
I Veranderungen politischer, wirtschaftlicher odergeschaftlicher Randbedingungen
Karsten Weicker, Nicole Weicker 27/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Anforderungsanalyse
A: AnforderungsanalyseSie offnen also morgens das Schloss am Haupteingang?
Ja, habe ich Ihnen doch gesagt.Jeden Morgen?
Naturlich.Auch am Wochenende?
Nein, am Wochenende bleibt der Eingang zu.Und wahrend der Betriebsferien?
Da bleibt er naturlich auch zu.Und wenn Sie krank sind oder Urlaub haben?
Dann macht das Herr Schmidt.Und wenn auch Herr Schmidt ausfallt?
Dann klopft irgendwann ein Kunde ans Fenster, weil er nichtreinkommt.
Was bedeutet eigentlich”morgens“? . . . (Ludewig/Lichter)
Karsten Weicker, Nicole Weicker 28/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Anforderungsanalyse
Zwei Minuten Aufgabe
Welche Kompetenzen benotigt Ihrer Meinung nachein Informatiker zur Erhebung einerAnforderungsanalyse?
Karsten Weicker, Nicole Weicker 29/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise: Anforderungsspezifikation
B: Ablauf der Anforderungsspezifikation
Durchfuhrbar-keitsstudie
System-modelle
Benutzer- undSystem-
anforderungen
Datenanalyse
SpezifikationLastenheft Validierung
Pflichtenheft
Karsten Weicker, Nicole Weicker 30/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise: Anforderungsspezifikation
B: Anforderungsspezifikation:Durchfuhrbarkeitsstudie
Beantwortet eine (oder mehrere) der folgendenFragen:
I Beitrag zur Verwirklichung der Gesamtziele desUnternehmens?
I Realisierbar unter Nutzung der derzeitigenTechnologie und innerhalb des Kosten- undZeitrahmens?
I Kompatibel mit bestehenden Systemen?
Karsten Weicker, Nicole Weicker 31/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise: Anforderungsspezifikation
B: Anforderungsspezifikation:Validierung
I Ziele:I GultigkeitsprufungenI KonsistenzprufungenI VollstandigkeitsprufungenI RealisierbarkeitsprufungenI Verifizierbarkeitsprufungen
I Techniken:I Anforderungs-ReviewsI PrototypenI TestfallerzeugungI automatische Konsistenzanalyse
Karsten Weicker, Nicole Weicker 32/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise: Anforderungsspezifikation
B: Anforderungsspezifikation
Glass-Gesetz
Mangel hinsichtlich der Anforderungen sind dieHauptursache fur das Scheitern von Projekten.
(nach Endres & Rombach, 2003)
Karsten Weicker, Nicole Weicker 33/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise: Anforderungsspezifikation
B: Anforderungsspezifikation
Boehms erstes Gesetz
Fehler kommen einerseits am haufigstenwahrend der Anforderungs- und der Ent-wurfsphase vor und sind andererseits umsokostspieliger je spater sie entfernt werden.
(nach Endres & Rombach, 2003)
Karsten Weicker, Nicole Weicker 34/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise: Anforderungsspezifikation
Aufbau der Vorlesung als Spirale
C BA
D
Code-Verstehen
Vorgehensweisen
UML
Testen funkt. Anforderungen
Strukturen und Muster
Vermeid. v. Missverstandnis
Nichtfunkt. Anforderungen
Qualitatsmanagement
A = Anforderungsanalyse
B = Anforderungsspezifikation
C = Systementwurf
D = Implementation
Aufgaben des Projektmanagements
Risikomanagement
Prozessmodelle
Kostenschatzung
Funkt. Anforderungen am Beispiel
Karsten Weicker, Nicole Weicker 35/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Aktivitaten in allen EntwurfsprozessenSystemstrukturierung, z.B.
I Datenspeichermodell:Bericht-generator
Datenspeicher
Admin-Zugriff
Kunden-Zugriff
Waren-lager
I Client-Server-Architektur:Katalog-Server
Bilder-Server
Web-Server
Client 1 Client 2
Netzwerk
I Schichtenmodell:
Programmlogik
Datenbank
GUI
Karsten Weicker, Nicole Weicker 36/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Aktivitaten in allen EntwurfsprozessenSystemstrukturierung, z.B.
I Datenspeichermodell:Bericht-generator
Datenspeicher
Admin-Zugriff
Kunden-Zugriff
Waren-lager
I Client-Server-Architektur:Katalog-Server
Bilder-Server
Web-Server
Client 1 Client 2
Netzwerk
I Schichtenmodell:
Programmlogik
Datenbank
GUI
Karsten Weicker, Nicole Weicker 36/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Aktivitaten in allen EntwurfsprozessenSystemstrukturierung, z.B.
I Datenspeichermodell:Bericht-generator
Datenspeicher
Admin-Zugriff
Kunden-Zugriff
Waren-lager
I Client-Server-Architektur:Katalog-Server
Bilder-Server
Web-Server
Client 1 Client 2
Netzwerk
I Schichtenmodell:
Programmlogik
Datenbank
GUI
Karsten Weicker, Nicole Weicker 36/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Aktivitaten in allen Entwurfsprozessen
Modellierung der SteuerungI zentrale Steuerung
I Aufruf/Ruckgabe-Modell⇒ hier sind Abweichungen vom Betrieb nur schwermoglich
I Managermodell (oder Event-Loop-Modell)
I ereignisgesteuerte SystemeI Broadcast-Modell, z.B. Integration in einem
NetzwerkI Interrupt-getriebene Modelle, z.B. Echtzeitsysteme
Karsten Weicker, Nicole Weicker 37/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Aktivitaten in allen Entwurfsprozessen
Dekomposition in ModuleI Objektmodelle
I lose gekoppelte Objekte kommunizierenmiteinander
I an Datenanalyse orientiert
I Datenflussmodell: Funktionalitaten werdengekapselt, die Daten transformieren
Karsten Weicker, Nicole Weicker 38/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Entwurf:Vorgehensweise
Lastenheft
ErstellungArchitektur-Vision
Dekompositionin Bausteine
Bewertung derAlternativen
PflichtenheftArchitekturdefinieren
Karsten Weicker, Nicole Weicker 39/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Entwurf:Erstellen der Architektur-Vision
I z.T. parallel zur Anforderungsanalyse
I erste Skizze der ArchitekturI grundlegende Auswahl der
I Architekturstile (Strukturierung und Steuerung)I Architektur-/EntwurfsmusterI Technologien
I gesamte Bandbreite der Anforderungenabdecken
Karsten Weicker, Nicole Weicker 40/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Entwurf:Dekomposition des Systems in Bausteine
I basierend auf bekannten LosungenI Referenzarchitekturen, Architekturmuster etc.
I oder anhand von Architektur-PrinzipienI anschließend: Iterative Verfeinerung der
Architektur-VisionI durch Ergebnisse aus der Anforderungsspezifikation
Karsten Weicker, Nicole Weicker 41/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Entwurf:Bewertung von Alternativen
I große Entscheidungsfreiheit fuhrt zu vielenArchitektur-Alternativen
I Bewertungsansatze:I Checklisten: Liste detaillierter Fragen zu
funktionalen und nicht-funktionalen AnforderungenI Szenarien: Auftraggeber, Benutzer und Architekten
erarbeiten Szenarien (z.B. zur Erweiterbarkeit)I Architektur-Prototypen
Karsten Weicker, Nicole Weicker 42/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
C: Entwurf:Bewertung von Alternativen
Curtis Gesetz
Ein guter Entwurf erfordert tiefes Wissen hin-sichtlich des Anwendungsgebietes.
(nach Endres & Rombach, 2003)
Karsten Weicker, Nicole Weicker 43/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
Zwei Minuten AufgabeSchlagen Sie fur die folgenden Beispiele jeweils einegeeignete Systemstrukturierung vor.
I Suchmaschine zur Suche im Internet nachBildern und Web-Seiten
→ Client-Server
I elektronisches Warenhaus
→ Schichtenmodell
I Reinigungsroboter zum Saubern freierFussbodenflachen, der Wande und andereHindernisse erkennt
→ Datenspeichermodell
Karsten Weicker, Nicole Weicker 44/ 44
Softwaretechnik – Vorgehensweisen
Vorgehensweise Software-Entwurf
Zwei Minuten AufgabeSchlagen Sie fur die folgenden Beispiele jeweils einegeeignete Systemstrukturierung vor.
I Suchmaschine zur Suche im Internet nachBildern und Web-Seiten→ Client-Server
I elektronisches Warenhaus→ Schichtenmodell
I Reinigungsroboter zum Saubern freierFussbodenflachen, der Wande und andereHindernisse erkennt→ Datenspeichermodell
Karsten Weicker, Nicole Weicker 44/ 44