Skip to main content

Qu'est-ce qu'une conception par Contract ?

Conception par Contrat est une méthode utilisée pour développer un logiciel qui repose sur la création de paramètres d'interface bien définis ou de contrats pour toutes les parties d'un programme.Bien que la conception par Contrat Peut être considéré comme un style de développement conceptuel implémenté par la documentation ou la modélisation, il est plus largement utilisé pour se référer à un mécanisme natif ou tiers dans certains langages de programmation qui nécessite réellement le codage implicite des contrats dans un programme.L'objectif de l'utilisation de la conception par Contract est qu'un programme sera développé et, éventuellement, codé de manière beaucoup plus complète qui supprime les erreurs plus triviales, tandis que l'application des contrats par la langue de soutien rend les erreurs résiduelles facilement trouvées et capturées.Un programme qui utilise des contrats pour les fonctions et les classes peut avoir une conception plus modulaire dans laquelle les classes individuelles peuvent être facilement réutilisées dans d'autres programmes en raison de la définition claire de leurs contrats.

La base de la conception par contrat La philosophie de programmation est l'idée de contrats commerciaux du monde réel.Dans ce modèle, chaque méthode et classe d'un programme orienté objet définit un contrat par lequel toute autre méthode ou objet interagissant avec lui doit respecter.Chaque classe peut également avoir un contrat, appelé une classe invariante, qu'elle doit suivre en interne pour s'assurer que les contrats extérieurs ne compromettent pas sa capacité à fonctionner.

Les deux parties d'un contrat qui sont les plus importants pendant la conception et le codage sont les conditions préalableset les conditions post-conditionnées.Ces deux parties de la conception par Contract Le modèle définit l'état du programme avant qu'une méthode ne soit appelée et l'état du programme une fois la méthode terminée l'exécution.D'autres parties d'un contrat peuvent varier selon la mise en œuvre, mais peuvent inclure des références croisées à d'autres modules, des conditions de synchronisation et des exigences de l'ordre d'ordre.

En développant des contrats pour chaque classe et méthode, l'interaction des différentes parties d'un programme peutêtre facilement cartographié et prédit.L'application des contrats, soit par l'utilisation d'assertions ou d'autres mécanismes, garantit également que le programme ne tentera pas d'exécuter s'il y a une violation des contrats, car toute sortie produite dans cet État serait techniquement invalide de toute façon.Lorsqu'il est mis en œuvre en tant que fonctionnalité de langue maternelle, conception par Contract peut aider à s'assurer qu'un produit final fonctionnera comme prévu avec peu de chances d'erreurs imprévues.

Certaines des complications qui viennent avec l'utilisation de la conception par Contrat La philosophie comprend des temps de conception plus longs et un développement plus granulaire d'un système avant le début du codage, ce qui peut parfois être difficile avec un grand projet.Plus pratiquement, le mécanisme de validation du contrat utilisé dans un langage de programmation qui soutient nativement les contrats peut ralentir l'exécution du programme.Une mauvaise compréhension de la conception par Contract La méthodologie peut conduire à un programme qui utilise des contrats pour effectuer la vérification des erreurs de base, conduisant potentiellement à une application sujette à des accidents soudains après la libération.