05.02.2013 Aufrufe

4. Methodik der Softwareentwicklung

4. Methodik der Softwareentwicklung

4. Methodik der Softwareentwicklung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>4.</strong><strong>Methodik</strong><strong>der</strong><br />

<strong>Softwareentwicklung</strong><br />

• Einführung<br />

• Anfor<strong>der</strong>ungsanalyse<br />

• Entwurf<br />

• Implementierung<br />

• ValidierungundVerifikation<br />

• InstallationundKonfigurationsmanagement<br />

• Managementaspekte<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

367


DieEntwicklunggroßerundsicherheitskritischer<br />

SoftwaresystemeisteinkomplexeAufgabe.<br />

SieunterscheidetsichvondemSchreibeneines<br />

kleinenProgrammswiedieKonstruktioneines<br />

WolkenkratzersvondemBastelneinerHundehütte.<br />

DasKapitelbetrachtet<strong>Softwareentwicklung</strong>als<br />

einenProzess,<strong>der</strong><br />

- strukturiertundorganisiertwerdenmuss,<br />

- desseneinzelnenSchritteverstandenwerdenmüssen ,<br />

- <strong>der</strong>ineinemgegebenenZeit- undKostenrahmen<br />

ablaufensoll.<br />

<strong>4.</strong>1Einführung<br />

BisherstandenModelle,Sprachen,Techniken<br />

undWerkzeugezur<strong>Softwareentwicklung</strong>im<br />

Vor<strong>der</strong>grund( Softwaretechnik).<br />

<strong>Methodik</strong> <strong>der</strong><strong>Softwareentwicklung</strong>:<br />

LehrevondenVerfahren/Methodenzursystematischen<br />

EntwicklungvonSoftware-Systemen<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

368


Anfor<strong>der</strong>ung<br />

Entwurf<br />

Implementierung<br />

Installation<br />

Wartung<br />

Modelle<br />

<strong>Softwareentwicklung</strong>smethodik:<br />

• GeeignetesVorgehen?<br />

• KontrolledesProzesses?<br />

• Geeignete Mittel?<br />

Softwaretechnik:<br />

Programmgerüste<br />

Sprachen<br />

OO-<br />

ADL<br />

Modelle UML<br />

Software-Engineering=<br />

Java<br />

Techniken<br />

Werkzeuge<br />

Compiler<br />

Debugger<br />

make<br />

spezifisches<br />

Wissen<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

369<br />

Generierung<br />

Konfigurationsmanagement<br />

Algorithmen<br />

Softwarevisualisierung<br />

Softwaretechnik+SW-Entwicklungsmethodik+...


Begriffsklärung: (Entwicklungv.SW-Systemen)<br />

Die EntwicklungeinesSoftwaresystems umfasstdie<br />

SchritteundTätigkeitenvon<strong>der</strong>IdeebiszurInsta llation<br />

desSystemssowiedieWartung.<br />

BetrachtetmandenAblauf<strong>der</strong>SchritteundTätigkei ten<br />

in<strong>der</strong>Zeit,sprichtmanvom SW-Entwicklungsprozess.<br />

Phasen<strong>der</strong>SW-Entwicklung<br />

Anfor<strong>der</strong>ung<br />

Entwurf<br />

(vgl.ESSy 1,Folien25,26)<br />

Implementierung<br />

Installation<br />

Wartung<br />

Eine SW-Entwicklungsmethode beschreibtdie<br />

Modelle,Prozesse,SprachenundWerkzeugezur<br />

LösungeinerKlassevonSW-Entwicklungsaufgaben.<br />

Wieinan<strong>der</strong>enDisziplinen,hängtdieEignungeiner<br />

SW-EntwicklungsmethodevondenAnfor<strong>der</strong>ungenab.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

370


ZentraleUnterscheidung:<br />

Produkt:<br />

- Dokumente<br />

- Programme<br />

- Daten<br />

- Testfälle<br />

- ...<br />

These:<br />

Prozess:<br />

- Schritte<br />

- Eingabe<br />

- Ausgabe<br />

- Abstimmung<br />

- ...<br />

DerProzesskontrolliertdasProduktbzgl.Qualität<br />

Skalierbarkeit,Produktivität.<br />

Folgerung:<br />

EingeeigneterProzessistvonzentralerBedeutung<br />

fürdieEntwicklungvonQualitätssoftware.<br />

Dokumentein<strong>der</strong><strong>Softwareentwicklung</strong><br />

ImFolgendenfassenwirunterdemBegriff<br />

„Dokument“alleszusammen,wasalsEin- und<br />

Ausgabevon<strong>Softwareentwicklung</strong>sprozessen<br />

relevantist.<br />

DerZusammenhangzwischendiesenDokumenten<br />

lässtsichwiefolgtdarstellen:<br />

d.Schritte<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

371


Anfor<strong>der</strong>ungen<br />

Dokumentenmodell<strong>der</strong>SW-Entwicklung:<br />

Problembeschreibung<br />

Benutzungsanfor<strong>der</strong>ungen<br />

Grobentwurf<br />

Entwicklungsanfor<strong>der</strong>ungen<br />

Feinentwurf<br />

Systementwurf<br />

Modulanfor<strong>der</strong>ungen<br />

Modulentwurf<br />

Modulimplementierung<br />

ausführbares<br />

System<br />

ausführbare<br />

Module<br />

benutztes<br />

System<br />

benutzbares<br />

System<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

372


Beachte:<br />

- ZieldesDokumentenmodellsisteine<br />

grundsätzliche Einordnung<strong>der</strong>Dokumente:<br />

nichtzu jedem imModellaufgeführtenDokumenttypwirdesbeijedemSW-Entwicklungsprozess<br />

expliziteDokumentegeben.<br />

- ZujedemDokumententypgibtesimAllg.bei<br />

einemProjekteineVielzahlvonDokumenten.<br />

Insbeson<strong>der</strong>egibtesaufdenunterenEbenen<br />

zujedemModulgeeigneteBeschreibungen.<br />

- ZieldesDokumentenmodellsistes nicht, eine<br />

zeitlicheAbfolgefürdieErstellung<strong>der</strong>Dokumente<br />

vorzugeben.<br />

<strong>Softwareentwicklung</strong>sprozesse<br />

Begriffsklärung: (SW-Entwicklungsprozess)<br />

Ein SW-Entwicklungsprozess istdiezeitliche<br />

Abfolge<strong>der</strong>Arbeitsschrittebei<strong>der</strong>Erstellungvon<br />

Softwareund<strong>der</strong>zugehörigenDokumente.<br />

Die Beschreibung einesSW-Entwicklungsprozesses<br />

legtfest,wiedieAbfolgeaussehensoll.<br />

Prozessmodelle, auch Vorgehensmodelle genannt,<br />

bietengrobeLeitlinienzurStrukturierungvon<br />

SW-Entwicklungsprozessen.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

373


Wasserfallmodell:<br />

Zeit<br />

Problem<br />

beschreiben<br />

Anfor<strong>der</strong>ungen<br />

festlegen<br />

Grobentwurf<br />

entwickeln<br />

Feinentwurf<br />

entwickeln<br />

Implementieren<br />

Module<br />

testen<br />

Integrieren<br />

System<br />

testen<br />

Installation<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

374


Diskussion:<br />

- sehreinfach<br />

- sehrspäteValidation<strong>der</strong>Anfor<strong>der</strong>ungen:<br />

FehlerinfrühenPhasensindteuer<br />

- zeitlichschwerzuplanen,daeinePhaseerst<br />

vollständigerledigtseinmuss,bevordienächste<br />

beginnenkann<br />

- Risiken<strong>der</strong>letztenPhasenwerdenspäterkannt<br />

- schwerfälligbezüglichÄn<strong>der</strong>ungbeiden<br />

Anfor<strong>der</strong>ungen<br />

- nichtohneWeiteresaufProjektezurSoftware-<br />

Verän<strong>der</strong>ungbzw.Erweiterunganwendbar<br />

Lebenszyklusmodell(LifeCycle Model):<br />

DasLebenszyklusmodellbetontdenEinfluss<strong>der</strong><br />

ErfahrungenausdemBetriebeinesSoftware-<br />

SystemsaufdessenWeiterentwicklung.<br />

ImWesentlichenbesitzensolcheModelledie<br />

gleichenEigenschaftenwieWasserfallmodelle.<br />

ManbeachtejedochdasunterschiedlicheVersionen<br />

überlappendentwickeltwerdenkönnen.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

375


Problem<br />

beschreiben<br />

Anfor<strong>der</strong>ungen<br />

festlegen<br />

Grobentwurf<br />

entwickeln<br />

Betriebund<br />

Bewertung<br />

Feinentwurf<br />

entwickeln<br />

Installation<br />

Implementieren<br />

System<br />

testen<br />

Module<br />

testen<br />

(dieRückwirkungenaufdieVorgängerphase<br />

sindhiernichtangegeben)<br />

Spiralmodell:<br />

Zeit<br />

ImGegensatzzumLebenszyklusmodellwird<strong>der</strong><br />

ZyklusimSpiralmodellmehrfachdurchlaufen,bis<br />

einevollständigeSystemversionentstandenist.<br />

Integrieren<br />

BeginnendmiteinemPrototypdesSystems,<strong>der</strong>nur<br />

dessenKernfunktionalitätrealisiert,werdeninjed em<br />

ZyklusleistungsfähigereApproximationenentwickelt .<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

376


BestimmungvonZielen,<br />

Alternativenund<br />

Restriktionen<br />

Planung<br />

desnächsten<br />

Zyklus‘<br />

Start<br />

Bewertungund<br />

Risikoanalyse<br />

- EntfernungvomMittelpunktgibtdieKostenan<br />

- LängedesWegsauf<strong>der</strong>SpiralegibtdieZeitan<br />

Prototypentwicklung<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

377<br />

P1<br />

P2<br />

P3<br />

Produktentwicklung


Diskussion:<br />

- Abgrenzung<strong>der</strong>Prozessschrittenichteinfach<br />

