Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
ZurEntwicklungeinerSoftwareisteinestrukturiertePlanungnotwendig.ErstaufderGrundlageeinesModells(z.B.geeigneteKlassendiagramme)kanneineImplementierung(Programmierung)sinnvollerfolgen.WährendderImplementierungsphasekanndasModellauchangepasstwerden.
4.ModellierenundDiagrammarten
Informatik10– 4.ModellierenundDiagrammarten 1
Informatik10– 4.ModellierenundDiagrammarten 5
Klassenkarte
Inf-10 NTG O O M / O O P – J A V A - G r u n d l a g e n O S t R M i c h a e l G a n s h o r n 1
Wiederholung
In der heutigen Betrachtungsweise der Informatik besteht die Welt aus Objekten. Jedem Objekt liegt ein Bauplan zugrunde, nach dem es erstellt wurde.
• Diesen Bauplan nennt man Klasse. Eine Klasse legt fest, welche Attribute (Farbe, Breite, Höhe, ...) und welche Methoden (speichern(), setzeFarbe(...) ...) solche Objekte haben sollen.
Der logische Aufbau einer Klasse wird in der Regel durcheine sog. Klassen-Karte veranschaulicht. Eine Klassen-Karte ist ein Rechteck, das von oben nach unten aus dreiBereichen besteht:
Oben: Name der Klasse
Mitte: Attribute und Daten-Typen
Unten: Methoden
• Hat man nun mehrere Objekte einer Klasse erzeugt, so können sich diese durch ihre Attribut-Werte (Farbe: ''rot'', Radius: 3cm, …) unterscheiden.
Objekte werden durch eine Objekt-Karteveranschaulicht. Objekt-Karten haben im Vergleich zu Klassen-Karten abgerundete Ecken. Jede Objekt-Karte besteht aus zwei Bereichen:
Oben: Name und Klasse des Objekts
Unten: Attribute und deren Werte
Objekte spricht man immer in Punktnotation an:susi.laecheln()
susi.schlafen(7 Stdunden)
allgemein: Objektname.Methodenaufruf
• Verändernde Methoden bringen das Objekt in einen anderen Zustand:
setzeSchriftgroesse(12)
• Sondierende Methoden geben eine Antwort auf eine Frage
nenneDeinenNamen()
• Übergabe-Parameter kommen in die runden Klammern:
schlafen(7 Stunden)
• Methoden ohne Übergabe-Parameter erkennt man an den leeren Klammern:
laecheln()
M E N S C H
geburtsdatum
name
groesse
schlaeft …
laecheln()
schlafen( dauer )
trinken( was , menge )
...
s u s i : M E N S C H
geburtsdatum = 27.04.1996name = '' Susanne ''groesse = 1.63schlaeft = Nein...
Objektkartetina :MENSCH
geburtsdatum =29.02.1984name =“Tina“groesse =1.65schlaeft =nein...
Hinweis:EineObjektkarteistauchohneabgerundeteEckenmöglich.IndiesemFallmüssenderObjektnameunddieKlassedesObjektsunterstrichenwerden.
Informatik10– 4.ModellierenundDiagrammarten
ÖffnedasBlueJ-Projekt„Ampel_Vorlage“undöffnedieKlasseAMPEL.
a)ErzeugeeinObjektvonAMPELundmachdichmithilfedesObjektinspektorsunddemQuelltextüberdieFunktionsweisekundig.
b)BeschreibeinWorten,welcheObjektebeimAusführenderMethodeausschalten()beteiligtsindundwiesiemiteinanderkommunizieren.
7
Übung1– Ampel
Informatik10– 4.ModellierenundDiagrammarten
c)ImplementierediefehlendenMethoden,sodasseineeinfacheSimulationeinerAmpelschaltungentsteht.Überlege,wiedudieFunktionsweisederMethodenbeschreibenkönntest
8
Übung1– Ampel
Informatik10– 4.ModellierenundDiagrammarten 9
BeschreibungvonMethoden- Sequenzdiagramm
EinSequenzdiagrammveranschaulichtdiezeitlicheAbfolgederKommunikationzwischenObjekten.
Informatik10– 4.ModellierenundDiagrammarten 11
SequenzdiagrammBezeichnungen
Aktivitätsbalken
Botschaft Rückmeldung
beteiligteObjekte
Informatik10– 4.ModellierenundDiagrammarten 12
ZeichnenvonSequenzdiagrammen
online
www.websequencediagrams.com
Informatik10– 4.ModellierenundDiagrammarten
ErstelleeinSequenzdiagrammfürdieMethoderotSetzen().
13
Übung2– Ampel
Informatik10– 4.ModellierenundDiagrammarten
DieKlasseSpielautomaterzeugt(ähnlichwiedieKlasseAmpel)dreiLampen
lampe1(links),lampe2(Mitte)undlampe3(rechts)derKlasseLAMPE.
DiePositiondesSpielautomatenistfestgelegtdurchdiePositionvonlampe1.
DiePositioneinereinzelnenLampeistfestgelegtdurchdieKoordinatenderlinken
oberenEcke.InderZeichnungistalsodiePositiongleich(0,0).
(x-Achsenachrechts,y-Achsenachunten)
14
Übung3– Spielautomat
public class Spielautomat {int positionX, positionY;LAMPE lampe1, lampe2, lampe3;
public Spielautomat(){ lampe1= new LAMPE();lampe2 = new LAMPE();lampe3 = new LAMPE();
farbmusterSetzen("rot","blau","gelb");neuePosition(0,0);
}
public void farbmusterSetzen(String farbe1, String farbe2, String farbe3){
lampe1.FarbeSetzen(farbe1);lampe2.FarbeSetzen(farbe2);lampe3.FarbeSetzen(farbe3);
}
public void neuePosition( int xNeu, int yNeu){positionX = xNeu;positionY = yNeu;lampe1.PositionSetzen(positionX,positionY);lampe2.PositionSetzen(positionX+1,positionY);lampe3.PositionSetzen(positionX+2,positionY);
} }
Informatik10– 4.ModellierenundDiagrammarten 15
Übung3– Spielautomat
public class Spielautomat {int positionX, positionY;LAMPE lampe1, lampe2, lampe3;
public Spielautomat(){ lampe1= new LAMPE();lampe2 = new LAMPE();lampe3 = new LAMPE();
farbmusterSetzen("rot","blau","gelb");neuePosition(0,0);
}
public void farbmusterSetzen(String farbe1, String farbe2, String farbe3){
lampe1.FarbeSetzen(farbe1);lampe2.FarbeSetzen(farbe2);lampe3.FarbeSetzen(farbe3);
}
public void neuePosition( int xNeu, int yNeu){positionX = xNeu;positionY = yNeu;lampe1.PositionSetzen(positionX,positionY);lampe2.PositionSetzen(positionX+1,positionY);lampe3.PositionSetzen(positionX+2,positionY);
} }
a)ZeichneeinSequenzdiagrammvons1.neuePosition(2,1).(s1isteinObjektderKlasseSpielautomat)
Informatik10– 4.ModellierenundDiagrammarten 16
Übung3– Spielautomat
b)DieKlasseSpielhalleenthältzweiReferenzattributespA1undspA2derKlasseSpielautomat.ImKonstruktorderKlassewerdenzweiSpielautomaten(Farbmusterrot-blau-gelb)wieinderZeichnungerzeugt.IneinerMethodewerdendieLampenallerSpielautomatenaufdieFarbeschwarzgesetzt.SchreibedenQuelltextderKlasseSpielhalle.
Informatik10– 4.ModellierenundDiagrammarten 17
BeschreibungvonMethoden- Zustandsdiagramm
EinZustandsdiagrammbeschreibtdieÜbergängevonZuständenwährenddesAblaufseinesProgramms.DabeikönnenauchmehrereMethodenbeteiligtsein.EinZustand(z.B.Ampelphase)kanndurchdenWerteinesAttributsbeschriebenwerden.
Informatik10– 4.ModellierenundDiagrammarten
DieMethodeausschalten()solldieAmpelnurausderAmpelphase„gelb“indenZustand„aus“überführen.NurausdemZustand„aus“solldieMethodeeinschalten()dieAmpelwiederindenZustand„ein“überführen.
ErgänzedasZustandsdiagrammunddieImplementierung.
20
Übung4– AmpelZustandsdiagramm
Informatik10– 4.ModellierenundDiagrammarten 21
BeschreibungvonMethoden- Zustandsdiagramm
BeidenZustandsübergängenkönnenzusätzlicheBedingungenundausgelösteAktionenbeteiligtsein:
Informatik10– 4.ModellierenundDiagrammarten 22
BeschreibungvonMethoden- Zustandsdiagramm
Beispiel
EineinfacherKaffeeautomatsollimZustandBereitnachDruckenderTaste"Start"eineTasseKaffeeausgeben.FurdenFall,dasskeinKaffeeeingefulltist,erscheinteineFehlermeldung,derAutomatwartetaufdieEingabevonKaffeeundbefindetsichimZustandFehler.IstindiesemZustandderKaffeeeingefüllt,wirddieTasseKaffeeausgegebenundderZustandaufBereitgewechselt.
Informatik10– 4.ModellierenundDiagrammarten 23
BeschreibungvonMethoden- Zustandsdiagramm
Beispiel
EineinfacherKaffeeautomatsollimZustandBereitnachDruckenderTaste"Start"eineTasseKaffeeausgeben.FurdenFall,dasskeinKaffeeeingefulltist,erscheinteineFehlermeldung,derAutomatwartetaufdieEingabevonKaffeeundbefindetsichimZustandFehler.IstindiesemZustandderKaffeeeingefüllt,wirddieTasseKaffeeausgegebenundderZustandaufBereitgewechselt.
Informatik10– 4.ModellierenundDiagrammarten 24
Übung5 – Zustandsdiagramm,Stoppuhr
ZumModelliereneinerStoppuhrverwendetmaneinZustandsdiagrammmitdenZuständen„Bereit“,„Zeitmessungläuft“und„Zeitangehalten“.DrücktmanimStartzustand„Bereit“dieTaste„StartStopp“,startetdieZeitmessungunddieAnzeigewirdaktualisiert.DrücktmanimZustand„Zeitmessungläuft“dieTaste„StartStopp“,wirddieZeitmessungangehaltenunddieAnzeigeaktualisiert.DrücktmandieTaste„StartStopp“erneut,läuftdieZeitmessungweiterunddieAnzeigewirdaktualisiert.DieTaste„Reset“löstaufderUhrdieAnzeige„reset“ausundsetztsieindenStartzustand.WährendderZeitmessungkannmanauchdieTaste„Zwischenzeit“betätigen.DiesaktualisiertdieAnzeige.
ZeichnedasZustandsdiagramm.
Informatik10– 4.ModellierenundDiagrammarten 25
Übung6 – Zustandsdiagramm,SpülmaschineDieSpülmaschineistzuBeginnimZustand"StandBy".
NachWähleneinesProgrammsistsieimZustand"Programmgewählt".
DurchDrückenderTasteStartwechseltsienurdannindenZustand"InBetrieb",wenndie
Türgeschlossenist.IndiesemFallwirdderWasserzulaufgeöffnetunddasProgramm
gestartet.
ÖffnetmanwährenddeslaufendenProgrammsdieTür,wirdderWasserzulaufgestoppt
unddasProgrammangehalten.DieMaschineistdannimZustand"Pause" unddurch
DrückenderTaste"Abbrechen"gelangtmanindenZustand"StandBy".
DasAbbrechenistauchvomZustand"Programmgewählt"möglich.
SchließtmanimZustand"Pause"wiederdieTür,wirddasProgrammfortgesetzt.
ÖffnetmandieTürnachBeendendesProgramms,wechseltdieMaschineindenZustand
"StandBy".
ZeichneeinZustandsdiagramm.
Informatik10– 4.ModellierenundDiagrammarten 26
Übung7 – Zustandsdiagramm,Kühlschrank
EineinfacherKuhlschrankbesitzteinenEin-Aus-Schalter,derjederzeitbetatigtwerden
kann.ImeingeschaltetenZustandkanneraufdieKuhlstufen1,2oder3eingestellt
werden.DafurgibtesdieTasten▲zumHochschaltenund▼zumHerunterschaltender
Kuhlstufe.NachdemEinschaltenbefindetsichderKuhlschrankimmeraufKuhlstufe2.
a)ModellieredenbeschriebenenKühlschrankmithilfeeinesZustandsdiagramms.
b)ErstelleeineZustandsübergangstabelle:
Zustand\ auslösendeAktion einschalten hochschalten herunterschalten
aus
1
2
3
Informatik10– 4.ModellierenundDiagrammarten 27
Übung7 – Zustandsdiagramm,Kühlschrank(*)
c)
ImplementieredenKuhlschrankdurchDefinitioneinergeeignetenKlasse,wobeidie
moglichenZustandedesKuhlschranksdurchdieAttributestufeundeingeschaltetunddie
auslosendenAktionendurchdieMethodenhochschalten(),herunterschalten()und
einausschalten()realisiertwerdensollen.
TestedeineImplementierung,indemdudieZustandsubergangenachunterschiedlichen
MethodenaufrufenmitdemZustandsdiagrammvergleichst.DefinieredazueineMethode
zustandAusgeben(),diedenZustanddesKuhlschranksaufdemBildschirmausgibt.