Best Practice Workshop für Enterprise Architect
10. März 2010 Roland
Puh, jetzt ist es geschafft!
Die letzten zwei Tage war ich auf dem Best Practice Workshop von Sparx Systems in München.
Da wurde geballte Information an die Teilnehmer abgegeben. Ich tippe mal, dass die Teilnehmer, die heute noch heimfahren müssen, ziemlich vorsichtig sein müssen.
Ich zumindest bin jetzt erst einmal platt.
Vor allem möchte ich mich bei den Moderatoren bedanken!
Sie haben unglaublich viele Eigenschaften, Vorgehensweisen und Tipps und Tricks rund um den Enterprise Architect gegeben.
Was ich weiß ist, dass ich nichts weiß ![]()
Der Enterprise Architect ist ein unglaublich komplexes Gebilde.
Bisher verwendete ich ihn rudimentär um meine Klassen zu modellieren, ein paar Use Case Diagramme zu pinseln oder mal festzuhalten wie wir was deployen müssen.
Aber das ist nur ein kleines Spektrum was man damit machen kann.
Falls ihr mit dem Enterprise Architect arbeitet, kann ich nur empfehlen einen dieser Workshops mal zu besuchen. Danach seid ihr mit neuen Ideen und Themengebieten nur so überhäuft.
Ich werde das jetzt erst einmal ein bisschen ordnen und dann werde ich beginnen das System genauer zu erlernen. Meinem Traum, nur noch in Modellen zu designen und dann fertig programmiert zu haben, kommt man mit diesem Tool schon deutlich näher ![]()
Ok, Kaffee kochen kann die Bodum Kaffeemaschine besser. Aber robuste, nachvollziehbare Software und sichere Lieferergebnisse lässt sich mit dem Enterprise Architect sicherlich besser machen.
Ich muss jetzt erst mal ein bisschen raus gehen und das Hirn abkühlen.
Vermutlich werde ich in nächster Zeit ein paar Aspekte von dem was ich hier gelernt habe auf diesem Blog zum Besten geben.
Artikel mit ähnlichen Schlagwörtern
Kategorie IT | 0 Kommentare »
Java Add-Ins Programmieren für den Enterprise Architect
10. März 2010 Roland
Ich bin gerade auf einem zweitägigen Enterprise Architect (EA) Workshop.
Heute wurde mir von 9:30Uhr bis 21:30Uhr geballtes Wissen um die Ohren gehauen.
Die letzte Session behandelte die Frage, wie man Java Add-Ins erstellen kann.
Ok, ich war der einzige Kursteilnehmer, die Anderen programmierten fröhlich mit C#. Aber das will ich nicht ![]()
Mit Java kann man zwar keine Events für den Enterprise Architect bauen, da man keine COM Objekte erstellen kann, aber man kann auf das Repository zugreifen und dort z.B. spezielle Reports erstellen.
Um Java Add-Ins lauffähig hinzubekommen muss man aus dem Installationsordner von EA (also aus C:\Program Files\Sparx Systems\EA\Java API die DLL SSJavaCOM.dll in das System32 Verzeichnis kopieren.
Im Java Projekt muss man die eaapi.jar als externes Jar einbinden.
Dann kann man sich ein EA-Repository laden und darauf rumspielen.
Das folgende Beispiel lädt eine entsprechende Datei und schreibt ein Modell, Klassendiagramm und ein Requirement ein:
-
import org.sparx.Collection;
-
import org.sparx.Connector;
-
import org.sparx.Diagram;
-
import org.sparx.DiagramObject;
-
import org.sparx.Element;
-
import org.sparx.Package;
-
import org.sparx.Repository;
-
-
-
public class EAAutomation {
-
-
/**
-
* @param args
-
*/
-
public static void main(String[] args) {
-
// TODO Auto-generated method stub
-
Repository r = new Repository();
-
r.OpenFile("c:\\mittendrin.eap");
-
Collection<org .sparx.Package> col = r.GetModels();
-
col.AddNew("supi", "Model").Update();
-
short count = col.GetCount();
-
for(short i = 0; i < count; i++){
-
if(col.GetAt(i).GetName().equals("supi")){
-
Package p = col.GetAt(i);
-
Package classPackage = p.GetPackages().AddNew("Die Ansicht", "Class View");
-
classPackage.Update();
-
Element element = classPackage.GetElements().AddNew("Klassendiagramm", "Class");
-
element.Update();
-
Element requirement = element.GetElements().AddNew("Das Requirement", "Class");
-
requirement.SetName("Mein Name");
-
requirement.SetType("Requirement");
-
requirement.SetNotes("Also da wollte ich mal sagen, dass ich sagen will älläbätsch");
-
requirement.Update();
-
break;
-
}
-
}
-
r.CloseFile();
-
System.out.println("Alles");
-
}
-
-
}
Ok, dass ist ein bisschen sinnfrei, aber ich denke ihr könnt ein Feeling dafür bekommen wie der Enterprise Architect tickt.
Wo sehe ich den Nutzen?
Einen Zugriff auf das EA-Repository hat den Vorteil, dass man gezielt Elemente auswählen und sinnvolle Reports erstellen kann.
Wenn man sich also mit diesem Konstrukt gut auskennt, kann man hier z.B. Excel Auswertungen erstellen, die es von Haus aus im Enterprise Architekt nicht gibt.
Ich tippe mal, dass es mit C# besser integriert ist und man da noch granularer auf alles zugreifen kann.
Für Reportgenerierung reicht die Java Schnittstelle jedoch aus.
Artikel mit ähnlichen Schlagwörtern
Kategorie IT | 2 Kommentare »
RTL8187SE hängt sich total auf
6. März 2010 Roland
Da hatte ich wieder mal einen massiven Fehler!
Mein o.book Belinea Laptop stellte nach einem halben Tag die Wireless Netzwerkverbindung vollständig ein.
Ich habe alles probiert.
Erst unter Ubuntu, dann unter Gentoo.
Ich habe diverse Kernel übersetzt, ndiswrapper installiert und was weiß ich noch alles.
Die Karte startete, meldete keine Fehler, aber ich konnte keinen ESSID eintragen und auch sonst nichts machen.
Ich war vollkommen verzweifelt.
Dann wusste ich mir nicht mehr zu helfen und ich installierte ein Windows XP.
Das XP konfigurierte die Wireless Karte neu und ich konnte ins Netz.
Ich bootete danach das Linux wieder und siehe da, die Wireless Verbindung funktioniert.
Was ist da jetzt passiert?
Mir hat die Konfiguration von Linux irgendwie die Karte vollkommen verbogen.
Windows hat dann die Karte neu konfiguriert und damit erreicht, dass sie wieder funktioniert.
Das bedeutet nun, dass ich die Maschine mit Linux betreiben kann. Wenn sich die Karte wieder aufhängt, kann ich mit Windows die Karte neu konfigurieren und danach wieder mit Linux weiterabeiten.
Was für ein Unsinn…
Artikel mit ähnlichen Schlagwörtern
Kategorie IT, gentoo | 7 Kommentare »
apache2: Could not reliably determine the server’s fully qualified domain name
1. März 2010 Roland
Wenn bei der lokalen Installation deines Apache diese Meldung erscheint, dann kannst du in
/etc/apache2/httpd.conf die Zeile ServerName SERVERNAME eintragen und schon ist sie weg.
Das Problem liegt daran, dass bei virtuellen Hosts der Localhost nicht mehr angezogen werden kann. Also braucht es einen dedizierten Servernamen.
Ansonsten macht diese Meldung nicht so viel aus, wenn der Apache keinen Servernamen hat, nimmt er halt die IP des Servers als Name. (Steht ja auch in der Meldung
)
Artikel mit ähnlichen Schlagwörtern
Kategorie IT | 0 Kommentare »
Enterprise Architect 7.5 unter Linux Codepage Setup
27. Februar 2010 Roland
Ich verwende Enterprise Architect (EA) (zur Zeit Version 7.5) um meine Applikationsdokumentation abzubilden.
Im Vergleich zur Version 7.1 von EA sind die Integrationsprobleme auf Linux deutlich besser geworden.
Gut, die Dokumenterstellung mit WordPad ist immer noch eine langsame Angelegenheit. Das nutze ich im Moment auch kaum.
Dafür sind die Darstellungen nun alle lesbar und man kann z.B. auch mal einen Business Prozess zeichnen ohne hinterher leere Objekte angezeigt zu bekommen.
Code Generierung und Synchronisation
Eine der tollen Funktionalitäten von EA ist für mich die initiale Generierung von PHP Code und dann die Synchronisation mit dem Sourcecode.
Das bedeutet, dass du ohne besondere Tags im PHP Code deine Kommentare, Methoden und Attribute schreiben kannst. Wenn du dann im EA auf F7 (Synchronisation) drückst, werden die Sourcecodeänderungen direkt übernommen.
Damit kann man leicht architektorische Fehlentwicklungen erkennen und die Komplexität des Klassensalats erkennen.
Bisher konnte ich bei der Dokumentation keine Umlaute verwenden.
Klar, eigentlich sollte man sowieso seinen Code in Englisch dokumentieren.
Uneigentlich ist es manchmal aber einfacher seinen Code in der Sprache zu beschreiben in der man sich besser unterhalten kann.
Ich habe Mitarbeiter, die nunmal mit Englisch Schwierigkeiten haben.
Die Umlaute konnte ich nicht umstellen, da EA unter Crossover Office läuft und die Integration nicht sauber genug ist um z.B. utf8 abzubilden.
Wenn man jedoch auf seinen Code mit iso8859-1 Latin 1 speichert und dies im EA (Tools->options->Source Code Engineering#Code page for source) einstellt, dann klappts auch mit den Umlauten.
Ich habe in einer Woche einen EA Workshop. Vielleicht kennt da jemand noch eine andere Möglichkeit oder ich werde mich mal an EA richten und einen Change eingeben.
Für PHP kann ich persönlich mit iso8859-1 leben und deshalb ist das ein für mich tragbarer Kompromiss.
(Immerhin kann ich jetzt schreiben wie ich will und meine beiden Welten (Eclipse PHP und EA) verstehen sich
)
Happy Hacking!
Artikel mit ähnlichen Schlagwörtern
Kategorie IT | 0 Kommentare »
Einbindung von SCRUM in vorgegebene Projektsetups
25. Februar 2010 Roland
Um das Projektportfolio, das Controlling und die Vergleichbarkeit von Projekten in Unternehmen sinnvoll abbilden zu können, wird häufig eine unternehmensweit geltende Projektvorgehensweise vorgegeben. An diese Vorgehensweise müssen sich die Gesamtprojektleiter halten und ihre Planung, das Projektcontrolling und das Reporting angleichen.
In einem solchen Umfeld SCRUM einzusetzen stellt den Gesamtprojektleiter vor eine Herausvorderung. Zum Einen muss die Planung sich an die Vorgaben des Unternehmens halten und zum Anderen kann SCRUM das geeignete Framework sein um mit mehr Sicherheit das Projektziel zu erreichen.
In diesem Artikel wird erläutert, wie in einem herkömmlichen Projektsetup SCRUM integriert werden kann.
In einem Projekt werden die einzelnen Themengebiete in sinnvolle Teilaspekte (Teilprojekte) gegliedert. Nehmen wir ein fiktives Projekt an, bei dem folgende Themengebiete erkannt und als Teilprojekte bearbeitet werden sollen:
- Infrastruktur Setup
- Operational Management Setup
- Applikationsentwicklung
Einsatz eines traditionellen Projektvorgehens
Für den Infrastruktur Setup und das Operational Management Setup kann es durchaus Sinn ergeben ein traditionelles Projektvorgehen einzusetzen.
So kann es vorkommen, dass ein normales Wasserfallvorgehen für die Erarbeitung der Lieferobjekte in diesem Bereich eingesetzt wird.

In unserem Beispiel erhalten wir so einen Projektverlauf mit sechs Meilensteinen (M1-M6) an denen jeweils das Ende einer Projektphase markiert ist.
Die Lieferergebnisse, die pro Meilenstein erreicht werden müssen, sind sauber beschrieben und können im Gesamtprojekt entsprechend überwacht werden.
Scrum für die Applikationsentwicklung
Bei der Applikationsentwicklung sind zu Projektbeginn jedoch noch nicht alle Anforderungen von allen Beteiligten richtig beschrieben, bekannt und verstanden.
Es ist mit vielen Änderungen zu rechnen. Den kompletten Projektscope zu beschreiben würde eine sehr teure Vor-, Grob- und Detailstudie erfordern.
Und selbst nach einer solchen Studie sind wir noch nicht sicher, dass alle Anforderungen bekannt sind. Während der Projektlaufzeit ändern sich die äußeren Bedingungen, neue Anforderungen kommen hinzu und bestehende Anforderungen werden nicht mehr benötigt.
Es wäre somit vernünftig, eine agile Vorgehensweise für dieses Teilprojekt einzusetzen. Das entsprechende Projektvorgehen ist in folgender Skizze erläutert.

Was beim Wasserfallvorgehen als Vorstudie bezeichnet wurde, kann bei SCRUM als Vision verstanden werden. Es wird grob beschrieben, was mit dem System erreicht werden soll. Danach werden mehrere Sprints durchgeführt, die immer dem gleichen Muster folgen.
- Sprint Planungsmeeting 1 und 2 um den Umfang und die Qualität der Lieferergebnisse festzulegen
- Development mit Daily Scrum Meetings um jeden Tag schnell auf auftretende Schwierigkeiten reagieren zu können
- Sprint Release stellt einen neuen Applikationsrelease zur Verfügung der vom Kunden bereits verwendet werden kann. Falls, wie in unserem Beispiel, die Infrastruktur noch nicht bereit steht kann dieser Release für die Integrationstests verwendet werden.
- Sprint Retospektive liefert das Feedback um festlegen zu können, was in diesem Sprint gut lief und was verbessert werden soll.
Dieser Zyklus wiederholt sich bis alle wirklich vom Kunden benötigten Elemente umgesetzt worden sind. Nach jedem Sprint kann der Kunde mit dem lauffähigen Release sehen ob er die Software erhält, die er wirklich benötigt und kann sein Feedback liefern um Änderungen am System zu erreichen.
Scrum in das Gesamtprojekt einbinden
Die hier gezeigte Vorgehensweise lässt sich sehr elegant in das Gesamtprojekt einbinden.
Es muss dafür gesorgt werden, dass die einzelnen Sprintzyklen mit den Meilensteinen des Wasserfallvorgehens übereinstimmen.
Weiterhin muss erreicht werden, dass die Lieferobjekte des Wasserfallmodells mit den einzelnen Releases der Sprints in Einklang gebracht werden können.
Das klingt komplizierter wie es ist. In den ersten Releases einer Applikationsentwicklung wird die Architektur erstellt, die Umsetzungsrichtlinien festgelegt und die einzusetzenden Tools und Libraries definiert. Weiterhin kann in den ersten Releases schon gut erkannt werden, wie das Zielsystem aussehen wird. Diese Erkenntnisse können als Vor- und Grobstudie angesehen werden.
Nach weiteren Sprints ist sichergestellt, dass die Detaildokumentation erarbeitet wurde. Bei Scrum besteht die Devise, dass der Code die Dokumentation ist. Aus dem Code kann mit Revers Engineering und der Beschreibung von den wichtigsten Architekturkonzepten jedoch durchaus eine sinnvolle Dokumentation erstellt werden.
Für die Planung im Projekt ergibt sich somit folgende Vorgehensweise:

Die Sprints werden auf die einzelnen Projektphasen aufgeteilt.
Nach der Vorstudie steht schon ein erster Prototyp zur Verfügung, mit dessen Hilfe die Grobstudie zusammen mit dem Kunden erarbeitet werden kann. Jederzeit kann auf Änderungen und Schwierigkeiten Einfluss genommen werden.
Falls ein Standard-Sprintzyklus sich nicht mit den Meilensteinen vereinbaren lässt, kann man entweder längere Sprints durchführen, oder die Sprints verkürzen (Siehe die „S“ Sprints).
Unsere Sprints lassen sich vom Schwerpunkt her den einzelnen Projektphasen zuordnen.
So kann dafür Sorge getragen werden, dass nach der Vorstudie eine Vision und ein erster architekorischer Prototyp steht.
Nach der Grobstudie sind erste Businessprozesse umgesetzt und können während der Detailstudie verfeinert werden.
Bei der Implementation kann die Integration der Applikationin die Infrastrukturkomponenten und operationellen Prozesse angegangen werden.
Bei den abschliessenden Tests sind die Applikationskomponenten bereits getestet und es geht vor allem um die Integration in die Systemumgebung.
Die Transistion kann dazu verwendet werden, abschliessende Änderungen einzupflegen oder die Übergabe an den Betrieb zu managen.
Die Schwerpunkte der einzelnen Sprints sind in der folgenden Grafik angedeutet.

Die Farben wurden aus dem Wasserfallvorgehen übernommen. Hiermit werden die Schwerpunkte des Gesamtprojekts auf das Teilprojekt übertragen. Die Entwickler können sich in den Projektphasen wiederfinden.
Fazit
Mit dieser Vorgehensweise ändert sich für die beiden Welten (Scrum und Wasserfall) sehr wenig. Die einzelnen Projektbereiche können miteinander kommunizieren und wir erhalten uns die einfache Rapportierbarkeit des Wasserfallmodells und die Agilität von Scrum.
Artikel mit ähnlichen Schlagwörtern
Kategorie IT | 0 Kommentare »
ccache Fehler xlib.o: file not recognized: File format not recognized
22. Februar 2010 Roland
Oha, da hatte ich mal wieder einen dicken Fehler.
Ich wollte meinen KDE nochmal updaten und nebenher hatte ich ein bisschen am Kernel und an der Virtrual Box rumgefummelt.
Und dann passierte es.
i686-pc-linux-gnu-g++ -c -pipe -O2 -march=core2 -pipe -fomit-frame-pointer
-Wall -W -I../../../mkspecs/linux-g++ -I. -I/usr/include/freetype2
-I/usr/X11R6/include -o xlib.o xlib.cpp
linking xlib
xlib.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
gmake: *** [xlib] Error 1
XLib disabled.
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in
/var/tmp/portage/x11-libs/qt-svg-4.6.2/work/qt-everywhere-opensource-src-4.6.2/mkspecs/linux-g++.
Würdest du glauben, dass es sich hierbei um einen ccache Fehler handelt?
Ne?
Ich auch nicht.
Das war der Hammer!
Die wichtige Information ist file not recognized:. Das bedeutet, dass der C-Cache ein Objekt nicht finden kann.
Und das bedeutet wiederum, dass ich den ccache mit dem Befehl ccache -c gelöscht habe.
Leider hat das auch noch nicht gereicht.
Ich musste am Ende den kompletten ccache manuell löschen und ccache neu emergen.
Das ist mir noch nie passiert. Bisher war ccache ein stabiles Stück Software.
Naja, alle zehn Jahre ist das ok gelle?
Artikel mit ähnlichen Schlagwörtern
Kategorie gentoo | 0 Kommentare »
« Vorherige Einträge
