giovedì 28 marzo 2013

8 Miti Strumenti di modellazione del software e linguaggi di modellazione

Questi otto miti su strumenti di modellazione e linguaggi di modellazione potrebbe sembrare manifestamente ridicola dato ciò che sappiamo su come fare meglio di sviluppare software in maniera tale da assicurare la realizzazione delle attività beneficio e ridurre al minimo le possibilità di difetti di passare inosservate. Ma una decina di anni fa, credo nella validità di queste idee sotto guidato un mercato globale in strumenti software pesanti di peso di modellazione. Questo era un periodo in cui l'industria del software è stata inondata con progetti di software ben finanziati tutti i disegni da un pool relativamente ristretto di programmatori esperti che hanno l'opportunità di comandare forti tariffe orarie per i loro sforzi. Alti tassi di programmatore a sua volta ha reso facile per i produttori di strumenti di modellazione di incantare i responsabili di progetto con le storie dei requisiti programmatore essere ridotto attraverso l'utilizzo di sofisticati strumenti di modellazione. Ricordate che nella parte superiore della fascia di prezzo era tipico da riscuotere 10 dollari, 000 per lo strumento, più l'importo stesso per la formazione per sviluppatore.


Mito 1. I programmatori passano una digitazione molto tempo.

Generazione di codice scheletro quindi risparmiare un sacco di tempo per i programmatori costoso come ci sarà molto meno a digitare per fare. Codice Skeleton è il codice sorgente senza istruzioni eseguibili - in altre parole, le dichiarazioni di classe, i campi e le firme di metodo con spense corpi dei metodi. Generazione del codice scheletro è il fulcro di tutto il set di ingegneria in avanti, con l'idea che l'attività specifica per il lavoro di progettazione è meglio eseguita da un analista / progettista pittoricamente, utilizzando uno strumento di modellazione. La struttura del codice può quindi essere precisato dai programmatori che hanno bisogno solo di concentrarsi sui dettagli di un metodo alla volta, senza doversi preoccupare il modello più grande nel suo complesso.
Perché questo è un mito?
Mentre lo scheletro può spiegare, ad esempio, il 20% o giù di lì del codice sorgente finale, sarebbe ingenuo pensare che ciò equivale quindi al 20% dello sforzo di intero software di codifica. L'effettivo risparmio nel costo di sviluppo a causa della generazione di codice scheletro è stato probabilmente trascurabile per le seguenti ragioni: 1. Il singolo più lento-dita programmatore passa molto più tempo a pensare a degli algoritmi, guardando gli esempi di come utilizzare librerie di terze parti, pensando a nomi di variabili descrittive, scrittura dei test e fissaggio difetti. In altre parole, anche se tutto il tempo trascorso tipizzazione può state eliminate, programmazione richiede ancora circa la stessa lunghezza di tempo. 2. Anche se digitando reale era lo stadio cineticamente, i nomi di tutte le classi, campi e metodi devono ancora essere digitato nella strumento di modellazione. Così il? Sforzo programmatore digitando s è stato semplicemente spostato altrove.

Mito 2. Programmatori trascorrere un tempo decifrare disegnati a mano schemi progettuali per l'assenza di un unico significato unificato standard per i simboli.

Arrivati ​​tramite percorsi separati, gli autori principali aveva prescritto parallele lingue oggetto di modellazione orientati composti da simboli per rappresentare costrutti come classe, ereditarietà, composizione e information hiding. La standardizzazione della nomenclatura consente di risparmiare tempo trascorso il passaggio tra norme concorrenti. Utilizzando uno strumento di modellazione allora lo strumento può far rispettare le norme di modellazione lingua.
Perché questo è un mito?
Si lavora con i non-linguaggio unificato per tutto il tempo perché non vi è un compromesso tra uniformità e la libertà di espressione. Ecco un esempio per illustrare questo punto. Se vi viene chiesto da un visitatore al vostro ufficio per le indicazioni per la stazione ferroviaria, si potrebbe rispondere? Aspetta un attimo, io ti disegnare una mappa?. Ma quale linguaggio pittorico si deve adottare, e il visitatore a capire? La mappa si disegna probabilmente contiene un inizio chiaro e punto di arrivo, con le frecce di direzione, curve a destra ea sinistra, svincoli stradali e punti di riferimento significativi.Sarebbe la comunicazione essere aiutato dalla rigorosa applicazione di un linguaggio di modellazione in questo caso? O sarebbe, come è molto più probabile che sia il caso, un linguaggio creato on-the-fly utilizzando l'espressione senza ostacoli essere veloce, espressivo e comprensibile. Ovviamente ci sono differenze tra i modelli di oggetti specificando orientati ea breve distanza in poche strade, ma ci sono anche molte somiglianze. Rilevanza delle informazioni visualizzate è più significativo per la comunicazione che la sua stretta aderenza ad una lingua convenuta. Pensate a quanto di una domanda per il disegno ad hoc mappe stradali di direzione sarebbe un dolore rispetto a un rapido schizzo su un pezzo di carta straccia.