- früheValidation<strong>der</strong>Anfor<strong>der</strong>ungenmöglich<br />

- zeitlichbesserzuplanen,daZeitproblematik<br />

frühereinzuschätzenist;Reaktion:<br />

Reduktion<strong>der</strong>Anfor<strong>der</strong>ungen<br />

mehrPersonal<br />

- Risikenlassensichfrühererkennen<br />

¡ - Än<strong>der</strong>unglassensichleichterberücksichtigen<br />

alsbeidenerstenbeidenModellen<br />

InkrementellesModell:<br />

DasinkrementelleModellbetontevolutionäre<br />

EntwicklungeinesSystemsausgehendvom<br />

funktionalenKern.<br />

Ziele:<br />

- SystementwicklungbeiunklarenAnfor<strong>der</strong>ungen<br />

- schnelleVerfügbarkeitvonlauffähigenPrototypen<br />

zurfrühenValidation<br />

- parallelesArbeitenandenSW-Entwicklungsphasen<br />

- BewältigungdynamischerZeit- undKostenrahmen<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

378


Zeit<br />

Version0.5Version1.0Versio n1.1<br />

Analyse<br />

Entwurf<br />

Implementation<br />

undIntegration<br />

Installationund<br />

Bewertung<br />

Analytiker<br />

SW-Architekten<br />

Analyse<br />

Entwurf<br />

Implementation<br />

undIntegration<br />

Installationund<br />

Bewertung<br />

Analyse<br />

Entwurf<br />

Implementation<br />

undIntegration<br />

Installationund<br />

Bewertung<br />

Programmierer<br />

Kundenbetreuer<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

379


Diskussion:<br />

- erreichtdieobigenZielebesseralsan<strong>der</strong>e<br />

Prozessmodelle<br />

- lässtsichsehrfeingranulargestalten,z.B.:<br />

¢ jedenTagIntegration<br />

jedeWocheSystemtest<br />

- WartunglässtsichüberdieEntwicklungneuer<br />

VersionenindenProzessintegrieren<br />

¢<br />

- ersterEntwurfbasiertaufunvollständigerInforma tion;<br />

darauskönnenlangfristigNachteileentstehen.<br />

AbschließendeBemerkungen:<br />

1.DieModellegebengrobeRichtlinien,umdeutlic h<br />

zumachen,dassunterschiedlichesVorgehen<br />

möglichundsinnvollist.<br />

DabeientstehendieDokumenteinunterschiedlicher<br />

Reihenfolgeundggf.unterschiedlicherStruktur.<br />

2.AuswahldesProzesseshängtvondenEigenschaften<br />

deszuentwickelndenSystemsab:<br />

¢ sicherheitskritisch<br />

groß/klein,AnzahlbeteiligterPersonen<br />

Domänenwissen/Referenzmodelle<br />

¢<br />

DauerdesProjektes/LebensdauerdesProdukts<br />

¢<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

380


3.In<strong>der</strong>PraxiswirdmanhäufigKombinationen<br />

<strong>der</strong>vorgestelltenProzessefinden,z.B.:<br />

£ Spirallmodell beschränktaufdieAnalyse<br />

£ WasserfallmodellfürdieEntwurfsschritte<br />

InkrementellesModellfürdieImplementierung<br />

<strong>4.</strong>EsgibtvermehrtStandardisierungsanstrengungen<br />

£<br />

bzgl.SW-Entwicklungsprozessen.Dieallgemeine<br />

Begriffsbildungbzgl.feinererProzessschritteist<br />

abernochnichteinheitlich.<br />

Literatur:<br />

W.Zuser,S.Biffl,T.Grechenig,M.Köhle:<br />

SoftwareEngineeringmitUMLunddemUnified<br />

Process;PearsonStudium,2001.<br />

I.Sommerville:SoftwareEngineering.<br />

6.Auflage(DeutscheÜbersetzung);<br />

PearsonStudium,2001.<br />

G.Booch,J.Rumbaugh,I.Jacoson:The Unified<br />

ModelingLanguageUserGuide;Addison-Wesley,<br />

1999.<br />

(DieseLiteraturangabenbeziehensichaufdas<br />

ganzeKapitel<strong>4.</strong>)<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

381


<strong>Softwareentwicklung</strong>sprojekte<br />

<strong>Softwareentwicklung</strong>wirdoftinProjektenorganisie rt:<br />

Begriffsklärung: (Projekt)<br />

Ein Projekt unterscheidetsichvonkontinuierlicher<br />

ArbeitinUnternehmen/Gruppen/Organisationen<br />

durchfolgendecharakteristischeEigenschaften:<br />

1.EinProjektisteineinmaligesVorhaben.<br />

2.Esistzeitlichbegrenzt.<br />

3.EsverfolgtvorgegebeneZiele.<br />

<strong>4.</strong>PrinzipiellgehtesumdieLösungneuerAufgabe n.<br />

5.InProjektenwerdenjenachZielmehrere<br />

unterschiedlicheMethodenangewendet.<br />

