Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-09-2007, 17:55   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2007
Beiträge: 17
Klassendiagramm erstellen

Hallo,

ich muss Klassen, die in ActonScript programmiert wurden mit UML darstellen. Habe aber ein paar Probleme.

Ich weiss, dass extends durch eine Generalisierung/Spezialisierung in UML dargestellt wird.
Wie wird import und die Referenz von Klasse B auf Klasse A im Diagramm umgesetzt? Und wie sieht es bei der Verbindung zwischen der Klasse A und der Klasse MovieClipLoader aus?
Gibt es hier Aggregationen oder Kompositionen oder nur normale Assoziationen? Bin etwas verwirrt!

Code:
import b.B;
import c.C;


class a.A extends MovieClip {

var xy: Object;
xy = new B(this); //Klasse B hat Referenz auf Klasse A

var loader: MovieClipLoader;
loader = new MovieClipLoader();		

}
Danke für eure Antworten im Voraus.

Gruß saro
saro81 ist offline   Mit Zitat antworten
Alt 06-09-2007, 18:49   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.370
Ich hab mal den Code etwas ausfgeräumt und ein Beipiel UML fertig gemacht.
Code:
    import b.BClass; import c.Class; class a.AClass extends MovieClip {     private var b:B;     private var loader: MovieClipLoader;     public function AClass() {         this.b = new B(this); //Klasse B hat Referenz auf Klasse A         this.loader = new MovieClipLoader();            } }
So könnte man das machen.
Angehängte Grafiken
Dateityp: png Diagramm.png (6,9 KB, 168x aufgerufen)

Geändert von Omega Psi (06-09-2007 um 19:48 Uhr)
Omega Psi ist offline   Mit Zitat antworten
Alt 06-09-2007, 20:27   #3 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Darf ich kurz dazwischen schießen? Ja, gut! Tach omega. Gibt es eigentlich ne möglichkeit/ein tool, welches mir aus meinen package ein UML-Diagramm erstellt?

edit: hiermit (Enterprise Architect 6.0 / Sparx Systems) funzt es, aber das wolle ich mir deswegen jetzt nicht ans bein binden
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (06-09-2007 um 20:34 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 06-09-2007, 20:39   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.370
Mahlzeit,

ich kenne das Feature noch von Visual Prardigm. Aber auch Enterprise Edition.

www.visual-paradigm.com
Omega Psi ist offline   Mit Zitat antworten
Alt 06-09-2007, 20:50   #5 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
toll, danke! ich zupfe mir gerade die trail von sparx, mal gucken ob die as3 schon unterstützen. dein link is danach fällig
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 06-09-2007, 21:18   #6 (permalink)
\x3a\x6f\x29
 
Benutzerbild von [je]
 
Registriert seit: Apr 2004
Ort: paris
Beiträge: 806
Gibt es eigentlich ein UML Dateiformat wo man etwas zu lesen kann? Ich habe noch ein Programm mit dem ich aus AS3 eine XML Struktur bauen kann. Das kann man dann wiederum zu allem möglichen zusammen setzen ...

Passt das? http://www.omg.org/cgi-bin/doc?ad/99-10-05

Und noch ein Link für dich: http://www.dgrigg.com/post.cfm/09/14...ode-and-ASDocs
__________________
joa ebert
http://blog.joa-ebert.com/ - http://www.joa-ebert.com/

Geändert von [je] (06-09-2007 um 21:26 Uhr)
[je] ist offline   Mit Zitat antworten
Alt 06-09-2007, 21:27   #7 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.370
Meinst du sowas wie XMI?
Omega Psi ist offline   Mit Zitat antworten
Alt 06-09-2007, 21:32   #8 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Also sparx ist mir to much. Ich vermute, das VP das gleiche resultat bringt. Laßt gut sein, das bringt so zwischen tür und angel nichts, und die zeit mich in die materie/die programme einzuarbeiten fehlt jetzt einfach.

Joa, mit deinem link kann ich nichts anfangen, sorry.
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.
shorty ist offline   Mit Zitat antworten
Alt 06-09-2007, 21:33   #9 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
ich revidiere, joa, der 2. link sieht gut aus!

Wenn du jetzt noch einen link für "in die andere richting" AS -> UML hast bin ich glücklich


edit: def. ende. hat sich erledigt, no time for this feature - trotzdem danke
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (06-09-2007 um 21:48 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 07-09-2007, 10:06   #10 (permalink)
Neuer User
 
Registriert seit: Jul 2007
Beiträge: 17
Danke für die schnelle Antwort. Ein paar Fragen habe ich allerdings noch.

1. Wieso wird nur die Klasse CClass durch import mit der AClass verbunden und nicht auch die BClass?

2. Wieso sind BClass und CClass in Paketen dargestellt?

3. Wieso werden Kompositionen und nicht Aggregationen verwendet?

4. Wieso gibt es 2 Kompositionen zwischen BClass und AClass? Nur BClass hat eine Referenz auf AClass??

HILFE Bin etwas unter Zeitdruck.

Gruß saro
saro81 ist offline   Mit Zitat antworten
Alt 07-09-2007, 10:24   #11 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.370
  1. Weil AClass eine Instanz von BClass als Member enthält.
  2. Weil die beiden in packages arrengiert sind.
  3. Weil es genau ein Member ist, der als Member zur Verfügung steht.
  4. Weil AClass eine Instanz von BClass als Member besitzt. BClass verlangt aber auch im Konstructur eine Instanz von AClass. Das interpretiere ich so, dass BClass eine Instanz von AClass als Member hat.
Omega Psi ist offline   Mit Zitat antworten
Alt 22-09-2007, 16:31   #12 (permalink)
l2l|c4o
 
Benutzerbild von Sir Freako
 
Registriert seit: Nov 2005
Ort: düstere Grotte im Süden
Beiträge: 1.265
Nutzt keine von euch den gmodeler , den nutze ich immer
das ist ganz praktisch

http://www.gskinner.com/gmodeler/app/run.html

PHP-Code:
<DIAGRAM generator="gModeler.com" appVersion="0.2" type="classmap" name="Creational Patterns / Prototype" author="xx " dateCreated="2006/9/27" dateModified="2007/9/22"><ELEMENTS><ELEMENT hiliteColor="FF0000" height="156" width="221" y="-305" x="-580" name="Tool" type="class"><groups><GROUP name="Properties"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP><GROUP name="Methods"><ITEM name="Manipulate" datatype="( )" hiliteColor="FFFFFF" /></GROUP><GROUP name="Events"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP></groups></ELEMENT><ELEMENT hiliteColor="FF0000" height="186" width="171" y="-92" x="-667" name="RotateTool" type="class"><groups><GROUP name="Properties"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP><GROUP name="Methods"><ITEM name="Manipulate" datatype="( )" hiliteColor="FFFFFF" /></GROUP><GROUP name="Events"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP></groups></ELEMENT><ELEMENT hiliteColor="FF0000" height="184" width="153.95" y="-92" x="-473" name="GraphicTool" type="class"><groups><GROUP name="Properties"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP><GROUP name="Methods"><ITEM name="Manipulate" datatype="( )" hiliteColor="FFFFFF" /></GROUP><GROUP name="Events"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP></groups></ELEMENT><ELEMENT hiliteColor="FF9900" height="104" width="242.95" y="121" x="-478" name="GT/Manipulate" type="note">p=prototype -&gt;Clone()
while(
user drags Mouse){
p-&gt;Draw(new position)
}
insert p into drawing</ELEMENT><ELEMENT hiliteColor="FF0000" height="174" width="173" y="-331" x="-302" name="Graphic" type="class"><groups><GROUP name="Properties"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP><GROUP name="Methods"><ITEM name="Clone" datatype="( )" hiliteColor="FFFFFF" /><ITEM name="Draw" datatype="(Position)" hiliteColor="FFFFFF" /></GROUP><GROUP name="Events"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP></groups></ELEMENT><ELEMENT hiliteColor="FF0000" height="146.95" width="175" y="-135" x="-157" name="Staff" type="class"><groups><GROUP name="Properties"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP><GROUP name="Methods"><ITEM name="Clone" datatype="( )" hiliteColor="FFFFFF" /><ITEM name="Draw" datatype="(Position)" hiliteColor="FFFFFF" /></GROUP><GROUP name="Events"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP></groups></ELEMENT><ELEMENT hiliteColor="FF0000" height="158" width="191" y="91" x="-215" name="WholeNote" type="class"><groups><GROUP name="Properties"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP><GROUP name="Methods"><ITEM name="Clone" datatype="()" hiliteColor="FFFFFF" /><ITEM name="Draw" datatype="(POsition)" hiliteColor="FFFFFF" /></GROUP><GROUP name="Events"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP></groups></ELEMENT><ELEMENT hiliteColor="FF0000" height="124" width="201" y="122" x="-12" name="HalfNote" type="class"><groups><GROUP name="Properties"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP><GROUP name="Methods"><ITEM name="Clone" datatype="()" hiliteColor="FFFFFF" /><ITEM name="Draw" datatype="(Position)" hiliteColor="FFFFFF" /></GROUP><GROUP name="Events"><ITEM name="" datatype="" hiliteColor="FFFFFF" /></GROUP></groups></ELEMENT><ELEMENT hiliteColor="000000" height="104.95" width="161" y="-102" x="83" name="MusicalNote" type="package" /><ELEMENT hiliteColor="FF9900" height="122" width="250" y="298" x="-281" name="Untitled Note" type="note">return copy of self </ELEMENT><ELEMENT hiliteColor="FF9900" height="121" width="223" y="298" x="-14" name="Untitled Note" type="note">return copy of self</ELEMENT></ELEMENTS><LINKS><LINK endSide="r" startSide="r" label="Composition (has)" type="composition" descriptor="*start* has *end*" endPosition="59" startPosition="50" hiliteColor="000000" endHead="none" startHead="diamond_filled" end="4" start="2" /><LINK endSide="t" startSide="t" label="Generic Association" type="generic" descriptor="*start* is associated with *end*" endPosition="594" startPosition="594" hiliteColor="000000" endHead="none" startHead="none" end="3" start="3" /><LINK endSide="t" startSide="r" label="Generic Association" type="generic" descriptor="*start* is associated with *end*" endPosition="970" startPosition="72" hiliteColor="000000" endHead="none" startHead="none" end="1" start="0" /><LINK endSide="r" startSide="r" label="Generic Association" type="generic" descriptor="*start* is associated with *end*" endPosition="61" startPosition="46" hiliteColor="000000" endHead="none" startHead="none" end="2" start="0" /><LINK endSide="t" startSide="r" label="Composition (has)" type="composition" descriptor="*start* has *end*" endPosition="914" startPosition="451" hiliteColor="000000" endHead="none" startHead="diamond_filled" end="3" start="2" /><LINK endSide="r" startSide="t" label="Composition (has)" type="composition" descriptor="*start* has *end*" endPosition="81" startPosition="617" hiliteColor="000000" endHead="none" startHead="diamond_filled" end="6" start="8" /><LINK endSide="t" startSide="r" label="Composition (has)" type="composition" descriptor="*start* has *end*" endPosition="598" startPosition="77" hiliteColor="000000" endHead="none" startHead="diamond_filled" end="8" start="5" /><LINK endSide="r" startSide="r" label="Composition (has)" type="composition" descriptor="*start* has *end*" endPosition="70" startPosition="71" hiliteColor="000000" endHead="none" startHead="diamond_filled" end="5" start="4" /><LINK endSide="r" startSide="t" label="Composition (has)" type="composition" descriptor="*start* has *end*" endPosition="116" startPosition="591" hiliteColor="000000" endHead="none" startHead="diamond_filled" end="7" start="8" /><LINK endSide="b" startSide="t" label="Composition (has)" type="composition" descriptor="*start* has *end*" endPosition="745" startPosition="930" hiliteColor="000000" endHead="none" startHead="diamond_filled" end="6" start="9" /><LINK endSide="b" startSide="t" label="Composition (has)" type="composition" descriptor="*start* has *end*" endPosition="616" startPosition="918" hiliteColor="000000" endHead="none" startHead="diamond_filled" end="7" start="10" /></LINKS></DIAGRAM

Geändert von Sir Freako (22-09-2007 um 16:42 Uhr)
Sir Freako ist offline   Mit Zitat antworten
Alt 22-09-2007, 17:09   #13 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.370
Ich benutze momentan Netbeans, die Suite von Visual Paradigm oder Argo Uml.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele