Port GUI da VxWorks a Windows [chiuso]

0

La mia azienda ha una vecchia applicazione GUI su VxWorks. Ora, mi è stato chiesto di portare questa applicazione a Windows XP su una nuova piattaforma H / W. L'applicazione originale chiama WindML & Zinco (le librerie GUI di Tornado). Per eseguire correttamente il porting di questa applicazione, posso capire questi approcci:

  1. riscrive le funzioni della GUI utilizzando VC ++ su Windows: questo potrebbe richiedere molto tempo per il progettista originale, non si aspettava questo porting. Anche lui ha fatto, lo sforzo è ancora pesante.
  2. sviluppare librerie compatibili con WindML / Zinc in Windows utilizzando VC ++: ovvero sostituire le librerie GUI VxWorks originali in librerie GUI Windows compatibili. Questo potrebbe essere più sistematico, ma lo sforzo è ancora molto pesante.
  3. Configura WindML / Zinc nella versione Windows: ovvero, l'IDE di VxWorks, Tornado può essere configurato per creare un'immagine per Windows. Questo approccio è il più efficiente. Ma sfortunatamente, per qualche motivo, non era permesso nella mia compagnia.
  4. Usa "OS Changer" di MapuSoft: MapuSoft afferma che il loro prodotto, OS Changer, può servire a questo lavoro. Ma il problema è che OS Changer è ancora molto strano per me. Non ho fiducia per questo. Non so quanto possa servirlo.

Ulteriori informazioni sulla mia domanda:

  1. La mia applicazione GUI basata su VxWorks ha circa 140 linee K.
  2. Ci sono più di 3000 righe contenenti parole chiave appartenenti a Zinc e più di 2000 righe contenenti parole chiave appartenenti a WindML.

Esiste un altro approccio per il porting della GUi tra piattaforme OS diverse? So che il progetto di porting contiene non solo la parte della GUI, ma un'altra nuova porzione dipendente da H / W. Ma ora, indico solo sulla parte della GUI.

    
posta Stan Huang at Taiwan 17.02.2016 - 12:08
fonte

2 risposte

3

La prima cosa che dovresti chiarire è se l'applicazione deve essere mantenuta in entrambi i sistemi operativi dopo la porta. In questo caso, dovresti preferire una soluzione con il minor numero possibile di codice duplicato, ovvero una soluzione in cui riutilizzare le librerie originali o utilizzare librerie compatibili. La tua opzione numero 4 potrebbe essere appropriata per questo. Ma suppongo che l'ulteriore manutenzione sia pianificata solo su Windows, altrimenti non avresti suggerito le alternative alternative. Se ho ragione, l'opzione n. 4 non è probabilmente la strada da percorrere.

La prossima cosa di cui hai bisogno è una stima dei costi migliore per le restanti alternative. Il "numero di linee che utilizzano le parole chiave del framework XY" è un inizio, ma non è ancora l'indicatore migliore per lo sforzo. Quando si modifica il framework, ci saranno porzioni più grandi del codice da reimplementare rispetto a quelle 5000 righe che hai citato, è necessario identificare la quantità di codice direttamente dipendente da queste parti.

Quindi, se è possibile isolare le parti / moduli direttamente correlate alla GUI, conta le linee di quei moduli - queste sono le parti da riscrivere, e per le porte, LOC è spesso uno strumento adatto per una stima dei costi approssimativi .

Ora prova a stimare quanto tempo ci vorrebbe per riscrivere queste parti (magari usando un framework come Qt - opzione 1), confrontalo con una stima di quanto tempo ci vorrà per creare Zinc & Libs compatibili con WindML per Windows in una qualità adeguata da soli (opzione 2) e confrontarlo anche con il prezzo di acquisto di una versione di Windows di Zinc e / o WindML (opzione 3). Anche se la tua azienda ha deciso contro l'opzione 3 (ancora), i tuoi superiori potrebbero riaprire una discussione quando vedranno la tua stima dei costi.

Si noti che per l'opzione 3 devono essere disponibili le versioni Windows di Zinc e / o WindML e che è necessario affidarsi ai fornitori per garantire una manutenzione a lungo termine. Altrimenti, dimentica l'opzione 3. La stima dei costi sarà comunque utile per decidere tra le opzioni 1 e 2. Considera anche una strategia mista, ad esempio acquistare Zinc per Windows e implementare qualcosa come un "livello di emulazione WindML" su Qt.

    
risposta data 18.02.2016 - 08:30
fonte
1

Considererei il porting del tuo codice per utilizzare Qt perché è un cross- piattaforma framework GUI per C ++ (funziona su Windows, Linux, MacOSX, Android, iOS, ...), e Qt è molto potente. Inoltre, le versioni recenti di Qt sono compatibili con C ++ 11. L'attuale Qt è Qt5.5 (a febbraio 2016), una versione precedente (Qt4.8) era compatibile con VxWorks.

In alternativa, considera forse la tua applicazione un'applicazione web, magari usando FastCGI, o Wt , o librerie di server HTTP come < a href="http://www.coralbits.com/libonion/"> libonion .

(senza sapere di più sulla tua applicazione, probabilmente non possiamo aiutarti molto di più)

    
risposta data 17.02.2016 - 12:50
fonte

Leggi altre domande sui tag