Architectures Logicielles: Modélisation et Analyse

Institut Supérieur d'Informatique
1/19
100%
Rendu du PDF...
Page 1 sur 19Lecteur de document UniversityLib

Architectures Logicielles: Modélisation et Analyse

Institut Supérieur d'Informatique · Software Engineering · notes

Voir tous les documents en génie logiciel

Architectures Logicielles

Modélisation et Analyse

Auditoire: Troisième Année Ingénieur

Spécialité : Ingénierie de Développement Logiciel (IDL)

Rania MZID KEBEILI

Maitre-assistante à l’institut Supérieur d’informatique

Docteur en Ingénierie des Systèmes Informatiques

Ingénieur en Informatique

Membre de l’unité de recherche CES

Contact: [email protected]

R. MZID KEBEILI

Architectures Logicielles

Introduction á l’Architecture Logicielle

Qu’est-ce qu’une architecture logicielle ?

 The term software architecture means different things to

different people. To the developer, it means the structure of

the system being built. To the framework developer, it’s the

shape of the system that is created with the framework. To the

tester, it’s the shape of what needs to be tested. For all

concerned, it’s the high-level structure of the solution to a

problem that the customer or client wants solved [From

Pattern-oriented Software Architecture Book]

=> The architecture has a purpose

R. MZID KEBEILI

Architectures Logicielles

1

Introduction á l’Architecture Logicielle

Qu’est-ce qu’une architecture logicielle ?

 L’architecture d’un logiciel correspond á sa structure en terme

de composants, relations entre composants et relations avec

l’environnement

 Une architecture est une infrastructure composée de modules

actifs, d’un mécanisme d’interaction entre ces modules et d’un

ensemble de règles qui gouvernent cette interaction [Boasson

& al. 95].

R. MZID KEBEILI

Architectures Logicielles

2

Introduction á l’Architecture Logicielle

Qu’est-ce qu’une architecture logicielle ?

 La définition d’une architecture logicielle passe par la réponse à

la question suivante : Quelles règles doit-on suivre pour réussir

à développer des systèmes qui répondent à toutes les exigences

fonctionnelles (les services à rendre) et non fonctionnelles

(performance et extensibilité du système par exemple) ?

R. MZID KEBEILI

Publicité

Architectures Logicielles

3

Introduction á l’Architecture Logicielle

Granularité des choix architecturaux

R. MZID KEBEILI

Architectures Logicielles

4

Introduction á l’Architecture Logicielle

Granularité de l’architecture

 La définition initiale de l’architecture permet une description du

système sans se préoccuper des détails d’implémentation

 L’architecture est une abstraction supplémentaire

R. MZID KEBEILI

Architectures Logicielles

5

Introduction á l’Architecture Logicielle

Granularité de l’architecture

 L’architecture est une succession d’abstractions

R. MZID KEBEILI

Architectures Logicielles

6

Introduction á l’Architecture Logicielle

Pourquoi définir une architecture?

 Première étape pour la conception

R. MZID KEBEILI

Architectures Logicielles

7

Introduction á l’Architecture Logicielle

Pourquoi définir une architecture?

 A partir de l’architecture, on peut :

 Définir un plan de travail

 Répartir le travail entre les équipes

 Allouer les ressources

 Imposer des contraintes techniques

Structurer

les différentes étapes de développement, tests,

documentation et maintenance

R. MZID KEBEILI

Architectures Logicielles

8

Introduction á l’Architecture Logicielle

Pourquoi définir une architecture?

 L'architecture a une forte influence sur les propriétés finales

d'un système

 La structuration architecturale

favorise ou pénalise

Publicité

les

propriétés non fonctionnelles telles que

 Performance

 Sureté

 Sécurité

 Disponibilité, etc.

=> L’architecture influence les qualités mais ne les garantie pas !

R. MZID KEBEILI

Architectures Logicielles

9

Introduction á l’Architecture Logicielle

Les éléments Architecturaux

 The two major things that you’ll be defining and using in your

software architecture are components and services:

 Components (module, container) are the building blocks of the

system — the parts of software or the providers of functionality

that you combine into your architecture.

 Services (connector) are the things that your components provide