6.Projekteerfor<strong>der</strong>nimAllg.dieZusammenarbeit<br />

vonPersonenmitunterschiedlichemfachlichen<br />

HintergrundundunterschiedlicherErfahrung.<br />

7.Wegen<strong>der</strong>einmaligenAufgabenstellung<br />

birgtjedesProjekteinspeziellesRisiko.<br />

8.ProjektehabeneineigenesBudget.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

382


WichtigeAspekte:<br />

Projekttypen– charakteristischeMerkmale:<br />

- GrößebemessennachEntwicklungsaufwand(PJ)<br />

- DauerbemessennachZeit(Kalen<strong>der</strong>wochen)<br />

- Aufgabenstellung/Zielsetzung<br />

- fachlicheDomäne<br />

- Technologie<br />

Personen– ZusammenwirkenundRollen:<br />

- StrategischesDreieck<br />

- Entwicklerteam<br />

Auftraggeber/Kunde<br />

Benutzer<br />

Auftragnehmer/Management<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

383


nochzuPersonen<br />

- Entwicklerteam:<br />

¤ Projektleiter<br />

Gruppenleiter<br />

Analytiker<br />

¤<br />

Software-Architekt<br />

Programmierer<br />

¤ Qualitätssicherer/Tester<br />

ZeitundKosten:<br />

¤<br />

- zentraleFaktoren<br />

- durchEinsatzvonmehrPersonallässtsich<br />

ggf.Zeitsparen<br />

- durchStrecken<strong>der</strong>Projektdauerlassensich<br />

dieKostenproZeiteinheitsenken<br />

VorgehenimRestdesKapitels<br />

- Behandlung<strong>der</strong>zentralenProzessschritte<br />

- Erläuterung<strong>der</strong>beteiligtenDokumente/Diagramme<br />

- Illustration<strong>der</strong>Problematikund<strong>der</strong>Anwendung<br />

aneinemdurchgehendenBeispiel:<br />

EntwicklungeinesKursPlaners<br />

(aufbauendaufArbeitenvonProf.Gotzhein)<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

384


<strong>4.</strong>2Anfor<strong>der</strong>ungsanalyse<br />

Begriffsklärung: (Anfor<strong>der</strong>ungsanalyse)<br />

DerProzess<strong>der</strong>Feststellung<strong>der</strong>Anfor<strong>der</strong>ungen<br />

aneinSoftwareprojektwirdals Anfor<strong>der</strong>ungsanalyse<br />

bezeichnet.Sieumfasst:<br />

- die Ermittlung <strong>der</strong>Anfor<strong>der</strong>ungen,die<strong>der</strong><br />

AuftraggeberandieBenutzungdesSW-Systems<br />

stellt;<br />

- die AnalyseundSpezifikation <strong>der</strong>ermittelten<br />

Anfor<strong>der</strong>ungensowiedieErmittlungundSpezifikatio n<br />

darausableitbarerAnfor<strong>der</strong>ungenandietechnische<br />

Umsetzung;<br />

- das Validieren <strong>der</strong>spezifiziertenAnfor<strong>der</strong>ungen.<br />

Abhängigkeitenbei<strong>der</strong>Anfor<strong>der</strong>ungsanalyse:<br />

Ermittlung<br />

Spezifikation<br />

Validation<br />

DerAblauf<br />

dieserSchritte<br />

kannvariieren.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

385


Anfor<strong>der</strong>ungsermittlung<br />

DieAnfor<strong>der</strong>ungsermittlunggeschiehtim<br />

ZusammenwirkenvonAuftraggeberundAnalytiker.<br />

IhrErgebnismussfürdenAuftraggeberverständlich<br />

sein,imAllg.alsoineinernichtsoftwaretechnisc hen<br />

Spracheverfasstsein.<br />

Ergebnisse<strong>der</strong>Anfor<strong>der</strong>ungsermittlung:<br />

DieAnfor<strong>der</strong>ungsermittlungsolltefolgende<br />

Informationendokumentieren/inDokumenten<br />

festhalten:<br />

1.Systembeschreibung:AllgemeineEinführungin<br />

dieFunktionalitätdesSystems<br />

2.Begriffsverzeichnis:InformelleErläuterung<strong>der</strong><br />

FachbegriffealsBasis<strong>der</strong>Analysegespräche.<br />

3.Aktorenliste:Beschreibung<strong>der</strong>ArtenvonAktor en,<br />

diemitdemSystemarbeitensollen,undihrer<br />

Rechte.<br />

<strong>4.</strong>Anwendungsfalldiagramm(engl.usecasediagram) :<br />

ÜbersichtlicheDarstellung<strong>der</strong>Aufgaben/Anwendungsfälle,dievomSystemerledigtwerden:<br />

WelcherAktoristfürwelcheAufgabezuständig?<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

386


5.Beschreibung<strong>der</strong>Anwendungsfälle:<br />

Je<strong>der</strong>AnwendungsfalldesAnwendungsfalldiagramms<br />

mussausführlichbzgl.Ablaufund<br />

Funktionalitätbeschriebenwerden:<br />

