5 research outputs found

    Spem4mde : un mĂ©tamodĂšle et un environnement pour la modĂ©lisation et la mise en Ɠuvre assistĂ©e de processus IDM

    Get PDF
    With the emergence of MDE, many organizations have been starting to transform their traditional software development processes into model-driven processes. Kleppe and al. define a model-driven software development as “a process of developing software using different models on different levels of abstraction with (automated) transformations between these models”.While model-driven development processes – called MDE processes – have started to appear, a tool-supported Process Modeling Language (PML) for describing and enacting such processes is still lacking. The concepts of SPEM 2.0 are quite generic since they are supposed to allow describing any kind of software. However, SPEM 2.0 concepts do not succeed in capturing the exact nature of most activities and artifacts of model-driven development. In addition, another major weakness of SPEM 2.0 is the lack of concepts for process enactment.The objective of this thesis is threefold: (1) provide an extension of SPEM that reifies the MDE concepts; (2) provide a language dedicated to behavioral modeling of MDE processes; (3) provide a conceptual architecture of a PSEE (Process-centered Software Engineering Environment) that guides process designer at modeling phase and developers at enactment time.To validate our approach, a prototype of this PSEE is developed under the TOPCASED environment. This prototype provides a graphical editor for structural and behavioral modeling of MDE processes, and a process enactment engine based on process behavior models. We have also applied our approach to a significant case study: the UWE (UML-based Web Engineering) process, which is a MDE process dedicated to web applications development.L’avĂšnement de l’IDM (IngĂ©nierie DirigĂ©e par les ModĂšles) a suscitĂ© beaucoup d’intĂ©rĂȘt de la part des organisations qui de fait commencent Ă  transformer leur processus de dĂ©veloppement traditionnel en un processus de dĂ©veloppement dirigĂ© par les modĂšles, appelĂ© aussi processus IDM.Au moment oĂč ces processus commencent Ă  Ă©merger, nous notons l’absence d’un langage dĂ©diĂ© pour les modĂ©liser et les mettre en Ɠuvre. Le standard SPEM 2.0 propose des concepts gĂ©nĂ©riques qui sont supposĂ©s ĂȘtre capables de dĂ©crire tout type de processus logiciel. Cependant, les concepts de SPEM ne capturent pas la nature exacte des processus IDM. D’autre part, une autre insuffisance majeure de SPEM rĂ©side dans le fait qu’il n’intĂšgre pas les concepts relatifs Ă  la mise en Ɠuvre des processus.L’objectif de cette thĂšse est triple : (1) proposer une extension de SPEM dans laquelle les concepts centraux des processus IDM sont rĂ©ifiĂ©s ; (2) proposer un langage dĂ©diĂ© Ă  la modĂ©lisation comportementale des processus IDM ; (3) proposer une architecture conceptuelle d’un environnement logiciel d’aide Ă  la modĂ©lisation et Ă  la mise en Ɠuvre des processus IDM.Pour valider notre approche, un prototype a Ă©tĂ© dĂ©veloppĂ© sous l’environnement TOPCASED. Ce prototype fournit d’une part un Ă©diteur graphique pour la modĂ©lisation structurelle et comportementale des processus IDM et d’autre part un environnement de mise en Ɠuvre s’appuyant sur les modĂšles comportementaux des processus. Nous avons Ă©galement appliquĂ© notre approche Ă  une Ă©tude de cas significatif: le processus UWE (UML-based Web Engineering), qui est un processus IDM dĂ©diĂ© au dĂ©veloppement d’applications web

    Defining and Using Collaboration Patterns for Software Process Development

    Get PDF
    International audienceCollaboration patterns are an efficient way to define, reuse and enact collaborative software development processes. We propose an approach to define and apply collaboration patterns at modelling, instantiation or execution time. Our patterns, inspired from workflow patterns, are described in CMSPEM, a Process Modelling Language developed in our team. In this paper, we briefly describe the CMSPEM metamodel and focus our presentation on two collaboration patterns: Duplicate in Sequence with Multiple Actors, Duplicate in Parallel with Multiple Actors and Merge. The approach is illustrated by a case study concerning the collaborative process “Review a deliverable

    A Catalog of Reusable Design Decisions for Developing UML/MOF-based Domain-specific Modeling Languages

    Get PDF
    In model-driven development (MDD), domain-specific modeling languages (DSMLs) act as a communication vehicle for aligning the requirements of domain experts with the needs of software engineers. With the rise of the UML as a de facto standard, UML/MOF-based DSMLs are now widely used for MDD. This paper documents design decisions collected from 90 UML/MOF-based DSML projects. These recurring design decisions were gained, on the one hand, by performing a systematic literature review (SLR) on the development of UML/MOF-based DSMLs. Via the SLR, we retrieved 80 related DSML projects for review. On the other hand, we collected decisions from developing ten DSML projects by ourselves. The design decisions are presented in the form of reusable decision records, with each decision record corresponding to a decision point in DSML development processes. Furthermore, we also report on frequently observed (combinations of) decision options as well as on associations between options which may occur within a single decision point or between two decision points. This collection of decision-record documents targets decision makers in DSML development (e.g., DSML engineers, software architects, domain experts).Series: Technical Reports / Institute for Information Systems and New Medi

    ModĂ©lisation et mise en Ɠuvre de processus collaboratifs ad hoc

    Get PDF
    Software development is an intensively collaborative activity, where common collaboration issues (task management, resource use, communication, etc.) are aggravated by the fast pace of change, artifact complexity and interdependency, an ever larger volume of context information, geographical distribution of participants, etc. Consequently, the issue of tool-based support for collaboration is a pressing one in software engineering. In this thesis, we address collaboration in the context of modeling and enacting development processes. Such processes are traditionally conceived as structures imposed upon the development of a software product. However, a sizable proportion of collaboration in software engineering is ad hoc, and composed of unplanned activities. So as to make software processes contribute to collaboration support, especially the unplanned kind, we focus on their function of information repositories on the main elements of collaboration and the interactions of such elements. Our contribution, on the one hand, is a conceptual model of collaborative development support, which is able to account for popular tools like version control systems and bug tracking systems. This conceptual model is then applied to software processes. We hence define a global approach for the exploitation of process information for collaboration support, based on the central notions of query language and event handling mechanism. On the other hand, we propose a metamodel, CMSPEM (Collaborative Model-Based Software & System Process Engineering Metamodel), which extends SPEM (Software & System Process Engineering Metamodel) with concepts and relationships necessary for collaboration support. This metamodel is then tooled with model creation tools (graphical and textual editors), and a process server which implements an HTTP/REST-based query language and an event subscription and handling framework. Our approach is illustrated and validated, first, by an analysis of development practices inferred from project data from 219 open source projects. Second, collaboration support utilities (making contextual information available, automating repetitive actions, generating reports on individual contributions) have been implemented using the CMSPEM process server.Le dĂ©veloppement logiciel est une activitĂ© intensĂ©ment collaborative. Les problĂ©matiques habituelles de collaboration (organisation des tĂąches, utilisation des ressources, communication, etc.) y sont exacerbĂ©es par le rythme rapide des changements, la complexitĂ© et la grande interdĂ©pendance des artĂ©facts, le volume toujours croissant d’informations de contexte Ă  traiter, la distribution gĂ©ographique des participants, etc. Par consĂ©quent, la question du support outillĂ© de la collaboration se pose plus fortement que jamais en ingĂ©nierie logicielle. Dans cette thĂšse, nous abordons la question de la collaboration sous l’angle de la modĂ©lisation et de l’exploitation des processus de dĂ©veloppement. Ces derniers sont traditionnellement considĂ©rĂ©s comme une structure imposĂ©e sur le dĂ©veloppement d’un produit logiciel. Cependant, une part importante de la collaboration en gĂ©nie logiciel est de nature ad hoc, faite d’activitĂ©s non planifiĂ©es. Afin de faire contribuer les processus logiciels au support de la collaboration, en particulier celle non planifiĂ©e, nous nous intĂ©ressons Ă  leur fonction de banques d’information sur les Ă©lĂ©ments clĂ©s de cette collaboration et les interactions entre ces derniers. Notre contribution est, d’une part, un modĂšle conceptuel du support au dĂ©veloppement collaboratif, capable de rendre compte de la structure d’outils classiques comme ceux de gestion de versions ou de gestion de dĂ©fauts logiciels. Ce modĂšle conceptuel est ensuite appliquĂ© aux modĂšles de processus logiciels. Nous dĂ©finissons ainsi une approche globale d’exploitation des informations de processus pour le support de la collaboration, basĂ©e sur les notions centrales de langage de requĂȘte d’information et de mĂ©canisme de rĂ©action aux Ă©vĂ©nements. D’autre part, nous proposons un mĂ©tamodĂšle, CMSPEM (Collaborative Model-Based Software & System Process Engineering Metamodel), qui enrichit le standard SPEM (Software & System Process Engineering Metamodel) avec des concepts et relations nĂ©cessaires au support de la collaboration. Ce mĂ©tamodĂšle est outillĂ© avec des outils de crĂ©ation de modĂšle (Ă©diteurs graphiques et textuels), et un serveur de processus offrant un langage de requĂȘtes basĂ© sur HTTP/REST et un framework de souscription et de rĂ©action aux Ă©vĂ©nements de processus. Enfin, notre approche conceptuelle a Ă©tĂ© illustrĂ©e et validĂ©e, en premier lieu, par une analyse des pratiques infĂ©rĂ©es Ă  partir des donnĂ©es de dĂ©veloppement de 219 projets open source. En second lieu, des utilitaires de support Ă  la collaboration (mise Ă  disposition d’informations conceptuelles, automatisation d’actions, extraction d’information sur les contributions individuelles) ont Ă©tĂ© implĂ©mentĂ©s Ă  travers le serveur de processus CMSPEM

    Processus IDM pour l’intĂ©gration des patrons de sĂ©curitĂ© dans une application Ă  base de composants

    Get PDF
    Security has become an important challenge in current software and system development. Most of designers are experts in software development but not experts in security. It is important to guide them to apply security mechanisms in the early phases of software development to reduce time and cost of development. To reach this objective, we propose to apply security expertise as security patterns at software design phase. A security pattern is a well-understood solution to a recurring information security problem. So, security patterns encapsulate the knowledge accumulated by security experts to secure a software system. Although well documented, patterns are often neglected at the design level and do not constitute an intuitive solution that can be used by software designers. This can be the result of the maladjustment of those patterns to systems context, the inexpertness of designers with security solutions and the need of integration process to let designers apply those pattern ? solutions in practical situations and to work with patterns at higher levels of abstraction. To enable designers to use solutions proposed by security patterns, this thesis proposes a model driven engineering approach to secure applications through the integration of security patterns. Component-based approach is a powerful means to develop and reuse complex systems. In this thesis, we take component based software systems as an application domain for our approach to facilitate the development of applications by assembling prefabricated software building blocks called components. The proposed process provides separation between domain expertise and application security expertise, both of which are needed to build a secure application. Our main goal is to provide a semi-automatic integrating of security patterns into component-based models, and producing an executable secure code. This integration is performed through a set of transformation rules. The result of this integration is a new model supporting security concepts. It is then automatically translated into aspect-oriented code related to security. These aspects are then woven in a modular way within the functional application code to enforce specified security properties. The use of aspect technology in the implementation phase guarantees that the application of security patterns is independent from any particular implementation. In order to provide a clear comprehension of the SCRIP process, we have described it using the standard SPEM . This work is implemented in a software tool called SCRI-TOOL (SeCurity patteRn Integration Tool). This tool allows not security experts developers to integrate different security properties throughout the development cycle of an component based application. To illustrate the use of SCRI-TOOL, we propose a case study regarding electronic healthcare systems. The choice of such a case study is motivated by the great attention archived for such systems from academia and industry and by the importance of security in such systems. Indeed, because of the large number of actors that can interact in such systems, security is a critical requirement. This case study will also allow us to illustrate the proposed methodology to highlight the importance of security management at a high level of abstraction. As results of the application of this process, we obtain a health care application completely secure and meeting the requirements of medical context.La sĂ©curitĂ© est devenue un enjeu important dans le dĂ©veloppement des systĂšmes logiciels actuels. La majoritĂ© des concepteurs de ces systĂšmes manquent d’expertise dans le domaine de la sĂ©curitĂ©. Il s’avĂšre donc important de les guider tout au long des diffĂ©rentes phases de dĂ©veloppement logiciel dans le but de produire des systĂšmes plus sĂ©curisĂ©s. Cela permettra de rĂ©duire le temps ainsi que les coĂ»ts de dĂ©veloppement. Pour atteindre cet objectif, nous proposons d’appliquer l’expertise en matiĂšre de sĂ©curitĂ© sous forme de patrons de sĂ©curitĂ© lors de la phase de conception de logiciels. Un patron de sĂ©curitĂ© intĂšgre des solutions Ă©prouvĂ©es et gĂ©nĂ©riques proposĂ©es par des experts en sĂ©curitĂ©. Cependant, les patrons de sĂ©curitĂ© sont souvent nĂ©gligĂ©s au niveau de la conception et ne constituent pas une solution intuitive qui peut ĂȘtre utilisĂ©e par les concepteurs de logiciels. Cela peut ĂȘtre le rĂ©sultat de l’inadaptation de ces patrons au contexte des systĂšmes, la non-expertise des concepteurs dans le domaine de la sĂ©curitĂ© ou encore l’absence d’un processus d’intĂ©gration de ces patrons dans les modĂšles Ă  un haut niveau d’abstraction.Afin de permettre aux concepteurs d’utiliser les solutions proposĂ©es par des patrons de sĂ©curitĂ©, cette thĂšse propose une approche d’ingĂ©nierie dirigĂ©e par les modĂšles pour sĂ©curiser des applications via l’intĂ©gration de patrons de sĂ©curitĂ©. Nous avons choisi comme contexte d’application de notre approche, les applications Ă  base de composants qui visent Ă  faciliter le dĂ©veloppement d’applications Ă  partir de l’assemblage de briques logicielles prĂ©fabriquĂ©es appelĂ©es composants. Le processus proposĂ© assure la sĂ©paration entre l’expertise du domaine d’application et l’expertise de sĂ©curitĂ©, toutes les deux Ă©tant nĂ©cessaires pour construire une application sĂ©curisĂ©e. La mĂ©thodologie proposĂ©e assure une intĂ©gration semi-automatique des patrons de sĂ©curitĂ© dans le modĂšle initial. Cette intĂ©gration est rĂ©alisĂ©e tout d’abord lors de la modĂ©lisation de l’application Ă  travers, dans un premier temps, l’élaboration de profils Ă©tendant les concepts du domaine avec les concepts de sĂ©curitĂ©. Dans un second temps, l’intĂ©gration se fait Ă  travers la dĂ©finition de rĂšgles, qui une fois appliquĂ©es, gĂ©nĂšrent une application sĂ©curisĂ©e. Finalement, cette intĂ©gration est assurĂ©e aussi au niveau de la gĂ©nĂ©ration du code fonctionnel de l’application en intĂ©grant le code non-fonctionnel relatif Ă  la sĂ©curitĂ© Ă  travers l’utilisation des aspects. L’utilisation de l’approche orientĂ©e aspect garantit que l’application des patrons de sĂ©curitĂ© est indĂ©pendante de toute application particuliĂšre. Le processus proposĂ© est dĂ©crit avec le standard SPEM.Ce travail a Ă©tĂ© concrĂ©tisĂ© par un outil nommĂ© SCRI-TOOL pour SeCurity patteRn Integration Tool. Cet outil permet aux dĂ©veloppeurs non experts en sĂ©curitĂ© d’intĂ©grer les diffĂ©rentes propriĂ©tĂ©s de sĂ©curitĂ© (intĂ©grĂ©es dans les patrons) dans une application Ă  base de composants. AïŹn d’illustrer l’utilisation de SCRI-TOOL, nous proposons une Ă©tude de cas portant sur le domaine des systĂšmes de soins distribuĂ©s. Le choix d’une telle Ă©tude de cas s’explique par l’importance des exigences en termes de sĂ©curitĂ© requises pour le bon fonctionnement d’une telle application. En effet, vue le grand nombre d’acteurs pouvant interagir, la sĂ©curitĂ© est une exigence critique dans de tels systĂšmes. Cette Ă©tude nous a permis de mettre en Ă©vidence l’importance de la gestion de la sĂ©curitĂ© Ă  un haut niveau d’abstraction et la façon d’appliquer la mĂ©thodologie proposĂ©e sur un cas rĂ©el
    corecore