Mito 3. Dopo la formazione, clienti e analisti / programmatori possono sia capire e convalidare schemi di progettazione del software si erano seduti attorno a un tavolo. I diagrammi possono funzionare come una via di mezzo che sia i clienti e gli esecutori in grado di capire.

Utilizzando un metodo di cattura requisiti, le funzioni del nuovo sistema può essere descritto, prima in inglese, e poi successivamente a maggiori astrazioni descrivono il comportamento statico e dinamico del modello.
Perché questo è un mito?
In practice clienti relazionarsi bene con i casi d'uso, ma solitamente si perdono da qualche parte lungo la strada ai diagrammi di transizione di stato e diagrammi di classe. Anche alcuni sviluppatori non riescono a cogliere le differenze tra la composizione e l'aggregazione in quanto questi sono concetti che esistono solo nel modello e non nel codice. In questi giorni ci mostrano un software capace di clienti, non gli schemi di ciò che il software sarà.

Mito 4. Lasciati a se stessi, i programmatori di scrivere software senza preoccuparsi se il prodotto finito sarà utilizzato. Dare programmatori un modello del sistema richiesto significa che gli obiettivi del sistema nel suo complesso sono garantiti per essere soddisfatti.

Una dettagliata up-front design aggiunge prevedibilità al processo di creazione del software e aiuta la pianificazione dello sforzo di attuazione. Il dettaglio nel design, maggiore è la certezza che il risultato finale soddisferà i requisiti.
Perché questo è un mito?
Solo una minoranza di programmatori avrebbero sfornare codice senza preoccuparsi se il prodotto finito è di uso per il cliente. Probabilmente, vincolando i programmatori di lavorare su piccole funzioni una alla volta crea distacco dal quadro generale. Invece di con l'obiettivo di soddisfare il cliente, l'obiettivo è quello di attuare un certo numero di metodi entro un termine determinato. Si deve anche notare che questo approccio presuppone che il disegno è? Corretta?. Il progetto non può essere corretto, o ci può essere nulla di simile ad una corretta progettazione, se ci sono difetti concettuali dei requisiti, come indicato dal cliente.

Mito 5. Strumenti di modellazione costosi paga per loro nel lungo periodo.

Programmatori di software sono costosi, quindi è ovvio che la riduzione della necessità di tempo programmatore sta andando a risparmiare un sacco di soldi in tutta la durata del ciclo di vita del progetto.
Perché questo è un mito?
Tenendo presente che, come si è detto, questo potrebbe allungare a 10 dollari, 000 un seggio in più quasi altrettanti per l'addestramento, questo è piuttosto un reclamo. Non che il costo dello strumento e della formazione acquista più di un paio di settimane di tempo per i programmatori, ma lo strumento è improbabile che risparmiare il costo equivalente perché la premessa su cui si basa questa affermazione assume il progetto contiene una elevata percentuale di lavoro di programmazione ripetitivo che può essere condensata ad un compito semplice modellazione. In realtà, i programmatori sono abili ad evitare la ripetizione, utilizzando linguaggi specifici del dominio e generatori di codice, altri aspetti, modelli, ereditarietà e quadri come Spring e Hibernate tutti a tenere basso il volume di verbose, scritto a mano il codice.

Mito 6. I team di progetto spesso cambiare idea su quale linguaggio di programmazione da utilizzare più volte durante la fase di implementazione del ciclo di vita del progetto.

Model Driven Architecture (MDA) rende il linguaggio di programmazione di destinazione swappable. A differenza della generazione del codice di scheletro, MDA per il risultato della traduzione del modello di un'implementazione (programmazione) è un linguaggio di sistema eseguibile.
Perché questo è un mito?
L'efficacia di MDA come un approccio globale di sviluppo non è la questione qui - e non se la flessibilità sulla lingua di arrivo implementazione è che utile un'opzione. Le bolle di domanda verso il basso per arrivare a: hai mai avuto modo parte attraverso un progetto e desiderato di d scelto una lingua alternativa di programmazione, e per di più desiderato di poter prende le distanze dai dettagli del linguaggio di programmazione? Questo è improbabile per due motivi. In primo luogo, si sceglie un linguaggio di programmazione prima di iniziare lo sviluppo in base a disponibilità di biblioteche, strumenti, forza lavoro e la conoscenza della comunità. In secondo luogo, quando gli insetti hanno bisogno di fissaggio, è necessario concentrarsi su il dettaglio dell'azione di una singola riga di codice, in cui versione della piattaforma di runtime e improvvisamente inizia alla materia, non un passo indietro dal dettaglio.

