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