pure::variants – Connettore per
Manuale di gestione del codice sorgente
Parametric Technology GmbH
Versione 6.0.7.685 per pure::varianti 6.0
Copyright © 2003-2024 Parametric Technology GmbH
2024
Introduzione
pure::variants Connector for Source Code Management (Connector) consente agli sviluppatori di gestire la variabilità del codice sorgente utilizzando pure::variants. Source Code Management di pure::variants offre un'opportunità flessibile per sincronizzare le strutture delle directory e il codice sorgente files facilmente con i modelli pure::variants. In questo modo la gestione delle varianti può essere applicata in modo pratico anche a progetti software complessi. Inoltre, le connessioni tra le funzionalità pure::variants e il codice sorgente possono essere gestite più facilmente con il builder e sono altamente accessibili tramite la gestione del codice sorgente.
1.1. Requisiti software
Il connettore pure::variants per la gestione del codice sorgente è un'estensione per pure::variants ed è disponibile su tutte le piattaforme supportate.
1.2. Installazione
Si prega di consultare la sezione connettori pure::variants nella Guida all'installazione di pure::variants per informazioni dettagliate su come installare il connettore (menu Guida -> Contenuto della guida e quindi Guida all'installazione di pure::variants -> Connettori pure::variants).
1.3. Informazioni su questo manuale
Ci si aspetta che il lettore abbia conoscenze di base ed esperienze con pure::variants. Si prega di consultare il materiale introduttivo prima di leggere questo manuale. Il manuale è disponibile nella guida in linea e in formato PDF stampabile qui.
Utilizzo del connettore
2.1. Avvio di pure::variants
A seconda del metodo di installazione utilizzato, avviare Eclipse abilitato per pure::variants oppure, in Windows, selezionare la voce pure::variants dal menu del programma.
Se la prospettiva Gestione varianti non è già attivata, è possibile attivarla selezionandola da Apri prospettiva->Altro… nel menu Finestra.
2.2. Importare un albero di directory in un modello di famiglia
Prima di importare un albero di directory in un Family Model, è necessario creare un progetto di varianti. Inoltre è consigliabile avere già definite le feature in un Feature Model. Consultare la documentazione pure::variants per assistenza su questi passaggi.
L'importazione vera e propria viene avviata selezionando l'azione Importa… nel menu contestuale dei Progetti view o con il menu Importa… nel File menu. Seleziona Variant Models o Projects dalla categoria Variant Management e premi Avanti. Nella pagina seguente seleziona Import a Family Model from source folders e premi di nuovo Avanti.
Scegli il tipo di codice sorgente da importare
Viene visualizzata la procedura guidata di importazione (vedere Figura 1, "Pagina della procedura guidata di importazione per selezionare il tipo di codice sorgente che può essere importato"). Selezionare un tipo di progetto da importare e premere Avanti. Ogni tipo contiene un set predefinito di file tipi da importare nel modello.
Figura 1. Pagina della procedura guidata di importazione per selezionare il tipo di codice sorgente che può essere importatoSeleziona origine e destinazione
Nella pagina successiva della procedura guidata (Figura 2, “Pagina della procedura guidata di importazione per selezionare l’origine e la destinazione per l’importazione”) è necessario specificare la directory di origine e il modello di destinazione.
Premi il pulsante Browse… per selezionare la directory in cui si trova il codice sorgente che deve essere importato. Di default viene selezionato lo spazio di lavoro corrente perché potrebbe essere un punto utile per iniziare la navigazione.
Di seguito puoi specificare i pattern include ed exclude. Questi pattern devono essere espressioni regolari Java. Ogni percorso di input, relativo alla cartella radice di origine, viene controllato con questi pattern. Se il pattern include corrisponde, viene importata una cartella, se il pattern exclude non corrisponde. Ciò significa che il pattern include preseleziona le cartelle da importare, il pattern exclude limita questa preselezione.
Dopo aver selezionato la directory del codice sorgente, è necessario definire un modello di destinazione. Selezionare quindi un progetto variante o una cartella in cui il modello deve essere archiviato e immettere un nome di modello. file name viene esteso automaticamente con l'estensione .ccfm se non è specificato in questa finestra di dialogo. Per impostazione predefinita, verrà impostato sullo stesso nome del nome del modello stesso. Questa è l'impostazione consigliata.
Dopo aver specificato una cartella sorgente appropriata e il nome del modello desiderato, la finestra di dialogo potrebbe essere terminata premendo Finish. Se si preme il pulsante Next, si apre un'ulteriore pagina in cui è possibile effettuare impostazioni aggiuntive.
Figura 2. Pagina della procedura guidata di importazione per selezionare l'origine e la destinazione per l'importazioneCambia preferenze di importazione
Nell'ultima pagina della procedura guidata (Figura 3, “Pagina della procedura guidata di importazione per definire una configurazione individuale”) sono disponibili delle preferenze che possono essere utilizzate per personalizzare il comportamento di importazione del progetto software importato.
La pagina di dialogo mostra una tabella in cui file vengono definiti i tipi che saranno presi in considerazione dal processo di importazione.
Ogni riga è composta da quattro campi.
- Il campo Descrizione contiene un breve testo descrittivo per identificare l' file tipo.
- IL File il campo del modello del nome viene utilizzato per selezionare files da importare quando corrispondono al valore dei campi. Il campo utilizza la seguente sintassi:
- Il caso d'uso più comune potrebbe essere un file estensione. La sintassi usuale è .EXT, dove EXT è l'estensione desiderata file estensione (ad esempio .java).
- Un'altra situazione comune è una speciale file, come un marchiofile. Pertanto, è possibile abbinare esattamente file nome. Per fare questo, basta inserire il file nome nel campo (ad esempio build.xml).
- In alcuni casi i desideri di mappatura sono più specifici, quindi solo files che corrispondono a uno schema speciale devono essere importati. Per soddisfare questo requisito è possibile utilizzare espressioni regolari in File campo del modello di nome.
Descrivere la sintassi delle espressioni regolari andrebbe oltre lo scopo di questa guida. Si prega di consultare la sezione sulle espressioni regolari del capitolo di riferimento nella guida utente di pure::variants (ad esempio .*).
- Il campo Tipo di elemento mappato imposta la mappatura tra un file tipo e un tipo di elemento della famiglia pure::variants. Il tipo di elemento della famiglia è un descrittore per la sorgente file per fornire ulteriori informazioni all'elemento mappato nel modello importato. Le selezioni tipiche sono ps:class o ps:makefile.
- Il mappato file Il campo tipo imposta la mappatura tra un file tipo e pure::variants file tipo. Il file il tipo in pure::variants è un descrittore per la sorgente file per fornire ulteriori informazioni all'elemento mappato nel modello importato. Le selezioni tipiche sono impl per le implementazioni o def per la definizione files.
Figura 3. Pagina della procedura guidata di importazione per definire una configurazione individualeNuovo file tipi possono essere aggiunti usando il pulsante Aggiungi mappatura. Tutti i campi sono compilati con il valore indefinito e devono essere compilati dall'utente. Per modificare un valore in un campo, basta cliccare nel campo con il mouse. Il valore diventa modificabile e può essere cambiato. Non è possibile cambiare il valore predefinito file modelli di nomi della tabella. Per rendere flessibile una personalizzazione, è possibile deselezionare un file digita deselezionando la riga. Deselezionato file i pattern dei nomi rimangono nella configurazione ma non saranno utilizzati dall'importatore. Definiti dall'utente file i tipi possono essere rimossi nuovamente utilizzando il pulsante Rimuovi mappatura.
Per impostazione predefinita un altro files file il pattern del nome è disponibile nella tabella ma deselezionato. In genere non si desidera importare tutto filema è possibile modificarlo facilmente selezionando la riga appropriata.
Sono disponibili tre opzioni di importazione generali per personalizzare il comportamento dell'importatore.
- Non importare directory senza corrispondenza files (ad esempio directory CVS).
Se l'importatore trova una directory in cui non esiste corrispondenza file è al suo interno e dove nessuna sottodirectory ha una corrispondenza file, la directory non verrà importata. Questo è spesso utile, se i progetti sono gestiti da sistemi di gestione delle versioni come CVS. Per CVS, ogni directory rilevante contiene una directory CVS in cui irrilevante filevengono memorizzati. Se questa opzione è selezionata e il CVS-files non corrispondono a nessuno file tipo definito sopra, la directory non verrà importata come componente nel Family Model. - Ordinare filee directory.
Abilita questa opzione per ordinare filee directory, ciascuna in ordine alfabetico. - Gestione del percorso di importazione.
Per un'ulteriore sincronizzazione, l'importatore deve memorizzare il percorso originale di tutti gli elementi importati nel modello.
In molti casi i Family Model sono condivisi con altri utenti. La struttura delle directory può essere diversa per ogni utente. Per supportare gli scenari di utilizzo più comuni, l'importatore può funzionare in diverse modalità:
Assoluto | Il percorso assoluto all'elemento importato verrà memorizzato nel modello. Per una successiva sincronizzazione e durante la trasformazione, il filedevono essere posizionati esattamente nella stessa posizione della prima importazione. |
Relativo allo spazio di lavoro | I percorsi vengono memorizzati relativamente alla cartella dell'area di lavoro. Per la sincronizzazione, files deve essere parte dell'area di lavoro di Eclipse. La trasformazione deve usare l'area di lavoro di Eclipse come directory di input. |
Relativo al progetto | I percorsi vengono memorizzati relativamente al progetto. Per la sincronizzazione, files fanno parte del progetto all'interno di Eclipse. La trasformazione deve usare la cartella del progetto come directory di input. |
Relativo al percorso | I percorsi vengono memorizzati relativamente al percorso specificato. Per la sincronizzazione, filedevono essere posizionati esattamente nella stessa posizione. La directory di input della trasformazione è la stessa del percorso relativo durante l'importazione. |
Tutte le preferenze di questa finestra di dialogo vengono memorizzate in modo persistente. Le personalizzazioni personali non devono essere rieseguite ogni volta che si esegue l'importazione. Ciò rende il flusso di lavoro di importazione facile e veloce.
2.3. Aggiornamento dei modelli dall'albero delle directory
Premere il pulsante Sincronizza per sincronizzare un modello importato con il suo percorso di directory. Il percorso radice del progetto è memorizzato nel modello, quindi si sincronizzerà con la stessa directory di prima. Per abilitare il pulsante Sincronizza, apri il modello e seleziona un elemento qualsiasi. Dopo aver premuto il pulsante Sincronizza, viene aperto un Compare Editor in cui il Family Model corrente e il modello della struttura di directory corrente sono contrapposti (vedi Figura 4, "Aggiornamento del modello dall'albero di directory in Compare Editor").
Figura 4. Aggiornamento del modello dall'albero delle directory nell'editor di confronto L'editor di confronto è utilizzato in pure::variants per confrontare le versioni del modello, ma in questo caso è utilizzato per confrontare la struttura fisica delle directory (visualizzata in basso a destra) con il modello corrente di pure::variants (in basso a sinistra). Tutte le modifiche sono elencate come elementi separati nella parte superiore dell'editor, ordinate in base agli elementi interessati.
Selezionando un elemento in questo elenco si evidenzia il rispettivo cambiamento in entrambi i modelli. Nell'esempioample, un elemento aggiunto è contrassegnato con una casella sul lato destro e collegato alla sua posizione fattibile nel modello sul lato sinistro. La barra degli strumenti Merge tra le finestre dell'editor superiore e inferiore fornisce strumenti per copiare singole o anche tutte le modifiche (non in conflitto) nel loro insieme dal modello dell'albero delle directory al Feature Model.
Nota
La sincronizzazione viene eseguita con le ultime impostazioni di importazione utilizzate. Ciò rende possibile aggiornare il modello con altre impostazioni effettuate durante l'importazione.
Utilizzo dell'indicizzatore delle relazioni
Il connettore per la gestione del codice sorgente migliora le relazioni View con informazioni sulle connessioni tra gli elementi del modello pure::variants e il codice sorgente. Le relazioni vengono aggiunte per le feature che vengono utilizzate nelle condizioni degli elementi ps:condxml e ps:condtext.
Per ps:flag e ps:flagfile elementi la posizione delle costanti del preprocessore nel codice sorgente C/C++ files sono mostrati. Inoltre, le posizioni delle costanti del preprocessore corrispondenti sono mostrate per una feature selezionata utilizzando la mappatura tra i nomi univoci delle feature e le costanti del preprocessore.
3.1. Aggiungere l'indicizzatore delle relazioni a un progetto
L'indicizzatore di relazioni può essere attivato su una pagina speciale delle proprietà del progetto. Seleziona il progetto e scegli la voce Proprietà nel menu contestuale. Nella finestra di dialogo successiva seleziona la pagina Indicizzatore di relazioni.
Figura 5. Pagina delle proprietà del progetto per l'indicizzatore delle relazioni
L'indicizzatore di relazioni viene attivato per il progetto selezionando l'opzione Abilita indicizzatore di relazioni (1). Dopo aver abilitato l'indicizzatore, ci sono altre opzioni per definire il comportamento specifico del progetto. L'indicizzazione delle Condizioni pure::variants e delle Costanti del preprocessore C/C++ può essere attivata separatamente (2). L'elenco con file i modelli di nomi (3) vengono utilizzati per selezionare il files per l'indicizzazione. Solo files che corrispondono a uno dei pattern vengono scansionati. Aggiungere "*" come pattern per scansionare tutti filedi un progetto.
Dopo aver attivato l'indicizzatore per un progetto, un builder viene aggiunto al progetto. Questo builder analizza i dati modificati files per nuove relazioni con gli elementi del modello pure::variants automaticamente.
3.2. Le relazioni con il codice sorgente
Con l'indicizzatore delle relazioni attivato le Relazioni View contiene voci aggiuntive. Queste voci mostrano il nome del file e il numero di riga del punto variante. La descrizione comando mostra la sezione appropriata del fileFacendo doppio clic sulla voce file verrà aperto in un editor.
pure::variants Condizioni
La condizione pure::variants può essere utilizzata per includere o escludere sezioni di un file a seconda di una selezione di feature. Il Condition Indexer esegue la scansione di tali regole ed estrae le feature referenziate. Se una feature di questo tipo è selezionata nell'editor, le Relazioni View mostrerà tutto files e linee in cui si trova una condizione con la caratteristica selezionata (vedere Figura 6, "Rappresentazione di una condizione nelle relazioni View”).
Figura 6. Rappresentazione di una condizione nelle relazioni ViewPer una spiegazione dettagliata su come definire le condizioni, consultare la sezione ps:condtext del capitolo 9.5.7 della Guida per l'utente di pure::variants (Riferimento–>Tipi di elementi sorgente predefiniti–>ps:condtext).
Costanti del preprocessore C/C++
L'indicizzatore del preprocessore C/C++ esegue la scansione files per le costanti utilizzate nelle regole del preprocessore (ad esempio #ifdef, #ifndef, …).
Se un ps:flag o ps:flagfile l'elemento è selezionato Relazioni View mostra l'utilizzo della costante del preprocessore definita.
Le relazioni View mostra anche le costanti del preprocessore connesse alle feature tramite pattern di mappatura. Per questo i pattern vengono espansi con i dati della feature selezionata. I simboli risultanti vengono utilizzati per cercare le costanti del preprocessore corrispondenti. Figura 7, “Rappresentazione di una costante del preprocessore C/C++ nelle relazioni View"mostra un example con il pattern fame{Name}. Il pattern viene espanso con il nome univoco della feature in fameNative. Nel codice indicizzato ci sono 76 posizioni in cui viene utilizzata la costante del preprocessore fameNative.
Queste posizioni sono mostrate nelle Relazioni ViewI modelli possono essere definiti nelle preferenze (vedere Sezione 3.3, “Le preferenze”).
Figura 7. Rappresentazione di una costante del preprocessore C/C++ nelle relazioni View
3.3. Le preferenze
Per modificare il comportamento predefinito dell'indicizzatore, apri le preferenze di Eclipse e seleziona la pagina Relation Indexer nella categoria Variant Management. La pagina mostra due elenchi.
Figura 8. Pagina delle preferenze dell'indicizzatore delle relazioniL'elenco superiore contiene l'impostazione predefinita file modelli per l'indicizzatore (1). Questo elenco è l'impostazione iniziale del modello per i progetti appena abilitati.
L'elenco in basso contiene la mappatura tra le feature e le costanti del preprocessore (2). Questa mappatura è utilizzata per tutti i progetti. La Tabella 1, "Sostituzioni di mappatura supportate" mostra tutte le possibili sostituzioni.
Tabella 1. Sostituzioni di mappatura supportate
Carattere jolly | Descrizione | Example: CaratteristicaA |
Nome | il nome univoco della funzionalità selezionata | FLAG_{Nome} – FLAG_FeatureA |
NOME | il nome univoco in maiuscolo della funzionalità selezionata | FLAG_{NOME} – FLAG_CARATTERISTICA |
nome | il nome univoco in minuscolo della funzionalità selezionata | flag_{nome} – flag_featurea |
Documenti / Risorse
![]() |
pure-systems 2024 Connettore per software di gestione del codice sorgente [pdf] Manuale d'uso 2024, 2024 Connettore per software di gestione del codice sorgente, Connettore per software di gestione del codice sorgente, Software di gestione del codice sorgente, Software di gestione, Software |