to the actors and to one another — the visible functionality of the

system. As you divide the functionality of the system into

components, you’re also defining what services each component

provides. The services can be internal or external to the system

R. MZID KEBEILI

Architectures Logicielles

10

Introduction á l’Architecture Logicielle

Architecture Logicielle et Processus de développement

 RUP et architecture ?

 Centré sur l’architecture

 4+1 Model

R. MZID KEBEILI

Architectures Logicielles

11

Introduction á l’Architecture Logicielle

Architecture Logicielle et Processus de développement

 RUP et architecture ?

R. MZID KEBEILI

Architectures Logicielles

12

Introduction á l’Architecture Logicielle

Architecture Logicielle et Processus de développement

 Méthodes agiles et Architecture ?

o Est-ce que les équipes Agiles font de la modélisation ?

o Réponse : Enquête Dr Dobb's (DDJ) sur la modélisation et la

documentation (2008)

 93% des équipes Agiles font du « whiteboard modeling »

Publicité

 77% des équipes Agiles anticipent quelques besoins

d'architecture

 66% des équipes Agiles font de la modélisation sur papier

 47% des équipes Agiles utilisent un outils électronique pour

leur modélisation

R. MZID KEBEILI

Architectures Logicielles

13

Introduction á l’Architecture Logicielle

Architecture Logicielle et Processus de développement

 Méthodes agiles et Architecture ?

o Quels rôles définis par les méthodologies agiles ?

o Réponse :

 Le représentant du client : Établit les priorités pour l'équipe

et est le contact avec le client (Product owner, XP customer)

 Un facilitateur : S'assure que l'équipe n'a pas d'obstacles

pour atteindre ses objectifs (XP coach, ScrumMaster)

 Une équipe de développement : Equipe autogérée qui

construit le système (XP programmer, developer)

Un architecte ??

14

R. MZID KEBEILI

Architectures Logicielles

Introduction á l’Architecture Logicielle

Architecture Logicielle et Processus de développement

 Méthodes agiles et Architecture ?

o L’architecture d’une vision agile, C’est quoi?

o Réponse :

 L’architecture ne veut pas dire documentation ( # RUP)

 Projets agiles: architecture intentionnelle et émergente

• Intentionnelle

: Décisions délibérées quelques besoins

anticipés, L'anticipation est par définition imparfaite

• Émergente

: L'architecture s'adapte aux besoins, Les

,

sont

corrections

L'architecture émerge du développement, en fonction des

défis techniques rencontrés

inévitables, à

itération

chaque

R. MZID KEBEILI

Architectures Logicielles

15

Publicité

Introduction á l’Architecture Logicielle

Architecture Logicielle et Processus de développement

 Méthodes agiles et Architecture ?

o L’architecture d’une vision agile, C’est quoi?

o Réponse :

 Conclusion : L'architecture « agile » consiste à trouver le

juste équilibre entre anticipation et adaptation

R. MZID KEBEILI

Architectures Logicielles

16

Introduction á l’Architecture Logicielle

Architecture Logicielle et Processus de développement

 Méthodes agiles et Architecture ?

o Un architecte?

 Un rôle, pas une personne : Peut être joué par plusieurs

personnes

 Un membre de l’équipe de développement (avec une

attitude proactive)

• Idée globale du système à développer

• Influencer le contenu de la « product backlog »

• Influencer les priorités

• Modélisation pour l'itération

• Refactoing

R. MZID KEBEILI

Architectures Logicielles

17

Introduction á l’Architecture Logicielle

Architecture Logicielle et Processus de développement

 Méthodes agiles et Architecture ?

o Pour conclure :

 Les méthodologies agiles encouragent

les activités

d'architecture et de conception : L'architecture doit être

itérative et incrémentale

 L'architecture « agile » est intentionnelle et émergente(

Anticipation et adaptation)

 L'architecte agile

intervient tout au

long du cycle de

développement : Un rôle de l'équipe de développement

o Ne renvoyez pas vos architectes ! Utilisez-les avec agilité »

[Jean-Louis Maréchaux, IBM Canada Lab / Rational software]

R. MZID KEBEILI

Architectures Logicielles

18