Automatisation et évaluation des Architectures logicielles

Transcription

Automatisation et évaluation des Architectures logicielles
Ecole Doctorale 503 -- Sciences et Technologies de l’Information et des Mathématiques (STIM), Laboratoire
d'informatique de Nantes-Atlantique (LINA), UMR 6241.
Proposition de thèse CIFRE
Automatisation et évaluation des Architectures logicielles
ouvertes
Encadrant universitaire : Mourad OUSSALAH
Email : [email protected]
LINA - CNRS UMR 6241, 2, rue de la Houssiniere – BP 92208 44322
Nantes cedex 03
Tél : 02-51-12-58-47
Encadrant entreprise : M. Arnaud VIGUIER, société BeOtic
Email : [email protected]
La petite funerie, 44850 Le Cellier
Tél : 02-51-13-67-55
Contexte de travail
Cette proposition de thèse s’inscrit dans le cadre d’un partenariat entre l'Université de
Nantes et BeOtic, une jeune société travaillant sur l’audit des architectures logicielles en
général, et les architectures orientées service en particulier.
Introduction
La plupart des méthodes d’analyse et d’évaluation automatiques de la qualité des systèmes
logiciels se font à partir du code source. Dans le cas de l’évaluation des modèles
architecturaux, l’analyse se fait à partir du code généré depuis le modèle. A partir du code
généré, sont calculées des métriques plus ou moins complexes associées aux algorithmes,
aux méthodes, aux objets ou relations entre objets. D’un point de vue Architectural, ces
techniques, peuvent être désignées de bas niveaux, et peuvent se retrouver en décalage
avec des projets basés sur de nouvelles architectures complexes.
L’évaluation de l’architecture peut être faite en se basant sur les méthodologies ATAM,
SAAM voire ARID [2,5,7]. Elle peut également être faite par des mesures de haut niveau :
vue ensembliste, théorie des graphes liés aux relations entre les modules/composants de
l’architecture.
L’évaluation peut porter sur des aspects qualitatifs, quantitatifs, sur la prédiction de la charge
associée à des évolutions et sur les limites théoriques d’une architecture donnée.
Ces évaluations d’architectures peuvent être faites aussi bien au niveau d’une architecture
en cours de conception qu’au niveau d’une architecture existante.
Le sujet de thèse proposé s’inscrit dans le cadre de la recherche et développement d’une
jeune société basée sur l’audit des architectures logicielles.
Travail de recherche
Un premier travail doit porter d’abord sur l’état de l’art avec notamment une comparaison des
méthodes d’évaluations des architectures ATAM, SAAM et ARID en s’appuyant sur des
méthodes comme SACAM [3].
Une deuxième phase portera sur l’élaboration d’une méthode d’évaluation automatisable en
se basant sur la phase 1 et en intégrant les approches suivantes :
• Approche qualitative (respects des contraintes ou des patterns d’architectures),
• Approche quantitative (volumétries des flux interne et externe à l’architecture),
• Approche des limites théoriques (en termes de flux d’appel et de donnée,
d’évolution, ou de pattern) permettant le calcul des risques associés.
Enfin, la dernière phase portera sur le développement d’un prototype de la méthode sur des
architectures de type SOA [10,11,12]. Une attention toute particulière sera portée sur la
visualisation des résultats (Visualisation graphique des concepts).
Il est à noter qu’un ensemble de données et de résultats d’évaluations d’architectures seront
à disposition afin de valider la méthode définie.
Mots-clés
Architecture, évaluation, qualitatif, quantitatif, limites, risques, évolutivité.
Autres informations
Début thèse : rentrée 2009/2010.
Localisation : la thèse s’effectuera entre le LINA, le laboratoire de recherche en
informatique de l’Université de Nantes et BeOtic dont les locaux sont proches de
l’Université.
Compétences attendues :les candidats et candidates doivent avoir un Master
Recherche (anciennement DEA) en Génie Logiciel ou équivalent (un diplôme leur
permettant de s’inscrire en thèse). Des connaissances en Architecture logicielles,
composants et/ou services seraient appréciables.
Salaire : le salaire est d’environ 1 600 euros net.
Références bibliographiques
1 • Phil Bianco, Rick Kotermanski, & Paulo Merson : « Evaluating a Service-Oriented
Architecture », SEI, CMU/SEI-2007-TR-015, septembre 2007.
2 • Ipek Ozkaya, Rick Kazman, & Mark Klein : « Quality-Attribute-Based Economic
Valuation of Architectural Patterns», SEI, CMU/SEI-2007-TR-003, Mai 2007
3 • Christoph Stoermer, Felix Bachmann, Chris Verhoef SACAM: The Software Architecture
Comparison Analysis Method, SEI CMU/SEI-2003-TR-006 December 2003
4 • Len Bass, Robert Nord, William Wood, & David Zubrow : « Risk Themes Discovered
Through Architecture Evaluations», SEI, CMU/SEI-2006-TR-012, septembre 2006.
5 • JEONG Gu-Beom , KIM Guk-Boh : « A Study on Software Architecture Evaluation»,
Congrès Computational science and its applications, mai 2006.
6 • Gary Chastek & Robert Ferguson : « Toward Measures for Software Architectures»,
SEI, CMU/SEI-2006-TN-013, mars 2006,
7 • R. Kazman, L. Bass, M. Klein, T. Lattanze, L. Northrop, A Basis for Evaluating
Software Architecture Analysis Methods», Software Quality Journal, 13, 2005, 329335,
8 • Paul Clements, Rick Kazman & Mark Klein : « Evaluating Software Architectures:
Methods and Case Studies», Addison Wesley Longman, 323 pages, October 2001.
9 • PerOlof Bengtsson and Jan Bosch : « Assessing Optimal Software Architecture
Maintainability», fifth European Conference on Software Maintainability and
Reengineering, septembre 2000
10 • Frank Puhlmann: A Unified Formal Foundation for Service Oriented
Architectures. EMISA 2006:7-19
11 • Rafael Capilla: Context-aware Architectures for Building Service-Oriented
Systems. CSMR 2006:300-303
12 • http://www.adobe.com/enterprise/pdfs/Services_Oriented_Architecture_from_
Adobe.pdf
13 • Min Luo, Benjamin Goldshlager, Liang-Jie Zhang: Designing and Implementing
Enterprise Service Bus (ESB) and SOA Solutions. IEEE SCC 2005