Vorlesung Softwaretechnik - Strukturierte Analyse / Real ...
Einführung in die Softwaretechnik 8....
Transcript of Einführung in die Softwaretechnik 8....
EinführungindieSoftwaretechnik8.Anforderungsanalyse
KlausOstermann(MitFolienvonGabrieleTaentzer,WolfgangHesse,ChristianKästner)
1 EinführungindieSoftwaretechnik
Agenda} FunktionaleundnichtfunktionaleAnforderungen} Benutzeranforderungen} Systemanforderungen} Schnittstellenspezifikation} DasPflichtenheft
2 EinführungindieSoftwaretechnik
WarumAnforderungsanalsyse?
EinführungindieSoftwaretechnik3
BauenwirdasRichtige?
EinführungindieSoftwaretechnik4
Beispiel
EinführungindieSoftwaretechnik5
Kommission:
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 88:00 - 9:009:00 - 10:0010:00 - 11:0011:00 - 12:0012:00 - 13:0013:00 - 14:0014:00 - 15:0015:00 - 16:0016:00 - 17:0017:00 - 18:00
Bemerkungen: Unterschrift:
Zeitschema
Jan 2002 Feb 2002
Bitte ankreuzen wo Sie keinenfalls mitmachen können, und senden Sie das ausgefüllte Formular bis ___________ ans Dekanat zurück.
Beispiel(Fortsetzung)
EinführungindieSoftwaretechnik6
} “Naja,eigentlichbrauchenwireinFormulardaswirperEmailverteilenkönnenundeinenOrt(HTML)wowirdieausgefülltenFormulareablegenkönnenundeinenAlgorithmusderunsausrechnetwannwirunsTreffenkönnen.Achja,ambestenwäreeswenn,fallsnichtallekönnen,irgendwieberücksichtigtwirddassallewichtigenPersonendabeisind.Eswäreauchtoll,wenneseineMöglichkeitgäbeobjedersoeinFormularausgefüllthat.WennnichtsollteesambesteneineListederübrigenPersonengeben.Undwenn'sirgendwiemöglichistsollteaucheineautomatischeEinladunganallebeteiligtenPersonengeschicktwerdenkönnen.
WiekommtmanhierzuklarenAnforderungen?
Probleme
EinführungindieSoftwaretechnik7
} Kundenwissennichtwassiewirklichwollen} KundenbenutzenihreeigeneFachsprache} VerschiedeneStakeholder*könnenwidersprüchlicheAnforderungenhaben
} PolitischeundOrganisatorischeFaktorenkönnenAnforderungenbeeinflussen
} AnforderungenändernsichwährendderAnalyseundEntwicklung
} NeueStakeholdermischensichein
*Stakeholder=Anspruchträger/Interessierte/Betroffene/Projektbeteiligte/Anspruchsgruppen
©Grochim
Wannsindwirfertig?
EinführungindieSoftwaretechnik8
} Szenario:NeueFirma,3Mitarbeiter(Gehalt45.000EUR)} BekommenAuftragvonFirma$BigCooperation
} geschätzterAufwand9Bearbeiterjahre} Festpreis500.000EUR,250.000EURsofort,RestnachAbnahme
} Fertigstellungnach3Jahren} FirmaverweigertAbnahme,fordertNacharbeiten} ->Schuldenfalle
Anforderungen
EinführungindieSoftwaretechnik9
Definition:Anforderung
EinführungindieSoftwaretechnik10
} BenutzeranforderungensindAussageninnatürlicherSprachesowieDiagrammezurBeschreibungderDienste,diedasSystemleistensoll,undderRandbedingungen,unterdenenesbetriebenwird.
} SystemanforderungenlegendieFunktionen,DiensteundBeschränkungendetailliertfest.DasPflichtenheft(auchfunktionaleSpezifikationgenannt)solltepräzisesein.Esmussgenaudefinieren,wasimplementiertwerdensoll.EskannalsTeildesVertrageszwischendemKäuferunddemSoftwareentwicklerdienen.
Beispiel
EinführungindieSoftwaretechnik11
Zielgruppen
EinführungindieSoftwaretechnik12
FestlegungderAnforderungen:Schritte
EinführungindieSoftwaretechnik13
} Anforderungsermittlung:Sammelnvon(funktionalenundnicht-funktionalen)Anforderungen} z.B.durchAnwendergespräche,Dokumenten-Studium
} Anforderungsanalyse:Klassifizierung,Bewertung,VergleichundPrüfung} z.B.Kosten-/Nutzen-Aspekte,Konsistenz,Vollständigkeit
} Anforderungsbeschreibung:BeschreibungineinheitlicherForm(z.B.alsAnwendungsfälle)
} Anforderungsrevision:ErneutePrüfung/AenderungvonAnforderungen} ggf.nurinformellemÄnderungsverfahrens
InhaltderAnforderungsbeschreibung
EinführungindieSoftwaretechnik14
} Zielsetzung} allgemeineBeschreibung} DefinitionenundAbkürzungen} Produktumfeld} funktionaleAnforderungen} nicht-funktionaleAnforderungen} Abnahmekriterien} Glossar,Index,Referenzen IEEE830-98
StandardfürAnforderungs-dokumente
Funktionalevs.nichtfunktionaleAnforderungen
FunktionaleAnforderungen NichtfunktionaleAnforder.
EinführungindieSoftwaretechnik15
} WassolldasSystemleisten?
} WelcheDienstesollesanbieten
} Eingaben,Verarbeitungen,Ausgaben
} VerhalteninbestimmtenSituationen,ggf.wassollesexplizitnichttun
} WiesolldasSystem/einzelneFunktionenarbeiten?
} QualitätsanforderungenwiePerformanzundZuverlässigkeit
} AnforderungenandieBenutzbarkeitdesSystems
Beispiel:FunktionaleAnforderungen
EinführungindieSoftwaretechnik16
} Funktion:Vorlesungeintragen} Eingaben:Raum,ZeitundTiteleinerVorlesung.} Verarbeitungsschritte:
} Prüfe,obderVorlesungstitelschonvergebenist} Prüfe,obderRaumzurangegebenenZeitschonvergebenist} Wennnicht,wirddieneueVorlesungeingetragenunddieDatenderVorlesungwerdenangezeigt.
} Fallsvergeben,wirddieVorlesungnichteingetragenundeineentsprechendeFehlermeldungwirdangezeigt.
} Ausgaben:DieVorlesungwirdangezeigtodereinFehlerwirdgemeldet.
Beispiele:FunktionaleAnforderungen
EinführungindieSoftwaretechnik17
} Aktionen,dievomSystemausgeführtwerdensollen} Bsp.:DasSystemmussAusleihgegenständeindenBestandaufnehmenkönnen.
} Systeminteraktionen,diedemNutzerermöglichtwerden} Bsp.:DasSystemmussesdemAdministratorbeiderAufnahmeeinesAusleihgegenstandesindenBestandermöglichen,denAutor,denTitelunddieISBNeinzugeben.
} allg.funkt.Vereinbarungenu.Einschränkungen} Bsp.:DerClientistfürdenKommunikationsaufbauzuständig.
Nicht-funktionaleAnforderungen
EinführungindieSoftwaretechnik18
Beispiele:Nicht-funktionaleAnforderungen
EinführungindieSoftwaretechnik19
} technischeAnforderungen} DasSystemmussmitJavaentwickeltwerdenundmussinderJavaVMX.Ylaufen
} ergonomischeAnforderungen} DasSystemmussdiegespeichertenObjekteformatiertausgebenkönnen(Formatvorgabe).
} DieBenutzerführungerfolgtindeutsch
} AnforderungenandieDienstqualität} DasSystemmussjedeAnfragedesBenutzersinnerhalbvon30Sekundenausführen(aufSystemXY).
} DerSpeicherbedarfdarf512mbnichtübersteigen
Beispiele:Nicht-funktionaleAnforderungen(2)
EinführungindieSoftwaretechnik20
} Zuverlässigkeit} DieVerfügbarkeitdesSystemsmussbei99.999%liegen
} AnforderungenandenEntwicklungsprozess} DerEntwicklermussmitdemKundenmonatlicheReviewsderzuerstellendenDokumentedurchführen.
} rechtlich-vertraglicheAnforderungen} DerKundeleistetfürjedenabgenommenenMeilensteineinDritteldervertraglichvereinbartenSummefürdieEntwicklungdesSystems.
} DiedeutscheDatenschutzrichtliniemusserfülltsein} Interoperabilität
} DasSystemmussDatenmitMSExcelaustauschenkönnen
Überprüfbarkeit
EinführungindieSoftwaretechnik21
} AlleAnforderungenmüssenüberprüfbarsein} EinobjektiverDrittermussentscheidenkönnen
} NotfallsAbnahmevorGerichtdurchsetzen
Messbarkeit
EinführungindieSoftwaretechnik22
} BesteÜberprüfbarkeitbeimessbarenMetriken
Messbarkeit(Beispiele)
EinführungindieSoftwaretechnik23
} DasSystemsollzügigreagieren} 80%allerAnfragensollenunter0.1Sekundebeantwortetwerden,99.99%allerAnfragenunter2Sekunden(Test-Hardwarespezifizieren!)
} DasSystemsollauchimMehrbenutzerbetriebschnellreagieren} AufXY-ServerVerarbeitungvon200AnfragenproSekundevon10unterschiedlichenSystemenmit100mbitEthernet-Anbindung
} DasSystemsollstabilundausfallsichersein} Verfügbarkeitvon99.99%,Neustartinnerhalbvon30Sekunden,dasSystemdarfnichtaufgrundfalscherEingabenabstürzen
Messbarkeit(Beispiele2)
EinführungindieSoftwaretechnik24
} DasSystemsollgutgetestetwerden} AutomatisierteUnit-TestserzieleneineTestabdeckungvoninsgesamt95%und100%inModulX
} DurchführungeinesBenutzbarkeittestsmitzweinicht-eingewiesenenNicht-Informatik-Studenten,diesekönnenAufgabeXohneErklärungdurchführen
} DasSystemwirdmitSimulatorXfür2WochenfehlerfreiimDauerbetriebausgeführt
Nachvollziehbarkeit
EinführungindieSoftwaretechnik25
} DokumentierenwoherAnforderungenkam} Werhatsieaufgestellt,fürwenistsiewichtig
} VermeidetPhantome} StrukturiertDiskussionen} ErlaubtgezielteRückfragen/Prüfenoberfüllt
Abgrenzungskriterien
EinführungindieSoftwaretechnik26
} Wassollnichtgemachtwerden?} Manchmalsinnvolldiesexpliziertzuklären} DemKundenklarmachenworauferverzichtet} TeilsSchutzvorÄnderungsanträgen
} Beispiele} KeinFokusaufintuitiveBedienung,sondernSpezialsoftwarefürgeschulteBenutzer
} SchütztnichtvorFehlerndesBenutzers} Festplattenspeicherwirdalsnicht-limitiertbetrachtet} MultilingualeBenutzeroberflächenichtgeplant
PrüfungvonAnforderungen
EinführungindieSoftwaretechnik27
} WirdderBedarfdesKundenvollständigabgedeckt?} Verständlichformuliert?} KonsistentmitdenanderenAnforderungen?} RealistischmitBudgetundTechnologie?} Anforderungprüfbar?} ÄnderbarohneEinflussaufandereAnforderungen?
} RegelmäßigeReviews} KundenundpotentielleBenutzerinAnforderungsanalysemiteinbeziehen
Anwendungsfälle
EinführungindieSoftwaretechnik28
Anwendungsfälle
EinführungindieSoftwaretechnik29
} Grundidee:GliederungderFunktionalitätinlogischzusammengehörigeundhandlichefunktionaleEinheiten,BeschreibunginstandardisierterForm
} Anwendungsfall:abgeschlossene,zusammenhängendeEinheit;TeilderFunktionalitätdesSystems
} Anwendungsfallbeschreibung:} Titel:} Kurzbeschreibung:} Aktoren:} Vorbedingungen:} BeschreibungdesAblaufs:} Auswirkungen:} Anmerkungen:
Beispiel:Anwendungsfall
EinführungindieSoftwaretechnik30
} Titel:Vorlesungeintragen} Kurzbeschreibung:DozentgibtRaum,ZeitundTiteleinerVorlesung
einundlegteinenVorlesungseintragan.} Aktor:Dozent} Vorbedingungen:EineVorlesungmitdiesemTitelgibtesnochnicht.} BeschreibungdesAblaufs:
} Prüfe,obderRaumzurangegebenenZeitschonvergebenist} Wennnicht,wirddieneueVorlesungeingetragenunddieDatenderVorlesungwerdenangezeigt.
} Fallsvergeben,wirddieVorlesungnichteingetragenundeineentsprechendeFehlermeldungwirdangezeigt.
} Auswirkungen:DieVorlesungwirdangezeigtodereinFehlerwirdgemeldet.
} Anmerkungen:
Aktoren
EinführungindieSoftwaretechnik31
AktorentauschenmitdemSystemNachrichtenausundkönnenalsSenderund/oderEmpfängervonNachrichtenauftreten.
Aktorensindi.a.selbstnichtBestandteiledesSystems.OftmüssenDatenübersiejedoch(z.B.zurRegelungderZugangsberechtigung)mitverwaltetwerden.
Aktor: ObjektderSystemumgebung,dasmitdemSysteminteragiert(undeinenodermehrereAnwendungsfälleauslösenkann).AktorenkönnenPersonen(System-Nutzer),externeGeräteodermitdemSystemverbundeneNachbarsystemesein.
ElementevonAnwendungsfalldiagrammen
EinführungindieSoftwaretechnik32
} Aktor,} AnwendungfallmitBezeichnerB,
} Systemgrenze(mitSystembezeichnerS),
} Kommunikationsbeziehung(zwischenAktorenundAnwendungsfällen)
} BeziehungzwischenAnwendungsfällen
B
S
<<extend>>,<<include>>
BeziehungenzwischenAnwendungsfällen
EinführungindieSoftwaretechnik33
} AusführungvonAnwendungsfallAschließtdieAusführungvonAnwendungsfallBein.} Bsp:"Auftragbearbeiten"schließt"Zahlung
veranlassen"ein.} AusführungvonAnwendungsfallAkann(unterbestimmtenBedingungen)erweitertwerdendurcheineAusführungvonAnwendungsfallB.} Bsp:Beim"Auftragbearbeiten"wird-falls
eineAnfragedafürvorlag-nocheinKatalogversandt.
} AnwendungsfallAgeneralisiertAnwendungsfallB,d.h.BstehtfüreineMengevonSpezialfällenvonA.} Bsp:"Auftragbearbeiten"generalisiert
"Kaufauftragbearbeiten"und"Verkaufsauftragbearbeiten"
<<extend>>
<<include>>A
B
A
B
A
B
Beispiel:eineinfachesAnwendungsfalldiagramm
EinführungindieSoftwaretechnik34
} StückzurückgebenwirddurchdenKunden(=Automatenbenutzer)ausgelöst,dereineMengevonDosen,FlaschenoderKistenzurückgebenwill.
BeschreibungdesAblaufs:} MitjedemzurückgegebenenStückerhöhtdasSystemdieAnzahlder
registriertenStückesowiedieTagesgesamtanzahlfürdiebetreffendeKategorie.} WennderKundealleStückeabgelieferthat,drücktereinenQuittungsknopfund
erhälteineQuittungüberalleabgeliefertenStückeundderenGesamtanzahl.
Operator
Benutzer
Leergut-Automat
Stückzurückgeben
Stamm-datenändern
Berichterstellen
WeiteresBeispiel:Anwendungsfalldiagramm
35
<<include>>
<<include>>
<<include>>
Anwendungsfälle
EinführungindieSoftwaretechnik36
} ErstellenvonAnwendungsfällenistTextarbeit} AnwendungsfalldiagrammesindnurzurÜbersicht,ersetzenabernichtdietextuelleBeschreibung
Pflichtenheft
EinführungindieSoftwaretechnik37
Pflichtenheft
EinführungindieSoftwaretechnik38
} OffizielleAufstellungwasvonEntwicklernerwartetwird} EnthältBenutzer-undSystemanforderungen
} HatbeiexternenKundenVertragscharakter
BenutzerdesPflichtenhefts
EinführungindieSoftwaretechnik39
AufbaudesPflichtenheftsnachIEEEStandard
EinführungindieSoftwaretechnik40
} Einleitung(introduction)} Ziel(purpose)} Anwendungsbereich(scope)} Definitionen,Akronyme,Referenzen
} AllgemeineBeschreibung(description)} Produktperspektiven} Produktfunktionen} Benutzercharacteristika} AllgemeineBeschränkungen} VoraussetzungenundAbhängigkeiten
} SpezifischeAnforderungen(requirements)} funktionaleundnicht-funktionaleEigenschaften(umfangreichster
Teil)} Anhänge
StruktureinesPflichtenhefts(nachSommerville)
EinführungindieSoftwaretechnik41
} Vorwort} Einleitung} Glossar} DefinitionderBenutzeranforderungen} Systemarchitektur} SpezifikationderSystemanforderungen} Systemmodell} Systementwicklung} Anhänge,Index
DiskussionPflichtenheft
EinführungindieSoftwaretechnik42
} Pflichtenheftkannsehrumfangreichundaufwendigwerden…
} VertragscharakteroderRichtlinie?} AufteilunginMuss-/Soll-/Kann-/Abgrenzungskriterien?} Veraltetbevorfertiggestellt?} HilftinkrementellesVorgehen?
EinführungindieSoftwaretechnik43
Zusammenfassung} AnforderungsanalysezentralfürProjekterfolg} KundeundEntwicklermüssensichaufeineAnforderungsbeschreibungeinigen.HiertretenvieleProblemeauf.
} EswerdenfunktionaleundnichtfunktionaleAnforderungenaneineAnwendungunterschieden.
} EinenÜberblicküberdiefunktionalenAnforderungengebenAnwendungsfalldiagramme.