Cos'è l'automazione dello sviluppo?

3

Quando qualcuno fa riferimento a "Automazione dello sviluppo", cos'è esattamente?

Quali sono alcuni framework per l'automazione dello sviluppo?

Il mio capo mi ha chiesto di sviluppare una strategia per implementarlo in azienda, ma non ho trovato molte informazioni relative alla questione. Google sembra pensare che mi riferisco al test dell'automazione, che non è il caso.

    
posta AJC 05.12.2012 - 00:59
fonte

2 risposte

14

Mentre "automazione dello sviluppo" è non un termine comunemente usato e riconosciuto del software dev. industria, l'ho sentito molte volte nella mia vita.

Gli uomini d'affari normalmente lo usano per riferirsi a "tutto ciò che può accelerare il processo di sviluppo e consentire alla società di aggirare la maggior parte, se non tutti, del processo di sviluppo del software, passando da una semplice lista di desideri a livello aziendale a un pronto -per il prodotto sul mercato (scrivendo il meno possibile di codice e assumendo il minor numero possibile di programmatori) ". In altri termini: "qualsiasi tecnologia / metodologia in grado di ridurre lo sviluppo del software alla cosa più complicata che il ragazzo medio può capire: Lego (TM)". ; -)

Data questa definizione, ci sono tre tecnologie / metodologie che si adattano a questo:

  1. RAD (Rapid Application Development)
  2. Generazione codice
  3. MDA / MDD (Architecture / Sviluppo guidato da modelli)

Queste tecniche possono essere utilizzate solo se / quando è possibile formulare alcune forti ipotesi sulla natura del progetto a portata di mano.

Ad esempio, Ruby-on-Rails e Django possono fare un sacco di generazione di codice ("automazione dello sviluppo del software") perché danno per scontato che ciò che il programmatore vuole produrre è un'applicazione web principalmente coinvolta nell'esposizione di un database ( un modello) all'utente finale attraverso un livello di business logic (un controller) e una pagina Web (una vista).

Se puoi fare affermazioni così forti, puoi automatizzare molto. Dai un'occhiata a questi strumenti per avere un'idea:

link

link

link

E, naturalmente, dai un'occhiata ai potenti strumenti di generazione del codice usati da RoR e Django.

BTW: un caso speciale di "generazione di codice" è l'automazione delle build. Cioè: il tipo di trucchi build-time che puoi fare con Maven, Ant, Rake, Scon, Rake, ecc.

Nell'ambito dello sviluppo generale del software, questi strumenti hanno avuto un successo molto scarso perché (normalmente) non non puoi fare tali ipotesi sulla natura del progetto in questione. Quando sviluppi qualcosa di nuovo o qualcosa di strongmente personalizzato, di solito devi lavorare con la migliore "granularità logica" consentita dai tuoi strumenti, che è la stessa granularità consentita dal tuo linguaggio di programmazione. Qualsiasi altra cosa sarebbe semplicemente di massima per il compito a portata di mano.

    
risposta data 05.12.2012 - 08:51
fonte
1
  1. Chiedi al tizio che ha usato il termine. Non chiedere a qualcun altro; potrebbero non avere lo stesso background del tuo capo.

  2. Ecco alcuni esempi di ciò che considererei l'automazione dello sviluppo:

    • Aggiornamento automatico delle dipendenze, ad es. utilizzando NuGet
    • Automatico processo di creazione
    • Controllo automatico delle regole di stile, ad es. utilizzando FxCop
    • Esecuzione automatica di test unitari con ogni build
    • Aggiornamento automatico dei proxy generati dal codice, ad es. Client WCF
    • Creazione automatica di pacchetti di distribuzione
    • Configurazione automatica degli ambienti di destinazione
    • Implementazione automatica negli ambienti di sviluppo o di controllo qualità, ad es. installa una nuova build ogni notte alle 3:00
    • Calcolo automatico delle metriche, come ad esempio Copertura del codice
    • Test automatici del fumo, ad es. utilizzando Watir
    • Generazione automatica di note di rilascio o almeno dell'elenco dei bug che si trovano nella sezione "Risolto in questa build"
risposta data 01.03.2017 - 03:54
fonte

Leggi altre domande sui tag