Come stimare lo sforzo richiesto per convertire una base di codice di grandi dimensioni in un'altra lingua / piattaforma [duplicato]

-1

Abbiamo un programma MFC C ++ con circa 200.000 righe di codice al suo interno. È praticamente finito. Vorremmo assumere qualcuno per convertirlo a funzionare per Mac, ma non siamo sicuri di come stimare correttamente una tempistica ragionevole per questo progetto.

Quali tecniche possiamo usare per stimare cosa ci vorrebbe per convertire questo progetto in un Mac?

Inoltre, c'è qualcosa in particolare che dovremmo stare attenti a questo tipo di conversione?

    
posta Justin Branch 27.11.2011 - 04:55
fonte

1 risposta

3

La prima cosa che farei nel tentativo di stimare la quantità di lavoro coinvolta in questa o in una qualsiasi porta è capire quanta parte del codice deve cambiare e quanto dovrebbe funzionare senza modifiche sulla piattaforma di destinazione.

Se metà del codice è neutrale rispetto alla piattaforma, la dimensione del progetto di porting cambia di conseguenza. Può valere la pena di rifattorizzare il codice sulla piattaforma originale per renderne più neutrale la piattaforma e ottenere una migliore separazione tra la parte specifica della piattaforma e la parte neutrale della piattaforma. Potresti considerare che il lavoro faccia parte del progetto di porting, ma può essere fatto dagli sviluppatori che lavorano sulla piattaforma originale usando test già esistenti. Questo approccio ti consente di utilizzare l'esperienza che hai già per ottenere i migliori risultati, risparmiare tempo e denaro durante la porta effettiva e ti lascia con una base di codice parzialmente condivisa tra le due piattaforme, rendendo più semplice mantenere sincronizzate le due versioni.

La prossima cosa da fare è capire come vuoi implementare la porta. Vuoi riscrivere l'interfaccia utente utilizzando Objective-C e Cocoa? Vuoi provare a utilizzare una sorta di strumento di compatibilità che ti consente di creare MFC su Mac? Vuoi invece effettuare il porting su Java, in modo che tu possa girare ovunque? Il grado di somiglianza tra le piattaforme originali e quelle target avrà ovviamente un grande impatto sulla quantità di lavoro richiesto. Se puoi usare più o meno il codice originale come modello per la porta, questo accelera il lavoro.

Valuta l'uso del tuo prodotto delle convenzioni dell'interfaccia utente su entrambe le piattaforme. Quanto sei disposto a cambiare il tuo prodotto per farlo sembrare meno simile a un prodotto Windows con porting e più simile a un prodotto Mac? Ancora una volta, una porta dritta sarà più semplice, ma potrebbe non soddisfare le aspettative dei clienti riguardo a cosa dovrebbe essere una versione Mac. Alcune differenze (ad esempio il menu Servizi di Mac) potrebbero non costare molto perché sono più o meno automatiche, mentre altre (eventualmente annullare il supporto) potrebbero richiedere molto lavoro. Non dimenticare di tenere conto del costo di rielaborazione degli elementi grafici che non possono essere riutilizzati. Ad esempio, le applicazioni Windows spesso utilizzano barre a nastro piene di icone minuscole che potrebbero impazzire la maggior parte degli utenti Mac e queste icone potrebbero dover essere ridisegnate per un migliore effetto sul Mac.

Queste cose ti aiuteranno a capire quello che vuoi e quali parti del progetto saranno più difficili, ma probabilmente finirai con l'idea di quanto lavoro è coinvolto. Se hai intenzione di assumere una società esterna per fare il porto, ottenere stime da diverse aziende. Se sono per lo più d'accordo, puoi stare meglio che le stime siano ragionevoli.

    
risposta data 27.11.2011 - 08:51
fonte

Leggi altre domande sui tag