Spelling suggestions: "subject:"< b> motsclés< /b> "" "subject:"< b> bouclés< /b> ""
1 |
Architecting software systems using model transformations and architectural frameworksPerrouin, Gilles 20 September 2007 (has links)
<b>Résumé</b>
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.
La seconde partie de cette thèse présente en détail les phases de définition des charges, d’analyse et de conception de la méthode FIDJI. Tout d’abord, un modèle de définition de ligne de produits est introduit permettant la définition des charges de manière informelle en se basant sur des variations de cas d’utilisation et un dictionnaire de données et encadré par des règles méthodologiques simples. Nous définissons ensuite la phase d’analyse comme un raffinement de la phase de découverte des charges en proposant la modélisation des concepts du domaine à l’aide de diagrammes UML 2.0 ainsi que l’enrichissement des cas d’utilisation par des expressions OCL (Object Constraint Language). Au niveau de l’analyse, nous démontrons comment un certain degré de flexibilité peut être obtenu au niveau du cycle de vie des évenements échangés entre le système et ses acteurs via l’utilisation de variables d’états. La phase de design s’intéresse principalement à l’aspect architectural, en proposant un modèle de composants basé sur UML 2.0 permettant la description de styles architecturaux structurant le framework architectural. Des profiles UML 2.0 définissant les éléments de modèles utilisés, leurs conditions d’application ainsi que des règles de cohérence et de traceabilité pour les modèles d’analyse et de conception sont proposés. Le processus méthodologique, commun aux phases d’analyse et de conception, consiste en l’écriture d’un programme de transformation de modèles permettant d’instancier le framework architectural tout en étant guidé par des contraintes d’instanciation qui définissent de manière souple les frontières de la ligne de produits.
Enfin, la dernière partie de cette thèse s’intéresse à l’application concrète de la méthode FIDJI. Une étude de cas appartenant au domaine des applications e-commerce est détaillée, illustrant ainsi les modèles FIDJI. Nous montrons en particulier comment écrire le programme de transformations à partir d’opérations de transformation prédéfinies ainsi que la raison d’être et l’utilisation des contraintes guidant le processus d’instanciation au coeur de la méthode.
<b>Abstract</b>
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 defining product line assets at analysis and design levels and which is instantiated in order to obtain product line members thanks to model transformations. This part then describes key methodological principles driving the choice of architectural framework models and how flexibility in product derivation can be achieved and controlled by constraints defined over the set of architectural framework models.
The second part of this thesis is devoted to requirements elicitation, analysis and design phases of the method. For requirements elicitation, a specific product line template is defined to allow for the description of a software product line in an informal manner via use case variants and data dictionaries. The analysis phase refines requirements elicitation by allowing the precise description of domain concepts in terms of UML models as well as functionalities in terms of use cases completed by OCL expressions. Variability is ensured through the use of state variables in OCL expressions which enable a wide variety of scenarios to be implemented in the product. Constraints indirectly define product line boundaries by preventing certain instantiations from being made. The design phase focuses on the architectural design of the architectural framework and describes it in terms of interacting components structured via architectural styles. Analysis and design models are supported by UML profiles defining the constructs offered by the FIDJI method, their usage conditions as well as traceability and consistency rules ensuring model correctness. The methodological process for both analysis and design consists in writing a transformation program, validated over the aforementioned constraints, that will instantiate the architectural framework to obtain a viable product line member.
The last part of the thesis deals with the practical application of the method. A case study belonging to the e-commerce domain illustrates the FIDJI method in detail and a simple architectural framework is defined for this purpose. In particular, we show how the transformation program is created from predefined transformation operations dedicated to FIDJI models and the rationale and usage of constraints controlling the instantiation of the architectural framework.
|
Page generated in 0.191 seconds