Mito 7. E 'una buona cosa per mantenere il codice separato per la documentazione.

Il codice ha lo scopo primario di corretto funzionamento. Se viene meno a questo scopo, il cliente non dovrà pagare per il prodotto. Di solito, il codice contiene alcuni work-around, scoprono con il senno, correzioni e codice standard che sono tutti brutti e oscurare l'immagine del modello a oggetti di business che soggetti coinvolti nel progetto vuole vedere. Un modello pulito del software separato al dettaglio di attuazione in grado di fornire una visione più significativa, e se vale la pena il modello aggiornato come il codice viene sviluppato.
Perché questo è un mito?
Non è un mito che un modello è utile. E 'un mito che vale la pena lo sforzo di mantenere il modello, perché questo sforzo è notevole, e ha un effetto a catena. Lo sforzo è che i programmatori spostare il codice di base in avanti rapidamente, ma in modi che rispondono alla scoperta delle limitazioni nella progettazione, e di sfruttare meglio le implementazioni in cui sono scoperti. Ad esempio, un programmatore può trovare che il disegno contiene alcune ripetizioni, il che ha senso a livello di oggetto di business, ma sarebbe uno spreco un modello da seguire nella costruzione. Tuttavia, questo provoca un mal di testa a livello di modello. Se il modello di riflettere i requisiti catturato, o essere aggiornato per riflettere l'attuazione e ottimizzato? E cosa succede quando risulti che il progetto era insufficiente - che vedremo dopo.

Mito 8. Il disegno può essere ottenuto a destra prima parte la programmazione.

Questo è il più pericoloso dei miti perché sembra la più plausibile. Il settore delle costruzioni, ad esempio, esegue progetti con un dettagliato piano di up-front ogni volta. Il design è modellato, visualizzati e recensione accuratamente prima di inizio lavori di costruzione. Essa, quindi, non sembra irragionevole che il software può anche essere concepita e progettata per adattarsi insieme senza soluzione di continuità prima parte la programmazione, rendendo la programmazione un po 'di una formalità, con un calendario prevedibile. Quindi tutto ciò che aiuta la produzione di design chiaro e inequivocabile prende lo sviluppo di software più vicino a questo obiettivo di assicurato, consegna puntuale di un prodotto idoneo allo scopo. Strumenti di modellazione del software offrono la promessa di una completa, progettazione di dettaglio, con una storia tracciabile dai requisiti di catturare attraverso ad ogni aspetto del progetto definitivo.
Perché questo è un mito?
E 'un mito, perché l'industria del software e delle costruzioni sono diversi. Ecco le differenze: lo scopo di un progetto di costruzione è normalmente evidente. Mentre i dettagli di un ponte o di un edificio richiede un sacco di pensiero, la funzione generale si può riassumere in poche frasi. Questo non è così al software che deve soddisfare uno scopo che è difficile specificare. I materiali e componenti di costruzione si modificano lentamente. Questo non vuol dire che i nuovi materiali non entrino in uso in costruzione, ma nel software delle piattaforme, strumenti, librerie e framework cambiano molto più rapidamente che rende più difficile per specificare up-front quanto sia facile l'attuazione sarà e quanto bene il prodotto finito eseguirà. La complessità delle esigenze è molto maggiore per software.Semplicemente non ci sono più le condizioni, regole, eccezioni e casi speciali per la definizione di un sistema software. Il software può essere adattato e modificato e ha senso di sfruttare tale flessibilità.

Pensieri di chiusura

Il settore del software ha fatto molta strada negli ultimi dieci anni, ma l'influenza vestigia di strumenti di modellazione ancora oggi in un paio di punti chiave. Cataloghi degli strumenti software e premi categorie di concorso, in particolare, sono ancora aderenti questa classificazione antiquato di strumenti di sviluppo senza svegliarsi al fatto che l'industria ha da tempo sviluppato scettico di affermazioni infondate circa la produttività dei programmatori di strumenti di modellazione e si è trasferito a migliorare gli approcci più saldamente radicati nella produttività misurabile.

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.