Professional Documents
Culture Documents
P. Clements et al.
http://santos.cis.ksu.edu/schmidt/EJCP/talk08.pdf
5 6
La production du logiciel a chang dchelle et augment en CATIA (v5 - 1998) : logiciel de CAO de Dassault Systmes
complexit 5 millions de lignes de code C++
Programmeur unique quipes de dveloppement 50.000 classes
Comment grer le dveloppement ? Une volutivit forte
Application mono-composant application multi-composant Une release tous les 4 mois
Quelles interconnexions ? Quelle organisation ? Extensibilit
Concurrence, rpartition Le client peut implanter et intgrer des fonctionnalits complmentaires
Construction from scratch rutilisation de composants Environ 1000 ingnieurs pour le dveloppement
Fabriqus pour dautres projets, ou acquis/achets par ailleurs 20.000 clients
Comment assembler/intgrer ? 180.000 licences
Microsoft Windows
Windows 7 : 20 40 millions de lignes de code ?
9 10
Spcifications
Ce que fait ou doit faire le logiciel c.--d. le quoi (un ensemble de
Larchitecture logicielle dsigne la (les) structure(s) dun proprits)
systme logiciel
Ensemble dlments logiciels (parties), de natures diverses,
Architecture logicielle
constitutifs du systme Structure organisationnelle du logiciel, labore pour raliser le quoi,
c.--d. le comment
Modules, classes, fichiers, archives, objets, processus (au sens systme
dexploitation ) Organisation
Relations entre ces lments Du code (dpendances entre lments, paquetages)
Dpendances fonctionnelles, flot de contrle ou de donnes, Du systme lexcution (dynamique, distribution)
communication, synchronisation, hritage Et mme davantage
Avec un certain niveau dabstraction (vision globale ou macro)
Proprits des lments, visibles vs caches
13 14
15 16
Le terme Architecture Logicielle Le terme Architecture Logicielle
dsigne (2) une activit dsigne (2) une activit
21 22
27 28
Le concept dexigence
FONCTIONNELLES
Exemples
Permettre lutilisateur de visualiser sous nimporte quel angle des
TECHNIQUES formes complexes en 3D
Me permettre de faire apparatre et disparatre des images dans mon
NON FONCTIONNELLES ou diaporama
PRODUIT
EXTRA-FONCTIONNELLES
Aider un automobiliste se dplacer dans un environnement urbain et
le guider
NON TECHNIQUES
EXIGENCES
Non fonctionnelles ou
extra-fonctionnelles
Expression de services rendus lutilisateur
Prcision
PROJET
Reprsentation possible par des
diagrammes de cas dutilisation
31 32
Exigences techniques extra-fonctionnelles Exigences techniques extra-fonctionnelles
De natures diverses
Efficacit (performance)
Capacit du logiciel exploiter au mieux les ressources offertes par la ou
les machines htes et offrir des temps dexcution convenables
De natures diverses (suite)
Par ex., une transaction doit tre traite en moins de 5
Utilisabilit
Capacit du logiciel tre facile utiliser et matriser
Disponibilit
Par ex., le serveur doit pouvoir traiter jusqu 1000 requtes/min. Adaptabilit
Capacit du logiciel tre adaptable des besoins du client et
Fiabilit (sret de fonctionnement) personnalisable
Capacit du logiciel grer correctement ses propres erreurs de Configurabilit
fonctionnement en cours d'excution
Gestion des configurations
Confidentialit et intgrit (scurit)
Capacit du logiciel protger ses fonctions et ses donnes d'accs non
autoriss
Interoprabilit, portabilit, etc.
33 34
35
36
Focus sur une exigence majeure : lvolutivit Typologie de lvolution dun produit (1/4)
37 38
Typologie de lvolution dun produit (2/4) Typologie de lvolution dun produit (3/4)
Quand ?
froid (hors excution)
Alors que le logiciel est en cours de dveloppement
Quoi ? -sur quoi porte lvolution- Alors que le logiciel est en production
lment (ajout, retrait, modification) Anticipe ou pas
Configuration et liaisons (organisation logique globale), distribution chaud (pendant lexcution)
physique
Egalement documentation Qui ?
Humain
Logiciel (auto-adaptation dynamique)
Self-*
39 40
Typologie de lvolution dun produit (4/4) Limites lvolutivit
Comment ?
Techniques Le couplage entre constituants
Paramtrage
Transformation de code, programmation par aspects
Couplage (entre modules A et B) = degr dinterdpendance entre A et
B en termes dvolution
Rflexivit
Etc.
Couplage faible : un changement dans A (ou B) a peu dimpact sur B (ou
A)
Contrle
Couplage fort : un changement dans A (ou B) demande des changements
Garantie de leffet attendu importants dans B (ou A)
Garantie dabsence deffets indsirables (cohrence)
tapes Do le besoin dune bonne (?) architecture
Dclenchement, dcision, ralisation Rduire les couplages (idem pour les design patterns)
Attention la traabilit
41 42
43 44
Classification des exigences extra-
Exigences projet
fonctionnelles (Sommerville, 2016)
47 48
Comment grer les exigences ? Finalement
(extrait de SWEBOK 3.0,
IEEE CS, 2014)
Finalement Finalement
51 52