Perrouin, Gilles
(eng)
Software systems have become essential to many human activities and have proliferated thanks to various hardware innovations such as mobile computing (laptops, personal digital assistants, mobile phones) and networks (DSL, WIFI, GSM, etc.) enabling interactions between users and computer systems in virtually any place. This situation has created both a great complexity for such distributed systems to be designed and great expectations (mainly concerned with quality, time and induced costs of the software) from the users of these systems, requiring improvements in software engineering methods in order to meet these challenges.
On the one hand, Model Driven Engineering (MDE), by allowing the description of software systems through abstractions and deriving useful system artifacts, harnesses inherent complexity of software systems and reduces time-to-market via model transformations. On the other hand, software product lines foster software reuse by proposing to develop applications based on a set of common assets belonging to a particular domain. Thus, when product line assets are carefully designed, both quality and time-to-market requirements can be achieved. Development methods that have resulted from the product line paradigm generally focus on defining common and variable assets to be reused by product line members. However, they hardly address the development of applications from the product line assets in a systematic way. Furthermore, those considering it propose automated but rather inflexible approaches that unnecessarily exclude products which, although addressable by product line assets, have not been explicitly envisioned during product line definition. If in some domains - in particular, those including hardware constraints and/or critical features - it is possible to fully determine the products that are part of the software product line, in the other cases, an initial set of products can only be considered assuming that the customers' requests will be met by this set. We believe that this assumption is false in general and this thesis examines the research question which consists in proposing a set of models and a product line development method to offer more flexibility while deriving products in order to seamlessly address customers' requests. The domain we consider is that of web e-bartering systems.
This thesis strives to propose a trade-off between automated and unsupported product derivation by providing a model-driven product line development method that allows developers to define product line members by transforming a coherent and layered set of product line models. Moreover, constraints on the possible transformations have to be specified in order to determine which products cannot be derived both for functional and technical reasons.
The first part of this thesis introduces the foundational concepts of our FIDJI method. In particular, it describes the notion of architectural framework as a set of models [...]
(fre)
Résumé: les applications logicielles sont devenues indispensables dans un grand nombre d'activités humaines et se sont répandues grâce à l'avènement des réseaux (ADSL, WIFI, GSM...) ou de l'informatique nomade (ordinateurs portables, assistant digitaux personnels, téléphones mobiles etc.) qui ont rendu l'interaction avec des systèmes informatiques possible en presque tout lieu. Cet état de fait a engendré à la fois une grande complexité pour la conception de ces systèmes distribués et de grandes attentes de la part des clients de ces systèmes, préoccupés principalement par les qualités et temps de réalisation des applications logicielles exécutées par ces systèmes ainsi que les coûts qui en découlent. Il est donc nécessaire d'améliorer nos méthodes de développement afin de faire face à ces nouveaux défis.
D'une part, l'ingénierie dirigée par les modèles (IDM), en permettant la description d'applications logicielles à divers niveaux d'abstraction et en générant certains de leurs éléments via la transformation de modèles, s'attaque à la complexité intrinsèque de ces systèmes et réduit leur temps de développement ainsi que celui de maintenance. D'autre part, l'approche de ligne de produits accélère la réutilisation logicielle en proposant le développement d'applications basées sur un ensemble de composants communs dans un domaine déterminé. Ainsi, lorsque ceux-ci sont conçus avec soin, il est possible de satisfaire simultanément des critères de qualité et de temps de développement. Les méthodes qui ont été construites sur le paradigme de ligne de produits se sont principalement attachées à décrire les points communs et les différences parmi les composants qui seront réutilisés par les applications membres de lignes de produits.
Néanmoins, un logiciel doit très souvent répondre à un besoin qui émane d'un utilisateur particulier. Il est donc nécessaire de prendre en compte ses attentes qui sont parfois spécifiques à cet utilisateur et il n'est ni possible ni souhaitable de définir et de supporter celles ci dans l'ensemble de composant réutilisables à partir desquels les applications sont dérivées. Certaines méthodes orientées lignes de produits proposent des approches pour la dérivation de produits par trop restrictives qui excluent de manière indue des produits qui, bien que pouvant être développés à partir des composants de la ligne de produits, n'ont pas été envisagés lors de sa définition, ce qui nous prive donc de la possibilité d'adresser facilement les exigences spécifiques des utilisateurs. Si quelques méthodes reconnaissent la nécessité de prendre en compte ces exigences particulières, elles ne fournissent aucune solution systématique pour intégrer ces exigences dans le cycle de développement d'un produit.
Cette thèse s'attache à la définition d'une méthode plus souple pour le développement d'applications dans le contexte de ligne de produits qui s'appuie sur une combinaison de l'approche IDM avec les "frameworks" orientés-objet. Le domaine ciblé par cette méthode est celui des applications de ventes enchères sur Internet qui est un domaine non-critique pour lequel une grande variabilité dans les scenarii d'utilisation est requise.
La première partie de cette thèse introduit les concepts de base de notre méthode nommée FIDJI. En particulier, nous définissons la notion de framework architectural comme un ensemble de modèles permettant la description cohérente des divers constituants d'analyse et de concept d'une ligne de produits. Cette entité est ensuite instanciée par le biais de transformations de modèles. Nous décrivons ensuite les principes méthodologiques qui ont déterminé les choix des modèles du framework architectural ainsi que l'instanciation flexible de produits encadré par des contraintes définies sur les modèles du framework architectural.[...]
Bibliographic reference |
Perrouin, Gilles. Architecting software systems using model transformations and architectural frameworks. Prom. : HEYMANS, Patrick ; GUELFI, Nicolas |
Permanent URL |
http://hdl.handle.net/2078.2/4087 |