Frage zum Sequenzdiagramm

Sirdorian

Newbie
Registriert
Apr. 2013
Beiträge
5
hallo
ich muss bis morgen zu meinem Programm ein Anwendungsfalldiagramm und ein Sequenzdiagramm erstellen.
In dem Programm kann man ein rechteck erstellen mit farbe, länge und breite, danach kann man sich die farbe und den flächeninhalt wieder ausgeben lassen. Die farbe und die funktion get.Farbe wird in einer extra klasse form gespeichert, die länge, breite und flächenberechnung in der klasse rechteck.
Der code ist folgender:
Rechteck.h:
class Rechteck : public Form
{
public:
Rechteck(char *a, float l, float b);
~Rechteck(void);
float berechneFlaecheninhalt() ;

private:
float breite;
float laenge;
};

Form.h
class Form
{
public:
Form(char *a);
~Form(void);

void getFarbe();
private:
char farbe[15];
};

Erzeugt wir das rechteck in der main so:
Rechteck blau_Rechteck("BLAU",5,10);
und die farbabfrage sieht wie folgt aus
blau_Rechteck.getFarbe();

Jetzt meine frage.
Da ich den konstruktor von Form ja an Rechteck vererbe wird beim erzeugen von Rechteck dieser ja auch durchlaufen, und die anfrage blau_Rechteck.getFarbe(); wird ja auch an form geschickt. Wie kann ich das in einem Sequenzdiagramm korekt darstellen. Im moment hab ich nur die hauptklasse die halt Rechteck erzeugt, aber ich brauche ja auch noch irgentwie die form, wird die dann zuerst erzeugt oder parrallel? oder wie läuft das ab, vielen dank für eure hilfe.
 
Wäre mir ehrlich gesagt neu, wenn In einem Sequenzdiagramm eine Klasse zerteilt in ihre Elternklassen wird...
Bei Komposition (also Klasse nutzt andere Klassen, aber eben nicht durch Vererbung) wäre das was anderes...
 
Also wenn ich dich richtig verstehe, bedeutet das, dass ich nur 2 elemente mit lebensbalken in dem sequenzdiagramm hab, also das hauptprogramm und das rechteck oder?
 
Zugegeben die Code-Unterstützung in dem Forum ist etwas mager, aber den Code so unformatiert und kompress reinzuhauen hilft anderen nicht beim Lesen!

Also parallel geschieht das definitiv nicht.
Falls du im Rechteck Konstruktor explizit den Konstruktor von Form aufrufst, dann wäre es falsch diesen Aufruf wegzulassen.
Ansonsten würde ich diesen weglassen. Wichtig ist, dass du die Objekte auch erzeugst und nicht nur einen Aufruf darstellst (direkter Pfeil auf den Kopf der Lifeline, s.u.)

Code:
Classer:x       
      |------------->Rechteck:blauRechteck  
      |                         |--------------------> Form:
      |                         |                        |
 
ja ich rufe den konstruktor von form expliziet auf, in der cpp ist das wie folgt

Rechteck::Rechteck(char *a,floatl, float b):Form(a)
{...
}
Also muss ich das Form mit in das sequenzdiagramm aufnehmen?
Sry das ich so oft frag, aber diese aufgabe zählt ein drittel meiner note in dem fach
Und wenn es in der Aufgabenstellung heist, einen Use Case darzustellen.
Heist das dann im sequenzdiagramm erst erzeugen, dann farbe ausgeben dann flächeninhalt berechnen, oder nur eins von den drei?
 
Bei explizitem Aufruf ja!

Wenn du einen Use-Case darstellen sollst, musst du ein Use-Case Diagramm zeichnen und kein Sequenzdiagramm!

Ich glaube du solltest dich mal mit den Begriffen genauer beschäftigen.
 
@NuminousDestiny: Das von dir dargestellte Sequenzdiagramm würde ich für eine Form von Delegation halten ;-)

Was wäre, wenn in blauRechteck eine Methode aus der abgeleiteten Klasse aufgerufen wird? Also Sequenzdiagramm und Vererbung macht einfach gar keinen Sinn.
Bei Sequenzdiagramme geht es um konkrete Objekt-Instanzen. Und das Objekt ist das selbe - egal welche Klasse die aufgerufene Methode konkret implementiert...
 
Doch, ich soll schon ein Sequenzdiagramm zeichnen, die aufgabenstellung lautet:
Zeichnen sie für ein kleines programm (ca 3 klassen) ein klassen, ein anwendungsfall und ein sequenzdiagram für einen use case der auch im anwenungsfall diagramm dran kommt.
Also das hauptprogramm ruft die methode get.farbe von rechteck auf, welches die allerding an form weiterleitet da rechteck diese methode nicht hat. Brauch ich dann die form mit im sequenzdiagramm
 
Und dennoch bröselt man Objekte in einem Sequenzdiagramm nicht in die Teilklassen auf...
Das Sequenzdiagramm zeigt Objektinstanzen, und das sind nun mal Einheiten.
 
Zurück
Oben