- NamedesAnwendungsfalls(ggf.eindeutigeNr.)<br />

- Kurzbeschreibung<br />

- VorbedingungfürdieAusführung<br />

- GenauerAblaufdesAnwendungsfallsund<strong>der</strong><br />

InteraktionmitdemBenutzer<br />

- AuswirkungdesAnwendungsfallsaufden<br />

Systemzustand<br />

- WeitereAnmerkungen<br />

6.Domänenmodell:Beschreibung<strong>der</strong>Domänenobjekte,diefürdasVerständnis<strong>der</strong>Funktionalität<br />

relevantsind.<br />

7.Benutzung:Angabenüberdiepotentiellen<br />

BenutzergruppenunddieBedienoberfläche.<br />

8.TechnischeRahmenbedingungen:Technische<br />

AspektesoweitsievomAuftraggeberbeurteilt<br />

o<strong>der</strong>vorgegebenwerdenkönnen.<br />

9.ZeitundKostenvorgaben.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

387


Anfor<strong>der</strong>ungsermittlungfüreinenKursPlaner:<br />

Systembeschreibung:<br />

DerKursplanerhatdieAufgabe,einenStundenundRaumplanfürdieKurseamFachbereich<br />

Informatikzuerstellen.Ausgangspunkt<strong>der</strong><br />

PlanungsinddieAngabenüberHörsäle,<br />

belegbareZeitblöcke(Slots)undKurse.<br />

Begriffsverzeichnis:<br />

Kurse:Vorlesungen,Seminare,Übungen<br />

Kursveranstaltung:Kurs+Semester+Teilnehmerzahl<br />

Semester:Winter- undSommersemestermitJahr<br />

Räume<br />

Slot:Wochentag+Anfangs- undEndzeit<br />

Kursplan:legtfest,welcheKursveranstaltungzu<br />

welchemSlot inwelchemRaumstattfindet<br />

Studienabschnitte:GrundstudiumundHauptstudium<br />

Aktoren:<br />

Planer:verteiltKursveranstaltungenaufSlots+Rä ume<br />

Kurs- undRaumverwalter:legtfest,welcheRäume,<br />

welcheSlots,welcheKurseesgibt<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

388


Anwendungsfälle:<br />

KursPlaner:<br />

Kursveranstaltungen<br />

festlegen<br />

Kursveranstaltungen<br />

löschen<br />

Räume<br />

eintragen<br />

Kurse<br />

eintragen<br />

Planer<br />

Kursplan<br />

erstellen<br />

Verwalter<br />

Kursplan<br />

modifizieren<br />

Slots<br />

eintragen<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

389


ExemplarischwerdenzweiAnwendungsfälle<br />

beschrieben:<br />

Titel: Räumeeintragen<br />

Kurzbeschreibung: DerVerwalterkannneue<br />

RäumefürKursveranstaltungenzurVerfügung<br />

stellen.<br />

Vorbedingungen: keine<br />

BeschreibungdesAblaufs:<br />

E1)VerwalterwähltRaumeingabeaus<br />

A1)SystemantwortetmitEingabefenster<br />

E2)VerwaltergibtRaumnummerund<br />

Kapazitätein.<br />

A2)SystemliefertBestätigungo<strong>der</strong>Fehlermeldung.<br />

Auswirkungen: DerRaumbestandwirdverän<strong>der</strong>t.<br />

Anmerkungen: Während<strong>der</strong>Verwaltermit<br />

demSystemarbeitet,darfkeinPlanerdas<br />

Systembenutzen.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

390


Titel: Kursplanmodifizieren<br />

Kurzbeschreibung: DerPlanerkannden<br />

Kursplanmodifizieren,indemerzusätzliche<br />

Kursveranstaltungeneinplanto<strong>der</strong>existierende<br />

Kursveranstaltungenlöscht.<br />

Vorbedingungen: Kursplanmussexistieren<br />

BeschreibungdesAblaufs:<br />

E1)PlanerhatKursveranstaltungengelöscht<br />

o<strong>der</strong>neueeingeplant(siehedort).<br />

A1)SystemhatListe<strong>der</strong>Kursveranstaltungen<br />

modifiziert.<br />

E2)PlanerlöstdieModifikationdesKursplans<br />

aus.<br />

A2)SystementferntgelöschteKursveranstaltungen<br />

ausdemKursplanundvergibtfür<br />

dieneueingeplantenVeranstaltungen<br />

RäumeundSlots(sieheKursplanerstellung).<br />

Dannwird<strong>der</strong>neueKursplanangezeigt.<br />

Auswirkungen: DerKursplanwirdverän<strong>der</strong>t.<br />

Anmerkungen: Während<strong>der</strong>Planermit<br />

demSystemarbeitet,darfkeinVerwaltero<strong>der</strong><br />

an<strong>der</strong>erPlanerdasSystembenutzen.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

391


Domänenmodell<br />

Kurs<br />

Kursnr<br />

Kursveranstaltung<br />

Semester<br />

WSoSS<br />

Jahr<br />

Kurs<br />

maxTeilnehmerzahl<br />

