Skip to main content

Cos'è un progetto di contratto e reg;?

Design tramite contratto e reg;è un metodo utilizzato per sviluppare software che si basa sulla creazione di parametri di interfaccia ben definiti o contratti, per tutte le parti di un programma.Sebbene il design tramite contratto e reg;Può essere visto come uno stile di sviluppo concettuale che viene implementato attraverso la documentazione o la modellazione, viene più ampiamente utilizzato per fare riferimento a un meccanismo nativo o di terze parti all'interno di alcuni linguaggi di programmazione che richiedono effettivamente la codifica implicita dei contratti all'interno di un programma.L'obiettivo di utilizzare il design tramite contratto e reg;è che un programma verrà sviluppato e, infine, codificato in modo molto più completo che rimuove errori più banali, mentre l'applicazione dei contratti da parte del linguaggio di supporto fa eventuali errori residui facilmente trovati e catturati.Un programma che utilizza i contratti per funzioni e classi può avere una progettazione più modulare in cui le singole classi possono essere riutilizzate facilmente in altri programmi a causa della chiara definizione dei loro contratti.

La base per la progettazione da parte del contratto e Reg;La filosofia di programmazione è l'idea di contratti commerciali del mondo reale.In questo modello, ogni metodo e classe in un programma orientato agli oggetti definisce un contratto con il quale qualsiasi altro metodo o oggetto che interagisce con esso deve attenersi.Ogni classe può anche avere un contratto, chiamato invariante di classe, che deve seguire internamente per garantire che i contratti esterni non compromettano la sua capacità di funzionare.

Le due parti di un contratto che sono più importanti durante la progettazione e la codifica sono le preconoscenzee le post-condizioni.Queste due parti del design tramite contratto e reg;Modello Definire lo stato del programma prima che venga chiamato un metodo e lo stato del programma dopo che il metodo ha completato l'esecuzione.Altre parti di un contratto possono variare in base all'implementazione ma possono includere riferimenti incrociati ad altri moduli, condizioni di sincronizzazione e requisiti di ordine di esecuzione.

Sviluppando contratti per ogni classe e metodo, l'interazione delle diverse parti di un programma puòessere facilmente mappato e previsto.L'applicazione dei contratti, attraverso l'uso di asserzioni o altri meccanismi, garantisce anche che il programma non tenterà di eseguire se vi è una violazione dei contratti, perché qualsiasi produzione prodotta in quello stato non sarebbe tecnicamente non valida.Se implementato come caratteristica di lingua madre, progettazione tramite contratto e reg;può aiutare a garantire che un prodotto finale operi come previsto con poche possibilità di errori imprevisti.

Alcune delle complicazioni che derivano dall'uso della progettazione da parte del contratto e Reg;La filosofia include tempi di progettazione più lunghi e uno sviluppo granulare di un sistema prima dell'inizio della codifica, che a volte può essere difficile con un grande progetto.Più praticamente, il meccanismo di convalida del contratto utilizzato in un linguaggio di programmazione che supporta in modo nativo i contratti può rallentare l'esecuzione del programma.Una scarsa comprensione del progetto per contratto e reg;La metodologia può portare a un programma che utilizza i contratti per eseguire il controllo degli errori di base, portando potenzialmente a un'applicazione soggetta a crash improvvisi dopo il rilascio.