A Refinement Based Methodology for Software Process Modeling Fahad Rafique Golra
Total Page:16
File Type:pdf, Size:1020Kb
A Refinement based methodology for software process modeling Fahad Rafique Golra To cite this version: Fahad Rafique Golra. A Refinement based methodology for software process modeling. Software Engineering [cs.SE]. Télécom Bretagne, Université de Rennes 1, 2014. English. tel-00978732 HAL Id: tel-00978732 https://tel.archives-ouvertes.fr/tel-00978732 Submitted on 14 Apr 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. N° d’ordre : 2014telb0304 Sous le sceau de l’Université européenne de Bretagne Télécom Bretagne En habilitation conjointe avec l’Université de Rennes 1 Ecole Doctorale – MATISSE A REFINEMENT BASED METHODOLOGY FOR SOFTWARE PROCESS MODELING Thèse de Doctorat Mention : Informatique Présentée par Fahad Rafique – GOLRA Département : Informatique Laboratoire : IRISA Directeur de thèse : Antoine Beugnard Soutenue le 08 janvier 2014 Jury : M. Bernard Coulette + Professeur à l’université de Toulouse (Rapporteur) Mme Sophie Dupuy-Chessa Maître de conférence à UPMF-Grenoble 2 (Rapporteur) M. Christophe Dony + Professeur à Université Montpellier II (Examinateur) M. Reda Bendraou + Maître de conférence l’université Pierre & Marie Curie (Examinateur) M. Fabien Dagnat + Maître de conférence à Télécom Bretagne (Encadrant) M. Antoine Beugnard + Professeur à Télécom Bretagne (Directeur de thèse) Essentially, all models are wrong, but some are useful. George E. P. Box Acknowledgments I would like to gratefully and sincerely thank Fabien Dagnat for his guidance, understanding, patience, and most importantly, his friendship during my graduate studies at Telecom Bretagne. His mentorship was paramount in providing a well- rounded experience consistent to my long-term career goals. He encouraged me to not only grow my expertise in my research domain but also as an independent thinker. Not only did he ignite my imaginations, he also stimulated the thirst and the desire to know. I would like to thank Antoine Beugnard for his constant guidance and the liberty to explore the domain with his constant support. I am not sure many graduate students are given the opportunity to develop their own individuality and self-sufficiency by being allowed to work with such independence. I would also like to thank all of the members of PASS research team at Tele- com Bretagne, especially Maria-Teresa Segarra and Julien Mallet and all other fellow doctoral/post-doctoral researchers for giving me the opportunity to discuss and evolve this research project. Additionally, I am very grateful for the friendship of all of the members of his research group, especially Aladin, Jean Baptiste, Thang, Ali and An Phung, with whom I worked closely and puzzled over many similar problems. I would also like to thank my colleagues in office and Serge Garlatti who provided for some much needed humor and entertainment in what could have otherwise been a somew- hat stressful laboratory environment. I specially want to thank Armelle Lannuzel, who has helped me through all administrative procedures during my stay. I would like to thank the members of my defense jury for their input, valuable discussions and proposed corrections, that shall guide me further to improve my professional skills. Finally, and most importantly, I would like to thank my wife Asfia Firduas. Her support, encouragement, quiet patience and unwavering love were undeniably the foundations upon which the past six years of my life have been built. I thank my parents, Rafique Golra and Nusrat Shaheen, for their faith in me and allowing me to be as ambitious as I wanted. It was under their watchful eye that I gained so much drive and an ability to tackle challenges head on. Also, I thank my brothers Asad and Shoaib who provided me with unending encouragement and support. Abstract There is an increasing trend to consider the processes of an organization as one of its highly valuable assets. Processes are the reusable assets of an organization which define the procedures of routine working for accomplishing its goals. The software in- dustry has the potential to become one of the most internationally dispersed high-tech industry. With growing importance of software and services sector, standardization of processes is also becoming crucial to maintain credibility in the market. Software development processes follow a lifecycle that is very similar to the software develop- ment lifecycle. Similarly, multiple phases of a process development lifecycle follow an iterative/incremental approach that leads to continuous process improvement. This incremental approach calls for a refinement based strategy to develop, execute and maintain software development processes. This thesis develops a conceptual foundation for refinement based development of software processes keeping in view the precise requirements for each individual phase of process development lifecycle. It exploits model driven engineering to present a multi-metamodel framework for the development of software processes, where each metamodel corresponds to a different phase of a process. A process undergoes a series of refinements till it is enriched with execution capabilities. Keeping in view the need to comply with the adopted standards, the architecture of process modeling approach exploits the concept of abstraction. This mechanism also caters for special circumstances where a software enterprise needs to follow multiple process standards for the same project. On the basis of the insights gained from the examination of contemporary offe- rings in this domain, the proposed process modeling framework tends to foster an architecture that is developed around the concepts of “design by contract" and “de- sign for reuse". This allows to develop a process model that is modular in structure and guarantees the correctness of interactions between the constituent activities. Se- paration of concerns being the motivation, data-flow within a process is handled at a different abstraction level than the control-flow. Conformance between these levels allows to offer a bi-layered architecture that handles the flow of data through an un- derlying event management system. An assessment of the capabilities of the proposed approach is provided through a comprehensive patterns-based analysis, which allows a direct comparison of its functionality with other process modeling approaches. Keywords : Process Modeling, Software Development, Metamodels, Model Driven Architecture, Process Refinement, Component-oriented Process Modeling Framework (CPMF) Résumé Il y a une tendance croissante à considérer les processus d’une organisation comme l’une de ses grandes forces. Les processus sont des ressources réutilisables d’une orga- nisation qui définissent les procédures de travail pour la réalisation de ses objectifs. Avec l’importance croissante du secteur des logiciels et des services, la standardisation des processus devient indispensable pour maintenir sa crédibilité. Le développement de processus suit un cycle de vie très similaire à celui du développement logiciel. Par exemple, il se compose de plusieurs phases et suit une approche incrémentale qui mène à son amélioration continue. Cette approche incrémentale peut être complétée par une stratégie basée sur le raffinement pour développer, exécuter et maintenir les processus de développement de logiciels. Cette thèse propose une base conceptuelle pour le développement de processus logiciels par raffinement, sans perdre de vue les exigences spécifiques de chaque phase du cycle de vie d’un tel processus. Elle utilise l’ingénierie dirigée par les modèles pour présenter un ensemble de méta-modèles pour le développement de processus logiciels où chaque méta-modèle correspond à une phase différente d’un processus (spécifica- tion, implémentation et instanciation). Le modèle d’un processus traverse une série de raffinement jusqu’à ce qu’elle soit enrichie par des capacités d’exécution. Le dé- veloppement d’un interpréteur permet d’exécuter ce modèle. Il donne la possibilité de relier les modèles des differentes phases par des liens de traçabilité. Les inter- venants peuvent interagir avec le processus en exécution à l’aide d’une interface de supervision. Un niveau de variabilité incluse dans les modèles de processus permet leur adaptation pendant l’exécution. Tout en prenant en compte la nécessité de se conformer aux standards adoptés par l’organisation, l’architecture de l’approche de modélisation proposée exploite le concept d’abstraction en s’inspirant de la notion de composant logiciel pour aider à la réutilisation de modèles de processus. Notre mé- thode est également prévue pour les entreprises qui veulent suivre plusieurs standards pour le même projet. Sur la base des connaissances acquises grâce à l’étude des langages de modélisation actuels du domaine, le cadre proposé pour la modélisation de processus présente une architecture qui se développe autour des concepts de «conception par contrat» et «conception pour et par la réutilisation». Ceci permet de construire un modèle de processus qui a une structure modulaire et garantit la correction des interactions entre