Architectures logicielles : contraintes d'architecture
Abstract
Dans ce chapitre, nous présentons un concept complémentaire, mais essentiel, dans la description d'architectures logicielles, qui est celui de contrainte d'architecture. Nous expliquons le rôle précis de ces entités, et leur importance dans l'ingénierie du logiciel à objets, à composants ou à services. Nous décrivons ensuite la façon dont elles sont spécifiées et interprétées. Un architecte peut définir des contraintes architecturales puis les associer à ses descriptions d'architecture pour restreindre la structure de celles-ci et pour ultimement rendre persistant un certain niveau de qualité. Grâce à ces contraintes, il peut notamment imposer le respect d'un patron ou un style architectural afin de garantir un certain niveau de maintenabilité. L'interprétation de ces contraintes lui permettra par la suite de vérifier si ces patrons/styles sont toujours respectés après l'évolution des descriptions d'architecture. Nous ferons un état de l'art, qui se veut complet, des techniques et des langages existants pour exprimer ces contraintes. Nous présentons ensuite un certain nombre de travaux que nous avons récemment conduits, et dans lesquels nous avons développé des langages pour exprimer ces contraintes sur des architectures d'applications à objets, à composants et à services. Nous illustrons ces travaux par différents exemples de contraintes d'architecture représentant des styles et patrons connus, comme le style d'architecture Pipe and Filter et les patrons d'architecture Service Façade ou Model-View-Controller. Nous concluons ce chapitre par un énoncé de quelques questions ouvertes donnant lieu à des travaux de recherche en cours autour de ce concept de contrainte d'architecture.
Domains
Software Engineering [cs.SE]Origin | Publisher files allowed on an open archive |
---|
Loading...