Perché la progettazione per contratto è considerata un'alternativa al processo di pseudo programmazione?

3

In questo momento sto leggendo Code Complete di Steve McConnell e nel capitolo 9 parla del Pseudo Programming Process (PPP).

Da quello che ho capito, il PPP è un modo di programmazione in cui il programmatore scrive prima lo pseudo codice per la routine su cui sta lavorando, quindi lo perfeziona fino al punto in cui praticamente ogni riga di codice pseudo può essere implementata in 1-3 righe di codice, quindi scrive il codice nel linguaggio di programmazione designato e infine lo pseudo codice viene salvato come commenti allo scopo di documentare la routine.

Nel capitolo 9.4 l'autore menziona alternative al PPP, una delle quali è "design by contract". Nella progettazione per contratto, si affermano fondamentalmente le precondizioni e le postcondizioni di ciascuna routine.

Ora perché dovrebbe essere considerata un'alternativa? A me sembra ovvio che dovrei usare entrambe le tecniche contemporaneamente e non scegliere l'una rispetto all'altra.

    
posta Mihai Bişog 01.09.2012 - 15:45
fonte

2 risposte

2

La progettazione per contratto affronta il problema da una diversa angolazione. La progettazione per contratto inizia con la descrizione dello stato del programma consentito in determinati punti, come l'inizio e la fine dei metodi e l'applicazione di tale metodo. Lingue come Eiffel sono state costruite da zero con questo in mente.

In teoria, se lo stato è stato specificato completamente dai contratti, la logica del programma può essere derivabile. In pratica, diventa test unitario eseguibile incluso con l'applicazione.

Il PPP, al confronto, è un modo top-down di arrivare al codice affrontando solo un livello di astrazione con cui lo sviluppatore si trova a suo agio e lo sta lentamente decomprimendo. Il PPP si occupa del "come" a livelli sempre più bassi di dettaglio, mentre la progettazione per contratto si concentra sul "cosa" in primo luogo.

    
risposta data 01.09.2012 - 15:59
fonte
0

Penso che sia l'intento dei concetti. In entrambi i casi, descrivi cosa farà il codice prima di scriverlo. In PPP stai descrivendo la logica che verrà utilizzata per far funzionare le funzioni, nell'altra stai descrivendo le funzioni stesse. Direi che uno è solo una descrizione "di livello superiore".

Penso che potresti usare entrambi, ma se lo facessi probabilmente ti saresti reso conto che l'uno o l'altro era praticamente ridondante, date le descrizioni fornite dall'altro.

    
risposta data 01.09.2012 - 15:52
fonte

Leggi altre domande sui tag