Semester<br />

GSoHS<br />

Raum<br />

Raumnr<br />

Kapazität<br />

Slot<br />

Wochentag<br />

Anfangszeit<br />

Endzeit<br />

EingeplanteKursveranstaltung<br />

Kursveranstaltung<br />

Slot<br />

Raum<br />

Veranstaltungstabelle Kursplan<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

392


Benutzung:<br />

BenutzerhabennurgeringeErfahrungimUmgang<br />

mitRechnern.Systemsolltesehrrobustgegenüber<br />

beliebigerBenutzungsein.<br />

TechnischeRahmenbedingungen:<br />

DasSystemsollteaufPC‘smitunterschiedlichen<br />

Betriebssystemenlaufen(Linux,Windows,MacOS).<br />

Zeit- undKostenrahmen:<br />

- DasSystemsollinsechsMonateninstalliertund<br />

einsatzbereitsein.<br />

- DasbenutzendePersonalsollbisdahingeschult<br />

sein.<br />

Bemerkung:<br />

DasobigeBespieldemonstrierteinetypische<br />

StrukturierungvonAnfor<strong>der</strong>ungsdokumenten.<br />

ZurbesserenAustauschbarkeitzwischenProjekten,<br />

fürstandardisierteUntersuchungenund<br />

zumschnellerenEinarbeitengibtesmittlerweile<br />

auchStrukturierungsstandardsfürsolche<br />

Dokumente.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

393


Beispiel: (Anfor<strong>der</strong>ungsdok.-Standard)<br />

InIEEESoftwareEngineeringStandardsCollection<br />

(1994Edition,IEEEPress,1994)werdenu.A.<br />

StrukturstandardsfürAnfor<strong>der</strong>ungsdokumentation<br />

festgelegt.WirzeigeneineVariante:<br />

Kurzfassung<br />

1.Einleitung<br />

1.1ZweckdesDokuments<br />

1.2Bereich(engl.scope)<br />

1.3Definitionen,Abkürzungen,Akronyme<br />

1.4Referenzen<br />

1.5Überblick<br />

2.Gesamtbeschreibung<br />

2.1Produktperspektive<br />

2.2Produktfunktion<br />

2.3Benutzercharakteristika<br />

2.4AllgemeineEinschränkungen<br />

2.5AnnahmenundAbhängigkeiten<br />

3.SpezifischeAnfor<strong>der</strong>ungen<br />

3.1Anfor<strong>der</strong>ungenandieexternenSystemschnittstellen:<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

394


3.1.1Benutzerschnittstellen<br />

3.1.2Hardwareschnittstellen<br />

3.1.3Softwareschnittstellen<br />

3.1.4Kommunikationsschnittstellen<br />

3.2FunktionaleAnfor<strong>der</strong>ungen<br />

3.3Performanzanfor<strong>der</strong>ungen<br />

3.4Entwurfsrestriktionen<br />

3.5SonstigeAnfor<strong>der</strong>ungen<br />

Anfor<strong>der</strong>ungsspezifikation<br />

DieermitteltenAnfor<strong>der</strong>ungenmüssenin<strong>der</strong><br />

Spezifikationsphaseanalysiertundpräziser<br />

spezifiziertwerden,um<br />

- offeneFragenmitdemAuftraggeberzuklären,<br />

- Wi<strong>der</strong>sprücheundUnklarheitenaufzudecken,<br />

- Entwicklungsaspektemiteinzubeziehen,<br />

- einemöglichstumfassendeSpezifikationfürdie<br />

EntwicklungundValidierung zurVerfügungzu<br />

haben.<br />

DieAnfor<strong>der</strong>ungsspezifikationwirdvonAnalytikern<br />

undSoftware-ArchitektenentwickeltundistTeilde s<br />

Anfor<strong>der</strong>ungsdokuments.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

395


Ergebnisse<strong>der</strong>Anfor<strong>der</strong>ungsspezifikation:<br />

DieAnfor<strong>der</strong>ungsspezifikationsollteeina bstraktes<br />

Modell (konzeptionelleSicht)deszuentwickelnden<br />

Systemsbeschreiben.WichtigeAspekte:<br />

1.Datenmodell:DasDomänenmodellsolltezu<br />

einempräzisenDatenmodellerweitertwerden.<br />

2.Zustandsmodell:DieSpezifikationmussdeutlic h<br />

machen,welcheZuständedasSystemannehmen<br />

kann.<br />

3.Ablaufmodell/dynamischesModell:Diemöglichen<br />

SystemabläufeunddamitverbundenenZustandsübergänge<br />

solltenbeschriebenwerden.<br />

<strong>4.</strong>Bedienschnittstelle:DieSpezifikationsollte eine<br />

klareVorstellungvon<strong>der</strong>Bedienungundden<br />

Oberflächenbestandteilenvermitteln.<br />

5.DokumentationweitererAnalyseergebnisse<br />

DieSpezifikationsolltemitTestfällenangereicher t<br />

werden.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

396


ZurSpezifikationkönnenSprachen<strong>der</strong>Softwaretechnikverwendetwerden,z.B.:<br />

- UML-Diagramme<br />

- ER-Diagramme<br />

- Zustandsübergangsdiagramme<br />

(Transistionssysteme)<br />

- formaleSpezifikationssprachen<br />

etc.<br />

Bemerkung:<br />

• DieAuswahl<strong>der</strong>Spezifikationstechnikund<strong>der</strong><br />

Detaillierungsgrad<strong>der</strong>Spezifikationhängenvom<br />

Projektab.<br />

• DieSpezifikationsolltenurdannEntwurfsaspekte<br />

(wiewirdetwasgemacht,stattwaswirdgemacht)<br />

enthalten,wenndiesvomAuftraggebervorgegeben<br />

o<strong>der</strong>gewünschtwird.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

397


Anfor<strong>der</strong>ungsspezifikationfür KursPlaner:<br />

DaalsEntwurfs- undDokumentationssprachefür<br />

dieProgrammeEnglischbenutztwerdensoll,wird<br />

auchdieSpezifikationinEnglischverfasst.<br />

1.Datenmodell:<br />

DasDatenmodellerhaltenwirausdemDomänenmodelldurchPräzisierung<strong>der</strong>Datentypen;dabei<br />

bezeichne:<br />

SemKind={WS,SS}<br />

CurriculumPart={Grundstudium,Hauptstudium}<br />

Weekday={Mo,Tu,We,Th,Fr,Sa,Su}<br />

Invarianten:<br />

• Bereichsinvarianten:<br />

- WochentagistnichtamWochenende<br />

- Start- und Endezeite:volleStunde+0¼½¾<br />

- Kursnr., Raumnr.,KapazitätundTeilnehmerzahlen<br />

sindechtpositiveZahlen,Jahreszahlen ≥ 2000<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

398


Semester<br />

Course<br />

courseNo:int<br />

wsss:SemKind<br />

year:int<br />

1<br />

CourseTable<br />

1<br />

CourseToSchedule<br />

*<br />

maxNoOfParticipants:int<br />

gshs:CurriculumPart<br />

*<br />

*<br />

ScheduleTable<br />

RoomTable<br />

Room<br />

roomNo:int<br />

capacity:int<br />

1<br />

Slot<br />

day:Weekday<br />

startTime:float<br />

endTime:float<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

399<br />

*<br />

1<br />

SlotTable<br />

ScheduledCourse<br />

*<br />

*<br />

1<br />

CourseSchedule


• Objekt-übergreifendeInvarianten:<br />

- Slotsin<strong>der</strong>Slottabelledürfensichnichtüberschneiden(Analyseergebnis)<br />

- DieTeilnehmeranzahleinerKursveranstaltung<br />

musskleinerseinals<strong>der</strong>zugewieseneRaum<br />

- DerKursplandarfproRaumundSlotmaximal<br />

eineKursveranstaltungvorsehen.<br />

2.Zustandsmodell:<br />

DerSystemzustandumfasstzujedemZeitpunkt:<br />

- eineKurse-,Raum- undSlottabelle,<br />

- eineVeranstaltungstabelle.<br />

DieTabellenkönnenauchleersein.Darüberhinaus<br />

kannereinenaktuellenKursplanumfassen.<br />

DergesamteZustandist persistent zuverwalten.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

400


3.Ablaufmodell:<br />

• DasSystemlässtkeineParallelitätzu.<br />

• ZujedemZeitpunktarbeitetmaximaleinPlanerode r<br />

VerwaltermitdemSystem.<br />

• FürdieAuthentifikation <strong>der</strong>Benutzerundum<br />

Planungs- vonVerwaltungssitzungenunterscheiden<br />

zukönnen,wirdeinLogIn-Mechanismus<br />

vorgeschlagen(Ergebnis<strong>der</strong>Analyse).<br />

• DieVerwaltung<strong>der</strong>Kurse-,Raum- und Slottabelle<br />

sollanalogablaufen,wobeidemVerwalterjeweils<br />

dieaktuellenDatenangezeigtwerden.<br />

• ZujedemZeitpunktarbeitetmaximaleinPlanerode r<br />

VerwaltermitdemSystem.<br />

OperationenfürZustandsübergänge:<br />

- modifyCTab,modifyRTab,modifySTab:modifizieren<br />

dieKurs-,Raum- undSlottabelle<br />

- updateCSchedule:modifiziertKursplansoferneiner<br />

einerexistiert;benutztdafürdenaktuellen<br />

KursplanunddieVeranstaltungstabelle<br />

- computeCSchedule:erstelltneuenKursplan;benutzt<br />

dafürdieVeranstaltungstabelle<br />

- saveState:sichertdenSystemzustand<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

401


AblaufmodellierungmitUMLStatechart Diagramm:<br />

course<br />

room<br />

loginRequest [admin]<br />

loginRequest<br />

[failed]<br />

LogIn<br />

loginRequest<br />

[planning]<br />

update<br />

[CourseSchedule<br />

isdefined]/<br />

updateCSchedule<br />

slot<br />

AddCourse<br />

AddRoom<br />

AddSlot<br />

Admin<br />

loginRequest<br />

[failed 3x|inuse]<br />

Planning<br />

schedule<br />

ScheduleCourse<br />

Dialog<br />

commit /<br />

modifyCTab<br />

exit /saveState<br />

exit /saveState<br />

new/<br />

computeCSchedule<br />

commit/<br />

updateScheduleTable<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

402


Bemerkung:<br />

• DieAblaufmodellierungistimWesentlicheneine<br />

Präzisierung<strong>der</strong>Anwendungsfälle.<br />

• UnterschiedlicheDiagrammartenundSpezifikationstechnikeneignensichzurAblaufmodellierung.<br />

Zustandsübergangsdiagramme eignensich<br />

beson<strong>der</strong>szurModellierungsequentielleAbläufe<br />

o<strong>der</strong>nebenläufigerAbläufe,diekaummiteinan<strong>der</strong><br />

kommunizieren.<br />

<strong>4.</strong>Bedienoberfläche:<br />

FolgendeFensterdienen<strong>der</strong>Interaktion:<br />

- Startfenster:AuswahlzwischenPlaner/Verwalter<br />

Einloggen<br />

Planersitzung:<br />

- PlanungsfensterzeigtdenaktuellenKursplan<br />

- FensterzurModifikation<strong>der</strong>Veranstaltungstabelle<br />

Verwaltersitzung:<br />

- FensterzurEingabevonKursen,Räumenu.Slots<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

403


5.DokumentationweitererAnalyseergebnisse<br />

BeimEntwickeln<strong>der</strong>Spezifikationwurdefolgenden<br />

Aspektediskutiert:<br />

- DiebeidenAnwendungsfällefestlegenundlöschen<br />

sollenzusammengelegtwerdenundwerdenals<br />

Aktualisieren<strong>der</strong>Veranstaltungstabellebetrachtet.<br />

- DieAnwendungsfälleKursplanerstellenund<br />

Kursplanmodifizierensollengetrenntbleiben<br />

(Alternative:FühreKursplanlöschenein).<br />

Anfor<strong>der</strong>ungsvalidation<br />

TätigkeitenzurValidierung solltendieAnfor<strong>der</strong>ungs -<br />

ermittlungund–spezifikationbegleiten,konzentrie ren<br />

sichabernaturgemäßamEnde<strong>der</strong>Analyse.<br />

Aufgaben:<br />

- EntsprechendieAnfor<strong>der</strong>ungendenVorstellungen<br />

desAuftraggebers?<br />

- SinddieAnfor<strong>der</strong>ungeninsichstimmigundklar<br />

spezifiziert?<br />

- IstdieAnfor<strong>der</strong>ungsdokumentationausreichend<br />

fürdieSystementwicklung?<br />

- IstdieAnfor<strong>der</strong>ungsdokumentationausreichend<br />

zurValidationundzumTestendesSystems?<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

404


Ergebnis<strong>der</strong>Anfor<strong>der</strong>ungsvalidationisteine<br />

verbesserteAnfor<strong>der</strong>ungsdokumentation.<br />

TechnikenzurValidation:<br />

- KonstruktioneinesPrototyps,insbeson<strong>der</strong>e<br />

zurIllustration<strong>der</strong>Interaktionund<strong>der</strong>Bedienoberfläche<br />

- Inspektion<strong>der</strong>Anfor<strong>der</strong>ungsdokumente<br />

- DurchspielenvonTestfällen<br />

- AbleitungvonEigenschaftenausden<br />

Anfor<strong>der</strong>ungen<br />

Bemerkung:<br />

Anfor<strong>der</strong>ungsvalidation wirdinihrerBedeutung<br />

häufigunterschätzt,obwohlgilt:<br />

JespäterimSWE-ProzesseinFehler<br />

erkanntwird,destoteureristes,ihn<br />

zubeheben.<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

405


Anfor<strong>der</strong>ungsvalidation für KursPlaner:<br />

- EntwerfedieDarstellungfürdieFensterund<br />

diskutieremöglicheAbläufe.<br />

- BetrachteTestdatenfürKurse,etc.undberechne<br />

KursplanvonHand.Ergebnismöglicherweise:<br />

¥ KursveranstaltungenmüssenmitPrioritäten<br />

versehenwerdenkönnen.<br />

AbschließendeBemerkungenzurAnalyse<br />

DieAnalysehatdieAufgabe,<br />

- dieAnfor<strong>der</strong>ungenanszuentwickelndeSystem<br />

möglichstvollständigundklarfestzustellenund<br />

zuanalysierenunddabei<br />

- Entwurfsentscheidungenoffenzulassen,wodies<br />

möglichist:<br />

¥ keineFestlegung<strong>der</strong>Architektur(Module,<br />

Schnittstellen,Verteilungsaspekte)<br />

¥ keineTechnikentscheidungen(Plattform,<br />

Implementierungssprachen,Werkzeuge)<br />

05.07.2004 ©A.Poetzsch-Heffter,TUKaiserslautern<br />

406

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!