Nos partenaires

CNRS

Rechercher





Accueil du site > Français > Thèmes de recherche > Thème 7 - Sûreté de développement du logiciel > Equipe MACAO > Propositions de stages, thèses et post-doc > Thèses

Processus Adaptatif pour une Ingénierie Système Agile / Adaptive Process for Agile System Engineering (19/06/2014)

Contact : Hanh Nhi Tran et Christian Percebois

Laboratoire IRIT — Thème 7 — Equipe MACAO

Direction et unité d’accueil

  • Domaine scientifique principal du thème concerné : Informatique
  • Libellé ACI/Programme ou discipline concernée : Génie Logiciel
  • Formation doctorale de rattachement (spécialité) : Informatique
  • Directeur : Christian Percebois, professeur en Informatique à l’université de Toulouse 3
  • Encadrant : Hanh Nhi Tran, maître de conférences à l’université de Toulouse 3
  • Institut de Recherche en Informatique de Toulouse (IRIT)
  • Equipe : MACAO
  • Début de la thèse : septembre 2014

Contexte

L’Ingénierie Système est une discipline visant à fédérer les expertises et les savoir-faire de plusieurs métiers pour développer des systèmes complexes logiciels et matériels. Les processus de l’Ingénierie Système définissent les activités de développement de façon générique. Ces processus de référence sont adaptés et exécutés ensuite pour chaque projet concret.

Basés sur un cycle de développement en V, les processus actuels de l’Ingénierie Système [2] reportent des modifications à la phase de maintenance et ne réagissent pas efficacement aux changements. Ces processus ne fournissent pas non plus de facilités permettant aux ingénieurs système de les adapter facilement à un contexte spécifique pour un projet donné. De fait, l’exécution de tels processus nécessite des déviations par rapport à leurs modèles de référence. Ainsi, ils se montrent trop rigides pour le développement des systèmes modernes très complexes qui sont sujets à de fréquents changements de technologies et d’exigences.

Aujourd’hui, la communauté Ingénierie Système s’intéresse à l’approche Agile [3], connue en génie logiciel pour sa capacité à répondre aux changements. Rendre les processus d’ingénierie système plus agiles est une solution et un défi dû aux contraintes particulières imposées au développement d’un système, notamment la production et la maintenance d’éléments matériels.

Le but de cette thèse est de proposer une assistance plus flexible à l’exécution des processus de l’Ingénierie Système. Dans le cadre du projet FUI ACOVAS, nous nous concentrerons sur les activités d’élaboration des bancs de test nécessaire à la phase de vérification et de validation du système sous test. Pour être plus réactif aux changements, l’Ingénierie Système a besoin d’un framework de gestion de processus favorisant les pratiques agiles au sein même d’un cycle en V. D’une part, le futur framework devrait laisser plus de liberté à l’exécution de processus en remplaçant le contrôle prédictif et séquentiel par un contrôle empirique et itératif. D’autre part, les exécutions réelles d’un processus doivent être prises en compte pour l’amélioration du processus de référence.

Nous visons à :

  • développer des mécanismes de composition et d’instanciation de processus permettant d’adapter plus librement un processus de référence au contexte d’un projet donné ;
  • enregistrer les traces d’exécution des différentes instances d’un processus pour y extraire des informations utiles au « refactoring » du modèle de référence du processus et pour que de meilleures pratiques de processus puissent émerger. Pour ce faire, nous voudrions adapter des techniques propres à l’ingénierie des processus métier et logiciel. Des mécanismes flexibles pour l’exécution de processus s’appuieront sur des travaux existants tels : « Adaptive workflow » et « Case Handling » [1]. L’analyse des traces d’exécution grâce au « Process Mining » [4] permettra un "feed-back" rapide ainsi qu’une amélioration continue du processus de référence. Les meilleures pratiques découvertes dans l’exécution des processus peuvent être abstraites en patrons de processus [5] afin de promouvoir la réutilisation de celles-là.

Context

Systems engineering is an interdisciplinary field of engineering that focuses on development of complex systems composed of hardware and software components. System engineering processes define generic development activities which have to be customized later for each concrete project. Enacting a process is performing the defined activities in a real context.

Based on the V development cycle, current systems engineering processes [2] postpone modifications until the maintenance phase and not very responsive to changes. Moreover, they do not provide effective frameworks for planning and managing projects that allow systems engineers to easily adapt the reference model to a given context. Consequently, to enable modifications during process enactment, process deviations are almost inevitable. Such processes are so rigid and thus inefficient for developing modern systems which are being more and more complex, subject to frequent changes of technologies and requirements. To tackle this problem, the System Engineering community attempts to adopt the Agile approach [3], which has been highly successful in Software Engineering thanks to its ability to respond rapidly to changes. Making system engineering processes more agile is a solution but also a challenge due to particular constrains imposed on the system development by the production and maintenance of hardware components.

We investigate how system engineering processes should be applied from an agile project management perspective. In the context of the FUI project ACOVAS, we focus on the activities of test bench development integrated in the verification and validation phases. To be more responsive to change, system engineering needs a new process management framework promoting agile practices in the V development cycle. On the one hand, such a framework should shift the control from plan-driven to empirical process in order to let more liberty for process executions. On the other hand, real process instances should be considered for improving reference process.

Our approach consists of :

  • providing mechanisms for composing and instantiating process in a flexible way according to a given project context ;
  • monitoring real process executions to extract useful knowledge to refactor the reference process model and to capture process best-practices. To do so, we intend to adapt some software and business process techniques to system process. Adaptive Workflow and Case Handling [1] can help developing flexible mechanisms for process execution. By analyzing process traces, Process Mining [4] can give rapid feedbacks to system process model and enable its continuous adaptation. Finally, best-practices can be abstracted as Process Patterns [5] for promoting reuse.

Références

  • [1] Marlon Dumas, Wil van der Aalst, Arthur Ter Hofstede, Process-aware information systems : bridging people and software through process technology, Wiley-Interscience, 2005
  • [2] INCOSE Systems Engineering Handbook, v3.2. San Diego, CA : INCOSE, 2010.
  • [3] Scott W. Ambler , Mark Lines, Disciplined Agile Delivery : A Practitioner’s Guide to Agile Software Delivery in the Enterprise, IBM Press, 2012.
  • [4] Vladimir Rubin, Irina A. Lomazova, Wil M. P. van der Aalst : Agile development with software process mining. ICSSP 2014
  • [5] Hanh Nhi Tran, Bernard Coulette, Dan Thu Tran, My Hang Vu. Automatic Reuse of Process Patterns in Process Modelling. SAC 2011