# Importació de codi i generació de codi

&umbrello; és una eina de modelat &UML;, i la seva utilitat principal és ajudar-vos en l'anàlisi i el disseny dels vostres sistemes. No obstant això, per fer la transició entre el disseny i la implementació, &umbrello; us permet generar el codi font en diversos llenguatges de programació per que pugueu començar. També, si voleu començar a usar &UML; en un projecte C++ ja iniciat, &umbrello; us pot ajudar a crear un model en el vostre sistema des del codi font analitzant el codi font i important les classes trobades.

## Generació de codi

&umbrello; pot generar codi font per diversos llenguatges de programació basat en el vostre model &UML; per ajudar-vos a començar amb la implementació del vostre projecte. El codi generar consisteix en la declaració de les classes, amb els seus mètodes i atributs, de manera que pugueu «emplenar els espais en blanc» proporcionant la funcionalitat de les operacions de les classes.

&umbrello; 1.2 proporciona implementació de generació de codi per ActionScript, Ada, C++. CORBA IDL, &Java;, JavaScript, PHP, Perl, Python, SQL i XMLSchema.

### Generant el codi

Per tal de poder generar codi amb &umbrello; primer necessiteu crear o carregar un model que contingui almenys una classe. Quan esteu llest per començar a escriure codi, seleccioneu l'entrada Assistent de generació de codi... del menú Codi per iniciar un assistent que us guiarà a través del procés de generació de codi.

El primer pas és seleccionar les classes per les que voleu generar el codi font. Per omissió totes les classes del model estan seleccionades, i podeu eliminar aquelles de les que no voleu generar el codi movent-les a la llista de l'esquerra.

El següent pas de l'assistent us permet modificar els paràmetres que el generador de codi usa mentre escriu el codi. Hi ha disponibles les següents opcions:

Opcions de generació de codi Opcions per a la generació de codi en &umbrello;

Opcions per a la generació de codi en &umbrello;

#### Opcions de generació

##### Detall en els comentaris

La opció Escriure comentaris de documentació encara que estiguin buits instrueix al generador de codi que escrigui els comentaris de l'estil /** blah */ encara que els blocs de comentaris siguin buits. Si heu afegit documentació a les classes, mètodes o atributs en el model, el generador de codi escriurà aquests comentaris com documentació Doxygen independentment del que hageu establert aquí, però si seleccioneu aquesta opció, &umbrello; escriurà blocs de comentaris per a totes les classes, mètodes i atributs encara que no hi hagi documentació en el model, en aquest cas haureu de documentar les classes més endavant directament en el codi font.

Escriure comentaris per a les seccions encara que la secció estigui buida fa que &umbrello; escrigui comentaris en el codi font per a delimitar les diferents seccions d'una classe. Per exemple «mètodes públics» o «atributs» abans de les corresponents seccions. Si seleccioneu aquesta opció &umbrello; escriurà comentaris per a totes les seccions de la classes encara que la secció sigui buida. Per exemple, escriurà un comentari dient «mètodes protegits» encara que no hi hagi mètodes protegits en la classe.

##### Carpetes

Escriu tots els fitxers generats a una carpeta:. Aquí heu de seleccionar una carpeta on voleu que &umbrello; desi el codi font generat.

La opció Inclou els fitxers de capçalera des de la carpeta permet inserir una capçalera al començament de cada fitxer generat. Els fitxers de capçalera poden contenir informació del copyright o informació de la llicència i contenir variables que són avaluades en temps de generació. Podeu fer un cop d'ull a la plantilla de fitxers de capçalera empaquetada amb &umbrello; per veure com usar aquestes variables per reemplaçar el vostre nom o la data actual en temps de generació.

##### Política de sobreescriptura

Aquesta opció li diu a &umbrello; el que ha de fer si el fitxer que vol crear ja existeix en la carpeta de destinació. &umbrello; no pot modificar fitxers de codi font existents, així que heu de escollir entre sobreescriure el fitxer existent, ometre la generació d'aquest fitxer en particular o deixar que &umbrello; usi un nom diferent, &umbrello; afegirà un sufix al nom del fitxer.

##### Llenguatge

&umbrello; per omissió generarà el codi en el llenguatge que heu seleccionat com a llenguatge actiu, però amb l'assistent de generació de codi teniu l'opció de canviar aquest a un altre llenguatge.

#### Estat del progrés de la generació del codi

El tercer i últim pas de l'assistent mostra l'estat del procés de la generació del codi. Només heu de clicar en el botó Genera per que s'escriguin les classes.

Noteu que les opcions que heu seleccionat durant l'assistent de generació de codi només són vàlides per la generació actual. La pròxima vegada que executeu aquest assistent necessitareu tornar a seleccionar totes les opcions (la carpeta de capçaleres, la política de sobreescriptura i tot això). Podeu establir les opcions predeterminades usades per &umbrello; en la secció Generació de codi dels arranjaments de &umbrello;, disponible en Arranjament Configura &umbrello;...

Si heu establert les opcions de generació de codi a les opcions correctes i voleu generar codi sense que calgui passar per l'assistent, podeu seleccionar Genera tot el codi complet del menú Codi. Això generarà codi per a totes les classes del model usant l'arranjament actual (incloent la carpeta de sortida i la política de sobreescriptura, per tant l'heu d'usar amb cura).

## Importació de codi

&umbrello; pot importar codi font dels vostres projectes existents per ajudar-vos a construir models dels vostres sistemes. &umbrello; 1.2 només implementa codi font C++, però altres llenguatges poden estar disponibles en futures versions.

Per importar classes en el model, seleccioneu l'entrada Importa classes... del menú Codi. En el diàleg de fitxer seleccioneu els fitxers que contenen la declaració de classes C++ i premeu Obre. S'importaran les classes i podreu trobar-les com a part del model en la vista en arbre. Noteu que &umbrello; no crearà cap tipus de diagrama per a mostrar les classes, només s'importaran en el model de manera que podeu usar-les més tard en qualsevol diagrama que vulgueu.

Importació de codi Menú per importar codi font en &umbrello;

Menú per importar codi font en &umbrello;