Résumé:
Le champ du génie logiciel est en évolution sans cesse croissante pour mettre sur pied de nouvelles approches, méthodes, modèles et outils qui permettraient la prise en charge efficace des nouveaux besoins complexes et très dynamiques dus à l’omniprésence des solutions logicielles dans les divers secteurs de la vie humaine. La prise en charge efficace des ces besoins impose le passage à une situation ou la production d’un logiciel de qualité doit être possible dans des délais très courts à des coûts très réduit. Actuellement deux grandes approches semblent être très prometteuses pour répondre conjointement à ces objectifs: l’approche de conception de système logiciel par assemblage de composants, plus connus sous le nom d’architecture logicielle et l’approche de Ligne De Produits. Malgré que les lignes de produits logiciels sont inspirées des lignes de produits industrielles où l'activité de production repose sur l'assemblage de composants certifiés, si nous analysons les lignes de produits logiciels existantes, nous constatons qu'elles reposent sur des approches logicielles modulaires et objets traditionnelles qui ne sont pas adaptées aux principes de base des lignes de produits. Estimant que l'architecture logicielle pourrait représenter une solution prometteuse à cette problématique, la première problématique de ce travail de recherche est d'explorer la possibilité de fournir des lignes de produits logiciels par un noyau basé fondamentalement sur l'architecture logicielle et d'effectuer des évaluations dans le contexte de l'e-gouvernement. L'e-gouvernement est le deuxième problème majeur abordé par ce travail. Dans cette thèse, nous étudions la possibilité de dériver les applications d'e-gouvernement ou une partie très importante d'entre elles à partir d'une ligne de produits simple ou composée.
La solution proposée présente une première étape vers la fondation d'une approche destinée au développement de lignes de produits logiciels à base de composants et à la gestion de lignes de produits dans des domaines complexes et omniprésents comme l'e-gouvernement. L'approche que nous proposons vise la gestion de la réutilisation au sein des lignes de produits logiciels à deux niveaux d'abstraction: entre les applications incluses dans une même ligne de produits, et entre les lignes de produits appartenant au même domaine. Pour une gestion efficace de la réutilisation au sein des lignes de produits logiciels, nous introduisons l'approche «Component Based Product Line». Alors que, pour gérer la réutilisation entre les lignes de produits, nous suggérons l’approche Aspect Multiple Product Line. L'approche proposée est validée dans le contexte du domaine de l'e-gouvernement.