# Kodimport och kodgenerering

&umbrello; är ett &UML;-modelleringsverktyg, och som sådant är dess huvudsakliga syfte att hjälpa dig med analys och konstruktion av system. För att åstadkomma övergången från konstruktion till implementering, tillåter &umbrello; dock att generera källkod i olika programspråk för att komma igång. Om du dessutom vill börja använda &UML; i ett projekt som redan har startat, kan &umbrello; hjälpa till att skapa en modell av systemet från källkoden genom att analysera den och importera klasserna som hittas i den.

## Kodgenerering

&umbrello; kan generera källkod för diverse programspråk, baserad på din &UML;-modell för att hjälpa dig komma igång med implementeringen av projektet. Koden som skapas består av klassdeklarationer, med metoder och attribut, så att du kan fylla i tomrummen genom att tillhandahålla funktionerna i klassernas operationer.

&umbrello; 1.2 levereras med kodgenereringsstöd för ActionScript, Ada, C++, CORBA IDL, &Java;, Javascript, PHP, Perl, Python, SQL and XML Schema.

### Generera kod

För att generera kod med &umbrello;, måste du först skapa eller ladda en modell som innehåller minst en klass. När du är klar att börja skriva lite kod, välj då alternativet Kodgenereringsguide i menyn Kod, för att starta guiden som leder dig igenom kodgenereringsprocessen.

Det första steget är att välja klasser, som du vill skapa källkod för. Normalt väljs alla klasser i modellen, och du kan ta bort de som du inte vill generera kod för, genom att flytta dem till listan på vänster sida.

Nästa steg i guiden låter dig ändra parametrar som kodgeneratorn använder när den skriver ut koden. Följande alternativ är tillgängliga:

Kodgenereringsalternativ Alternativ för kodgenereringen i &umbrello;

Alternativ för kodgenereringen i &umbrello;

#### Kodgenereringsalternativ

##### Kodinformationsnivå

Alternativet Skriv dokumenteringskommentarer även om tomma instruerar kodgeneratorn att skriva ut kommentarar med stilen /** blaha */, även om kommentarblocken är tomma. Om du lagt till dokumentation i klasser, metoder eller attribut i modellen, skriver kodgeneratorn ut kommentarerna som Doxygen-dokumentation, oberoende av vad du anger här, men om du väljer det här alternativet, skriver &umbrello; ut kommentarblock för alla klasser, metoder och attribut även om det inte finns någon dokumentation i modellen, då detta är fallet bör du dokumentera klasserna senare direkt i källkoden.

Skriv kommentarer för sektioner även om sektionen är tom: &umbrello; skriver kommentarer i källkoden för att avdela de olika sektionerna i en klass. Till exempel Public methods eller Attributes innan motsvarande sektioner. Om du väljer det här alternativet, så skriver &umbrello; kommentarer för alla sektioner i klassen, även om sektionen är tom. Det skulle till exempel skriva en kommentar som lyder Protected methods, även om det inte finns några sådana i klassen.

##### Kataloger

Skriv alla filer som skapas till katalog: Här ska du välja katalogen där du vill att &umbrello; ska lägga källkoden som skapas.

Alternativet Infoga huvudfiler från katalog, låter dig infoga ett huvud i början av varje fil som genereras. Huvudfiler kan innehålla upphovsrätts- eller licensinformation, och kan innehålla variabler som utvärderas när genereringen sker. Du kan ta en titt på mallar för huvudfiler som levereras med &umbrello;, för att se hur man använder variablerna för att ersätta ditt namn eller dagens datum när genereringen sker.

##### Överskrivningspolicy

Det här alternativet talar om för &umbrello; vad som ska ske om filen som ska skapas redan finns i destinationskatalogen. &umbrello; 1.1 kan inte ändra befintliga källkodsfiler, så du måste välja mellan att skriva över den befintliga filen, hoppa över att skapa just den filen, eller låta &umbrello; välja ett annat filnamn. Om du väljer alternativet att använda ett annat filnamn, lägger &umbrello; till ett suffix till filnamnet.

##### Språk

&umbrello; genererar normalt kod för språket som du har valt som aktivt språk, men du har möjlighet att ändra detta till ett annat språk med kodgenereringsguiden.

#### Generering med kodgenereringsguiden

Det tredje och sista steget i guiden visar status för kodgenereringsprocessen. Du behöver bara klicka på knappen Generera för att få klasserna utskrivna åt dig.

Observera att de alternativ som du väljer med kodgenereringsguiden bara gäller för aktuell generering. Nästa gång du kör guiden, måste du välja alla alternativ igen (din huvudkatalog, överskrivningspolicy, och så vidare). Du kan ställa in standardvärden som används av &umbrello; i avdelningen Kodgenerering i &umbrello;s inställningar, tillgängliga via Inställningar Anpassa &umbrello;....

Om du har ställt in kodgenereringsalternativ till riktiga inställningar, och vill skapa lite kod direkt utan att gå via guiden, kan du välja Generera all kod i menyn Kod. Det genererar kod för alla klasser i modellen med nuvarande inställningar (inklusive utdatakatalog och överskrivningspolicy, så använd det med försiktighet).

## Kodimport

&umbrello; kan importera källkod från befintliga projekt för att hjälpa dig bygga modeller av system. &umbrello; 1.2 stöder bara C++ källkod, men andra språk bör finnas tillgängliga i framtida versioner.

För att importera klasser till modellen, välj alternativet Importera klasser... i menyn Kod. Välj filerna som innehåller C++ klassdeklarationer i fildialogrutan och tryck på Ok. Klasserna importeras, och du hittar dem som en del av modellen i trädvyn. Observera att &umbrello; inte skapar något sorts diagram för att visa klasserna, de importeras bara till modellen så att du senare kan använda dem i valfritt diagram.

Kodimport Meny för att importera källkod till &umbrello;

Meny för att importera källkod till &umbrello;